一种用于休眠唤醒机制的工业物联网数据传输系统及方法与流程

文档序号:25539251发布日期:2021-06-18 20:34阅读:211来源:国知局
一种用于休眠唤醒机制的工业物联网数据传输系统及方法与流程

本发明涉及物联网数据传输技术领域,尤其涉及一种用于休眠唤醒机制的工业物联网数据传输系统及方法。



背景技术:

当一个应用场景分布大量的传感器节点时,可能造成多对节点在同一个信道中进行通信。若节点的发送速率以及发送时间相同,那么节点之间存在严重的干扰。严重的信道干扰会导致丢包率和有效传输时延的上升,降低了信道有效传输率。

传统的物联网重传机制为:传感器节点从传感器获取数据,并将数据通过射频发送给接收节点。在发送数据帧以后,节点等待接收节点回应的ack帧。等待时间由ack帧传输时延和ack帧长度共同决定。如果节点在重传等待时间内没有收到对应的ack帧,它既判定该数据帧发送失败,然后它将开始重新发送该帧。在重传阶段,节点重复上述的步骤执行,直到重传尝试的最大次数。

在工业应用环境下,由于电磁辐射以及工业现场数据量大情况下,信道上数据帧的碰撞会导致丢包率的提高,丢包率的提高造成网络的重传次数增多。大量的重传可能会造成网络发生拥塞,降低了信道的有效传输,导致网络整体的传输时延增加。



技术实现要素:

本发明的目的在于提供一种用于休眠唤醒机制的工业物联网数据传输系统及方法,从而解决现有技术中存在的前述问题。

为了实现上述目的,本发明采用的技术方案如下:

一种用于休眠唤醒机制的工业物联网数据传输系统,包括数据采集节点和数据收集节点;

所述数据采集节点包括,

第一主控模块;用于数据采集和发送;所述第一主控模块工作时,数据采集节点处于高能耗状态;所述第一主控模块休眠时,数据采集节点处于极低能耗状态;

休眠唤醒模块;用于侦听网络唤醒请求并唤醒第一主控模块;

数据采集节点平时处于休眠模式节约能耗,当休眠唤醒模块侦听到有效网络唤醒请求时,数据采集节点进入工作模式,通过第一主控模块采集工业现场数据,并把采集到的工业现场数据发送给数据收集节点,工业现场数据发送完毕后,主动进入休眠模式;且当休眠唤醒模块再次侦听到有效唤醒请求时,数据采集节点重新进入工作模式;

所述第一主控模块在数据发送过程中,根据工业现场数据组成的数据帧的发送结果,调整发送时间间隔td,加速电池电量少的数据采集节点进入休眠模式;并根据数据帧的发送结果动态调整ack帧的等待时延,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

所述数据收集节点包括,

第二主控模块;用于广播网络唤醒请求和数据收集;所述第二主控模块工作时,数据收集节点处于高能耗状态;

电源控制模块;用于根据自动生成的开关控制信号或工程师手动给出的开关控制信号,打开或关闭第二主控模块;

数据收集节点在进入到某个工业物联网区域之后,电源控制模块根据位置信息自动生成的开关控制信号或经由工程师手动给出的开关控制信号,打开第二主控模块,第二主控模块向该区域内的数据采集节点广播网络唤醒请求,并接收数据采集节点发送的工业现场数据,工业现场数据收集完毕后,电源控制模块关闭第二主控模块,然后前往下一个工业物联网区域进行数据收集。

一种用于休眠唤醒机制的工业物联网数据传输方法,数据传输方法使用上述所述的数据传输系统实现;所述数据传输方法包括如下步骤,

s1、工程师在工业物联网区域中布署数据采集节点,所述第一主控模块此时处于休眠模式;所述休眠唤醒模块持续侦听网络唤醒请求;数据收集节点进入工业物联网区域,电源控制模块打开第二主控模块,数据收集节点通过第二主控模块广播网络唤醒请求;

