無線傳感器網(wǎng)絡技術與應用:ZigBee版 課件 項目1-3 初識ZigBee無線傳感器網(wǎng)絡、ZigBee無線傳感器網(wǎng)絡入門、了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧_第1頁
無線傳感器網(wǎng)絡技術與應用:ZigBee版 課件 項目1-3 初識ZigBee無線傳感器網(wǎng)絡、ZigBee無線傳感器網(wǎng)絡入門、了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧_第2頁
無線傳感器網(wǎng)絡技術與應用:ZigBee版 課件 項目1-3 初識ZigBee無線傳感器網(wǎng)絡、ZigBee無線傳感器網(wǎng)絡入門、了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧_第3頁
無線傳感器網(wǎng)絡技術與應用:ZigBee版 課件 項目1-3 初識ZigBee無線傳感器網(wǎng)絡、ZigBee無線傳感器網(wǎng)絡入門、了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧_第4頁
無線傳感器網(wǎng)絡技術與應用:ZigBee版 課件 項目1-3 初識ZigBee無線傳感器網(wǎng)絡、ZigBee無線傳感器網(wǎng)絡入門、了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧_第5頁
已閱讀5頁,還剩163頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

無線傳感器網(wǎng)絡技術與應用:ZigBee版項目1初識ZigBee無線傳感器網(wǎng)絡課程標準PPT電子課件參考程序代碼教學視頻資料教材習題參考答案項目目標知識目標技能目標素質(zhì)目標(1)理解ZigBee無線傳感器網(wǎng)絡的定義。(2)掌握ZigBee無線傳感器網(wǎng)絡的系統(tǒng)結構。(3)了解ZigBee無線傳感器網(wǎng)絡的特點及應用。(4)掌握ZigBee無線傳感器網(wǎng)絡協(xié)議棧的選型方法。(1)熟悉BasicRF項目的工作機制。(2)熟悉CC2530建立點對點無線通信的方法。通過導入案例“智慧中國、科學抗疫”,弘揚大國自信、樹立科技興國意識。

思維導圖1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義典型技術標準有Wi-Fi(wirelessfidelity)、藍牙(Bluetooth)、ZigBee、Z-Wave、2G/3G/4G/5G

和NB-loT、eMTC、LoRa、Sigfox

等低功耗廣域網(wǎng)(lowpowerwideareanetwork,LPWAN)技術標準。不同的技術標準對應不同的應用領域。其中,Z-Wave、ZigBee、藍牙和Wi-Fi

主要用于短距離無線通信,而2G/3G/4G/5G無線蜂窩通信和各種LPWAN

技術主要用于長距離無線通信。1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義目前廣泛應用和推廣的是ZigBee協(xié)議體系。它主要用于自動控制和遠程控制領域,可以嵌入各種設備。德州儀器公司已經(jīng)推出了完全兼容該協(xié)議的片上系統(tǒng)(systemonchip,SoC)CCxxxx,同時也開發(fā)了相關的軟件協(xié)議棧Z-Stack。開發(fā)者可以利用上述硬件和軟件資源,搭建自己的無線傳感器網(wǎng)絡。1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義這些信息通過無線方式被發(fā)送,并以多跳自組網(wǎng)方式傳送到用戶終端,從而實現(xiàn)物理世界、信息世界和現(xiàn)實世界的聯(lián)通。與傳統(tǒng)的互聯(lián)網(wǎng)不同,ZigBee無線傳感器網(wǎng)絡實現(xiàn)了信息采集、信息處理和信息傳輸?shù)裙δ埽淖兞巳伺c物理世界交互的方式。1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義目前,國內(nèi)外可提供ZigBee解決方案的公司有美國德州儀器(TexasInstruments,TI)、荷蘭恩智浦半導體(NXPSemiconductors,NXP)、美國芯科實驗室(SiliconLabs)等。1.1Zigbee無線傳感網(wǎng)絡概述1.1.1Zigbee無線傳感器網(wǎng)絡定義表1.1列出了目前國內(nèi)外幾大ZigBee芯片廠商的代表產(chǎn)品信息及協(xié)議棧名稱。1.1Zigbee無線傳感網(wǎng)絡概述1.1.2Zigbee無線傳感器網(wǎng)絡的特點與其他無線通信協(xié)議相比,ZigBee無線傳感器網(wǎng)絡具有協(xié)議復雜度低、資源要求少等特點,具體如下:

1.低功耗

2.低成本

3.時延短

4.數(shù)據(jù)傳輸速率低

5.網(wǎng)絡容量大

6.有效范圍小

7.工作頻段靈活

8.兼容性好

9.安全性高

10.協(xié)議套件緊湊而簡單1.1Zigbee無線傳感網(wǎng)絡概述1.1.2Zigbee無線傳感器網(wǎng)絡的特點1.2Zigbee無線傳感網(wǎng)絡構架1.2.1Zigbee無線傳感器網(wǎng)絡的組成

ZigBee無線傳感器網(wǎng)絡是由PC、網(wǎng)關、路由傳感節(jié)點和傳感器節(jié)點部分四部分組成。1.2Zigbee無線傳感網(wǎng)絡構架1.2.1Zigbee無線傳感器網(wǎng)絡的組成1.PCPC(數(shù)據(jù)管理中心)直接面向用戶,負責從網(wǎng)絡中獲取所需要的信息,同時也可以對網(wǎng)絡做出各種各樣的指示、應用操作等。2.網(wǎng)關網(wǎng)關被用于連接傳感器網(wǎng)絡、互聯(lián)網(wǎng)等外部網(wǎng)絡,各方面能力相對于傳感器節(jié)點來說較強,可實現(xiàn)多種通信協(xié)議之間的轉換;網(wǎng)關還可用于發(fā)布管理節(jié)點的監(jiān)測任務,并把收集的數(shù)據(jù)轉發(fā)到外部網(wǎng)絡。網(wǎng)關可以是一個具有增強功能的傳感器節(jié)點(如協(xié)調(diào)器),有足夠的能量和更多的內(nèi)存與計算機資源;也可以是沒有監(jiān)測功能,僅帶有無線通信接口的特殊網(wǎng)關設備。3.路由傳感節(jié)點路由傳感節(jié)點主要實現(xiàn)路徑選擇和數(shù)據(jù)轉發(fā)功能。1.2Zigbee無線傳感網(wǎng)絡構架1.2.1Zigbee無線傳感器網(wǎng)絡的組成4.傳感器節(jié)點傳感器節(jié)點負責監(jiān)測區(qū)域內(nèi)數(shù)據(jù)的采集和處理。一般的傳感器節(jié)點主要由能量供應模塊、傳感器模塊、處理器模塊、無線通信模塊和嵌入式軟件系統(tǒng)五部分組成。(1)傳感器節(jié)點的組成1.2Zigbee無線傳感網(wǎng)絡構架1.2.1Zigbee無線傳感器網(wǎng)絡的組成

4.傳感器節(jié)點(2)傳感器節(jié)點的設計①睡眠狀態(tài):傳感器模塊關閉,通信模塊關閉,能量消耗最低。②感知狀態(tài):傳感器模塊開啟,通信模塊關閉,節(jié)點感知事件發(fā)生。③偵聽狀態(tài):傳感器模塊開啟,通信模塊空閑。④接收狀態(tài):傳感器模塊開啟,通信模塊接收。⑤發(fā)送狀態(tài):傳感器模塊開啟,通信模塊發(fā)送。⑥長期睡眠狀態(tài):表示該節(jié)點能量處于閥值,不響應任何事件。1.2Zigbee無線傳感網(wǎng)絡構架1.2.1Zigbee無線傳感器網(wǎng)絡的組成4.傳感器節(jié)點(3)傳感器節(jié)點設計時約束條件①電源能量有限。②通信能力有限。③計算和存儲能力有限。1.2Zigbee無線傳感網(wǎng)絡構架1.2.2Zigbee無線傳感器網(wǎng)絡的系統(tǒng)結構

