當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]在無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上移植了msstatePAN協(xié)議棧,并用2個(gè)節(jié)點(diǎn)完成組網(wǎng),實(shí)現(xiàn)了網(wǎng)絡(luò)協(xié)調(diào)器和設(shè)備節(jié)點(diǎn)的數(shù)據(jù)互傳,驗(yàn)證了無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)硬件設(shè)計(jì)的合理性和協(xié)議棧移植的正確性。

無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是由多個(gè)節(jié)點(diǎn)組成的面向任務(wù)的無(wú)線自組織網(wǎng)絡(luò),一般不需要很高的信道帶寬,但應(yīng)具有較低的傳輸延時(shí)和極低的功率消耗,使用戶(hù)能在有限的電池壽命內(nèi)完成任務(wù)。IEEE 802.15.4/ZigBee標(biāo)準(zhǔn)把低功耗、低成本作為主要目標(biāo),為無(wú)線傳感器網(wǎng)絡(luò)提供了一種互連互通的平臺(tái)。因此將ZigBee技術(shù)與無(wú)線傳感器網(wǎng)絡(luò)技術(shù)結(jié)合起來(lái)研究具有現(xiàn)實(shí)意義。


1 ZigBee技術(shù)的體系結(jié)構(gòu)
    在ZigBee技術(shù)中,其體系結(jié)構(gòu)通常由層來(lái)量化它的各個(gè)簡(jiǎn)化標(biāo)準(zhǔn)。每一層負(fù)責(zé)完成所規(guī)定的任務(wù),并且向上層提供服務(wù)。各層之間的接口通過(guò)所定義的邏輯鏈路來(lái)提供服務(wù)。ZigBee技術(shù)的體系結(jié)構(gòu)主要由物理(PHY)層、媒體接入控制(MAC)層、網(wǎng)絡(luò)/安全層以及應(yīng)用框架層構(gòu)成,其各層的分布如圖1所示。

2 ZigBee技術(shù)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
    ZigBee技術(shù)網(wǎng)絡(luò)有2種拓?fù)浣Y(jié)構(gòu):星型拓?fù)浣Y(jié)構(gòu)和對(duì)等拓?fù)浣Y(jié)構(gòu),如圖2所示。其中定義了兩種設(shè)備:全功能設(shè)備(Full Funetion Device,F(xiàn)FD)和精簡(jiǎn)功能設(shè)備(Re—dueed Function Device,RFD)。與RFD相比,F(xiàn)FD在硬件功能上比較完備。在通信能力方面,F(xiàn)FD可以與所有其他的FFD或RFD通信,而RFD只能和與其關(guān)聯(lián)的FFD進(jìn)行通信。與RFD相關(guān)聯(lián)的FFD設(shè)備稱(chēng)為該RFD的“協(xié)調(diào)器(Coordinator)”。在整個(gè)網(wǎng)絡(luò)中,有一個(gè)FFD充當(dāng)網(wǎng)絡(luò)協(xié)調(diào)器(PAN Coordinator)。除直接參與應(yīng)用外,網(wǎng)絡(luò)協(xié)調(diào)器還需要完成成員身份管理、鏈路狀態(tài)信息管理以及分組轉(zhuǎn)發(fā)等任務(wù)。
    本文移植協(xié)議棧拓?fù)浣Y(jié)構(gòu)是對(duì)等拓?fù)渚W(wǎng)絡(luò)中的一種——樹(shù)簇網(wǎng)絡(luò)。在樹(shù)簇網(wǎng)絡(luò)中大部分沒(méi)備為FFD,RFD只能作為樹(shù)枝末尾處的葉節(jié)點(diǎn),這主要是由于RFD一次只能連接一個(gè)FFD。任何一個(gè)FFD都可以作為主協(xié)調(diào)器,并為其他從設(shè)備或主設(shè)備提供同步服務(wù)。在整個(gè)PAN中,只要該設(shè)備相對(duì)于PAN巾其他設(shè)備具有更多資源,這樣的設(shè)備都可以成為該P(yáng)AN的主協(xié)調(diào)器。
    在建立一個(gè)PAN時(shí),首先,PAN主協(xié)調(diào)器將其自身設(shè)置為一個(gè)簇標(biāo)識(shí)符(CID)為O的簇頭(CLH)。然后,選擇一個(gè)沒(méi)有使用的PAN標(biāo)識(shí)符,并向鄰近的其他設(shè)備以廣播的方式發(fā)送信標(biāo)幀,從而形成第一簇網(wǎng)絡(luò)。接收到信標(biāo)幀的候選設(shè)備可以在簇頭中請(qǐng)求加入該網(wǎng)絡(luò),如果PAN主協(xié)調(diào)器允許該設(shè)備加入,該設(shè)備就將主協(xié)調(diào)器作為它的父節(jié)點(diǎn)加到它的鄰近表中,成為該網(wǎng)絡(luò)的一個(gè)從設(shè)備;同樣,其他設(shè)備都按照同樣的方式,請(qǐng)求加入到網(wǎng)絡(luò)中。如果候選設(shè)備不能加入到該網(wǎng)絡(luò)中,那么它將尋找其他的父節(jié)點(diǎn)。在樹(shù)簇網(wǎng)絡(luò)中,最簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu)是只有一個(gè)簇的網(wǎng)絡(luò),但是多數(shù)網(wǎng)絡(luò)結(jié)構(gòu)由多個(gè)相鄰的網(wǎng)絡(luò)構(gòu)成。一旦第一簇網(wǎng)絡(luò)滿(mǎn)足預(yù)定的應(yīng)用或網(wǎng)絡(luò)需求,PAN主協(xié)調(diào)器將會(huì)指定一個(gè)從設(shè)備為另一個(gè)簇的簇頭,使得該從設(shè)備成為一個(gè)主協(xié)調(diào)器。隨后其他的從設(shè)備將逐個(gè)加入,形成一個(gè)多簇網(wǎng)絡(luò),如圖3所示。

   

