基于蓝牙4.0与3G的无线传感器网关设计与实现

2015-11-02 05:56廖鹏飞陈庆奎
计算机工程 2015年9期
关键词:线程网关蓝牙

廖鹏飞,陈庆奎

(上海理工大学光电信息与计算机工程学院,上海200093)

基于蓝牙4.0与3G的无线传感器网关设计与实现

廖鹏飞,陈庆奎

(上海理工大学光电信息与计算机工程学院,上海200093)

针对无线传感器网络与Internet网络的通信协议不兼容问题,利用低功耗蓝牙4.0与第三代移动通信技术,设计一种无线传感器网关。硬件设计方面,使用基于ARM Cortex-A8的S5PV210作为主处理器,使CC2540蓝牙模块与无线传感器节点相连接,控制3G模块进行远程通信。软件设计方面,基于Android操作系统实现无线传感器网络与Internet网络的数据接收、网络协议转换、交互控制等功能。测试结果表明,该网关具有较低的接收与转发数据丢包率、处理时延及功耗,可保证无线传感器网络与Internet网络的高效实时通信。

无线传感器网络;蓝牙4.0;Android系统;无线传感器网关;TCP/IP协议

1 概述

无线传感网络是由分布在监测区域内大量的微型传感器节点相互通信形成的多跳自组织网络系统,其主要目标是将网络监测区域内被感知对象的信息进行采集、分析处理,并最终把这些信息发送给网络所有者,使所有者对监测区域所感知的对象进行决策应用在环境监测、目标定位、医疗护理等领域[1-3]。与传统网络不同,微型传感器节点的计算能力、存储能力以及通信能力相对较弱。因此,无线传感网络的通信协议具有低功耗、低数据速率等特点。以至于高能耗的TCP/IP通信协议不适用于无线传感网络,从而使无线传感器网络与Internet网络异构。通常解决异构网络之间通信的典型方案是设计协议转换网关。

目前很多学者已经在这方面做了研究,如文献[4]提出基于ZigBee/Ethernet的无线传感器网关;文献[5-7]提出基于ZigBee/GPRS的无线传感器网关;文献[8]提出基于ZigBee/CDMA的无线传感器网关。这些研究大部分采用的通信协议是IEEE802.15.4/ZigBee协议。该协议具有低复杂度、低功耗、低数据速率的特点,是无线传感器推荐使用的技术。但目前实现该协议的硬件成本较高,协议网络层的研究相对较少,要在无线传感器网上大规模的应用还需要一定时间。另外,在蓝牙应用研究方面,如文献[9]提出基于嵌入式Linux的蓝牙以太网网关;文献[10]提出基于蓝牙的无线传感网关;文献[11]提出在汽车传感器应用中的蓝牙-CAN网关。这些研究大部分采用的通信协议是传统蓝牙,并未考虑到蓝牙功耗对网关及无线传感器节点的影响,也未考虑网关移动性及远程控制特性的设计。蓝牙4.0技术是集传统蓝牙技术、高速技术和低耗能技术于一体的最新蓝牙通信规范,具有极低的运行和待机功耗、低成本、3 m s低延迟、100 m以上超长通信距离、AES-128加密等特点[12],同时蓝牙4.0技术将大规模应用在手机、PAD等设备上。蓝牙4.0技术的这些特性为其在无线传感器网上的应用提供了优势。另外,随着移动通信网络的不断发展,越来越趋向于将无线传感器网与第三代移动通信技术(3G)相融合,更利于适用特殊环境下的应用。

本文设计并实现一种基于蓝牙4.0与3G通信协议的无线传感器网关。硬件上采用S5PV210处理器作为主处理器,通过通用异步收发传输器(Universal Asynchronous Receiver/Transm itter,UART)连接CC2540蓝牙芯片,使用USB连接3G模块;软件上基于Android操作系统实现蓝牙4.0模块与无线传感器网络节点通信,3G模块与Internet网络通信、网络协议转换以及节点管理等功能。

2 网关硬件设计

基于蓝牙4.0与3G的无线传感器网关硬件系统结构如图1所示。硬件结构采用传统模块化设计方案,主要由三部分组成:基于ARM Cortex-A 8架构的S5PV 210微处理器,具备蓝牙4.0通信能力的CC2540蓝牙模块以及支持TCP/IP协议的3G模块。硬件上,S5PV210微处理器与蓝牙CC2540模块通过UART口相连,与3G模块使用USB接口相连。另外,为能支持Android操作系统和网关存储等需要,该微处理器外扩展了存储器(SDRAM, NANDFLASH)、触摸屏等外围接口,共同构成整个网关的硬件结构。

图1 网关硬件系统结构

2.1 CC2540蓝牙模块

在无线传感器网中,节点能源与计算资源极其有限,为满足节点与节点之间、节点与网关之间的通信,选用低功耗蓝牙4.0协议。传感器节点[13]和网关均采用TI公司推出的CC2540蓝牙芯片,该芯片集成了2.4 GHz射频收发器,最大传输率达1 M b/s,具备丰富的硬件资源,包括21个通用I/O端口、2个UART、3个定时器等。另外,低功耗蓝牙4.0协议栈已固化到CC2540芯片上,这些资源共同构成了高性价比、低功耗的片上系统(System on Chip,SoC),足以满足网关中蓝牙模块对处理器的要求。CC2540芯片配合天线即可构成蓝牙收发器,S5PV210微处理器通过UART接口与该模块连接。

2.2 3G模块

目前,3G支持CDMA2000,TD-SCDMA,WCDMA 3种制式标准[14]的通信协议。很多厂家都推出了相应制式的3G模块,如ZTE公司推出的支持TD-SCDMA制式的ME3760、支持WCDMA制式的MG3732等。通常这些3G模块均支持标准AT指令集,提供丰富的接口资源如UART接口、USIM卡接口、全速USB2.0接口。考虑到开发成本及效率问题,本文网关选用支持cdma2000的ZTE AC581模块,S5PV210微处理器通过USB接口控制该模块。

2.3 S5PV210主控模块

该模块是整个无线传感器网关系统硬件设计的核心部分:一方面需要控制CC2450蓝牙模块通信,接收临时存储在CC2540蓝牙模块中从节点传来的数据;另一方面,需要控制3G模块以实现与Internet网络通信。另外,还需要管理无线传感器网中节点的信息以及本地信息显示等功能。无线传感器网关的这些功能都需要一个高可靠性、强大处理能力的处理器。因此,本文选用SAMSUNG推出的S5PV210微处理器作为主控制器,该微处理器集成了ARM Cortex-A8核心,具有32 KB/32 KB I/D缓存,512 KB L2缓存,2个独立的外部存储器端口,4个通用异步收发器,USB Host2.0,ATA控制器等接口资源,支持A/D转换器和触摸屏界面等系统外设。内部总线采用64位的架构,为3G通信服务提供了最优化的硬件性能。考虑到S5PV 210处理器比CC2540芯片处理速率更快,系统还需连接外部存储作为数据缓冲区。另外,无线传感器网关需要运行Andriod操作系统,因此外扩了256 MB的SLC NANDFLASH,512 MB DDR2RAM,64 MB SRAM,均采用集成在一起的SAMUNG芯片。

3 网关软件设计

无线传感器网关的软件体系结构如图2所示,按照硬件模块化设计,无线传感器网关软件也可以分为三部分来实现:(1)通过CC2540蓝牙模块运行蓝牙4.0协议栈,并采用网络处理器模式[12]实现蓝牙通信的建立,负责收发无线传感器网节点与网关之间约定好的数据包;(2)通过3G模块使用AT命令,实现TCP通信的建立,负责处理网关与Internet网络数据的交互;(3)通过在S5PV210微处理器上运行Andriod操作系统,实现向蓝牙模块和3G模块发送控制信息、协议转换、数据存储、节点管理以及建立TCP多线程等服务。其中第(3)部分是整个网关软件设计部分的关键,由于Android系统是基于Linux内核实现的,可将UART和USB接口作为字符设备来读写,同时可以移植点对点协议(Point to Point Protocol,PPP)协议栈,为软件提供高效的[15]。

