當(dāng)前位置:首頁(yè) > 模擬 > 模擬
[導(dǎo)讀]Zigbee標(biāo)準(zhǔn)具有低速率、低能耗、安全可靠等特點(diǎn),非常適合于家庭自動(dòng)化、建筑自動(dòng)化和工業(yè)自動(dòng)化應(yīng)用。本文根據(jù)國(guó)際標(biāo)準(zhǔn),分析、設(shè)計(jì)和實(shí)現(xiàn)了ZigBee協(xié)議棧。采用的單片機(jī)Atmega128,它僅有128K字節(jié)系統(tǒng)可編程閃存空間和4K字節(jié)的內(nèi)部SRAM, 所以本協(xié)議棧沒(méi)有引入任何操作系統(tǒng)而且采用共享緩沖區(qū)進(jìn)行數(shù)據(jù)收發(fā)和交換以節(jié)約有限的存儲(chǔ)空間。最終,實(shí)現(xiàn)了規(guī)范中定義的所有功能,包括網(wǎng)絡(luò)設(shè)備管理和mesh路由。

1 引言
Zigbee是一種新興的短距離、低速率無(wú)線網(wǎng)絡(luò)技術(shù),主要用于近距離的無(wú)線通信,由于具有低功耗、低成本、可擴(kuò)展以及良好的互操作能力等特性,在工業(yè)自動(dòng)化、建筑自動(dòng)化以及工業(yè)無(wú)線領(lǐng)域占有重要地位[1][2][3]。
ZigBee聯(lián)盟[4]成立于2001年8月,2002年下半年,英國(guó)Invensys公司、日本三菱電氣公司、美國(guó)摩托羅拉公司以及荷蘭飛利浦半導(dǎo)體公司等四大公司加盟ZigBee聯(lián)盟,這一事件成為ZigBee技術(shù)的里程碑。到目前為止,加盟ZigBee聯(lián)盟已經(jīng)涵蓋IT領(lǐng)域以及其它行業(yè)的200多家企業(yè),其中還包括來(lái)自我國(guó)的華為技術(shù)有限公司和中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所。
2 協(xié)議棧架構(gòu)
Zigbee協(xié)議棧軟件采用C語(yǔ)言編寫,開發(fā)環(huán)境采用AVR Studio4.12,硬件平臺(tái)采用的單片機(jī)為Atmega128,射頻模塊采用CC2420。采用的標(biāo)準(zhǔn)是ZigBee 1.0規(guī)范[5], 整個(gè)協(xié)議棧軟件采用單線程,考慮到Atmega128內(nèi)部RAM只有4K的空間,因此,各模塊之間采用共享緩沖區(qū)進(jìn)行通信。Zigbee協(xié)議棧軟件的架構(gòu)如圖1所示。
每個(gè)模塊具有一個(gè)執(zhí)行函數(shù),用于接收來(lái)自底層模塊的數(shù)據(jù)。在數(shù)據(jù)接收階段,底層模塊將接收到的數(shù)據(jù)幀在本層解析后,將需要向上層模塊發(fā)送的數(shù)據(jù)存放在共享的接收緩沖區(qū),同時(shí)通過(guò)全局變量的形式向上層模塊提供指示原語(yǔ);在上層模塊的執(zhí)行函數(shù)中,首先通過(guò)判斷來(lái)自底層模塊的指示原語(yǔ)確定是否存在來(lái)自其它節(jié)點(diǎn)的數(shù)據(jù),如果存在則解析并處理,同時(shí)將需要傳遞給更高模塊的數(shù)據(jù)放入接收緩沖區(qū),同樣通過(guò)指示原語(yǔ)通知更高層模塊。
 500)this.style.width=500;" border="0" />