3 無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)結(jié)構(gòu)
    本文移植的目標(biāo)板是自行設(shè)計(jì)的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)模塊。其中,處理器模塊采用Atreel公司的AT—megal28L,無(wú)線通信模塊采用TI公司的CC2420,電源模塊使用NCPl402芯片將2節(jié)電池進(jìn)行DC—DC變換后得到,傳感器模塊采用DSl8820。
    CC2420利用SFD、FIFO、FIFOP和CCA四個(gè)引腳表示收發(fā)數(shù)據(jù)的狀態(tài)。ATmegal28L通過(guò)CC2420的SPI接口(CSn、SO、SI、SCK)與CC2420交換數(shù)據(jù)、發(fā)送命令,利用RSTn引腳復(fù)位芯片;并且利用VREG_EN引腳使能CC2420的電壓調(diào)整器,使其產(chǎn)生CC2420所需要的1.8 V電壓,從而使CC2420進(jìn)入正常工作的狀態(tài)。CC2420通過(guò)單極天線或PCB天線進(jìn)行通信。節(jié)點(diǎn)總體框圖如圖4所示。

4 zigBee協(xié)議棧的移植
4.1 msstatePAN協(xié)議棧的移植

    msstatePAN協(xié)議棧是由密西西比大學(xué)的R.Reese教授為廣大無(wú)線技術(shù)愛(ài)好者開(kāi)發(fā)的精簡(jiǎn)版ZigBee協(xié)議棧,基于標(biāo)準(zhǔn)C語(yǔ)言編寫(xiě),基本具備了ZigBee協(xié)議標(biāo)準(zhǔn)所規(guī)定的功能,最新版本為V0.2.6,該版本支持多種開(kāi)發(fā)平臺(tái),包括PICDEM Z、CC2430評(píng)估板、MSP430+CC2420(Tmote)以及WIN32虛擬平臺(tái)。由于該協(xié)議棧的上述特點(diǎn)以及源代碼的開(kāi)放性,本文選擇它作為學(xué)習(xí)和移植的
