DIY ZIGBEE 入門無線傳感器網(wǎng)絡(luò)
一、從一張廣告照片談起
ZigBee是一種新興的無線網(wǎng)絡(luò)技術(shù)標(biāo)準(zhǔn),主要用于近距離無線網(wǎng)絡(luò)連接。它的字面意思為“嗡嗡(zig)的蜜蜂(bee)”,來源于蜜蜂用于傳遞信息的舞蹈,蜜蜂通過“嗡嗡”地抖動(dòng)翅膀飛翔出“八字舞”來與同伴傳遞花粉的方位信息,這樣的方式構(gòu)成了蜜蜂群體中的通信網(wǎng)絡(luò)。該技術(shù)的主要特色有低速、低功耗、低成本、支援大量網(wǎng)絡(luò)節(jié)點(diǎn)、支援多種網(wǎng)絡(luò)拓?fù)洹⒌蛷?fù)雜度、快速、可靠、安全。它工作于2.4GHz( 全球)、868MHz( 歐洲) 及915MHz( 美國(guó))的ISM 頻段,其基礎(chǔ)是IEEE802.15.4,這是IEEE 無線個(gè)人區(qū)域網(wǎng)工作組的一項(xiàng)標(biāo)準(zhǔn),被稱作IEEE802.15.4(ZigBee) 技術(shù)標(biāo)準(zhǔn)。
2001年8月ZigBee聯(lián)盟成立,主要負(fù)責(zé)制定相關(guān)的無線網(wǎng)絡(luò)協(xié)定。2002年下半年,英國(guó)Invensys公司、日本三菱電氣公司、美國(guó)摩托羅拉公司以及荷蘭飛利浦半導(dǎo)體公司四大巨頭共同宣布,它們將加盟ZigBee 聯(lián)盟,共同研發(fā)下一代無線通信標(biāo)準(zhǔn),這一事件成為該項(xiàng)技術(shù)發(fā)展過程中的里程碑。目前已經(jīng)包括2004、2006及2007/Pro版本。
由于ZIGBEE技術(shù)的高速發(fā)展,引起了廣大電子愛好者和單片機(jī)愛好者的極大關(guān)注,都希望自己也能動(dòng)手熟悉這個(gè)新技術(shù),但是,當(dāng)大家實(shí)際要準(zhǔn)備動(dòng)手的時(shí)候, 確感到好像是老虎啃天,無處下手,因?yàn)閆IGBEE技術(shù)相對(duì)于一個(gè)簡(jiǎn)單無線網(wǎng)絡(luò)而言,太過于復(fù)雜和龐大,從基礎(chǔ)的無線知識(shí),包括高頻天線,高頻調(diào)制技術(shù),到無線和數(shù)字通訊原理,到個(gè)人區(qū)域無線網(wǎng)絡(luò)的國(guó)際標(biāo)準(zhǔn)IEEE802.15.4 , MAC 原理, 再到ZIGBEE無線網(wǎng)絡(luò)技術(shù)規(guī)范,無線網(wǎng)絡(luò)拓?fù)洌瑹o線網(wǎng)絡(luò)路由,無線網(wǎng)絡(luò)安全 …… 如果將這些知識(shí)和理論變成書本,可能有厚厚幾尺高,初次入門者要很快實(shí)現(xiàn)這樣多的知識(shí)跨越,進(jìn)行DIY,幾乎是不可能完成的任務(wù);
從哪里開始我們的DIYZIGBEE 歷程?我想到了在美國(guó)TI公司網(wǎng)頁(yè)上看到的一張廣告照片,見圖一所示:
圖1 TI 網(wǎng)頁(yè)上ZIGBEE 網(wǎng)絡(luò)處理器廣告照片
這張照片上,是一個(gè)充滿自信的小女孩,好像是上小學(xué)3年級(jí)那種好學(xué)生, 背景上的黑白上寫了一行粉筆字:
CC2480+MCU=ZIGBEE , 我們知道,CC2480是TI公司推出的ZIGBEE網(wǎng)絡(luò)處理器,將復(fù)雜的ZIGBEE網(wǎng)絡(luò)協(xié)議棧,處理成了簡(jiǎn)單的用戶接口命令,用戶只要使用任何簡(jiǎn)單的單片機(jī)(微控制器),就可以容易的實(shí)現(xiàn)對(duì)ZIGBEE網(wǎng)絡(luò)的控制;TI推出這個(gè)芯片的目的,就是希望ZIGBEE容易被使用,所以這個(gè)廣告照片,TI特別選擇一個(gè)小學(xué)生,來說明其容易性;
這張照片,讓我們豁然開朗,因?yàn)槲覀冊(cè)谇懊嬉呀?jīng)介紹了DIYRF-2510和熟悉了CC2510 無線微控制器 (8051內(nèi)核無線單片機(jī)),所以,我們只要加上一個(gè)ZIGBEE網(wǎng)絡(luò)處理器,就可以繞開無線協(xié)議棧復(fù)雜的內(nèi)部結(jié)構(gòu),直接進(jìn)入ZIGBEE無線網(wǎng)絡(luò)的實(shí)際使用。也就是說,我們先將ZIGBEE網(wǎng)絡(luò)處理器當(dāng)成一個(gè)“黑盒”,使用我們已經(jīng)熟悉的CC2510單片機(jī)(注意只使用單片機(jī)的功能),采用軟件來控制ZIGBEE無線網(wǎng)絡(luò)處理器。來學(xué)習(xí)和體驗(yàn)ZIGBEE無線傳感器網(wǎng)絡(luò)中那些最重要的技術(shù)特性,包括節(jié)點(diǎn)的類型,網(wǎng)絡(luò)拓?fù)?,網(wǎng)絡(luò)數(shù)據(jù)通訊,傳感器信號(hào)采集和無線傳輸,低功耗網(wǎng)絡(luò)等等,這樣,就可以用很短的時(shí)間來完成這漫長(zhǎng)的學(xué)習(xí)之旅;
二、快速實(shí)現(xiàn)升級(jí),準(zhǔn)備好我們的ZIGBEE無線傳感器網(wǎng)絡(luò)系統(tǒng)
在2009年第9期《無線電》雜志,我們使用的是無線龍科技公司生產(chǎn)的DIYRF-2510系統(tǒng),我們需用購(gòu)買升級(jí)包裝:DIYRF-2480-C或者DIYRF-2480-L ;不同的升級(jí)包裝包括不同的網(wǎng)絡(luò)處理器模塊 ,分別采用TI CC2480或者無線龍科技LC2480 網(wǎng)絡(luò)處理器,但是軟件兼容,模塊插座也兼容,當(dāng)然,采用不同網(wǎng)絡(luò)處理器的升級(jí)套件價(jià)格也有很大差別, 和TI CC2480不同,深圳無線龍科技公司設(shè)計(jì)的LC2480網(wǎng)絡(luò)處理器采用了標(biāo)準(zhǔn) TI CC2430芯片,內(nèi)置了無線龍開發(fā)的兼容軟件,圖二是 無線龍 LC2480網(wǎng)絡(luò)處理器模塊原理示意圖
圖2 無線龍 LC2480網(wǎng)絡(luò)處理器模塊原理示意圖
我們將DIYRF-2510無線網(wǎng)關(guān)上的模塊,拔出放到安全的地方,然后插入DIYRF-2480升級(jí)套裝中的一個(gè)無線網(wǎng)絡(luò)處理器模塊,就方便的完成了無線網(wǎng)關(guān)的ZIGBEE升級(jí),然后,我們?cè)僭贒IYRF-2510套件的無線節(jié)點(diǎn)底板上,分別插上剩下的兩個(gè)無線龍科技公司生產(chǎn)的2480無線網(wǎng)絡(luò)處理器模塊,就全部快速完成了DIYRF-2510向DIY2480的硬件升級(jí),也就是完成了DIY ZIGBEE無線傳感器網(wǎng)絡(luò)的硬件準(zhǔn)備工作,DIYRF升級(jí)套件售價(jià)非常低廉,用戶只需要300元人民幣(全套系統(tǒng)DIYRF2510+ZIGBEE2480升級(jí)套裝,僅僅需要700元人民幣),就可以在DIYRF-2510基礎(chǔ)上,升級(jí)為完整的ZIGBEE無線網(wǎng)絡(luò)DIY平臺(tái)。通過www.WXLMCU.com , 可以非常容易在無線龍科技公司網(wǎng)上商城完成現(xiàn)貨購(gòu)買;
升級(jí)后的DIY-2480 ZIGBEE DIY系統(tǒng)如圖3所示
圖3 升級(jí)后的DIY-2480 ZIGBEE DIY系統(tǒng)
由于我們?cè)瓉淼腄IYRF-2510無線節(jié)點(diǎn)底板的CC2510無線單片機(jī)中,內(nèi)置的是簡(jiǎn)單網(wǎng)絡(luò)表演軟件代碼(HEX).在我們實(shí)現(xiàn)對(duì)ZIGBEE網(wǎng)絡(luò)處理器控制的時(shí)候,我們需用使用新的代碼,所以,對(duì)兩個(gè)節(jié)點(diǎn)板,我們必需從新下載代碼;
將節(jié)點(diǎn)板分別連接到網(wǎng)關(guān)板,如圖4連接,使用CC2510仿真器下載軟件到節(jié)點(diǎn)板CC2510中去:
圖4 連接到PC,下載ZIGBEE網(wǎng)絡(luò)處理器控制表演軟件到兩個(gè)節(jié)點(diǎn)板
完成兩個(gè)模塊下載ZIGBEE控制表演軟件后,我們可以裝上電池,將USB電纜連接到通訊口(不是仿真器),開始我們?cè)谠赯IGBEE無線網(wǎng)絡(luò)世界的翱翔…..
三、開始你第一個(gè)ZIGBEE實(shí)驗(yàn)
首先,將網(wǎng)關(guān)(注意檢查是否插上了2480網(wǎng)絡(luò)處理器模塊)連接到電腦的USB接口,另外兩個(gè)無線節(jié)點(diǎn)板插上2480網(wǎng)絡(luò)處理器模塊,(注意檢查是否下載了正確的ZIGBEE2480表演代碼),ZIGBEE網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)如圖5所示;
圖5 DIYRF-2480基本 ZIGBEE網(wǎng)絡(luò)結(jié)構(gòu)
在開始我們的實(shí)驗(yàn)前,我們必需先了解一下ZigBee網(wǎng)絡(luò)技術(shù)的一些基礎(chǔ)知識(shí)。
每個(gè)ZigBee 個(gè)人區(qū)域網(wǎng)(Personal Area Network ,PAN),可以由數(shù)千個(gè)或者更多無線節(jié)點(diǎn)組成。每個(gè)ZigBee網(wǎng)絡(luò)中的節(jié)點(diǎn),都是由一個(gè)單片機(jī)加上無線收發(fā)器組成,我們將單片機(jī)和ZigBee無線收發(fā)器集成為一個(gè)單芯片的片上系統(tǒng),也稱為ZigBee無線單片機(jī),CC2430、CC2480、LC2480等都是這樣的無線單片機(jī),在無線單片機(jī)內(nèi)部的存儲(chǔ)器里面,安裝了ZigBee無線網(wǎng)絡(luò)軟件協(xié)議棧后,無線單片機(jī)就可以實(shí)現(xiàn)ZigBee無線網(wǎng)絡(luò)節(jié)點(diǎn)的功能。如圖6所示:
圖6 ZIGBEE協(xié)議棧
在ZigBee網(wǎng)絡(luò)中,有三種主要的網(wǎng)絡(luò)拓?fù)洌謩e是星狀、樹狀和網(wǎng)狀,如圖7所示。
圖7 ZIGBEE拓?fù)?
按照功能不同,將無線網(wǎng)絡(luò)節(jié)點(diǎn)分為三種不同類型,包括協(xié)調(diào)者節(jié)點(diǎn)(Coordinator)、路由器節(jié)點(diǎn)(Router)和終 端節(jié)點(diǎn)(End Device) ,在圖8中,按不同顏色來示意這些不同類型的節(jié)點(diǎn)。
圖8 ZIGBEE網(wǎng)絡(luò)拓?fù)?
在簡(jiǎn)單了解基礎(chǔ)概念后,我們可以開始ZigBee網(wǎng)絡(luò)實(shí)驗(yàn)了,首先按照DIYRF-2480使用說明書要求,一步一步安裝DIYRF計(jì)算機(jī)監(jiān)控軟件,然后啟動(dòng)軟件,你可以看到圖9的歡迎畫面。
圖 9 DIY ZIGBEE 無線網(wǎng)絡(luò)軟件歡迎畫面
將DIYRF-2480 網(wǎng)關(guān)節(jié)點(diǎn)使用USB電纜連接到PC,如圖10所示。點(diǎn)擊PC歡迎畫面上的“點(diǎn)擊進(jìn)入”,DIYRF PC
監(jiān)控軟件會(huì)出現(xiàn),如圖11界面,完成網(wǎng)絡(luò)參數(shù)配置即可開始實(shí)驗(yàn)演示。
圖10 連接你的網(wǎng)關(guān)到PC(USB)
圖11 ZIGBEE 網(wǎng)絡(luò)配置
根據(jù)ZigBee技術(shù)規(guī)范,每個(gè)個(gè)人區(qū)域網(wǎng)必須有一個(gè)唯一的協(xié)調(diào)者節(jié)點(diǎn),該節(jié)點(diǎn)承擔(dān)網(wǎng)絡(luò)時(shí)序管理、網(wǎng)絡(luò)協(xié)調(diào)、存儲(chǔ)網(wǎng)絡(luò)地圖、允許其他設(shè)備加入網(wǎng)絡(luò)、網(wǎng)絡(luò)組織、路由信息等,是一個(gè)全功能節(jié)點(diǎn)(FFD),任何時(shí)候都必需打開無線收發(fā)部分,在ZigBee 網(wǎng)絡(luò)中有非常重要的作用。
當(dāng)你給DIYRF-2480 網(wǎng)關(guān)(協(xié)調(diào)者節(jié)點(diǎn))加上電源的時(shí)候,模塊上的ZigBee無線單片機(jī)已經(jīng)完成了一個(gè)ZigBee網(wǎng)絡(luò)格式化的啟動(dòng)過程,這個(gè)過程包括:建立一個(gè)獨(dú)立的ZigBee個(gè)人區(qū)域網(wǎng),這個(gè)網(wǎng)絡(luò)一個(gè)唯一的個(gè)人區(qū)域網(wǎng)號(hào)碼(PAN ID),選擇了一個(gè)可以使用的,在2.4GHz范圍內(nèi)的通信頻道,等待其他網(wǎng)絡(luò)設(shè)備加入這個(gè)網(wǎng)絡(luò)。
然后,我們采用DIYRF-2480上的按鍵的第一位,分別設(shè)定“0”或者“1”來確定LC2480模塊工作在路由或者終端 節(jié)點(diǎn),我們將無線節(jié)點(diǎn)板1設(shè)定為路由器節(jié)點(diǎn),將無線節(jié)點(diǎn)板2設(shè)定為終端節(jié)點(diǎn),安裝你的無線節(jié)點(diǎn)的電池,然后打開電池開關(guān)到ON,設(shè)定DIP開關(guān)在全部關(guān)閉——0XX,或者1XX ,你可以看見圖12所示的畫面。
圖12 ZIGBEE節(jié)點(diǎn)加入網(wǎng)絡(luò)
經(jīng)過幾秒鐘等待,你可以從DIYRF-2480 PC網(wǎng)絡(luò)監(jiān)控軟件看到這里出現(xiàn)了兩個(gè)不同類型的節(jié)點(diǎn)。如圖13所示,紅色是網(wǎng)關(guān) 節(jié)點(diǎn),黃色是路由節(jié)點(diǎn)。如果你選購(gòu)了更多的LC2480節(jié)點(diǎn)和無線底板和模塊,例如再加兩個(gè)無線傳感器節(jié)點(diǎn),你可以看到如圖13所示的圖像,有5個(gè)節(jié)點(diǎn)在這個(gè)ZigBee網(wǎng)絡(luò)中間,藍(lán)色為終端節(jié)點(diǎn)。你可以簡(jiǎn)單關(guān)閉電源開關(guān),節(jié)點(diǎn)會(huì)從屏幕上消失,然后打開電池開關(guān),節(jié)點(diǎn)會(huì)重新加入網(wǎng)絡(luò)。
圖13 更多的網(wǎng)絡(luò)節(jié)點(diǎn)和路由器
當(dāng)你改變底板的開關(guān)從X0X,到X1X, 會(huì)指定節(jié)點(diǎn)從路由傳輸數(shù)據(jù),你可以在PC軟件屏幕上看到這個(gè)變化。從節(jié)點(diǎn)上,你可以看到相關(guān)傳感器數(shù)據(jù)傳輸,包括溫度、光敏、RSSI(信號(hào)強(qiáng)度)等,體驗(yàn)ZigBee無線傳感器網(wǎng)絡(luò)的神奇和強(qiáng)大。
四、自己動(dòng)手DIY通過軟件控制ZIGBEE網(wǎng)絡(luò)
看了這些激動(dòng)人心的應(yīng)用,可能你會(huì)心情激動(dòng),希望自己也來動(dòng)動(dòng)手,看看自己能不能通過改寫軟件,實(shí)現(xiàn)對(duì)低功耗無線網(wǎng)絡(luò)的控制,DIYRF-2480 為你提供了這樣的無限可能。
對(duì)于已經(jīng)熟悉8051系列單片機(jī)和C51語(yǔ)言的愛好者,可以直接上手下面的實(shí)驗(yàn)(對(duì)于還不熟悉單片機(jī)的愛好者,仍然可以使用系統(tǒng),從頭開始學(xué)習(xí)8051單片機(jī)和C語(yǔ)言,但是你需要入門教材和實(shí)驗(yàn),好在這些東西都可以很快在網(wǎng)絡(luò)上找到)。
對(duì)于已經(jīng)有單片機(jī)和C語(yǔ)言的,并且熟悉IAR調(diào)試編譯工具的愛好者,讓我們開始一個(gè)ZIGBEE無線網(wǎng)絡(luò)軟件DIY之旅。
DIY目標(biāo),使用兩個(gè)ZIGBEE 2480模塊無線節(jié)點(diǎn),不需要PC機(jī),用加速度傳感器做一個(gè)ZIGBEE防盜報(bào)警實(shí)驗(yàn)。
步驟是:
1、安裝IAR C51編譯軟件(需要自己到IAR網(wǎng)站下載評(píng)估版本)。
2、按如下示意圖十三連接仿真器到PC USB 口, 注意這次是不同USB接口。
圖14 連接仿真器到PC USB 口
3、根據(jù)需要將仿真器分別連接無線節(jié)點(diǎn)板,進(jìn)行下載和調(diào)試,首先進(jìn)行第一號(hào)節(jié)點(diǎn),作為終端節(jié)點(diǎn)使用。
4、打開工程軟件,DIYRFZIGBEE.PRJ 如圖15。
圖15 IAR平臺(tái) DIYRF工程文件和和源代碼
5、你可以在C語(yǔ)言源代碼中,修改和定義你使用無線節(jié)點(diǎn)上加速度門限,然后繼續(xù)編譯,如果提示正確,說明你成功完成編譯。
6、點(diǎn)擊下載(注意當(dāng)你點(diǎn)擊這個(gè)鍵,預(yù)先固化表演代碼,會(huì)完全丟失,如果你需要恢復(fù),可以使用光盤中下載工具,下載HEX代碼,恢復(fù)表演代碼)。
7、退出下載。
8、按啟動(dòng)(RESET)開始運(yùn)行。
9、仿真電纜連接 2號(hào)節(jié)點(diǎn),定義協(xié)調(diào)者節(jié)點(diǎn) ,然后重復(fù)3-8步。
10.1號(hào) 節(jié)點(diǎn)內(nèi)置MMC7660加速度傳感器,你可以打開1號(hào)節(jié)點(diǎn)的電池開關(guān),把節(jié)點(diǎn)固定在被監(jiān)視的設(shè)備上,如筆記本電腦或其他貴重設(shè)備,當(dāng)這個(gè)設(shè)備移動(dòng)超過門限時(shí),2號(hào)節(jié)點(diǎn)(ZigBee協(xié)調(diào)器)的LED會(huì)指示報(bào)警。如果你在LED控制線外加驅(qū)動(dòng)蜂鳴器,可以聽到響聲,知道設(shè)備被移動(dòng),有丟失危險(xiǎn)。
11.這樣,就通過CC2510軟件代碼的修改,實(shí)現(xiàn)了對(duì)CC2480和ZigBee網(wǎng)絡(luò)的直接控制。
從這里出發(fā),你可以采用軟件DIY實(shí)現(xiàn)ZigBee的各種 高級(jí)功能,如使用DIYRF-2480的基本硬件進(jìn)行擴(kuò)展,設(shè)計(jì)一ZigBee健康照顧系統(tǒng),如圖16所示。
圖16 ZIGBEE 健康照顧系統(tǒng)
又如,可以繼續(xù)增加購(gòu)買無線節(jié)點(diǎn)板,自己建設(shè)更復(fù)雜的多節(jié)點(diǎn)ZigBee無線傳感器網(wǎng)絡(luò),實(shí)現(xiàn)一個(gè)工業(yè)儀表的無線傳感器網(wǎng)絡(luò),如圖17所示。
圖17 ZIGBEE 工業(yè)儀表系統(tǒng)
版權(quán)信息:作者保留版權(quán),歡迎轉(zhuǎn)載,但是轉(zhuǎn)載和刊登必須保證文章完整,不得進(jìn)行修改;