【Zigbee】ZLL 配网流程分析
1. 什么是ZLL
ZigBee Light Link (ZLL)
是一种全球标准,用于保证普通民用照明和控制产品的互连互通和易于使用。它为消费者提供了新的照明功能,包括远程控制、可编程定时控制和情绪照明。采用ZigBee Light Link
应用规范中的ZigBee PRO
协议,可在家庭中实施无线网络。此网络包括光节点和控制节点,如电灯开关、感应传感器、遥控装置、智能手机、平板电脑和笔记本电脑。
ZLL
原本是zigbee
联盟定义的专门用于照明的一个规范。从zigbee3.0
开始, ZLL
已经不再局限于照明领域,而是逐渐演变成一种配网方式。
ZLL
网络中有两种角色,即发起者Initiator
,对应的是client
端和目标设备Target
,对应的是server
端。举个例子,在Zigbee
照明场景中,通常
遥控器 Initiator
灯 Target
2. ZLL设备需要支持的命令
Client端
Server端
3. ZLL配网方式介绍
ZLL网络的配网方式为Touch Link
,也就是接触配网。需要Initiator
和Target
设备相互靠近,并通过一系列的协议交互完成配网。Touch Link
的可配网距离根据Initiator
和Target
设备设定的rssi阈值决定,一般建议为:-60dBm。
4. 配网流程介绍
本文主要介绍以下两种分布式网络场景。
4.1. Initiator未加入网络
4.1.1. scan request
发起端根据配置在所选信道依次发起scan request
扫描。
报文类型:Inter-PAN
报文包含设备信息,和ZLL信息
4.1.2. scan response
目标设备收到scan request
之后,如果支持ZLL
,则回复scan response
。
报文类型:Inter-PAN
报文包含设备信息、ZLL信息、当前网络信息等。可以看到当前目标设备网络处在20信道,PAN id为0x671A。
4.1.3. identify request
发起端收到目标设备的回复后,会选择对哪个设备进行ZLL操作,并发起identify request
用于通知目标设备。
报文类型:Inter-PAN
报文包含identify
时间。
需要说明的是:identify有两种模式,一种是直接带具体时间,比如Telink;一种是先发0xFFFF identify时间作为开始,再发0x0000 identify时间作为结束,比如芯科。
4.1.4. network start request
发起端向目标设备发起建立分布式网络请求。
报文类型:Inter-PAN
报文指定了新网络的 NWK key
;是否由target
自行确定信道和PAN id
;target
设备短地址,initiator
设备短地址,initiator
设备长地址等。
4.1.4. network start response
目标设备回复建立分布式网络结果。
报文类型:Inter-PAN
报文包含建网结果,扩展PAN id
,新网络信道和PAN id
;
4.1.4. leave
目标设备向原网络发起leave
通知。
4.1.4. 目标设备 device announce
目标设备向新网络发起device announce
通知,声明已经在网。
可以看到目标设备的短地址用的是发起端指定的0x0002
。
4.1.4. 发起端 rejoin
发起端收到目标设备的network start response
之后获取到新网络的网络参数,一般的做法是延时几秒发起rejoin
操作。
至此,整个ZLL配网过程结束,initiator和target设备可以在新的分布式网络进行通信。
4.2. Initiator已有网络
Initiator
已有网络的场景和Initiator
未加入网络的场景,ZLL配网流程上最主要的差异就是发起端确认目标设备之后,发送的是network join router request
命令。
报文类型:Inter-PAN
报文指定了新网络的 NWK key
;新网络信道;新网络PAN id;target
设备短地址等。
目标设备确认后回复network join router response
命令。
报文类型:Inter-PAN
其余流程和Initiator未
加入网络场景一致。
PS:本文抓包文件可通过附件下载,欢迎沟通学习。