文章目录
1. 上位机、协调器、路由和终端设备通讯框架
这是系统的整体框架:分为两个部分,分别是上位机和下层的zigbee网络。通讯分两个部分,下层的zigbee网络的通讯和协调器与上位机的通讯。整体框架如下图所示
1.1. 上位机和协调器通讯:
- 与协调器的通讯主要包括,上位机给协调器发布控制信息,状态获取信息,网络管理信息等;协调器上报给上位机的信息有网络状况信息,底层心跳信息等。
- 上位机和协调器的通讯方式是串口通讯,使用的是串口0,不带流控,波特率38400,通讯的帧格式为:
表1. 上位机与协调器通讯的帧格式
数据帧的长度不固定,但是格式固定,其中起始码,长度,校验码,结束码,这些是固定的格式,剩余信息都为数据内同,即表1可以简化为表2:
表2.上位机和协调器通讯帧结构简表
1.2. 路由,终端,协调器通讯:
- 协调器,路由,终端通讯的主要内容有:协调器转发上位机下发的命令,终端节点的设备状态上报信息,终端节点的心跳信息。终端节点发送的离网请求等等。
- 通讯的帧结构为:
- Zigbee网络通讯帧结构简表
.
以上是整个网络工作模式,框架,以及通讯方式的说明,下面我们将详细的说明每一部分的工作流程让我们仔细介绍zigbee网络的工作模式,和工作流程。
首先,整个网络使用网状结构(Mash结构),设备类型分为3类,分别是协调器(Coordinator),路由器(Router),终端(EndDevice)。
2. 1. 协调器上的操作
2.1.1. 开启组网
协调器上电后,网络创建成功,不发送网络信息广播,也不允许任何节点加入网络,只有当连按3次协调器的按键,或者上位机发送准许入网的指令,这时候协调器才发送网络信息广播,准许设备加入网络
2.1.2. 控制是否允许节点进入网络。
这里有个时间窗,时间窗内所有的节点都允许正常进入的,并且给他们发送入网成功的ACK,此时代表登记,配置成功。
2.1.3. 接收子设备心跳并且响应心跳,判断节点是否在网络中。
2.1.4. 保存网络的状态。
网络状态包括子设备的厂地址,短地址,的映射关系等,同时在上位机上也保存了设备的厂地址短地址和LQI等一些信息。
2.1.5. 记录设备状态。
记录灯,开关,窗帘,遥控器等各种家电的状态。这些状态不在协调器的保存,协调器获取到这些消息后上传给上位机。
2.1.6. 控制整个网络恢复出厂设置。
长按按键9S,此时协调器会广播恢复出厂设置指令,广播若干次,然后协调器进入网络恢复出厂设置的状态,收到广播信息的节点也进入
2.1.7. 踢出某个节点。
协调器踢出某个节点,那么这个节点会退出网络,并且协调器会清除这个节点的网络信息
2.1.8. 传输数据给上位机。
将设备的状态,网络地址,链路质量等一些信息通过串口发送的上位机,同时接收上位机的控制指令,然后通过射频发送给目的节点,达到操作的目的。
2.2 协调器功能描述图
说明:因为没有做出网络信息以及设备状态保存位置说明,故先将网络信息设备状态等信息以协调器为保存容器,如果以后在控制中心保存,那么协调器的功能就变成个协议转换中心,数据转发中心,网络组建中心了。
2.3 协调器首次上电流程图
流程图说明:流程如流程图一样从上到下的顺序,右侧是协调器状态的说明。
2.4 协调器2次上电和添加新设备流程图
说明:本图主要说明了协调器的3种网络管理状态,下面将详细说明一下不同状态的实现过程。
2.4.1 PANID和信道都不改变的情况下协调器2次上电
PANID和信道都不改变的情况下协调器2次上电,此时网络的恢复是根据NV的记录恢复网络,这个与设备掉网恢复的过程是一样的,如果NV中记录的有这个节点的信息则同意次节点加入网络,如果没有节点信息则不同意设备加入网络,协调器在创建好网络以后,整个工作过程一直处于这种工作模式中。
2.4.2 PANID和信道改变的情况下
PANID和信道改变的情况下,协调器上电后开启个时间窗口(时间窗口开启的触发条件是网络信息发生变化,包括信道或者是PANID),这个时间窗口内允许任何设备加入网络,当设备加入网络后协调器比较设备的MAC地址是否在自己的NV中有记录,有则网络正常运行,没有将删除这个节点,直至时间窗关闭为止,然后网络进入A3状态。
2.4.3 添加新设备
触发条件,上位机发送添加新设备指令,协调器收到指令后,开启一个时间窗允许任何设备加入网络,加入网络后,保存这个设备的网络信息和节点信息,时间窗关闭,网络进入A3状态。
2.5 路由和终端上的操作
2.5.1 开启网络发现
连按3次按键,设备开启网络发现模式,如果有网络则加入网络
2.5.2. 发送心跳信息
每100s一次上报设备状态,把这个信息当作心跳处理
2.5.3. 上报设备状态。
通过心跳上报设备状态,或者通过响应协调器下发的指令回报设备状态)
2.5.4. 网络恢复时匹配比较,保证网络安全可靠。
网络恢复时比较自身记录的MAC地址是否与所在网络中协调器的MAC地址一样,如果一样就在网络中,如果不一样主动退出网络
2.5.5. 申请离开网络
包括主动离开网络和被动离开网络两部分
2.5.6. 恢复出厂设置
长按任意按键9S设备可以自动回复出厂设置
2.5.7. 特别对路由说明
路由为中继节点,不采用低功耗,不休眠,终端节点一般为电池供电,考虑低功耗模式和休眠。
2.6 路由和终端的功能图
说明:这些是路由和终端的基本功能,上面文字已经对功能的使用情况和详细应用做了详细的描述。
2.7 路由和终端掉电恢复图
2.7.1 流程说明
- 设备上电,之前的设备断电原因不用考虑,无论出于何种原因断电,但是网络恢复的基础是这个设备在这个时间之前已将在网络中正常运行了,并且记录了之前协调器的MAC地址,同时开启了NV。
- 上电后设备启动读取NV恢复NV中保存的网络。
- 开始扫描NV记录的网络,如果网络存在则加入网络,同时需要协调器进行响应。如果这个网络不存在了,那么终端会进行整个网络扫描。
- 扫描到网络后加入网络,加入网络后比较自己记录的MAC地址和现在的协调器MAC地址。
- 相同则不做任何反应在网络中正常的运行。
- 不相同,则主动退出网络,继续进行网络扫描知道进入正常工作状态。
- 进入正常工作状态后发送心跳发送设备状态。
2.8 网络整体流程
2.8.1 流程说明
- 设备上电后,上位机下发组网指令或者协调器连按3次按键,这时候创建了一个网络并且这个网络接收入网请求。
- 子设备连按3次按键,此时子设备扫描网络并且加入网络。
- 协调器响应子设备加入网络,同时保存子设备网络信息;子设备加入网络成功后保存协调器的MAC地址。
- 协调器准许新设备入网的时间窗耗尽,此时协调器只起到维护网络和转发消息的作用。
- 加入网络成功后,子设备正常发送心跳包和设备状态上报,同时响应协调器转发的控制信息,同时保持间隔性的休眠。
- 协调器转发上位机下发的控制指令和子设备发送的心跳信息,或者控制响应信息以及设备状态上报信息。
- 整个网络进入正常的工作模式,协调器和路由设备不能计入休眠模式,终端节点定时休眠达到节能的目的。