ZigBee無線傳感器網(wǎng)絡根據(jù)不同的情況可以由一個網(wǎng)關、一個或多個路由器、一個或多個傳感器節(jié)點組成。1.2Zigbee無線傳感網(wǎng)絡構架1.2.2Zigbee無線傳感器網(wǎng)絡的系統(tǒng)結構系統(tǒng)大小只受PC軟件觀測數(shù)量、路由深度和網(wǎng)絡最大負載量限制。ZigBee無線傳感器網(wǎng)絡在沒有進行網(wǎng)絡拓撲修改之前支持5級路由、31101個網(wǎng)絡節(jié)點。1.2Zigbee無線傳感網(wǎng)絡構架1.2.3Zigbee無線傳感器網(wǎng)絡的工作流程ZigBee無線傳感器網(wǎng)絡基于ZigBee協(xié)議棧的無線網(wǎng)絡,在網(wǎng)絡設備安裝、架設過程中自動完成。完成網(wǎng)絡的架設后用戶便可以由PC、ARM終端,平板計算機或者手持設備發(fā)出命令讀取網(wǎng)絡中任何設備上掛接的傳感器的數(shù)據(jù),并測試其電壓。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.1概述ZigBee以IEEE802.15.4協(xié)議為基礎,使用全球免費頻段進行通信。傳輸速率分別為250kbit/s、20kbbit/s和40kbit/s。IEEE802.15.4工作組主要負責制定PHY層和MAC層的協(xié)議,其余協(xié)議主要參照和采用現(xiàn)有的標準,高層應用、測試和市場推廣等方面的工作將由ZigBee聯(lián)盟負責。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.2Zigbee無線傳感網(wǎng)絡通信信道分析我國的無線電管理機構是中國無線電管理委員會,其主要負責無線電頻率的劃分、分配與指配,衛(wèi)星軌道位置的協(xié)調(diào)和管理,無線電監(jiān)測、檢測、干擾的查處,協(xié)調(diào)處理電磁干擾事宜和維護空中電波秩序等。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.2Zigbee無線傳感網(wǎng)絡通信信道分析1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.2Zigbee無線傳感網(wǎng)絡通信信道分析一個Zigbee網(wǎng)絡可以根據(jù)ISM頻段、可用性、擁擠狀況和數(shù)據(jù)速率在27個信道中選擇一個工作信道。從能量和成本效率來看,不同的數(shù)據(jù)速率能為不同的應用提供較好的選擇。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.2Zigbee無線傳感網(wǎng)絡通信信道分析ZigBee技術的抗干擾特性主要是抗同頻干擾,即來自共用相同頻段的其他技術的干擾。對于同頻干擾的抵御能力是極為重要的,因為它直接影響到設備的性能。ZigBee在2.4GHz頻段內(nèi)具備強抗干擾能力就意味著能夠可靠地與Wi-Fi、藍牙和Z-Wave共存。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.2Zigbee無線傳感網(wǎng)絡通信信道分析ZigBee無線傳感器網(wǎng)絡的協(xié)調(diào)器首先要掃描所有的信道,然后確認并加入一個合適的PAN,而不是自己去創(chuàng)建一個新PAN,這樣就減少了同頻段PAN的數(shù)量,降低了潛在的干擾。如果干擾源出現(xiàn)在重疊的信道上,協(xié)調(diào)器上層的軟件要應用信道算法選擇一個新的信道。當網(wǎng)絡初始化或響應中斷時,ZigBee設備會先掃描一系列被列入信道表參數(shù)中的信道,以便進行動態(tài)信道選擇。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.3Zigbee無線傳感網(wǎng)絡的網(wǎng)絡標識符ZigBee協(xié)議使用一個16位的個域網(wǎng)絡標識符(PersonalAreaNetworkID,PANID)來標識一個網(wǎng)絡,范圍從0x0000~0xFFFF。在使用ZStack-CC2530-2.5.1a版的協(xié)議中,可通過Tools目錄下f8wConfig.cfg文件里的參數(shù)-DZDAPP_CONFIG_PAN_ID設置PANID。若-DZDAPP_CONFIG_PAN_ID不為0xFFFF時,設備建立或加入網(wǎng)絡的PANID由-DZDAPP_CONFIG_PAN_ID指定;若-