對(duì)象。
    移植是將msstatePAN協(xié)議棧在PICDEM Z平臺(tái)下的代碼移植到上面設(shè)計(jì)的目標(biāo)板中,采用winavr20070525作為編譯器,并通過(guò)JTAG接口將程序下載到目標(biāo)板中。下面介紹一下移植過(guò)程。
    (1)編寫(xiě)makefile文件
    winavr 20070525采用GCC編譯器,要編寫(xiě)makefile文件以完成程序的編譯。指定MCU為ATmegal28,定義CPU工作頻率F_CPU為8 000 000 Hz;定義編譯后生成的文件類(lèi)型FORMAT為ihex;將TARGET改為項(xiàng)目主文件的文件名,由于后面測(cè)試用ing_pong.c這個(gè)文件,此處將TARGET定義為ping_pong;最后定義SRC,在SRC中應(yīng)包含整個(gè)項(xiàng)目中的所有文件,并且各個(gè)文件名之間要用空格格開(kāi)。協(xié)議棧為規(guī)定當(dāng)前編譯器編譯的是協(xié)調(diào)器代碼、IEEE 64位長(zhǎng)地址等,要用到LRWPAN_COORDINATOR等宏定義,因此要在makefile文件中加入相應(yīng)的宏定義代碼。
    (2)替換與編譯器相關(guān)的定義
    本移植用的是GCC編譯器,所以要將與PIC編譯器相關(guān)的代碼進(jìn)行替換,為此修改compiler.h頭文件及特定編譯器的數(shù)據(jù)定義。例如對(duì)ROM數(shù)據(jù)類(lèi)型進(jìn)行替換,或者直接刪除該數(shù)據(jù)類(lèi)型。
    (3)移植與硬件平臺(tái)相關(guān)的部分
   
該部分代碼涉及的都是最底層的東西,通過(guò)對(duì)協(xié)議棧的透徹理解,總結(jié)出要修改的文件有halStack.c、hal.h、halHeepSpace.h、cc2420.c/.h、evboard.c/.h、evbRadio.h、evbConfig.h等。其中halStack.c和evboard.c兩個(gè)文件改動(dòng)很大。這兩個(gè)文件中包括硬件接口定義、串口定義、LED燈定義、硬件系統(tǒng)初始化定義,以及中斷處理函數(shù)和協(xié)議棧時(shí)鐘函數(shù)的實(shí)現(xiàn)。首先移植中斷處理函數(shù),注意采用下降沿觸發(fā)中斷。其次,移植協(xié)議棧時(shí)鐘,目標(biāo)板用ATmegal28L的定時(shí)器1作為協(xié)議棧的運(yùn)行時(shí)鐘。由于單片機(jī)采用8 MHz晶振,當(dāng)定時(shí)器使用64分頻時(shí)(At—megal28L定時(shí)器1沒(méi)有128分頻),此時(shí)定時(shí)器計(jì)數(shù)一次所需要的時(shí)間為8μs,而在協(xié)議棧中每傳輸一個(gè)符號(hào)(symbo1)所需要的時(shí)間為16μs,故將定時(shí)器計(jì)數(shù)2次定義為一個(gè)symbol時(shí)間。所以在設(shè)計(jì)中,要修改hal—MacTicksToUs函數(shù)及SYMBOLS_TO_MACTICKS(x)和MSECS_TO_MACTICKS(x)宏定義。
    (4)對(duì)協(xié)議棧內(nèi)部各層進(jìn)行適當(dāng)修改
    這部分的移植工作與第3步相比簡(jiǎn)單些,一些與硬件聯(lián)系緊密的MAC層和PHY層相關(guān)的函數(shù)都放在ev—board.c和halStack.c文件中。具體分析如下:
    ①根據(jù)自己的需求修改協(xié)議棧需要的堆棧,協(xié)議中默認(rèn)為l 024字節(jié),可以根據(jù)實(shí)際情況做些調(diào)整。
    ②debug.c函數(shù)中的一些定義在運(yùn)行時(shí)需要大量RAM,如果選擇編譯的是協(xié)調(diào)器,則整個(gè)協(xié)議棧需要RAM存儲(chǔ)單元大于6KB,而ATmagal28L內(nèi)部只有4 KB RAM,為此屏蔽了一些調(diào)試顯示信息,以達(dá)到系統(tǒng)要求。
    ③修改staticbind.h函數(shù),由于該協(xié)議棧是靜態(tài)分配地址,而該函數(shù)的作用就是定義其地址,所以該函數(shù)在整個(gè)協(xié)議棧運(yùn)行中至關(guān)重要。首先要考慮其地址是不是和makefile中定義的相吻合,如果不吻合應(yīng)進(jìn)行相應(yīng)修改,否則CC2420地址譯碼就通不過(guò),以至于無(wú)法建立網(wǎng)絡(luò)。其次,應(yīng)該確定數(shù)據(jù)存儲(chǔ)是按大端模式還是小端模式,如果弄反了,地址就會(huì)不一樣。ATmegal28L是小端模式,這和PIC單片機(jī)是一致的,因此不需要修改,但要修改函數(shù)中的宏定義,讓編譯器選擇相應(yīng)的程序進(jìn)行編譯,生成正確的地址。
    (5)編譯下載
    通過(guò)上面的移植,程序應(yīng)該能正確進(jìn)行編譯以及鏈接,生成HEX文件;再用AVRStudio4.12軟件將程序下載到相應(yīng)節(jié)點(diǎn)中,進(jìn)行協(xié)議棧測(cè)試。
