ZigBee协议详解
发布网友
发布时间:2022-09-15 08:56
我来回答
共1个回答
热心网友
时间:2023-10-08 22:07
ZigBee 逻辑设备类型
a.Coordiantor 应该充当Trust Center 的角色,负载建立一个centralized
security network (集中式安全网络),不得加入其它网络。
b.Router 应该可以加入一个已建立的集中式/分布式安全的网络,不能建立centralized security
network (集中式安全网络)。但是当无法加入已建立的集中式/分布式安全网络的情况下,可以自行建立distributed security network (分布式安全网络)。
c.EndDevice 应该可以加入一个已建立的集中式/分布式安全的网络
一个ZigBee可能支持充当Coordiantor和Router的两种角色的能力,可通过应用程序来切换,但是同一个时间只能充当一种角色,如:一个Router设备尝试加网但失败了,它可以切换至Coordiantor角色去建立一个集中式安全网络,一旦此设备建网/入网完成,不得再改变自己的设备类型,除非离网或者遭到其他破坏。
Network 安全模型
一个ZigBee网络可以支持集中式安全模型或者分布式的安全模型,所有非Coordiantor类型的ZigBee设备应该能通过合适的安全条件,加入到集中式安全模型或者分布式的安全模型的网络中,对于用户而言是无缝的。
Link key 连接秘钥(16位)
所有ZigBee节点必须包含以下Link
key:
a. 默认的(集中式安全网络)全局密钥:
Default global Trust Center link
key (0:15) = 0x5a 0x69 0x67
0x42 0x65 0x65 0x41 0x6c 0x6c 0x69 0x61 0x6e 0x63 0x65 0x30 0x39
b. 分布式安全网络的全局秘钥
Distributed security global link
key (0:15) =0xd0 0xd1 0xd2 0xd3 0xd4 0xd5 0xd6
0xd7 0xd8 0xd9 0xda 0xdb 0xdc 0xdd 0xde 0xdf
c. 由安装码得到的预配置秘钥
Install code derived preconfigured
link key(6/8/12/16字节任意值)= 安装码+CRC(2字节)->Hash散列函数->128位的Link Key
此外,如果设备支持touchlink 的入网方式,还需要包含以下秘钥:
d. touchlink 预配置秘钥
Touchlink preconfigured link key
(0:15) = 0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc6
0xc7 0xc8 0xc9 0xca 0xcb 0xcc 0xcd 0xce 0xcf
安装码的使用
所有ZigBee 3.0的设备都需要支持安装码,Trust Center 可能要求所有设备以安装码的方式入网
a.非零售需要专业人员安装的ZigBee设备,可能配置为使用安装码的方式加网
b.零售的需要用户去配置的ZigBee设备,用户可以通过物理按键切换以下两种模式:只让使用安装码入网的节点入网的模式和使用其他所有方式入网的模式
c.零售的不需要用户配置的ZigBee设备应该能够自动加网
Commissioning
所有设备需要支持network steering(网络控制) 机制,以及finding & binding 机制
a.Network steering:所有ZigBee设备都需要支持network steering 机制
b.Network formation:设备建立网络的能力,其安全模型取决于ZigBee的设备类型:Coordiantor(集中式安全模型网络),Router(分布式安全模型)
c.Finding & binding :定位和绑定其他节点上的应用Cluster的能力
d.Touchlink commissioning :支持基于靠近的commissioning 方式,若支持touchlink commissioning方式,必须支持touchlink 为a initiator or a target or both 。
对所有 ZigBee3.0 设备的必须满足的要求
a.ZDO discovery service commands :
Active_EP_req,Node_Desc_req,Simple_Desc_req,IEEE_addr_req, NWK_addr_req,Match_Desc_req,
Active_EP_rsp ,Node_Desc_rsp,Simple_Desc_rsp,IEEE_addr_rsp,NWK_addr_rspandMatch_Desc_rspcommands
b.ZDO node manager service commands :
Mgmt_Bind_req, Mgmt_Lqi_req
Mgmt_Bind_rspand,Mgmt_Lqi_rspcommands
c.ZDO binding table service commands :
Unbind_req ,Bind_req
Bind_rsp,Unbind_rsp
d.ZDO network manager service command :
Mgmt_Leave_req
Mgmt_Leave_rsp
e.一个ZigBee节点在finding & binding 的时候去广播Identify Query ,至少能够处理一个Identifycluster的Identify Query Response 命令,如果能处理多个Identify Query Response 命令,需要进行特殊处理
d.一个节点如果是finding
& binding的发起者,其绑定表大小必须大于等于Cluster的实体数量,在finding
& binding, touchlink 或者centralized
commissioning 的时候完成绑定表配置的,不管是哪种生成的绑定表,都必须保持一致,才能够通过Mgmt_Bind_req 命令获取其内容
f.对于一个节点的每个强制的可报告的属性实体都必须要有默认的report配置
默认的 reporting 配置
一个可报告的属性实体都有默认的report配置(最大报告间隔为0x0000或者0x003d~0xfffe),一个已绑定的cluster之间需要发送report,需要支持随时更新配置report。当两次报告的间隔等于最大报告间隔时需要产生report,如果最大报告周期设置为0,那个不会产生周期性的report,但是任然可以在属性值改变后产生report
MAC data polling
BDB文档对Mac层的Poll频率不做*
poll的频率应该是可以根据节点的状态进行动态调节的,推荐使用短poll和长poll,ZigBee父节点为自己子节点缓存的数据生命期只有7.5s,因此睡眠终端设备的poll频率应该比7.5s/次快才能确保拿到自己的数据。
如果EndDevice节点在等待reponse消息的时候,它必须使用短poll间隔,至少3s/次。
如果没有等待的消息可能需要使用长poll间隔,如一小时一次,来确保与父节点的连接可用
在ZigBee加网和finding &
binding 的阶段,睡眠终端设备必须使用短poll间隔
ZigBee 永久数据
设备重启依然需要保存之前的bdbNodeIsOnANetwork属性
GreenPower
ZigBee 3.0的Router和Coordiantor必须支持Green Power(endpoint 242),EndDevice类型的设备需要根据硬件设计来选择是否支持Green
Power。
Network Steering
ZigBee 3.0的设备加网时,会依次用Install code
derived preconfigured link key、Default global
Trust Center link key 、Distributed
security global link key和Touchlink
preconfigured link key(如果支持Touchlink的加网方式)扫网加网,每次先扫描主信道(非wifi重合信道)再扫描次信道(余下的),而且起始的通道号是随机产生的;这个过程叫Network Steering。