DZDAPP_CONFIG_PAN_ID為0xFFFF,則設備就將建立或加入一個“最優(yōu)”的網(wǎng)絡。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.3Zigbee無線傳感網(wǎng)絡的網(wǎng)絡標識符PANID的出現(xiàn)一般是在確定信道以后,主要區(qū)分不同的ZigBee網(wǎng)絡。一個傳感器網(wǎng)絡中所有節(jié)點的PANID唯一,即一個網(wǎng)絡只有一個PANID。PANID是由PAN協(xié)調(diào)器生成的,為可選配置項,用來控制ZigBee路由器和終端節(jié)點要加入哪個網(wǎng)絡。f8wConfg.cfg文件中-DZDAPP_CONFIG_PAN_ID可以設置為0x0000~0x3FFF之間的一個值。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.4Zigbee無線傳感網(wǎng)絡的地址在ZigBee無線傳感器網(wǎng)絡中,節(jié)點有兩個地址。一個是物理(IEEE或擴展)地址,每個CC2530單片機的IEEE在出廠時就已經(jīng)定義好了(當然,在用戶學習階段可能通過編程軟件SmartRFFlashProgrammer修改設備的IEEE地址)。另一個是網(wǎng)絡地址,是在設備加入網(wǎng)絡時,按照一定的算法計算得到,并分配給加入網(wǎng)絡的設備的地址。網(wǎng)絡地址在某個網(wǎng)絡中是唯一的,16位的網(wǎng)絡地址主要有兩個功能:在網(wǎng)絡中標識不同的設備;在網(wǎng)絡數(shù)據(jù)傳輸時指定目的地址。1.3Zigbee無線傳感網(wǎng)絡的通信協(xié)議架構1.3.5Zigbee無線傳感網(wǎng)絡的設備類型Zigbee規(guī)范定義了三種類型的設備。①Zigbee協(xié)調(diào)器是啟動和配置網(wǎng)絡和一種設備。一個Zigbee網(wǎng)絡只允許一個Zigbee協(xié)調(diào)器。②Zigbee路由器是支持關聯(lián)的設備,Zigbee網(wǎng)狀或樹狀網(wǎng)絡可以有多個Zigbee路由器;Zigbee星狀網(wǎng)絡不支持Zigbee路由器。③Zigbee終端設備可以執(zhí)行相關功能,并通過Zigbee無線傳感器網(wǎng)絡與其他設備通信。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構ZigBee支持包含有主從設備的星型、樹型和網(wǎng)狀等拓撲結構。雖然每一個ZigBee設備都有一個唯一的64位的IEEE地址,并可以用這個地址在PAN中進行通信,但在從設備和網(wǎng)絡主協(xié)調(diào)器建立連接后會為它分配一個16位的短地址,此后就可以用這個短地址在PAN內(nèi)進行通信。64位的物理地址是唯一的絕對地址,相當于計算機的MAC地址;而16位的短地址是相對地址,相當于IP地址。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構1.4.1星狀拓撲星狀拓撲是最簡單的一種拓撲形式,包含一個協(xié)調(diào)器和一系列的終端節(jié)點。每一個終端節(jié)點只能和協(xié)調(diào)器進行通信。如果需要在兩個終端節(jié)點之間進行通信則必須通過協(xié)調(diào)器進行信息的轉發(fā)。實現(xiàn)星形網(wǎng)絡拓撲不需要使用ZigBee的網(wǎng)絡層協(xié)議。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構1.4.2樹狀拓撲樹狀拓撲包括一個協(xié)調(diào)器以及一系列的路由器和終端節(jié)點。協(xié)調(diào)器連接一系列的路由器和終端節(jié)點,作為其子節(jié)點的路由器也可以連接一系列的路由器和終端節(jié)點,并可以重復多個層級。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構1.4.2樹狀拓撲需要注意以下幾點。①協(xié)調(diào)器和路由器可以包含自己的子節(jié)點。②終端節(jié)點不能有自己的子節(jié)點。③有同一個父節(jié)點的節(jié)點稱為兄弟節(jié)點。④有同一個祖父節(jié)點的節(jié)點稱為堂兄弟節(jié)點。樹狀拓撲中的通信規(guī)則如下。①每一個節(jié)點都只能與其父節(jié)點和子節(jié)點進行通信。②如果需要從一個節(jié)點向另一個節(jié)點發(fā)送數(shù)據(jù),那么信息將沿著樹的路徑向上傳遞到最近的祖先節(jié)點,然后再向下傳遞到目標節(jié)點。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構1.4.3網(wǎng)狀拓撲網(wǎng)狀拓撲包含一個協(xié)調(diào)器和一系列的路由器和終端節(jié)點。這種網(wǎng)絡拓撲形式和樹狀拓撲相同,可參考上面所提到的樹型網(wǎng)拓撲。但是,網(wǎng)狀拓撲具有更加靈活的信息路由規(guī)則,在可能的情況下,路由節(jié)點之間可以直接通信。這種路由機制使得信息的通信變得更有效率,而且意味著一旦一個路由路徑出現(xiàn)了問題,信息可以自動地沿著其他的路由路徑進行傳輸。1.4Zigbee無線傳感網(wǎng)絡的拓撲結構1.4.3網(wǎng)狀拓撲通常在支持網(wǎng)狀網(wǎng)絡的實現(xiàn)上,網(wǎng)絡層會提供相應的路由探索功能,這一特性使得網(wǎng)絡層可以找到信息傳輸?shù)淖顑?yōu)化路徑。需要注意的是,以上所提到的特性都由網(wǎng)絡層來實現(xiàn),應用層不需要進行任何參與。網(wǎng)狀拓撲結構的網(wǎng)絡具有強大的功能,可以通過“多跳”的方式來通信。網(wǎng)絡拓撲結構還可以組成極為復雜的網(wǎng)絡,這種網(wǎng)絡具備自組織和自愈功能。采用星型和樹型網(wǎng)絡拓撲結構適合點對點、距離相對較近的應用,而采用網(wǎng)狀拓撲的網(wǎng)絡主要適用于廣域網(wǎng),它是網(wǎng)絡協(xié)議中最復雜且成本最高的一種網(wǎng)絡結構。1.5Zigbee無線傳感網(wǎng)絡的應用1.5.1環(huán)境監(jiān)測環(huán)境監(jiān)測是ZigBee無線傳感器網(wǎng)絡最基本的應用之一。由于人力資源有限,無法時刻關注環(huán)境變化。在這種情況下,可以將大量廉價的傳感器節(jié)點部署于感興趣的環(huán)境中,實時收集相關數(shù)據(jù)信息感知環(huán)境變化。常見的環(huán)境監(jiān)測場景有水污染監(jiān)測、空氣質(zhì)量監(jiān)測、精細農(nóng)業(yè)操作與動物生活習性監(jiān)測等。由于環(huán)境監(jiān)測系統(tǒng)對信息傳輸?shù)难舆t要求不高,設計系統(tǒng)面臨的主要問題是,如何在保證應用需求的情況下調(diào)度節(jié)點最大化網(wǎng)絡壽命。1.5Zigbee無線傳感網(wǎng)絡的應用1.5.2智能家居通過在家電中嵌入傳感器節(jié)點,可以將屋內(nèi)所有的設備聯(lián)系在一起組成傳感器網(wǎng)絡,從而為人們提供更加舒適方便的智能家居環(huán)境。如何實現(xiàn)多設備互連是智能家居應用中面臨的主要設計問題。1.5Zigbee無線傳感網(wǎng)絡的應用1.5.3醫(yī)療護理將傳感器節(jié)點安裝在老年人或者病人的身體上,實時匯報他們的身體狀態(tài)信息,醫(yī)生便可以遠程了解病人的實時狀況,并采取相應的醫(yī)療措施。ZigBee無線傳感器網(wǎng)絡將有效地解決醫(yī)療資源匱乏的問題,降低醫(yī)療成本,在老齡化日益嚴重的今天發(fā)揮越來越重要的作用。設計適合采集身體狀況數(shù)據(jù)的節(jié)點與建立有效的醫(yī)療系統(tǒng)是醫(yī)療護理應用面臨的主要問題。1.5Zigbee無線傳感網(wǎng)絡的應用1.5.4目標跟蹤與定位在傳感器網(wǎng)絡中,節(jié)點的感知范圍有限,只有目標附近的節(jié)點能夠感知目標,遠離目標的節(jié)點無法提供有效的信息。因此,通過喚醒目標附近的節(jié)點,休眠遠離目標的節(jié)點可以節(jié)省節(jié)點能耗,延長網(wǎng)絡壽命。同時,由于節(jié)點資源有限,單個節(jié)點無法準確估計目標位置,從而要求多節(jié)點協(xié)作共同跟蹤目標。如何能有效地調(diào)度節(jié)點跟蹤目標的同時實時匯報目標位置到基站,是目標跟蹤與定位應用面臨的主要問題。1.6軟件資源1.6.1Zigbee協(xié)議棧選型常見的ZigBee協(xié)議棧分非開源的協(xié)議棧、半開源的協(xié)議棧和開源的協(xié)議棧三種。1.非開源的協(xié)議棧常見的非開源的協(xié)議棧的解決方案包括Freescale解決方案和Microchip解決方案。Freescale解決方案中最簡單的ZigBee解決方案就是SMAC協(xié)議,是面向簡單的點對點應用,不涉及網(wǎng)絡的概念。Microchip解決方案提供的ZigBee協(xié)議棧為ZigBeePRO和ZigBeeRF4CE,均是完整的協(xié)議棧,但收費較高。1.6軟件資源1.6.1Zigbee協(xié)議棧選型2.半開源的協(xié)議棧TI公司開發(fā)的是一個半開源的ZigBee協(xié)議?!猌-Stack。它支持ZigBee和ZigBeePRO棧,并向后兼容ZigBee2006和ZigBee2004。Z-Stack內(nèi)嵌了OSAL操作系統(tǒng),使用標準的C語言代碼和IAR開發(fā)平臺,比較容易學習,是一款適合工業(yè)級應用的免費協(xié)議棧。1.6軟件資源1.6.1Zigbee協(xié)議棧選型1.6軟件資源1.6.1Zigbee協(xié)議棧選型3.開源的協(xié)議棧Freakz是一個徹底開源的ZigBee協(xié)議棧,配合Contiki操作系統(tǒng),Contiki的代碼全部由C語言編寫,對于初學者來說比較容易上手。Freakz適合用于學習,對于工業(yè)應用,還是Z-Stack比較適用。根據(jù)應用需求,本書選用TI公司提供的Z-Stack協(xié)議棧和IAR平臺作為軟件工具進行二次開發(fā)。1.6軟件資源1.6.1Zigbee協(xié)議棧選型開源即單擊該函數(shù)的右鍵,選擇“Gotodefinitionof函數(shù)名稱”,能夠跳轉到源函數(shù)定義,查看源程序。1.6軟件資源1.6.2IAR集成環(huán)境的安裝1.ZigBee開發(fā)環(huán)境簡介本書選用IAREmbeddedWorkbench作為ZigBee的開發(fā)環(huán)境。目前IAREmbeddedWorkbench已經(jīng)支持35種以上的8位/16位/32位的微處理器結構。1.6軟件資源1.6.2IAR集成環(huán)境的安裝2.ZigBee開發(fā)環(huán)境的安裝IAREmbeddedWorkbench的安裝如同Windows操作系統(tǒng)其他軟件一樣,單擊EW8051-EV-Web-8101.exe進行安裝。1.6軟件資源1.6.3仿真器驅動程序的安裝1.自動安裝仿真器的驅動程序成功安裝IAR軟件后,由于IAR的安裝軟件中含有仿真器的驅動,所以連接仿真器與PC后可以自動安裝仿真器的驅動程序。1.6軟件資源1.6.3仿真器驅動程序的安裝2.手動安裝仿真器的驅動程序如果向導未能自動搜索到驅動文件,驅動程序可以在IAR的安裝文件中找到。選擇“瀏覽我的計算機以查找驅動程序軟件(R)”選項。1.7軟件應用1.7.1IAR的使用1.新建一個工程打開IAREmbeddedWorkbench軟件,選擇“Project”→“CreateNewProject”命令。1.7軟件應用1.7.1IAR的使用2.參數(shù)設置選擇“Project”→“Options”選項。1.7軟件應用1.7.1IAR的使用2.參數(shù)設置(1)GeneralOptions設置

