鸣涧 发表于 2022-11-25 22:59:28

NXP Zigbee 3.0 软件开发流程 - 设备权限机制分析

NXP Zigbee 3.0 软件开发流程 - 设备权限机制分析


在 ZigBee 网络中,我们有时候不希望别人的设备加入我们的 ZigBee 网络,我们可以禁用新加入设备的权限,先验证是否我们的设备,再恢复权限的方式,来限制新加入网络的设备。
下面来讲解在 NXP ZigBee 3.0 协议栈中的设备权限机制。
我们可以使用函数 zps_eAplZdoSetDevicePermission() 在本地设备上设置某些权限。这些权限如下:
权限许可枚举描述
zps_DEVICE_PERMISSIONS_ALL_PERMITED允许所有来自其他节点的请求
zps_DEVICE_PERMISSIONS_JOIN_DISALLOWED不允许来自其他节点的入网请求
zps_DEVICE_PERMISSIONS_DATA_REQUEST_DISALLOWED不允许来自其他节点的数据请求轮询以及关闭端到端响应

当允许设备加入网络时,默认设置 ALL_PERMITED 选项,所以设备可以响应来自其他节点的请求。然而,如果网络使用 ZigBee 密钥建立集群(the Key Establishment cluster)(例如一个智能能源网络),在新节点加入网络的密钥建立过程中,有必要禁止新加入节点上的数据请求轮询和端到端响应。应用必须实现如下的过程:1. 一旦发生事件表明设备已加入网络(事件 zps_EVENT_NWK_JOINED_AS_ROUTER 或 zps_EVENT_NWK_JOINED_AS_ENDDEVICE),应用程序必须通过调用 zps_eAplZdoSetDevicePermission() 函数中的 DATA_REQUEST_DISALLOWED 权限来禁止数据请求轮询和 APS 的端到端响应。

2. 然后,可以使用为密钥建立集群(the Key Establishment cluster)提供的函数启动密钥建立过程

3. 一旦密钥的建立过程成功完成,数据请求轮询和 APS 端到端响应可以通过调用 zps_eAplZdoSetDevicePermission() 函数中的 ALL_PERMITED 权限再次允许。

密钥建立集群(the Key Establishment cluster)和相关资源在文档密钥建立集群(the Key Establishment cluster)中有充分的说明(例如在 ZigBee 智能能源用户指南中)。

参考资料《 JN-UG-3113 ZigBee 3.0 Stack User Guide v1.5.pdf 》Page 111 – 5.10.4 jn-ug-3113_zigbee_3_0_stack_user_guide_v1_5.pdf
页: [1]
查看完整版本: NXP Zigbee 3.0 软件开发流程 - 设备权限机制分析