图2 网关软件体系结构

3.1 蓝牙4.0通信设计

蓝牙4.0支持主从通信模式,一个蓝牙4.0主设备可以同时与3个从设备保持连接,当网络中的一个节点发送完数据后,网络中又可以添加新的节点,从而间接地添加了节点个数。蓝牙的这种特点既可以使其构成一个星型拓扑结构的微微网,又可以通过一种自组网路由算法组建一个更大广播组拓扑形式的散射网络。本文设计采用星型网络拓扑结构。首先无线传感网关主控模块对蓝牙4.0协议进行初始化配置;接下来蓝牙4.0模块作为主设备以广播的形式发送查询广播包,等待传感器从设备节点对查询包进行应答,应答后获取从设备的地址;然后发出建立ACL连接请求,传感器从设备节点同意建立连接后,无线传感器网关与传感器节点就可根据两者的连接句柄进行数据传输,蓝牙通信流程如图3所示。

图3 蓝牙通信流程

3.2 3G通信设计

3G模块通常支持2种与Internet网络通信的方式:(1)使用模块内置的TCP/IP协议栈;(2)使用外置的TCP/IP协议栈。由于Andriod操作系统内置TCP/IP协议栈,因此本文采用第(2)种方式。该模块配置设置如下:(1)在交叉编译环境中进入make menuconfig配置ZTE AC581模块的USB驱动,并选择将USB转成串口;(2)添加PPP点对点协议,PPP协议设计的目的是通过拨号或者专线方式建立点对点连接方式。(3)编译内核并下载到无线传感网关,在使用过程中可以通过ioctl函数库(类似操作文件设备)对ZTE AC581模块进行读写。(4)配置拨号上网脚本,pppd在Android系统中是一个用户空间的后台服务进程,因此可使用andriod adb,进入“/dev/ppp”配置pppd选项,主要部分如下:

“ATDT*99#”命令将访问GGSN(Gateway GPRS Supporting Node)[14],当获得“CONNECT”字符串后,表示成功上网,IP地址和DNS地址将分配到拨号上网信息中,获得IP地址后,主控模板的程序将基于TCP/IP协议进行数据通信服务。

3.3 主控模块设计

主控模块软件的设计是整个无线传感器网关的重点,需要协调整个网关模块的工作。考虑到无线传感器网关主要是负责对无线传感器网中蓝牙数据的收集以及方便转发数据给远程用户查看和分析。因此,本文从这两方面来分析其实现过程:

(1)无线传感器网关与无线传感器网通信是通过UART串口连接的蓝牙4.0主设备,通过该蓝牙通信接口,无线传感器网关需要实时访问和监控多个蓝牙设备。

因此,为高效快捷地处理无线传感器网中的数据,本文采用如图4所示的多线程工作方式,其中,数据收集线程(CollectDataThread)负责接收无线传感器网络中蓝牙节点定期发送的数据包,当接收到一个数据包后,将其插入一个以队列形式存储的共享数据区;当共享数据区中数据不为空时,使用消息传递机制通知数据处理线程(Data Process Thread),该线程负责从共享存储数据区中取出数据并对数据进行处理,包括数据包解析、数据存储、实时信息显示。

图4 网关采集数据流程

