ZigBee作为一种网络栈协议,有着完备的网络功能,ZCL是ZigBee对象的cluster库,通过Digi XBee ZigBee模块可以发送ZigBee对象的ZCL命令来查询各种ZigBee对象的信息。LQI是其中的一个常用查询命令,它用来获取相邻节点的各种信息。ZigBee的协议文档对此有具体的定义。

为了能发送和解析ZCL,需要配置AP=1和AO=1。以两个节点的网络为例,一个是协调器,一个是路由器。先让他们组网,我们要在协调器发起调查路由器节点的邻近节点列表和链路质量,只需在协调器上设置AP=1,AO=1。

然后在协调器上新建一个0x11的发送帧,输入目标路由器的MAC地址,cluster设置为0x11, profile和两个endpoint都要设置为0,表示是zigbee对象本身的cluster。在payload上设置0x0100,其含义是:

XCTU上的0x11包可参考:

发送出去后,会收到一个包0x91帧,相关的发送,接收和反馈包如下,请下载解压后,LQI查询在XCTU上用Tools–》Load Console Session来打开观察。

分析LQI查询结果

根据ZigBee官方文档对LQI查询的定义,接收帧的意义如下:

在这个例子中,只有一个相邻节点: