一种无线传感器网络中基于快速回复ACK的数据传输方法与流程

文档序号:15744837发布日期:2018-10-23 22:57阅读:386来源:国知局

本发明属于无线通信技术领域,尤其涉及一种无线传感器网络中基于快速回复ACK的数据传输方法。



背景技术:

目前,业内常用的现有技术是这样的:无线传感器网络是由大量传感器节点通过无线通信的方式形成的一种多跳、自组织网络,主要用于对目标区域进行监测。在实际应用中,传感器节点需要将收集到的信息汇聚到数据中心,因此,可能出现多个节点竞争向同一个目的节点传输数据帧的情况,称之为并发传输。并发传输中,传统信道竞争采用CSMA机制,为保证可靠通信,接收方的MAC层在收到发送方的数据帧后会回复ACK进行确认。普通回复ACK的方法中,当有分组到达时,目的节点会接收并解析收到的数据帧,接着将数据帧接收事件通知给MAC层,然后从MAC层开始经过传感器节点的软件协议栈逐层封装ACK帧,将ACK帧装载到CC2420的发送缓存TXFIFO中后,底层才可以开始发送ACK。这种通过软件方式实现的普通回复ACK的方法,可以在回复的ACK中携带有用信息,来控制无线传感器网络中节点间的通信。传感器节点还支持硬件回复ACK的方法,目的节点在解析完数据帧的MAC帧头部帧控制域后,若发现收到的数据帧要求回复ACK,便由硬件实现ACK组帧,并在接收数据帧的SFD下降沿之后将ACK发送出去。硬件回复ACK的方法省去了由软件执行引起的延迟,ACK回复时间很短,可以有效避免回复的ACK和其他竞争方发送的数据帧发生碰撞。

综上所述,现有技术存在的问题是:

(1)普通回复ACK的方法,由于解析数据帧、封装ACK帧并将其装载到CC2420的TXFIFO中等引起的软件延迟,导致ACK的回复时间较长,从而造成接收方回复的ACK很有可能会和其他竞争方正在发送的数据帧发生碰撞,使得所有的竞争方数据帧发送失败,降低数据包投递率;竞争方发送数据帧失败时,若在随后进行重传,很有可能会造成网络中持续冲突的发生,降低信道利用率和网络吞吐量。

(2)硬件回复ACK的方法中,ACK帧是由硬件自动封装的,ACK帧中只含有DSN序列号,而没有目的节点收到的数据帧的源地址信息,更无法通过软件的方式在ACK中携带其他信息,因此无法通过目的节点发送的ACK来合理控制无线传感器网络中节点间的通信,进而无法解决网络中的冲突问题。

解决上述技术问题的难度和意义:

为了减小网络中并发传输时分组发生碰撞,应尽可能缩短ACK的回复时间,因此就要尽可能的减小软件操作,如解析数据帧、封装ACK帧等带来的软件延迟;硬件回复ACK的方法中,ACK帧是由硬件封装的,要想在ACK中携带有用信息,就必须通过软件的方式来实现,势必会增加ACK的回复时间。因此,缩短ACK回复时间和在ACK中携带有用信息是不可能同时实现的。

本发明提出的快速回复ACK的方法,权衡了ACK的回复时间和在ACK中携带有用信息这个矛盾,仿照硬件回复ACK的实现机制,通过软件的方式来实现ACK的回复。快速回复ACK的方法尽可能缩短了ACK的回复时间,减小了并发传输时网络中分组碰撞的概率,提高了信道利用率;同时可以在ACK中携带有用信息,并利用ACK中携带的源地址信息,从接收方的角度调度竞争方参与竞争的方式,减小了网络中的冲突。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种无线传感器网络中基于快速回复ACK的数据传输方法。