4.2 測(cè)試方法
    為了測(cè)試協(xié)議棧移植是否成功,采用2個(gè)節(jié)點(diǎn)進(jìn)行實(shí)驗(yàn)。其中,一個(gè)作為協(xié)調(diào)器,另一個(gè)作為RFD設(shè)備節(jié)點(diǎn)。在makefile中設(shè)定協(xié)調(diào)器的IEEE地址為Ox001248000001216F,RFD設(shè)備的IEEE地址為0x0012480000012170,并使用ping_pong.c文件提供的功能進(jìn)行測(cè)試。
    首先完成網(wǎng)絡(luò)的建立,協(xié)調(diào)器調(diào)用aplFormNetwork()函數(shù)建立一個(gè)網(wǎng)絡(luò);然后等待RFD設(shè)備的加入,RFD設(shè)備調(diào)用aplJoinNetwork()函數(shù)申請(qǐng)加入網(wǎng)絡(luò)。在網(wǎng)絡(luò)建立成功后執(zhí)行ping_pong過(guò)程,該過(guò)程就像打乒乓球一樣,先是協(xié)調(diào)器發(fā)送數(shù)據(jù)給RFD設(shè)備,RFD設(shè)備接收到信息后回發(fā)給協(xié)調(diào)器。如此往返.這也是文件名為ping_pong的原因,具體程序流程如圖5所示。

    編譯、鏈接ping_pong.c文件時(shí)務(wù)必注意:如果是協(xié)調(diào)器,—定要加入宏LRWPAN_COORDINATOR,否則編譯的程序?yàn)镽FD設(shè)備的程序。編譯完成后,將生成的文件分別下載至各節(jié)點(diǎn),并將節(jié)點(diǎn)連接到串口調(diào)試助手,按程序要求設(shè)置串口調(diào)試助手的參數(shù),如波特率、數(shù)據(jù)位長(zhǎng)度等。完成這些設(shè)置后,分別打開(kāi)各節(jié)點(diǎn),首先啟動(dòng)協(xié)調(diào)器節(jié)點(diǎn),然后再啟動(dòng)RFD設(shè)備節(jié)點(diǎn)。圖6是協(xié)凋器連接的串口調(diào)試助手的顯示信息。

    從圖6中可以知道,節(jié)點(diǎn)Ox0012480000012170加入到網(wǎng)絡(luò),其IEEE的長(zhǎng)地址為Ox0012480000012170;協(xié)調(diào)器分配給該節(jié)點(diǎn)的短地址為Oxl699,協(xié)調(diào)器有一個(gè)鄰居節(jié)點(diǎn),2個(gè)節(jié)點(diǎn)之間已經(jīng)開(kāi)始數(shù)據(jù)的傳送。由此可見(jiàn),移植成功。

結(jié) 語(yǔ)
    無(wú)線傳感器網(wǎng)絡(luò)是一門(mén)新興的技術(shù),目前傳感器網(wǎng)絡(luò)硬件節(jié)點(diǎn)價(jià)格比較昂貴,軟件支持也有不足。如果能移植一個(gè)相對(duì)成熟的協(xié)議棧,將最大限度地降低節(jié)點(diǎn)成本。本文就是從這個(gè)角度出發(fā),設(shè)計(jì)出了相應(yīng)的硬件平臺(tái),并成功移植了msstatePAN協(xié)議棧,從學(xué)習(xí)和科研角度考慮具有借鑒意義。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(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ì)開(kāi)幕式在貴陽(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ā)表演講稱(chēng),數(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)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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