(2)无线传感器网关与Internet通信是通过主控程序读写USB 3G模块设备,并基于TCP/IP协议进行通信。无线传感器网关与远程客户端程序通信采用基于C/S架构的设计方式。可能有多个拥有权限的用户需要对无线传感器网的数据进行查看设置。因此,本文基于线程池技术来响应一定的并发用户。首先当无线传感器网关蓝牙接口采集到数据的同时,3G模块将初始化并进行拨号上网,当从网络运营商获得IP地址后,无线传感器网关将通过socket建立一个TCP服务器线程不断监听来自远程客户端的连接请求,当有远程客户发送连接请求,TCP服务器首先会验证该用户信息并判断是否建立连接,若已经建立连接,加载会话信息,若未建立连接并通过验证,将重新配置会话信息,然后从线程池中分配一个会话线程,该线程负责与远程用户交互。2类线程的工作流程如图5所示。

图5 TCP服务线程及会话线程流程

4 数据传输

TCP/IP协议相比蓝牙4.0协议速率高很多,无线传感器网与Internert网这2种网络的数据处理能力不同,软件上提供处理的方法及效率也不同。因此,为了符合无线传感器网络低功耗的特性,减少无线传感器网络数据通信量,提高网关处理数据的高效性,同时能够方便TCP服务器与远程客户机解析无线传感器网数据。在数据传输过程中,采用2种不同的统一格式应用数据包:

(1)在无线传感网关与无线传感网之间通信,网关监测无线传感器网络,网络产生的数据均以数据包的格式发送给网关。该数据包的格式如图6所示。其中,提供3 Byte的标识段,包括2 Byte的无线传感器网节点唯一标识ID,1 Byte的包类型;提供变长的数据段,包括1 Byte的数据类型、1 Byte的数据长度以及可变长的数据,但一个数据包的长度不超过32 Byte;另外,为保证数据的安全性和完整性还提供1 Byte校验位和1 Byte结束符标识。

图6 无线传感器网络数据包统一格式

(2)在无线传感网关与Internet网之间通信。当远程用户发送请求网关数据时,会话线程将解析命令,响应用户的请求。现在使用的较多的方式有JSON和XML。由于Android API中提供了丰富的XML解析器,如SAX解析器、DOM解析器以及PULL解析器[13]。因此,本文采用类似XML-RPC[16]的方式,将用户和网关通信中的数据封装成XML格式,如用户发送休眠ID为10的节点request-xm l示例,其中,command代表请求的命令;sensor代表节点实体:

下文为网关返回用户请求ID为10的节点数据的response-xm l示例。其中,sensor标签内描述传感器节点实体信息;entitys标签描述传感器值信息,传感器值的请求量取决于请求时设置的参数:

5 实验结果与分析

按照本文提出的硬件设计方案,设计蓝牙4.0与3G网关的实物图如图7所示。

图7 基于蓝牙4.0与3G的网关实物图

为测试网关的性能,设计网关测试的实验环境。通过部署3个蓝牙4.0传感器节点,实物图如图8所示,与网关的蓝牙4.0模块组建成微微网,节点位置放置在射频理论传输距离内,节点与网关传输的数据是通过程序上模拟设置的测试数据,设定每隔5 s节点将向网关发送一次数据,通过采用长为16 Byte和32 Byte的数据包,从接收数据、网关转发数据、网关时延对网关进行实验测试。另外,为测量网关在功耗方面的性能,本文分别对ZigBee,Wi-Fi以及蓝牙4.0模块正常运行时的功耗进行测量和对比分析,实验硬件上采用TI公司的CC2530 ZigBee模块和CC3000 Wi-Fi模块。

图8 部署3个蓝牙4.0传感器节点的网关实物图

5.1 网关接收数据

网关接收数据是指主控模板从串口接收无线传感器网络中发送给蓝牙主模块的数据,实验主要测量该过程的丢包率。按照上述实验环境,对串口波特率设置为4 800 bit/s和9 600 bit/s进行测试,网关每次从串口读取1 000个数据包时进行一次丢包统计,每种实验条件下进行10次丢包统计后求平均值,实验结果如表1所示。

表1 接收数据丢包率

从表1中的实验结果可以看出,对于不同的包长度和波特率,接收数据的平均丢包率都非常低,丢包率平均值为0.05%,表明网关能高效准确地接收数据包。

5.2 网关转发数据