本发明是这样实现的,一种无线传感器网络中基于快速回复ACK的数据传输方法,所述无线传感器网络中基于快速回复ACK的数据传输方法,网络中的每个节点启动时经过初始化阶段,建立邻节点信息表;初始化结束后,节点处于休眠/唤醒的占空比工作模式,在每次唤醒后,节点以接收方的身份进入网络,并发送Beacon,在规定时间内收到数据帧则快速回复ACK,否则休眠;节点有数据发送时,以发送方的身份进入网络,在收到目的节点的Beacon后,通过CSMA退避竞争向目的节点发送数据帧,并根据是否收到目的节点的ACK以及是否收到发给自己的ACK,决定自身竞争信道的方式。

进一步,所述无线传感器网络中基于快速回复ACK的数据传输方法包括以下步骤:

步骤一,网络中每个节点启动时,经过初始化阶段,建立邻节点信息表;

步骤二,初始化结束后,节点处于休眠/唤醒的占空比工作方式;在每次唤醒后,节点以接收方的身份进入网络,并将无线收发模块打开,发送Beacon;然后等待接收数据,节点若收到数据帧则快速回复ACK,否则到时转为休眠;

步骤三,节点有数据发送时,以发送方的身份进入网络,在收到目的节点的Beacon后,通过CSMA退避竞争向目的节点发送数据帧;在规定时间内,节点若收到目的节点回复给自己的ACK,则认为此次数据传输成功,节点休眠;若收到目的节点的ACK,但不是回复给自己的,则停止当前竞争,并将此ACK作为新一轮竞争的标志,重新开始竞争;若在一段时间内没有收到目的节点的ACK,则认为此次数据传输失败,节点休眠。

进一步,所述步骤一中节点间通过发送init_beacon进行通信,建立邻节点信息表;邻节点信息表中,每一个邻节点的属性包括邻节点号及其伪随机工作参数。

进一步,所述步骤二中节点根据自身的伪随机工作参数确定自己的唤醒时刻,并在唤醒后发送Beacon,以通知潜在发送方自己处于工作状态,可以接收数据帧;在唤醒时间段内,节点只有在收到数据帧后才会快速回复ACK,否则若在该时间段内收到邻节点发送的Beacon、邻节点回复给其他节点的ACK以及邻节点发送给其他节点的数据帧时,则不需要回复ACK。

进一步,所述步骤三中节点作为发送方,在发送数据时,根据建立的邻节点信息表中的目的节点的伪随机工作参数,预测目的节点最近的唤醒时间,并在预测的时刻醒来,等待接收目的节点的Beacon。

进一步,所述步骤二中快速回复ACK的方法,具体为:接收方在收到分组的SFD上升沿解析帧控制域的12和13这两个表征分组类型的比特位,若发现收到的分组是数据帧,则获取分组的源地址信息;在接收数据帧的SFD下降沿,接收方寻址到CC2420发送缓存TXFIFO中存放的Beacon帧的dest域,通过SPI总线将收到的数据帧的源地址信息写入dest域所在位置,完成ACK帧的封装;节点触发选通命令STXON,发送ACK;接收方在发送完ACK之后继续解析收到的数据帧。

本发明的另一目的在于提供一种应用所述无线传感器网络中基于快速回复ACK的数据传输方法。

综上所述,本发明的优点及积极效果为:

(1)本发明提出的快速回复ACK的方法,省去了数据帧解析等软件延迟,和普通回复ACK的方法比,快速回复ACK的方法将ACK回复时间由2ms降到了0.445ms,缩短了ACK的回复时间,减少了并发传输时分组的碰撞。

(2)本发明提出的基于快速回复ACK的数据传输方法,通过在ACK中携带源地址信息,不需要额外的通信开销,便可以从接收方的角度调度发送方的竞争方式,提高了数据包投递率,从而提高了信道利用率。在TELOSB传感器节点上的实验发现,和普通回复ACK的方式相比,在两个节点并发传输的场景下,基于快速回复ACK的数据传输方法将数据包投递率由67%提高到了94%。