圖1 Zigbee協(xié)議棧軟件架構(gòu)
3 網(wǎng)絡(luò)層的設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)絡(luò)層通過(guò)兩個(gè)服務(wù)實(shí)體分別提供兩類服務(wù),它們分別是網(wǎng)絡(luò)層數(shù)據(jù)服務(wù)和網(wǎng)絡(luò)層管理服務(wù)。1) 數(shù)據(jù)服務(wù)實(shí)體:提供數(shù)據(jù)服務(wù),主要負(fù)責(zé)數(shù)據(jù)的發(fā)送和接收;2) 管理服務(wù)實(shí)體:提供管理服務(wù),主要負(fù)責(zé)網(wǎng)絡(luò)層的管理和維護(hù),包括網(wǎng)絡(luò)的發(fā)現(xiàn)和創(chuàng)建,設(shè)備的加入和離開以及路由的創(chuàng)建與維護(hù)。
3.1 數(shù)據(jù)發(fā)送和接收
網(wǎng)絡(luò)層的數(shù)據(jù)服務(wù)實(shí)體負(fù)責(zé)數(shù)據(jù)的接收和發(fā)送,接收處理模塊負(fù)責(zé)接收數(shù)據(jù),發(fā)送處理模塊負(fù)責(zé)發(fā)送數(shù)據(jù)。
數(shù)據(jù)接收和發(fā)送處理模塊的功能和工作流程如下:
1) 數(shù)據(jù)接收處理模塊
接收處理模塊負(fù)責(zé)從下層接收數(shù)據(jù),解析報(bào)文的網(wǎng)絡(luò)層頭部,分情況做相應(yīng)的處理:如果是重復(fù)報(bào)文,則丟棄;如果是發(fā)給本節(jié)點(diǎn)的數(shù)據(jù)報(bào)文或者廣播報(bào)文,則交給上層處理;如果是需要本節(jié)點(diǎn)轉(zhuǎn)發(fā)的報(bào)文,則將報(bào)文交給發(fā)送處理模塊處理。
2) 數(shù)據(jù)發(fā)送處理模塊
發(fā)送處理模塊負(fù)責(zé)從上層或者接收處理模塊中接收數(shù)據(jù),根據(jù)不同的情況做相應(yīng)的處理:如果報(bào)文的剩余跳數(shù)不大于0,則視為“死報(bào)文”,丟棄之; 否則需要進(jìn)行報(bào)文發(fā)送。首先查找路由表,如果找到了到目的節(jié)點(diǎn)的有效路由表項(xiàng),則根據(jù)路由信息將報(bào)文發(fā)送出去;如果沒(méi)有,則根據(jù)報(bào)文的路由發(fā)現(xiàn)選項(xiàng)決定是否進(jìn)行路由發(fā)現(xiàn),以及是通過(guò)樹型路由發(fā)送報(bào)文還是等待路由回復(fù)消息到達(dá)后再發(fā)送報(bào)文,具體的我們將在3.3節(jié)的路由發(fā)現(xiàn)和維護(hù)中進(jìn)行詳細(xì)說(shuō)明。
3.2 網(wǎng)絡(luò)設(shè)備管理
 ZigBee的網(wǎng)絡(luò)中包括協(xié)調(diào)器設(shè)備、路由設(shè)備和終端節(jié)點(diǎn)設(shè)備,其中,協(xié)調(diào)器設(shè)備負(fù)責(zé)創(chuàng)建網(wǎng)絡(luò),路由設(shè)備可以參與網(wǎng)絡(luò)路由和數(shù)據(jù)轉(zhuǎn)發(fā)但是終端節(jié)點(diǎn)設(shè)備只能作為葉子節(jié)點(diǎn)而不能參與路由。設(shè)備管理主要包括網(wǎng)絡(luò)的發(fā)現(xiàn)和創(chuàng)建以及節(jié)點(diǎn)的加入和離開。
節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)通信的第一步是由協(xié)調(diào)器設(shè)備負(fù)責(zé)創(chuàng)建網(wǎng)絡(luò)。協(xié)調(diào)器節(jié)點(diǎn)首先進(jìn)行信道掃描來(lái)進(jìn)行網(wǎng)絡(luò)發(fā)現(xiàn),根據(jù)掃描結(jié)果,選擇一個(gè)最佳的空閑信道并在該信道上創(chuàng)建網(wǎng)絡(luò)。在協(xié)調(diào)器節(jié)點(diǎn)創(chuàng)建網(wǎng)絡(luò)后,非協(xié)調(diào)器節(jié)點(diǎn)就可以加入網(wǎng)絡(luò)了。具體的步驟如下:1)進(jìn)行網(wǎng)絡(luò)發(fā)現(xiàn)。如果指定了PANID(Personal Area Network ID,個(gè)域網(wǎng)ID),則發(fā)現(xiàn)相應(yīng)ID的個(gè)域網(wǎng)才進(jìn)行加入,否則,加入到最先掃描到的網(wǎng)絡(luò)。2)選擇合適的父節(jié)點(diǎn),發(fā)送加入網(wǎng)絡(luò)請(qǐng)求。從鄰居節(jié)點(diǎn)中選擇合適的節(jié)點(diǎn)作為自己的父節(jié)點(diǎn),并向其發(fā)出加入網(wǎng)絡(luò)的請(qǐng)求。3)加入網(wǎng)絡(luò)。通過(guò)父節(jié)點(diǎn)加入網(wǎng)絡(luò),并獲得一個(gè)16位的網(wǎng)絡(luò)層地址。
協(xié)調(diào)器節(jié)點(diǎn)創(chuàng)建網(wǎng)絡(luò)或者非協(xié)調(diào)器節(jié)點(diǎn)加入網(wǎng)絡(luò),其實(shí)現(xiàn)的難點(diǎn)和關(guān)鍵在于進(jìn)行網(wǎng)絡(luò)發(fā)現(xiàn)。我們通過(guò)設(shè)計(jì)有限狀態(tài)機(jī)的方法來(lái)進(jìn)行網(wǎng)絡(luò)發(fā)現(xiàn),其狀態(tài)轉(zhuǎn)換如圖2所示。
 500)this.style.width=500;" border="0" />