网关转发数据是指将无线传感器网络收集的信息通过网关的3G模块转发到Internet的这一过程,实验主要测量该过程的丢包率。按照上述实验环境,在网关中设置计数器,每隔6 h统计一次,连续监测24 h,实验统计结果如表2所示。

表2 转发数据丢包率

从实验结果来看,平均丢包率约为0.027%,远低于CCSA标准。

5.3 网关时延

无线传感器网关的时延是从串口中读取一个完整数据到处理完成该数据的时间间隔,主要是为了衡量无线网关处理数据的能力。按照上述实验环境,对串口波特率为4 800 bit/s和9 600 bit/s进行测试,网关每次从串口读取1 000个数据包时进行一次计算数据包平均时延,每种实验条件下进行10次时延计算后求平均值,实验结果如表3所示。

表3 网关时延

从表3可以看出,在不同包长度和波特率情况下,本文网关平均时延均很小小,平均值为8.48 ms,远低于CCSA标准规定的平均时延上限100 m s,表明网关能及时处理数据包。

5.4 网关功耗

功耗高低在无线传感器网络应用中至关重要,给Zigbee、WiFi、蓝牙4.0模块依次提供3 V,5.5 V,3.6 V的供电电压。使用万用表测量网关在单独使用各接入模块发送和接收数据以及休眠状态下功耗,得到测量结果如表4所示。

表4 网关功耗mW

从表4可以看出,网关在处于休眠状态时的功耗最低,正常发送和接收状态下,蓝牙4.0功耗最低,共117.8 mW,更适合无线传感器网络,而Wi-Fi功耗远大于其他2种模块,不适合无线传感器网络。

6 结束语

无线传感器网关是无线传感器网络投入实际应用的重要组成部分,起到网线传感器网络与Internet网络之间的桥接作用。本文从硬件设计、软件实现以及通信包设计方面,介绍一种基于短距离、低功耗蓝牙4.0通信技术以及3G远程通信技术的无线传感器网关,能够实现传感器网络与Internet网络的数据转发、协议转换、交互控制等功能。下一步可将本文设计的网关与物联网、云计算等技术相融合应用于智慧家居领域。

[1] 钱志鸿,王义君.面向物联网的无线传感网络综述[J].电子与信息学报,2013,35(1):215-227.

[2] 杨 军,张和生.一种交通信息采集传感器网络的IP互连方法[J].仪器仪表学报,2011,32(11):2598-2601.

[3] 李战明,李振兴.ZigBee技术在人员搜救系统中的应用[J].电子测量与仪器学报,2011,25(2):186-190.

[4] Xu Honghua,Liu Ke.Design on Monitoring System Based on Zigbee and Ethernet for Building Energy Consumption in University[C]//Proceedings of 2011 International Conference on Internet Technology and Applications. Washington D.C.,USA:IEEE Press,2011:1-4.

[5] Zhu Qian,Wang Ruicong.IOT Gateway:Bridging Wireless Sensor Networks into Internet of Things[C]// Proceedings of the 8th IEEE/IFIP International Conference on Embedded and Ubiquitous Computing. Washington D.C.,USA:IEEE Press,2010:347-352.

[6] He Hongjiang,Yue Zhuqiang.Design and Realization of Wireless Sensor Network Gateway Based on ZigBee and GPRS[C]//Proceedings of the 2nd International Conference on Information and Computing Science. Washington D.C.,USA:IEEE Press,2009:196-199.

[7] 陈 琦,韩 冰,秦伟俊,等.基于Zigbee/GPRS物联网网关系统的设计与实现[J].计算机研究与发展,2011,48(Suppl):367-372.

[8] Hu Ronglin,Gu Xiajun.Research and Design of Gateway Node Based on CDMA for Wireless Sensor Netw orks[C]//Proceedings of the 2nd International Conference on Information Science and Engineering. Washington D.C.,USA:IEEE Press,2010:2285-2288.

