动态无线传感器网络的设计与应用

2018-10-25 13:14标,王
自动化仪表 2018年10期
关键词:字节路由信道

于 标,王 月

(扬州市职业大学电气与汽车工程学院,江苏 扬州 225009)

0 引言

目前,对动态无线传感器网络的研究已取得了一些理论成果和仿真结论,但实用性还不强[1]。Ad hoc一词源于拉丁语,电机电子工程师协会(IEEE)标准IEEE802.11将分组无线电网络称为 Ad hoc网络。Ad hoc网络的特点是动态、临时、自组织。动态无线传感器网络具有Ad hoc网络的特点。因为动态网络中的传感器节点是移动的,所以这种网络的拓扑结构是时变的。为了适应节点移动的随机性,网络节点要具有主动入网、被动入网、退网等节点路由功能,网络的拓扑结构要可定时重构。结构优化的网络拓扑需要兼顾网络的负载均衡性、抗通信干扰性、功能可靠性、可扩展性与便捷性等性能[2]。这是对无线传感器网络设计的要求。但对于一个动态无线传感器网络而言,首要问题是有效组网,以最大限度地连通所有可能的节点。因此,设计一种结构简单、便于重构的网络拓扑是有效组网的关键。本文提出多叉树结构的动态无线传感器网络。其拓扑结构简单,能最大限度地连通各个节点。

1 节点电路

无线传感器网络的性能主要取决于通信模块和微处理器模块的性能,所以节点通信性能的优劣和数据处理能力的强弱由这2个模块的性能决定[3]。廉价的模块难以获得良好的处理数据的能力和通信能力[3]。本文设计的测温无线传感器节点电路如图1所示。该电路工作可靠,性能稳定。

Atmega8_L是ATMEL公司的高性能单片机,有512 B容量的EEPROM、8 KB容量的可编程flash,以及采用串行外设接口(serial peripheral interface,SPI)协议的串行硬件接口。Atmega8_L是一款低功耗、高性能、性价比较好的单片机[3]。其采用北京迅通科技有限公司生产的、基于nRF24L01的无线通信模块,通信范围为30~40 m。nRF24L01通信模块工作在2.4~2.5 GHz的频率下,有125个通信频道;每个频道有5 B的地址配置。该模块具有硬件自动应答与重发功能,功耗低、价格便宜[3]。该电路选择一节可充电电池作为电源。电池参数为7号、900 mA、1.2 V,可用BL8550/5.0 升压芯片升压至 5 V[3]。

图1 无线传感器节点电路图Fig.1 Circuitry of wireless senor node

2 网络的拓扑结构

多叉树拓扑结构如图2所示。

图2 多叉树拓扑结构图Fig.2 Multi-branch tree topology structure

设u0为根节点。无线通信模块的性能决定了每个节点间的无线信号是否可以到达,故顶点集U={u0,u1,…,um}一定存在一个最多边数的拓扑结构Kmax(U,Wmax)。Wmax是无序积 U&U 的一个子集[3],Wmax⊂U&U。拓扑结构的连通性取决于节点几何位置的有效布置,要使Kmax的关联包含顶点集U的所有元素。但该网络结构不一定易于管理和控制[3]。Kmax(U,Wmax) 可生成不同的子图 K(U,W),W⊆Wmax。W的关联应包含顶点集U的所有元素。无线传感器网络的网络能力和网络属性由W的选择所决定[4]。

定义图 2 为 K(U,W),顶点集为 U={u0,u1,…,um},顶点集中的顶点ui和uj之间只有一条边qij相连。实际上,从信号能传达的要求来看,通信节点之间有一个关联就可以了[3]。W={qij|i=0,1,2,…,m;j=0,1,2,…,m;h(ui,uj) ≤min(hi,hj),i≠j},hi是顶节点的可靠通信半径,h(ui,uj)是ui与uj之间的几何距离,是与qij所关联的[3]。根据顶点集U的某种空间分布及h(ui,uj) ≤min(hi,hj)的限制,确定了图 K(U,W)的拓扑结构。这是该网络拓扑的一种自然连通属性[3]。