圖2 網(wǎng)絡(luò)發(fā)現(xiàn)狀態(tài)轉(zhuǎn)換圖

轉(zhuǎn)換圖中共有5個(gè)狀態(tài),各個(gè)狀態(tài)定義如表1所示:
表1網(wǎng)絡(luò)發(fā)現(xiàn)狀態(tài)定義
500)this.style.width=500;" border="0" />
節(jié)點(diǎn)可以通過(guò)發(fā)送LEAVE_REQUEST請(qǐng)求原語(yǔ)離開網(wǎng)絡(luò),也可以通過(guò)發(fā)送LEAVE_REQUEST請(qǐng)求原語(yǔ)讓別的節(jié)點(diǎn)離開網(wǎng)絡(luò)。當(dāng)節(jié)點(diǎn)收到LEAVE_REQUEST請(qǐng)求(來(lái)自本節(jié)點(diǎn)的應(yīng)用層或者來(lái)自其他節(jié)點(diǎn))時(shí),執(zhí)行離開網(wǎng)絡(luò)操作:首先,節(jié)點(diǎn)發(fā)送離開指示報(bào)文LEAVE_INDICATION給所有的鄰居節(jié)點(diǎn);然后,鄰居節(jié)點(diǎn)收到LEAVE_INDICATION后,將該節(jié)點(diǎn)從鄰居表和路由表等信息中移除;最后,清空本節(jié)點(diǎn)網(wǎng)絡(luò)層信息,離開網(wǎng)絡(luò)。

500)this.style.width=500;" border="0" />
圖3 收到路由請(qǐng)求命令報(bào)文后的處理流程
3.3 路由
路由,作為網(wǎng)絡(luò)層的核心功能之一, 它的設(shè)計(jì)與開發(fā)直接影響著網(wǎng)絡(luò)的性能,這也是整個(gè)協(xié)議開發(fā)的重點(diǎn)和難點(diǎn)。下面我們將對(duì)路由協(xié)議的設(shè)計(jì),路由發(fā)現(xiàn)以及維護(hù)分別進(jìn)行介紹。
當(dāng)且僅當(dāng)一個(gè)節(jié)點(diǎn)要單播發(fā)送數(shù)據(jù)報(bào)文但是當(dāng)前路由表中沒(méi)有到目的節(jié)點(diǎn)的有效路由時(shí),節(jié)點(diǎn)向外廣播發(fā)送路由請(qǐng)求報(bào)文RREQ(Route Request)進(jìn)行路由發(fā)現(xiàn)。節(jié)點(diǎn)收到路由請(qǐng)求報(bào)文后的詳細(xì)處理流程如圖3所示。
當(dāng)節(jié)點(diǎn)收到路由回復(fù)報(bào)文時(shí),首先查找路由表和路由發(fā)現(xiàn)表看是否有對(duì)應(yīng)的項(xiàng),如果有則更新路由表和路由發(fā)現(xiàn)表。如果該節(jié)點(diǎn)地址不等于路由回復(fù)報(bào)文命令負(fù)載中的發(fā)起節(jié)點(diǎn)地址,則需要繼續(xù)轉(zhuǎn)發(fā)該路由回復(fù)。節(jié)點(diǎn)收到路由回復(fù)報(bào)文后的詳細(xì)處理流程如圖4所示。
 500)this.style.width=500;" border="0" />
圖4 收到路由回復(fù)命令報(bào)文后的處理流程
4 結(jié)論
根據(jù)ZigBee協(xié)議國(guó)際規(guī)范,設(shè)計(jì)和開發(fā)了具有我國(guó)自主知識(shí)產(chǎn)權(quán)的ZigBee協(xié)議棧。本文,我們針對(duì)Atmega128閃存空間有限的特點(diǎn)設(shè)計(jì)了合適的協(xié)議棧軟件架構(gòu);并且重點(diǎn)對(duì)協(xié)議棧網(wǎng)絡(luò)層進(jìn)行了詳細(xì)的介紹,主要包括服務(wù)實(shí)體的定義和劃分、網(wǎng)絡(luò)層的功能描述和實(shí)現(xiàn)(如數(shù)據(jù)收發(fā)、設(shè)備管理以及路由發(fā)現(xiàn)與維護(hù))。
本文作者創(chuàng)新點(diǎn):為了在有限存儲(chǔ)空間上實(shí)現(xiàn)ZigBee規(guī)范定義的諸多功能,設(shè)計(jì)實(shí)現(xiàn)了共享緩沖區(qū)進(jìn)行數(shù)據(jù)收發(fā);針對(duì)無(wú)線網(wǎng)絡(luò)的鏈路特點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了適用于工業(yè)環(huán)境的無(wú)線Mesh網(wǎng)絡(luò)路由協(xié)議,在進(jìn)行路徑選擇的時(shí)候充分考慮鏈路質(zhì)量因素,提高了選路的可靠性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