摘要:主要讨论了无线传感嚣网络与M2M平台对接的关键性技术M2M网关的设计与实现。无线传感器网络(Wireless sensor network.WSN)具有独立自组网和超低功耗等优点,但是由于其短距离通信的特征,使其应用范固有所限制。将WSN与M2M平台进行对接,是无线传感器网络发展的必然趋势;而M2M网关则是实现对接的关键性技术。无线传感器网络M2M网关,采用嵌入式ARM9处理器s3C2440作为核心,以CC2530作为汇聚节点采集WSN数据,利用GPRS(General packet radio service)模块EM310为网络数据的出口,对接M2M平台服务器。该M2M网关可将WSN与M2M平台相连接,具有很好的通用性。
引言 无线传感器网络(Wireless sensor network,WSN)是指由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织网络系统,其目的是协作地感知。采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。
M2M是机器对机器通信(Machine to ma-chine)或者人对机器通信(Man to machine)的简称。主要是指通过“移动通信网络”传递信息从而实现机器对机器或人对机器的数据交换,也就是通过移动通信网络实现机器之间的互联。互通。移动通信网络由于其网络的特殊性,终端侧不需要人工布线。可以提供移动性支撑,有利于节约成本,并可以满足在危险环境下的通信需求,使得以移动通信网络作为承载的M2M服务得到了业界的广泛关注引。
本文旨在实现一种无线传感器网络中M2M网关,来对接WSN网络和M2M平台,真正实现远距离的机器到机器的通信。
1 M2M网关的功能及设计方案
1.1 M2M网关在系统中的作用
在无线传感器网络实际的应用中,往往需要将WSN网络采集到的信息进行远距离传输,并且将这些信息传给远方的服务器进行数据处理,处理完的数据则再传送给需要这些数据的机器或者人。
而移动通信网络则具有远距离传输的性能,移动运营商都有一套完整的M2M平台来支持M2M服务,而这些都为WSN的扩展提供了非常好的平台,在这其中进行WSN与M2M协议平台对接的数据网关就显得尤其重要。
如图1所示,无线传感器网络中的各个节点将所需要的数据进行采集,并通过自组网的方式发送到网关,网关将数据进行网络协议转换,将数据发送至M2M平台,M2M接收到数据后进行数据处理,再将处理完的数据发送至监控服务端。用户客户端和机器控制端,从而实现了无线传感器网络中的数据远程的采集。处理并进行了终端控制,实现了WSN真正意义上的远程机器到机器的通信。
1.2 M2M网关设计方案
M2M网关是整个无线传感器网络和M2M平台对接的关键部分,M2M网关主要以收集数据并且上传至服务器为主导,自主地完成数据采集到上传服务器的整个过程。数据采集主要通过下行接口接入,上传数据到服务器则依靠上行接口传输。
由于需要将底层WSN数据再通过上层接口与M2M平台协议对接,所以需要在传输层上对不同的网络协议进行转换,因此对网关主控制器的运算性能及数据传输性能有较高的要求。经过对比分析和成本核算,本文采用具有较强数据处理能力和较丰富外围接口的ARM9芯片S3C2440作为主控制器来完成M2M网关的硬件系统的搭建。
根据M2M网关的不同应用,本网关采用模块化设计方案。如图2所示,网关可分为硬件层。系统软件层。应用软件层三大组成部分。各个层又都可分为上行与下行接口和主控部分。硬件部分主要描述了WSN网络汇聚节点和主控制器的硬件连接以及主控制器和GPRS(General packet radioservice)模块或以太网控制器的连接;系统软件层主要描述嵌入式“linux”系统的移植以及GPRS协议的移植,这为应用层实现两个网络之间协议转换做好了准备;应用软件层是指在嵌入式Linux上开发相应的应用程序,这里主要实现WMMP协议,从而实现两个网络之间协议转换,完成对数据的高效的无误转换。
2 网关的硬件设计
M2M网关是数据转换核心,整个硬件电路包括主控制器及存储单元。电源管理模块及复位电路。WSN汇聚节点和GPRS模块组成,其硬件结构框图如图3所示。
2.1 M2M网关主控制器及电源管理模块
2.1.1 主控制器
M2M平台硬件电路的主控制器采用三星公司推出的32位RISC微处理器S3C2440,S3C2440标准工作频率400 MHz,最高工作频率533 MHz,具有低功耗。高性能等优点。该处理器集成了LCD控制器。USBHost,NAND控制器。BUS控制器。中断控制。功率控制。UART,WatchDog,SPI,ADC等丰富的外围资源。存储器方面扩展64MB的sDRAM作为RAM,采用1片HY57V561620芯片,地址空间安排在Bank6;扩展64MB的NandFlash作为外部存储器,采用1片K9F1208UoB芯片。Ethernet接口采用DM9000芯片与S3C2440相连接,能够提供处理器以有线的方式与以太网相连接。
2.1.2 电源管理模块
本网关系统中所采用的ARM9处理器及其外设均采用3.3 V供电,最大电流达到800 mA,WSN汇聚节点所采用的CC2530芯片也采用3.3 V供电,最大电流150 mA.GPRS部分所采用的EM3lo模块供电电压范围在3.4~4.7 V之间,推荐电压为3.8 V,峰值电流可达1.5 A.经过对比,采用了TI公司的DC.DC电源芯片TPS5420,TPS5420是输入电压5.5~36 V,2 A,500 kHz的降压转换器,最高效率可达到95%,其内部电路产生精确的室温下为1.221 V的参考电压,VSENSE用来接调整管反馈电压,可通过配置外部电阻设置VSENSE引脚与输出电压的分压关系来确定输出电压的大小。这样通过两路TPS5420芯片,可以分别得到3.3 V和3.8 V的两路输出电压来供给各个芯片和模块工作。
2.2 WSN汇聚节点
WSN系统节点采用TI的无线射频SOC芯片CC2530,CC2530是TI公司推出的用于IEEE802.15.4应用的片上系统(SOC)解决方案。它能够以非常低的总材料成本建立强大的网络节点。
CC2530集成了2.4GHz的RF收发器。增强工业当曜的8051 MCU.在系统可编程的256 KBFlash,8 KB RAM和许多其他强大的功能。实际测得CC2530点对点距离可达到200~400 m.
2.3 GPRS模块
M2M网关采用华为公司EM310模块作为采集数据的远程传输,EM310模块是一款GSM/GPRS无线模块。工作频段EGSM900/GSMl800双频,模块内嵌TCP/IP协议栈,为系统与M2M平台对接提供了基础网络协议。EM310模块与S3C2440比较简单,仅仅通过一个标准串口就可将其连接起来。
3 M2M网关的软件设计
由于M2M是基于ARM9这样的嵌入式处理器进行的开发,所以首先需要往硬件平台移植Linux嵌入式操作系统,然后才能进行相应M2M协议转换程序的开发。
3.1 网关的Lin帔系统移植
网关软件的基础是在ARM9平台上移植Linux操作系统,移植Linux操作系统首先必须先建立移植所必须的交叉开发环境。其次需要编写和修改Linux内核,在通用计算机上修改和编写新的内核代码,编译出新的Linux内核。最后在编译出新的内核后就需要调试新的Linux内核,将编译后生成的新Linux内核加载到目标硬件上进行运行和调试,这个调试的过程就是交叉调试。
经过多次移植测试后,在基于S3C2440处理器为核心处理器的ARM9平台上成功移植了Linux操作系统,并且完成了相应外设驱动程序的开发和调试。
3.2 GPRS模块AT指令
GPRS模块通过串口接收AT指令和发送返回结果或数据,AT指令具有一定的格式,返回结果也遵循一定的格式。
3.2.1 AT指令格式
AT+[0P][PARM]或AT%[OP][PARM]
其中每条指令均以AT开头,后面连接符号“ +”,“%”.为具体指令,一般由3到7个字母构成。[0P]为指令操作符,一般跟在后面,一般常用的有“.”,“=”,“=.”这几种,当[OP]为“=”时[PARM]为该条指令的参数序列,[PARM]中可以包含多个参数用英文中的逗号分隔表示一个特殊的字符,在C语言及C++中可以表示为“r”,ASCII码十六进制表示为OxoD,当模块收到该字符时将对输入的AT指令开始执行并返回结果,因此每条AT指令末尾都会包含字符。
3.2.2 GPRS模块实现网络通讯
使用GPRS模块进行网络通讯包括以下步骤:
(1)网络初始化;(2)初始化协议栈;(3)建立网络连接‘(4)收发数据;(5)关闭连接;(6)关闭协议栈。
3.3 M2M网关平台WMMP协议设计3.3.1协议栈结构
协议建立在TCP/IP或UDP/IP协议。SMS和USSD之上,其协议栈结构如图4所示。
在网络质量比较差的情况下,建议优先采用UDP(User datagram prOtoc01)协议m].如在采用GPRS作为接人方式时,则建议采用UDP协议作为传输层协议,这是因为GPRS的网络带宽相对较窄,延迟较大,所以不适于采用TCP协议进行通信。采用UDP方式通信,可以提高传输效率,减少数据流量,节省网络带宽资源。UDP是无连接的。面向消息的数据传输协议,与TCP协议相比较,它有两个致命的缺点:(1)没有确认机制,数据包容易丢失;(2)数据包无序。因而,M2M数据通信过程通过在UDP的上层应用层的协议实现类似TCP的包确认和重传机制,从而提高通信效率及可靠性。根据实际经验发现,采用UDP方式传输,丢包率能控制在1%以下,能够满足M2M应用的需要。
3.3.2协议实现
在Windows平台的VS下搭建工程来进行程序的编写,图5是M2M网关WMMP协议的工程文件目录。
(1)Application:该文件夹下面的代码主要是应用层的代码,是实现M2M的主逻辑。
(2)ATP:这个文件夹下面主要实现了应用层协议的解析。由汇聚节点传递上来的原始数据要经过协议验证,只有验证合法的传感器数据才会通过WMMP协议发送到远程服务器。
(3)Config:这个文件下面的代码都是头文件,定义了整个项目中的所有宏和常量。
(4)Db:这个文件夹的代码实现了tlv数据格式的管理。在通过wMMP协议传输的时候,内容主题都是通过tlv格式编码的,t代表数据的类型type,l代表数据的长度length,v代表数据的内容value.
(5)Memmgr:这个文件夹下的内容实现了内存管理。在整个项目的实现过程中,所有的内存管理都是在这个文件夹下面实现的。
(6)Network:这个文件夹下面的代码实现了网络的功能。主要实现了以太网的Socket连接和2个GSM模块的GPRS连接。短信的收发。
(7)OSA:这个文件夹的代码主要模拟一个操作系统层。主要实现了模拟定时器。队列。Flash管理。调试。文件管理。
(8)Porting:这个文件夹的代码实现了串口的功能。主要实现了Windows平台和Linux平台串口的打开。关闭。读取。写入的功能。
(9)U1tis:这个文件夹的代码主要实现了一些普通算法。主要包括md5,CRC等一些基本算法。
(10)WMMP:这个文件夹的代码主要实现了WMMP的客户端功能。
4系统调试与实现
M2M网关硬件采用核心板和底板的结构,如图6所示1为核心板,核心板采用6层PCB设计主要包括ARM9芯片及SDRAM和Flash芯片;2为汇聚节点,主要采集WSN网络所采集到的数据;3为GPRS模块,主要实现通过GPRS方式与M2M平台相连接;4为电源部分,采用双路DC-DC供电,确保系统电源的稳定性;5为ARM9平台扩展外设包括调试申口。以太网口。USBHost等。
在M2M网关通过GPRS模块与M2M平台对接后,M2M网关板上的汇聚节点就将收到的数据传送给主控制器,由主控制器将数据融合并打包,然后通过GPRS模块发送至M2M平台服务器。整个网关注册。登陆。发送数据包的过程都可以通过调试串口来观察,如图7所示。
当M2M网关将数据发送至M2M平台服务器后,即可以对数据进行调用,而本地服务器则通过WMMP协议从M2M平台服务器调用数据,并存人本地服务器。
本网关已在上海某科技园环境监控项目中得到实施,其中无线传感器网络节点将二氧化碳含量。氧气浓度及温湿度实时监测数据发送至M2M网关;M2M网关依据M2M协议格式将数据发送至M2M平台。空气质量监测系统只要通过调用M2M平台相关数据,即可显示出一定时间段内当地相关空气质量数据,数据结果准确,使用简便,如图8所示。
在实际的环境监控系统中,有了无线传感器网络与M2M平台相结合的环境监测系统与传统的人工监测相比提高了监测的时效性和准确性。以往的环境监测只是在一个很大的区域内安装一到两个环境监测站,环境监测站虽然采用的仪器精密且采集的数据准确,但是监测站所反映的不过是一个点的数据,不能反映一个区域相关数据的地理层次和相关变化方向;而如果环境监测站是单点工作,如果出现设备异常将不能实际反映这一地区的相关数据。而从WSN与M2M平台相结合的环境监测系统实际运行的结果表明系统弥补了以往环境监测系统的诸多不足,具有高效性和稳定性等特点。M2M网关是实现整个环境监测系统的关键部件之一,这也反映了M2M网关具有高效性和稳定性的特点。
5 结束语
本文设计并实现的无线传感器网络M2M网关,采用嵌入式ARM9处理器S3C2440为核心,以CC2530作为汇聚节点采集WSN数据,利用GPRS模块EM310为网络数据的出口,对接M2M平台服务器。该M2M网关可将WSN网络与M2M平台相连接,使WSN网络的数据得到更充分的利用。因此本文所设计的M2M网关适用于环境监控。森林防火。智能交通等类型的物联网应用。