Zigbee協(xié)議棧簡(jiǎn)介

1、Zigbee 協(xié)議棧簡(jiǎn)介

????????什么是 ZigBee 協(xié)議棧呢?它和 ZigBee 協(xié)議有什么關(guān)系呢?

????????協(xié)議是一系列的通信標(biāo)準(zhǔn),通信雙方需要共同按照這一標(biāo)準(zhǔn)進(jìn)行正常的數(shù)據(jù)發(fā)射和接收。協(xié)議棧是協(xié)議的具體實(shí)現(xiàn)形式,通俗點(diǎn)來(lái)理解就是協(xié)議棧是協(xié)議和用戶(hù)之間的一個(gè)接口,開(kāi)發(fā)人員通過(guò)使用協(xié)議棧來(lái)使用這個(gè)協(xié)議的,進(jìn)而實(shí)現(xiàn)無(wú)線數(shù)據(jù)收發(fā)。

????????圖1 展示了 ZigBee 無(wú)線網(wǎng)絡(luò)協(xié)議層的架構(gòu)圖。ZigBee 的協(xié)議分為兩部分,IEEE 802.15.4 定義了 PHY(物理層)和 MAC(介質(zhì)訪問(wèn)層)技術(shù)規(guī)范;ZigBee 聯(lián)盟定義了 NWK(網(wǎng)絡(luò)層)、APS(應(yīng)用程序支持子層)、APL(應(yīng)用層)技術(shù)規(guī)范。ZigBee 協(xié)議棧就是將各個(gè)層定義的協(xié)議都集合在一起,以函數(shù)的形式實(shí)現(xiàn),并給用戶(hù)提供 API(應(yīng)用層),用戶(hù)可以直接調(diào)用。


圖1? ZigBee 無(wú)線網(wǎng)絡(luò)協(xié)議層

????????在開(kāi)發(fā)一個(gè)應(yīng)用時(shí),協(xié)議較底下的層與應(yīng)用是相互獨(dú)立的,它們可以從第三方來(lái)獲得,因此我們需要做的就只是在應(yīng)用層進(jìn)行相應(yīng)的改動(dòng)。介紹到這里,大家應(yīng)該清楚協(xié)議和協(xié)議棧的關(guān)系了吧,是不是會(huì)想著怎么樣才能用協(xié)議棧來(lái)開(kāi)發(fā)自己的項(xiàng)目呢?技術(shù)總是不斷地在發(fā)展地,我們可以用ZigBee 廠商提供的協(xié)議棧軟件來(lái)方便地使用 ZigBee 協(xié)議棧(注意:不同廠商提供的協(xié)議棧是有區(qū)別的,此處介紹 TI 推出的 ZigBee 2007 協(xié)議棧也稱(chēng) Z-Stack)。

????????Z-stack 是挪威半導(dǎo)體公司 Chipcon(目前已經(jīng)被 TI 公司收購(gòu))推出其CC2430 開(kāi)發(fā)平臺(tái)時(shí),推出的一款業(yè)界領(lǐng)先的商業(yè)級(jí)協(xié)議棧軟件,由于這個(gè)協(xié)議棧軟件的出現(xiàn),用戶(hù)可以很容易地開(kāi)發(fā)出具體的應(yīng)用程序來(lái),也就是大家說(shuō)的掌握 10 個(gè)函數(shù)就能使用 ZigBee 通訊的原因。它使用瑞典公司 IAR 開(kāi)發(fā)的 IAREmbedded Workbench for MCS-51 作為它的集成開(kāi)發(fā)環(huán)境。Chipcon 公司為自己設(shè)計(jì)的 Z-Stack 協(xié)議棧中提供了一個(gè)名為操作系統(tǒng)抽象層 OSAL 的協(xié)議棧調(diào)度程序。對(duì)于用戶(hù)來(lái)說(shuō),除了能夠看到這個(gè)調(diào)度程序外,其它任何協(xié)議棧操作的具體實(shí)現(xiàn)細(xì)節(jié)都被封裝在庫(kù)代碼中。用戶(hù)在進(jìn)行具體的應(yīng)用開(kāi)發(fā)時(shí)只能夠通過(guò)調(diào)用API 接口來(lái)進(jìn)行,而無(wú)權(quán)知道 ZigBee 協(xié)議棧實(shí)現(xiàn)的具體細(xì)節(jié),也沒(méi)必要去知道。因此在這里提醒各位開(kāi)發(fā)者,在使用 ZigBee 協(xié)議棧進(jìn)行實(shí)際項(xiàng)目開(kāi)發(fā)時(shí),不需要關(guān)心協(xié)議棧是具體怎么實(shí)現(xiàn)的,當(dāng)然有興趣的也可以深入分析。

