基于嵌入式Linux的传感器网络综合网关设计
扫描二维码
随时随地手机看文章
引言
无线传感器网络作为物联网的核心技术之一,正逐步成为国际上备受关注的、涉及多学科高度交叉、知识高度集成的热点前沿研究领域%无线传感器网络在概念上是由部署在工作区域内的、大量的、静止或移动的廉价低功耗传感器节点组成,这些节点通过无线通信的方式构成一个自组织和多跳的无线网络,以协作地感知、采集、传输和处理网络覆盖区域内的被感知对象的信息,并最终将这些信息以多跳方式传送到汇聚(sink)节点实现信息共享。无线传感器网络具有众多类型的传感器,可探测范围从温湿度等环境数据可以扩展至电磁辐射等精密检测,具有极大的适应性和扩展性,因此,无线传感器网络有着极其广阔的应用场景。
1传感器网络的系统构成
传统无线传感器网络的一种典型应用就是使用网络自组织形式实现物理信息的感知,并通过传感器网络中的协作节点实现异构网络之间的数据通信。由于传感器网络和IP网络之间的传输协议不一致,不能够实现直接将数据传送至远程服务管理中心,这就必须借助协议转换设备(网关)来实现传感器网络IP网络的互联。典型的无线传感器网络系统构成如图1所示。
同时,我们应该考虑到传感器网络部署的简单性和随机性等特点,通过有线方式实现IP网络通信具有很多的限制性,有线部署受到用于数据传输的双绞线长度限制以及不适应于室外部署等诸多限制,因此,在网关上实现网络的3G连接尤为必要。
图1典型传感器网络应用示意图
2无线传感器网络网关开发环境和体系结构
2.1传感器网关开发环境
2.1.1ARM处理器
ARM是AdvancedRISCMachines的缩写,既是一"个公司的名称,也是一类处理器的统称。本设计方案中使用TQ-2440开发平台,核心板系统处理器为ARM9架构,主频为400MHz;板上包含64MSDRAM、256MNandFlash、2MNorFlash,同时系统外接三个通用异步收发器(UART),此接口可以查看开发板系统信息以及进行系统调试,同时也可以实现外接串行数据通信;4个USBhost接口,1个USBSlave接口,用于向开发板烧写内核文件以及其他文件。
根据系统总体需求,设备硬件原理框架以及内部逻辑功能图如图2所示。
2.1.2Linux痢乍系统
Linux是一种自有和开放源码的类Unix操作系统,现在已经成为使用最多的一种类Unix操作系统,并且使用人数还在迅猛增长。Linux存在许多不同的Linux发行版本,它们都是用Linux内核。通常,可以将一套基于Linux内核的操作系统称为Linux操作系统田。
本文中所设计的网关系统使用的TQ-2440开发平台内核版本为Linux2.6.32内核,根文件系统采用yaffs,由系统启动后挂载。为了实现3G功能,主要需要实现驱动模块、软件移植等功能,3G无线网卡通过USBHost[6]接口连接,负责3G网络连接。
2.2网关系统设计总体结构
系统总体设计主要包括两个部分:3G无线网卡接口模块和无线传感器网络数据应用层代理及交互通信模块。3G无线接口模块负责接收从底层模块传送来的网络流数据,并且为上层模块提供编程接口以实现数据的网络发送;无线传感器网络数据应用层代理和交互通信模块则是负责IP网络与无线传感器网络之间的数据通信与代理转发。结构如图3所示。网关系统总体设计
图3中,3G无线接口模块的实现主要包括3G驱动模块、配置管理和系统初始化模块和应用层代理与交互通信模块。
其中3G驱动模块主要是对上层模块提供编程接口,实现网络络数据校验、传感器网络与IP网络数据代理等工作。
33G无线连接
3.1PPP协议简介
PPP(Point-to-PointProtocal)即点对点协议,是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
3.2內核对PPP协议的支持
要实现PPP协议的通信,需要在Linux内核中增加对PPP协议的支持。具体操作步骤如下:
将Linux-2.6.32.2.tar.gz内核文件复制到开发机上,并进行解压缩。
切换到内核目录,通过命令makemenuconfig进入内核编译界面。
在其中将PPP支持选中即可。PPP相关驱动可以直接编译进内核,也可以以模块的形式进行编译。
通过命令makezImage进行内核编译。
将编译好的zImage内核烧写至开发板flash中即可。
PPP的交叉编译与安装
在PPP官网下载程序文件,通过arm-linux-gcc工具进行交差编译,此时在ppp文件的子目录/ppp/pppd、/ppp/pppdump、/ppp/pppstats和/ppp/chat下可以分另U得到pppd、pppdump、pppstats以及chat可执行程序,将它们复制到开发平台的/bin目录下。有的时候,则需要修改相应程序的执行权限。
3G无线网卡的拨号与联网
在PPP交叉编译完成以后,需要在开发板上的/etc/ppp/peers目录下建立三个文件evdo、evdo-connect-chat和evdo-disconnect-chat。
(1)evdo文件内容为:
debug
nodetach
lock
/dev/ttyUSB0
115200
user"card”
password"card”
crescts
show-password
usepeerdns
noauth
noipdefault
novj
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect‘/bin/chat-s-v-f/etc/ppp/peers/evdo-connect-chat'
disconnect‘/bin/chat-s-v-f/etc/ppp/peers/evdo-disconnect-chat'
其中关键参数为:
/dev/ttyUSB0:表示拨号釆用的串口标识符;
user和password:表示用户名和密码,在电信EC12603G网卡中,默认均为card;
usepeerdns:表示向对端至少请求两个DNS服务器地址;noauth:表示不要求对端去验证自己。
evdo-connect-chat文件的内容为:
TIMEOUT5
ABORT“NOCARRIER”
ABORT“ERROR”
ABORT“NODIALTONE”
ABORT“BUSY”
ABORT“NOANSWER”
‘'\rATZ
OK-AT-OKATD#777
CONNECT\d\c
AT即Attention,AT指令集是从终端设备(TE)或数据终端设备(DTE)向终端适配器(TA)或数据电路终端设备(DCE)发送的。通过TA、TE发送指令来控制移动台的功能,与GSM网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。
如evdo-connect-chat文件中的ATD命令即为拨号命令,这个命令用来设置通话、数据或传真呼叫。
.evdo-disconnect-chat文件内容为:
ABORT“BUSY”
ABORT“ERROR”
ABORT“NODIALTONE”
SAY“\nSendingbreaktothemodem\n”
‘'“\K”
‘'“+++ATH”
SAY“\nGoodbye\n”
在以上三个配置文件完成以后就可以通过pppd拨号,通过命令“pppdcallevdo&”,即可以启动拨号程序。
3.5应用层代理和交互通信模块的总体结构
在典型的无线传感器网络应用中,无线传感器网络中的数据需要通过其协作节点将数据传送至外部网络中,由于无线传感器网络和外部网络(如IP网络)之间的异构性,因此数据不可能直接传送至外部网络,需要特定的应用层代理程序进行数据打包以及数据转发等机制。
在本系统中,应用层代理和交互通信模块主要负责传感器网络和IP网络双向信道的建立、服务监听以及数据包的代理转发。该模块的总体设计结构如图4所示。
图4应用层代理与交互通信模块结构框图
系统启动后,会进行系统初始化工作。首先自动读取配置数据,决定数据转发接口以及串口配置,包括Ethernet和3G转发接口选择、串口通信接口选择等。然后进行双向通信信道的建立,包括端口绑定、与server端建立socket通信信道以及与传感器网络中的写作节点建立串行数据通信信道等。系统初始化完成以后,釆用端口复用机制实现数据异步监听,当有数据到达时,系统判断传送数据类型,针对不同类型的数据实现包完整性判断、fcs校验以及打包及拆包过程,最后系统针对不同类型数据转发至对应的通信会话中。
4结语
本文首先从无线传感器网络的总体设计出发,阐述了无线传感器网络的典型应用场景以及在嵌入式设备上实现3G接口及数据转发的重要性,然后给出了一种基于嵌入式Linux操作系统的综合网关设计方案,包括3G接口设计以及应用层数据转发设计方案。该方案的实现极大地适应了无线传感器网络随机布置的特点,同时3G接入也为无线传感器网络数据传输提供了更为简单便捷的传输体验。同时,实际测试也很好地证明,该方案可以很好地实现无线传感器网络与IP网络的互 联,并保持较好的稳定性。
5致谢
本文作者感谢863计划项目(批准号:2011AA100706), 国家自然科学基金项目(批准号:61271257)和北京市自然科 学基金(批准号:4122034)对本文研究工作的支持。
20211117_61950a84645e8__基于嵌入式Linux的传感器网络综合网关设计