基于SIM300C的远程数据采集传输终端设计
系统以30 s为1个采集周期,初始化完毕后,单片机通知GPRS模块连接服务器准备发送数据,连接服务器成功后,启动2片A/D转换芯片MAX186对8路传感器信号进行A/D转换, A/D转换结束后,向GPRS模块发送帧头FF AA,紧接着发送16组数据,最后发送帧尾0D 0A,等待下一个采集周期。系统工作流程如图4所示。本文引用地址://m.amcfsurvey.com/article/151912.htm
3.1 A/D转换
MAX186为串行工作方式,在进行A/D转换之前要对MAX186进行配置。首先将CS管脚置低电平选通芯片,在SCLK管脚输入外部时钟,在时钟SCLK的每1个上升沿把1个最高位为“1”的控制字节的各位送入输入移位寄存器,控制器收到控制字节后,选择控制字中给定的模拟通道,并在SCLK下降沿启动A/D转换。控制字节的格式如表1所示。在控制字节的最后1位之后,SSTRB管脚有1个时钟周期的高电平,在其后的12个时钟周期SCLK的每1个下降沿,转换后数据的各位出现在DOUT端,单片机从DOUT管脚读入12位数字量。
3.2 GPRS通信
在GPRS通信中,有2种传输协议(TCP/UDP)可供选择。在本系统中,由于数据量相对较少,传输时间间隔较长,使用了更为可靠的TCP作为接入方式。
单片机通过串口使用AT指令[9]控制GPRS模块。系统启动后,为防止因上次使用时未关闭连接,造成连接服务器失败,所以单片机先向SIM300C发送关闭连接的指令:AT+CIPCLOSE,断开连接成功返回“CLOSE OK”。随后,单片机向SIM300C发送连接服务器命令:AT+CIPSTART=“TCP”、“202.205.84.222”、2020,用来将模块接入GPRS网络,使用“TCP”方式接入,服务器IP地址为202.205.84.222,侦听端口号为2020。连接指令送入GPRS模块后,单片机通过串口接收GPRS 模块返回的信息。返回“OK”说明指令正确,返回“ERROR”说明指令输入不正确,需要重新连接。等待一段时间后,GPRS 模块会返回1个字符串说明目前的连接状态:若返回“CONNECT OK”说明已经连上服务器;若连接失败,返回STATE状态:“CONNECT FAIL”,需要重新进行连接或者检查服务器的网络连接状态。
服务器连接成功后,单片机向SIM300C输入发送数据指令“AT+CIPSEND=20”,然后送入要发送的数据,包括帧头、16组数据及帧尾。
4 系统验证
对该系统的验证需要1台具有公网IP地址的计算机作为Internet上的服务器,1张开通GPRS功能的SIM卡且接入方式为CMNET,服务器数据收发DEMO软件。
实验中,将GPRS模块的串口与单片机串口相连,A/D转换芯片输入端以差分方式接入2路温度传感器PT100和1路湿度传感器。终端以30 s为1个周期,每1周期采集2片MAX186的8路差分输入模拟信号,采集结束,通过GPRS网络将数据发送到服务器。服务器端用Microsoft Winsock Control 6.0(SP6)控件开发了服务器端接收软件,完成对网络数据接收、数据存储及数据显示。服务器软件每次接收到终端的数据时,都将数据保存在一个文本文档内,并且记录接收数据的系统时间。图5为根据服务器文档记录的数据绘制的实验室24小时温度变化曲线。
测试结果表明:终端采集到的温度变化曲线符合实际温度变化,说明A/D转换部分能够准确地采集传感器输出的模拟信号;测试过程中,未发现GPRS模块与服务器端连接断开,观察服务器文本记录的数据,未发现数据丢失,数据均以30 s为1个周期被服务器接收,少数数据延迟几秒接收,说明以TCP协议进行数据传输是可靠的,即使无线网络发生拥塞时,也不会造成数据的丢失,而只是发生数据延迟。
本文设计的基于SIM300C模块的远程数据采集传输终端,具有成本低、体积小、布设方便、运行稳定等特点,克服了现场环境改造困难、布线成本高等问题,能够适应水产养殖环境中监测点分散和潮湿的环境,为现场环境数据的采集和数据的远程传输提出了一种解决方案。基于SIM300C的远程数据采集传输终端与远程服务器间可以通过GPRS无线网络进行可靠的数据传输,能够按设定的采集周期正确采集和传输现场环境数据,满足实际应用中对实时性的要求。在今后的研究中,需要为该系统增加LCD显示和键盘模块,以实现数据的实时显示,现场工作人员可以通过键盘对系统进行简单的控制;完善服务器端上位机软件,提供更为友好的数据显示界面。
评论