將“GeneralOptions”→“Target”選項中的“Device”選擇為CC2530F256。1.7軟件應用1.7.1IAR的使用2.參數(shù)設置(2)Debugger設置。在“Debugger”菜單的“Setup”選項卡中,“Driver”選項選擇“TexasInstruments”。1.7軟件應用1.7.1IAR的使用3.第一個項目新建一個C文件,選擇New菜單中的“File”選項并保存。1.7軟件應用1.7.1IAR的使用3.第一個項目1.7軟件應用1.7.1IAR的使用3.第一個項目一個模塊中包含兩個文件,一個是h文件,另一個是c文件。h文件是一個接口描述文件,其文件內(nèi)部一般不包含任何實質(zhì)性的函數(shù)代碼,主要對外提供接口函數(shù)或接口變量。h文件的構成原則是:外界不該知道的信息就不應該出現(xiàn)在h文件里,而供外界調(diào)用的模塊內(nèi)部接口函數(shù)或接口變量所必需的信息就一定要出現(xiàn)在h文件里。c文件的主要功能是對h文件中聲明的外部函數(shù)進行具體實現(xiàn),對具體實現(xiàn)方式?jīng)]有特殊規(guī)定,只要能實現(xiàn)其函數(shù)功能即可。1.7軟件應用1.7.1IAR的使用4.IAR中標記行號和字體IAR中可以設置字體大小、關鍵字的顏色及行號顯示。選擇“tools”菜單中的“Options”選項進入設置。在“tools”菜單的“Options”選項中,“Editor”勾選“Showlinenumber”便可以顯示行號。1.7軟件應用1.7.1IAR的使用4.IAR中標記行號和字體在“tools”菜單“Options”選項的“EditorColorsandFonts”中便可以設置字體,1.7軟件應用1.7.2協(xié)議棧的安裝從TI官方網(wǎng)站上下載ZStack-CC2530-2.5.1a.exe,進行協(xié)議棧的安裝。協(xié)議棧GenericApp實現(xiàn)設備互相綁定傳送信息(helloworld);SampleApp主要實現(xiàn)設備發(fā)送和接收LED燈信息;SimpleApp主要實現(xiàn)溫度和燈開關,和智能家居結合使用的haveProfile。1.7軟件應用1.7.2協(xié)議棧的安裝打開SampleApp工程文件,其文件布局中有許多文件夾,如App、HAL、MAC等,這些文件夾對應著ZigBee協(xié)議中不同的層。1.7軟件應用1.7.2協(xié)議棧的安裝1.App文件夾使用ZigBee協(xié)議棧進行應用程序的開發(fā)時一般只需要修改App文件夾下的文件。用戶編寫的應用程序源代碼一般放在APP文件夾下。1.7軟件應用1.7.2協(xié)議棧的安裝2.HAL文件夾Commmon目錄下的文件是公用文件,基本上與硬件無關,其中hal_assert.c是測試文件,用于調(diào)試;hal_drivers.c是驅動文件,抽象出與硬件無關的驅動函數(shù),包含有與硬件相關的配置和驅動及操作函數(shù)。Includ目錄下主要包含各個硬件模塊的頭文件。Target目錄下的文件是跟硬件相關的,有CC2530DB平臺和CC2530EB兩個平臺。DB和EB表示TI公司開發(fā)板的型號。1.7軟件應用1.7.2協(xié)議棧的安裝3.MAC文件夾HighLevel和LowLevel兩個目錄分別表示MAC層的高層和底層。Include目錄下包含MAC層的參數(shù)配置文件及基MAC的LIB庫函數(shù)接口文件,這里MAC層的協(xié)議是不開源的,以庫的形式給出。1.7軟件應用1.7.2協(xié)議棧的安裝4.MT文件夾MT文件夾下的文件主要用于調(diào)試,即過串口調(diào)試各層,與各層進行直接交互。1.7軟件應用1.7.2協(xié)議棧的安裝5.NWK文件夾NWK文件夾包含網(wǎng)絡層參數(shù)文件、網(wǎng)絡層庫的函數(shù)接口文件,以及APS層庫的函數(shù)接口。1.7軟件應用1.7.2協(xié)議棧的安裝6.OSAL文件夾OSAL指操作系統(tǒng)抽象層,主要實現(xiàn)Z-Stack協(xié)議棧的操作系統(tǒng)對硬件的管理和封裝。1.7軟件應用1.7.2協(xié)議棧的安裝7.Profile文件夾Profile文件夾下包含AF(應用框架)層處理函數(shù)接口文件,如開發(fā)常用到的數(shù)據(jù)的收、發(fā)及終端管理等函數(shù)。1.7軟件應用1.7.2協(xié)議棧的安裝8.Security文件夾Security文件夾下包含安全層處理函數(shù)接口文件。1.7軟件應用1.7.2協(xié)議棧的安裝9.Services文件夾Services文件包括地址模式的定義及地址處理函數(shù)。1.7軟件應用1.7.2協(xié)議棧的安裝10.Tools文件夾Tools文件包括空間劃分及Z-Stack相關配置信息。1.7軟件應用1.7.2協(xié)議棧的安裝10.Tools文件夾注意:灰色表示在當前工作空間(workspace)中不參加編譯。其設置方法是選擇相應的文件,然后單擊鼠標右鍵,選擇“Options”出現(xiàn)的界面,勾選“Excludeformbuild”。1.7軟件應用1.7.2協(xié)議棧的安裝11.ZDO文件夾ZDO(ZigBee設備對象)是一種公共的功能集,方便用戶用自定義的對象調(diào)用APS層和NWK層的服務。1.7軟件應用1.7.2協(xié)議棧的安裝12.ZMac文件夾ZMac文件夾提供了Z-Stack中關于MAC操作的接口函數(shù);zmac.c是Z-StackMAC層導出層接口文件,zmac_cb.c是ZMAC需要調(diào)用的網(wǎng)絡層函數(shù)。1.7軟件應用1.7.2協(xié)議棧的安裝13.ZMain文件夾ZMain文件夾下,ZMain.c主要包含了整個項目的入口函數(shù)main(),在OnBoard.c中包含對硬件開發(fā)平臺各類外設進行控制的接口函數(shù)。1.7軟件應用1.7.2協(xié)議棧的安裝14.Output文件夾Output文件是IDE自動生成的。協(xié)議棧提供EndDeviceEB(終端設備)、CoordinatorEB(協(xié)調(diào)器設備)和RouterEB(路由設備)等設備工作空間。1.7軟件應用1.7.2協(xié)議棧的安裝協(xié)議棧布局窗口中出現(xiàn)“*”只表示文件沒有保存,文件保存后就不會出現(xiàn)“*”標記。1.7軟件應用1.7.3

協(xié)議棧中文件的移除和增加ZigBee協(xié)議棧實現(xiàn)了ZigBee協(xié)議,該協(xié)議棧為用戶提供了API函數(shù)接口,在開發(fā)過程中用戶不必去關心ZigBee協(xié)議是怎么實現(xiàn)的,只需關心程序的數(shù)據(jù)從哪里來然后到哪里去。1.7軟件應用1.7.4

協(xié)議棧的基本操作1.查看函數(shù)或者宏定義Z-Stack是TI公司提供的半開放的ZigBee協(xié)議棧,對于開發(fā)使用者來說一般只要關心APP文件夾下的文件即可。用戶自己編寫的驅動等文件也是要放到這個文件夾下的。關于App文件夾下的主執(zhí)行文件,需要關注的就是SampleApp.c或者Enddevice.c文件及ZMain.c文件,ZMain.c主要用于初始化,而SampleApp.c或者Enddevice.c文件里面就包含了用戶要做的事情。1.7軟件應用1.7.4

協(xié)議棧的基本操作1.查看函數(shù)或者宏定義打開OSALSampleApp.c文件找到SampleApp_ProcessEvent定義的宏,它規(guī)定了SampleApp事件。我們要查找一個函數(shù)或者宏定義的出處時,可以先選擇要查找的內(nèi)容,選擇“Gotodefinitionof...”就可以直接找到其定義之處了。1.7軟件應用1.7.4

協(xié)議棧的基本操作2.信道選擇和修改網(wǎng)絡ID號①f8w2530.cxl:該文件包含了CC2530單片機的鏈接控制指令,包括堆棧的大小、內(nèi)存分配等,一般情況下我們不需要修改。1.7軟件應用1.7.4

協(xié)議棧的基本操作2.信道選擇和修改網(wǎng)絡ID號②f8wConfig.cfg:該文件包含了信道選擇、網(wǎng)絡ID號等有關的鏈接命令。例如,我們的信道默認為-DDEFAULT_CHANLIST=0x00000800//11-0x0B,建立網(wǎng)絡ID的默認ID為-DZDAPP_CONFIG_PAN_ID=0xFFFF,需要建立不同的網(wǎng)絡信道及網(wǎng)絡ID時就可以在這里修改。③f8wCoord.cfg:配置無線網(wǎng)絡中的協(xié)調(diào)器設備類型及CPU的運行頻率。例如,下面的代碼就定義了該設備具有協(xié)調(diào)器和路由器的功能。1.7軟件應用1.7.4

協(xié)議棧的基本操作2.信道選擇和修改網(wǎng)絡ID號④f8wEndev.cfg:配置無線網(wǎng)絡中的終端節(jié)點CPU的運行頻率及MAC設定。⑤f8wRouter.cfg:配置無線網(wǎng)絡中的路由設備的CPU運行頻率、MAC設定、路由設定等。1.7軟件應用1.7.4

