zstack完整資料.docx_第1頁
zstack完整資料.docx_第2頁
zstack完整資料.docx_第3頁
zstack完整資料.docx_第4頁
zstack完整資料.docx_第5頁
免費預覽已結束,剩余242頁可下載查看

下載本文檔

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

文檔簡介

ZigBee南京cc2530模塊資料(天線桿版本)cc2530模塊資料(天線桿版本)相關的學習文檔Zstack OSAL詳解.pdfZigBee南京cc2530模塊資料(天線桿版本)cc2530模塊資料(天線桿版本)相關的學習文檔zigbee技術實踐教程.pdfZigBeez-stackZ-Stack_API.pdf配置cc2530的第2功能時,不需要配置方向寄存器,否則可能出錯hal_key.c下的HalKeyConfig()函數中/* Rising/Falling edge configuratinn */ HAL_KEY_JOY_MOVE_ICTL &= (HAL_KEY_JOY_MOVE_EDGEBIT); /* Clear the edge bit */ /* For falling edge, the bit must be set. */ #if (HAL_KEY_JOY_MOVE_EDGE = HAL_KEY_FALLING_EDGE) HAL_KEY_JOY_MOVE_ICTL |= HAL_KEY_JOY_MOVE_EDGEBIT; #endif有錯,應將HAL_KEY_JOY_MOVE_ICTL改為PICTL1 ZigBee協(xié)議架構1.1 ZigBee簡介Zigbee是IEEE 802.15.4協(xié)議的代名詞。根據這個協(xié)議規(guī)定的技術是一種短距離、低功耗的無線通信技術。這一名稱來源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飛翔和“嗡嗡”(zig)地抖動翅膀的“舞蹈”來與同伴傳遞花粉所在方位信息,也就是說蜜蜂依靠這樣的方式構成了群體中的通信網絡。其特點是近距離、低復雜度、自組織、低功耗、低數據速率、低成本。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。 Zigbee是一種新興的短距離、低速率、低功耗無線網絡技術,它是一種介于無線標記技術和藍牙之間的技術提案。它此前被稱作“HomeRF Lite”或“FireFly”無線技術,主要用于近距離無線連接。它有自己的無線電標準,在數千個微小的傳感器之間相互協(xié)調實現通信。這些傳感器只需要很低的功耗,以接力的方式通過無線電波將數據從一個傳感器傳到另一個傳感器,因此它們的通信效率非常高。最后,這些數據就可以進入計算機用于分析或者被另外一種無線技術如WiMax收集。 它以IEEE 802.15.4協(xié)議為基礎,使182 2006.24計算機工程與應用用全球免費頻段進行通訊,能夠在三個不同的頻段上通訊。全球通用的頻段是2.400GHz-2.484GHz,歐洲采用的頻段是868.0 MHz -868.6 6MHz美國采用的頻段是902MHz -928MHz傳輸速率分別為250kbps 20kbps和40kbps通訊距離的理論值為10m-75m。 ZigBee 不僅只是802.15.4的名字,IEEE僅處理低級的MAC層和物理層協(xié)議,因此ZigBee聯盟對其網絡層協(xié)議和API進行了標準化。 ZigBee技術作為一種無線傳感網絡的通信協(xié)議,按照7層OSI(Open System Interconnect Reference Model)開放系統(tǒng)互連參考模型來建立,每一層為上層提供一系列特殊的服務,數據實體提供數據傳輸服務,管理實體則提供所有其他的服務。所有的服務實體通過服務接入點(Server Access Point,SAP)為上層提供一個接口,每個SAP都支持一定數量的服務原語來實現所需要的功能。 ZigBee標準的協(xié)議框架結構如下圖所示,其中IEEE802.15.4標準定義了底層即物理層(PhysicalLayer,PHY)和但介質訪問控制層(MediumAccessControlSubLayer,MAC)。ZigBee聯盟在此基礎上定義了網絡層(NetworkLayer,NWK)和應用層(ApplicationLayer,APL)架構。應用層包括應用支持子層(ApplicationSupportSubLays,APS),應用架構(ApplicationFramework,AF)、ZigBee設備對象(ZigBee Device Objects,ZDO)以及用戶定義應用對象(Manufacturer-Defined Application Objects,MDAO).ZigBee協(xié)議棧模型1.2 ZigBee的技術優(yōu)勢低功耗。在低耗電待機模式下,2 節(jié)5 號干電池可支持1個節(jié)點工作624個月,甚至更長。這是Zigbee的突出優(yōu)勢。相比較,藍牙能工作數周、WiFi可工作數小時?,F在,TI公司和德國的Micropelt公司共同推出新能源的Zigbee節(jié)點。該節(jié)點采用Micropelt公司的熱電發(fā)電機給TI公司的Zigbee提供電源。低成本。通過大幅簡化協(xié)議(不到藍牙的1/10) ,降低了對通信控制器的要求,按預測分析,以8051的8位微控制器測算,全功能的主節(jié)點需要32KB代碼,子功能節(jié)點少至4KB代碼,而且Zigbee免協(xié)議專利費。每塊芯片的價格大約為2 美元。 低速率。Zigbee工作在20250 kbps的較低速率,分別提供250 kbps(2.4GHz)、40kbps (915 MHz)和20kbps(868 MHz) 的原始數據吞吐率,滿足低速率傳輸數據的應用需求。近距離。傳輸范圍一般介于10100 m 之間,在增加RF 發(fā)射功率后,亦可增加到13 km。這指的是相鄰節(jié)點間的距離。如果通過路由和節(jié)點間通信的接力,傳輸距離將可以更遠。短時延。Zigbee 的響應速度較快,一般從睡眠轉入工作狀態(tài)只需15 ms ,節(jié)點連接進入網絡只需30 ms ,進一步節(jié)省了電能。相比較,藍牙需要310 s、WiFi 需要3 s。高容量。Zigbee 可采用星狀、片狀和網狀網絡結構,由一個主節(jié)點管理若干子節(jié)點,最多一個主節(jié)點可管理254 個子節(jié)點;同時主節(jié)點還可由上一層網絡節(jié)點管理,最多可組成65000 個節(jié)點的大網。高安全。Zigbee 提供了三級安全模式,包括無安全設定、使用接入控制清單(ACL) 防止非法獲取數據以及采用高級加密標準(AES 128) 的對稱密碼,以靈活確定其安全屬性。免執(zhí)照頻段。采用直接序列擴頻在工業(yè)科學醫(yī)療( ISM) 頻段,2. 4 GHz (全球) 、915 MHz(美國) 和868 MHz(歐洲)。1.3 ZigBee的主要應用領域家庭和樓宇網絡:空調系統(tǒng)的溫度控制、照明的自動控制、窗簾的自動控制、煤氣計量控制、家用電器的遠程控制等;工業(yè)控制:各種監(jiān)控器、傳感器的自動化控制;商業(yè):智慧型標簽等;公共場所:煙霧探測器等;農業(yè)控制:收集各種土壤信息和氣候信息;醫(yī)療:老人與行動不便者的緊急呼叫器和醫(yī)療傳感器等。水表、電表、氣表三表集抄1.4 ZigBee實現方案目前ZigBee的實現方案主要有三種:第一種是MCU和RF收發(fā)器分離的雙芯片方案,ZigBee協(xié)議棧在MCU上運行;第二種是集成RF和MCU的單芯片方案;第三種是ZigBee協(xié)處理器和MCU的雙芯片方案,ZigBee協(xié)議棧在ZigBee協(xié)處理器上運行。在主要的Zigbee芯片提供商中,德州儀器(TI)的Zigbee產品線覆蓋了以上三種方案,飛思卡爾、Ember、Jennic可以提供單芯片方案,Atmel、Microchip等其它廠商大都提供MCU和RF收發(fā)器分離的雙芯片方案。 雖然這三種方案具有各自的優(yōu)勢,比如:外置MCU+收發(fā)器方案靈活性高,單芯片解決方案占用空間最小且開發(fā)容易,ZigBee協(xié)處理器+MCU方案靈活性高且能縮短產品上市時間,但單芯片方案是主要廠商的主推方案,也是重要的發(fā)展趨勢。由于低功耗是ZigBee系統(tǒng)的關鍵,所以減少工作電流消耗、具有超低耗電睡眠模式并縮短模式切換時間對每一種方案而言都非常重要。 TI的單芯片方案CC2431/CC2430在單個芯片上集成了ZigBee射頻前端、內存和微控制器,CC2431還帶硬件定位引擎。CC2430芯片工作時的電流損耗為27mA,接收和發(fā)射模式下的電流損耗分別低于27mA或25mA,特別適合那些要求電池壽命非常長的應用。CC2430包含8KB RAM內存和外圍模塊,并有32、64或128KB內置閃存等三種不同組件可供選擇,方便設計人員在復雜性與成本之間做出最佳選擇。在MCU和RF收發(fā)器分離的雙芯片方案方面,TI采用的是CC2420 RF收發(fā)器和超低功耗MCU MSP430。該公司最新推出的高度集成2.4GHz RF前端CC2591集成了可將輸出功率提高22dBm的功率放大器,以及可將接收機靈敏度提高6dB的低噪聲放大器,可顯著擴大無線系統(tǒng)的覆蓋范圍. TI的第三種Zigbee方案是無線網絡處理器CC2480(RF收發(fā)器和ZigBee協(xié)議棧),可搭配任意MCU,比如MSP430。TI的Z-Stack軟件ZigBee-2006協(xié)議??稍赯igBee處理器上運行,而應用程序則在外部MCU上運行。用戶在設計和使用過程中不需要牽涉到很多ZigBee開發(fā),可以任意選擇MCU或沿用已有的MCU。 飛思卡爾(Freescale)的MC1321x平臺是該公司第二代單芯片MCURF收發(fā)器解決方案,集成了MC9S08GT MCU與MC1320x收發(fā)器,閃存可以在16至60KB的范圍內選擇。第三代單芯片方案MC1322x以Platform in Package(PiP)的形式提供,在單一封裝中包括一個32位MCU、一個完全符合IEEE 802.15.4標準的收發(fā)器,以及不平衡變壓器和RF匹配組件,消除了對外部射頻組件的需求。該平臺解決方案還支持可以將節(jié)點之間的數據速率提高到每秒2Mbps的TurboLink技術模式。 Jennic公司的JN-5139芯片是一個低功耗的無線微處理器,集成了32位RISC微處理器和完全兼容2.4GHz IEEE 802.15.4的送收器、192k ROM以及一些數字及模擬外圍電路,可降低對外部元件的需求。JN-5139模塊基于JN-5139芯片,已經通過歐洲與美國規(guī)范FCC與ETSI的認證,可大大縮短在測試無線射頻方面的時間。 Ember公司的ZigBee網絡協(xié)處理器EM260集成了2.4GHz IEEE 802.15.4兼容的無線電收發(fā)器和運行在EmberZNet ZigBee堆棧上的基于閃存的16位微處理器(XAP2b核),并且該產品的SPI接口可以使開發(fā)者容易在自己的MCU中增加ZigBee網絡功能。 1.5 ZigBee協(xié)議棧規(guī)范ZigBee協(xié)議棧體系結構由應用層、應用匯聚層、網絡層、數據鏈路層和物理層組成,如下圖所示:ZigBee 協(xié)議棧體系的層次結構 應用層定義了各種類型的應用業(yè)務,是協(xié)議棧的最上層用戶;應用匯聚層負責把不同的應用映射到ZigBee網絡層上,包括安全與時鑒權、多個業(yè)務數據流的匯聚、設備發(fā)現和業(yè)務發(fā)現。網線層的功能包括拓撲管理、MAC管理、路由管理和安全管理。1.5.1 數據鏈路層 數據鏈路層以可分為邏輯鏈路控制子層(LLC Logic Link Control)和介質訪問控制子層(Medium Access Control, MAC)。IEEE802.15.4的LLC子層功能包括傳輸可靠性保障、數據包的分段與重組、數據包的順序傳輸。IEEE802.15.4MAC子層功能包括設備間無線鏈路的建立、和拆除,確認的幀傳送與接收,信道接入控制、幀校驗、預留時隙管理和廣播信息管理。1.5.2 物理層和MAC層 ZigBee直接使用了IEEE802.15.4標準的物理層和MAC層。ZigBee工作 在三種不同的頻帶上,歐洲的868MHz頻帶,美國的915MHz頻帶和全球通用的2.4GHz頻帶。968MHz頻帶上、915MHz頻帶和2.4GHz頻帶的物理層并不相同,它們各自的信道帶寬分別是0.6MHz,2MHz和5MHz,分別有1個、10個和16處信道。不同頻帶的擴頻和調制方式也有所區(qū)別,雖然都是使用了直接序列擴頻(DSSS)的方式。但是比特到碼片的變換方式有比較大的差別;調制方面都使用了調相技術,但868MHz和915MHz頻段采用的是BPSK,而2.4GHz頻段采用的是OQPSK。1.5.3 網絡層(1)網絡拓撲結構。ZigBee網絡組網可以靈活地采用多種拓撲結構,可以采用星形,可以采用網狀和樹簇狀拓撲等。在星形拓撲結構組網時,整個網絡有一個ZigBee 協(xié)調器設備來進行整個網絡的控制,ZigBee協(xié)調器能啟動和維持網絡的正常工作,使網絡內的終端設備實現通信,如果采用網狀和樹形拓撲結構組網,ZigBee協(xié)調器則負責啟動網絡以及選擇關鍵的網絡參數。在樹形網絡中,路由器采用分級路由策略來傳送數據和控制信息。網狀網絡中,設備之間使用完全對等的通信方式。ZigBee路由器不發(fā)送通信信標。(2)網絡層及路由算法。ZigBee網絡層的功能包括拓撲管理、MAC管理、路由管理和安全管理。網絡層的主要功能是路由管理,路由算法是它的核心。網絡層主要支持兩種路由算法-樹狀路由和網狀路由。(3)網絡層中各部分的數據接口和網絡層服務功能1)網絡層中各部分的數據接口。ZigBee網絡層的各個組成部分和彼此間的接口關系如下圖 ZigBee 網絡層的各個組成部分和彼此間接口關系 圖中的NLDE-SAP是網絡層數據實體的服務接入點,MLME-SAP是網絡層管理實體的服務接入占,MCPS-SAP是媒體接入控制公共部分子層的服務接入點,MALME-SAP是MAC子層管理實體的服務接入點。 網絡層通過兩種服務接入點提供網絡層數據服務和網絡層管理服務,層數據服務通過層數據實體服務接入點接入,網絡層管理服務通過網絡層管理實體服務接入點接入、這兩種服務通過媒體接入控制公共部分子層的服務接入點和MAC子層管理實體的服務接入點為MAC層提供接口;通過網絡層數據實體的服務接入點和MAC子層管理實體的服務接入點為應用層實體提供接口服務。2)網絡層服務功能。網絡層要為IEEE802.15.4的MAC子層提供支持,確保ZigBee的MAC層正常工作,并為應用層提供合適的服務接口。為了向應用層提供其接口,層提供了兩個必需的功能服務實體,它們分別為數據服務實體和管理服務實體。網絡層數據實體(NLDE)通過網絡層數據實體服務接入點(NLDE-SAP)提供數據傳輸服務。網絡層管理實體(NLME)通過網絡層管理實體服務接入點(NLME-SAP)提供網絡管理服務。網絡層數據實體提供的服務 產生網絡層協(xié)議數據單元(NPDU),網絡層數據實體通過增加一個適當的協(xié)議頭,從應用支持層協(xié)議數據單元中生成網絡層的協(xié)議數據單元。 指定拓撲傳輸路由,網絡層數據實體能夠發(fā)送一個網絡層的協(xié)議數據協(xié)議數據單元到一個數據傳輸的目標終端設備,目標終端設備也可以是通信鏈路中的一個中間通信設備。 網絡層管理實體提供的服務 配置一個新的設備。為保證設備正常工作的需要,設備應具有足夠的堆棧,以滿足配置的需要。配置選項包括對一個ZigBee協(xié)調器和連接一個現有網絡設備的初始化操作。 加入或離開網絡。具有連接或者斷開一個網絡的能力,以及建立一個ZigBee協(xié)調器或者ZigBee路由器,具有要求設備同網絡斷開的能力。 尋址。ZigBee協(xié)調器和ZigBee路由器具有為新加入網絡的設備分配地址的能力。 鄰居發(fā)現。具有發(fā)現。記錄和匯報相關的一跳鄰居設備信息的能力 接收控制。具有控制設備接收機接收狀態(tài)的能力,即控制接收機什么時間接收。接收時間長短,以保證MAC層的同步或者正常接收等(4)原語在分層的通信協(xié)議中,層之間通過服務訪問點SAP相連,每一屋都可以通過本層和下層的SAP調用下層為其提供相應的服務,同時通過與上層的SAP為上層提供相應的服務。訪問點SAP有通信協(xié)議中層與層之間的為通信接口,但具體的服務是以通信原語的形式供上層調用的。在調用下層服務時,只需要遵循統(tǒng)一的原語規(guī)范,而不必了解下層是怎樣處理原語的,通過這咱方式實現了數據層與層之間的透明傳輸。層與層之間的原語分成請求原語,確認原語,指示原語和響應原語(5)網絡層管理服務。網絡層管理實體服務接入點為其上層和網絡層管理實體之間傳送管理命令提供通信接口,網絡層管理實體支持NLME-SAP接口原語,這些原語包括網絡發(fā)現、網絡的形成、允許設備連路由器初始化、設備同網絡的連接等原語。(6)網絡層幀格式。ZigBee網絡幀由下列基本部分組成:網絡層幀報頭,包含幀控制、地址和序列信息;第二個部分是,網絡層幀的可變長有效栽荷,包含幀類型所指定的信息。通用的網絡層幀格式1)通用網絡層幀的結構與格式,網絡層幀的格式由一個網絡層報頭和一個網絡層網負載組成。幀頭部分域的順序是固定的,但根據不同的具體應用情況,不是必須包括所有域。通用網絡層幀格式所示:2) 不同域的說明: 幀控制域。由16位組成,內容包括幀類型、地址、序列域以及其他的控制標記。 目地地址域。在網絡層幀中,必須要有目的地址域,該域長度兩個字節(jié),用來存放目標設備的網絡地址或廣播地址(0xffff). 源地址域。在網絡層幀中,該域也是必備的,長度為兩個字節(jié),其值是16位的源設備網絡地址 廣播半徑域。廣播半徑域在幀的目的地址為廣播地址時才存在,長度一個字節(jié)。該域用來設定傳輸半徑。 序列號域。在網絡層幀中,該域是必備的,長度一個字節(jié),每次發(fā)送幀時改為加1. 幀負載域。該域長度可變,包含了各種幀的具體信息。1.5.4 應用層ZigBee協(xié)議棧的層級有IEEE802.15.4的MAC、物理層(PHY)以及ZigBee網絡層,網絡層上面是應用層。網絡層的頉是應用層,包括APS(Application Support Layer:應用支持子層)和ZDO(ZigBee設備對象:ZigBee Device Object)等部分,主要規(guī)定了一些和應用相關的功能,包括端點(Endpoint)的規(guī)定,還有綁定(Binding)、服務發(fā)現和設備發(fā)現等。APS子層的任務包括維護綁定表和綁定設備間消息傳輸;綁定指的是根據兩個設備所提供的服務和它們的需求將兩個設備關聯起來。(1) ZigBee應用支持子層。應用支持子層(APS)是網絡層和應用層之間接口。通過此接口可以調用一系列被ZDO和用戶自定義應用對象的服務(2) ZigBee設備協(xié)定。ZigBee應用層規(guī)范描述了ZigBee設備的綁定、設備發(fā)現和服務發(fā)現在ZigBee設備對象(ZDO)中的實現方式,ZigBee設備協(xié)定(devic profile)支持以下幾種設備間通信功能: 設備和服務發(fā)現 終端設備綁定請求過程 綁定和接觸綁定過程 網絡管理(3) ZigBee設備對象。(4) ZigBee設備對象(ZDO)是一種通過調用網絡和應用支持子層原語來實現ZigBee規(guī)范中規(guī)定的ZigBee終端設備。ZigBee路由器能及ZigBee協(xié)調器的應用。ZigBee設備對象ZDO主要功能: 對APS子層、網絡層、安全服務模塊(SSP)以及除了應用層中端點1240以外的ZigBee設備層和初始化 集成終端應用的配置信息,實現設備服務發(fā)現、網絡管理、網絡安全、綁定管理和節(jié)點管理等功能。 上面主要是簡單的描述了ZigBee中各層之間的相互關系和作用,希望對以后的學習有幫助。1.6 ZigBee工作頻率在不同的國家和地區(qū),ZigBee技術所允許使用的工作頻率是不同的,而對于不同的應用頻率范圍,其調制方式。傳輸速率均不同,眾所周知,藍牙技術在世界多數國家都采用統(tǒng)一的頻率范圍,其范圍為2.4GHz的ISM頻段上,調制采用快速跳頻擴頻技術,而ZigBee技術不同,對于不同的國家和地區(qū),為其提供的工作頻率范圍是不同的,ZigBee所使用的頻率范圍主要分為868/915MHz和2.4Ghz ISM頻段,各個具體的頻段的頻率范圍如下表所示:由于各個國家的地區(qū)采用的工作頻率范圍不同,為提高數據傳輸速率,IEEE802.15.4規(guī)范標準對于不同的頻率范圍,規(guī)定了不同的調制方式,因而在不同的頻率段上,其數據傳輸速率不同,具體調制和傳輸速率如下所示:從上面可以看出ZigBee使用了3個工作頻段,每一個頻段寬度不同,其分配信道的個數也不相同,在IEEE802.15.4規(guī)范標準定義了27個物理信道,信道編號從0到26,在不同的頻段其帶寬不同,其中2450MHz頻段定義了16個信道,915MHz頻段定義了10個信道,868MHz頻段定義了1個信道。這些信道的中心頻率定義如下:1.7 網絡拓撲結構ZigBee協(xié)調器是啟動和配置網絡的一種設備。協(xié)調器可以保持間接尋址用來綁定表格,支持關聯,同時還能設計信任中心和執(zhí)行其他的活動。協(xié)調器負責網絡正常工作以及保持同網絡其他設備的通信。一個ZigBee網絡只允許有一個ZigBee協(xié)調器ZigBee路由器是一種支持關聯的設備,能夠將消息轉發(fā)到其他設備。ZigBee網絡或樹形網絡可以有多個ZigBee路由器,ZigBee星型網絡不支持ZigBee路由器ZigBee終端設備可以執(zhí)行它的相關功能,并使用ZigBee網絡到達其他需要與其通信的設備它有存儲容量要求最小。上述3種設備根據功能完整性可以分為全功能(FFD)設備和半功能(RFD)設備。其中,全功能設備可用作協(xié)調器,路由器和終端設備,而半功能設備只能用作終端設備。一個全功能設備可與多個RFD設備或多個其他FFD設備通信,而一個半功能設備只能與一個FFD通信。然而需要特別注意的是,網絡的特定架構會戲劇性地影響設備所需要資源,NWK支持的網絡拓撲有星形樹型和網絡型。這三種設備只是在安裝在上面的協(xié)議的不同,設備是相同。ZigBee網絡組網可以靈活地采用多種拓撲結構,可以采用星形,可以采用網狀和樹簇狀拓撲等。如下圖所示:星形拓撲結構樹狀拓撲結構 網狀拓撲結構 星形拓撲具有組網簡單、成本低;但網絡覆蓋范圍小,一旦中心節(jié)點發(fā)生故障,所有與中心節(jié)點連接的傳感器節(jié)點與網絡中心的通信都將中斷,星形拓撲組網時,電池使用壽命較長,網狀拓撲組網可靠性高、覆蓋范圍大的優(yōu)點,但電波使用壽命短、管理復雜。樹簇形拓撲綜合了以上兩種拓撲的特點,相對講會使ZigBee網絡靈活、高效。 ZigBee/IEEE802.15.4網絡中所有節(jié)點都工作在同一個信道上,當討論某個節(jié)點要向另一個節(jié)點傳輸數據時,如果網絡內其他節(jié)點音下在通信并發(fā)送數據,就有可能發(fā)生沖突。為此,在MAC層采用了CSMA/CA的媒質訪問控制技術,簡單來說,就是節(jié)點在發(fā)送數據之前先監(jiān)聽信道,如果信道空閑,則可以發(fā)送數據,否則,就要進行隨機的退避,即延遲一段隨機時間,然后再進行監(jiān)聽,這個退避的時間是指數增長的,但有一個最大值,即如果上一次退避之后再次監(jiān)聽信道忙,則退避時間要增倍,這們做的原因是如果多次監(jiān)聽信道都忙,有可能表明信道上的數據量大,因此讓節(jié)點等待更多的時間,避免繁忙的監(jiān)聽,通過這種信道接入技術,所有節(jié)點競爭共享同一個信道。在MAC層當中還規(guī)定了“超幀”的格式,在超幀的開始發(fā)送信標幀,里面含有一些時序以及網絡的信息,緊接著是競爭接入時期,在這段時間內各節(jié)點以競爭方式接入信道,再后面是非競爭接入時期,節(jié)點采用時分復用的方式接入信道,然后是非活躍時期,節(jié)點進入休眠狀態(tài),等待下一個超幀周期的開始以發(fā)送信標幀。而非信標模式則比較靈活,節(jié)點均以競爭方式接入信道,不需要周期性的發(fā)送信標幀。顯然,在信標模式當中由于有了周期性的信標,整個網絡的所有節(jié)點都能進行同步,但這咱同步的規(guī)模不會很大。實際上,在ZigBee當中用的更多的可能是非信標模式。1.8 ZigBee網絡幀結構 在ZigBee技術中,每一個協(xié)議層都增加了各自的幀頭和幀尾,在PAN網絡結構中定義了4種幀結構: 信標幀-主協(xié)調器用來發(fā)送信標的幀 數據幀 用于所有數據傳輸的幀 確認幀用于確認成功接收的幀 MAC層命令幀用于處理所有MAC層對等實體間的控制傳輸 物理層以下所描述的包結構以比特表示,為實際在物理媒體上所發(fā)送的數據。1.8.1 信標幀 在信標網絡中,信標由主協(xié)調器的MAC層生成,并向網絡中的所有從設備發(fā)送,以保證各從設備與主協(xié)調器同步,使網絡運行的成本最低,即采用信標網絡通信,可減少從設備的功耗,保證正常的通信,信標幀的結構如下圖:信標幀結構示意圖 通常設備中的MAC層服務數據單元(MSDU)包括超幀格式,未處理事務地址格式 地址列表能及信標載荷。如果在MSDU前面,加上MAC層幀頭(MHR),在MSDU結尾后面,加上幀尾(MFR),則MHRMSDU和MFR共同構成了MAC層信標幀(即MAC層協(xié)議數據單元MPDU),其中,MHR包括MAC幀的控制字段。信標序列碼(BSN)以及尋址信息;MFR包含16位幀校驗序列(FCS)。 在MAC層生成的MAC層信標作為物理層信標包的載荷(PSDU)發(fā)送到物理層。同樣,在PSDU前面,需要加上一個同步幀頭(SHR)和一個物理層幀頭(PHR),其中,SHR包括前同步幀序列和幀起始定界符(SFD);在PHR中,包含有PSDU長度的信息。使用前同步碼序列的目的是使從設備與主協(xié)調器達到符號同步,因此,SHR PHR以及PSDU共同構成了物理層的信標包(PPDU)。 通過上述過程,最終在PHY層就形成了網絡信標幀,一個幀信號在MAC層和PHY層分別都要加上所對應層的幀頭和幀尾,最后 在PHY層形成相應的幀信號。1.8.2 數據幀在ZigBee設備之間進行數據傳輸時,傳輸的數據由應用 層生成,經數據處理后,發(fā)送給MAC層,作為MAC層的數據載荷(MSDU),并在MSDU前面加上一個MAC層幀頭MHR,在其結尾后面,加上一個MAC層幀尾其中,MHR包括幀控制。序列碼以及尋址信息,MFR為16位FCS碼,這樣由MHR MSDU和MFR共同構成了MAC層數據幀(MPDU). MAC的數據幀作為物理層載荷(PSDU)發(fā)送到物理層。在PSDU前面,加上一個SHR和一個PHR。其中,SHR包括前同步碼序列和SFD;PHR包含PSDU的長度信息。同信標幀一樣,前同步碼序列和數據SFD能夠使接收設備與發(fā)送設備達到符號同步.SHR PHR 和PSDU共同構成了物理層的數據包(PPDU).數據幀示意圖1.8.3 確認幀 在通信接收設備中,為保證通信的可靠性,通常要求接收設備在接收到正確的幀信息后,向發(fā)送設備返回一個確認信息。以向發(fā)送設備表示已經正確地接收到相應的信息。接收設備將接收到的信息經PHY層和MAC層后,由MACnfc經糾錯解碼后,恢復發(fā)送端的數據,如沒有檢查出數據的錯誤,則由MAC層生成一個確認幀,發(fā)送回發(fā)送端其幀結構 MAC層的確認幀由一個MHR和一個MFR構成,其中,MHR包括MAC幀控制字段和數據序列碼字段,MFR由位FCS構成,MHR和MFR共同構成了MAC層的確認幀(MPDU)。MPDU作為物理層確認幀載荷(PSDU)發(fā)送到物理層,在PSDu前面,加上SHR和PHR。其中,SHR包括前同步碼序列和SFD字段;PHR包含PSDU長度的信息。SHRPHR以及PSDU共同構成了物理層的確認包(PPDU).確認幀示意圖1.8.4 MAC層命令幀 在ZigBee設備中,為了控制設備的工作狀態(tài),同網絡中的其他設備進行通信,根據應用的實際需要,對設備進行控制,控制命令由應用層產生,在MAC層根據命令的類型,生成的MAC層命令幀,包含命令類型字段和命令數據的MSDU叫作命令載荷。同其他幀一樣,在MSDU前面,加上一個幀頭MHR,在其結尾后面,加上一個幀尾MFR,其中,MHR包括MAC層幀控制。數據序列碼以及尋址信息字段,MFR由16位FCS構成,MHRMSDU和MFR共同構成了MAC層命令幀(MPDU)。 MPDU作為物理層命令幀發(fā)送到物理層,PSDU前加上一個SHR和一個PHR,其中,SHR包括前同步碼序列和SFD字段,PHR包含了PSDU長度的信息,前同步碼字段序列能夠使接收機達到符號同步。SHRPHR和PSDU共同構成了物理層命令包(PPDU). MAC命令幀示意圖2 Z-Stack簡介Z-Stack是在2007年4月,德州儀器推出業(yè)界領先的ZigBee協(xié)議棧,Z-Stack符合ZigBee 2006規(guī)范,支持多種平臺,Z-Stack包含了網狀網絡拓撲的幾近于全功能的協(xié)議棧,在競爭激烈的ZigBee領域占有很重要地位。配合OSAL完成整個協(xié)議棧的運行。Z-Stack只是ZigBee協(xié)議的一種具體的實現,我們要澄清的是ZigBee不僅僅有Z-Stack這一種,也不能把Z-Stack等同于ZigBee2006協(xié)議,現在也有好幾個真正開源的ZigBee協(xié)議棧,例如:msstatePAN協(xié)議棧,freakz協(xié)議棧,這些都是ZigBee協(xié)議的具體實現,而且是全部真正的開源的,它們的所有源代碼我們都可以看到,而Z-Stack中的很多關鍵的代碼是以庫文件的形式給出來,也就是我們只能用它們,而看不到它們的具體的實現。那下面我們就以Z-Stack1.4.3-1.2.0看看它的組織架構,那些功能是開源的,那些是以庫文件的形式提供給我們的。我們利用Z-Stack開發(fā)應用,只能知道怎么做和做什么也就是“how”和“what”,而不能準確的知道“為什么”,“why”.我們也可以通過真正這些開源的ZigBee協(xié)議棧了解為什么。2.1 z-stack協(xié)議棧下載完z-stack后我們可以點擊EXE文件進行安裝,默認會在C盤的根目錄下建立Texas Instruments目錄,該目錄下面的子目錄就是安裝Z-Stack的文件。下面的這個圖就是Z-Stack協(xié)議棧的目錄結構, 根目錄下有一個Getting Started Guide CC2430.pdf文件,是安裝卸載協(xié)議棧的說明文件,另外三個文件夾分別是Documents Components 和Project。2.1.1 Documents Documents文件夾包含了對整個協(xié)議棧進行說明的所有文檔信息,下面有很多的PDF格式的文檔,內容比較多,不過也無需全部的細讀,我們可以把它們當做參考手冊,根據需要來閱讀。2.1.2 Components Components文件夾是Z-Stack協(xié)議棧的各個功能部件的實現,本文件夾下包含的子目錄下: 1)hal文件夾為硬件平臺的抽象層2)mac文件夾包含了802.15.4物理協(xié)議的實現說需要代碼文件的頭文件,由于TI公司處于某種考慮,這部分并沒有給出具體的源代碼,而是以庫文件的形式存在.ProjectszstackLibraries文件夾給出3)mt 文件夾包含了為系統(tǒng)添加在電腦上有Z-tools調試的功能所需要的源文件4)osal包含了操作系統(tǒng)抽象層所需要的文件5)service文件夾保護了Z-Stack提供的兩種服務:尋址服務和數據服務所需要的文件6)stack文件夾是components文件夾最核心的部分,是ZigBee協(xié)議棧具體實現部分,在在其下有分為了af(應用框架),nwk(網絡層),sapi(簡單應用接口)、sec(安全)、sys(系統(tǒng)頭文件),zcl(ZigBee簇庫),zdo(ZigBee設備對象)等7個文件夾。7)zmac文件夾包含了Z-Stack MAC 導出層文件。還有一個Project目錄,該目錄下包含了用于Z-Stack功能演示的各個項目的例子??晒╅_發(fā)者們參考。從上面我們可以看到其中核心部分的代碼都是編譯好的,以庫文件的形式給出的,比如安全模塊,路由模塊,和Mesh自組網模塊。如果要獲得這部分的源代碼可以向TI購買,可能花費不菲,可要大幾萬人民幣。TI所謂的“開源”只是提供給我們一個平臺,開發(fā)者可以在上面做應用而已,而絕不是我們通常理解的開源。也就我們在下載后源代碼后,有些函數我們根本無法查看到它們的源代碼的原因?,F在TI公司提供的CC2480芯片,已經把這個協(xié)議棧固化到了硬件中,我們只需要掌握幾個簡單的API就可以完成基本的應用開發(fā)?,F在也有公司開發(fā)出了基于AT指令集的ZigBee協(xié)議棧,更方便開發(fā)了。2.2 z-stack工程目錄在z-stack協(xié)議棧中的sample文件夾下,提供了幾個例子文件中,唯一不同的是最后一個函數其它的函數都是一樣的。一般情況下用戶只需要額外添加三個文件就可以完成一個項目。例如GenericApp工程,一個是主文件,存放具體的任務事件處理函數如上述事例中的GenericApp_ProcessEvent,一個是這個主文件的頭文件,另外一個是操作系統(tǒng)的接口文件以Osal開頭,是專門存放任務處理函數數組tasksArr的文件,如下圖中的App層,后面會詳細說明。這樣就實現了Z-Stack代碼的公用,用戶只需要添加這幾個文件,編寫自己的任務處理函數就可以了。在Z-Stack項目中大約有14個目錄文件,目錄文件下面又有很多的子目錄和文件。下面就來看看這14個根目錄,具體是有什么作用:(1)App:應用層目錄,這個目錄下的文件就是創(chuàng)建一個新項目時自己要添加的文件,(2)HAL:硬件層目錄,Common目錄下的文件是公用文件,基本上與硬件無關,其中hal_assert.c是斷言文件,用于調用,hal_drivers.c是驅動文件,抽象出與硬件無關的驅動函數,包含有與硬件相關的配置和驅動及操作函數。Include目錄下主要包含各個硬件模塊的頭文件,而Target目錄下的文件是跟硬件平臺相關的,可能看到有兩個平臺,分別是Cc2430DB平臺和一個CC2430EB平臺。后面的DB和EB表示的是TI公司開發(fā)板的型號,其實還有一種類型是BB的,BB: Battery BoardDB: Development BoardEB: Evaluation Board分別對應TI公司開發(fā)的三種板型,其功能按上順序依次變強??梢詤⒖碯-Stack Users Guide for CC2430的圖片,可以獲得更直觀的認識。(3)MAC:MAC層目錄,HighLevel和LowLevel兩個目錄表示MAC層分為了高層和底層兩層,Include目錄下則包含了MAC層的參數配置文件及基MAC的LIB庫函數接口文件,這里的MAC層的協(xié)議是不開源的,以庫的形式給出(4)MT:監(jiān)制調試層目錄,該目錄下的文件主要用于調試目的,即實現通過串口調試各層,與各層進行直接交互。(5)NWK:網絡層目錄,含有網絡層配置參數文件及網絡層庫的函數接口文件,及APS層庫的函數接口(6)OSAL:協(xié)議棧的操作系統(tǒng)抽象層目錄(7)Profile:AF層目錄,Application Farmework 應用框架,包含AF層處理函數接口文件。(8)Security:安全層目錄,包含安全層處理函數接口文件(9)Services:ZigBee和802.15.4設備地址處理函數目錄,包括地址模式的定義及地址處理函數(10)Tools:工作配置目錄,包括空間劃分及Z-Stack相關配置信息(11)ZDO:指ZigBee設備對象,可認為是一種公共的功能集,文件用戶用自定義的對象調用APS子層的服務和NWK層的服務(12)ZMAC:其中Zmac.c是Z-StackMAC導出層接口文件,zmac_cb.c是ZMAC需要調用的網絡層函數(13) Zmain:Zmain.c主要包含了整個項目的入口函數main(),在OnBoard.c包含硬件開始平臺類外設進行控制的接口函數(14)Output:輸出文件目錄,這個是EW8051 IDE自動生成的到現在是不是感覺很簡單,別不想想像的那么復雜,這個操作系統(tǒng)抽象層和實時操作系統(tǒng)中的C/OS-II有相似之處,唉C/OS-II中可以分配給64個任務。了解了這個操作系統(tǒng)的話,理解OSAL應該不是很困難,但是,Z-Stack只是基于這個OSAL運行,但重點不在這里,而是ZigBee設備之間的通信的實現,以及組網,組成不同的網絡結構,這些才是整個ZigBee協(xié)議中的核心內容,當然也應該遠比我們添加幾個文件來的復雜。2.3 其他開源ZigBee協(xié)議棧介紹當然也有一些真正開源的ZigBee協(xié)議棧,不過這些協(xié)議棧沒有大的商業(yè)公司的支持,開發(fā)升級方面,性能方面和TI公司的還是有很大的差距,這里就簡單的介紹幾個:(1)msstatePAN協(xié)議棧 msstatePAN協(xié)議棧是由密西西比大學的RReese教授為廣大無線技術愛好者開發(fā)的精簡版ZigBee協(xié)議棧,基于標準C語言編寫,基本具備了 ZigBee協(xié)議標準所規(guī)定的功能,最新版本為V026,該版本支持多種開發(fā)平臺,包括PICDEM Z、CC2430評估板、MSP430+CC2420(Tmote)以及WIN32虛擬平臺。源代碼是開放的,整個協(xié)議棧是基于狀態(tài)機(FSM)實現的。如果你的程序構架不是基于操作系統(tǒng)的,有限狀態(tài)機應該是一個很好的選擇。而且OS(operating system)中進程的狀態(tài)也是個各個狀態(tài)間的切換。該協(xié)議棧的網站地址如下/reese/msstatePAN/在網站上我們可以看到起最近的更新是在2007年,到目前為止已經有三年多的時間沒有更新升級了。(2)freakz協(xié)議棧和contiki操作系統(tǒng)。 freakz是一個徹底的開源zigbee協(xié)議,配合contikj操作系統(tǒng),相當于Z-Stack+OSAL。相對于另外一個開源的WSN(Wireless Sensor Networking,無線傳感網)操作系統(tǒng)TinyOS來講,contiki的代碼全部為C語言寫成,用GCC進行編譯,對廣大應用C語言多年的開發(fā)者 來說,減少了學習另外一種語言與編譯平臺所帶來的時間花費。其下載地址如下:http:/www.sics.se/contiki//projects/freakz/ 這里介紹一個專門研究開源ZigBee協(xié)議的網站,主要是frankz協(xié)議棧,已經寫了很多好的文章。下面是他們的網站:/(3)TinyOS : TinyOS是UC Berkeley(加州大學伯克利分校)開發(fā)的開放源代碼操作系統(tǒng),專為嵌入式無線傳感網絡設計,操作系統(tǒng)基于構件(component-based)的架構使得快速的更新成為可能,而這又減小了受傳感網絡存儲器限制的代碼長度。TinyOS的構件包括網絡協(xié)議、分布式服務器、傳感器驅動及數據識別工具。它只是一個操作系統(tǒng),不過現在已經成立了 TinyOS ZigBee Working Group 已經開始設計開源的zigbee。非常值得我們的期待。Z-Stack的main函數在Zmain.c中,總體上來說,它一共做了兩件工作,一個是系統(tǒng)初始化,即有啟動代碼來初始化硬件系統(tǒng)和軟件架構需要的各個模塊,另一個作用就是開福寺執(zhí)行操作系統(tǒng)實體。其它的幾個例子文件中,唯一不同的是最后一個函數其它的函數都是一樣的。一般情況下用戶只需要額外添加三個文件就可以完成一個項目。一個是主文件,存放具體的任務事件處理函數如上述事例中的GenericApp_ProcessEvent,一個是這個主文件的頭文件,另外一個是操作系統(tǒng)的接口文件以Osal開頭,是專門存放任務處理函數數組tasksArr的文件。這樣就實現了Z-Stack代碼的公用,用戶只需要添加這幾個文件,編寫自己的任務處理函數就可以了。3 Z-Stack基礎概念3.1 ZigBee協(xié)議體系結構ZigBee技術作為一種無線傳感網絡的通信協(xié)議,按照7層OSI(Open System Interconnect Reference Model)開放系統(tǒng)互連參考模型來建立,每一層為上層提供一系列特殊的服務,數據實體提供數據傳輸服務,管理實體則提供所有其他的服務。所有的服務實體通過服務接入點(Server Access Point,SAP)為上層提供一個接口,每個SAP都支持一定數量的服務原語來實現所需要的功能。ZigBee標準的體系結構如下圖所示,其中IEEE802.15.4標準定義了底層即物理層(PhysicalLayer,PHY)和但介質訪問控制層(MediumAccessControlSubLayer,MAC)。ZigBee聯盟在此基礎上定義了網絡層(NetworkLayer,NWK)和應用層(ApplicationLayer,APL)架構。應用層包括應用支持子層(ApplicationSupportSubLays,APS),應用架構(ApplicationFramework,AF)、ZigBee設備對象(ZigBee Device Objects,ZDO)以及用戶定義應用對象(Manufacturer-Defined Application Objects,MDAO). ZigBee網絡層主要功能包括設備連接和斷開網絡里所采用的機制,以及在幀信息傳輸過程中所采用的安全性機制。此外,還包括設備之間的路由發(fā)現和路由維護和轉交。并且,網絡層對一跳(one-hop)鄰居設備的發(fā)現和相關結點信息的存儲。一個ZigBee協(xié)調器創(chuàng)建一個新的網絡,為新加入的設備分配短地址等。 ZigBee應用層由應用支持層、ZigBee設備和制造商所定義的應用 對象組成。應用支持層的功能 包括:維護綁定表在綁定的設備之間傳送消息。所謂綁定就是基于兩臺設備的服務和需求將它們匹配地連接越來。ZigBee設備對象的功能包括:定義設備在網絡中的角色(ZigBee協(xié)調器和終端設備),發(fā)起和響應綁定請求,在網絡設備之間建立安全機制。ZigBee設備對象還負責發(fā)現網絡中的設備,并且決定向他們提供何種應用服務。從應用的角度看,通信的

溫馨提示

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

評論

0/150

提交評論