嵌入式开发 > 详情

无线传感器网络自组网协议的实现方法

发布时间:2020-07-13 发布时间:
|

引言

无线传感器网络具有非常广阔的应用前景[1]。文献[2]给出一种传统的洪泛算法(Flooding),也是最早、最简单的路由协议。节点以广播的形式发送消息,接收到消息的节点再以广播形式转发数据包给所有的邻节点,这个过程重复执行,直到数据包到达目的地或者达到预先设定的最大跳数。文献 [3]提出了最具代表性的层次型自组织算法(LEACH,Low Energy Adaptive Clustering Hierarchy)。LEACH是MIT的Heinzelman等人为无线传感器网络设计的低功耗自适应聚类路由算法,主要通过随机选择聚类首领、平均分摊中继通信业务来实现。文献[4]给出以数据为中心的自组织算法SPIN(Sensor Protocols for Information Via Negotiation)。它的主要思想是通过高层的描述方式——元数据来命名传感数据。在发送真实的数据之前,传感器节点广播采集数据的描述信息元数据,当有相应的请求时,才有目的地发送数据信息。这些研究均在无线传感器网络的自组织算法上取得进展,但是,Flooding存在消息“内爆”和“重叠” 的缺陷;LEACH的动态分簇带来了拓扑变换和大量广播这样的额外开销;SPIN中的元数据没有统一的形式,且其拓扑变化是局部性的,因此不适用于需要高可靠性的应用。还有很多其他相关算法停留在理论研究阶段。

针对这种研究现状,本文提出一种简单易实现的自组织协议,选用MSP430F149单片机设计了微型传感器节点,并实现了一种低功耗无线网络。

1 自组织协议

在协议中,通过定义数据包的格式和关键字来实现节点的自组织。

1.1 协议格式

自组织协议格式如下:

其中,Pre表示前导码,这些字符杂波不容易产生,通过测试和试验发现,噪声中不容易产生0x55和0xAA等非常有规律的信号;Key表示关键字,用来区分各种情况下的数据,接收节点会根据这些关键字分别进入不同的数据处理单元;From表示源地址,是发送数据的节点自身信息;Final表示数据的目标地址;Data表示有效数据,这些数据随着字符Key的不同采用不同的格式,可携带不同的信息;Check表示检验位,可避免接收错误的数据包;Flag表示数据包的结束标志位。

根据协议格式中的Key,可以将节点通信时捎带的数据包分为自组网信息、环境突变信息、上位机的控制命令、广播信息等。节点在发送状态突变时的数据包格式如下:

其中,0x55和0xAA为数据前导码,0xFF为传感器节点在感测到其状态突变时向外发送数据的关键字,0x11表示发送节点的地址, 0x00为数据包要到达的目标地址,0x01表示数据包在网络传输中的跳数,接着的0x01表示节点在当前网络中的级别,0x15表示节点当时采集的温度,0x20表示节点当时采集的电源电压值,0x03表示节点的状态量, 0x00…0x00为11个字节的有效数据,可记录数据包经过节点的地址,0x3A为前面核心数据和的低8位,作为数据包的检验码,0xBB为数据包的结束标志。

接收节点需要向发送节点做出应答,应答状态突变时的数据包格式如下:

其中,0xFF就表示应答状态突变的关键字,后面分别是发送节点和接收节点的地址。

1.2 自组网过程

网络包含一个与上位机相连接的基站节点和若干传感器节点。基站节点上电初始化后就进入低功耗模式。传感器节点随机布放,上电初始化后,传感器节点首先会向基站节点发出请求分配级别的命令,然后进入低功耗状态并打开定时器。若在设定时间内收到基站节点分配的级别,该传感器节点就会向基站节点发送自组织信息的数据包。如果在设定时间内没有收到基站节点分配的级别,该节点会从低功耗状态唤醒,再次发送请求分配级别的命令,如此循环。当传感器节点发出请求基站分配级别的命令达到设定上限后,但仍然没有确定自己在网络中的级别时,该节点就会向全网发出广播命令,然后进入低功耗状态并打开定时器。定时时间到,节点重新回到发射广播命令状态。当传感器节点发射广播的次数达到设定值时,该节点就会将接收到的应答信息进行整理,确定自己在网络中的级别,并确定上级、同级和下级节点的相关信息。该节点再向上级节点发送包含这些信息的数据包,直到数据包传送到基站节点,从而确定整个网络的拓扑结构。节点的自组织流程如图1所示。


图1 节点的自组织流程

2 硬件研制

为了验证提出的自组织协议,本文选用了片上资源丰富的MSP430F149单片机作为处理器,研制了一种微型传感器节点[5]。





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
定时器CTC模式的测试