協(xié)議棧的基本操作3.設置ZigBee網(wǎng)絡的拓撲結構在ZigBee協(xié)議棧的NWK目錄中的nwk_globals.h文件中,找到NWK_MODE的設置模式,將NWK_MODE_MESH改成NWK_MODE_STAR。NWK_MODE_MESH代表網(wǎng)狀網(wǎng),NWK_MODE_STAR代表星狀網(wǎng),NWK_MODE_TREE代表樹狀網(wǎng),這里將網(wǎng)絡設置為最簡單、最穩(wěn)定的星狀網(wǎng)。項目小結①ZigBee無線傳感器網(wǎng)絡是大量的傳感器節(jié)點以自組織或者多跳的方式構成的無線網(wǎng)絡。②傳感器負責在傳感器網(wǎng)絡中感知和采集數(shù)據(jù),它處于ZigBee無線傳感器網(wǎng)絡的感知層,是識別物體、采集信息的設備。③ZigBee無線傳感器網(wǎng)絡由PC、網(wǎng)關、路由節(jié)點和傳感節(jié)點四部分組成。④ZigBee無線傳感器網(wǎng)絡的主要軟件協(xié)議棧由物理層(PHY層)、介質(zhì)訪問控制層(MAC層)、網(wǎng)路層(NWK層)和應用層(APL層)組成。謝謝聆聽!無線傳感器網(wǎng)絡技術與應用:ZigBee版項目2ZigBee無線傳感器網(wǎng)絡入門課程標準PPT電子課件參考程序代碼教學視頻資料教材習題參考答案項目目標知識目標技能目標素質(zhì)目標(1)掌握ZigBee無線傳感器模塊的芯片選型。(2)掌握ZigBee無線傳感器模塊的硬件資源。(1)熟悉BasicRF組網(wǎng)實現(xiàn)數(shù)據(jù)采集的方法。(2)熟悉使用CC2530建立無線串口通信的方法。通過導入案例“傳感器故障引發(fā)空難事件”,培養(yǎng)嚴謹?shù)目茖W態(tài)度。

思維導圖隨著現(xiàn)代微電子、微機電系統(tǒng)(Micro-Electro-MechanicalSystem,MEMS)、SoC、納米材料、無線通信技術、信號處理技術、計算機網(wǎng)絡技術等的進步以及互聯(lián)網(wǎng)的迅速發(fā)展,傳感器信息獲取技術從獨立的單一化模式向集成化、微型化,進而向智能化、網(wǎng)絡化方向發(fā)展,成為信息獲取最重要和最基本的技術之一。2.1需求分析2.1.1各層功能簡介根據(jù)物聯(lián)網(wǎng)的服務類型和節(jié)點等情況,物聯(lián)網(wǎng)的體系結構主要由物理層、媒體接入控制層、網(wǎng)絡/安全層和應用層組成。2.1需求分析2.1.1各層功能簡介1.物理層物理層定義了無線信息和MAC子層之間的接口,提供物理層數(shù)據(jù)服務和物理層管理服務,主要是在驅動程序的基礎上,實現(xiàn)數(shù)據(jù)傳輸和管理。物理層數(shù)據(jù)服務從無線信道上收發(fā)數(shù)據(jù),管理服務包括信道能量監(jiān)測(EnergyDetection,ED)、鏈接質(zhì)量指示(LinkQualilyIndicator,LQI)、載波檢測(CarrierSense,CS)和空閑信道評估(ClearChannelAssessment,CCA)等,維護一個由物理層相關數(shù)據(jù)組成的數(shù)據(jù)庫。2.1需求分析2.1.1各層功能簡介2.介質(zhì)訪問控制層介質(zhì)訪問控制層提供了MAC層數(shù)據(jù)服務和MAC層管理服務。前者保證MAC層協(xié)議數(shù)據(jù)單元在物理層數(shù)據(jù)服務中的正確收發(fā),而后者從事MAC層的管理活動,并維護一個信息數(shù)據(jù)庫。2.1需求分析2.1.1各層功能簡介3.網(wǎng)絡/安全層網(wǎng)絡/安全層負責設備加入和退出網(wǎng)絡,申請安全結構、路由管理,在設備之間發(fā)現(xiàn)和維護路由,發(fā)現(xiàn)鄰設備、存儲鄰設備信息。2.1需求分析2.1.1各層功能簡介4.應用層應用層包括應用支持子層(ApplicationSupportLayer,APS)和ZigBee設備對象(ZigBeeDeviceObject,ZDO)。其中,APS負責維持綁定表,在綁定的設備之間傳送消息;而ZDO定義設備在網(wǎng)絡中的角色,發(fā)起和響應綁定請求,在網(wǎng)絡設備之間建立安全機制。2.1需求分析2.1.2最低需求估算①硬件需要8位處理器,如80C51。②軟件需要32KB的ROM,最小軟件需要4KB的ROM,如CC2430芯片具有8051內(nèi)核、內(nèi)存可選擇從32~128KB的ZigBee無線單片機系統(tǒng)。③網(wǎng)絡主節(jié)點需要更多的RAM,以容納網(wǎng)絡內(nèi)所有節(jié)點的設備信息、數(shù)據(jù)包轉發(fā)表、設備關聯(lián)表以及與安全有關的密鑰存儲等。2.2核心板硬件資源2.2.1節(jié)點芯片選型單片機按照CPU處理數(shù)據(jù)的位寬可分為4位、8位、16位和32位單片機。其中8位單片機由于內(nèi)部構造簡單、體格小、成本低等優(yōu)勢,應用最為廣泛。4位單片機主要應用于工業(yè)控制領域,隨著工藝的發(fā)展,由于性能較低,逐步退出市場。而16位和32位單片機雖然性能比8位單片機強得多,但由于成本和應用場合的限制,尤其是近年來ARM嵌入式技術的發(fā)展,導致它的應用不如8位單片機那么廣泛。而16位和32位單片機主要應用于視頻采集、圖形處理等方面。目前,在物聯(lián)網(wǎng)領域應用較為廣泛的有TI公司的MSP430系列,Atmel公司的AVR系列、51系列,Microchip公司的AVR系列、51系列、PIC系列等。除了單片機含有的外設和數(shù)量存在一定的差異外,處理器核的差異是體現(xiàn)這些單片機性能差異的主要原因。本系統(tǒng)采用TI公司的8位單片機CC2530作為核心芯片進行闡述。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介CC2530是用于IEEE802.15.4ZigBee和RF4CE應用的一個真正的SoC解決方案。它能夠以非常低的總材料成本建立強大的網(wǎng)絡節(jié)點。CC2530結合了領先的RF收發(fā)器的優(yōu)良性能、業(yè)界標準的增強型8051CPU、系統(tǒng)內(nèi)可編程閃存及8KBRAM和許多其他強大的功能。CC2530有4種不同的閃存版本即CC2530F32/64/128/256,分別具有32/64/128/256KB的閃存。CC2530具有不同的運行模式,尤其適應超低功耗要求的系統(tǒng),運行模式之間的轉換時間短,進一步確保了低能源消耗。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介模塊大致可以分為三類:CPU和內(nèi)存相關的模塊,外設、時鐘和電源管理相關的模塊,以及無線電相關的模塊。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(1)CPU和內(nèi)存CC2530芯片系列中使用的8051CPU內(nèi)核是一個單周期的8051兼容內(nèi)核。它有三種不同的內(nèi)存訪問總線:特殊功能寄存器(SpecialFunctionRegister,SFR)、數(shù)據(jù)(DATA)和代碼/外部數(shù)據(jù)(CODE/XDATA)。它包括一個調(diào)試接口和一個18輸入擴展中斷單元。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(1)CPU和內(nèi)存內(nèi)存仲裁器位于系統(tǒng)中心,因為它通過SFR總線把CPU和DMA控制器和物理存儲器以及所有外設連接起來。內(nèi)存仲裁器有4個內(nèi)存訪問點,每次訪問可以映射3個物理存儲器之一:8-KBSRAM、閃存存儲器和XREG/SFR寄存器。它負責執(zhí)行仲裁,并確定同時訪問同一個物理存儲器之間的順序。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(2)時鐘和電源管理數(shù)字內(nèi)核和外設由一個1.8V低差穩(wěn)壓器供電。它提供了電源管理功能,可以實現(xiàn)使用不同供電模式的長電池壽命的低功耗運行。CC2530有5種不同的復位源來復位設備。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(3)外設CC2530包括許多不同的外設,允許應用程序設計者開發(fā)先進的應用。調(diào)試接口執(zhí)行1個專有的兩線串行接口,用于內(nèi)電路調(diào)試。通過這個調(diào)試接口,可以執(zhí)行整個閃存存儲器的擦除、控制哪個振蕩器、停止和開始執(zhí)行用戶程序、執(zhí)行8051內(nèi)核提供的指令、設置代碼斷點,以及內(nèi)核中全部指令的單步調(diào)試。使用這些技術,可以很好地執(zhí)行內(nèi)電路的調(diào)試和外部閃存的編程。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(3)外設定時器1是一個16位定時器,具有定時器/PWM功能。MAC定時器(定時器2)是專門為支持IEEE802.15.4MAC或軟件中其他時槽的協(xié)議設計。定時器3和定時器4是8位定時器,具有定時器/計數(shù)器/PWM功能。睡眠定時器在除了供電模式3的所有工作模式下不斷運行。這一定時器的典型應用是作為實時計數(shù)器,或作為一個喚醒定時器跳出供電模式1或2。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(3)外設ADC支持7~12位的分辨率,帶寬頻率為30kHz或4kHz。DC和音頻轉換可以使用高達8個輸入通道(端口0),輸入可以選擇作為單端或差分。參考電壓可以是內(nèi)部電壓、AVDD或是一個單端或差分外部信號。ADC還有一個溫度傳感輸入通道。ADC可以自動執(zhí)行定期抽樣或轉換通道序列的程序。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(3)外設串口1(USART0)和串口2(USART1)每個被配置為一個SPI主/從或一個UART。它們?yōu)镽X和TX提供了雙緩沖,以及硬件流控制,因此非常適合于高吞吐量的全雙工應用,每個都有自己的高精度波特率發(fā)生器,可以將普通定時器空閑出來用作其他用途。2.2核心板硬件資源2.2.2核心板硬件資源1.CC2530簡介(4)無線電CC2530具有一個IEEE802.15.4兼容無線收發(fā)器。RF內(nèi)核控制模擬無線模塊。另外,它提供了MCU和無線設備之間的一個接口,從而可以發(fā)出命令、讀取狀態(tài),自動操作和確定無線設備事件的順序。無線設備還包括一個數(shù)據(jù)包過濾和地址識別模塊。2.2核心板硬件資源2.2.2核心板硬件資源2.選型參考功能配置CC2530CC2531CC25332.4GHzIEEE802.15.4標準射頻收發(fā)器有有有射頻調(diào)制模式DSSSDSSS

