無(wú)線傳感器網(wǎng)絡(luò)(WSN)由一些獨(dú)立、完全嵌入式操作的小體積低功耗節(jié)點(diǎn)組成,這些節(jié)點(diǎn)能夠檢測(cè)來(lái)自目標(biāo)環(huán)境的數(shù)據(jù)或控制目標(biāo)環(huán)境,并且相互間通過(guò)無(wú)線方式通信。檢測(cè)和控制是通過(guò)互連著的傳感器和激勵(lì)器完成的,而這些傳感器和激勵(lì)器或通過(guò)遠(yuǎn)程、或通過(guò)嵌入式應(yīng)用程序進(jìn)行管理。這些節(jié)點(diǎn)的數(shù)量從十幾個(gè)到數(shù)千個(gè)不等,一個(gè)典型系統(tǒng)由數(shù)百個(gè)分布于整座大樓或室外空間的節(jié)點(diǎn)組成。
許多無(wú)線傳感器網(wǎng)絡(luò)采用私有標(biāo)準(zhǔn)實(shí)現(xiàn)無(wú)線組網(wǎng),但最近的趨勢(shì)是逐漸向標(biāo)準(zhǔn)化的低功耗無(wú)線通信發(fā)展。基于著名的802.15.4規(guī)范的ZigBee就是一種用于無(wú)線檢測(cè)和控制的標(biāo)準(zhǔn)。雖然802.15.4文檔僅描述了協(xié)議的PHY和MAC層,但基于802.15.4構(gòu)建的ZigBee還提供網(wǎng)絡(luò)和應(yīng)用層規(guī)范。
ZigBee具有許多優(yōu)點(diǎn),包括可以實(shí)現(xiàn)多跳路由和數(shù)據(jù)發(fā)送的網(wǎng)格協(xié)議、安全規(guī)范和針對(duì)應(yīng)用層互操作性的整套參數(shù)設(shè)置??傊?,ZigBee向嵌入式應(yīng)用開(kāi)發(fā)人員提供了管理網(wǎng)絡(luò)以及連接其它節(jié)點(diǎn)的更高抽象層次。
雖然本文主要討論的是ZigBee,但其中許多觀點(diǎn)和結(jié)論同樣也適用于采用802.15.4 MAC和PHY的其它標(biāo)準(zhǔn)。為了避免出現(xiàn)混亂,后文假設(shè)我們的目標(biāo)設(shè)計(jì)涉及的是使用網(wǎng)格路由協(xié)議、802.15.4兼容調(diào)制方案和介質(zhì)訪問(wèn)協(xié)議的多跳網(wǎng)絡(luò)。本文還假設(shè)讀者對(duì)ZigBee和802.15.4規(guī)范已有基本了解。
網(wǎng)絡(luò)組織和規(guī)模
網(wǎng)絡(luò)組織和規(guī)模也許是最重要的設(shè)計(jì)選項(xiàng),它往往對(duì)接下來(lái)的設(shè)計(jì)過(guò)程起著告知和指導(dǎo)作用。它還有約束作用,因?yàn)榇笮途W(wǎng)絡(luò)通常更難設(shè)計(jì)和維護(hù)。幸運(yùn)的是,如今已經(jīng)有方法能輕松實(shí)現(xiàn)和維護(hù)非常大的網(wǎng)絡(luò)。
目前最先進(jìn)的ZigBee網(wǎng)絡(luò)規(guī)模在300到500個(gè)節(jié)點(diǎn)之間。這個(gè)規(guī)模看起來(lái)不大,但試想一下,所有這些節(jié)點(diǎn)工作在同一物理信道上,彼此在同一時(shí)間發(fā)送數(shù)據(jù),根據(jù)每個(gè)節(jié)點(diǎn)的行為路由數(shù)據(jù),并在同一時(shí)間試圖保持整個(gè)網(wǎng)絡(luò)的完整性(通過(guò)發(fā)送周期性控制消息),這該是個(gè)很吵很擁擠的網(wǎng)絡(luò)。另外還要注意,ZigBee標(biāo)準(zhǔn)所依據(jù)的802.15.4規(guī)范使用了CSMA/CA(載波偵聽(tīng)多址訪問(wèn)/碰撞避免)協(xié)議,也就是說(shuō),在各自“聽(tīng)力”范圍內(nèi)沒(méi)有兩個(gè)節(jié)點(diǎn)能同時(shí)“說(shuō)話”。如果同時(shí)“說(shuō)話”,都會(huì)遭遇通信失敗,必須延遲一段時(shí)間后重試。如果網(wǎng)絡(luò)已經(jīng)擁塞,那么這些重試將產(chǎn)生級(jí)聯(lián)傳輸故障,試圖發(fā)起空中訪問(wèn)的節(jié)點(diǎn)將越來(lái)越多,從而加劇信道的擁擠。
事實(shí)上,在設(shè)計(jì)數(shù)百個(gè)節(jié)點(diǎn)以上的網(wǎng)絡(luò)時(shí)面臨的主要挑戰(zhàn)之一是如何有效地管理網(wǎng)絡(luò)擁塞(另外一個(gè)挑戰(zhàn)是在運(yùn)行時(shí)優(yōu)化用于存儲(chǔ)內(nèi)部堆棧狀態(tài)的系統(tǒng)資源)。下面的小節(jié)將簡(jiǎn)要介紹用于解決擁塞問(wèn)題的三種不同策略。
圖1:基于802.15.4的ZigBee提供網(wǎng)絡(luò)層和應(yīng)用層規(guī)范。
網(wǎng)絡(luò)密度
顯然,“300個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)”給我們提供的有關(guān)網(wǎng)絡(luò)組織的信息是很少的。由于存在上述沖突碰撞問(wèn)題,網(wǎng)絡(luò)密度也是影響網(wǎng)絡(luò)健康的一個(gè)重要因素,也就是說(shuō)在每個(gè)節(jié)點(diǎn)聽(tīng)力范圍內(nèi)存在多少個(gè)節(jié)點(diǎn),或者換句話說(shuō),一個(gè)普通節(jié)點(diǎn)可以聽(tīng)到多少個(gè)其它節(jié)點(diǎn)?專家建議是小于5個(gè),因?yàn)檫@個(gè)數(shù)量支持冗余設(shè)計(jì)和相對(duì)無(wú)阻塞的通信介質(zhì)。7個(gè)節(jié)點(diǎn)以上的網(wǎng)絡(luò)很可能出現(xiàn)嚴(yán)重?fù)砣木W(wǎng)段而加重網(wǎng)絡(luò)負(fù)擔(dān)。
一個(gè)相關(guān)的問(wèn)題隨之而來(lái),系統(tǒng)設(shè)計(jì)師該如何判斷有多少個(gè)節(jié)點(diǎn)能被聽(tīng)到?一個(gè)顯而易見(jiàn)的策略是定制嵌入式應(yīng)用程序。有關(guān)相鄰節(jié)點(diǎn)的信息實(shí)際上是ZigBee網(wǎng)絡(luò)中協(xié)議操作的一個(gè)重要部分。事實(shí)上,節(jié)點(diǎn)會(huì)主動(dòng)廣播他們自己的信息,并且這些信息會(huì)被有效范圍內(nèi)的每個(gè)其它節(jié)點(diǎn)接收到。相鄰表格可以被駐留程序查詢,并計(jì)算唯一性條目的數(shù)量。然后駐留程序再將這個(gè)診斷結(jié)果發(fā)送給指定節(jié)點(diǎn)。很明顯,這樣做只有在網(wǎng)絡(luò)密度仍能改變的網(wǎng)絡(luò)安裝過(guò)程中才有意義。一旦網(wǎng)絡(luò)安裝完畢并開(kāi)始運(yùn)行,密度信息將在故障排除過(guò)程中發(fā)揮顧問(wèn)的作用。
請(qǐng)注意,如果相鄰表格的大小小于周圍節(jié)點(diǎn)的數(shù)量,ZigBee堆棧將強(qiáng)制周期性地撤消表格條目。這種撤消也可能負(fù)面影響總體網(wǎng)絡(luò)性能,因?yàn)榧词孤窂街袥](méi)有節(jié)點(diǎn)離線,也會(huì)強(qiáng)制路由被重新發(fā)現(xiàn)。因此,除了限制網(wǎng)絡(luò)密度以避免擁塞外,還必須根據(jù)系統(tǒng)資源(如相鄰表格的大?。┐_定網(wǎng)絡(luò)密度。
在節(jié)點(diǎn)的物理位置由于應(yīng)用要求而被固定的情況下,網(wǎng)絡(luò)密度可以方便地通過(guò)降低擁塞區(qū)域中收發(fā)器的輸出功率來(lái)得到控制。從理論上講,降低輸出功率與增加節(jié)點(diǎn)間距離、使它們彼此聽(tīng)到的可能性變小具有相同的效果。制造商傾向于將輸出功率設(shè)為最大值,以確保最大工作范圍和最佳鏈路質(zhì)量。根據(jù)我們的經(jīng)驗(yàn),在距離性能不很重要的室內(nèi)應(yīng)用場(chǎng)合,輸出功率可以很容易降低。根據(jù)經(jīng)驗(yàn),輸出功率降低3dBm,有效距離范圍可以縮短1.5倍。
有關(guān)密度的最后一個(gè)考慮因素是,故障率增加到足夠高以致于觸發(fā)上述級(jí)聯(lián)故障效應(yīng)的理論極限。當(dāng)然,這個(gè)參數(shù)取決于應(yīng)用程序本身發(fā)送的信息量。根據(jù)經(jīng)驗(yàn),如果每個(gè)節(jié)點(diǎn)每秒發(fā)送一個(gè)最大長(zhǎng)度的數(shù)據(jù)包,那么在各個(gè)節(jié)點(diǎn)的聽(tīng)力范圍內(nèi)這個(gè)極限值約為25個(gè)節(jié)點(diǎn)。密度極限似乎是不變的,與堆棧實(shí)現(xiàn)無(wú)關(guān),這意味著密度極限與MAC層更基本的CSMA操作有關(guān)。例如,我們可以推斷每隔n秒發(fā)送一個(gè)包的節(jié)點(diǎn)的密度極限值,就是將最大密度乘以1.2n倍。這個(gè)近似值從來(lái)不應(yīng)被用作網(wǎng)絡(luò)密度的精確指導(dǎo)值,因?yàn)閷?shí)際值將取決于網(wǎng)絡(luò)中的路由器和終端設(shè)備的比例。
根據(jù)信道進(jìn)行網(wǎng)絡(luò)劃分
在不能刪除節(jié)點(diǎn)或降低輸出功率的情況下,系統(tǒng)設(shè)計(jì)師可以選擇將工作在單個(gè)信道上的單一網(wǎng)絡(luò)劃分為工作在不同信道上的多個(gè)網(wǎng)絡(luò)來(lái)解決網(wǎng)絡(luò)擁塞問(wèn)題。802.15.4在2.4GHz頻率范圍內(nèi)規(guī)定了16個(gè)信道,在900MHz頻率范圍內(nèi)另外還增加了10個(gè)信道。將網(wǎng)絡(luò)置于不同的信道上能夠完全隔離不同網(wǎng)絡(luò)間的相互影響,但根據(jù)需要,每個(gè)網(wǎng)絡(luò)可能需要使用協(xié)調(diào)器(coordinator),并需連接這些協(xié)調(diào)器,從而帶來(lái)額外的復(fù)雜性。
如果待分割的網(wǎng)絡(luò)邏輯上已經(jīng)是分開(kāi)的,那么根據(jù)信道進(jìn)行網(wǎng)絡(luò)劃分的方法最有效果。例如,在大樓自動(dòng)化應(yīng)用中,讓每一樓層的網(wǎng)絡(luò)工作在各自的信道上通常是比較理想的。但如果每個(gè)樓層都有一個(gè)網(wǎng)絡(luò)協(xié)調(diào)器,那么不同樓層之間的節(jié)點(diǎn)相互通信就很麻煩,特別是這樣做可能會(huì)影響網(wǎng)絡(luò)性能(高密度網(wǎng)絡(luò)就是這種情況)。
同樣,還可以根據(jù)房間或辦公面積進(jìn)行劃分。最重要的是,應(yīng)該根據(jù)具體應(yīng)用要求和可用信道數(shù)量來(lái)做出根據(jù)物理信道劃分網(wǎng)絡(luò)的決定。當(dāng)多個(gè)子網(wǎng)絡(luò)中的節(jié)點(diǎn)需要相互通信時(shí),這種劃分還會(huì)使總體設(shè)計(jì)變得更加復(fù)雜。
信道掩碼(就象收發(fā)器輸出功率一樣)是一個(gè)可設(shè)置的網(wǎng)絡(luò)參數(shù)。應(yīng)用工程師可以給網(wǎng)絡(luò)協(xié)調(diào)器以及必須與該協(xié)調(diào)器建立連接的網(wǎng)絡(luò)設(shè)備分配一個(gè)合適的信道掩碼。作為一個(gè)標(biāo)準(zhǔn)步驟,協(xié)調(diào)器將執(zhí)行能量檢測(cè)掃描,以便從信道掩碼中挑選出“活躍性最差”的信道。
值得注意的是,除了給掩碼分配單個(gè)信道外,沒(méi)有其它方法能強(qiáng)制協(xié)調(diào)器工作在特定信道上。不過(guò)強(qiáng)烈建議在信道掩碼中至少要保持兩個(gè)信道,因?yàn)閬?lái)自WiFi網(wǎng)絡(luò)、藍(lán)牙耳機(jī)和其它電子設(shè)備的帶內(nèi)干擾會(huì)臨時(shí)占用本來(lái)是空閑的特定信道,致使整個(gè)網(wǎng)絡(luò)癱瘓。在信道掩碼中留有多個(gè)信道不僅給協(xié)調(diào)器提供了信道選擇余地,今后還能讓它靈活地切換到擁塞程度較低的信道。
圖2:ZigBee網(wǎng)狀網(wǎng)拓?fù)洹?/p>
根據(jù)PANID進(jìn)行網(wǎng)絡(luò)劃分
最后一種策略是根據(jù)PANID劃分網(wǎng)絡(luò),這種方法的效率公認(rèn)要比根據(jù)物理信道劃分網(wǎng)絡(luò)的方法低。PANID是一個(gè)給定網(wǎng)絡(luò)中所有設(shè)備都知道的唯一標(biāo)識(shí)符。使用不同PANID的設(shè)備之間是無(wú)法通信的,從而允許多個(gè)網(wǎng)絡(luò)共存于同一區(qū)域,而且其中一個(gè)網(wǎng)絡(luò)的數(shù)據(jù)不會(huì)在另外一個(gè)網(wǎng)絡(luò)中出現(xiàn)。事實(shí)上,具有不同PANID的多個(gè)網(wǎng)絡(luò)都可以使用相同的物理信道實(shí)現(xiàn)相互間的通信。
雖然根據(jù)PANID分割網(wǎng)絡(luò)不會(huì)影響空中擁塞程度,但可以通過(guò)在堆棧的較低層濾除來(lái)自相鄰網(wǎng)絡(luò)設(shè)備(具有另外一個(gè)PANID)的業(yè)務(wù)而減少每個(gè)節(jié)點(diǎn)處的處理開(kāi)銷量。在大多數(shù)情況下,濾除工作可以由PHY層硬件自動(dòng)完成,從而釋放更多的應(yīng)用資源和時(shí)間。對(duì)于應(yīng)用處理和路由開(kāi)銷占主導(dǎo)的應(yīng)用而言,根據(jù)PANID進(jìn)行劃分的方法能夠非常有效地在給定區(qū)域內(nèi)容納更多的節(jié)點(diǎn)。
基于PANID分段的一個(gè)好處是具有相對(duì)較多的可能唯一分段,準(zhǔn)確地講可達(dá)216個(gè)。雖然只有26個(gè)物理信道,但PANID為實(shí)現(xiàn)分段提供了更靈活的方法,盡管效率較低。大多數(shù)無(wú)線系統(tǒng)將同時(shí)使用PANID分段和信道數(shù)量分段的組合策略??傊?,在解決網(wǎng)絡(luò)擁塞問(wèn)題時(shí)這種組合策略可以提供最佳的靈活性和效率折衷方案。
吞吐量
另外一個(gè)需要仔細(xì)考慮的設(shè)計(jì)因素是吞吐量。簡(jiǎn)單地說(shuō),吞吐量指的是一個(gè)設(shè)備在單位時(shí)間內(nèi)希望傳送的有用數(shù)據(jù)總量。許多系統(tǒng)工程師錯(cuò)誤地認(rèn)為系統(tǒng)具有比實(shí)際可用帶寬大得多的帶寬(有時(shí)甚至超出一個(gè)數(shù)量級(jí)),從而導(dǎo)致性能差或無(wú)法運(yùn)行的設(shè)備和失敗的設(shè)計(jì)。
導(dǎo)致這個(gè)常見(jiàn)問(wèn)題的原因是802.15.4網(wǎng)絡(luò)鏈路宣稱有250kbps的介質(zhì)容量。實(shí)際上,這個(gè)數(shù)字指的是理論上的物理極限,也就是PHY層的有效帶寬。它忽略了物理層上其它堆棧層引起的協(xié)議延時(shí)、處理和解析每個(gè)數(shù)據(jù)包的開(kāi)銷、介質(zhì)訪問(wèn)時(shí)間、數(shù)據(jù)確認(rèn)機(jī)制和誤碼率。根據(jù)我們的經(jīng)驗(yàn),在相隔一跳的兩個(gè)ZigBee節(jié)點(diǎn)之間建立的點(diǎn)到點(diǎn)鏈路的傳輸速率不超過(guò)110到120kbps。在引入確認(rèn)機(jī)制后,這個(gè)速率還要下降近一半。在任一給定時(shí)間點(diǎn)有3到5個(gè)節(jié)點(diǎn)試圖訪問(wèn)共享介質(zhì)的典型網(wǎng)絡(luò)環(huán)境中,這個(gè)傳輸速率還將進(jìn)一步降低到數(shù)十kbps。
顯然,20~40kbps與標(biāo)準(zhǔn)宣稱的最大250kbps有很大差異,而一個(gè)缺乏經(jīng)驗(yàn)的系統(tǒng)工程師往往不知道這種差異,直到悔之晚矣。關(guān)鍵是無(wú)線傳感器網(wǎng)絡(luò)從來(lái)沒(méi)有打算要支持高帶寬的應(yīng)用。相反,其目標(biāo)市場(chǎng)是具有低帶寬要求的相對(duì)大型網(wǎng)絡(luò)。如果有個(gè)傳感器是產(chǎn)生100kbps數(shù)據(jù)流的視頻攝像機(jī),那么無(wú)線傳感器網(wǎng)絡(luò)和ZigBee肯定不是最好的選擇,市場(chǎng)上有其它無(wú)線技術(shù)能更好地完成這個(gè)工作。
盡管吞吐量期望值和某種技術(shù)能夠支持的指標(biāo)不匹配很常見(jiàn),但仍可以合理使用這種技術(shù),并通過(guò)帶寬優(yōu)化在目標(biāo)環(huán)境中高效地運(yùn)行。例如考慮每秒采樣100次的溫度傳感器。每次用一個(gè)數(shù)據(jù)包發(fā)送一個(gè)樣值將是一個(gè)較差的設(shè)計(jì)選擇。事實(shí)上,由于前面提到的網(wǎng)絡(luò)擁塞和級(jí)聯(lián)重傳故障問(wèn)題,這樣做將給網(wǎng)絡(luò)健康帶來(lái)不良后果。一個(gè)更好的策略是,將多個(gè)樣值匯聚到一個(gè)數(shù)據(jù)包中,因?yàn)樵诖蠖鄶?shù)情況下,最大的數(shù)據(jù)包比較小的數(shù)據(jù)包更優(yōu)。
當(dāng)匯聚無(wú)法實(shí)現(xiàn)時(shí),可以用本地處理來(lái)降低帶寬要求。讓我們考慮具有低門限和高門限的典型自動(dòng)調(diào)溫器應(yīng)用。只要這些溫度讀數(shù)落在可接受的溫度范圍內(nèi),那么絕對(duì)不需要發(fā)送瞬時(shí)溫度讀數(shù)。節(jié)點(diǎn)可以使用本地處理功能來(lái)判斷何時(shí)讀數(shù)超出規(guī)定范圍,并在需要時(shí)才發(fā)送數(shù)據(jù)以警示另一個(gè)遠(yuǎn)程設(shè)備。減少待發(fā)送數(shù)據(jù)量的另一個(gè)策略是采用某種形式的數(shù)據(jù)求和或平均算法。
然而需要注意的是,當(dāng)多個(gè)物理事件同時(shí)發(fā)生時(shí),即使是高度優(yōu)化的設(shè)備也會(huì)遭遇擁塞。如果整個(gè)樓層的溫度上升,可能會(huì)出現(xiàn)許多自動(dòng)調(diào)溫器希望立即發(fā)送溫度讀數(shù)。對(duì)付這樣的帶寬峰值的一個(gè)實(shí)用方法是隨機(jī)化傳送延時(shí)。顯然,MAC層的重傳就是一種隨機(jī)化處理,但它無(wú)助于防止碰撞,它只在發(fā)生碰撞后起作用。應(yīng)用層的延時(shí)如果做得好可以有效減少碰撞于發(fā)生之前。當(dāng)每小時(shí)有數(shù)百個(gè)節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)包,最佳設(shè)計(jì)會(huì)把傳送均勻分配在整個(gè)時(shí)段內(nèi),以盡量減少碰撞的機(jī)會(huì)。在有大量傳送的場(chǎng)合,強(qiáng)烈建議系統(tǒng)工程師采用這種策略。
評(píng)論
查看更多