一种树型传感器网络的自组网和低功耗数据汇集方法与流程

文档序号:11235494阅读:458来源:国知局
一种树型传感器网络的自组网和低功耗数据汇集方法与流程

技术领域:本发明涉及一种无线传感器网络,特别是无线传感器网络的数据汇集。



背景技术:

近年来随着物联网的快速发展,无线传感器网络开始在人们的生活中扮演着越来越重要的角色。无线传感器网络综合了传感器技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术等多种领域,被广泛地应用于多种应用场景,如农业养殖、生态监测、工业设施检测、自然灾害预测、智能交通控制、智能家居及军事场合等。

无线传感器网络常用的拓扑结构主要有星型、树型、网状等拓扑结构。其中树型拓扑为分层结构,具有方便分支管理、易于扩展(容易加入新的分支或新的节点、故障隔离容易等优点。对于一些具有固定数据采集周期、数据传输量小频率低、通讯范围大且需要分区域管理的无线传感器网络应用领域,使用树型拓扑相比其他拓扑结构更为合适。但是传统的树型传感器网络在组网方面,动态拓扑能力差,传感器节点非常依赖它的上一级节点,一旦上一级节点出现故障,其下的传感器节点都将从网络中脱离。同时传统的树型传感器网络在数据汇集方面,常使用两种汇集方法:一是传感器节点按照固定时间间隔从低功耗休眠中唤醒,测量环境参数完成后随机等待一段时间,主动发送数据;二是传感器节点按照固定时间间隔从休眠中唤醒,测量环境参数完成后等待协调器发送的汇集指令,被动发送数据。前者易出现多个节点数据并发,造成消息碰撞,需多次重发,浪费多余能耗,后者为了保障节点能接收到汇集指令,节点需要提前较长时间唤醒,同样浪费多余能耗。



技术实现要素:

针对以上问题,本发明是设计出的一种符合实际需求的树型传感器网络的自组网和低功耗数据汇集方法。

一种树型传感器网络的自组网和低功耗数据汇集方法,对应的传感器网络为三层树型拓扑结构,由监测服务器主机、中继网关、协调器和传感器节点组成。树型拓扑结构的第一层为监测服务器主机,可连接多个中继网关;树型拓扑结构的第二层为中继网关加协调器,每个中继网关只对应一个协调器因此在拓扑关系中两者可视为一体,中继网关负责与监测服务器主机连接,协调器负责与传感器节点连接;树型拓扑结构的最后一层为传感器节点。传感器节点与协调器通过无线通信,协调器与中继网关通过串口通讯,传感器节点负责在现场测量各种环境数据,并将数据通过无线发送给协调器,协调器一方面通过无线与传感器节点进行通讯,负责传感器网络的建立,和传感器节点测量数据的采集;另一方面通过串口与中继网关进行通讯,负责向中继网关转发传感器节点测量数据,和接收中继网关的指令;中继网关的作用是当各节点的测量数据在中继网关中数据汇集后,由网关对数据进行融合,最后通过网络将数据发送至监测服务器;

所述传感器节点的工作步骤包括节点首次接入网络阶段、重新接入网络阶段、数据测量发送阶段;具体步骤如下:

节点通电后,初始化硬件配置。

读取控制器片内eeprom中的自身节点地址信息,默认地址为0x0000;

1.节点地址是否为0x0000,如果是,则判断自身为未组网的新节点,进入节点首次接入网络阶段,即步骤4-7;否则判断不是新节点,进入步骤8;

首次接入网络阶段:

2.在信道0广播新节点请求入网指令;

3.切换至信道0接收状态,等待回复,等待时间为t_wait,判断是否收到协调器回复的允许新节点入网指令,如果是,则进入步骤6,否则,返回步骤4;

4.读取新节点允许入网指令,记录协调器分配的节点地址写入eeprom,记录使用信道,标记自身状态为正常状态,标记刚入网;

5.在信道0向现协调器回复节点确认入网指令,进入步骤8;

6.判断自身状态是否为故障状态,如果是,进入重新接入网络阶段,即步骤9-18,否则进入数据测量发送阶段,即步骤19-28;

7.重新接入网络阶段:

8.判断原有节点请求入网指令广播次数是否达到规定次数,如果是,进入步骤14,否则进入步骤10;

9.在通道0广播原有节点请求入网指令;

10.切换至信道0接收状态,等待回复,等待时间为t_wait,判断是否收到原协调器回复的允许原有节点入网指令,如果是,则进入步骤12,否则,进入步骤13;

11.标记自身为正常状态,标记刚入网,记录指令中的使用信道,返回步骤8;

12.随机等待一段时间,返回步骤9;

13.在通道0广播待托管节点请求入网指令;

14.切换至信道0接收状态,等待回复,等待时间为t_wait,判断是否收到协调器回复的允许待托管节点入网指令,如果是,则进入步骤16,否则,进入步骤18;

15.读取指令,记录使用信道,标记自身状态为正常状态,标记刚入网;

16.在信道0向托管协调器回复待托管节点确认入网指令,返回步骤8;

17.等待30秒,将原有节点请求入网指令广播次数清零,返回步骤9;

18.数据测量发送阶段:

19.判断是否刚入网,如果是,则进入步骤20,否则进入步骤22;

20.给所有测量数据赋值为0;

21.切换至使用信道接收状态,一直等待现网络中协调器发送的数据采集指令,接收到指令后,进入步骤24;

22.打开传感器模块供电电源,测量环境参数;

23.关闭传感器供电电源,唤醒无线模块,切换至使用信道接收状态,等待协调器指令,等待时间为t_wait_collect,判断是否接收到协调器发送的数据采集指令,如果是,进入步骤24,否则进入步骤28;

24.记录下次采集数据时间间隔t_collect、故障节点总数n_error和新增故障节点数n_error_add,计算下次低功耗处理器唤醒定时时间t_wake=t_collect-t_measure–(n_error_add*t_wait),无线模块唤醒后接收等待时长t_wait_collect=n_error*t_wait,定时器定时t_wake;

25.在使用信道向协调器发送节点发送测量数据指令;

26.关闭所有不用资源,进入休眠;

27.定时时间t_wake到后,定时器中断唤醒低功耗处理器,返回步骤8;

28.标记自身故障状态,返回步骤8;

所述协调器工作步骤包括协调器入网阶段、监听广播阶段和数据汇集阶段;

具体步骤如下:

协调器入网阶段:

1.协调器通电后,初始化硬件配置;

2.向网关发送协调器请求入网指令;

3.收到网关回复的批准协调器入网指令后,记录协调器地址、原有节点数和使用信道,标记所有节点为故障状态;

4.在信道0广播协调器信道选择指令;

5.切换至信道0接收状态,等待回复,等待时间为t_wait,判断是否收到其他协调器回复的协调器信道占用指令,如果是,判断该信道被占用,进入步骤6,否则判断该信道可用,进入步骤9;

6.判断是否协调器选择信道指令发送次数等于信道总数减1次,如果是,判断信道选择失败,进入步骤7,否则进入步骤8;

7.向网关发送协调器信道选择失败指令,等待一段时间后,清空协调器选择信道指令发送次数,返回步骤4;

8.改变协调器选择信道指令中选用信道,返回步骤4;

9.确定使用信道channel_used向网关发送协调器信道选择成功指令;

10.收到网关回复网络建立成功指令后,更新定时器定时时间t_collect,定时器定时;

11.切换至信道0接收状态,监听广播;

12.判断定时器定时时间是否达到,如果没有到达,进入监听广播阶段,即步骤13-27,否则进入数据汇集阶段,即步骤28-39;

监听广播阶段:

13.判断是否收到节点或其他协调器广播的指令,如果是,进入步骤14,否则返回步骤12;

14.读取指令,判断指令类别,如果是协调器信道选择指令,进入步骤15,如果是节点请求入网指令,进入步骤19;

处理其他协调器信道选择指令子流程:

15.判断协调器信道选择指令中选用信道和自身使用信道是否相同,如果是,判断信道冲突,进入步骤16,否则进入步骤17;

16.在信道0回复协调器信道占用指令;

17.判断自身托管节点中是否有节点地址首字节同发送协调器信道选择指令的协调器的地址,如果有这样的节点,进入步骤18,否则返回步骤11;

18.标记该托管节点为故障状态,向网关发送节点故障指令,返回步骤11;

处理节点请求入网指令子流程:

19.读取指令,判断指令类型,如果是新节点请求入网指令,进入步骤20;如果是原有节点请求入网指令,进入步骤23;如果是原有节点请求入网指令,进入步骤21,如果是待托管节点请求入网指令,进入步骤25;

20.分配节点地址,在信道0向节点发送允许新节点入网指令;

21.切换至信道0接收状态,等待回复,等待时间为t_wait,如果接收到节点确认入网指令(包含节点地址),则进入步骤22,否则,返回步骤11;

22.更新节点数目s_node=s_node+1,标记节点为正常状态,向网关发送新节点入网指令,返回步骤11;

23.在信道0向节点发送允许原有节点入网指令;

24.标记节点为正常状态,向网关发送原有节点入网指令,返回步骤11;

25.在信道0向节点发送允许待托管节点入网指令;

26.切换至信道0接收状态,等待回复,等待时间为t_wait,如果接收到待托管节点确认入网指令,则进入步骤27,否则,返回步骤11;

27.记录该托管节点地址,标记节点为正常状态,向网关发送待托管节点入网指令;返回步骤11;

数据汇集阶段:

28.定时器定时时间达到后,向网关发送获取下次采集数据时间指令;

29.收到网关回复的通知下次采集数据时间指令后,更新定时器定时时间t_collect,定时器定时;

30.读取第一个节点的地址和状态,清零故障节点总数n_error和新增故障节点数n_error_add;

31.该节点状态是否为正常状态,进入步骤32,否则,进入步骤36;

32.在使用信道channel_used上向节点发送数据采集指令;

33.切换至使用信道channel_used接收状态,开始定时t_wait时间,等待回复,如果定时时间内接收到节点发送测量数据指令,则进入步骤34,否则,进入步骤35;

34.记录测量数据,向网关发送协调器数据传输指令,等待定时时间到,进入步骤37;

35.标记节点为故障状态,更新故障节点总数n_error=n_error+1,新增故障节点数n_error_add=n_error_add+1,向网关发送节点故障指令,进入步骤37;

36.更新故障节点总数n_error=n_error+1;

37.该节点是否为最后一个节点,如果是,进入步骤37,否则进入步骤38;

38.向网关发送本轮数据采集完毕指令,返回步骤11;

39.读取下一个节点的地址和状态,返回步骤31。

相比传统树形传感器网络,本发明的优点有:

1.规定传感器节点和协调器之间广播时固定使用信道0,与其他阶段的两者之间网络通信信道区分开。这使得需要广播的协调器选择信道指令和传感器节点入网指令只需在单一信道中广播,而无需扫描多个信道,在降低协调器选择信道过程和传感器节点入网过程的复杂性的同时,又避免传感器节点在入网过程中因扫描多个信道而产生的额外能耗,从而延长了网络寿命。

2.当协调器出现故障,短时间掉线时,其连接的传感器节点能自动重新接入网络。当协调器出现故障,长时间掉线时,其连接的传感器节点能在保留原本网络拓扑结构信息的前提下,接入其他协调器建立的网络,这使得用户得到的传感器节点测量数据因为协调器故障而缺失的情况大大减少,优化了测量数据的完整性。

3.出现故障的协调器重新上线重建新网络时,原有节点能快速回归到该协调器建立的网络中,包括已经接入其他协调器网络的传感器节点,也能快速退出现有网络,回归到原协调器建立的网络。同时传感器节点出现故障后重新上线,也能快速回归到原网络。这两者保证了网络拓扑结构的稳定性,使得网络的拓扑结构不会因为协调器或传感器节点故障而遭受破坏。

4.在数据汇集过程中采用传感器节点接收到协调器指令后被动发送测量数据的方法,避免了多节点并发情况。同时使用了一种相对简单且不需要rtc时钟的动态时间同步策略,使传感器节点在每次数据汇集过程中都会动态地根据当前网络的拓扑情况和拓扑变化情况,相应地调整下一次传感器节点唤醒时间和无线模块无线接收等待时长,避免了节点过早唤醒和无线长时间接收等待造成的能耗浪费,从而延长了网络寿命。

附图说明:

附图1为传感器节点硬件结构图。

附图2为协调器硬件结构图。

附图3为树形网络结构图。

附图4为传感器节点工作总流程图。

附图5为节点首次接入网络阶段流程图。

附图6为节点重新入网阶段流程图。

附图7为节点数据测量发送阶段流程图。

附图8为协调器工作总流程图。

附图9为协调器入网流程图。

附图10为协调器监听广播阶段流程图。

附图11为协调器处理其他协调器信道选择指令子流程。

附图12为协调器处理节点请求入网指令子流程图。

附图13为协调器数据汇集阶段流程图。

具体实施方式:

下面结合实例和附图对本发明实现方法和原理进一步说明。

本发明的传感器节点与协调器通过433m无线通信,协调器与中继网关通过串口通讯。

传感器节点(简称节点):负责在现场测量各种环境数据,并将数据通过433m无线发送给协调器。

传感器节点由电源模块、433m无线模块、低功耗处理器和传感器模块构成,硬件结构图如图1所示。

其中,电源模块为其他三个模块供电,同时低功耗处理器能切断传感器模块供电。低功耗处理器与433m无线模块之间通过spi总线进行数据传输,低功耗处理器与传感器模块根据传感器的不同通过iic总线或adc进行数据传输。

协调器:一方面通过433m无线与传感器节点进行通讯,负责传感器网络的建立,和传感器节点测量数据的采集。另一方面通过串口与中继网关进行通讯,负责向中继网关转发传感器节点测量数据,和接收中继网关的指令。

协调器由电源模块、433m无线模块、低功耗处理器和传感器模块构成,硬件结构图如图2所示。

其中,电源模块为其他两个模块供电。低功耗处理器与433m无线模块之间通过spi总线进行数据传输。

中继网关(简称网关):当各节点的测量数据在中继网关中数据汇集后,由网关对数据进行融合,最后通过网络将数据发送至监测服务器。

传感器、协调器、中继网关和监测服务器主机构成的树型网络结构图如图3所示。

其中监测服务器主机作为树型网络的第一层,每个中继网关对应一个协调器视为一体作为树型网络的第二层,传感器节点作为树型网络的第三层。

名称解释:

如果节点a没有加入过任何网络的节点,则称节点a为新节点。当新节点a加入到协调器a的网络中,则称节点a为是协调器a的现有节点,协调器a是节点a的现协调器。当现有节点a因为故障而脱离网络,则称节点a为协调器a的原有节点,协调器a是节点a的原协调器。当协调器a的原有节点a加入协调器b网络,则称节点a是协调器b的托管节点,协调器b是节点a的托管协调器,节点a是协调器a的被托管节点(属于原有节点范畴)。

将传感器节点的运行状态分为两种状态:一.未组网或者已组网但与协调器断开连接的状态(简称故障状态);二.已组网并与协调器连接正常状态(简称正常状态)。

协调器和节点向外发送数据后等待应答时间均为t_wait,超时不再等待。等待应答时间t_wait根据实际应用中单次应答所需时间决定。

节点首次接入网络阶段、重新接入网络阶段,无线信道为信道0(广播信道),在数据测量发送阶段,无线信道为对应网络的使用信道。

传感器节点工作流程:主要包括节点首次接入网络阶段、重新接入网络阶段、数据测量发送阶段。

注1:除了未入网的新节点接收允许入网指令之外,其余节点只能接收指令中节点地址符合自身地址的协调器指令。

注2:在监听广播阶段,协调器收发指令都使用信道0(广播信道);在数据汇集阶段,协调器收发指令都使用协调器入网阶段选择的使用信道channel_used。

注3:在数据汇集阶段,协调器发出向节点发送数据采集指令后,无论是否收到回复,都需要等待t_wait时间后,才能进入下一步骤。

1.节点通电后,初始化硬件配置。

2.读取控制器片内eeprom中的自身节点地址信息(默认地址为0x0000)。

3.节点地址是否为0x0000?如果是,则判断自身为未组网的新节点,进入节点首次接入网络阶段(步骤4-7)。否则判断不是新节点,进入步骤8。

首次接入网络阶段(步骤4-7):

4.在信道0(广播信道)广播新节点请求入网指令(包含节点的地址和传感器类别)。

5.切换至信道0接收状态,等待回复,等待时间为t_wait,是否收到协调器回复的允许新节点入网指令(包含分配的节点地址和使用信道)?如果是,则进入步骤6。否则,返回步骤4。

注1:等待时间t_wait根据实际采用的433m无线模块单次应答所需时间决定。

注2:节点地址(2字节)由网关地址(1字节)和入网序号(1字节)构成。这样的好处在于根据节点地址就能知道网络结构信息,即连接的网关地址和网络序号。

6.读取新节点允许入网指令,记录协调器分配的节点地址写入eeprom,记录使用信道。标记自身状态为正常状态,标记刚入网。

注1:节点地址写入eeprom是为了保证节点掉电后仍能保持原网络结构信息。

注2:使用信道不写入eeprom是因为协调器故障掉电,重新上电需要重新选择信道建立网络,在eeprom中写入使用信道没有意义。

7.在信道0向现协调器回复节点确认入网指令(包含节点地址)。进入步骤8。

8.自身状态是否为故障状态?如果是,进入重新接入网络阶段(步骤9-18),否则进入数据测量发送阶段(步骤19-28)。

重新接入网络阶段(步骤9-18):

(尝试连接原协调器)

9.判断原有节点请求入网指令(包含节点的地址和传感器类别)广播次数是否达到规定次数(可根据需要设置)?如果是,进入步骤14,否则进入步骤10。

10.在通道0广播原有节点请求入网指令(包含节点的地址和传感器类别)。

11.切换至信道0接收状态,等待回复,等待时间为t_wait,是否收到原协调器回复的允许原有节点入网指令(包含节点地址和使用信道)?如果是,则进入步骤12。否则,进入步骤13。

12.标记自身为正常状态,标记刚入网,记录指令中的使用信道。返回步骤8。

13.随机等待一段时间,返回步骤9。

(请求其他协调器托管)

14.在通道0广播待托管节点请求入网指令(包含节点的地址和传感器类别)。

15.切换至信道0接收状态,等待回复,等待时间为t_wait,是否收到协调器回复的允许待托管节点入网指令(包含节点地址和使用信道)?如果是,则进入步骤16。否则,进入步骤18。

16.读取指令,记录使用信道。标记自身状态为正常状态,标记刚入网。

17.在信道0向托管协调器回复待托管节点确认入网指令(包含节点地址)。返回步骤8。

18.等待30秒(根据需要设置),将原有节点请求入网指令广播次数清零。返回步骤9。

数据测量发送阶段(步骤19-28):

19.判断是否刚入网?如果是,则进入步骤20,否则进入步骤22。

20.给所有测量数据赋值为0。

注:在接入网络后的首次数据发送阶段仅为了和协调器时间同步,不测量环境数据。

21.切换至使用信道接收状态,一直等待现网络中协调器发送的数据采集指令(包含节点地址、下次采集数据时间间隔t_collect、故障节点总数n_error和新增故障节点数n_error_add)。接收到指令后,进入步骤24。

注:一直接收状态等待是因为节点刚接入网络和协调器之间时间还未同步。

22.打开传感器模块供电电源,测量环境参数。

23.关闭传感器供电电源。唤醒无线模块。切换至使用信道接收状态,等待协调器指令,等待时间为t_wait_collect,是否接收到协调器发送的数据采集指令?如果是,进入步骤24,否则进入步骤28。

24.记录下次采集数据时间间隔t_collect、故障节点总数n_error和新增故障节点数n_error_add,计算下次低功耗处理器唤醒定时时间t_wake=t_collect-t_measure-(n_error_add*t_wait)。无线模块唤醒后接收等待时长t_wait_collect=t_wait+n_error*t_wait。定时器定时t_wake。

注1:t_measure为节点上传感器测量数据所需时间总和,由实际节点所拥有的传感器类型和数目决定。计算t_wake时减去t_measure是因为传感器模块测量环境数据需要时间t_measure,所以节点需要提前t_measure唤醒测量。

注2:计算t_wake时减去n_error_add*t_wait是因为下一次数据采集比这一次减少了n_error_add个节点,导致下一次协调器发送的数据采集指令会比这一次提早到达n_error_add*t_wait时间。

注3:计算t_wait_collect时加上n_error*t_wait是因为在到达下一次数据采集之前,最多可能会有n_error个节点从故障状态恢复正常,导致下一次数据采集指令最多晚n_error*t_wait时间到达。

25.在使用信道向协调器发送节点发送测量数据指令(包含节点地址和测量数据)。

26.关闭所有不用资源,进入休眠。

27.定时时间t_wake到后,定时器中断唤醒低功耗处理器。返回步骤8。

28.标记自身故障状态,返回步骤8。

协调器工作流程:主要包括协调器入网阶段、监听广播阶段和数据汇集阶段。

注1:在监听广播阶段,协调器收发指令都使用信道0(广播信道);在数据汇集阶段,协调器收发指令都使用协调器入网阶段选择的使用信道channel_used。

1.协调器通电后,初始化硬件配置。

协调器入网阶段(步骤2-12):

2.向网关发送协调器请求入网指令。

3.收到网关回复的批准协调器入网指令(包含分配的协调器地址、原有节点数s_node和使用信道)后,记录协调器地址、原有节点数和使用信道。标记所有节点为故障状态。

注1:因为该网络结构中协调器附属于网关,是一对一关系,所以设定分配的协调器地址同网关地址。

注2:网关只传输原有节点数,而不传输具体节点地址是因为节点地址(2字节)由协调器地址(1字节)和入网序号(1字节)构成,协调器能根据原有节点数目自动生成原有节点地址。

4.在信道0广播协调器信道选择指令(包含协调器地址和选用信道)。

5.切换至信道0接收状态,等待回复,等待时间为t_wait,是否收到其他协调器回复的协调器信道占用指令(包含协调器地址和使用信道)?如果是,判断该信道被占用,进入步骤6,否则判断该信道可用,进入步骤9。

6.是否协调器选择信道指令发送次数等于信道总数减1次?如果是,判断信道选择失败,进入步骤7,否则进入步骤8。

7.向网关发送协调器信道选择失败指令,等待一段时间后(根据需要修改),清空协调器选择信道指令发送次数,返回步骤4。

8.改变协调器选择信道指令中选用信道,返回步骤4。

9.确定使用信道channel_used向网关发送协调器信道选择成功指令(包含协调器地址和使用信道)。

10.收到网关回复网络建立成功指令(包含距下次采集数据时间间隔t_collect)后,更新定时器定时时间t_collect,定时器定时。

11.切换至信道0接收状态,监听广播。

12.定时器定时时间是否达到?如果没有到达,进入监听广播阶段(步骤13-27),否则进入数据汇集阶段(步骤28-39)。

监听广播阶段(步骤13-27):

13.是否收到节点或其他协调器广播的指令?如果是,进入步骤14,否则返回步骤12。

14.读取指令,判断指令类别。如果是协调器信道选择指令(包含协调器地址和选用信道),进入步骤15。如果是节点请求入网指令(包含节点地址),进入步骤19。

处理其他协调器信道选择指令子流程:

15.协调器信道选择指令中选用信道和自身使用信道是否相同?如果是,判断信道冲突,进入步骤16。否则进入步骤17。

16.在信道0回复协调器信道占用指令(包含协调器地址和使用信道)。

17.自身托管节点中是否有节点地址首字节(即协调器地址)同发送协调器信道选择指令的协调器的地址?如果有这样的节点,进入步骤18,否则返回步骤11。

18.标记该托管节点为故障状态,向网关发送节点故障指令(包含节点地址),返回步骤11。

注:标记该托管节点为故障状态后,下次数据汇集不会询问该托管节点,该托管节点将判断自身故障状态,启动重新入网流程,优先加入原协调器建立的网络。从而实现了原协调器重新上线后,被托管节点回归原协调器建立的网络的功能。

处理节点请求入网指令子流程:

19.读取指令,判断指令类型?如果是新节点请求入网指令(包含节点的地址和传感器类别),进入步骤20。如果是原有节点请求入网指令(包含节点的地址和传感器类别),进入步骤23。如果是原有节点请求入网指令(包含节点的地址和传感器类别),进入步骤21。如果是待托管节点请求入网指令(包含节点的地址和传感器类别),进入步骤25。

20.分配节点地址,在信道0向节点发送允许新节点入网指令(包含节点地址)。

注:节点地址(2字节)由协调器地址(1字节)和入网序号n(1字节)构成。入网序号n=原有节点数s_node+1。

21.切换至信道0接收状态,等待回复,等待时间为t_wait,如果接收到节点确认入网指令(包含节点地址),则进入步骤22。否则,返回步骤11。

注:等待时间t_wait根据实际采用的433m无线模块单次应答所需时间决定。

22.更新节点数目s_node=s_node+1,标记节点为正常状态,向网关发送新节点入网指令(包含节点的地址和传感器类别)。返回步骤11。

23.在信道0向节点发送允许原有节点入网指令(包含节点地址)。

24.标记节点为正常状态,向网关发送原有节点入网指令(包含节点的地址和传感器类别)。返回步骤11。

25.在信道0向节点发送允许待托管节点入网指令(包含节点地址和使用信道)。

26.切换至信道0接收状态,等待回复,等待时间为t_wait,如果接收到待托管节点确认入网指令(包含节点地址),则进入步骤27。否则,返回步骤11。

27.记录该托管节点地址,标记节点为正常状态,向网关发送待托管节点入网指令(包含节点的地址和传感器类别)。返回步骤11。

注:相比新节点入网,托管节点入网时,协调器不更新节点数目s_node,不分配新地址,使托管节点能保存原网络结构信息。

数据汇集阶段(步骤28-38):

28.定时器定时时间达到后,向网关发送获取下次采集数据时间指令。

29.收到网关回复的通知下次采集数据时间指令(包含距下次采集数据时间间隔t_collect)后,更新定时器定时时间t_collect,定时器定时。

30.读取第一个节点的地址和状态,清零故障节点总数n_error和新增故障节点数n_error_add。

31.该节点状态是否为正常状态,进入步骤32。否则,进入步骤36。

32.在使用信道channel_used(协调器入网阶段确定的使用信道)上向节点发送数据采集指令(包含节点地址、下次采集数据时间间隔t_collect、故障节点总数n_error和新增故障节点数n_error_add)。

33.切换至使用信道channel_used接收状态,开始定时t_wait,等待回复,如果定时时间内接收到节点发送测量数据指令(包含节点地址和测量数据),则进入步骤34。否则,进入步骤35。

34.记录测量数据,向网关发送协调器数据传输指令(包含节点地址和测量数据)。等待定时时间到,进入步骤37。

注:需等待定时时间到达是为了确保在数据汇集阶段内协调器用在每一个节点上的时间相同,从而保障与节点的时间同步。

35.标记节点为故障状态,更新故障节点总数n_error=n_error+1,新增故障节点数n_error_add=n_error_add+1,向网关发送节点故障指令(包含节点地址)。进入步骤37。

36.更新故障节点总数n_error=n_error+1;

37.该节点是否为最后一个节点(包括托管节点在内)?如果是,进入步骤37,否则进入步骤38。

38.向网关发送本轮数据汇集完毕指令,返回步骤11。

39.读取下一个节点的地址和状态,返回步骤31。

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