公司擁有優(yōu)秀的銷(xiāo)售團(tuán)隊(duì)和專(zhuān)業(yè)的研發(fā)部門(mén),不但在品牌、價(jià)格、供貨、服務(wù)等方面領(lǐng)先業(yè)界,而且可為客戶(hù)提供及時(shí)、可行的技術(shù)支持和整體設(shè)計(jì)服務(wù),滿足不同客戶(hù)多層次需求。
如何開(kāi)發(fā)更具魯棒性的ZigBee解決方案
通過(guò)精心地定義ZigBee規(guī)范中的網(wǎng)絡(luò)和應(yīng)用層,ZigBee聯(lián)盟希望獨(dú)立的設(shè)備制造商能夠開(kāi)發(fā)出可以互操作的優(yōu)秀終端產(chǎn)品。成員們對(duì)ZigBee芯片組給予了很高的期望,希望能夠幫助OEM制造商進(jìn)一步降低成本,從而為系統(tǒng)集成商和終端用戶(hù)提供低成本的終端產(chǎn)品。
隨著市場(chǎng)需求的增長(zhǎng)以及大量的志愿者投入研究ZigBee規(guī)范,現(xiàn)在已經(jīng)到了將一個(gè)低成本、低功率的無(wú)線通信系統(tǒng)的可行性方案提供給人們的時(shí)候了。本文將討論設(shè)計(jì)和集成一個(gè)ZigBee方案時(shí)應(yīng)該考慮的一些重要因素。文中的許多內(nèi)容來(lái)自MaxStream公司在研發(fā)其首套ZigBee認(rèn)證產(chǎn)品——XBee OEM無(wú)線模塊過(guò)程中所獲取的經(jīng)驗(yàn)。
ZigBee一覽
1. ZigBee網(wǎng)絡(luò)
ZigBee定義了三種節(jié)點(diǎn)類(lèi)型:協(xié)調(diào)器、路由器和終端設(shè)備。協(xié)調(diào)器可以通過(guò)選擇網(wǎng)絡(luò)的工作信道和個(gè)域網(wǎng)識(shí)別標(biāo)志(PAN ID)來(lái)啟動(dòng)一個(gè)ZigBee網(wǎng)絡(luò)。一旦網(wǎng)絡(luò)啟動(dòng),路由器和終端設(shè)備就能加入網(wǎng)絡(luò)。協(xié)調(diào)器和路由器都能通過(guò)網(wǎng)絡(luò)發(fā)射和路由數(shù)據(jù),并且允許其它的路由器和終端設(shè)備加入。終端設(shè)備不能參與路由數(shù)據(jù),因此在不發(fā)射和接收數(shù)據(jù)時(shí)可以休眠。當(dāng)設(shè)備加入ZigBee PAN時(shí),設(shè)備間的父子關(guān)系即形成,加入的設(shè)備為子,允許加入的設(shè)備為父。一個(gè)簡(jiǎn)單的ZigBee網(wǎng)絡(luò)如圖1所示。
2. ZigBee尋址
ZigBee設(shè)備支持兩種地址類(lèi)型:一種是64位IEEE地址,另一種是16位網(wǎng)址。64位地址在所有ZigBee設(shè)備之中是唯一,其中包含一個(gè)由IEEE分配、也是全球唯一的24位制造商特定組織識(shí)別符(OUI)。
當(dāng)設(shè)備加入ZigBee個(gè)域網(wǎng)時(shí),它可以從允許其加入的父設(shè)備上獲取16位網(wǎng)址。該網(wǎng)址在個(gè)域網(wǎng)內(nèi)被規(guī)定為唯一。該網(wǎng)址用于數(shù)據(jù)傳輸和數(shù)據(jù)包路由。用于路由數(shù)據(jù)包的路由表存放著各個(gè)目標(biāo)設(shè)備和下一跳設(shè)備的網(wǎng)絡(luò)地址。因此個(gè)域網(wǎng)的各設(shè)備都必須有明確且唯一的網(wǎng)絡(luò)地址,以保證數(shù)據(jù)能到達(dá)正確的設(shè)備。
圖1:簡(jiǎn)單的ZigBee網(wǎng)絡(luò)。
然而,在有些條件下一個(gè)設(shè)備的地址可能會(huì)改變,或者是多個(gè)節(jié)點(diǎn)可能接收到同一個(gè)地址。例如,如果終端設(shè)備被移除或失去與父設(shè)備的聯(lián)系,它就必須重新連接網(wǎng)絡(luò),這可能導(dǎo)致它接收到一個(gè)新的地址。另外,如果協(xié)調(diào)器被一臺(tái)新設(shè)備所替換,新協(xié)調(diào)器會(huì)不知道哪些地址是之前的協(xié)調(diào)器分發(fā)的。新協(xié)調(diào)器分發(fā)給設(shè)備的地址很容易與已有的網(wǎng)址重疊。
ZigBee聯(lián)盟正在加緊研究解決這些地址問(wèn)題的對(duì)策,并將解決方案整合到ZigBee規(guī)范中去。但是,一些協(xié)議棧和模塊提供者,譬如MaxStream公司已經(jīng)研發(fā)出解決這些問(wèn)題的方法。
3. ZigBee路由
ZigBee包括一個(gè)用于AODV網(wǎng)狀路由的基本框架。如果一個(gè)設(shè)備需要向其它設(shè)備發(fā)送數(shù)據(jù),它首先需要發(fā)現(xiàn)一條可能要經(jīng)過(guò)多臺(tái)路由器才能到達(dá)目標(biāo)設(shè)備的路由。網(wǎng)狀路由允許動(dòng)態(tài)地建立、修改或替換傳輸路徑,從而保持設(shè)備間有一條可靠的路徑。
然而,除網(wǎng)狀路由之外,ZigBee規(guī)范還經(jīng)常依賴(lài)樹(shù)狀路由。在樹(shù)狀路由中,數(shù)據(jù)將在源設(shè)備和目標(biāo)設(shè)備之間的“樹(shù)”狀路由上嚴(yán)格地按照從父到子或從子到父的路徑傳輸。
圖2:樹(shù)狀路由(左)和網(wǎng)狀路由(右)的演示。
當(dāng)節(jié)點(diǎn)移動(dòng)或刪除時(shí)路由可能出現(xiàn)問(wèn)題。這時(shí)如果單個(gè)節(jié)點(diǎn)無(wú)法從一條路由中隔離開(kāi)來(lái),那么整個(gè)樹(shù)狀路由就無(wú)法定位故障點(diǎn)。而網(wǎng)狀網(wǎng)絡(luò)就能在現(xiàn)有路由發(fā)生故障時(shí)發(fā)現(xiàn)一條新路由。
ZigBee協(xié)議棧按照規(guī)范采用樹(shù)狀和網(wǎng)狀路由的ZigBee 1.0標(biāo)準(zhǔn)而建立。兩種路由之間的交互是相當(dāng)復(fù)雜的,而且協(xié)議棧之間的交互也是不斷變化的。但是,增強(qiáng)型ZigBee規(guī)范(2006)增加了一個(gè)nwkUseTreeRouting功能,該功能可以使整個(gè)樹(shù)狀路由徹底斷開(kāi),再由(NLME)路由發(fā)現(xiàn)請(qǐng)求(route-discovery-request)原語(yǔ)根據(jù)需要強(qiáng)制進(jìn)行路由發(fā)現(xiàn)。這些功能可以解決與樹(shù)狀路由相關(guān)的問(wèn)題,并且允許開(kāi)發(fā)商充分發(fā)揮網(wǎng)狀路由的優(yōu)勢(shì)。
圖3:當(dāng)所建通道上的一個(gè)節(jié)點(diǎn)失效時(shí)樹(shù)狀路由(左)和網(wǎng)狀路由(右)的性能。
4. ZigBee互操作性
ZigBee規(guī)范包括一些可以用來(lái)定義各種網(wǎng)絡(luò)的配置功能。開(kāi)發(fā)商可以很容易地配置以下參數(shù):目標(biāo)系統(tǒng)中的路由器和/或終端設(shè)備數(shù)量;安全級(jí)別;路由表和鄰居表規(guī)模;網(wǎng)絡(luò)最大深度(從協(xié)調(diào)器到最遠(yuǎn)派生設(shè)備的連接深度);協(xié)調(diào)器/父路由器允許的子路由器和終端設(shè)備的最大數(shù)量。
ZigBee聯(lián)盟研發(fā)出了為這些不同協(xié)議棧建立通用設(shè)置的公共框架-可配置參數(shù)表。為了完成框架(如家庭控制協(xié)議??蚣芫投x了開(kāi)燈、關(guān)燈、或切換一個(gè)燈光的簇ID)內(nèi)的共同任務(wù),該框架還定義了一些稱(chēng)作簇ID的接口。
終端設(shè)備必須圍繞可互操作的同一框架來(lái)設(shè)計(jì)。因此,應(yīng)用開(kāi)發(fā)商必須設(shè)置他們的協(xié)議棧參數(shù)以匹配公共框架所規(guī)定的參數(shù)值,從而確保與采用同一框架的其它解決方案的互操作性。另外,開(kāi)發(fā)商也可以為了滿足其設(shè)計(jì)而通過(guò)采用專(zhuān)用(定制)的框架來(lái)自由修改協(xié)議棧參數(shù)。不過(guò),在專(zhuān)用框架中所定義的簇ID不具備與基于公共框架的設(shè)備互操作的能力。
由于開(kāi)發(fā)商具有選擇框架的靈活性,從而并非所有的ZigBee設(shè)備都能互操作。雖然這種靈活性一開(kāi)始會(huì)在市場(chǎng)上引起一些混亂,但允許開(kāi)發(fā)商決定其產(chǎn)品是否要與其他供應(yīng)商的設(shè)備進(jìn)行互操作。在不需要互操作性的場(chǎng)合,功能強(qiáng)大的ZigBee可以圍繞一個(gè)專(zhuān)用框架進(jìn)行開(kāi)發(fā),并剪裁協(xié)議棧參數(shù)來(lái)滿足特殊應(yīng)用需求。
5. ZigBee認(rèn)證
經(jīng)認(rèn)證的ZigBee硬件平臺(tái)(芯片組和模塊)和軟件層(PHY層、MAC層和網(wǎng)絡(luò)層)必須做ZigBee驗(yàn)證平臺(tái)(ZCP)測(cè)試。通過(guò)ZCP認(rèn)證的硬件平臺(tái)和軟件協(xié)議棧表明適用于ZigBee終端產(chǎn)品的研發(fā)。
在ZigBee兼容平臺(tái)上開(kāi)發(fā)的終端產(chǎn)品可以直接做產(chǎn)品認(rèn)證測(cè)試。終端產(chǎn)品認(rèn)證允許產(chǎn)品出現(xiàn)在ZigBee認(rèn)證產(chǎn)品列表中,并打上ZigBee標(biāo)識(shí)。ZigBee聯(lián)盟已經(jīng)開(kāi)發(fā)了相關(guān)測(cè)試標(biāo)準(zhǔn)來(lái)認(rèn)證基于公共和專(zhuān)用框架的終端產(chǎn)品是否是合格的ZCP產(chǎn)品。
尚未解決的ZigBee問(wèn)題
ZigBee規(guī)范正在繼續(xù)改進(jìn)并將提供更多的功能,但同時(shí)ZigBee聯(lián)盟也認(rèn)識(shí)到該規(guī)范還存在一些問(wèn)題:
1. 更改網(wǎng)絡(luò)地址
如前所述,在ZigBee PAN中分配給節(jié)點(diǎn)的網(wǎng)絡(luò)地址可以改變,甚至在某些條件下會(huì)重名。這就使得網(wǎng)絡(luò)必須解決不可靠的尋址機(jī)制,以確保將數(shù)據(jù)發(fā)送到正確的設(shè)備中。
ZigBee聯(lián)盟正在考慮改變尋址機(jī)制,以提供更具魯棒性的尋址機(jī)制。同時(shí),包括MaxStream在內(nèi)的一些模塊提供商研發(fā)出了基于唯一性64位地址的解決方案,能確保可靠的數(shù)據(jù)傳輸。
2. 固定工作信道
由于ZigBee采用802.15.4 MAC/PHY規(guī)范中所規(guī)定的直序擴(kuò)頻(DSSS)調(diào)制,因此可以工作在固定信道。在通過(guò)能量掃描篩選出具有較高能量的信道后選出工作信道。但是,一旦初始能量掃描完成后,在所選的信道質(zhì)量變壞時(shí)ZigBee網(wǎng)絡(luò)無(wú)法重置新的信道。因?yàn)橛性S多設(shè)備(包括蜂窩電話、微波和802.11網(wǎng)絡(luò))占用2.4GHz頻段,因此這可能是一個(gè)大問(wèn)題。目前,終端設(shè)備開(kāi)發(fā)商必須在其設(shè)計(jì)中解決干擾問(wèn)題。ZigBee聯(lián)盟也在研究此問(wèn)題的解決方案。ZigBee規(guī)范的新版本可能會(huì)解決此問(wèn)題。
3. 容量限制
ZigBee剛開(kāi)始打算用64K閃存。但是,對(duì)于需要可靠的數(shù)據(jù)傳輸、網(wǎng)狀組網(wǎng)、更高安全等級(jí)、低功率的終端設(shè)備等高級(jí)應(yīng)用而言,這一空間將很難滿足802.15.4 MAC/PHY、ZigBee網(wǎng)絡(luò)層以及其它所期望的應(yīng)用功能要求。隨著ZigBee的持續(xù)發(fā)展,先進(jìn)的應(yīng)用似乎需要遷移至帶有更多閃存的微控制器。
ZigBee實(shí)現(xiàn)方案
隨著市場(chǎng)需求的增長(zhǎng)和ZigBee自身要素的改善,部署一個(gè)經(jīng)認(rèn)證的ZigBee方案將具有極高的價(jià)值。隨著ZigBee規(guī)范的最新進(jìn)展,可以采用現(xiàn)有的ZigBee架構(gòu)開(kāi)發(fā)出可靠的ZigBee解決方案。開(kāi)發(fā)商必須在從零開(kāi)始研發(fā)自己的軟硬件還是集成已經(jīng)驗(yàn)證過(guò)的ZigBee模塊解決方案之間作出慎重選擇。
為了開(kāi)發(fā)一個(gè)魯棒的ZigBee解決方案,MaxStream公司在ZigBee規(guī)范方面付出了大量的時(shí)間和精力。以下一些建議都來(lái)自于我們的實(shí)際經(jīng)驗(yàn),對(duì)那些打算采用ZigBee解決方案的開(kāi)發(fā)商將有所裨益。
1. 硬件選擇
在開(kāi)發(fā)ZigBee解決方案時(shí),首先是要確定硬件平臺(tái)。通常,硬件平臺(tái)由一個(gè)芯片組或模塊組成。如前所述,ZigBee聯(lián)盟定義了一個(gè)用于平臺(tái)驗(yàn)證的ZigBee ZCP,可用來(lái)驗(yàn)證平臺(tái)是否支持ZigBee方案。如果ZigBee終端產(chǎn)品想攜帶ZigBee標(biāo)識(shí)并作為ZigBee認(rèn)證產(chǎn)品上市,所用的硬件平臺(tái)和ZigBee軟件協(xié)議棧必須被ZigBee聯(lián)盟認(rèn)證為ZigBee兼容平臺(tái)。
2. 采用模塊
模塊提供了比芯片組更多的優(yōu)點(diǎn)。選用模塊可以為開(kāi)發(fā)商節(jié)省成本,省去痛苦的RF前端設(shè)計(jì)、樣機(jī)設(shè)計(jì)、產(chǎn)品測(cè)試和EMC測(cè)試。模塊提供商已經(jīng)通過(guò)了嚴(yán)格的應(yīng)用測(cè)試和網(wǎng)絡(luò)協(xié)議棧測(cè)試,并且已經(jīng)加入簡(jiǎn)化ZigBee接口的一些功能。特別是MaxStream XBee模塊還提供了固件,這些固件提供了魯棒性的網(wǎng)狀組網(wǎng)、可靠尋址甚至信道遷移策略,為的是解決尚未解決的ZigBee問(wèn)題。
如果模塊固件不能滿足某個(gè)特定應(yīng)用的需求,某些模塊提供商還提供了一個(gè)靈活的選擇。某些情況下(包括MaxStream XBee模塊),設(shè)計(jì)師能夠在模塊硬件上開(kāi)發(fā)自己的應(yīng)用,并定制滿足其需求的ZigBee應(yīng)用。這樣的方案雖然需要一些固件開(kāi)發(fā),但仍然節(jié)省了與RF設(shè)計(jì)、樣機(jī)設(shè)計(jì)和EMC測(cè)試相關(guān)的時(shí)間和成本。
3. 采用芯片組
如果采用芯片組,設(shè)計(jì)師必須準(zhǔn)備支持無(wú)線設(shè)計(jì)所需的大量設(shè)計(jì)、測(cè)試和生產(chǎn)要求。在定制板上使用芯片組要求支持硬件生產(chǎn)工藝,包括板級(jí)測(cè)試、調(diào)試和返工。如果選用此方案,必須從IEEE獲得一個(gè)24位的OUI,以便為每個(gè)設(shè)備分配一個(gè)唯一的64位地址。
當(dāng)定制板采用芯片組時(shí),設(shè)計(jì)師還必須選用一個(gè)ZigBee網(wǎng)絡(luò)層協(xié)議棧。設(shè)計(jì)師必須將協(xié)議棧連接到他們的硬件上,細(xì)心地測(cè)試ZigBee應(yīng)用,并評(píng)估網(wǎng)絡(luò)性能。上述未解決的許多問(wèn)題甚至所有的ZigBee問(wèn)題都必須在應(yīng)用中解決,這將大大地增加研發(fā)時(shí)間方面的開(kāi)銷(xiāo)。
4. 設(shè)備開(kāi)發(fā)
如果必須在芯片組或模塊平臺(tái)上開(kāi)發(fā)定制固件,下面的步驟將會(huì)有用。
5. 選擇框架類(lèi)型
在著手開(kāi)發(fā)ZigBee設(shè)備前,設(shè)計(jì)師必須確定是公共框架還是專(zhuān)用框架更能滿足需求。設(shè)備是需要與與其它普通的ZigBee產(chǎn)品兼容,還是只適合特定的應(yīng)用?協(xié)議棧參數(shù)是否需要調(diào)整到最佳性能?如果專(zhuān)用框架更合適,就需要向ZigBee聯(lián)盟申請(qǐng)一個(gè)專(zhuān)用框架。
6. 確定路由策略
開(kāi)發(fā)商應(yīng)該清楚是否允許使用樹(shù)狀路由。對(duì)于簡(jiǎn)單的靜態(tài)網(wǎng)絡(luò),樹(shù)狀路由將足夠。如果某些節(jié)點(diǎn)有可能去掉,或者需要可靠的數(shù)據(jù)傳輸,樹(shù)狀路由就顯得不足了。此時(shí),就需要花些時(shí)間對(duì)協(xié)議棧何時(shí)調(diào)用路由發(fā)現(xiàn)進(jìn)行評(píng)估。
如果所選的ZigBee協(xié)議棧符合增強(qiáng)型ZigBee規(guī)范,應(yīng)用層就可以利用路由發(fā)現(xiàn)請(qǐng)求原語(yǔ)和nwkUseTreeRouting屬性來(lái)控制路由發(fā)現(xiàn)和去除樹(shù)狀路由。如果采用的是網(wǎng)狀路由,開(kāi)發(fā)商應(yīng)該考慮當(dāng)所有的路由表入口都被占用的情況下系統(tǒng)將如何執(zhí)行。因?yàn)閆igBee規(guī)范并不對(duì)老化路由和過(guò)期路由表?xiàng)l目進(jìn)行監(jiān)管,因此一些ZigBee協(xié)議棧實(shí)現(xiàn)不會(huì)去除舊的路由表?xiàng)l目。一旦所有的路由表?xiàng)l目被占用,設(shè)備將不能再參與路由發(fā)現(xiàn)。如果協(xié)議棧無(wú)法老化或取代過(guò)期條目,應(yīng)用層就應(yīng)該加入自己的監(jiān)管措施來(lái)實(shí)現(xiàn)。
7. 考慮固定信道操作
對(duì)于許多應(yīng)用,即便是存在突發(fā)干擾,ZigBee網(wǎng)絡(luò)也可以可靠地工作在固定信道上。但是,對(duì)于那些必須與其它系統(tǒng)共同工作在同一頻段的系統(tǒng),或者無(wú)法允許數(shù)據(jù)包偶然丟失的系統(tǒng),則有必要支持信道的遷移。因?yàn)槟壳暗腪igBee規(guī)范還沒(méi)有定義信道遷移機(jī)制,應(yīng)用開(kāi)發(fā)商可以自行決定將網(wǎng)絡(luò)遷移到一個(gè)新信道的條件,并開(kāi)發(fā)相應(yīng)的實(shí)現(xiàn)方案。
8. 克服尋址限制
在許多應(yīng)用中,目前的網(wǎng)絡(luò)地址分配機(jī)制是足夠的。但是,為了防止地址重復(fù)的可能,更具魯棒性的ZigBee解決方案應(yīng)具有復(fù)位網(wǎng)絡(luò)地址的能力(如協(xié)調(diào)器被替換時(shí))。
由于設(shè)備的網(wǎng)絡(luò)地址不可靠而且會(huì)變化(例如,一個(gè)加電周期或復(fù)位后設(shè)備無(wú)法找到其父設(shè)備),應(yīng)用層可能也需要一個(gè)能夠唯一識(shí)別每個(gè)節(jié)點(diǎn)的解決方案。
為了確保將數(shù)據(jù)發(fā)送到正確的設(shè)備上,包括MaxStream XBee在內(nèi)的一些ZigBee解決方案依賴(lài)于唯一的64位地址。如果采用這樣的方案,應(yīng)用層中就必須有相應(yīng)的配置功能,以便在傳送數(shù)據(jù)之前將64位地址轉(zhuǎn)換成16位的網(wǎng)絡(luò)地址。
9. 測(cè)試
測(cè)試應(yīng)該包括驗(yàn)證系統(tǒng)如何對(duì)本文所述的應(yīng)用場(chǎng)景反應(yīng)。當(dāng)路由器關(guān)掉時(shí)系統(tǒng)有什么反應(yīng)?在工作信道上出現(xiàn)干擾時(shí)系統(tǒng)將如何執(zhí)行?如果設(shè)備接收到一個(gè)新的網(wǎng)絡(luò)地址,該新地址如何被發(fā)現(xiàn)?需要重申的是,一些模塊和協(xié)議棧開(kāi)發(fā)商已經(jīng)開(kāi)發(fā)出了解決這些問(wèn)題的配置方案,從而大大減輕了應(yīng)用開(kāi)發(fā)商的開(kāi)發(fā)負(fù)擔(dān)。
本文小結(jié)
雖然ZigBee在前進(jìn)道路上面臨一些重要的問(wèn)題,但ZigBee聯(lián)盟具有堅(jiān)強(qiáng)的毅力、偉大的領(lǐng)導(dǎo)力,還有大批為標(biāo)準(zhǔn)升級(jí)積極貢獻(xiàn)的優(yōu)秀設(shè)計(jì)師。即使是初級(jí)階段,能夠?yàn)樵O(shè)計(jì)師提供強(qiáng)大的網(wǎng)絡(luò)層功能和應(yīng)用層靈活性的ZigBee規(guī)范的重要基礎(chǔ)工作也已經(jīng)完成。
由于在嵌入式設(shè)備領(lǐng)域中有著強(qiáng)大的領(lǐng)導(dǎo)聯(lián)盟,ZigBee正成為嵌入式設(shè)備市場(chǎng)上的重要角色。目前ZigBee聯(lián)盟正在討論配置問(wèn)題以便增加ZigBee價(jià)值,并試圖解決ZigBee規(guī)范中尚未解決的許多遺留問(wèn)題。經(jīng)過(guò)ZigBee認(rèn)證的模塊和網(wǎng)絡(luò)協(xié)議棧正在開(kāi)始面市,他們提供強(qiáng)大的網(wǎng)狀解決方案,并有效地解決了目前ZigBee規(guī)范中存在的許多(即便不是全部)限制。現(xiàn)在正是開(kāi)始開(kāi)發(fā)可靠的、低功率和更高性?xún)r(jià)比的ZigBee解決方案的時(shí)候了。
作者:Damon Stewart
固件工程師
MaxStream公司