s2、数据采集节点通过休眠唤醒模块接收网络唤醒请求,提取该网络唤醒请求并判断该网络唤醒请求是否是有效唤醒请求,若是,则保存该网络唤醒请求的特征信息,并唤醒第一主控模块;否则丢弃该网络唤醒请求,接收下一网络唤醒请求并判断;

s3、休眠唤醒模块唤醒第一主控模块之后,数据采集节点进入高能耗的数据采集发送模式,第一主控模块采集工业现场数据,并把采集到的工业现场数据发送给数据收集节点;第一主控模块在数据发送过程中,根据工业现场数据组成的数据帧的发送结果,调整发送时间间隔td,加速电池能量少的数据采集节点进入休眠模式;并根据数据帧的发送结果动态调整ack帧的等待时延,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

s4、第一主控模块发送完所采集的工业现场数据后,进入休眠模式;

s5、数据收集节点收集完该工业物联网区域内所有的工业现场数据后,电源控制模块关闭第二主控模块,前往下一个工业物联网区域,并重新执行步骤s1。

优选的,步骤s2中提取该网络唤醒请求的特征信息并判断网络唤醒请求是否为有效唤醒请求的具体过程为,

网络唤醒请求的特征信息包括采集口令、收集时间ts、数据采集节点数量ns、最大允许重传次数rs和数据收集节点地址ad;

采集口令用于保证系统的安全,避免伪装的数据收集节点窃取数据;提取该网络唤醒请求中的采集口令,并将该采集口令与预设的采集口令进行对比,若一致,则表示该网络唤醒请求为有效唤醒请求;若不一致,则将该网络唤醒请求作为无效唤醒请求丢弃;

收集时间ts用于指明本次数据收集所允许的最长收集时间,即数据收集节点在该工业物联网区域停顿的时间;

数据采集节点数量ns用于指明本次参与数据采集的数据采集节点的数量,即该工业物联网区域内部署的数据采集节点的数量;

最大允许重传次数rs用于指明当数据帧发送失败之后可以重试的次数;

数据收集节点地址ad用于指明数据采集节点的数据回传地址。

优选的,步骤s3具体包括如下内容,

s31、通过第一主控模块采集工业现场数据;

s32、根据采集的工业现场数据量m和一个数据帧的长度ld,计算需要发送的数据帧的数量cc,即cc=m/ld;

s33、令nr=ns;

s34、生成一个随机数,该随机数用于随机切分信道避免碰撞;

s35、测试该随机数,若随机数大于1/nr,则nr=nr-1,并返回步骤s34;

s36、测试该随机数,若随机数小于1/nr,则发送当前数据帧,并记录当前数据帧的发送时间;

s37、根据需要发送的数据帧数量cc、收集时间ts和最大允许重传次数rs,设置数据帧发送时间间隔分布,避免碰撞;即计算当前数据帧与下一数据帧的发送时间间隔td,td=ts/(cc*rs);

s38、根据数据帧的发送结果和当前数据采集节点电池电量,调整发送时间间隔td,加快电池电量少的数据采集节点进入休眠状态,节约能耗;根据数据帧的发送结果,动态调整ack帧的等待时延tw,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

s39、根据当前数据帧的发送时间和调整后的发送时间间隔td,确定下一个数据帧的发送时间;下一个数据帧的发送时间等于当前数据帧的发送时间加上调整后的发送时间间隔td;在下一个数据帧发送时间到来时,重复步骤s33-s39发送下一个数据帧。

优选的,步骤s38中发送时间间隔td的调整方式为,

当数据帧发送成功,若数据采集节点处于极低电量水平,即低于电池容量的30%,则采用长步长step1缩短间隔时间,大幅加快数据发送速度,td=td-step1;

当数据帧发送成功,若数据采集节点处于低电量水平,即大于电池容量的30%且低于电池容量的60%,则采用中等步长step2缩短时间间隔,加快数据发送速度,则td=td-step2;

当数据帧发送成功,若数据采集节点处于正常电量水平,即大于电池容量的60%,则td维持不变;

当数据帧发送失败,若数据采集节点处于极低电量水平,即低于电池容量的30%,则td维持不变;