最大可編程輸出功率+4.5dBmW+4.5dBmW+4.5dBmW內(nèi)置FLASH空間(Byte)32k/64k/128k/256128k/256k32k/64k/96k內(nèi)置RAM空間8k4k/6kUSB接口(FULLSPEED)無有無ADC有無電池低電壓監(jiān)控不支持支持I2C不支持支持待機消耗電流(UA)1<1封裝QFN40QFN40QFN40IEEE802.15.4支持支持支持標準RF4CE協(xié)議棧支持支持支持標準TIMAC協(xié)議棧支持支持支持標準SimpliciTI協(xié)議棧支持支持支持標準Z-Stack協(xié)議棧支持支持不支持2.2核心板硬件資源2.2.3底板硬件資源1.底板電源電路設計GECCC2530F256節(jié)點考慮兩種供電方式:AA電池供電和USB供電。兩節(jié)AA電池電壓為3V,因而節(jié)點不需要專門的升壓/降壓芯片為IC供電。USB供電方式的電壓為4.5~5V,節(jié)點采用TI公司的TPS60211升壓為其他IC提供3.3V電壓。TPS60211輸出電流可達400mA,輸出100mA時所需最低壓降為120mV。2.2核心板硬件資源2.2.3底板硬件資源2.LED電路設計LED主要用于指示電路的工作狀態(tài),如加入網(wǎng)絡、網(wǎng)絡信號良好、正在傳輸數(shù)據(jù)等信息。2.2核心板硬件資源2.2.3底板硬件資源3.傳感電路設計GECCC2530F256節(jié)點的傳感器包括溫濕度傳感器和光敏電阻、溫敏電阻。溫濕度傳感器采用AOSONG公司的DHT11。DHT11將溫度檢測、濕度檢測、信號轉換、A/D轉換和加熱等功能集成到一個芯片上。2.2核心板硬件資源2.2.3底板硬件資源4.按鍵電路設計按鍵應用人機交互方法,主要用于復位功能、燈的開關等功能的實現(xiàn)。項目小結①ZigBee是一種短距離的無線通信技術,其應用系統(tǒng)由硬件和軟件組成。②單片機按照CPU處理數(shù)據(jù)的位寬可分為4位、8位、16位和32位機。其中,8位單片機由于內(nèi)部構造簡單、體格小、成本低等優(yōu)勢,應用最為廣泛;4位單片機主要應用于工業(yè)控制領域,隨著工藝的發(fā)展,由于性能較低,逐步退出市場;而16位和32位單片機主要應用于視頻采集、圖形處理等方面。

③CC2530芯片系列中使用的8051CPU內(nèi)核是一個單周期的8051兼容內(nèi)核。它有3種不同的內(nèi)存訪問總線:特殊功能寄存器(SFR)、數(shù)據(jù)(DATA)和代碼/外部數(shù)據(jù)(CODE/XDATA)。謝謝聆聽!無線傳感器網(wǎng)絡技術與應用:ZigBee版項目三

了解ZigBee無線傳感器網(wǎng)絡協(xié)議棧課程標準PPT電子課件參考程序代碼教學視頻資料教材習題參考答案項目目標知識目標技能目標素質(zhì)目標(1)掌握ZigBee無線傳感器協(xié)議棧和協(xié)議的區(qū)別等知識。(2)掌握Z-Stack協(xié)議棧的OSAL分配機制。(3)了解Z-Stack協(xié)議棧的OSAL運行機制。(4)掌握Z-Stack協(xié)議棧的OSAL常用函數(shù)。(1)掌握Z-Stack協(xié)議棧的添加新任務的方法。(2)掌握Z-Stack協(xié)議棧的添加新事件的方法。通過導入案例“突破‘卡脖子’勢在必行”,培養(yǎng)創(chuàng)新精神。

思維導圖在ZigBee無線傳感器網(wǎng)絡工程的實際開發(fā)過程中,應借助TI提供的協(xié)議棧中例程SampleApp,根據(jù)需要完成的功能,通過查看支持Z-Stack協(xié)議棧的硬件電路圖,以及查閱各種文件,如CC2530的數(shù)據(jù)手冊、Z-Stack協(xié)議棧說明、Z-Stack協(xié)議棧API函數(shù)使用說明等,進行協(xié)議棧的修改。最后使用燒錄器下載到相應的硬件中,實現(xiàn)ZigBee無線傳感器網(wǎng)絡的組建。3.1Z-Stack協(xié)議棧3.1.1協(xié)議與協(xié)議棧協(xié)議定義的是一系列的通信標準,通信雙方需要共同按照這一標準進行正常的數(shù)據(jù)收發(fā)。協(xié)議棧是協(xié)議的具體實現(xiàn)形式,可通俗地理解為代碼實現(xiàn)的函數(shù)庫,以便于開發(fā)人員調(diào)用。3.1Z-Stack協(xié)議棧3.1.1協(xié)議與協(xié)議棧ZigBee的協(xié)議分為兩部分,IEEE802.15.4定義了物理層和數(shù)據(jù)鏈路層技術規(guī)范,ZigBee聯(lián)盟定義了網(wǎng)絡層、安全層和應用層技術規(guī)范,ZigBee協(xié)議棧就是將各層定義的協(xié)議都集合在一起,以函數(shù)的形式實現(xiàn),并提供一些應用層API供用戶調(diào)用。3.1Z-Stack協(xié)議棧3.1.2使用Z-Stack協(xié)議棧傳輸SampleApp.c中定義了發(fā)送函數(shù)staticvoidampleApp_SendTheMessage(void)。該函數(shù)通過調(diào)用AF_DataRequest函數(shù)來發(fā)送數(shù)據(jù)。AF_DataRequest函數(shù)定義在Profile目錄下的AF.c文件中。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.1物理層物理層(PHY)定義了無線信道和MAC子層之間的接口,提供物理層數(shù)據(jù)服務和物理層管理服務,主要是在驅動程序的基礎上,實現(xiàn)數(shù)據(jù)傳輸和管理。物理層數(shù)據(jù)服務從無線物理信道上收發(fā)數(shù)據(jù),管理服務包括信道能量監(jiān)測(ED)、鏈接質(zhì)量指示(LQI)、載波檢測(CS)和空閑信道評估(CCA)等,維護一個由物理層相關數(shù)據(jù)組成的數(shù)據(jù)庫。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.2質(zhì)訪問控制層介質(zhì)訪問控制層(MAC)提供點對點通信的數(shù)據(jù)確認以及一些用于網(wǎng)絡發(fā)現(xiàn)和網(wǎng)絡形成的命令,但是介質(zhì)訪問控制層不支持多跳、網(wǎng)型網(wǎng)絡等概念。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層網(wǎng)絡層(NWK)主要負責設備加入和退出網(wǎng)絡、路由管理,在設備之間發(fā)現(xiàn)和維護路由,發(fā)現(xiàn)鄰設備,存儲鄰設備信息等。

