随着无线传感器网络的大规模应用,应用系统对传感网络传输实时性的提升,汇聚节点感知数据的远程实时传输显得尤为重要。本文将基于ZigBee协议的无线传感器网络与基于TCP/IP协议的Internet相连接,并引入μC/OS-II嵌入式实时操作系统,对系统资源进行管理和调度。实验结果表明,所设计的网关能够有效解决数据远程传输的问题,同时能够满足应用监控的实时性要求。 With the large-scale application of wireless sensor network (WSN), in this application system, it is particularly important to promote the transmission real-time and achieve the remote real-time transmission of the data that the sink nodes sensor gets. This paper uses the way of the connection of the WSN based on Zigbee protocol and the Internet based on TCP/IP protocol, meanwhile in-troduces μC/OS-II embedded real-time operating system to manage and schedule the system re-source. The experiment result shows that the design of this gateway can effectively solve the problem of data remote transmission, and also can meet the real-time requirement of the applica-tion monitoring.
刘雪梅,宋东东
华北水利水电大学信息工程学院,河南 郑州
收稿日期:2016年4月8日;录用日期:2016年4月24日;发布日期:2016年4月27日
随着无线传感器网络的大规模应用,应用系统对传感网络传输实时性的提升,汇聚节点感知数据的远程实时传输显得尤为重要。本文将基于ZigBee协议的无线传感器网络与基于TCP/IP协议的Internet相连接,并引入μC/OS-II嵌入式实时操作系统,对系统资源进行管理和调度。实验结果表明,所设计的网关能够有效解决数据远程传输的问题,同时能够满足应用监控的实时性要求。
关键词 :无线传感器网络,μC/OS-II,ZigBee,网关
近年来,随着电子技术和无线通信技术的快速发展,无线传感器网络始终是一个热门的话题,其在军事、环境监测、医疗健康等领域都有广泛的应用 [
μC/OS-II是基于任务优先级进行任务调度,管理微控制器资源的嵌入式实时操作系统 [
同时,实时内核可以规避前后台程序设计缺陷,方便程序设计和优化,对实时性要求较高的应用也可满足。其占用系统资源少,编译后的内核不到10 KB,系统本身的实现具有高度模块化,可通过条件编译的方式对系统功能进行裁剪。另外,源代码开放,应用广泛,且技术支持全面,系统移植相对简单,其软硬件体系结构如图1所示。
无线传感器网络网关系统主要由五部分组成,应用处理器、协调器、GPRS模块、LCD显示屏和其他外设,如图2所示。系统首先需要通过GPRS模块与监控中心建立TCP连接,然后协调器将汇集的数据通过串口按照既定格式发送到应用处理器,应用处理器解析收到的数据帧,同时通过GPRS模块按照Internet协议转发到监控中心。LCD显示屏用于显示网关关键信息,便于使用和调试。其他外设,例如按键用于某些参数的设定、蜂鸣器用于特定情况的报警或作为提示音等。
图1. μC/OS-II软硬件体系架构 [
图2. 系统总体架构图
网关应用处理器采用意法半导体公司的STM32F107VCT6芯片,其专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,配置一流的外设——1us的双12位ADC、4 Mbps的USART、18 Mbps的SPI和18 MHz的I/O翻转速度等,拥有最大的集成度,简单的结构和易用的开发工具 [
操作系统的代码分为与CPU无关的代码和与CPU相关的代码两部分,移植过程中间只需要修改与CPU相关的代码部分,如表1所示。
无线传感器网络网关系统主要分为以下七大任务,详情见表2所示。
任务间的切换按照优先级进行调度,相关的事件之间,通过信号量/邮箱进行同步与通信。图3为主要任务事件传递关系图。
类别 | 文件 | 详情 | |
---|---|---|---|
处理器相关头文件 | OS_CPU.H | 数据类型定义 | |
堆栈单位 | |||
处理器相关C代码 | OS_CPU_C.C | 任务初始化时堆栈设计 | |
处理器相关汇编代码 | OS_CPU_A.ASM | 启动高优先级的任务 | OSStartHighRdy() |
任务级上下文切换 | OSCtxSw() | ||
中断级任务切换 | OSIntCtxSw() | ||
时钟中断处理函数 | OSTickISR() | ||
进入/退出临界区 | OS_EXIT_CRITICAL() OS_ENTER_CRITICAL() |
表1. 与CPU相关的代码文件
任务 | 优先级 | 备注 |
---|---|---|
USART1_ZigBee_Handle | 0 | 接收存储协调器串口发送的数据 |
USART2_GPRS_Handle | 1 | 接收存储MC55模块发送的数据 |
GPRS_Pkt_Receive | 4 | 接收监控中心传送过来的数据 |
ZigBee_Pkt_Process | 5 | 处理ZigBee接收缓冲区的数据 |
GPRS_Pkt_Upload | 10 | 按照规定格式,上传处理过的数据 |
LCD_Display_Update | 15 | 显示最新采集数据和相关配置数据 |
Key_Scan_Process | 20 | 按键处理 |
表2. μC/OS-II主要任务表
图3. 主要任务事件传递关系图
MC55模块主要功能包括短信、语音通话和GPRS数据传输,同时内嵌TCP、UDP、HTTP、FTP、SMTP、POP3多种协议。在网关的设计过程中主要使用GPRS数据传输和短信功能,通过串口发送AT指令与MC55模块通信。图4即为发送AT指令流程图。
图4. 发送AT指令流程图
只有当指令发送成功后,函数才会从while(Flag == 0)循环中退出,指令未发送成功时,函数会按照设定的时间间隔(wait_time)重新给模块发送相同的指令,并检测是否成功,直到成功后,退出并关闭定时器。为保证与服务器保持长连接,在与服务器建立连接后,定时向服务器发送心跳包。
采用TI推出的CC2530构建无线传感器网络,利用ZigBee协议栈Z-stack,组建星型拓扑结构的网络。网络由协调器(Coordinator)、路由器(Router)和端节点(Endpoint)三种类型设备构成,网关应用处理器与协调器通过串口相互通信,对ZigBee网络进行管理与维护。
ZigBee协议栈实现了无线传感网络的建立和维护,内部嵌入有实时操作系统(Real Time Operating System, RTOS) OSAL (Operating System Abstraction Layer),并以函数形式提供ZigBee协议所规定的基本功能 [
无线传感器网络网关如图5所示,主要包括电源、核心板、ZigBee协调器接口、GPRS模块接口、3.2寸LCD显示屏、四个按键和4个LED指示灯。
在实际测试中间,我们在服务器上部署了一个WSNServer服务,用以接收网关上传的数据,同时将接收到的数据写入数据库,图6为服务器上运行的WSNServer服务,图7为存入数据库的数据。
端节点模拟数据采集过程,向协调器发送数据,数据类型分为adc_ch1、adc_ch2、adc_ch3、core_voltage、humidity、key_info、mac_addr、ntk_addr、position和temperature。每一个端节点可以采集上述数据类型的全部或者部分,通过设备的MAC地址进行唯一标识,为网络拓扑结构、端节点采集信息管理、无线传感器网络地址与MAC地址管理等应用提供支持。
为了测试网关在上传或者接收数据时的延时,在端节点上传上来的数据尾部加上接收时间戳,作为一个属性字段(发送时间)与服务器上的接收时间做对比。实验结果表明上传数据延时保持在2秒以内,满足监测实时性要求。为了测试网关上传数据的丢包率,我们利用ZigBee网络的帧序列号,对网关的接收处理上传性能进行了测试,图8为丢包率测试结果图。
图5. 无线传感器网络网关
图6. WSNServer服务
图7. 存入数据库的数据
图8. 无线传感器网络网关丢包率
丢包率测试结果图表明,当协调器通过串口向应用处理器传输数据时,发送数据帧频率越高,丢包率越大。当发送数据帧频率超过100 HZ时,丢包率直线上升。产生这种结果的原因在于,应用处理器接收数据是按照帧来处理的,在当前帧未处理完时,下一帧已经到达,从而导致丢包。
通过简化协调器与应用处理器通信帧,减少帧的字节数,可以有效提高网关信息处理的吞吐率。
基于μC/OS-II的无线传感器网络网关,能够实时有效的将端节点感知的数据上传至监控中心。引入μC/OS-II操作系统,将无线传感器网络网关系统按照逻辑关系分割为独立的任务,然后通过操作系统提供的一系列同步与通信机制,使得任务之间按照良好的逻辑稳定有效的运行。对采集信息频率较高的场合,可通过在协调器中增加缓存的方式,减少网关接收帧的频率。
在无线传感器网络网关的设计中,通过引入μC/OS-II嵌入式实时操作系统,对应用处理器软硬件资源进行管理,不仅能够有效解决无线传感器网络感知数据远程实时传输的问题,而且能够规避前后台软件设计缺陷。
刘雪梅,宋东东. 基于μC/OS-II的无线传感器网络网关的设计与实现The Design and Implementation of the WSN Gateway Based on μC/OS-II[J]. 传感器技术与应用, 2016, 04(02): 77-84. http://dx.doi.org/10.12677/JSTA.2016.42009