嚴(yán)海洲
關(guān)鍵詞:Z-Stack協(xié)議棧;無線傳輸;工程實(shí)踐;創(chuàng)新能力
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)12-0086-03
0 引言
基于Z-Stack協(xié)議棧的環(huán)境數(shù)據(jù)無線傳輸實(shí)驗(yàn)的硬件環(huán)境為UP-MOBNET-A9-II型移動(dòng)互聯(lián)網(wǎng)教學(xué)科研平臺(tái),軟件開發(fā)平臺(tái)為IAR Embedded Work?bench for MCS-51 ,實(shí)現(xiàn)無線組網(wǎng)及通信的協(xié)議棧是ZStack-2.3.0-1.4.0。本實(shí)驗(yàn)是《無線傳感網(wǎng)絡(luò)技術(shù)》課程中難度較大的綜合性實(shí)驗(yàn)項(xiàng)目,通過本實(shí)驗(yàn),可以讓學(xué)生理解無線傳感網(wǎng)絡(luò)系統(tǒng)硬件的構(gòu)成、具體功能和工作原理,進(jìn)一步掌握無線傳感網(wǎng)絡(luò)軟件集成開發(fā)環(huán)境IAR Embedded Workbench的功能、使用方法和特點(diǎn)。培養(yǎng)他們應(yīng)用無線傳感網(wǎng)絡(luò)開發(fā)平臺(tái)的基本技能、工程思維和團(tuán)隊(duì)協(xié)作精神。
在實(shí)驗(yàn)的整體設(shè)計(jì)方面,考慮到涉及相關(guān)知識(shí)點(diǎn)的多面性與綜合性,為降低學(xué)習(xí)難度,采用由基礎(chǔ)實(shí)驗(yàn)到高級(jí)實(shí)驗(yàn),由簡(jiǎn)單模塊實(shí)驗(yàn)到復(fù)雜系統(tǒng)實(shí)驗(yàn)的遞進(jìn)式實(shí)現(xiàn)方法。先安排兩個(gè)前置實(shí)驗(yàn),傳感器實(shí)驗(yàn)(以溫濕度傳感器為例)和TI CC2530 Z-Stack協(xié)議棧IAR工程配置實(shí)驗(yàn)。前者的主要目的是為了熟悉Zig?Bee(TI CC2530) 模塊相關(guān)硬件接口、傳感器(以溫濕度傳感器為例)的工作原理和時(shí)序操作;后者的主要目的是為了學(xué)生熟悉Z-Stack協(xié)議棧的安裝、結(jié)構(gòu),掌握Z-Stack協(xié)議棧中SampleApp工程的具體應(yīng)用流程,以及IEEE802.15.4標(biāo)準(zhǔn)和ZigBee協(xié)議在無線傳感網(wǎng)絡(luò)架構(gòu)中的作用。完成這兩個(gè)前置實(shí)驗(yàn)后,再去做難度較高的基于Z-Stack協(xié)議棧的環(huán)境數(shù)據(jù)(以溫濕度傳感器為例)無線傳輸實(shí)驗(yàn),掌握ZigBee(TI CC2530) 模塊的無線組網(wǎng)、數(shù)據(jù)無線收發(fā)的原理與過程。
1 基于Z-Stack 的環(huán)境數(shù)據(jù)無線傳輸實(shí)驗(yàn)的兩個(gè)前置實(shí)驗(yàn)
1.1 傳感器實(shí)驗(yàn)(以溫濕度傳感器為例)
系統(tǒng)配套的溫濕度傳感器,與ZigBee(TI CC2530) 模塊的A/D 排針相連,這樣我們可以知道,溫濕度傳感器模塊的時(shí)鐘線與ZigBee 模塊的P0_0 IO引腳相連,溫濕度傳感器的數(shù)據(jù)線與P0_1 IO引腳相連[1]。因此,我們要監(jiān)測(cè)溫濕度傳感器狀態(tài),只需要在代碼中對(duì)對(duì)應(yīng)的引腳進(jìn)行輸入輸出控制,從而模擬該傳感器的時(shí)序即可。我們?cè)贗AR開發(fā)環(huán)境中編譯、運(yùn)行、調(diào)試程序,設(shè)置ZigBee(TI CC2530) 模塊的IO的狀態(tài),不僅模擬溫濕度傳感器的時(shí)序,同時(shí)將數(shù)據(jù)線的上拉電阻功能打開。其中溫濕度傳感器(UPM-1303 SHT GID=0x08) 的數(shù)值轉(zhuǎn)換公式為[2]:
Uint16 humi_val = BUILD_UINT16(HUMI_L,HUMI_H);
Uint16 temp_val = BUILD_UINT16(TEMP_L,TEMP_H);
Double humi = -4 + 0.0405*humi_val - 2.8*pow(10, -6)*pow(humi_val, 2);
Double temp = -39.6 + 0.01*temp_val;
采集到溫濕度值后,通過硬件平臺(tái)的串口打印方式輸出相應(yīng)的溫濕度數(shù)據(jù)。將顯示終端(如PC機(jī))的串口與之相連,即可從終端的顯示窗口(如PC機(jī)支持的超級(jí)終端軟件窗口)觀察到溫濕度數(shù)據(jù)。
1.2 TI CC2530 Z-Stack 協(xié)議棧IAR 工程配置實(shí)驗(yàn)
Z-Stack協(xié)議棧是TI公司基于CC2530芯片推出的、符合IEEE802.15.4標(biāo)準(zhǔn)和ZigBee2007協(xié)議的協(xié)議棧,該協(xié)議棧為用戶提供了能實(shí)現(xiàn)各個(gè)功能的框架代碼,讓他們?cè)赯-Stack協(xié)議棧的框架上進(jìn)行修改和補(bǔ)充,即可實(shí)現(xiàn)用戶需要的功能。
IEEE802.15.4標(biāo)準(zhǔn)只定義了PHY層和數(shù)據(jù)鏈路層的MAC子層。PHY層由射頻收發(fā)器以及底層的控制模塊組成。MAC子層為高層訪問物理信道提供點(diǎn)到點(diǎn)通信的服務(wù)接口[3]。而ZigBee協(xié)議定義了網(wǎng)絡(luò)層(NWK) 和應(yīng)用層。ZigBee協(xié)議的網(wǎng)絡(luò)層主要提供網(wǎng)絡(luò)管理功能。規(guī)范了建立新網(wǎng)絡(luò)、設(shè)備入網(wǎng)或與網(wǎng)絡(luò)斷開的操作。ZigBee協(xié)議在應(yīng)用層定義了一些組件,主要由APS子層、ZigBee協(xié)議設(shè)備對(duì)象(ZOD) 和設(shè)備商自定義的應(yīng)用組件組成[4]。
TI CC2530 Z-Stack協(xié)議棧IAR工程配置實(shí)驗(yàn)基于ZigBee(TI CC2530) 模塊,通過Z-Stack 協(xié)議棧IAR 工程的配置過程,可以學(xué)習(xí)TI Z-Stack協(xié)議棧和實(shí)際需要相結(jié)合的基本開發(fā)過程。
首先,我們安裝TI CC2530 Z-Stack協(xié)議棧:打開TI CC2530 Z-Stack協(xié)議棧的安裝包,啟動(dòng)其中的協(xié)議棧安裝程序ZStack-2.3.0-1.4.0.exe,可選擇接收協(xié)議和典型安裝。協(xié)議棧安裝后,會(huì)在C盤Texas Instru?ments目錄下新增一個(gè)ZStack-2.3.0-1.4.0目錄,其中含有Components、Documents、Projects和Tools等4個(gè)文件夾。其中,在Projects 的zstack\Samples\Sample?App\CC2530DB 路徑下,含有一個(gè)名為SampleApp 的工程樣例可以作為模板,我們用IAR Embedded Work?bench 打開TI CC2530 Z-Stack 協(xié)議棧安裝目錄中的SampleApp.eww工程,如圖1所示。即可通過進(jìn)一步的操作了解到協(xié)議棧的目錄結(jié)構(gòu)及相關(guān)軟件流程。
在IAR Embedded Workbench 的Workspace 工作區(qū),我們還可以看到這個(gè)SampleApp工程有8種模板可以選擇(見圖2) 。其中CoordinatorEB、RouterEB、EndDeviceEB和DemoEB等4種模板合乎ZigBee 2007 協(xié)議的ZigBee 功能指令集;此外4 種模板CoordinatorEB-Pro、RouterEB-Pro、EndDeviceEB-Pro和DemoEB-Pro合乎ZigBee 2007協(xié)議的ZigBee Pro功能指令集。這8種模板對(duì)應(yīng)的設(shè)備類型各不相同。ZigBee標(biāo)準(zhǔn)確定了ZigBee網(wǎng)絡(luò)中的三種設(shè)備:ZigBee 協(xié)調(diào)器、ZigBee路由器和ZigBee終端設(shè)備[5]。一個(gè)Zig?Bee網(wǎng)絡(luò)通常由一個(gè)ZigBee協(xié)調(diào)器以及多個(gè)ZigBee路由器和多個(gè)ZigBee終端設(shè)備組成。其中,ZigBee協(xié)調(diào)器在完成網(wǎng)絡(luò)的啟動(dòng)和配置后,其工作角色即轉(zhuǎn)化為一個(gè)路由器。這是ZigBee 網(wǎng)絡(luò)本身的分布特性決定的,因?yàn)榇藭r(shí)網(wǎng)絡(luò)已不再需要協(xié)調(diào)器。
可以根據(jù)ZigBee(TI CC2530) 模塊和傳感器等硬件設(shè)備的配置情況,展開TI CC2530 Z-Stack協(xié)議棧的工程配置。我們既可以給某個(gè)ZigBee(TI CC2530) 模塊下載CoordinatorEB工程,讓它成為協(xié)調(diào)器,具備自動(dòng)組建網(wǎng)絡(luò)的功能;也可以給某個(gè)ZigBee(TI CC2530) 模塊下載EndDeviceEB 工程,讓它成為終端節(jié)點(diǎn)模塊;還可以給某個(gè)ZigBee(TI CC2530) 模塊下載Rou?terEB工程,讓它成為路由模塊。
結(jié)合UP-MOBNET-A9-II 型移動(dòng)互聯(lián)網(wǎng)教學(xué)科研平臺(tái)的實(shí)際配置情況,現(xiàn)做一項(xiàng)較為簡(jiǎn)單的入門級(jí)的TI CC2530 Z-Stack 協(xié)議棧IAR 工程配置。選擇2 個(gè)ZigBee(TI CC2530) 模塊,通過IAR工程的Debug對(duì)其中的任意一個(gè)下載燒寫協(xié)調(diào)器CoordinatorEB工程,對(duì)另一個(gè)下載燒寫終端節(jié)點(diǎn)EndDeviceEB工程。然后先開啟指定為協(xié)調(diào)器的ZigBee(TI CC2530) 模塊,則其會(huì)自動(dòng)組建網(wǎng)絡(luò),并在組網(wǎng)成功時(shí)點(diǎn)亮模塊上的綠燈。接著打開指定為終端節(jié)點(diǎn)的ZigBee(TI CC2530) 模塊,其在入網(wǎng)成功時(shí)也會(huì)點(diǎn)亮模塊上的綠燈。至此,TI CC2530 Z-Stack 協(xié)議棧IAR 工程配置即告完成。
2 基于Z-Stack 協(xié)議棧的環(huán)境數(shù)據(jù)無線傳輸實(shí)驗(yàn)
為實(shí)現(xiàn)基于Z-Stack協(xié)議棧的環(huán)境數(shù)據(jù)的無線傳輸,我們需要ZigBee(TI CC2530) 模塊能夠無線組網(wǎng)和實(shí)現(xiàn)數(shù)據(jù)通信。我們繼續(xù)以溫濕度傳感器為例,就是要求協(xié)調(diào)器(Coordinator) 能夠自動(dòng)組網(wǎng),附帶有溫濕度傳感器的終端節(jié)點(diǎn)(EndDevice) 能夠自動(dòng)入網(wǎng),并能夠按照一定周期廣播傳輸采集到的溫濕度數(shù)據(jù)。
本實(shí)驗(yàn)同前置實(shí)驗(yàn)Z-Stack協(xié)議棧IAR工程配置實(shí)驗(yàn)一樣,也是使用IAR Embedded Workbench 開發(fā)環(huán)境打開ZStack-2.3.0-1.4.0 協(xié)議棧中的源碼例程SampleApp.eww,將其中的工程樣例作為模板。
在溫濕度傳感器狀態(tài)的獲取方面,與前置實(shí)驗(yàn)傳感器實(shí)驗(yàn)(以溫濕度傳感器為例)相比也有提升:在傳感器實(shí)驗(yàn)里面是通過配置TI CC2530 處理器的IO引腳P0_0、P0_1以模擬溫濕度傳感器的時(shí)序,進(jìn)而取得傳感器的狀態(tài)。而本實(shí)驗(yàn)是在終端節(jié)點(diǎn)模塊的函數(shù)中,加入溫濕度采集數(shù)據(jù),通過AF_DataRequest()函數(shù)接口發(fā)送給PC計(jì)算機(jī)串口進(jìn)行顯示。
在打開SampleApp.eww 工程后,同前置實(shí)驗(yàn)ZStack協(xié)議棧IAR工程配置實(shí)驗(yàn)一樣,先后完成協(xié)調(diào)器ZigBee(TI CC2530) 模塊和終端節(jié)點(diǎn)ZigBee(TICC2530) 模塊的編譯和燒寫,然后進(jìn)行測(cè)試。在網(wǎng)絡(luò)組建完成后,用串口線把PC 機(jī)的串口和ZigBee(TICC2530) 協(xié)調(diào)器模塊對(duì)應(yīng)的串口連接起來,調(diào)整串口終端設(shè)置,即可在超級(jí)終端上看到無線傳感網(wǎng)絡(luò)終端節(jié)點(diǎn)采集的溫濕度數(shù)據(jù)。為確認(rèn)顯示的溫濕度數(shù)據(jù)是該終端節(jié)點(diǎn)所采集的,可以通過人為干擾傳感器造成溫濕度數(shù)據(jù)變化進(jìn)行證明,如圖3所示:當(dāng)把手指放到終端節(jié)點(diǎn)附帶的溫濕度傳感器上以后,溫濕度數(shù)據(jù)發(fā)生了明顯的上升。
基于Z-Stack協(xié)議棧的環(huán)境數(shù)據(jù)無線傳輸有著廣泛的用途,以溫濕度傳感器為例,農(nóng)業(yè)生產(chǎn)、化學(xué)工程、天氣預(yù)報(bào)、文物保護(hù)、大型服務(wù)器機(jī)房的監(jiān)控,凡此種種都離不開溫濕度的測(cè)量與調(diào)控。同理,此系統(tǒng)的終端節(jié)點(diǎn)也可附帶其他種類的傳感器,譬如廣譜氣體傳感器、熱釋紅外傳感器、三軸加速度傳感器、壓力傳感器、紅外對(duì)射傳感器,等。同時(shí),類似于本實(shí)驗(yàn)的環(huán)境數(shù)據(jù)無線傳輸系統(tǒng)具有低復(fù)雜度、低功耗、低成本、短時(shí)延、網(wǎng)絡(luò)容量大、運(yùn)行穩(wěn)定等特點(diǎn)。所有這些充分表明無線傳感網(wǎng)絡(luò)技術(shù)有著廣泛的應(yīng)用前景。
3 結(jié)束語
基于Z-Stack協(xié)議棧的環(huán)境數(shù)據(jù)無線傳輸實(shí)驗(yàn)是《無線傳感網(wǎng)絡(luò)技術(shù)》實(shí)驗(yàn)環(huán)節(jié)中的一個(gè)綜合設(shè)計(jì)類實(shí)驗(yàn)項(xiàng)目,也是實(shí)驗(yàn)環(huán)節(jié)中的一個(gè)重點(diǎn)和難點(diǎn)。要求學(xué)生進(jìn)一步掌握IAR開發(fā)環(huán)境下的程序設(shè)計(jì),通過IAR開發(fā)環(huán)境編程,實(shí)現(xiàn)基于Z-Stack協(xié)議棧的無線傳感器的網(wǎng)絡(luò)數(shù)據(jù)傳輸,即協(xié)調(diào)器自動(dòng)組網(wǎng),終端節(jié)點(diǎn)自動(dòng)入網(wǎng)。掌握ZigBee(TI CC2530) 模塊無線組網(wǎng)的原理及過程,利用ZigBee(TI CC2530) 模塊的IO口來監(jiān)測(cè)溫濕度傳感器(也可以是前述的其他傳感器)的狀態(tài),并通過串口把檢測(cè)到的數(shù)據(jù)打印到顯示終端上。
通過本實(shí)驗(yàn)項(xiàng)目可以培養(yǎng)學(xué)生自身的軟件工程管理能力,能夠?qū)igBee(TI CC2530) 節(jié)點(diǎn)模塊和各種環(huán)境傳感器進(jìn)行管理,同時(shí)學(xué)習(xí)和深刻理解Z-Stack 協(xié)議棧的豐富內(nèi)容,加深對(duì)Z-Stack協(xié)議棧底層邏輯的理解。該實(shí)驗(yàn)項(xiàng)目被安排在整個(gè)實(shí)驗(yàn)周期的中間,符合循序漸進(jìn)的專業(yè)學(xué)習(xí)路徑。相關(guān)實(shí)驗(yàn)課基本包含“講、練、思、創(chuàng)”四個(gè)方面的內(nèi)容。
講,是對(duì)實(shí)驗(yàn)項(xiàng)目相關(guān)知識(shí)點(diǎn)的梳理和講解。如Z-Stack 協(xié)議棧的底層邏輯,ZigBee(TI CC2530) 模塊無線組網(wǎng)的原理及過程,常用的幾類環(huán)境傳感器的驅(qū)動(dòng)接口等。
練,讓學(xué)生們放開手腳嘗試實(shí)現(xiàn)實(shí)驗(yàn)項(xiàng)目。讓每個(gè)學(xué)生都加到小組之中,動(dòng)腦思考、動(dòng)口交流、動(dòng)手實(shí)施,充分參加到實(shí)驗(yàn)之中。只有通過一定的摸索和試錯(cuò),才有可能真正熟悉和掌握整個(gè)項(xiàng)目實(shí)現(xiàn)的軟硬件條件、SampleApp工程的架構(gòu)等。才有可能讓他們充分了解到無線傳感網(wǎng)絡(luò)系統(tǒng)的配置過程、各種不同外設(shè)的設(shè)置與調(diào)用方法。
思,提出若干問題或設(shè)想供學(xué)生思考并驗(yàn)證。以實(shí)驗(yàn)?zāi)康臑橹笇?dǎo),引導(dǎo)他們掌握相關(guān)實(shí)驗(yàn)由易到難的迭代過程。研讀和思考Z-Stack協(xié)議棧中的Sample?App工程樣例,探討協(xié)調(diào)器自動(dòng)組網(wǎng)和終端節(jié)點(diǎn)設(shè)備自動(dòng)入網(wǎng)功能是如何實(shí)現(xiàn)的;以及發(fā)送periodic信息的流程,特別是Periodic消息是如何在ZigBee組網(wǎng)成功后,通過開啟定時(shí)器來推送周期信息的。
創(chuàng),指導(dǎo)學(xué)生通過舉一反三,去創(chuàng)造新的實(shí)驗(yàn)結(jié)果。如嘗試對(duì)實(shí)驗(yàn)平臺(tái)上的其他傳感器(如廣譜氣體傳感器、紅外對(duì)射傳感器、磁場(chǎng)強(qiáng)度傳感器、壓力傳感器和三軸加速度傳感器,等)采集到的環(huán)境數(shù)據(jù)進(jìn)行無線傳輸。此一階段主要是協(xié)助一些能力較強(qiáng)的學(xué)生,對(duì)他們予以指導(dǎo)和鼓勵(lì),甚至在時(shí)間允許的情況下,讓一兩位做得比較好的學(xué)生上臺(tái)分享他們的思路和編程技巧。
本實(shí)驗(yàn)項(xiàng)目通過軟硬件協(xié)同的綜合性設(shè)計(jì),有利于培養(yǎng)學(xué)生對(duì)專業(yè)知識(shí)的綜合運(yùn)用能力、創(chuàng)新意識(shí)和實(shí)踐能力,也有利于他們創(chuàng)新能力的培養(yǎng)。通過課程內(nèi)容的遞進(jìn)式設(shè)計(jì)、實(shí)驗(yàn)過程的互動(dòng)和自主設(shè)計(jì)實(shí)驗(yàn)的創(chuàng)新引領(lǐng),延伸了學(xué)生的認(rèn)識(shí)和思維過程、引導(dǎo)和發(fā)展了學(xué)生的創(chuàng)新能力。