1.地址類型每一個ZigBee設備有一個64位IEEE地址,即MAC地址,跟網(wǎng)卡MAC一樣,是全球唯一的。但在實際網(wǎng)絡中,為了方便,通常用16位的短地址來標識自身和識別對方,也稱為網(wǎng)絡地址。對于協(xié)調(diào)器來說,短地址為0000H;對于路由器和終端設備來說,短地址是由它們所在網(wǎng)絡中的協(xié)調(diào)器分配的。

2.網(wǎng)絡地址分配網(wǎng)絡地址分配由網(wǎng)絡中的協(xié)調(diào)器來完成,為了讓網(wǎng)絡中的每一個設備都有唯一的網(wǎng)絡地址(短地址),它要按照事先配置的參數(shù),并遵循一定的算法來分配。這些參數(shù)是MAX_DEPTH、MAX_ROUTERS和MAX_CHILDREN。MAX_DEPTH決定了網(wǎng)絡的最大深度。MAX_CHILDREN決定了一個路由器或者一個協(xié)調(diào)器節(jié)點可以連接的子節(jié)點的最大個數(shù)。MAX_ROUTERS決定了一個路由器或者一個協(xié)調(diào)器可以處理的具有路由功能的子節(jié)點的最大個數(shù)。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

3.Z-Stack尋址

向ZigBee節(jié)點發(fā)送數(shù)據(jù)時,通常使用AF_DataRequest()函數(shù)。該函數(shù)需要一個afAssr-Type_t類型的目標地址作為參數(shù)。

typedefstruct{union{uint16shortAddr;}addr;afAddrMode_taddrMode;byteendpoint;}afAddrType_t;這里,除了網(wǎng)絡地址(短地址)和端點外,還要指定地址模式參數(shù)。地址模式參數(shù)可以設置為以下幾個值。typedefenum{afAddrNotPresent=AddrNotPresent;afAddr16Bit=Addr16Bit;afAddrGroup=AddrGroup;afAddrBroadcast=AddrBroadcast}afAddrMode_t;3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

3.Z-Stack尋址在ZigBee協(xié)議棧中,數(shù)據(jù)包可以單點傳送(unicast)、多點傳送(multicast)或者廣播傳送,所以必須有地址模式參數(shù)。一個單點傳送數(shù)據(jù)包只發(fā)送給一個設備,多點傳送數(shù)據(jù)包則要傳送給一組設備,而廣播數(shù)據(jù)包則要發(fā)送給整個網(wǎng)絡中的所有節(jié)點。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

3.Z-Stack尋址(1)單點傳送單點傳送是標準尋址模式,它將數(shù)據(jù)包發(fā)送給一個已經(jīng)知道網(wǎng)絡地址的網(wǎng)絡設備。此時應將地址模式設置為Addr16Bit,并且在數(shù)據(jù)包中攜帶目標設備地址。(2)多點傳送當應用程序不知道數(shù)據(jù)包的目標設備在哪里時,將地址模式設置為AddrNotPresent。Z-Stack底層將自動從棧的綁定表中查找目標設備的具體網(wǎng)絡地址,這種特點稱為源綁定。如果在綁定表中找到多個設備,則向每個設備都發(fā)送一個數(shù)據(jù)包的復本。(3)廣播傳送當應用程序需要將數(shù)據(jù)包發(fā)送給網(wǎng)絡的每一個設備時,將使用廣播模式,此時將地址模式設置為AddrBroadcast。目標地址shortAddr可以設置為下面廣播地址中的一種。①NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF):數(shù)據(jù)包將被傳送到網(wǎng)絡上的所有設備,包括睡眠中的設備。對于睡眠中的設備,數(shù)據(jù)包將被保留在其父節(jié)點,直到蘇醒后主動到父節(jié)點查詢,或者直到消息超時。②NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD):數(shù)據(jù)包將被傳送到網(wǎng)絡上的所有空閑時打開接收的設備(RXONWHENIDELE),即除了睡眠中的所有設備。③NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC):數(shù)據(jù)發(fā)送給所有的路由器(包括協(xié)調(diào)器,它是一種特殊的路由器)。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

4.路由路由器的工作是為經(jīng)過路由器的每個數(shù)據(jù)幀尋找一條最佳傳輸路徑,并將該數(shù)據(jù)有效地傳送到目的節(jié)點。選擇通暢快捷的近路,能大大提高通信速度、減輕網(wǎng)絡系統(tǒng)通信負荷、節(jié)約網(wǎng)絡系統(tǒng)資源、提高網(wǎng)絡系統(tǒng)暢通率,從而讓網(wǎng)絡系統(tǒng)發(fā)揮出更大的效益。而在ZigBee無線網(wǎng)絡中,路由器是非常重要的節(jié)點設備,它不僅完成路由的功能,更重要的是,它在數(shù)據(jù)傳輸過程中起到了“接力棒”的作用,大大拓展了數(shù)據(jù)傳輸?shù)木嚯x,是ZigBee網(wǎng)絡中的“交通樞紐”。選擇最佳的策略即路由算法是路由器的關鍵所在。Z-Stack提供了比較完善、高效的路由算法。路由對于應用層來說是完全透明的。應用程序只需將數(shù)據(jù)下發(fā)到協(xié)議棧中,協(xié)議棧會負責尋找路徑,通過多跳的方式將數(shù)據(jù)傳送到目的地址。ZigBee網(wǎng)絡路由故障能夠自愈,如果某個無線連接斷開了,路由功能又能自動尋找一條新的路徑避開那個斷開的網(wǎng)絡連接。這就極大地提高了網(wǎng)絡的可靠性,這也是ZigBee網(wǎng)絡的一個關鍵特性。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

4.路由(1)路由協(xié)議ZigBee路由協(xié)議是基于AODV專用網(wǎng)絡路由協(xié)議來實現(xiàn)的。ZigBee將AODV路由協(xié)議優(yōu)化,使其能夠適應于各種環(huán)境,支持移動節(jié)點、連接失敗和數(shù)據(jù)包丟失等復雜環(huán)境。①路徑的尋找與選擇。②路徑保持與維護。③路徑期滿處理。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

4.路由(2)表存儲要實現(xiàn)路由功能,需要路由器建立一些表格去保持和維護路由信息。①路由表。②路徑尋找表。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.3網(wǎng)絡層

