如何在創(chuàng)建ZigBee應(yīng)用時(shí)做出正確的選擇
低功耗、低成本的ZigBee無線網(wǎng)絡(luò)標(biāo)準(zhǔn)使得把無線通信功能嵌入到日用家電成為可能。它的支持者宣稱,該標(biāo)準(zhǔn)將在家庭和樓宇自動(dòng)化、節(jié)能甚至國(guó)土安全領(lǐng)域開拓豐富的新市場(chǎng)。
盡管ZigBee v1.0版規(guī)范已經(jīng)得到最終批準(zhǔn),但對(duì)于打算進(jìn)入這個(gè)市場(chǎng)的公司來說,該協(xié)議不是能以一種規(guī)格適應(yīng)所有應(yīng)用的“萬能藥”。在其最基礎(chǔ)層,ZigBee確保了與其它符合標(biāo)準(zhǔn)的產(chǎn)品的互操作性。而與ZigBee的潛在應(yīng)用非常之廣一樣,開發(fā)人員必須權(quán)衡的問題也非常之多,包括更深層的應(yīng)用、架構(gòu)和平臺(tái)等。
ZigBee標(biāo)準(zhǔn)提供了網(wǎng)絡(luò)、安全和應(yīng)用支持服務(wù),這些服務(wù)工作在IEEE 802.15.4媒體存取控制(MAC)和物理層(PHY)無線標(biāo)準(zhǔn)之上。它采用了一整套技術(shù)來實(shí)現(xiàn)可擴(kuò)展、自組織、自恢復(fù)的網(wǎng)絡(luò),這種網(wǎng)絡(luò)可以管理各種各樣的數(shù)據(jù)傳輸模式(見圖1)。
圖1:ZigBee標(biāo)準(zhǔn)提供了在 |
盡管ZigBee常常被默認(rèn)為無線網(wǎng)格網(wǎng)絡(luò),但該標(biāo)準(zhǔn)實(shí)際上支持多種網(wǎng)絡(luò)拓?fù)洌ㄐ切?、簇樹?cluster tree)或星/網(wǎng)格混合型網(wǎng)絡(luò)(見圖2)。因此,開發(fā)人員首先要考慮的是“哪種網(wǎng)絡(luò)結(jié)構(gòu)最適合我的應(yīng)用需要?”
如果數(shù)據(jù)可靠性是關(guān)鍵要求,那么網(wǎng)格網(wǎng)絡(luò)架構(gòu)針對(duì)固有的不可知缺陷提供了最佳防護(hù),這些缺陷有可能導(dǎo)致任何無線環(huán)境(例如存在RF衰減、電磁干擾和多徑信號(hào)的情況)中的信號(hào)質(zhì)量下降。通過把ZigBee接收器和發(fā)射器放得更加靠近,所有這三種條件的負(fù)面效果將會(huì)減輕。網(wǎng)格網(wǎng)絡(luò)的冗余通道會(huì)確保提供替代的數(shù)據(jù)通道,從而避免單節(jié)點(diǎn)故障。
其它應(yīng)用也許需要ZigBee路由器來擴(kuò)展網(wǎng)絡(luò)的工作范圍,其中路由器將充當(dāng)因?yàn)橄嗑嗵h(yuǎn)而不能直接通信的節(jié)點(diǎn)之間的中繼器。此外,這種部署方案可能依賴于電池供電的路由器,所以需要相當(dāng)數(shù)量的“睡眠”時(shí)間以增加它們的使用壽命。例如,在一個(gè)農(nóng)作物監(jiān)視網(wǎng)絡(luò)或者類似的農(nóng)業(yè)應(yīng)用中,簇樹型結(jié)構(gòu)也許是最好的選擇。它可以把多個(gè)子網(wǎng)絡(luò)匯聚成一個(gè)長(zhǎng)距離的ZigBee廣域網(wǎng)。在這個(gè)廣域網(wǎng)中,低數(shù)據(jù)率的通信流沿著樹進(jìn)行傳輸,而只有當(dāng)需要發(fā)送或接收適當(dāng)子網(wǎng)之間的數(shù)據(jù)時(shí)才喚醒電池供電的路由器。反之,一些較短距離的應(yīng)用更適合采用星型拓?fù)?,因?yàn)樗梢悦獬W(wǎng)格網(wǎng)絡(luò)的路由通信負(fù)擔(dān)。
互操作性
盡管ZigBee是一個(gè)開放標(biāo)準(zhǔn),但它也賦予了OEM很大的自由度,允許他們決定自己的產(chǎn)品應(yīng)該在多大程度上向第三方供應(yīng)商開放。因?yàn)閆igBee標(biāo)準(zhǔn)只定義了網(wǎng)絡(luò)、安全和應(yīng)用接口層,所以開發(fā)商可以購(gòu)買整個(gè)ZigBee協(xié)議棧,包括針對(duì)特定產(chǎn)品的應(yīng)用類(profile),或者只許可實(shí)現(xiàn)基本的網(wǎng)絡(luò)級(jí)互操作性的聯(lián)網(wǎng)層。
在應(yīng)用層,開發(fā)商必須決定是采用公共的應(yīng)用類還是開發(fā)自己專有的類。ZigBee v1.0已經(jīng)為照明應(yīng)用定義了基本的公共類,并正在制定針對(duì)HVAC、工業(yè)傳感器和其它傳感器的應(yīng)用類。任何公司都可以設(shè)計(jì)與支持公共類的產(chǎn)品相兼容的產(chǎn)品。例如,一個(gè)采用公共ZigBee照明類的熒光燈鎮(zhèn)流器供應(yīng)商可以與采用相同類的第三方燈開關(guān)調(diào)光器實(shí)現(xiàn)互操作。開發(fā)人員可以對(duì)該公共類加入他們自己的看法和感覺。ZigBee設(shè)備采用應(yīng)用對(duì)象進(jìn)行建模,這些應(yīng)用對(duì)象通過交換類對(duì)象和它們的屬性實(shí)現(xiàn)與其它設(shè)備的通信。
盡管這看起來同ZigBee的開放精神相矛盾,但一些OEM也會(huì)開發(fā)不在應(yīng)用層提供互操作性的產(chǎn)品。開發(fā)商可以設(shè)計(jì)專有的應(yīng)用類,以創(chuàng)造只有單一供應(yīng)商的設(shè)備,或者選擇第三方設(shè)備。ZigBee定義了一個(gè)抽象接口,而平臺(tái)供應(yīng)商提供了應(yīng)用編程接口(API),該API定義了應(yīng)用如何被集成到ZigBee協(xié)議棧的規(guī)則。一個(gè)專有的ZigBee系統(tǒng)仍然可以在網(wǎng)絡(luò)層上受益于第三方產(chǎn)品制造商。ZigBee底層棧的互操作性提供了數(shù)據(jù)路由、媒體存取控制、網(wǎng)絡(luò)形成及維護(hù)、設(shè)備和服務(wù)發(fā)現(xiàn)等功能。
數(shù)據(jù)如何進(jìn)行傳輸是開發(fā)人員考慮的另一個(gè)關(guān)鍵因素,因?yàn)閆igBee沒有定義傳輸層。開發(fā)人員必須決定到底是自己創(chuàng)建傳輸機(jī)制,還是使用一個(gè)帶有內(nèi)置傳輸層的ZigBee芯片來創(chuàng)建他們的應(yīng)用。例如,Ember公司連同ZigBee協(xié)議棧一道提供了一個(gè)傳輸層,這有助于簡(jiǎn)化應(yīng)用開發(fā)過程并確??煽康亩说蕉讼鬟f。該傳輸層提供了開發(fā)人員可以據(jù)此定義專有ZigBee類的框架。
安全性
大部分ZigBee解決方案將需要某種級(jí)別的安全性。ZigBee提供了一套基于128位AES算法的安全類和軟件,并集成了802.15.4的安全元素。ZigBee協(xié)議棧類為MAC、網(wǎng)絡(luò)和應(yīng)用層定義了安全性。它的安全服務(wù)包括針對(duì)關(guān)鍵進(jìn)程建立和傳輸、設(shè)備管理和框架保護(hù)的方法。
如果開發(fā)人員選擇使用一個(gè)公共的ZigBee類,那么就已經(jīng)為其應(yīng)用做出了安全決策,因?yàn)樵谠擃愔幸呀?jīng)對(duì)安全性進(jìn)行了預(yù)定義。即使開發(fā)人員打算創(chuàng)建一個(gè)專有類的應(yīng)用,他仍可以在若干個(gè)ZigBee預(yù)定義的棧類中挑選一種安全模式。
在這個(gè)層上,開發(fā)人員需要決定這樣一些問題:是否需要對(duì)數(shù)據(jù)幀的載荷進(jìn)行加密,以及附著在數(shù)據(jù)幀末尾的認(rèn)證碼長(zhǎng)度(8、16或64位,等等)?;镜膽?yīng)用也許不需要認(rèn)證,因而可以受益于一個(gè)較小的數(shù)據(jù)包載荷。這些數(shù)據(jù)完整性方面的選項(xiàng)使得開發(fā)人員可以在消息保護(hù)和額外開銷之間進(jìn)行權(quán)衡。
開發(fā)人員還必須決定在哪個(gè)層上施加安全機(jī)制:在MAC層、網(wǎng)絡(luò)層還是應(yīng)用層。如果應(yīng)用需要盡可能強(qiáng)大的安全保護(hù),那么就在應(yīng)用層保護(hù)它。此處實(shí)施的安全措施采用了一個(gè)會(huì)話密鑰,它只能被另一個(gè)擁有該鑰匙的設(shè)備所認(rèn)證和解密。這種方法既能防止內(nèi)部攻擊也能防止外部攻擊,但需要更多的存儲(chǔ)器來實(shí)現(xiàn)它。
在MAC層和網(wǎng)絡(luò)層的安全性實(shí)質(zhì)上服務(wù)于相同的目的:確保單跳傳輸?shù)陌踩?。MAC層仲裁對(duì)共享媒介的訪問并控制相鄰設(shè)備之間的單跳傳輸。ZigBee聯(lián)盟添加了一個(gè)網(wǎng)絡(luò)層安全選項(xiàng)以便加入在MAC層無法實(shí)現(xiàn)的功能,包括拒絕不能被驗(yàn)證的數(shù)據(jù)幀的能力。這兩個(gè)安全層采用的是該網(wǎng)絡(luò)上所有ZigBee設(shè)備都共享的全局密鑰。MAC層和網(wǎng)絡(luò)層的安全性適合需要防止對(duì)特定基礎(chǔ)設(shè)施攻擊的應(yīng)用,例如防止一個(gè)非法設(shè)備惡意侵入網(wǎng)絡(luò)。如果開發(fā)人員需要在兩個(gè)設(shè)備之間建立路由,而該網(wǎng)絡(luò)層的框架又是不安全的,那么非法設(shè)備可能會(huì)截取數(shù)據(jù)包。
圖2:ZigBee支持多種網(wǎng)絡(luò)拓?fù)洌?BR>包括星型、集群樹型或星/網(wǎng)格混 |
ZigBee安全性還引入了一個(gè)“信用中心(Trust Center)”的概念,它允許設(shè)備進(jìn)入網(wǎng)絡(luò),然后分配密鑰,從而確保設(shè)備之間端到端的安全性。此處,開發(fā)人員必須根據(jù)他們的應(yīng)用從兩種信用中心模式之間選擇一種:住宅或商用。住宅模式消耗資源少,但不建立密鑰或隨著網(wǎng)絡(luò)規(guī)模而擴(kuò)展。商用模式建立并維護(hù)密鑰,而且具有良好的擴(kuò)展性,但其代價(jià)是要消耗相當(dāng)多的存儲(chǔ)器。
平臺(tái)考慮因素
ZigBee提供了一個(gè)標(biāo)準(zhǔn)化的網(wǎng)絡(luò)和應(yīng)用框架,開發(fā)人員可以在此基礎(chǔ)上建立應(yīng)用而無須擔(dān)憂聯(lián)網(wǎng)和RF問題的煩擾。然而,單靠其自身,ZigBee標(biāo)準(zhǔn)化框架不能保證產(chǎn)品的順利開發(fā)。為了創(chuàng)建兼容ZigBee的應(yīng)用,這個(gè)市場(chǎng)的不同供應(yīng)商提供了各種各樣的產(chǎn)品,包括RF收發(fā)器、微控制器、閃存ROM、供應(yīng)商專有的協(xié)議棧和應(yīng)用開發(fā)工具。因此,開發(fā)人員必須選擇是用多家供應(yīng)商的組件創(chuàng)建自己的ZigBee解決方案,還是在一個(gè)集成硬件/軟件平臺(tái)上建立自己的應(yīng)用。由于前一種方法涉及艱難的集成工作,因此大部分開發(fā)人員將可能傾向于后一種方法。
他們必須做出的第一個(gè)決定是在芯片和聯(lián)網(wǎng)軟件層次上。最大的挑戰(zhàn)起源于硬件和聯(lián)網(wǎng)軟件之間的復(fù)雜性和不兼容性。在開發(fā)一個(gè)新應(yīng)用時(shí)發(fā)現(xiàn)的問題很少只局限于一個(gè)協(xié)議棧層。例如,在一個(gè)原型設(shè)計(jì)的MAC層中發(fā)現(xiàn)的一個(gè)故障很少能夠被網(wǎng)絡(luò)層提供商檢測(cè)到并進(jìn)行調(diào)試。因而,開發(fā)人員必須仔細(xì)考慮他們所選平臺(tái)的集成深度。
一個(gè)ZigBee解決方案需要一個(gè)RF收發(fā)器、一個(gè)針對(duì)應(yīng)用處理的微控制器或DSP和一個(gè)ZigBee網(wǎng)絡(luò)棧。直到最近,大部分系統(tǒng)都是來自于多家供應(yīng)商合作伙伴的多芯片、多軟件解決方案。目前,新一代的全集成、單供應(yīng)商平臺(tái)正在進(jìn)軍該市場(chǎng)。多供應(yīng)商平臺(tái)有時(shí)可以提供較低的前期成本優(yōu)勢(shì)。但是,一個(gè)單一來源的平臺(tái)雖然常常更昂貴,卻可讓開發(fā)人員避免由不同供應(yīng)商的硬件和軟件產(chǎn)品組成的解決方案所固有的麻煩和產(chǎn)品開發(fā)延遲。
開發(fā)人員還必須考慮網(wǎng)絡(luò)棧的深度。一般來說,網(wǎng)絡(luò)棧越深,開發(fā)工作越容易。一個(gè)提供從物理網(wǎng)絡(luò)層、傳輸層直到ZigBee類的網(wǎng)絡(luò)棧將使開發(fā)人員不必理會(huì)網(wǎng)絡(luò)的內(nèi)在工作機(jī)理,從而允許他們集中精力于應(yīng)用開發(fā)上。例如,一個(gè)用混合供應(yīng)商解決方案建立的ZigBee應(yīng)用可能需要開發(fā)人員計(jì)算他們的應(yīng)用將如何處理節(jié)點(diǎn)之間丟失的網(wǎng)絡(luò)包。這類復(fù)雜的網(wǎng)絡(luò)問題已經(jīng)在單一來源、全棧平臺(tái)中得到考慮。
工具的選擇也可能成就或毀壞一項(xiàng)ZigBee開發(fā)工作。開發(fā)人員需要仔細(xì)考慮他們平臺(tái)的開發(fā)環(huán)境的廣度和功能。供應(yīng)商提供全套的開發(fā)工具是很重要的,它應(yīng)該具備多節(jié)點(diǎn)無線半導(dǎo)體、網(wǎng)絡(luò)軟件、軟件工具、培訓(xùn)和技術(shù)支持。此外,該工具應(yīng)該是一個(gè)集成環(huán)境的一部分,此集成環(huán)境具備通用接口或者是一系列獨(dú)立工具的集合。最后,開發(fā)環(huán)境應(yīng)該包括用于調(diào)試的充分工具。
作者: Zachary Smith
首席軟件設(shè)計(jì)師
Ember公司