[9] 孙 睿,付志红.基于嵌入式Linux的蓝牙以太网关设计[J].计算机应用,2006,26(1):26-29.

[10] Chu Hongyu,Xie Zhijiang,Shao Yanhua.Design and Implement of WSN Based on Bluetooth and Embedded System[C]//Proceedings of 2010 International Conference on Computer Application and System Modeling.Washington D.C.,USA:IEEE Press,2010:641-644.

[11] Reddy A V D G,Dhad yalla G,Kumari N.Experimental Validation of CAN to Bluetooth Gateway for In-vehicle Wireless Networks[C]//Proceedings of Emerging Trends in Communication,Control,Signal Processing& Computing Applications.Washington D.C.,USA:IEEE Press,2013:1-5.

[12] 欧阳骏,程子龙,黄宁淋.蓝牙4.0BLE开发完全手册-物联网开发技术实践[M].北京:化学工业出版社,2013.

[13] 李 杰,陈庆奎.基于蓝牙4.0的GPU集群功耗测量系统设计[J].电子测量与仪器学报,2014,28(3):314-319.

[14] 姜 波.WCDMA关键技术详解[M].北京:人民邮电出版社,2012.

[15] 胡 文,宁世勇,李明俊,等.Android嵌入式系统程序开发[M].北京:机械工业出版社,2013.

[16] Bergstrom E.Anycast-RPC for Wireless Sensor Networks[C]//Proceedings of IEEE International Conference on Mobile Adhoc and Sensor Systems.Washington D.C.,USA:IEEE Press,2007:1-8.

编辑 陆燕菲

Design and Realization of Wireless Sensor Gateway Based on Bluetooth 4.0 and 3G

LIAO Pengfei,CHEN Qingkui
(School of Optical-electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai200093,China)

Aiming at the problem that the communication protocol of Wireless Sensor Network(WSN)is not incompatibility with the Internet network,a wireless sensor gateway based on low-power bluetooth 4.0 communication technology and 3G is designed.The primary processor of the gateway is designed by microprocessor S5PV210,which is used to control the communication between CC2540 bluetooth module and wireless sensor node and operate the 3G module to communicate with Internet.The software platform of the gateway is based on Android operating system,which realizes data collection,network protocol conversion,interactive control between WSN and Internet network.Test result shows that the gateway has low packet loss rate of receive and forward data,latency and power consumption,and it can ensure efficient communication between WSN and Internet network.

Wireless Sensor Network(WSN);bluetooth 4.0;Android system;Wireless sensor gateway;TCP/IP protocol

廖鹏飞,陈庆奎.基于蓝牙4.0与3G的无线传感器网关设计与实现[J].计算机工程,2015,41(9):13-18,24.

英文引用格式:Liao Pengfei,Chen Qingkui.Design and Realization of Wireless Sensor Gateway Based on Bluetooth 4.0 and 3G[J].Computer Engineering,2015,41(9):13-18,24.

1000-3428(2015)09-0013-06

A

TP391

10.3969/j.issn.1000-3428.2015.09.003

国家自然科学基金资助项目(60970012);高等学校博士学科点专项科研博导基金资助项目(20113120110008);上海市一流学科建设基金资助项目(XTKX2012);上海市工程中心建设基金资助项目(GCZX14014);上海市科委科技攻关基金资助重点项目(14511107902);沪江基金研究基地专项基金资助项目(C14001);上海智能家居大规模物联共性技术工程中心基金资助项目(GCZX14014)。

廖鹏飞(1989-),男,硕士研究生,主研方向:物联网技术,无线传感器网络;陈庆奎,教授、博士、博士生导师。

2014-10-17

2014-11-24 E-m ail:liao_pf@sina.cn

猜你喜欢
线程网关蓝牙
蓝牙音箱的直线之美
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
浅谈linux多线程协作
紧急:蓝牙指尖陀螺自燃!安全隐患频出
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
基于上下文定界的Fork/Join并行性的并发程序可达性分析*