2.1 拓扑结构的特点

多叉树拓扑结构的顶点集 U={u0,u1,…,um}。当确定0层顶点u0后,两顶点ui和uj间的通路t(ui,uj)是它们之间的唯一无线通信信道[5]。多叉树结构是存储分类或分级信息的一种数据结构,具有层次划分性和搜索顺序性的特点[6],可应用于区位选址、最短电文编码、信息查询等被搜索目标具有分布性的场合[6]。传感器节点无线信号传输的单跳性符合树型结构的层次性,传感器节点位置的分布性和节点地址的唯一性符合树型结构搜索的顺序性。多叉树拓扑结构对无线传感器网络的节能控制和通信跳数具有结构优势,也满足定时重构网络的快速性要求。

2.2 多叉树的构建

网络拓扑结构的建立实际上是一个图的某种遍历过程[7]。关于图的遍历算法有多种,本文采用广度优先搜索(breadth-first search,BFS)算法的思想构建多叉树的结构,用蚁群算法中的信息索[6]概念,在到达节点上留下路由信息。由根节点发出各层组网信息,逐层广播,自然选择,有序构建。

对顶点集 U={u0,u1,…,um},设 u0为网络的主控节点,不移动,为上位计算机的网络接入节点,则定义u0为根节点。在时间T内,图K(U,W)是否连通,取决于任意 ui和 uj间是否满足 h(ui,uj) ≤min(hi,hj)。节点ui的无规则移动影响着图K(U,W)的连通性。因此,必须定时重构图K(U,W)的拓扑结构,以适应网络结构的时变特性[8]。

3 数据链路层设计

数据成帧、帧检测、差错控制以及无线信道的使用控制由数据链路层完成,数据链路层还要减少邻居节点广播引起的冲突。温度测量是常见应用。本文以此为背景,为保证数据的正确性与系统性能要求,定义如图3所示的数据帧格式。

图3 数据帧格式图Fig.3 The data frame

3.1 数据帧定义

对于图3,各字节定义如下:B0为命令字节,B1为组网结束字节,B2为层次号字节,B3为本节点接收信道最低位地址字节,B4为上层节点接收信道最低位地址字节,B5和B6为温度数据字节。命令字节可定义上行命令00H、下行命令01H、校时命令02H,组网命令03H,退网命令04H等。组网结束字节定义00H为未结束,01H为结束。在网状态字节定义00H为未入网,01H为入网。层次号字节为本节点所处的层次号。无线信道的使用采用码分制,各节点共用同一个频道5个字节的地址分配。

3.2 节点的路由特性数据定义

设节点的路由特性数据为结构数据Yi={Ai,Hi,Ei,Mi[m],Gi[n],PDi}。定义如下:Hi=B0,Mi[0]=B1,Ai=B2,PDi=B3,Ei=B4。Gi[n]为第 i个节点 n 个下一层节点接收信道地址;PDi为第i个节点的接收信道地址;Mi[m]为组网结束标志数组,m是不确定的,由实际节点几何分布确定,m∈(1,2,…,255)。Mi[0]∩Mi[1]…∩Mi[m]=1,为第 i个节点组网结束标志。

4 路由层设计

网络路由层通过数据融合,实现路由生成和路由选取[9]。本网络的首要任务是上传数据,网络结构定时重构,由u0发送退网指令。u0负责与上位计算机通信及全网络数据的上传下达。

4.1 路由协议

路由层协议如下。下行时,发送节点从Gi[n]中选定下一层节点的逐层下行数据,使数据传到所有目标节点。上行时,因本网络的上行最终节点就是u0,所以发送节点由其上行路由Ei发送至上一层节点,逐层上行数据,直至数据传输到u0。

4.2 组网方法

网络的组网方式为有序组网。由0层节点发出组网指令,组网结束后,上位计算机就可以获得各入网节点的路由特性数据,从而了解全网的网络结构以及所有可能的路由,为网络的管理提供依据。

4.2.1 组网实现

