一直搞不懂zigbee的commissioning是在做什么,這兩天翻了翻之前的資料簿晓,多少有點收獲肺孤,寫下來罗晕,以后還能翻著看看,這樣不會忘的那么徹底赠堵。
Commissioning is the process of setting up Zigbee nodes so that they can communicate data.
首先小渊,一個zigbee節(jié)點在可以正確使用之前(比如說作為一個開關(guān),一個燈泡)茫叭,都要經(jīng)歷三個過程酬屉,initialization->join->commissioning,從這里可以看出commissioning是在節(jié)點成功找到了網(wǎng)絡(luò)之后才開始的過程揍愁。
Commissioning 是一個應(yīng)用層面的概念呐萨。設(shè)想一下你就是一個zigebee節(jié)點,在一個zigbee網(wǎng)絡(luò)中你想和哪個節(jié)點通信呢莽囤?(一個角色為light switch的節(jié)點怎么知道自己應(yīng)該控制哪個lignt或者哪些lights呢谬擦?)同時有很多zigbee網(wǎng)絡(luò)存在的話,commissioning還應(yīng)該保證節(jié)點不被其他網(wǎng)絡(luò)干擾朽缎。
對于commissioning來講惨远,我覺得最重要的應(yīng)該就是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可以使來自不同廠商生產(chǎn)的zigebee設(shè)備都能正確組網(wǎng)和通信(比如Phillps生產(chǎn)的燈和TI生產(chǎn)的燈能夠配對組網(wǎng)蔚舀,它們之間是不知道彼此的設(shè)備信息的),場景3是有設(shè)備廠家定義好節(jié)點信息之后再使用的(想起了之前做的溫室環(huán)境監(jiān)控的zigbee網(wǎng)絡(luò)锨络,很符合場景3的描述赌躺,但是當(dāng)時還不知道commissioning這個概念)。
很重要的一點羡儿,每一個zigbee設(shè)備要有一個"factory reset"功能礼患,為了防止在使用過程中出錯或者installer想把device移動到另一個網(wǎng)絡(luò)中。Zigbee devices 會將它們當(dāng)前的網(wǎng)絡(luò)狀態(tài)存儲到non-volatile 存儲器中掠归,所以掉電或者reboot設(shè)備不會對devices存儲信息造成影響缅叠,必須通過軟件擦除的方式才能恢復(fù)出廠設(shè)置。
Commissioning primitives can be found in variety of Zigbee components(不知道中文怎么翻譯這句話)虏冻,包括網(wǎng)絡(luò)層肤粱,APS層,ZDO厨相,ZDP 和ZCL领曼。在一個節(jié)點中的應(yīng)用會包括上面這些primitives。大部分primitives是一local和over-the-air兩種形式存在的:
- Zigbee Device Object(ZDO) 包含了尋找和加入網(wǎng)絡(luò)的不同方式蛮穿,它會調(diào)用網(wǎng)絡(luò)層做一些這方面的工作
- Zigbee Device Profile(ZDP)包含了device(node)和service(application)發(fā)現(xiàn)庶骄,還有remote table-management functions。
- Zigbee Cluster Library(ZCL)提供了一個over-the-air group and sence 管理
- The Commissioning Cluster 提供了一個標(biāo)準(zhǔn)的無線方式践磅,包括建立security keys单刁,PAN IDs,the channel mask and manager addresses
ZDO依據(jù)決定了設(shè)備應(yīng)該加入哪個網(wǎng)絡(luò)府适,至于ZDP羔飞、ZCL和commissioning cluster只有在節(jié)點加入之后才被用到。
主要的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 決定了節(jié)點上存在哪些應(yīng)用
- ZDP-IEEE-Address-Request能找到網(wǎng)絡(luò)中所有節(jié)點(只在Zigbee corordinator運行)
- ZDP-Mgmt-Bind決定哪些應(yīng)用被綁定上了
- ZDP-Permit-Joining-Request enables and disables permit-join in the network
有關(guān)ZCL的commissioning cluster檐春,是ZCL中標(biāo)準(zhǔn)的cluster逻淌,文獻(xiàn)內(nèi)有介紹它在commercial building environment 中使用廣泛,簡單來說就是多個zigbee網(wǎng)絡(luò)存在的復(fù)雜場景喇聊,在我的項目沒有涉及到恍风,這里就不詳細(xì)闡述了。
有關(guān)ZDP誓篱,ZDO和ZCL朋贬,都是zigebee中非常重要的概念,會重新新建文章講述這些概念窜骄。