扫描二维码
随时随地手机看文章
引 言
为了满足无线传感器网络在工业、农业、军事等应用中不断提高的要求,更加健壮、低功耗的无线通信协议成为研究的关键,目前比较流行的无线通信技术包括蓝牙、Wi-Fi、ZigBee、DASH7 等。
DASH7 是基于 ISO18000-7 标准的无线通信协议,具有通用性好,低功耗、穿透障碍能力强等特点。但按照标准DASH7 协议的传输只允许执行两跳路由,只能组成单一的星型拓扑结构,无法对 DASH7 及节点建立多跳 Mesh 网,阻碍的 DASH7 远距传输的应用。
本文使用嵌入式 web 服务器技术,将 DASH7 协议与Wi-Fi 协议(或 TCP/IP 协议)相转化,从而实现一个具有路由选择功能的 DASH7 协议的 Mesh 网,该网络可提升 DASH7协议在无线传感器网络(WSN)中的性能,扩展其应用范围。
1DASH7协议的分析与设计
DASH7是一种基于ISO18000-7的超低功耗开源的无线通信协议标准,使用433Hz的SIM射频传输。与目前流行的ZigBee技术相比具有以下特点:
(1)基于ISO18000-7的DASH7协议与基于IEEE802.15.4的ZigBee协议相比具有更好的通用性;
(2)DASH7的覆盖范围更大,约是ZigBee覆盖范围的6倍;
(3)DASH7的波长更短,具有更强的穿越障碍物的能力;
(4)具有更好的交互性。
由于ISO18000-7只简单制定了DASH7协议标准框架,本文参照ZigBee协议栈设计了一个比较完整的协议栈,其构架层次如图1所示。
DASH7协议栈分为物理层(PHY)、链路层(MAC)、网络层(NWK)、应用支持子层(APS)、应用层(APL)。
PHY层首先做信道能量的检测后,使用433Hz频率发送,物理层包括为MAC提供服务的接口和物理层管理实体(PLME),PLME需要维护物理层信息库(PIB)。
MAC层依据ISO18000-7标准,使用了Z-MAC链路协议。Z-MAC是一种综合TDMA和CSMA的混合型MAC协议,其可根据信道竞争负载大小自适应选择策略。在信道负载过大环境下,Z-MAC执行类似CSMA方式,在信道负载较小环境下,Z-MAC执行类似TDMA方式,图2所示是Z-MAC自适应执行的描述图。
在图2中,图2(b)与图2(c)为图2(a)中节点在不同信道负载下的通信机制,图2(b)为低负载信道中A与B节点的TDMA通信机制,图2(c)为节点在高负载信道中的CSMA 通信机制。
NWK 层负责设备之间的通信,其包括网络安全策略、路由选择等,为了解决 NASH7 无法多跳路由的问题,下文将具体描述使用嵌入式 web 服务技术实现多跳的 Mesh 网,并建立路由表,优化路由选择的方法。
NWK 层依据标准现将 NASH7 节点分为 End_Worker、Rout_Worker、Edge_Worker 三种网络身份, 并用 NetStatus(uintf8)区别标记,表 1 所列是 NASH7 节点的网络身份标记。
由于对 NASH7 节点网络管理引入了域的概念,只有相同域内节点才能自组网,同时,由 Edge_Worker 为域内节点分配一个网络地址 PAN_ID,并建立与维护一张节点的 MAC 地址与其 PAN_ID 的对应表,每个域只能有一个 Edge_Worker。
End_Worker 节点为终端工作节点,Rout_Worker 节点为中间路由节点,Edge_Worker 节点为协调节点或是域边界节点,起作用为组网、接受数据、融合数据、转发数据。
APS 层是为 NWK 层与 APL 层提供一个通用的接口和安全管理,APL 层为开发人员提供硬件设备管理接口应用框架下的 API 等。
2 Mesh 网的设计与实现
本文先将完整的 DASH7 协议栈架构于采用 TI 公司CC430 系列中 CC430F5137 芯片的无线传感器模块上(模块板装载了温湿度和电压传感器),并建立 DASH7 的无线传感器网络 [6] ;然后建立了多个嵌入式 web 服务器站点,并与网络中 Edge_Worker 节点相结合作为 Mesh 网的边界路由节点,其兼顾了 Wi-Fi 或 TCP/IP 协议转发的网关功能,同时具有路由优化功能,可降低网络的通信代价。
2.1 DASH7无线传感网络的设计搭建
基于 DASH7 协议的无线传感器网络拓扑结构是星型网络,由多个 End_Worker 节点,一个Rout_Worker 节点和一个 Edge_Worker 节点组成,End_Worker 节点为终端工作节点,Rout_Worker 节点为单跳中继路由节点,其也可以作为终端工作节点,Edge_Worker 节点为边界融合节点,负责网络协调、接受数据、数据的封装与转发等作用。图 3 所示为 DASH7 星型网络的运行流程图。
2.2边界路由节点的实现
实现DASH7的Mesh网重点在于可以实现多跳功能边界路由节点的设计,利用边界路由节点将多个星型DASH7的WSN连通组成Mesh网。
边界路由节点是将Edge_Worker节点与嵌入式web服务器技术结合,同时利用嵌入式web服务器的网关功能将DASH7协议转为Wi-Fi协议,并依赖Wi-Fi协议形成具有网关和多跳路由功能的异构Mesh网。
嵌入式web服务器具有成本低、处理能力强等特点。具体实现步骤如下:
(1)嵌入式平台的搭建
本文基于ARM9系列的S3C2440嵌入式平台,采用开源的Linux操作系统,修改Makefile文件和按照需求对Linux内核裁剪后进行交叉编译,再将内核移植到嵌入式ARM平台,并为其制作根文件系统yaff2,将TP-LinkWN321G+无线网卡驱动[8]移植到Linux系统中,使用TP-LinkWN321G+无线网卡转发Wi-Fi协议数据。
(2)web服务器的实现目前,常见的嵌入式web服务器有goahead、thttpd、lighttpd等,本文选用稳定性更强的boa-0.94.13。上位机对boa-0.94.13源文件解压后,修改configure配置文件和Makefile文件,并修改部分源代码,交叉编译后移植ARM平台,建立相关目录。
(3)sqlite数据库的移植为方便上位机直接对嵌入式web服务器进行数据访问,需要为其建立数据库,本文采用嵌入式轻量级数据库sqlite-3.6.23,解压后交叉编译移植到ARM机中。
(4)通用网关接口(CGI)应用程序开发开发相应的CGI应用程序将嵌入式web服务器接收到的Edge_Worker节点数据存入sqlite数据库,便于查询,并使用socket技术将接收的数据通过TP-LinkWN321G+无线网卡转发出去。
2.3路由算法的设计与实现
为DASH7的Edge_Worker节点设计基于路由优化算法,是保证DASH7的Mesh网节点通信代价最小。本文以Dijkstra最短路径代价算法为基础,考虑了通信链路质量,设计了一个新的加权路径代价函数来反应链路之间的节点通信代价。
Mesh网在考虑通信链路质量时,信道的负载通信质量通过MAC层Z-MAC协议调节,链路质量主要考虑到达目的节点所经历不同路径的链路代价。
DASH7路由算法的设计步骤如下:
步骤1:依据最短路由路径树算法(SPT)将Mesh网路由节点建立分层,如图5所示。
步骤2:结合将网络分层的通信链路代价构造加权路径代价函数Cost(Pi)。
步骤3:依据链路代价利用Dijkstra最短路径代价算法选择最佳路由路径。
Mesh网中路由节点视为图N(V,A),V={V1,V2,…,Vm}有限的m个路由节点,A={a1,a2,…,am}为m条有限的边,Cm,n为同一条链路相邻节点m与n之间通信代价,而Mesh网对应多条路由链路,则C,iitt+1第i条链路第t个节点与第t+1个节点之间的通信代价。
SPT算法计算加权路径代价计算引入了加权参数α,其取决于链路质量的好坏,链路i代价函数Cost(Pi)为:
在边界路由节点中实现以上路由算法,并建立路由表, 基于 DASH7 的 Mesh 网的实现方案如图 6 所示。
2.4实验结果分析
将上位PC机与Mesh网相连,就可以通过对嵌入式web服务器来访问Mesh网节点的相关数据,图7所示是在web服务器搭建的前台页面,上位机通过浏览器访问嵌入式web服务器(访问地址为192.168.1.230),并调用服务器中的CGI应用程序获取数据。
实验结论:上位PC机通过本文设计的DASH7的边界路由节点访问Mesh网内无线传感器节点的数据,验证了Mesh网络的有效性。
3结语
本文通过对DASH7协议栈的研究与设计,在DASH7的无线传感器网络(WSN)基础上使用嵌入式web服务器技术实现了具有路由优化选择功能的边界路由节点,解决了DASH7协议无法组建Mesh网络的问题,其具有一定的理论研究意义与实践应用价值。
20211124_619e606a82351__DASH7协议的Mesh网设计与实现