当数据帧发送失败,若数据采集节点处于低电量水平,即大于电池容量的30%且低于电池容量的60%,则采用中等步长step2增加时间间隔,减少数据碰撞,降低数据帧发送失败的丢包率,则td=td+step2;

当数据帧发送失败,若数据采集节点处于正常电量水平,即大于电池容量的60%,则采用长步长step1增加间隔时间,减少数据碰撞和发送优先级,降低数据帧发送失败的丢包率,td=td+step1;

长步长step1和中等步长step2的取值如下,

step1=一个数据帧的长度ld/每秒网络传输数据量r;

step2=一个数据帧的长度ld/(每秒网络传输数据量r*最大允许重传次数rs)。

优选的,数据帧发送结果有发送成功和发送失败两种情况,其中发送失败包括ack帧丢失和数据帧丢失两种情况,

ack帧丢失;数据收集节点收到数据帧后回复ack帧,ack帧在传输过程中丢失导致数据采集节点没有收到ack帧,数据采集节点将等待一个等待时延tw后重新发送相同的数据帧;

数据帧丢失;数据采集节点在发送数据时就丢失数据帧,数据收集节点没有收到数据帧不做任何操作;数据采集节点等待一个等待时延tw,在这个等待时延tw内如果没有收到数据收集节点发送的ack帧则认为发送失败,重新发送该数据帧;

数据帧发送成功;当数据采集节点发送数据帧后,在一个等待时延tw内,数据采集节点收到数据收集节点发送的正确的ack帧,则认为该数据帧发送成功,进入下一个数据帧的发送。

优选的,所述数据收集节点发送的ack帧包括ack标识和采集口令;ack标识用于区别ack帧和数据帧;采集口令用于保证系统的安全,避免伪装的数据收集节点窃取数据;提取该ack帧中的采集口令,并将该采集口令与预设的采集口令进行对比,若一致,则表示该ack帧为有效ack帧;若不一致,则将该ack帧作为无效ack帧丢弃。

优选的,动态调整ack帧的等待时延tw的过程为,

a1、计算第一次数据发送的等待时延tw,具体过程为,

计算数据帧传输时长tdata,tdata=一个数据帧的长度ld/每秒网络传输数据量r;

计算ack帧传输时长tark,tark=一个ack帧的长度la/每秒网络传输数据量r;

初始tw=(tdata+tark)*(1+random),random是0到1之间的一个随机数,用于表示网络中存在的随机时延;

a2、根据本次数据发送的结果和等待时延tw,获取下一次数据发送的等待时延tw,具体过程为,

若本次数据发送成功,则计算发送时间tsend,即从发送数据帧到接收到ark帧的时长,并计算下一次数据发送的等待时延tw为,

下一次数据发送的等待时延tw=tsend*(1+random),random是0到1之间的一个随机数,用于表示网络中存在的随机时延;

若本次数据发送失败,则将本次数据发送等待时延tw进行倍增得到下一次数据发送的等待时延tw为,

下一次数据发送的等待时延tw=本次数据发送的等待时延tw*2;

通过动态调整ack帧的等待时延可以有效降低数据帧发送失败的丢包率和数据帧发送成功的传输时延。

本发明的有益效果是:1、当网络丢包率上升时,说明网络存在大量碰撞的情况,数据采集节点间发送数据时存在冲突,通过本发明动态增加单次发送数据帧间隔时间和ack帧的等待时延,大幅降低数据采集节点发送数据帧过程中碰撞冲突的发生概率,提升传输效率,降低整个传输的时延。2、当网络丢包率稳定在很低的状态时,通过本发明动态减少发送数据帧间隔时间和ack帧的等待时延,能够加快数据发送速度,提升传输效率,降低整个传输的时延,减少节点工作时间和不必要的电池电量浪费。

附图说明

图1是本发明实施例中数据传输方法的流程示意图;

图2是现有技术标准ieee802.15.4协议的数据帧的结构示意图;

图3是现有技术标准ieee802.15.4协议的数据传输的原理示意图;

图4是本发明实施例中数据传输的原理示意图。

具体实施方式

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

实施例一

本实施例中,提供了一种用于休眠唤醒机制的工业物联网数据传输系统,包括数据采集节点和数据收集节点;

