GPRS数据传送服务的无线通信控制器设计
3 控制器的软件接口
在本设计中,需要利用TCP/IP协议来完成GPRS业务数据的打包和解包。由于W77E58资源有限,怎样在有限的资源上完成必需的功能,就是嵌入式TCP/IP协议实现的关系所在,也就是合理地简化协议。
TCP/IP协议是一个为广域网(WAN)设计的标准协议套件,可以用一个分成四个层次的模型来描述:数据链路层、互联网层、传输层和应用层。其分层模型及协议如表2所列。
表2 TCP/IP协议结构
应用层 | HTTP、Telnet、FIT、SMTP、SNMP |
传输层 | TCP、UDP |
互联网层 | IP、ARP、RARP、ICMP、IGMP |
数据链路层 | Ethernet、X.25、SLIP、PPP |
应用层(application)负责处理特定的应用程序细节,在本系统中只实现HTTP协议。
传输层(transport)主要为2台主机上的应用程序提供端到端的通信。TCP协议是为2台主机提供高可靠性的数据通信,这里采用TCP传输控制协议。
互联网层(Internet)的功能是寻址、定址、数据打包和安排路径。Internet所有的数据都以IP数据报格式传输,其最大特别是提供不可靠的和无连接的数据包传送服务。在GPRS业务中,每一次链接都会具体分配一个IP地址,因此用ARP/RARP协议完成IP地址与物理地址的映射(即地址解析),用ICMP协议判断网络是否连通。
数据链路层(link)的任务是把要发出的帧送到线路中去,把要接收的帧从线路中取出来。GPRS业务是采用IP Over PPP实现数据终端的接入。这部分功能由单片机控制MC35模块,采用PPP协议实现。javascript:window.open(this.src);" style="cursor:pointer;"/>
数据打包处理程序处理数据时,每一层都把自己的信息添加到一个数据头中,而这个数据头又被下一层的协议包装到数据体之中。数据解包处理程序接收到GPRS数据时,把相应的数据头剥离,并把数据包的其余部分当作数据体对待。
在应用要求高的场合,通常需要支持完事的TCP/IP协议族,而在嵌入式系统中也是可以做到的;但是,考虑到成本和具体的应用场合,没有必要包括所有的TCP/IP协议族。可以看到,采用TCP/IP协议需要对它进行合理的裁剪,以满足小ROM系统的情况。
系统在利用MC35模块的GPRS业务浏览HTTP等功能之前,必须先激活GPRS网的PDP连接。单片机通过正确的AT指令和GPRS命令集对MC35模块进行初始化和数据的接收发送,其工作流程如图3所示。
单片机上电复位后,首先对MAX232进行初始化,完成与外接模块协商处理,如波特率、是否有奇偶校验等。接着,通过串口1对MC35模块进行初始化,检查诸如SIM卡情况、GPRS网络覆盖情况、信号情况等。接下来,进行中断扫描,监控是否有数据到来。有关数据时,如果是外部数据,就启动数据打包处理过程;如果是GPRS数据,就启动数据解包处理过程。如果没有数据,系统则进入节电模式。在数据打包处理过程中,如果检测到系统的信号不好,网络连接不畅通,或者不是GPRS网络覆盖区,将进行数据发送缓存处理,同时将数据放进发送队列等待发送。
结语
本文采用嵌入式TCP/IP协议,在高速的8位微控制器上实现了对MC35模块的控制,并实现了GPRS业务的数据传输功能;具有外围器件少、电路简单、系统成本低等优点。本文设计的GPRS无线通信控制器,自2002年1月份起,在广东省东莞市的环保污水综合处理系统中使用至今,运行效果良好,实践证明,产品工作稳定、可靠。