APP下载

基于体域网的低能耗多协议转换网关设计

2021-08-27丽,王杨,赵翼,张

计算机技术与发展 2021年8期
关键词:网关时延节点

高 丽,王 杨,赵 翼,张 鑫

(1.安徽师范大学皖江学院,安徽 芜湖 241008;2.安徽师范大学 计算机与信息学院,安徽 芜湖 241002)

0 引 言

随着嵌入式技术、无线传感网络的不断发展,物联网(internet of things,IoT)开始覆盖生活的方方面面。物联网正被广泛地应用在家居、物流仓储、城市交通、医疗等领域[1]。对于人体数据的实时监测和健康状态的可视化,传统的医疗方法很难做到。体域网(body area network,BAN)的出现,对于解决这一问题起到了很大的作用。

体域网由一套可移动、外型小且灵便、能够采集并可以传输信息的传感器和BAN协调器组成[2],是一种附着在人身体上的网络[3]。网络中的传感器,既可以随身携带,也可以植入体内[4]。在体域网系统中,具备无线通信功能的采集设备能够同时具有更大的流动性、灵活性[5]。体域网的数据工作过程一般分成两个阶段:一是体域网内部数据传输,二是体域网与互联网之间的数据传输[6]。在阶段一中,通常采用ZigBee技术。ZigBee是一种无线通信技术,其低成本、低功耗、低复杂度的特点非常适用于体域网这一特殊的应用环境[7-9]。在阶段二中,通常采用Wi-Fi实现无线联网,以满足体域网实时传输数据的需要。由于大量的体域网数据存在数据冗余、噪声大等不足,所以需要对其进行清洗。除此之外,鉴于STM32计算能力不足,需要将采集的数据传送至云平台进行处理[10]。

1 基于体域网的多协议转换网关

可以看出,无线体域网能够将不同的传感器节点采集到的数据进行汇聚、传输,如图1所示。

图1 无线体域网

为了可以让用户能够随时随地地看到自身的身体状况,必须将传感器采集的数据进行存储、传输及可视化。在此处理过程中需要用到Zigbee、Wi-Fi等无线技术。由于不同的技术之间存在差异性,数据处理过程中多协议转换网关是解决异构网络间信息共享的关键设备之一[11]。针对多协议转换网关,已有多位学者对其进行研究。文献[12]用ZigBee和Wi-Fi完成了对家庭网关的设计,并且提供简单灵活的用户界面和对系统的远程访问请求。另外此系统还对在两种协议下的设备响应的时延做了比较,完成了系统时延测试。文献[13]提出了一种基于ZigBee的心率监测系统的跌倒检测和身体定位系统,可以通过安卓APP看到人体的信息。当用户跌倒时或者心率不正常时可以直接通知医疗机构和用户的家人。文献[14]在基于3G/Wi-Fi的协议下加强体域网的服务质量,保证体域网的高效性。

对于公共服务的网关研究,文献[15]设计了一种基于ZigBee和Wi-Fi的铁路监视优化系统。文献中提出了分层优化的思想,巧妙利用了ZigBee和Wi-Fi的优点设计了整个系统,减少了网关传感器节点和中间的无线传感器节点的不平衡负载。文献[16]提出了一种基于ZigBee和Wi-Fi网络的建筑火灾监控系统设计。通过ZigBee定位火灾现场,通过Wi-Fi上传现场信息,给建筑安保人员制定救援方案。文献[17-18]提出了一种多协议的智能物联网安全网关,不仅可以将多协议(Wi-Fi、ZigBee、Bluetooth等)设备与以太网互联,还能够将传感器采集的数据上传到云端,进行数据分析并且提供本地数据存储功能,以便审计分析。

文中主要针对体域网这一特殊的应用场景,在综合前期相关研究的基础上,设计一种基于体域网的多协议网关,实现数据实时、有效传输。

2 多协议转换网关设计

2.1 网关总体架构设计

基于IoT的体域网从上至下可以分为应用层、网络层、感知层。其中网络层的网关既为下层提供接口,也为上层提供服务,是整个系统的中枢。本系统利用ZigBee协议模块,将传感器采集的数据发送给网关,通过网关将数据上传到云平台,实现数据的可视化。系统网络结构如图2所示。

图2 系统网络结构

对体域网的各个ZigBee感知节点而言,网关起到了接收各个节点采集的数据并且上传到云端的作用。云端接收到数据后,进行数据融合并将实时数据反馈到用户端。用户可以通过登录网页来查询自身的身体状况,还可以浏览历史记录来获取更多的信息。

2.2 网关的硬件设计

网关的硬件模块部分主要对其由主控模块、无线通信(ZigBee模块、Wi-Fi模块)部分进行设计。

2.2.1 主控模块

主控模块是整个网关的核心,主要负责数据的接收、存储、转发,同时还要完成各个协议之间的转换,是网关设计的核心部分。本系统利用的主控器是基于Cortex-M3的STM32F107处理器。