所述数据采集节点包括,

第一主控模块;用于数据采集和发送;所述第一主控模块工作时,数据采集节点处于高能耗状态;所述第一主控模块休眠时,数据采集节点处于极低能耗状态;

休眠唤醒模块;用于侦听网络唤醒请求并唤醒第一主控模块;

数据采集节点平时处于休眠模式节约能耗,当休眠唤醒模块侦听到有效网络唤醒请求时,数据采集节点进入工作模式,通过第一主控模块采集工业现场数据,并把采集到的工业现场数据发送给数据收集节点,工业现场数据发送完毕后,主动进入休眠模式;且当休眠唤醒模块再次侦听到有效唤醒请求时,数据采集节点重新进入工作模式;

所述第一主控模块在数据发送过程中,根据工业现场数据组成的数据帧的发送结果,调整发送时间间隔td,加速电池电量少的数据采集节点进入休眠模式;并根据数据帧的发送结果动态调整ack帧的等待时延,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

第一主控模块包含嵌入式处理器、存储器、传感器、数据转换器和无线数据收发器等各种电子器件,该模块工作时节点处于高能耗状态,该模块休眠时,数据采集节点处于极低能耗状态;休眠唤醒模块用于侦听网络唤醒请求并唤醒主控模块,仅仅包含无线数据收发器和简单控制电路;

所述数据收集节点包括,

所述数据收集节点包括,

第二主控模块;用于广播网络唤醒请求和数据收集;所述第二主控模块工作时,数据收集节点处于高能耗状态;

电源控制模块;用于根据自动生成的开关控制信号或工程师手动给出的开关控制信号,打开或关闭第二主控模块;

数据收集节点在进入到某个工业物联网区域之后,电源控制模块根据位置信息自动生成的开关控制信号或经由工程师手动给出的开关控制信号,打开第二主控模块,第二主控模块向该区域内的数据采集节点广播网络唤醒请求,并接收数据采集节点发送的工业现场数据,工业现场数据收集完毕后,电源控制模块关闭第二主控模块,然后前往下一个工业物联网区域进行数据收集。

第二主控模块用于数据收集,包含嵌入式处理器、存储器和无线数据收发器等各种电子器件,该模块工作时节点处于高能耗状态。电源控制模块接收移动机器人或工程师的外部开关控制,用于打开或关闭主控模块供电降低功耗。数据收集节点架设在移动机器人之上或通过工程师手持节点的方法,进入某个工业物联网区域进行数据收集。只有在数据收集时,数据收集节点的电源控制模块被打开,第二主控模块工作,其他时间数据收集节点的电源控制模块是关闭的第二主控模块不工作。

实施例二

如图1所示,本实施例中,提供了一种用于休眠唤醒机制的工业物联网数据传输方法,数据传输方法使用上述所述的数据传输系统实现;所述数据传输方法包括如下步骤,

s1、工程师在工业物联网区域(如车间、厂房、流水线等)中布署数据采集节点,所述第一主控模块此时用于采集各种工况参数并处于休眠模式;所述休眠唤醒模块持续侦听网络唤醒请求;数据收集节点架设在移动机器人之上,或通过工程师手持节点的方法进入工业物联网区域,电源控制模块打开第二主控模块,数据收集节点通过第二主控模块广播网络唤醒请求;

s2、数据采集节点通过休眠唤醒模块接收网络唤醒请求,提取该网络唤醒请求并判断该网络唤醒请求是否是有效唤醒请求,若是,则保存该网络唤醒请求的特征信息,并唤醒第一主控模块;否则丢弃该网络唤醒请求,接收下一网络唤醒请求并判断;

s3、休眠唤醒模块唤醒第一主控模块之后,数据采集节点进入高能耗的数据采集发送模式,第一主控模块采集工业现场数据,并把采集到的工业现场数据发送给数据收集节点;第一主控模块在数据发送过程中,根据工业现场数据组成的数据帧的发送结果,调整发送时间间隔td,加速电池能量少的数据采集节点进入休眠模式;并根据数据帧的发送结果动态调整ack帧的等待时延,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

