GPRS模块与网络服务器连接成功后便可以进行数据通信。网际层实现了ICMP协议与IP协议。IC—MP协议是网际控制报文协议,负责传递网络状况信息。IP协议为TCP/IP协议中最为核心的协议,它负责数据报路由的选择,以及将上层协议传输的数据包加上IP报头后传送给下层协议,并将下层协议接收到的IP数据包剥离包头检验信息后接收或是丢弃。
传输层实现了TCP和UDP协议。UDP是面向数据报的传输协议,不能保证可靠的数据交付,但开销较小发送数据的时延也相对少。如果对可靠性要求高,可以选择TCP协议,TCP为不可靠的IP连接提供可靠的、具有流量控制的、端到端的数据传输,但对系统资源的要求相应增加。实际应用时可根据传输数据的内容来选取传输协议。
为了方便上层程序调用相关的协议进行通信,可以建立一个数据结构,将本地和远程的IP地址、端口号以及通信状态封装起来构成一个Socket,并提供相应的API函数供应用程序调用,这就是应用层接口。
3 MC35i驱动及AT指令的编写
3.1 MC35i的开关机及初始化
MC35i的开关机需要在模块的0N/OFF引脚上加上脉宽1 s以上的低电平。当模块处于关机状态检测到0N/OFF引脚的下降沿并持续1 s以上的低电平时启动整个模块,同理,当模块启动后检测到持续1 s以上的低电平,则延时8 s关机。所有的AT指令操作都必须在开机状态下才能执行。
开机后还要对MC35i进行初始化来实现单片机对模块的控制:首先要测试模块串口的连接状况,通过发送AT指令,等待模块的回复,返回OK则连接成功,没有响应则表示模块连接存在问题;接着还要向模块发送ATEO指令来关闭回显。回显功能主要用于串口调试,具体应用时应关闭该功能,防止回显字符和返回参数混合。
3.2 MC35i的AT控制指令
MC35i模块是采用AT指令集进行控制的,采用AT指令集可以实现模块参数的设置,数据的发送与接收。AT指令集是调制解调器通信接口的工业标准,指令由ASCII字符组成,除“A/”、“+++”指令外,所有指令都是以”AT”开头,以<回车><换行>结束,绝大多数指令被执行后都有返回参数。
常见的AT指令有:
设置通信波特率:使用AT+IPR=19200命令,把波特率设为19 200 b/s;
设置接入网关:通过AT+CGD CONT=1,“IP”。“CMNET”命令设置GPRS接入网关为移动梦网;
设置移动终端的类别:通过AT+CGCLASS=“B”设置移动终端的类别为B类,即同时监控多种业务,但只能运行一种业务,即在同一时间只能使用GPRS上网,或者使用GSM的语音通信;
测试GPRS服务是否开通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,则GPRS连接成功;如果返回ERROR,则意味着GPRS失败。中国移动在GPRS与Internet网中间建立了许多的网关支持节点(GGSN),以连接GPRS网与外部的Internet网络。GPRS模块可以通过拨“*99***1#”登录到GGSN上,并通过PPP协议获取动态分配到In—ternet网的IP地址。
4 使用需注意的问题
由于GPRS网络通信是以GSM网络为基础,GSM网络的语音通信优先级较高,当GPRS长时间在线但不产生流量时,数据业务的优先级会自动降低,GGSN服务器则会为了节省线路带宽断开其网络连接,此时对于GPRS模块来说,虽说IP地址还在,但已无法进行数据传输。为了防止这种情况导致网络的中断,可在系统中设定“心跳”功能,通过单片机的定时器来实现,每隔一段时间向服务器发送一个TCP数据包,以保证系统的网络连接不断线。“心跳”频率应根据实际情况来设定,频率不宜过高,以免产生过高的额外流量。
由于GPRS无线网络受天气环境影响较大,当出现雷雨等恶劣天气或是信息拥塞时可能会发生数据包丢失、掉线等现象。为了防止丢包的现象发生,可以根据数据的重要性与否采取TCP或是UDP协议,TCP协议具有延时重发功能,对于UDP方式,则必须自行设计校验和纠错规则。对于受干扰掉线的问题则可定时测试网络连通状况,向远程数据终端发送ICMP回显请求(即ping命令),根据终端的应答情况来判断网络状况。当多次请求未回应时即启动GPRS模块重新连接。
当数据采集模块处于电磁干扰特别强烈的电力变压器、电力整流器、电力开关产生的火花等环境中时,GPRS模块和SIM卡运行时间长了偶尔会出现死机的现象,因此要对GPRS模块和SIM卡实时监测。
对GPRS模块的监测:每隔一定的时间对模块进行AT指令测试,如果模块有返回数据则说明模块运行正常,没有死机;如果没有返回,则模块出现问题,此时用单片机控制关闭模块电源,几秒钟后再打开电源,重新启动模块。
对SIM卡的监测:在模块测试完毕后接着发送关于SIM卡的AT指令,如果返回OK则SIM卡工作正常,如果返回ERROR则SIM卡复位或者死机,此时可用AT指令重新启动模块。
5 结 语
本套数据采集模块采用GPRS方式接入Internet网络,不受地点与空间的限制,克服了传统的电力系统设备监控布线困难或是抄表系统效率低,可靠性差的缺点,可广泛应用于电力工矿等生产行业设备运行监控,居民生活区远程抄表系统,甚至于各种远程家居电器控制系统等小流量高实时性的通信系统中。随着3G网络通信技术的成熟与应用,无线网络通信的速度与可靠性将有变革性的提高,相信随着新一代通信技术的发展,基于无线网络的数据采集系统将有着更为广阔的应用前景。