W77E58是Winbond公司推出的一款快速8051兼容微控制器,它的内核经过重新设计,整体运行速度要比标准的8051快2.5倍。W77E58具有1 KB的片上外部数据存储器和32 KB的FLASH EPROM,省去了外扩SRAM所需的I/O引脚,从而用来扩展键盘与液晶显示屏。
W77E58较为突出的特性是它具有两个增强型全双工串行口,在数据采集模块中可将一个串口采用RS 232协议与GPRS模块进行数据通信,另外一个串口则采用RS 485协议接收检测仪器发送的数据。RS 485是在工业检测现场应用非常广泛的现场总线,总线上一台主机可以与多达32台从机进行通信。在实际应用中可将一台GPRS数据采集模块与多台检测设备通过RS 485总线相连,提高通信模块的利用率,这在电表、水表等低成本的检测仪表无线通信应用中十分重要。
GPRS无线通信模块负责整个系统的数据收发,GPRS无线网络通信需要TCP/IP/PPP协议支持,当前常见的GPRS模块可分为自带TCP/IP协议栈与不带协议栈的两大类,自带协议栈的模块有Simcom的SIMl00,使用方便,用户只需通过AT指令来控制数据传输就能实现无线通信,当然价格相对较高;而不带协议栈的模块还需用户自己在单片机中实现嵌入式TCP/IP/PPP协议栈来实现数据传输。考虑到模块的成本与W77E58高性能,这里选用了西门子的MC35i通信模块。MC35i稳定性及性价比都比较高,接口简单,AT指令完善,支持GPRS CLASS 10。使用时只需自行设计外围电路,包括电源供电、RS 232通信、SIM卡接口电路以及通信天线。该模块不带TCP/IP/PPP协议,需要自己编写,在单片机中实现。
2 TCP/IP/PPP协议的实现
通常的Internet网络通信只需实现TCP/IP协议簇,但是对于无线网络的接入还需实现PPP协议。TCP/IP/PPP协议其实是一系列网络通信协议的集合,为了能在资源有限的单片机中实现网络数据传输,只能根据特定的功能来实现相应的协议,这包括PPP,IP,ICMP,UDP,TCP等协议,并在此基础上构建应用程序的API接口。
网络协议采用分层结构,在GPRS无线通信模块中采用了5层结构。如图3所示,位于最底层的是网络硬件驱动程序,也就是GPRS模块的驱动,MC35i与GPRS网络的连接、断开以及数据通信都是通过一系列的AT指令来实现。
接下来是数据链路层,数据链路层控制互联网上主机之间数据链路的建立,该层实现了精简的PPP(Point—to—Point Protoco1)点到点协议。GPRS模块在拨号后首先要与GPRS网关进行通信链路的协商,即协商点到点的各种链路参数配置。协商过程遵守LCP(Link Control Protoco1),PAP(Password Authen—tication Protoco1)和IPCP(Internet Protocol ControlProtoco1)等协议。其中LCP协议用于建立、构造、测试链路连接;PAP协议用于处理密码验证部分;IPCP协议用于设置网络协议环境,并分配IP地址。一旦协商完成,链路已经创建,IP地址已经分配就可以按照协商的标准进行IP报文的传输了。数据传输完成之后,单片机会向GGSN发送LCP的断开连接报文,以终止网络连接。