s4、第一主控模块发送完所采集的工业现场数据后,进入休眠模式;

s5、数据收集节点收集完该工业物联网区域内所有的工业现场数据后,电源控制模块关闭第二主控模块,前往下一个工业物联网区域,并重新执行步骤s1。

本实施例中,步骤s2中提取该网络唤醒请求的特征信息并判断网络唤醒请求是否为有效唤醒请求的具体过程为,

网络唤醒请求的特征信息包括采集口令、收集时间ts、数据采集节点数量ns、最大允许重传次数rs和数据收集节点地址ad;

采集口令用于保证系统的安全,避免伪装的数据收集节点窃取数据;提取该网络唤醒请求中的采集口令,并将该采集口令与预设的采集口令进行对比,若一致,则表示该网络唤醒请求为有效唤醒请求;若不一致,则将该网络唤醒请求作为无效唤醒请求丢弃;

收集时间ts用于指明本次数据收集所允许的最长收集时间,即数据收集节点在该工业物联网区域停顿的时间;

数据采集节点数量ns用于指明本次参与数据采集的数据采集节点的数量,即该工业物联网区域内部署的数据采集节点的数量;

最大允许重传次数rs用于指明当数据帧发送失败之后可以重试的次数;

数据收集节点地址ad用于指明数据采集节点的数据回传地址。

本实施例中,步骤s3具体包括如下内容,

s31、通过第一主控模块采集工业现场数据;

s32、根据采集的工业现场数据量m和一个数据帧的长度ld,计算需要发送的数据帧的数量cc,即cc=m/ld;

s33、令nr=ns;

s34、生成一个随机数,该随机数用于随机切分信道避免碰撞;

s35、测试该随机数,若随机数大于1/nr,则nr=nr-1,并返回步骤s34;

s36、测试该随机数,若随机数小于1/nr,则发送当前数据帧,并记录当前数据帧的发送时间;

s37、根据需要发送的数据帧数量cc、收集时间ts和最大允许重传次数rs,设置数据帧发送时间间隔分布,避免碰撞;即计算当前数据帧与下一数据帧的发送时间间隔td,td=ts/(cc*rs);

s38、根据数据帧的发送结果和当前数据采集节点电池电量,调整发送时间间隔td,加快电池电量少的数据采集节点进入休眠状态,节约能耗;根据数据帧的发送结果,动态调整ack帧的等待时延tw,降低数据帧发送失败的丢包率和数据帧发送成功的传输时延;

s39、根据当前数据帧的发送时间和调整后的发送时间间隔td,确定下一个数据帧的发送时间;下一个数据帧的发送时间等于当前数据帧的发送时间加上调整后的发送时间间隔td;在下一个数据帧发送时间到来时,重复步骤s33-s39发送下一个数据帧。。

比如,如图2所示,根据ieee802.15.4协议帧格式的定义,每个数据帧长度127字节,每个数据帧包含的数据量最多116字节。如果需要发送的数据量是1000字节,则需要发送的数据帧数量是9个。

本实施例中,步骤s38中发送时间间隔td的调整方式为,

当数据帧发送成功,若数据采集节点处于极低电量水平,即低于电池容量的30%,则采用长步长step1缩短间隔时间,大幅加快数据发送速度,td=td-step1;

当数据帧发送成功,若数据采集节点处于低电量水平,即大于电池容量的30%且低于电池容量的60%,则采用中等步长step2缩短时间间隔,加快数据发送速度,则td=td-step2;

当数据帧发送成功,若数据采集节点处于正常电量水平,即大于电池容量的60%,则td维持不变;

当数据帧发送失败,若数据采集节点处于极低电量水平,即低于电池容量的30%,则td维持不变;

当数据帧发送失败,若数据采集节点处于低电量水平,即大于电池容量的30%且低于电池容量的60%,则采用中等步长step2增加时间间隔,减少数据碰撞,降低数据帧发送失败的丢包率,则td=td+step2;

