多路通道无线传感网络测控系统的研究
2012-09-10赵双萍邢敬宏
赵双萍 邢敬宏 何 辉
(兰州工业高等专科学校软件工程系,甘肃 兰州 730050)
0 引言
自20世纪90年代以来,无线传感网络技术获得了广泛关注。随着技术的不断成熟,无线传感器网络(wireless sensor networks,WSN)逐步进入产业化阶段,以无线传感器网络为基础的物物互联技术在全球高速发展。物联网(Internet of things,IoT)涵盖了大量现有的专业门类和技术体系。物联网技术将应用于工业、农业、服务业、环保、军事、交通以及家居等几乎所有的领域。
从物联网的应用来看,可将物联网技术分为三个层次:一是无线传感网络,即以二维码、RFID、传感器为主的网络,可实现“物”的识别[1];二是传输网络,即通过现有的互联网、广电网络、通信网络或未来的NGN网络,实现数据的传输与计算;三是应用网络,即输入输出控制终端,可基于现有的手机、PC等终端进行。
本文对以上三个层次逐步展开研究,并设计了多路通道的无线传感网络测控系统。
1 第三代无线传感网络
系统采用3G-WSN的第三代无线传感技术,利用JN5148的SoC来构建性能更佳的无线传感网络。该技术具有对其他无线环境无污染、传输距离长、功耗低等诸多优点。
1.1 无线传感网络
无线传感器网络是一种由传感器节点构成的网络,能实时监测、感知采集节点部署区内的各种信息(如光强、温度、湿度、噪声和有害气体浓度等物理现象),并对这些信息进行处理,最后将处理后的信息以无线的方式发送给终端用户。随着通信技术、嵌入式技术、传感器技术的飞速发展和日趋成熟,具有感知、计算、通信、路由功能的微传感器节点不断涌现,由这些节点构成的无线传感器网络正备受关注[2]。
目前,无线传感网络在工业控制、智能家居、医疗健康等领域得到了的广泛应用,它已成为当今的热点研究方向之一,被认为是对21世纪产生巨大影响的高新技术。
无线传感器网络系统通常由传感器节点和终端用户组成。大量传感器节点被部署在监测区域,通过自组织方式构成网络[3]。传感器节点监测到的数据经过多跳后路由到网关节点,网关节点在对数据进行分析、融合等处理后,通过无线的方式将数据送入服务器。用户通过监控中心对传感器网络进行配置和管理,发布监测命令并收集监测数据。
传感部分共由四个节点构成,即终端节点、路由节点、中心节点和网关节点。终端节点可以以低功耗休眠方式运行,其低功耗性能更为优越[4]。终端节点中烧写EndDevice节点程序,其主要功能是采集温度、湿度、电压和脉冲等传感数据,并监听Router节点发送的数据,或检测到Coordinator中心节点和路由Router节点后将自己加入到网络中。路由节点中烧写路由Router程序,其主要功能是完成EndDevice节点转发的数据向Coordinator节点传输,同时侦听网络和周围的Router节点,以实现多跳方式自组网,形成完整的无线传感网络。中心节点中烧写Coordinator专用程序,其主要功能是刷新整个网络和路由表[5]。中心节点以串口的方式与ARM11嵌入式网关节点相连接,若串行速率达不到115 200 bit/s,则以SPI从节点的方式直接与ARM11的S3C6410相连接通信,以实现更高速的数据传输。无线传感网络体系结构如图1所示。
图1 无线传感网络体系结构图Fig.1 Architecture of WSN
1.2 JN5148传感网络的构建
本文选用JN5148作为传感器节点。JN5148是英国JENNIC公司研发的第三代WSN的SoC芯片,其搭载32 bit的RISC CPU,可支持新的ZigBee PRO、JenNet通信协议,它是目前ZigBee单芯片无线微处理器市场中唯一能提供低耗电与最大内存容量的芯片。JN5148是一款绿色环保的芯片,它对其他2.4 GHz传输网没有干扰,且传输DES 128位加密更加安全可靠。
JN5148编程时,采用Eclipse的C++编译环境,其C++程序经编译后生成BIN的二进制文件。然后使用Flash Programer工具,将程序以串行方式直接烧写至JN5148 CPU的程序存储空间。其传输协议可以选择 MAC协议、802.15.4协议或 ZigBee PRO、JenNet协议。本文选择能够支持线性路由和节点间可以互相通信的JenNet协议来进行构建。
2 嵌入式网关
网关节点在完成不同网络间协议转换的同时,还要对传感器网络进行管理和设置。网关节点需具备以下功能:扫描并选定物理信道[6],分配无线传感器网络内部网络地址,初始化网络设置;记录WSN网络所采用的MAC算法和路由协议,协助节点完成与邻居节点连接的建立和路由的形成;发送监控中心控制指令,为用户实现特定的操作功能;接收采集节点的请求和相关数据,具有数据融合、仲裁请求和路由选择等功能。
作为感知区域内传感器节点与外部网络或终端用户的桥梁,网关节点要处理大量数据,因此必须具备高速度、大存储量和较远传输距离的性能,即低成本、高效能。同时,因传感器部署在环境恶劣的区域,频繁更换电池很不现实,充足的能量供应必须优先考虑,低功耗设计也将成为整个设计的关键环节之一。
本文选用ARM11 S3C6410构建嵌入式网关,ARM11能支持WiFi、GPRS方式或Ethernet的IP网直连方式与互联网连接,或者以 WCDMA/TD-CDMA/CDMA2000的连接方式与互联网相连接。网关结构图如图2所示。
图2 网关结构图Fig.2 Structure of the gateway
嵌入式网关设计需要能够支持多种网络链接的中继设备,因此必须选择基于支持多网络支持的嵌入系统。选用FPGA能够实现数据的高速和并行处理,但其接口能力弱,需要进行许多扩展才能完成任务;DSP嵌入式开发板适用于对信号进行处理,其处理能力强、速度快[7],但对于多网络的支持并不十分完美。因此,本文选择基于Linux的ARM嵌入式操作系统来实现。在Linux下能够较为轻松地开发支持WiFi网络适配、GPRS拨号网络和CDMA2000/WCDMA/TD-SCDMA的驱动程序,驱动移植较为简单。基于ARM11的嵌入开发板能够实现 QT4.7和QTE4.4的移植,而QT4提供了大量的库函数。这些库函数使得网络、数据处理、图表展示等功能增强。
ARM11嵌入式网关的RJ45接口与IP网络交换机相连,实现WSN数据网络服务器的转发。其串行接口COM3设备与WSN的中心节点相连接,嵌入网关的USB接口不但可以插接U盘,读取U盘上的文件;也可以插接USB摄像头,将视频直接显示在LCD上,并通过IP/3G网络传输到远端服务器实现远程监控。此外,USB接口还可以与3G适配器连接,实现远程网络的连接,其支持WCDMA,同时也支持TD_SCDMA和CDMA2000。因此,无论是联通、电信或移动,只要有网络的覆盖,即可实现数据的采集与监控。网关的COM2口提供了可以与GPRS Modem Q2406B连接的5线串行接口,实现数据的远程传输。
嵌入式网关开发环境较为复杂,首先在Windows平台上安装VMware,再分别在VM和Linux上安装Linux系统和ARM交叉编译环境。所有程序均在Linux的QT Creator上开发,以Linux终端命令make实现编译;编译完成后,以网络或U盘文件方式发布在ARM上[8]。然后设置其运行权限及其在 Qtopia的desktop配置文件。
嵌入式网关采用ARM11开发,提供WiFi/3G/IP/GPRS 等连接的驱动程序,通过 WiFi、GPRS、3G、IP 的任一种连接方式,实现嵌入式网关与Internet服务器的通信。
3 基于RTMP的数据通信软件设计
随着Web技术的发展,W3C制定了新的HTML5标准,并通过Web方式实现Socket。系统借用新技术,以实时消息传输协议(real-time messaging protocol,RTMP)传送数据,前台采用Adobe的Flex来实现Web组态界面。
RTMP方式能够实现实时数据传送,这种数据的传送方式是由服务器端发出的。当系统启动时,在客户端和服务器端之间建立一个通道(RTMP隧道),当服务器端有数据需要传送时,即可直接传送,而无需客户端的请求,从而实现真正的数据传送。
本文以Java技术为基础,自行编写 Web组态界面。对 Web Socket的 Web启动、数据接收以及JfreeChart实现组态界面的编制进行了尝试,结果表明该界面非常适合跨平台Linux等其他操作系统平台的访问,对手机浏览器的支持也非常好。
3.1 服务器端软件设计
本文构建了以HTML5.0为基础的Socket,直接接收来自ARM11网关的数据,从而实现HMI人机交互。首先要在服务器端建立Server Socket;然后侦听下位机传来的实时数据,一旦上位机收到数据,则对有效数据进行提取;最后利用Web ORB将实时数据传送到Web浏览器端(即 Flex)上即时显示[9]。
服务器端实时侦听下位机传来的数据,收到数据后即通过RTMP传到Flex Client,服务器端使用.NET C#编写的DLL动态连接库。
下位机端嵌入式网关使用嵌入式Linux操作系统将无线传感器传来的环境变量(如温度、湿度)定时发到 Server Socket,数据可通过 3G、GPRS、IP 等方式传递。服务器端工作流程如图3所示。
图3 服务器端工作流程图Fig.3 Operating process of the server
3.2 Flex客户端
系统Web Client端使用Flex技术开发。Flex是一个针对企业级富互联网应用(rich internet application,RIA)的表示层解决方案[10],它是Flash的一种应用程序框架。
几乎所有用户浏览器都安装了Flash Player插件,利用Flex可以实现应用程序的跨平台。
Flex序列产品包括编译工具和IDE。通过编写MXML(一种类似 XML标记语言)和 ActionScript代码,用编译器来生成SWF文件。用户使用浏览器的Flash Player插件即可进行观看。
4 结束语
无线传感网络测控技术研究旨在构建一套基于最新物联网技术的网络测控体系,并探索新的一种测控模式。整个系统以JN5148这个第三代WSN的SoC为基础构建,构建后的WSN支持ZigBee PRO协议,同时支持JenNet协议和基于IPV6的6LoWPAN协议。系统以基于S3C6410的ARM11构筑嵌入式网关,嵌入式网关以最新的 Linux2.6.36为内核,以最新发布的QT4.7For ARM为开发平台,实现了嵌入式网关与WSN 之间的高速连接,并通过WiFi、GPRS、3G、IP 的任一种连接方式,实现了嵌入式网关与Internet连接的服务器通信。同时,构建了以HTML5.0基础的Socket,可直接接收来自ARM11网关的数据。数据以曲线或图表的方式呈现在Web中,构成以Web为基础的组态软件,实现HMI人机交互。
[1]沈苏彬,范曲立,宗平,等.物联网的体系结构及相关技术研究[J].南京邮电大学学报:自然科学版,2009,29(6):1-10.
[2]李凌云.无线传感器网络定位技术研究[J].信息技术,2008(12):148-150.
[3]杨宁,田耀.无线传感器网络拓扑结构研究[J].无线电工程,2006(2):11-13.
[4]郑增威,吴朝晖.可靠传感网聚类路由算法研究[J].浙江大学学报:工学版,2005(10):1461-1464.
[5]杜辉,舒莲卿.基于嵌入式Web服务器的网络设备测控系统设计[J].自动化仪表,2006,27(3):7 -10.
[6]章琛曦,陈亚珠,陈耀武.电梯嵌入式监控终端的设计与实现[J].自动化仪表,2005,26(1):44- 46.
[7]李春林,程建.基于ARM和nRF2401的嵌入式无线网络测控平台[J].自动化仪表,2007,28(8):8 -11.
[8]陈鸣慰.基于ARM的通用型实时测控系统设计与实现[D].南京:东南大学,2006.
[9]聂晓霞.Flex从入门到精通[M].北京:清华大学出版社,2008:10-30.
[10]赵一飞.Flex.4.0 RIA 开发宝典[M].北京:电子工业出版社,2011:5-20.