????????圖2 是 TI 公司的基于 ZigBee2007 的協(xié)議棧 Z-Stack-CC2530-2.3.0,所有文件目錄如紅色框所示,我們可以把它看做一個(gè)龐大的工程。或者是一個(gè)小型的操作系統(tǒng)。采用任務(wù)輪詢(xún)的方法運(yùn)行。


圖2? TI Z-stack TI Z-Stack-CC2530-2.3.0

????????來(lái)個(gè)小總結(jié):ZigBee 協(xié)議棧已經(jīng)實(shí)現(xiàn)了 ZigBee 協(xié)議,用戶(hù)可以使用協(xié)議棧提供的 API 進(jìn)行應(yīng)用程序的開(kāi)發(fā),在開(kāi)發(fā)過(guò)程中完全不必關(guān)心 ZigBee 協(xié)議的具體實(shí)現(xiàn)細(xì)節(jié),要關(guān)心的問(wèn)題是:應(yīng)用層的數(shù)據(jù)是使用哪些函數(shù)通過(guò)什么方式把數(shù)據(jù)發(fā)送出去或者把數(shù)據(jù)接收過(guò)來(lái)的。所以最重要的是我們要學(xué)會(huì)使用 ZigBee協(xié)議棧。

????????舉個(gè)例子,用戶(hù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的無(wú)線數(shù)據(jù)通信時(shí)的一般步驟:

????????1、組網(wǎng):調(diào)用協(xié)議棧的組網(wǎng)函數(shù)、加入網(wǎng)絡(luò)函數(shù),實(shí)現(xiàn)網(wǎng)絡(luò)的建立與節(jié)點(diǎn)的加入。

????????2、發(fā)送:發(fā)送節(jié)點(diǎn)調(diào)用協(xié)議棧的無(wú)線數(shù)據(jù)發(fā)送函數(shù),實(shí)現(xiàn)無(wú)線數(shù)據(jù)發(fā)送。

????????3、接收:接收節(jié)點(diǎn)調(diào)用協(xié)議棧的無(wú)線數(shù)據(jù)接收函數(shù),實(shí)現(xiàn)無(wú)線數(shù)據(jù)接收。

????????看起來(lái)是不是很簡(jiǎn)單呢,是不是有動(dòng)手試試的沖動(dòng)。具體的例程講解在這里就不說(shuō)先了,在接下來(lái)的教程里面會(huì)詳細(xì)地和大家一起討論 ZigBee 協(xié)議棧架構(gòu)中每個(gè)層所包含的內(nèi)容和功能及 Z-stack 的軟件架構(gòu)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于ZigBee,你需要知道的都在這里了! 在智能硬件和物聯(lián)網(wǎng)領(lǐng)域,時(shí)下大名鼎鼎的ZigBee可謂是無(wú)人不知,無(wú)人...
    雁過(guò)無(wú)痕_AdwardWong閱讀 428評(píng)論 0 0
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,663評(píng)論 1 32
  • 前言 很久沒(méi)有更新技術(shù)博客了。最近一年都在做低功耗藍(lán)牙和物聯(lián)網(wǎng)等相關(guān)的事情,想把一些經(jīng)驗(yàn)和心得寫(xiě)成博客分享出來(lái),也...
    熊小宇閱讀 7,453評(píng)論 2 8
  • 如果還有疑問(wèn),那就請(qǐng)穿紅色?!葼?布拉斯
    浩與瀚閱讀 191評(píng)論 2 2
  • 20181216弟兄姐妹們好,我叫吳燕青,是青姐的組員,因?yàn)橛H子關(guān)系很糟糕,在最無(wú)助的時(shí)候來(lái)到神愛(ài)之家。記得是20...
    一笑而過(guò)YQ閱讀 502評(píng)論 0 1

友情鏈接更多精彩內(nèi)容