当数据帧发送失败,若数据采集节点处于正常电量水平,即大于电池容量的60%,则采用长步长step1增加间隔时间,减少数据碰撞和发送优先级,降低数据帧发送失败的丢包率,td=td+step1;

长步长step1和中等步长step2的建议取值如下,

step1=一个数据帧的长度ld/每秒网络传输数据量r;

step2=一个数据帧的长度ld/(每秒网络传输数据量r*最大允许重传次数rs)。

本实施例中,现有技术中的ieee802.15.4协议使用重传机制来提高传输的可靠性,当发送节点的数据发送完成后,等待macarkwaitduration。如果在这个期间内收到ack帧,则表示此次传输成功。如果在等待周期内没有收到ack帧,或者收到dsn不同的ack帧,则进行重发数据。

如图3所示为ieee802.15.4协议确认重传机制。processd为ack丢失的情况,processe为数据丢失情况,processf为数据发送成功的情况。其中t2是ack等待时间,其值为macarkwaitduration。

而本发明中,如图4所示,数据帧发送结果有发送成功和发送失败两种情况,其中发送失败包括ack帧丢失和数据帧丢失两种情况,

processa为ack帧丢失的情况;数据收集节点收到数据帧后回复ack帧,ack帧在传输过程中丢失导致数据采集节点没有收到ack帧,数据采集节点将等待一个等待时延tw后重新发送相同的数据帧;

processb数据帧丢失;数据采集节点在发送数据时就丢失数据帧,数据收集节点没有收到数据帧不做任何操作;数据采集节点等待一个等待时延tw,在这个等待时延tw内如果没有收到数据收集节点发送的ack帧则认为发送失败,重新发送该数据帧;

processc数据帧发送成功;当数据采集节点发送数据帧后,在一个等待时延tw内,数据采集节点收到数据收集节点发送的正确的ack帧,则认为该数据帧发送成功,进入下一个数据帧的发送。

本实施例中,所述数据收集节点发送的ack帧包括ack标识和采集口令;ack标识用于区别ack帧和数据帧;采集口令用于保证系统的安全,避免伪装的数据收集节点窃取数据;提取该ack帧中的采集口令,并将该采集口令与预设的采集口令进行对比,若一致,则表示该ack帧为有效ack帧;若不一致,则将该ack帧作为无效ack帧丢弃。

本实施例中,动态调整ack帧的等待时延tw的过程为,

a1、计算第一次数据发送的等待时延tw,具体过程为,

计算数据帧传输时长tdata,tdata=一个数据帧的长度ld/每秒网络传输数据量r;

计算ack帧传输时长tark,tark=一个ack帧的长度la/每秒网络传输数据量r;

初始tw=(tdata+tark)*(1+random),random是0到1之间的一个随机数,用于表示网络中存在的随机时延;

a2、根据本次数据发送的结果和等待时延tw,获取下一次数据发送的等待时延tw,具体过程为,

若本次数据发送成功,则计算发送时间tsend,即从发送数据帧到接收到ark帧的时长,并计算下一次数据发送的等待时延tw为,

下一次数据发送的等待时延tw=tsend*(1+random),random是0到1之间的一个随机数,用于表示网络中存在的随机时延;

若本次数据发送失败,则将本次数据发送等待时延tw进行倍增得到下一次数据发送的等待时延tw为,

下一次数据发送的等待时延tw=本次数据发送的等待时延tw*2;

通过动态调整ack帧的等待时延可以有效降低数据帧发送失败的丢包率和数据帧发送成功的传输时延。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:

本发明公开了一种用于休眠唤醒机制的工业物联网数据传输系统及方法,当网络丢包率上升时,说明网络存在大量碰撞的情况,数据采集节点间发送数据时存在冲突,通过本发明动态增加单次发送数据帧间隔时间和ack帧的等待时延,大幅降低数据采集节点发送数据帧过程中碰撞冲突的发生概率,提升传输效率,降低整个传输的时延。当网络丢包率稳定在很低的状态时,通过本发明动态减少发送数据帧间隔时间和ack帧的等待时延,能够加快数据发送速度,提升传输效率,降低整个传输的时延,减少节点工作时间和不必要的电池电量浪费。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

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