版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目二十
Z-Stack協(xié)議棧點(diǎn)播通信01項(xiàng)目導(dǎo)入項(xiàng)目導(dǎo)入
ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。其特點(diǎn)是近距離、低復(fù)雜度、自組網(wǎng)、低功耗、低數(shù)據(jù)速率。主要適合用于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備。當(dāng)采用廣播通信方式時(shí),ZigBee網(wǎng)絡(luò)內(nèi)的任何一個(gè)節(jié)點(diǎn)設(shè)備發(fā)送出廣播數(shù)據(jù),網(wǎng)絡(luò)中的任何設(shè)備都可以接收到所發(fā)送的數(shù)據(jù)。通常情況下終端節(jié)點(diǎn)間是無法確定對(duì)方的16bit短地址的,也就無法了解對(duì)方的身份,相互間通信就失去了意義。ZigBee網(wǎng)絡(luò)一般采用的方式是由終端節(jié)點(diǎn)采集數(shù)據(jù),統(tǒng)一發(fā)送到協(xié)調(diào)器進(jìn)行匯總,這種通信方式就稱為點(diǎn)播通信。本項(xiàng)目通過2個(gè)CC2530模塊的組網(wǎng)及點(diǎn)播通信,讓大家能夠了解CC2530模塊點(diǎn)播通信的原理和整個(gè)過程。02項(xiàng)目分析項(xiàng)目分析
本項(xiàng)目需要使用2個(gè)以上的CC2530模塊。首先二者需要組成一個(gè)小型的個(gè)域網(wǎng),當(dāng)組網(wǎng)成功后二者可以進(jìn)行點(diǎn)播通信。在本項(xiàng)目中CC2530模塊組網(wǎng)成功后模塊A(終端節(jié)點(diǎn))發(fā)送點(diǎn)播數(shù)據(jù),模塊B(協(xié)調(diào)器)接收到數(shù)據(jù)后讓LED閃爍,從而提示二者已組網(wǎng)并通信成功?!卷?xiàng)目要求】1.使用2個(gè)以上的CC2530模塊實(shí)現(xiàn)組網(wǎng)。2.2個(gè)以上的CC2530模塊間實(shí)現(xiàn)點(diǎn)播通信。03項(xiàng)目目標(biāo)項(xiàng)目目標(biāo)01了解ZigBee網(wǎng)絡(luò)的PAN_ID概念。02掌握Z-Stack協(xié)議棧組網(wǎng)的工作原理。03學(xué)會(huì)使用Z-Stack協(xié)議棧進(jìn)行點(diǎn)播通信。04知識(shí)儲(chǔ)備知識(shí)儲(chǔ)備CC2530模塊間的通信采用的是ZigBee協(xié)議,要實(shí)現(xiàn)模塊間的組網(wǎng)及點(diǎn)播通信,我們首先要ZigBee網(wǎng)絡(luò)PAN_ID概念,其次要掌握基于Z-Stack協(xié)議棧點(diǎn)播通信的工作原理、代碼編寫及應(yīng)用開發(fā)。ZigBee的PAN_ID(網(wǎng)絡(luò)號(hào))
在一個(gè)環(huán)境復(fù)雜的小區(qū)或者是工業(yè)現(xiàn)場(chǎng)中,存在各種用途的ZigBee設(shè)備。有些ZigBee設(shè)備分屬不同功能網(wǎng)絡(luò)。為避免設(shè)備相互間的干擾,需要使用PAN_ID給不同網(wǎng)絡(luò)編號(hào)。ZigBee協(xié)議使用一個(gè)16位的個(gè)域網(wǎng)標(biāo)志符(PAN_ID)來標(biāo)識(shí)一個(gè)網(wǎng)絡(luò)。Z-Stack協(xié)議棧允許用兩種方式配置PAN_ID。
在Tools下的f8wConfig.cfg文件中配置PAN_ID時(shí),默認(rèn)設(shè)置ZDAPP_CONFIG_PAN_ID為0xFFFF,協(xié)調(diào)器將根據(jù)自身的IEEE地址建立一個(gè)隨機(jī)的PAN_ID(0~0x3FFF)。路由器和終端設(shè)備則會(huì)在自己的默認(rèn)信道上隨機(jī)選擇一個(gè)網(wǎng)路加入,加入之后協(xié)調(diào)器的PAN_ID即為自己的PAN_ID。固定PAN_ID
當(dāng)ZDAPP_CONFIG_PAN_ID不采用默認(rèn)設(shè)置,設(shè)定為0x0001-0xfffe之間。那么協(xié)調(diào)器建立網(wǎng)絡(luò)或路由和終端設(shè)備加入網(wǎng)絡(luò)的PAN_ID就由這個(gè)設(shè)定值決定。如果協(xié)調(diào)器在建立網(wǎng)絡(luò)的時(shí)候發(fā)現(xiàn)默認(rèn)信道內(nèi)該P(yáng)AN_ID已經(jīng)被占用,那么協(xié)調(diào)器會(huì)繼續(xù)搜索其他的PAN_ID使用。帶來的問題是,終端和路由器并不知道協(xié)調(diào)器換了PAN_ID,還會(huì)加入到原來設(shè)定的PAN_ID中去。ZigBee點(diǎn)對(duì)點(diǎn)通信
ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)雖然理論上有星型、樹型和網(wǎng)狀網(wǎng)三種,根據(jù)實(shí)際網(wǎng)絡(luò)地址分配算法可以看出Z-Stack協(xié)議采用的樹形結(jié)構(gòu)。當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),節(jié)點(diǎn)分配的短地址也相應(yīng)改變,因此任意兩節(jié)點(diǎn)間的通信不可能使用短地址,也沒有必要。一般采用的是協(xié)調(diào)器與路由或終端節(jié)點(diǎn)間的點(diǎn)對(duì)點(diǎn)通信。05代碼修改5.1修改項(xiàng)目的PAN_ID項(xiàng)目實(shí)施前必須先準(zhǔn)備好相應(yīng)的設(shè)備和資源。用IAR打開項(xiàng)目文檔。修改項(xiàng)目Tools下f8wConfig.cfg文件中DZDAPP_CONFIG_PAN_ID參數(shù)。5.2新建點(diǎn)播的結(jié)構(gòu)體實(shí)例在SampleApp.c文件中系統(tǒng)默認(rèn)建了結(jié)構(gòu)體afAddrType_t的廣播實(shí)例SampleApp_Periodic_DstAddr和組播實(shí)例SampleApp_Flash_DstAddr。這里我們新建結(jié)構(gòu)體的點(diǎn)播實(shí)例SampleApp_P2P_DstAddr。結(jié)構(gòu)體afAddrType_t
查看結(jié)構(gòu)體afAddrType_t,可以看到結(jié)構(gòu)體afAddrType_t構(gòu)成:包括短地址、IEEE地址、地址模式、端點(diǎn)號(hào)、網(wǎng)絡(luò)號(hào)。typedefstruct{union{uint16shortAddr;//16位短地址ZLongAddr_textAddr;//64位IEEE地址}addr;afAddrMode_taddrMode;//地址模式uint8endPoint;//端點(diǎn)號(hào)uint16panId;//網(wǎng)絡(luò)號(hào)}afAddrType_t;枚舉類型afAddrMode_t
這個(gè)結(jié)構(gòu)體中包含了枚舉類型afAddrMode_t,查看其內(nèi)容可以看到ZigBee組網(wǎng)發(fā)送信息時(shí)對(duì)方的地址為以下幾種類型之一,ZigBee網(wǎng)絡(luò)中通常采用的是16bit短地址。typedefenum{
afAddrNotPresent=AddrNotPresent,//地址不存在
afAddr16Bit=Addr16Bit,//按16位地址發(fā)送信息
afAddr64Bit=Addr64Bit,//按64位地址發(fā)送信息
afAddrGroup=AddrGroup,//按組號(hào)發(fā)送信息
afAddrBroadcast=AddrBroadcast//廣播發(fā)送信息}afAddrMode_t;結(jié)構(gòu)體SampleApp_P2P_DstAddr賦值
為結(jié)構(gòu)體SampleApp_P2P_DstAddr賦值,可直接復(fù)制前面廣播的配置進(jìn)行修改,增加后如下。SampleApp_P2P_DstAddr.addrMode=(afAddrMode_t)Addr16Bit;//接收方為16位短地址SampleApp_P2P_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;SampleApp_P2P_DstAddr.addr.shortAddr=0x0000;//信息發(fā)送給協(xié)調(diào)器(協(xié)調(diào)器短地址固定為0000)5.3新建點(diǎn)播信息的發(fā)送函數(shù)自定義點(diǎn)播類型參數(shù)#defineSAMPLEAPP_P2P_CLUSTERID3新增點(diǎn)播信息的發(fā)送函數(shù)自定義點(diǎn)播數(shù)據(jù)發(fā)送函數(shù)SampleApp_Send_P2P_Message()voidSampleApp_Send_P2P_Message(void){uint8data[11]="0123456789";if(AF_DataRequest(&SampleApp_P2P_DstAddr,&SampleApp_epDesc,SAMPLEAPP_P2P_CLUSTERID,//接收方地址、端口、自定義包類型10,//發(fā)送的字節(jié)長度data,//發(fā)送的數(shù)據(jù)&SampleApp_TransID,//任務(wù)ID號(hào)AF_DISCV_ROUTE,
//傳送跳數(shù)AF_DEFAULT_RADIUS)==afStatus_SUCCESS)}5.4修改點(diǎn)播信息的發(fā)送函數(shù)
系統(tǒng)事件處理函數(shù)SampleApp_ProcessEvent()中定義了當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生改變時(shí),啟動(dòng)周期事件。修改代碼當(dāng)周期事件發(fā)生時(shí)調(diào)用函數(shù)SampleApp_SendP2PMessage()發(fā)送點(diǎn)播包。if(events&SAMPLEAPP_SEND_PERIODIC_MSG_EVT){
//SampleApp_SendPeriodicMessage();
SampleApp_SendP2PMessage();//發(fā)送點(diǎn)播信息函數(shù)......5.5協(xié)調(diào)器收到信息后的處理
SampleApp_ProcessEvent()中可以看到,當(dāng)系統(tǒng)收到信息包時(shí),則調(diào)用處理函數(shù)SampleApp_MessageMSGCB(),同時(shí)將信息參數(shù)賦值到結(jié)構(gòu)體afIncomingMSGPacket_t。voidSampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt){uint16flashTime;switch(pkt->clusterId){caseSAMPLEAPP_P2P_CLUSTERID:
HalUARTWrite(0,pkt->cmd.Data,pkt->cmd.DataLength);//將收到的數(shù)據(jù)信息從串口輸出
break;
caseSAMPLEAPP_PERIODIC_CLUSTERID://如果收到廣播包break;//直接忽略
}}06項(xiàng)目實(shí)施下載程序到CC2530模塊項(xiàng)目實(shí)施前必須先準(zhǔn)備好相應(yīng)的設(shè)備和資源。用IAR打開項(xiàng)目文檔。修改項(xiàng)目代碼。選擇目錄樹上方的下拉菜單選擇Cood
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 職場(chǎng)壓力管理的策略計(jì)劃
- 秘書日常安排計(jì)劃
- 會(huì)計(jì)人員職業(yè)倦怠及應(yīng)對(duì)策略計(jì)劃
- 探索幼兒園教育創(chuàng)新方法的學(xué)期計(jì)劃
- 《設(shè)備維修新技術(shù)B》課件
- T-CFA 02020501042-2023 鑄造熔煉用碳化硅
- 【8物(科)期末】合肥市新站區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末學(xué)習(xí)質(zhì)量檢測(cè)物理試題
- 2024-2025學(xué)年人教版八年級(jí)上冊(cè)物理期末考試模擬測(cè)試卷
- 管理技能開發(fā)課件-整合
- 離職報(bào)告規(guī)范范文
- 髖臼骨折的分型
- 揭開人際吸引的奧秘 心理健康七年級(jí)全一冊(cè)
- 2024年中級(jí)導(dǎo)游考試真題及答案全集
- 2024年廣東春季高考英語試卷
- 景觀生態(tài)學(xué)基礎(chǔ)智慧樹知到期末考試答案2024年
- 2024年湖南湘潭鋼鐵集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 項(xiàng)目用地報(bào)批知識(shí)講座
- 2025屆高三英語一輪復(fù)習(xí)讀后續(xù)寫微技能之無靈主語
- 9.刷牙洗臉(課件)-一年級(jí)勞動(dòng)教育“小農(nóng)莊”(校本課程)
- 草本霧化行業(yè)分析
- 大學(xué)生勞動(dòng)就業(yè)法律問題解讀智慧樹知到期末考試答案2024年
評(píng)論
0/150
提交評(píng)論