一直搞不懂zigbee的commissioning是在做什么,这两天翻了翻之前的资料,多少有点收获,写下来,以后还能翻着看看,这样不会忘的那么彻底。
Commissioning is the process of setting up Zigbee nodes so that they can communicate data.
首先,一个zigbee节点在可以正确使用之前(比如说作为一个开关,一个灯泡),都要经历三个过程,initialization->join->commissioning,从这里可以看出commissioning是在节点成功找到了网络之后才开始的过程。
Commissioning 是一个应用层面的概念。设想一下你就是一个zigebee节点,在一个zigbee网络中你想和哪个节点通信呢?(一个角色为light switch的节点怎么知道自己应该控制哪个lignt或者哪些lights呢?)同时有很多zigbee网络存在的话,commissioning还应该保证节点不被其他网络干扰。
对于commissioning来讲,我觉得最重要的应该就是determine which nodes on the network to talk to 和determine how to talk to those other nodes(groups,bindings,or directly)
Commissioning 被分成了三个场景:
1.Simple commissioning
2.Butterfly commissioning
3.Custom commissioning
场景1和2可以使来自不同厂商生产的zigebee设备都能正确组网和通信(比如Phillps生产的灯和TI生产的灯能够配对组网,它们之间是不知道彼此的设备信息的),场景3是有设备厂家定义好节点信息之后再使用的(想起了之前做的温室环境监控的zigbee网络,很符合场景3的描述,但是当时还不知道commissioning这个概念)。
很重要的一点,每一个zigbee设备要有一个"factory reset"功能,为了防止在使用过程中出错或者installer想把device移动到另一个网络中。Zigbee devices 会将它们当前的网络状态存储到non-volatile 存储器中,所以掉电或者reboot设备不会对devices存储信息造成影响,必须通过软件擦除的方式才能恢复出厂设置。
Commissioning primitives can be found in variety of Zigbee components(不知道中文怎么翻译这句话),包括网络层,APS层,ZDO,ZDP 和ZCL。在一个节点中的应用会包括上面这些primitives。大部分primitives是一local和over-the-air两种形式存在的:
- Zigbee Device Object(ZDO) 包含了寻找和加入网络的不同方式,它会调用网络层做一些这方面的工作
- Zigbee Device Profile(ZDP)包含了device(node)和service(application)发现,还有remote table-management functions。
- Zigbee Cluster Library(ZCL)提供了一个over-the-air group and sence 管理
- The Commissioning Cluster 提供了一个标准的无线方式,包括建立security keys,PAN IDs,the channel mask and manager addresses
ZDO依据决定了设备应该加入哪个网络,至于ZDP、ZCL和commissioning cluster只有在节点加入之后才被用到。
主要的ZDP commissioning 命令有:
- ZDP-Bind,ZDP-unbind,and ZDP-End-Device-Bind 添加和移除remove binding tables 入口
- ZDP-Simple-Descriptor-Request and ZDP-Active-Endpoint-Request and ZDP-Match-Descriptor 决定了节点上存在哪些应用
- ZDP-IEEE-Address-Request能找到网络中所有节点(只在Zigbee corordinator运行)
- ZDP-Mgmt-Bind决定哪些应用被绑定上了
- ZDP-Permit-Joining-Request enables and disables permit-join in the network
有关ZCL的commissioning cluster,是ZCL中标准的cluster,文献内有介绍它在commercial building environment 中使用广泛,简单来说就是多个zigbee网络存在的复杂场景,在我的项目没有涉及到,这里就不详细阐述了。
有关ZDP,ZDO和ZCL,都是zigebee中非常重要的概念,会重新新建文章讲述这些概念。