图3为网关的设计框图。核心处理器利用串口接收ZigBee汇聚节点收到的传感器数据,然后通过Wi-Fi模块将数据发送至云平台,完成ZigBee与WiFi之间的协议转换。网关实际接线时,需要将ZigBee汇聚节点的UART0_TX接口通过杜邦线直连STM32的USART1_RX接口,实现设备间的相互通信。

图3 网关硬件设计框图

2.2.2 ZigBee模块

ZigBee模块是BAN进行无线数据传输的必需设备,作用是将BAN中传感器采集的数据传输到汇聚节点。经过筛选,选用了TI公司的CC2530芯片实现ZigBee协议。CC2530与F107可以通过串口进行通信。CC2530集成了两个USART,F107集成了五个串口,完全可以实现设备之间的相互通信。

2.2.3 Wi-Fi模块

无线通信部分主要是Wi-Fi,选择的Wi-Fi模块是ESP8266。采用的ESP8266是ALIENTEK推出的一款高性能的UART-Wi-Fi模块ATK-ESP8266,该模块通过FCC,CE认证,可直接用于产品出口欧美地区。ESP8266采用LVTTL与MCU(也可以是其他串口设备)完成通信,串口与WI-FI之间的协议转换主要由内置TCP/IP协议栈完成。ATK-ESP8266模块,传统的串口设备只是需要简单的串口配置,就可以让设备使用互联网传输数据。

2.3 多协议转换网关软件设计

体域网中的设备通过ZigBee与网关连接。在网关模型设计中将体域网分为感知层、网络层、应用层。感知层的主要功能是完成各个传感器的驱动,使每个传感器都可以正常工作。网关层的主要作用是将感知层传输的数据上传到云端,为上层提供数据支撑。应用层为用户提供专门的服务和管理平台,为用户提供数据可视化服务。硬件模块设计并完成搭建后需要对其相关软件部分进行设计。

2.3.1 系统软件工作流程设计

由于UC/OS-II是一款极其优秀的开源的嵌入式实时操作系统,本系统开发工具选用UC/OS-II的操作系统。因为体域网(BAN)中的每个数据都至关重要,所以网关的工作是系统的核心。

图4为网关系统主控流程。上电或者复位后,立即启动Flash中的代码,开始执行各种硬件资源及UC/OS-II的初始化,包括创建空闲任务、统计任务、定时器任务,然后创建第一个用户任务Task1,设置优先级及堆栈大小,之后运行多任务,等待汇聚节点传过来的数据,并将数据放到设置的任务中,从设置的任务及定时器任务、统计任务和空闲任务中找到优先级最高的任务去执行,当执行结束后,会重复上述动作。由于UC/OS-II是基于优先级调度的抢占式实时内核,当接受到来自不同的采集节点采集的数据时UC/OS-II会根据设置的优先级进行调度并上传数据到云端,保证数据的完整性、实时性。

图4 系统主控流程

2.3.2 云端数据格式设计

数据上云是未来的趋势之一,不仅能够解决大数据难以在个人用户端上存储的问题,更能省去搭建服务器以及后期维护的时间。通过对比,选择阿里云平台作为系统数据存储解析的工具。在整个系统的运行中,数据上云是整个网关的功能之一。从汇聚节点发送数据到数据传输至云端主要按照如下四个步骤进行:

Step0:汇聚节点发送数据对传感器的汇聚节点发送数据进行判断。若正确,直接进行USART1中断;否则需要在任务调度器进行任务的重新调度;

Step1:开启USART1中断后,对接收的数据进行存储,直至存储完毕,中断结束;

Step2:等待任务调度器调度此次任务,并将存储的数据放入UART2A—>DR中;

Step3:数据正确存储过后,实现云端传输。

为了解决体域网中不同传感器传输的数据类型不同的问题,需要对其进行分类。在底层设计数据报文格式,将得到的传感器数据加上帧首部表示不同的数据类型,云端数据设计格式如表1所示。图中字段依次表示开始、数据长度、标识码、地址、数据格式、检验序列。对于异种类型的传感器,主要表现在其标识位、网络地址、数据位的不同。

表1 云端数据格式设计

2.3.3 服务调度模式设计

为减轻CPU负担及避免数据的重复上传,需要对网关的任务优先级进行设计,以适应体域网环境的特殊应用。在uC/OS-II的操作系统中,可以在创建任务的同时设置当前任务的堆栈、任务优先级等参数。为了提高CPU利用率,需要将任务的优先级在初始化时进行一定的设置;为了提高系统的实时性,任务的优先级需要做调整并且在数据上云结束后将任务的优先级更改为原来的优先级。部分伪代码设计如下所示:

Input:Data collected by the sensor

Output:The data is uploaded to the cloud platform

Function:Upload the data collected by the sensor to the cloud

Step0: Create task x and set the priority to TaskxPrio

Step1: Perform the following operations on the received data:

