本发明涉及zigbee局域无线通信技术领域,具体的说,是一种zigbee协调器心跳管理方法。
背景技术:
随着物联网(iot)技术的发展,包括工业自动化、智能家居、智慧能源在内的多个领域,对无线数据通信的需求越来越强,zigbee是基于ieee802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的无线通信技术。由于zigbee技术具有低功率、短时延、高容量、高安全等优势,在行业中开始大规模使用,根据行业标准协会的数据,目前zigbee全球出货量已经超过5亿片,并且增长速度越来越快。zigbee网络系统由协调器(类似于网关)、路由器、终端节点三类角色的设备或系统组成,协调器的功能主要负责整个系统网络的管理,包括系统中终端和路由节点网络地址的分配;安全管理,如安全证书的下发和更新;消息分发,如负责把宿主处理器的消息下发给下属节点,同时把下属节点信息上传给宿主处理器处理。在整个使用环节中,由于用户需要关注设备是否离线(掉电、损坏、信号不好引起的掉线),在技术上通过终端设备给协调器定时发送一个通知信息,协调器在指定的时间周期内如果没有收到这个通知消息,就表明这个设备已经离线,同时需要把这个离线事件上报给宿主处理器,再由宿主处理器上报给用户。在当前的解决方案中,协调器不会去处理设备传上来的心跳,只是简单的转发给宿主处理器做进一步判断处理,由于宿主处理器程序开发人员是应用开发人员,本身对zigbee具体技术并不熟悉,需要了解很多有关心跳的具体信息,非常麻烦,如果接入设备种类很多,且每种设备的心跳周期并不相同,那么,这种情况就变得更加复杂,极大程度上影响了开发进度;另一方面,频繁的心跳消息上传对于协调器和宿主处理器本身就是一种冗余,可能对于通道中其他重要即时消息的传送造成影响。所以,传统的处理方法存在严重缺陷。
技术实现要素:
本发明的目的在于提供一种zigbee协调器心跳管理方法,用于解决现有技术中传统协调器不会去处理设备传上来的心跳,只是简单的转发给宿主处理器做进一步判断处理,频繁的上传对协调器和宿主处理器中其他消息的传送造成影响的问题。
本发明通过下述技术方案解决上述问题:
一种zigbee协调器心跳管理方法,包括:
步骤s100:分别设置每个接入设备的心跳周期,并建立心跳管理表;
步骤s200:设备的心跳周期时间到达时,协调器判断是否收到设备的心跳信息,如果收到,则认定为在线,否则认定为离线,并将在线或离线状态更新到所述心跳管理表;
步骤s300:当协调器设定的心跳上报周期时间到达时,遍历所述心跳管理表,把设备的在线或离线信息以一个数据包上报给宿主处理器。
进一步地,所述数据包由attrid、datatype、*attrdata和shortaddr构成,其中:
attrid:用于表达设备的状态是在线还是离线;
datatype:用于表达上传的短地址的数据类型,并计算出短地址数组的长度,用以判断上报离线设备的个数;
*attrdata:指向短地址数组的指针;
shortaddr:短地址,用于唯一的表示一个设备。
进一步地,所述步骤s200具体包括:
步骤s210:设定计时时间,协调器的计时器从0开始计时;
步骤s220:当计时器到达计时时间时,判断心跳周期减去计时时间是否大于0,如果是,进入步骤s230;否则将收到心跳信息的设备状态更新为在线,将没有收到心跳信息的设备状态更新为离线,并将在线或者离线状态更新至心跳管理表;进入步骤s300;
步骤s230:心跳周期=心跳周期-计时时间,协调器的计时器重新计时;返回步骤s220。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明在协调器端通过单一的计时器实现了多种类设备的心跳集中管理,将每个设备的心跳周期值的设置暴露给宿主处理器,并通过单一高效的数据结构实现设备离线或在线状态的集中上报。
(2)本发明为了防止注册设备的访问地址,心跳周期等重要信息不丢失,在掉电时会写入协调器设备的flash中保存,在协调器重启成功后,会从flash中读出数据,恢复心跳管理表。
(3)本发明可以根据设备的功耗类型分别设置设备的心跳周期,并且根据设置的不同的心跳周期设置了计时时间,可以从功耗和时延上权衡心跳周期的设置。
附图说明
图1为本发明的流程图;
图2为本发明的协调器上传数据包的结构图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种zigbee协调器心跳管理方法,包括:
(1)设置每个接入设备节点的心跳周期值,以秒为单位,作为判断离线的依据,当心跳周期内没有收到设备端发给协调器的心跳消息,则认为设备已经离线;
(2)设定协调器的计时时间为10秒,协调器的计时器从0开始计时,当计时器到达10s时,判断心跳周期减去10s是否大于0,如果是,进入(3);否则将收到心跳信息的设备状态更新为在线,将没有收到心跳信息的设备状态更新为离线,并将在线或者离线状态更新至心跳管理表;进入步骤(4);
(3):心跳周期=心跳周期-计时时间,协调器的计时器重新计时;返回步骤(2)。
(4)上报给宿主处理器的数据结构见图1(协调器上传数据包的结构图),从图中可以看出,该数据结构通过datatpye来判断上报离线设备(通过该设备的短地址表示)的个数,可以实现多个设备在一个上报消息中实现离线或者在线(通过attrid的值来表示)的上报。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本技术公开的原则范围和精神之内。