附图说明

图1是本发明实施例提供的无线传感器网络中基于快速回复ACK的数据传输方法工作流程图。

图2是本发明实施例提供的节点发送的init_beacon帧载荷结构图。

图3是本发明实施例提供的2号节点建立的邻节点信息表。

图4是本发明实施例提供的接收方发送的Beacon/ACK帧结构图。

图5是本发明实施例提供的0号节点工作在占空比模式时发送的第一个Beacon的载荷内容。

图6是本发明实施例提供的数据传输过程中发送方的子流程图。

图7是本发明实施例提供的数据传输过程中接收方的子流程图。

图8是本发明实施例提供的CC2420无线收发模块收到分组时SFD引脚电平变化示意图。

图9是本发明实施例提供的IEEE802.15.4标准帧的MAC帧头中帧控制域结构图。

图10是本发明实施例提供的0号节点回复1号节点的ACK帧的载荷内容。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明旨在提供一种基于快速回复ACK的数据传输方法,以减少网络中分组的碰撞,从而提高信道利用率,增大网络吞吐量。

如图1所示,本发明实施例提供的无线传感器网络中基于快速回复ACK的数据传输方法包括以下步骤:

S101:网络中每个节点启动时,经过一个初始化阶段,建立邻节点信息表;

S102:初始化结束后,节点处于休眠/唤醒的占空比工作方式。节点每次唤醒后作为接收方,将无线收发模块打开,立即发送Beacon。然后等待接收数据,节点若在一段时间内收到数据帧则快速回复ACK,否则到时转为休眠;

S103:节点有数据发送时,作为发送方,在收到目的节点的Beacon后,通过CSMA退避竞争向目的节点发送数据帧。在规定时间内,节点若收到目的节点回复给自己的ACK,则认为此次数据传输成功,节点休眠;若收到目的节点的ACK,但不是回复给自己的,则停止当前竞争,并将此ACK作为新一轮竞争的标志,重新开始竞争;若在一段时间内没有收到目的节点的ACK,则认为此次数据传输失败,节点休眠。

下面结合附图对本发明的应用原理作进一步的描述。

本发明实施例提供的无线传感器网络中基于快速回复ACK的数据传输方法包括以下步骤:

步骤1、网络中的每个节点启动时建立邻节点信息表;

1a)网络中的每个节点在启动时,都会经历一个初始化阶段,在该阶段中,节点一直处于唤醒状态,并在每一个伪随机唤醒时刻发送init_beacon。init_beacon帧载荷的结构如图2所示,帧中携带节点的伪随机工作参数,其中,lcg_a,lcg_c和lcg_m分别是线性同余的倍数因子,增量因子和模数因子,random_state是节点当前的伪随机数种子,即当前的唤醒间隔,nextWakeupTime是节点当前的唤醒时刻,currentTime为节点发送init_beacon帧时的本地时间,用于计算节点间的本地时钟偏差。初始化阶段的其他时间段,节点处于侦听状态,负责接收其他节点的init_beacon,建立邻节点信息表。邻节点信息表中,包含该节点的所有邻节点的信息,如图3,为一个有三个节点的全连通网络中,2号节点建立的邻节点信息表,其中b为2号节点和邻节点的本地时钟偏差。本实施例中,1号节点和2号节点为两个参与并发传输的竞争节点,0号节点为目的节点。

步骤2、初始化结束后,节点处于休眠/唤醒的占空比工作模式;

2a)节点在每次唤醒后,立即发送Beacon,准备接收数据。以0号节点为例,0号节点刚进入占空比工作模式时,自身的伪随机工作参数为lcg_a=1,lcg_c=7,lcg_m=1000,random_state=828,nextWakeupTime=4289。根据这些伪随机工作参数,0号节点计算到自己下一次的唤醒时刻为5624,此时0号节点的random_state=1335,nextWakeupTime=5624。0号节点在5624时刻唤醒后,打开无线收发模块,发送一个Beacon,如图4为节点发送的Beacon的载荷结构图,图5为0号节点工作在占空比模式时发送的第一个Beacon的载荷。