本文提出一种受控的组网模式,按节点通信能力自然扩散,联通相邻节点。在0层节点的控制下,依次广播每层的组网信息,广度优先[10]。广度成立的条件为h(ui,uj)≤min(hi,hj)。在发送节点通信范围内,可能存在多个下层节点。它们在响应发送节点信息时,必然存在无线数据拥挤与信道竞争现象,极易导致通信失败。故节点程序设计时作如下考虑。①u0发送组网控制命令H0及层次号r=1,2,…,R。②ui接收到层次号r后,若已组网,则转发该层次号r;如无下层节点,则返回本节点组网结束标记。③若ui未组网,则本层组网,并上传ui的接收信道地址。

4.2.2 无线模块信道地址配置

定义节点发射信道地址为{A0,A1,A2,A3,A4},接收信道地址为{C0,C1,C2,C3,C4}。以 256 个节点为例,(A0,C0)∈(0,1,…,255),其他地址数据固定,且A1=C1、A2=C2、A3=C3、A4=C4。各节点 C0由该节点印刷电路板(printed circuit board,PCB)板跳线确定,C0=PDi,A0=B4。

5 组网算法

由于节点的移动性,网络拓扑结构需要不断更新,因此节点具有退网功能,以利于动态网络的重构。04H退网命令是全网各节点通信参数配置及数据变量恢复为初始值的命令,由u0发出,各节点转发。

5.1 节点信道地址配置

节点的路由特性数据是在组网过程中形成的,规定 u0接收信道为{00,00,00,00,00},u0电路板跳线C0=00H;u0发射信道为{A0,00,00,00,00},A0∈(1,2,…,255)。其他节点为 ui(i=1,2,…,255)。ui接收信道为{C0,00,00,00,00};ui发射信道为{B4,00,00,00,00},B4为上一层节点的接收信道。如某节点接收信道为{04,00,00,00,00},则其 PCB 板上的跳线为 PDi=04。

5.2 节点组网算法

u0作为组网的主控节点,发布组网命令H0。其值为03H,并发层次号r以及本节点的C0数据。为便于说明,设有K个第一层节点,组网结束字节用M1n(n=1,2,…,k)表示。M1n=00H 表示未组网,M1n=01H 表示已组网。

① u0输出:H0=03H,C0=00H,B4=C0,r∈(1,2,…,R)。

② if(M11∩M12…∩M1k=0)then(r=r+1,C0=C0+1)else(全网组网结束)。

③ ui接收到数据帧后:if(Mi[0]∩Mi[1]…∩Mi[m]=0)then(B3=C0,上传数据直至 u0)else(发v0输出参数,转步骤④)。

④ uj(i≠j)接收到ui所发数据帧后,与步骤③作同样处理。若uj为最末一个节点,则上传M1j=01H至ui。

⑤ ui(i≠j)接收到uj所发数据帧后,若M1j=01H,则置 Mi[m]=M1j,ui上传数据至 u0。

6 结束语

本文以时间驱动方式控制网络工作。0层节点每重构一次网络,全网节点时间需要同步,并向全网发送一次校准时间的信号[11]。节点以3 s的时间间隔上行数据,由节点的C0乘以3得到上行数据时刻,单位为s。用31个节点组成了一个动态无线传感器网络测温系统并进行测试,并由0层节点负责与上位计算机的通信。测试结果表明,该网络能成功组网和退网,上下行数据正常。节点上传数据是网络的主要功能。本文所用的网络工作方式是时间驱动方式,使用无线信道时不会出现拥挤现象,省去了处理信道拥挤的开销。多叉树型拓扑结构简单,易于重构,通信速度快,路由明晰,适用于中小型动态无线传感器网络。

猜你喜欢
字节路由信道
No.8 字节跳动将推出独立出口电商APP
信号/数据处理数字信道接收机中同时双信道选择与处理方法
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
No.10 “字节跳动手机”要来了?
路由重分发时需要考虑的问题
轻量级分组密码Midori64的积分攻击
一种无人机数据链信道选择和功率控制方法
基于导频的OFDM信道估计技术