M2M是指应用无线移动通信技术,实现机器与机器、机器与人之间数据通信和交流的一系列技术及其组合的总称。GPRS具有覆盖地域广、通信距离远、网络可靠性高等优点。随着GPRS的推广和应用,以及基于GPRS的M2M产品的推出,采用GPRS技术来解决上述问题成为一种较好的方案。
M2M终端的硬件核心为GPRS通信模块MC35i和ARM处理器AT91SAM7S64,它们的接口设计如图1所示。M2M终端对外留有2个RS232串口,通过发送预先定义好的数字指令,可以实现M2M终端的启动、关闭等。当M2M终端与Internet建立连接后,只需把封装好的数据通过串口发送到M2M终端,由其完成向监控中心发送数据的功能。
GPRS模块是实现M2M终端平台的核心部分,设计中采用西门子公司的GPRS通信模块MC35i。本模块包括CPU接口电路、SIM卡接口电路和MC35i外围电路,MC35i支持GPRS的四种编码协议CS-1、CS-2、CS-3和CS-4,理论上传输速率可达172kbps。它具备完整的GSM和GPRS功能,可以广泛应用在相关的M2M数据传输平台上。MC35i提供了标准AT命令界面和一个RS232接口,用于与外部应用系统连接。
本数据传输平台处理器采用ATMEL公司生产的32位ARM7TDMI体系结构处理器AT91SAM7S64,该芯片采用3.3V电压进行供电,支持低功耗模式,它具有64kB的FLASH和16kB的SRAM,具备丰富的外围设备资源,其中包括3个UART通信串口和1个USB2.0全速设备,利用本芯片完成系统功能的同时可以实现系统的高性价比。CPU模块硬件电路包括:时钟电路、JTAG接口电路,RS232接口电路等。
通过GPRS进行数据的传输需要经过Internet网络进行中转,因而传输的数据封装必须进行TCP/IP协议。文中利用软件进行了数据封装,需要传输的数据经过传输层UDP协议头封装,然后是IP协议头的封装,进行PPP协议的封装。
MC35i将接收到的数据透明地传输到Internet网络中。通过Internet网络路由器中转,最终将数据传输到监控中心。接收端对接收到的数据按照相应的层次进行解析,从而确定数据的目标程序。
系统软件设计采用分层的结构,从底到上分别为:串口驱动层(物理层)、PPP协议层(链路层)、IP协议层(网络层)、UDP协议和ICMP层(传输层)以及应用层。在移植好的LwIP协议栈中,通过在各层中建立相应功能的线程,实现数据的封装。底层软件为上层软件提供函数支持,上层软件利用底层软件完成应用程序的编写和实现。软件采用自底向上的设计方法逐步实现系统中各个函数的功能,各部分函数实现均采用模块化的设计方法。每个任务对应一个模块
对每个任务单独进行设计后,最终由FreeRTOS操作系统统一管理,通过采用信号量和邮箱的方式实现多个任务之间的通信,软件各部分主要函数之间的关系如图3所示。