Step1.0:if each data received is the same as each data previously saved; Flag=0;

Step1.1:if each data received is different from each data previously saved; Save every data; Flag=1;

Step2:When Flag=1, perform the following operations:

Step2.1:Change the priority of task to TaskxPrio1(TaskxPrio1>TaskxPrio);

Step3:When Flag=1, perform the following operations:

Step3.1: Data is uploaded to the cloud platform;

Step4:Delay of 1 second

Step5:When Flag=0, perform the following operations:

Step5.1:Change the priority of task to TaskxPrio;

网关在接收汇聚节点传输的多种传感器采集的数据之前,可以设置各个任务的优先级,并按照数据的重要程序更改对应任务的优先级和延时,保证重要的数据及时传输。

3 运行结果分析

网关的实际测试是在本地win7环境下进行的,其丢包率、时延均通过XCOM串口调试助手和网络调试助手完成测试。另外,网关的有效性在阿里云平台进行测试。调试工具抓取数据如图5所示。

图5 调试工具抓取数据

3.1 丢包率测试

数据在网络传输过程中,通常会发生网关丢包的现象。对于本系统中网关数据丢包主要发生在网关接收数据与通过Wi-Fi发送数据时。其中,网关通过Wi-Fi发送数据,经过实际多次对5 000个数据包的测试,基本无丢包现象。

当汇聚节点将数据传输给网关,网关接收数据时,测试了30轮次数据,每轮分别测试了500和2 000个数据包,测试结果如图6所示。对测试结果进行统计计算,30轮次数据接收,每轮次2 000个,实际平均丢包率为1.42%;每轮次500个,实际平均丢包率为0.53%。所以后期测试均采用每轮次500个数据包进行实验。

图6 丢包数统计

当然在此测试过程中,由于网关是异构网络间信息共享的关键设备之一,因此需要长时间有效、稳定的运行,所以稳定性成为了网关性能中的重要一环。经过测试,网关在连续运行24小时内并未出现系统死机、丢包率急剧上增等现象。

3.2 时延测试

网关工作时,其时延包括发送、处理、传播、排队四种时延。根据网关数据实时性的需要,系统主要计算网关的总时延以及发送时延。总时延不仅包括以上4点,还包括处理器处理时间以及任务调度的时间。发送时延主要发生在数据从发送器发送到完全进入信道上,影响到信道的利用率。如图7所示,实验测试的是30轮网关的总时延和发送时延并对其进行计算统计,每轮接收500个数据包。

图7 网关总时延统计

其中,横坐标展示为30个实验轮数,纵坐标展示为对应轮次时延值大小,单位为ms。经计算,30轮次的平均总时延为23.734 ms,发送时延为2.433 ms。总体来说时延值较低,网关能够满足一定条件下的实时性需要。

3.3 能耗测试

数据在网络中传输需要能量,而节能一直是网关研究的一个热点。因此在丢包率、时延良好的情况下,对本系统发热能耗进行测试分析,图8为系统能耗统计图。其中,横坐标是实验次数,测试时长为1小时;纵坐标是消耗的能量,单位为J。对系统进行30轮次实验,每次数据包大小为500,从图中可以看出,每轮次的能耗为20 J至25 J,能耗较低且平稳,说明网关具有低能耗的特点。

图8 能耗统计

3.4 有效性测试

传感节点采集的数据通过设计的网关发送到阿里云服务器端,通过云服务器的计算处理,对数据进行可视化处理并展示,其中采集用户心率和血氧的数据计算可视化后如图9所示。虽然传感器自身精度以及人为检测时的不正当操作会导致数据有一定的误差,但图9的折线图基本符合人体心率和血氧的标准。说明网关数据在不同协议之间的转换后能够正常运行。

图9 用户身体数据测试

4 结束语

文中利用STM32核心组件,通过ZigBee模块、串口与WiFi通信,设计了一种低能耗多协议网关,实现异构网络的数据相互操作。通过对软硬件的详细设计,传感器不仅能够采集异种类型的数据,同时也能将采集到的数据通过网络上传到云平台,进行集中处理存储。最后对数据的各项性能指标进行测试分析,并对云端的用户身体数据进行可视化展示,测试结果良好。该设计虽在网关的研究上具有一定的重复性,但是在体域网这一特殊的应用场景中仍具有一定的应用价值,能够对网关的各种性能参数进行实验分析,体现了良好的应用指标。发掘网关的特色与提升网关的性能将是下一步的研究方向。

猜你喜欢

网关时延节点
基于RSSI测距的最大似然估计的节点定位算法
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
分区域的树型多链的无线传感器网络路由算法
大规模低轨卫星网络移动性管理方案
计算机网络总时延公式的探讨
计算机网络总时延公式的探讨
一种主从冗余网关的故障模式分析与处理
一种基于能量和区域密度的LEACH算法的改进
基于物联网的IT运维可视化管理系统设计与实现