5.安全為了保證一個ZigBee網(wǎng)絡通信的保密性,防止重要數(shù)據(jù)被竊取,ZigBee協(xié)議還可以采用AEC/CCM安全算法,提供可選的安全功能。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.4應用層應用層主要包括應用支持子層(APS層)和ZigBee設備對象(ZDO)。其中,APS負責維護和綁定表、在綁定設備之間傳送消息;而ZDO定義設備在網(wǎng)絡中的角色,發(fā)起和響應綁定請求,在網(wǎng)絡設備之間建立安全機制。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.4應用層1.綁定在綁定表的條目中,有時會有多個目標端點,這使得協(xié)議棧自動地重復發(fā)送數(shù)據(jù)包到綁定表指定的各個目標地址。同時,如果在編譯目標文件時,編譯選項NV_RESTORE被打開,協(xié)議棧將會把綁定條目保存在非易失性存儲器里。因此,當意外重啟(或者節(jié)點電池耗盡需要更換)等突發(fā)情況發(fā)生時,節(jié)點能自動恢復到掉電前的工作狀態(tài),而不需要用戶重新設置綁定服務。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.4應用層2.配置文件配置文件(Profile)就是應用程序框架,它是由ZigBee技術開發(fā)商提供的,應用于特定的應用場合,是用戶進行ZigBee技術開發(fā)的基礎。當然,用戶也可以使用專用工具建立自己的配置文件。配置文件是這樣一種規(guī)范,它規(guī)定不同設備對消息幀的處理行為,使不同的設備之間可以通過發(fā)送命令、數(shù)據(jù)請求來實現(xiàn)互操作。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.2.4應用層3.端點端點(EndPoint)是一種網(wǎng)絡通信中的數(shù)據(jù)通信,它是無線通信節(jié)點的一個通信部件,如果選擇“綁定”方式實現(xiàn)節(jié)點間的通信,那么可以直接面對端點操作,而不需要知道綁定的兩個節(jié)點的地址信息。每個ZigBee設備支持240個這樣的端點。端點的值和IEEE長地址、16位短地址一樣,是唯一確定的網(wǎng)絡地址,通常結合綁定功能一起使用。它是ZigBee無線通信的一個重要參數(shù)。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.1常用術語1.資源任何任務所占用的實體都可以稱為資源(Resource),如一個變量、數(shù)組、結構體等。2.共享資源至少可以被兩個任務使用的資源稱為共享資源(SharedResource)。為了防止共享資源被破壞,每個任務在操作共享資源時,必須保證是獨占該資源。3.任務一個任務(Task)又稱為一個線程,是一個簡單程序的執(zhí)行過程。單個任務中CPU完全是被該任務獨占的。在任務設計時,需要將問題盡可能地分為多個任務,每個任務獨立完成某種功能,同時被賦予一定的優(yōu)先級,擁有自己的CPU寄存器和堆棧空間。一般將任務設計為一個無限循環(huán)。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.1常用術語4.多任務運行多任務運行就是一個線程組,其實質(zhì)只有一個任務在運行,但是CPU可以使用任務調(diào)度策略將多個任務進行調(diào)度,每個任務執(zhí)行特定的時間,時間片到了以后,就進行任務切換,由于每個任務執(zhí)行時間都很短,因此,任務切換比較頻繁,這就造成了多任務同時運行“假象”。5.內(nèi)核在多任務系統(tǒng)中,內(nèi)核(Kernel)負責管理各個任務,主要包括為每個任務分配CPU時間,任務調(diào)度,負責任務間的通信。內(nèi)核提供的基本的內(nèi)核服務就是任務切換。使用內(nèi)核可以大大簡化應用系統(tǒng)的程序設計方法。借助內(nèi)核提供的任務切換功能,可以將應用程序分為不同的任務來實現(xiàn)。6.互斥多任務通信最簡單、最常用的方法是使用共享數(shù)據(jù)結構。對于嵌入式系統(tǒng)而言,所有任務都在單一的地址空間下,使用共享的數(shù)據(jù)結構包括全局變量、指針、緩沖區(qū)等。雖然共享數(shù)據(jù)結構的方法簡單,但是必須保證對共享數(shù)據(jù)結構的寫操作具有唯一性,以避免晶振和數(shù)據(jù)不同步。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.1常用術語7.消息隊列(MessageQueue)消息隊列(MessageQueue)用于任務間傳遞消息,通常包含任務間同步的信息。通過內(nèi)核提供的服務、任務或者中斷服務程序將一條消息放入消息隊列,然后,其他任務可以使用內(nèi)核提供的服務從消息隊列中獲取屬于自己的消息。為了降低傳遞消息的開支,通常傳遞指向消息的指針。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.2OSAL簡介TI的Z-Stack協(xié)議棧就是基于一個最基本的輪轉查詢式操作系統(tǒng),這個操作系統(tǒng)就是OSAL。一般情況下,用戶只需額外添加三個文件就可以完成一個項目,一個是主控文件,存放具體的任務事件處理函數(shù)(如SampleApp_ProcessEvent或GenericApp_ProcessEvent);第二個是這個主控文件的頭文件(如SampleApp.h);第三個是操作系統(tǒng)接口文件(如OSAL_SampleApp.c),主要存放任務數(shù)組tasksArr[],任務數(shù)組的具體內(nèi)容為每個任務的相應的處理函數(shù)指針。通過這種方式,Z-Stack就實現(xiàn)了絕大部分代碼公用,用戶只需要添加這幾個文件,編寫自己的任務處理函數(shù)就可以了,無需改動Z-Stack核心代碼,大大增加了項目的通用性和易移植性。3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.2OSAL簡介3.2ZigBee無線傳感器網(wǎng)絡功能層簡介3.3.2OSAL簡介應用程序框架中包含了最多240個應用程序對象,每個應用程序對象運行在不同的端口上。因此,端口的作用就是區(qū)分不同的應用對象??梢园岩粋€應用程序對象看成一個任務。因此,需要一個機制來實現(xiàn)任務的切換、同步和互斥,這就是OSAL產(chǎn)生的根源。3.3OSAL多任務分配機制SAP是某一特定層提供的服務與上層之間的接口。大多數(shù)層有數(shù)據(jù)實體接口和管理實體接口兩個接口。其中數(shù)據(jù)實體接口的目標是向上層提供所需的常規(guī)數(shù)據(jù)服務;管理實體接口的目標是向上層提供訪問內(nèi)部層的參數(shù)、配置和管理數(shù)據(jù)服務。物理層和媒體接入控制子層均屬于IEEE802.15.4標準,而IEEE802.15.4標準與網(wǎng)絡/安全層、應用層一起,構成了ZigBee協(xié)議棧。3.3.2OSAL簡介3.3OSAL多任務分配機制Z-Stack采用事件輪詢機制來設計操作系統(tǒng),當各層初始化之后,系統(tǒng)進入低功耗模式,當事件發(fā)生時,喚醒系統(tǒng),開始進入中斷處理事件,處理結束后繼續(xù)進入低功耗模式。如果同時有幾個事件發(fā)生,則判斷優(yōu)先級,逐次處理事件。這種軟件構架可以極大地降級系統(tǒng)的功耗。3.3.3Z-Stack初始化3.3OSAL多任務分配機制3.3.3Z-Stack初始化3.4OSAL的運行機制Z-Stack初始化完成后,執(zhí)行osal_start_system()函數(shù)開始運行OSAL系統(tǒng)。該任務調(diào)度函數(shù)按照優(yōu)先級檢測各個任務是否就緒。如果存在就緒的任務則調(diào)用tasksArr[]中相對應的任務處理函數(shù)去處理該事件,直到執(zhí)行完所有就緒的任務。如果任務列表中沒有就緒的任務,則可以使處理器進入睡眠狀態(tài)實現(xiàn)低功耗。osal_start_system()一旦執(zhí)行,則不再返回main()函數(shù)。3.4OSAL的運行機制ZigBee協(xié)議棧采用的方法是,建立一個事件表,保存各個任務對應的事件,建立另一個函數(shù)表,保存各個任務事件處理函數(shù)的地址,然后將這兩張表建立某種對應關系,當某一事件發(fā)生時則查找函數(shù)表即可。OSAL通過tasksEvents指針訪問事件表的每一項,如果有事件發(fā)生,則查找函數(shù)表找到事件處理函數(shù)進行處理,處理完后,繼續(xù)訪問事件表,查看是否有事件發(fā)生,無限循環(huán)。3.4OSAL的運行機制在ZigBee協(xié)議棧中,三個關鍵變量其數(shù)據(jù)結構具體如下。①tasksCnt。該變量保存了任務數(shù),其聲明為constuint8tasksCnt,其中uint8的定義為typedefunsignedcharuint8。tasksCnt變量的定義在OSALSampleApp.c文件中。②tasksEvents。該變量是一個指針,指向了事件表的首地址,其聲明為uint16*tasksEvents,其中uint16的定義為typedefunsignedshortuint16。tasksEvents[]是一個指針數(shù)組,只是在OSAL_SampleApp.c文件中進行定義。③tasksArr。該變量是一個數(shù)組,該數(shù)組的每一項都是一個函數(shù)指針,指向了事件的處理函數(shù),其聲明為pTaskEventHandlerFntasksArr[],其中pTaskEventHandlerFn的定義為typedefunsignedshort(*pTaskEventHandlerFn)(unsignedchartask_id,unsignedshortevent)。變量pTaskEventHandlerFn的定義在OSAL_Tasks.h文件中。3.4OSAL的運行機制OSAL調(diào)度機制如下。①入口程序為Zmain.c。②執(zhí)行main()主程序。③任務調(diào)度初始化osal_init_system()。④默認啟動了osa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論