2b)如图6,0号节点在发完Beacon后,等待接收数据帧,在规定时间内收到了一个分组。0号节点在接收分组的SFD上升沿解析分组帧控制域的12和13这两个表征分组类型的比特位,发现收到的分组是数据帧,接着获取源地址信息,发现是1号节点发送的数据帧;0号节点在接收1号节点数据帧的SFD下降沿,寻址CC2420发送缓存TXFIFO中存放的Beacon帧的dest域,通过SPI总线将收到的数据帧的源地址信息写入该位置,完成ACK帧的封装,封装好的ACK帧的载荷内容如图10所示,dest域为1表明0号节点回复的ACK是对1号节点发送的数据帧的应答。

2c)在给1号节点回复完ACK之后,0号节点接着解析收到的1号节点发送的数据帧。解析完之后继续等待潜在发送方发送的数据,此时又收到了一个分组,通过解析发现是2号节点发送的数据帧,则如2b)所述,快速回复ACK给2号节点。

2d)给2号节点回复完ACK之后,0号节点接着解析收到的2号节点发送的数据帧。解析完之后继续等待潜在发送方发送的数据,由于此时网络中已经没有节点要给0号节点发送数据了,于是0号节点等待一段时间后转为休眠,转到2a),等待下一次唤醒。

步骤3、节点如果有数据帧发送,通过CSMA退避竞争向目的节点发送;

3a)当1号节点和2号节点节点有数据帧发送给0号节点时,先根据邻节点信息表中0号节点的伪随机工作参数,预测0号节点最近的唤醒时刻,并在预测的时刻醒来,等待接收0号节点的Beacon。以2号节点为例,2号节点在5360时刻想要向0号节点发送数据,根据图3建立的邻节点信息表中0号节点的伪随机工作参数以及0号节点和2号节点的本地时钟偏差,计算0号节点会在自己本地时钟的6262时刻醒来。于是2号节点在本地时钟的6262时刻醒来,等待接收0号节点的Beacon。

3b)如图7,1号节点和2号节点在收到0号节点的Beacon后,先进行CSMA随机退避,1号节点此次CSMA随机退避时长为3ms,2节点此次CSMA随机退避时长为5ms。1号节点退避完后,通过CCA检测发现信道空闲,向0号节点发送数据,然后收到了0号节点回复给自己的ACK,1号节点数据传输成功,转为休眠。此时,2号节点仍在进行CSMA退避,发现收到了0号节点回复给1号节点的ACK,于是取消此次数据传输,重新开始新一轮的竞争。此时网络中只有2号节点一个竞争节点,于是2号节点在经过CSMA退避发送数据后,收到了0号节点回复的ACK,数据传输成功,转为休眠。

以上的部分术语解释如下:

1)并发传输:无线传感器网络中,多个节点在同一时刻竞争向同一个目的节点传输数据帧的现象。

2)竞争节点:并发传输时,所有参与竞争的发送节点。

3)ACK回复时间:接收方收到数据帧的SFD下降沿到发送ACK的SFD上升沿所需的时间。

4)邻节点信息表:一个节点的所有邻节点的信息集合,是一个二维表,每一行代表一个邻节点的信息。

5)分组:无线传感器网络中传输的各种类型的数据包,包括init_beacon,Beacon,ACK和数据帧。

6)init_beacon:节点在初始化阶段发送的携带自身伪随机工作参数的信标帧,控制类信息,以广播方式发送。

7)Beacon:节点在占空比工作模式下工作时,发送的信标帧,控制类信息,以广播方式发送。

8)ACK:确认帧,控制类信息,以广播方式发送。

9)数据帧:无线传感器网络中传输的真正有用的信息,以单播方式发送。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1