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:本文抓包文件可通过附件下载,欢迎沟通学习。