ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用_圖文_第1頁(yè)
ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用_圖文_第2頁(yè)
ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用_圖文_第3頁(yè)
ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用_圖文_第4頁(yè)
ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用_圖文_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、南陽(yáng)理工學(xué)院本科畢業(yè)設(shè)計(jì)(論文ZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用Design and Application of ZigBee wireless module學(xué)院(系:電子與電氣工程學(xué)院專業(yè):自動(dòng)化學(xué)生姓名: *學(xué)號(hào): #指導(dǎo)教師(職稱:#評(píng)閱教師:完成日期:201#年#月#號(hào)南陽(yáng)理工學(xué)院Nanyang Institute of TechnologyZigBee無(wú)線模塊的設(shè)計(jì)與應(yīng)用#專業(yè)#【摘要】本設(shè)計(jì)使用TI公司的CC2530作為主控制器,利用Z-Stack協(xié)議棧作為系統(tǒng)軟件的應(yīng)用基礎(chǔ),實(shí)現(xiàn)對(duì)ZigBee無(wú)線網(wǎng)絡(luò)的學(xué)習(xí)、應(yīng)用以及深度的開(kāi)發(fā)設(shè)計(jì)。設(shè)計(jì)有協(xié)調(diào)器及傳感器節(jié)點(diǎn)兩部分,傳感器節(jié)點(diǎn)使用濕

2、溫度傳感器DHT11采集溫濕度數(shù)據(jù)通過(guò)ZigBee網(wǎng)絡(luò)上傳至協(xié)調(diào)器,協(xié)調(diào)器進(jìn)行數(shù)據(jù)處理后通過(guò)Nokia5110液晶屏和上位機(jī)顯示,同時(shí)使用LED顯示運(yùn)行狀態(tài)。使用Altium Designer軟件設(shè)計(jì)電路原理圖以及PCB 設(shè)計(jì),應(yīng)用IAR軟件對(duì)Z-Stack協(xié)議棧進(jìn)行編寫、編譯、下載、仿真,從而實(shí)現(xiàn)軟件與硬件的聯(lián)機(jī)調(diào)試,進(jìn)行系統(tǒng)的仿真和驗(yàn)證;經(jīng)過(guò)對(duì)系統(tǒng)的調(diào)試運(yùn)行,結(jié)果符合設(shè)計(jì)要求?!娟P(guān)鍵詞】ZigBee;CC2530;DHT11Design and Application of ZigBee wireless module# #Abstract:This design uses TI'

3、s CC2530 as the main controller, using Z-Stack protocol stack as an application-based system software, to achieve the learning ZigBee wireless network, application and depth of development and design. There are two parts of the design coordinator and sensor nodes, sensor nodes using wet temperature

4、sensor DHT11 temperature and humidity data collected via ZigBee network uploaded to the coordinator, the coordinator for data processing by Nokia5110 LCD screen and PC display while using the LED display operating status . Software design using Altium Designer schematic and PCB design software appli

5、cation IAR Z-Stack protocol stack to write, compile, download, simulation, enabling software and hardware on-line debugging, system simulation and verification ; after commissioning of the system operation, the results in line with the design requirements.Key words:ZigBee;CC2530;DHT11目錄1 引言 (11.1 設(shè)計(jì)

6、背景 (11.2 設(shè)計(jì)內(nèi)容 (22 系統(tǒng)設(shè)計(jì) (22.1 ZigBee應(yīng)用 (22.1.1 ZigBee結(jié)構(gòu) (22.1.2 Z-Stack協(xié)議棧 (42.2 元件選型 (72.2.1 CC2530 (72.2.2 DHT11 (73 系統(tǒng)硬件設(shè)計(jì) (83.1 硬件設(shè)計(jì)方案 (83.2 CC2530最小系統(tǒng)設(shè)計(jì) (93.3 RF射頻電路設(shè)計(jì) (103.4 穩(wěn)壓電源電路設(shè)計(jì) (103.5 LCD及LED顯示電路設(shè)計(jì) (123.6 DHT11傳感器電路設(shè)計(jì) (124 系統(tǒng)軟甲件設(shè)計(jì) (134.1 軟件應(yīng)用環(huán)境 (134.2 Z-Stack協(xié)議棧應(yīng)用初始化 (144.2.1 系統(tǒng)初始化 (144.2

7、.2 操作系統(tǒng)執(zhí)行 (154.3協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì) (174.4 傳感器節(jié)點(diǎn)軟件設(shè)計(jì) (185 系統(tǒng)設(shè)計(jì)結(jié)果測(cè)試 (19結(jié)束語(yǔ) (20參考文獻(xiàn) (20附錄 (20致謝 (301 引言隨著科技技術(shù)的飛速發(fā)展,無(wú)線技術(shù)逐步取代有線技術(shù),是未來(lái)科學(xué)技術(shù)發(fā)展的趨勢(shì)。短距離無(wú)線通信領(lǐng)域,存在著IEEE 802.11、藍(lán)牙、WiFi等通用的成熟技術(shù)雖然它們各有優(yōu)勢(shì),但是功耗大、組網(wǎng)能力差等劣勢(shì)也是相當(dāng)明顯的作為補(bǔ)充,ZigBee 聯(lián)盟于2004 年推出了基于IEEE 802.15.4物理層和MAC層的ZigBee技術(shù),它是低成本、低功耗和低速率無(wú)線通信協(xié)議1。ZigBee 協(xié)議基于IEEE 802.15.

8、4 標(biāo)準(zhǔn),在其上定義了網(wǎng)絡(luò)層和應(yīng)用層。它實(shí)現(xiàn)了多個(gè)小型傳感器設(shè)備節(jié)點(diǎn)間的協(xié)調(diào)通信。ZigBee 技術(shù)解決了低成本、低功耗和低速率無(wú)線通信技術(shù)空白,它的技術(shù)定位是其成功的關(guān)鍵ZigBee主要技術(shù)特點(diǎn)如下:(1通信速率低、協(xié)議簡(jiǎn)單ZigBee采用星型網(wǎng)絡(luò)和網(wǎng)狀網(wǎng)絡(luò),適用于數(shù)據(jù)傳輸速率低的設(shè)備,傳輸速率為20 Kbps到250 Kbps。(2功耗低、設(shè)備省電:因?yàn)樵O(shè)備工作周期很短并且 ZigBee 采用了多種節(jié)能模式,其功耗極低。兩節(jié)五號(hào)電池可以支持長(zhǎng)達(dá)6個(gè)月到2年的使用時(shí)間,是ZigBee相當(dāng)明顯的優(yōu)勢(shì)。(3成本低廉、工作頻段靈活,ZigBee 協(xié)議免專利費(fèi);簡(jiǎn)單協(xié)議、低數(shù)據(jù)速率和小的存儲(chǔ)空間大大

9、降低了ZigBee的成本。另外,ZigBee 的工作頻段靈活,使用頻段為2 .4 GHz,868MHz(歐洲及915 MHz(美國(guó),這三個(gè)頻段均為免執(zhí)照頻段。(4 接入網(wǎng)絡(luò)快,時(shí)延短:設(shè)備搜索時(shí)延典型值為30 ms,設(shè)備接入時(shí)延為15 ms,休眠啟動(dòng)時(shí)延為15 ms,接入網(wǎng)絡(luò)和傳送數(shù)據(jù)時(shí)延短,適合監(jiān)控應(yīng)用。(5網(wǎng)絡(luò)容量很大:1個(gè) ZigBee 網(wǎng)絡(luò)可以容納一個(gè)主設(shè)備和65535 個(gè)從設(shè)備。(6安全性好:ZigBee加密算法采用A ES-128 ,同時(shí)提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,可以靈活確定各個(gè)應(yīng)用的安全屬性。(7可靠件好:ZigBee 采用了CSMACA 機(jī)制,避免了發(fā)送數(shù)據(jù)時(shí)的競(jìng)爭(zhēng)、沖突

10、。采用返回ACK的數(shù)據(jù)傳輸機(jī)制:每個(gè)數(shù)據(jù)包必須等待接收方的確認(rèn)ACK信息才能發(fā)送下一個(gè)數(shù)據(jù)包。(8 ZigBee網(wǎng)絡(luò)的自組織、自愈能力強(qiáng):ZigBee 網(wǎng)絡(luò)的形成無(wú)需人工干預(yù),設(shè)備節(jié)點(diǎn)可以通過(guò)信息交互知道其它設(shè)備節(jié)點(diǎn)的存在,接著便可以確定相互之間的關(guān)系, ZigBee 網(wǎng)絡(luò)的自愈功能使得變動(dòng)設(shè)備節(jié)點(diǎn)位置、刪除或增加設(shè)備節(jié)點(diǎn)后,能夠自動(dòng)修復(fù)網(wǎng)絡(luò),不需人工干預(yù),保證了系統(tǒng)的可靠性。1.1 設(shè)計(jì)背景目前眾多的無(wú)線網(wǎng)絡(luò)技術(shù)中,ZigBee技術(shù)作為一種新興的無(wú)線網(wǎng)絡(luò)技術(shù),在工業(yè)控制、消費(fèi)電子等領(lǐng)域以及科研開(kāi)發(fā)中得到了關(guān)注和使用,顯示出其強(qiáng)勁的應(yīng)用勢(shì)頭。無(wú)線采集系統(tǒng)在民用方面涉及城市公共安全、公共衛(wèi)生、安

11、全生產(chǎn)、智能交通、智能家居、環(huán)境監(jiān)控等領(lǐng)域。隨著無(wú)線技術(shù)的飛速發(fā)展,ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)已經(jīng)得到了很大的發(fā)展。但是很多時(shí)候?qū)igBee的應(yīng)用多使用成型的模塊,這樣沒(méi)有深入了解ZigBee,造成對(duì)ZigBee 熟悉,卻沒(méi)有進(jìn)一步開(kāi)發(fā)利用,故本設(shè)計(jì)是建立在進(jìn)一步學(xué)習(xí)ZigBee網(wǎng)絡(luò)的基礎(chǔ)上,基于Z-Stack協(xié)議棧來(lái)對(duì)對(duì)ZigBee網(wǎng)絡(luò)從硬件到軟件做深入學(xué)習(xí)以及進(jìn)一步的設(shè)計(jì)開(kāi)發(fā)。本設(shè)計(jì)以CC2530作為ZigBee網(wǎng)絡(luò)的主控制器,以Z-Stack協(xié)議棧作為實(shí)現(xiàn)ZigBee 的軟件基礎(chǔ),以溫濕度傳感器DHT11作為數(shù)據(jù)采集對(duì)象,實(shí)現(xiàn)對(duì)當(dāng)前的溫濕度的監(jiān)控以及警報(bào),該方法為構(gòu)建低成本,高效,便于維

12、護(hù)的ZigBee系統(tǒng)提供了良好的體系框架結(jié)構(gòu)和設(shè)計(jì)思想2。1.2 設(shè)計(jì)內(nèi)容本課題是研究基于ZigBee技術(shù)的無(wú)線采集系統(tǒng)模塊,主要對(duì)無(wú)線采集系統(tǒng)中的Zi gBee節(jié)點(diǎn)(包括MCU和無(wú)線傳輸模塊的進(jìn)行研究和應(yīng)用。主要內(nèi)容包括:基于ZigBee模塊(包括MCU、無(wú)線傳輸模塊設(shè)計(jì)的硬件電路。主要是研究TI公司的CC2530的硬件設(shè)計(jì)。設(shè)計(jì)協(xié)調(diào)器和傳感器節(jié)點(diǎn)的無(wú)線通信網(wǎng)絡(luò),實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)之間的無(wú)線通訊的軟件設(shè)計(jì)。設(shè)計(jì)終端溫度采集節(jié)點(diǎn)的設(shè)計(jì),主要以DHT11數(shù)字溫濕度傳感器,將采集到的溫濕度數(shù)據(jù)記錄到傳感器節(jié)點(diǎn)內(nèi),傳感器節(jié)點(diǎn)將其再通過(guò)ZigBee無(wú)線網(wǎng)絡(luò)上傳至協(xié)調(diào)器。協(xié)調(diào)器接收到溫濕度數(shù)據(jù)后,處理后通過(guò)LC

13、D 5110液晶顯示在現(xiàn)場(chǎng)顯示,也可以通過(guò)串口將協(xié)調(diào)器接收到的數(shù)據(jù)上傳至上位機(jī),方便操作人員監(jiān)控。2 系統(tǒng)設(shè)計(jì)2.1 ZigBee應(yīng)用2.1.1 ZigBee結(jié)構(gòu)在ZigBee網(wǎng)絡(luò)中定義了三種網(wǎng)絡(luò)角色,分別是Coordinator(網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)為紅色節(jié)點(diǎn),Router(網(wǎng)絡(luò)路由器節(jié)點(diǎn)為藍(lán)色,End Device(網(wǎng)絡(luò)終端節(jié)點(diǎn)為黃色。Coordinator(網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn):負(fù)責(zé)網(wǎng)絡(luò)建立和網(wǎng)絡(luò)地址的分配以及網(wǎng)絡(luò)的維護(hù)等功能;Router(網(wǎng)絡(luò)路由器節(jié)點(diǎn):負(fù)責(zé)找尋、建立及修復(fù)資料包路由路徑,并負(fù)責(zé)轉(zhuǎn)運(yùn)資料包,同時(shí)也可以配置網(wǎng)絡(luò)地址給子節(jié)點(diǎn);End Device(網(wǎng)絡(luò)終端節(jié)點(diǎn):只能選擇已經(jīng)形成的網(wǎng)絡(luò)

14、,可傳送資料。而對(duì)于本設(shè)計(jì)來(lái)說(shuō)因?yàn)椴淮嬖谶h(yuǎn)距離的數(shù)據(jù)傳輸,而且節(jié)點(diǎn)數(shù)目較少,就沒(méi)有采用路由節(jié)點(diǎn),只是用到了終端節(jié)點(diǎn),并且設(shè)計(jì)中把終端節(jié)點(diǎn)稱作傳感器節(jié)點(diǎn)。1.星狀連接 圖1 星狀結(jié)構(gòu)如上圖1為星狀結(jié)構(gòu),即每個(gè)節(jié)點(diǎn)都只能和協(xié)調(diào)器通訊。2.樹(shù)狀連接在星狀連接方式的基礎(chǔ)上,發(fā)展出了串狀連接方式(有時(shí)也稱樹(shù)狀連接。樹(shù)狀結(jié)構(gòu)如上圖2中,串狀連接的結(jié)構(gòu)是在星狀連接的基礎(chǔ)上,增加了若干轉(zhuǎn)發(fā)節(jié)點(diǎn)(藍(lán)色節(jié)點(diǎn),這些轉(zhuǎn)接點(diǎn)就是路由器節(jié)點(diǎn),他們之間也可以相互通信。圖1-1是一個(gè)路由器與三個(gè)終端節(jié)點(diǎn)組成星狀網(wǎng)絡(luò)后,再與另一個(gè)終端節(jié)點(diǎn)發(fā)送信息到協(xié)調(diào)器上,整體又形成了樹(shù)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。 圖2 樹(shù)狀結(jié)構(gòu)3.網(wǎng)狀連接為了實(shí)現(xiàn)任意

15、無(wú)線節(jié)點(diǎn)之間都可以傳遞信息的目標(biāo),在串狀連接方式的基礎(chǔ)上又發(fā)展了網(wǎng)狀連接方式。網(wǎng)狀連接方式又稱為點(diǎn)到點(diǎn)到點(diǎn)(point-to-point-topoint方式由于網(wǎng)狀連接方式中每個(gè)節(jié)點(diǎn)的智能化,所以,當(dāng)網(wǎng)絡(luò)中任一節(jié)點(diǎn)故障時(shí),附近的無(wú)線節(jié)點(diǎn)會(huì)代替該故障的節(jié)點(diǎn),繼續(xù)進(jìn)行信息的傳輸和轉(zhuǎn)發(fā),從而大大提高了系統(tǒng)可靠性。同時(shí),由于任意無(wú)線節(jié)點(diǎn)之間通過(guò)無(wú)線連接就如接力賽跑一樣,信息可以通過(guò)無(wú)線節(jié)點(diǎn)組成的網(wǎng)絡(luò)傳輸?shù)礁h(yuǎn)的地方3。網(wǎng)狀結(jié)構(gòu)如下圖1-3: 圖3 網(wǎng)狀結(jié)構(gòu)2.1.2 Z-Stack協(xié)議棧系統(tǒng)軟件設(shè)計(jì)是在硬件設(shè)計(jì)的基礎(chǔ)上進(jìn)行的,良好的軟件設(shè)計(jì)是實(shí)現(xiàn)系統(tǒng)功能的重要環(huán)節(jié),也是提高系統(tǒng)性能的關(guān)鍵所在。節(jié)點(diǎn)設(shè)計(jì)

16、基于通用性及便于開(kāi)發(fā)的考慮,本設(shè)計(jì)移植了TI公司的Z-Stack協(xié)議棧,其主要特點(diǎn)就是其兼容性,完全支持IEEE 802. 15. 4/ZigBee的CC2530片上系統(tǒng)解決方案4。TI的Z-Stack裝載在一個(gè)基于IAR開(kāi)發(fā)環(huán)境的工程里。強(qiáng)大的IAR Embedded Workbench除了提供編譯下載功能外,還可以結(jié)合編程器進(jìn)行單步跟蹤調(diào)試和監(jiān)測(cè)片上寄存器、Flash數(shù)據(jù)等。Z-Stack采用操作系統(tǒng)的思想來(lái)構(gòu)建,采用事件輪循機(jī)制,當(dāng)各層初始化之后,系統(tǒng)進(jìn)入低功耗模式,當(dāng)事件發(fā)生時(shí),喚醒系統(tǒng),開(kāi)始進(jìn)入中斷處理事件,結(jié)束后繼續(xù)進(jìn)入低功耗模式。如果同時(shí)有幾個(gè)事件發(fā)生,判斷優(yōu)先級(jí),逐次處理事件。

17、這種軟件構(gòu)架可以極大地降級(jí)系統(tǒng)的功耗。Z-Stack在項(xiàng)目中的目錄結(jié)構(gòu)如下圖: 圖4 Z-Stack目錄結(jié)構(gòu)在Z-Stack項(xiàng)目中大約有14個(gè)目錄文件,目錄文件下面又有很多的子目錄和文件。下面就來(lái)看看這14個(gè)根目錄,具體是有什么作用:(1 App:應(yīng)用層目錄,這個(gè)目錄下的文件就是創(chuàng)建一個(gè)新項(xiàng)目時(shí)自己要添加的文件。(2 HAL:硬件層目錄,Common目錄下的文件是公用文件,基本上與硬件無(wú)關(guān),其中hal_assert.c是斷言文件,用于調(diào)用,hal_drivers.c是驅(qū)動(dòng)文件,抽象出與硬件無(wú)關(guān)的驅(qū)動(dòng)函數(shù),包含有與硬件相關(guān)的配置和驅(qū)動(dòng)及操作函數(shù)。Include目錄下主要包含各個(gè)硬件模塊的頭文件,

18、而Target目錄下的文件是跟硬件平臺(tái)相關(guān)的,可能看到有兩個(gè)平臺(tái),分別是CC2530DB平臺(tái)和一個(gè)CC2530EB平臺(tái)。后面的DB和EB表示的是TI公司開(kāi)發(fā)板的型號(hào),其實(shí)還有一種類型是BB的,BB: Battery BoardDB: Development Board EB: Evaluation Board分別對(duì)應(yīng)TI公司開(kāi)發(fā)的三種板型,其功能按上順序依次變強(qiáng)??梢詤⒖?quot;Z-Stack User's Guide for CC2530"的圖片,可以獲得更直觀的認(rèn)識(shí)。(3 MAC:MAC層目錄,High Level和Low Level兩個(gè)目錄表示MAC層分為了高層和底

19、層兩層,Include目錄下則包含了MAC層的參數(shù)配置文件及基MAC的LIB庫(kù)函數(shù)接口文件,這里的MAC層的協(xié)議是不開(kāi)源的,以庫(kù)的形式給出。(4 MT:監(jiān)制調(diào)試層目錄,該目錄下的文件主要用于調(diào)試目的,即實(shí)現(xiàn)通過(guò)串口調(diào)試各層,與各層進(jìn)行直接交互。(5 NWK:網(wǎng)絡(luò)層目錄,含有網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫(kù)的函數(shù)接口文件,及APS層庫(kù)的函數(shù)接口。(6 OSAL:協(xié)議棧的操作系統(tǒng)抽象層目錄。(7 Profile:AF層目錄,Application Farmework 應(yīng)用框架,包含AF層處理函數(shù)接口文件。(8 Security:安全層目錄,包含安全層處理函數(shù)接口文件。(9 Services:ZigBe

20、e和802.15.4設(shè)備地址處理函數(shù)目錄,包括地址模式的定義及地址處理函數(shù)。(10 Tools:工作配置目錄,包括空間劃分及Z-Stack相關(guān)配置信息(11 ZDO:指ZigBee設(shè)備對(duì)象,可認(rèn)為是一種公共的功能集,文件用戶用自定義的對(duì)象調(diào)用APS子層的服務(wù)和NWK層的服務(wù)。(12 ZMAC:其中Zmac.c是Z-StackMAC導(dǎo)出層接口文件,zmac_cb.c是ZMAC 需要調(diào)用的網(wǎng)絡(luò)層函數(shù)。(13Zmain:Zmain.c主要包含了整個(gè)項(xiàng)目的入口函數(shù)main(,在OnBoard.c包含硬件開(kāi)始平臺(tái)類外設(shè)進(jìn)行控制的接口函數(shù)。(14 Output:輸出文件目錄,這個(gè)是EW8051 IDE自動(dòng)

21、生成。ZigBee工作在ISM頻段,其定義了兩個(gè)工作頻段,即2.4GH在頻段和868/915MHZ 頻段,在中國(guó)ZigBee工作在2.4GHz頻段,該頻段有16個(gè)速率為250kb/s的信道,該頻段在全球?yàn)橥ㄓ玫念l段,是免費(fèi)的2。在Z-Stack中給出了該頻段的16個(gè)通道,通道號(hào)為11-26,系統(tǒng)默認(rèn)的位11通道,即-DDEFAULT_CHANLIST=0x00000800。在設(shè)備啟動(dòng)后將掃描該頻段的通道,如果該通道可用,設(shè)備將在該通道內(nèi)建立網(wǎng)絡(luò)。我們知道ZigBee的一大優(yōu)勢(shì)就是能夠自由組網(wǎng),但是如何保證每個(gè)網(wǎng)絡(luò)之間的傳輸不受其他網(wǎng)絡(luò)的干擾,網(wǎng)絡(luò)與網(wǎng)絡(luò)之間有時(shí)用什么來(lái)區(qū)分的,我的設(shè)備怎么保證只

22、在我的網(wǎng)絡(luò)里活動(dòng)?這里有一個(gè)很重要的概念-PANID(person area network即個(gè)人局域網(wǎng)的ID號(hào),他是區(qū)分各個(gè)網(wǎng)絡(luò)的一個(gè)標(biāo)號(hào)。該P(yáng)ANID的設(shè)置有兩種方式,第一就是z-stack中給定的方式設(shè)置-DZDAPP_CONFIG_PAN_ID=0xFFFF,當(dāng)設(shè)置PANID為0xffff 時(shí),協(xié)調(diào)器啟動(dòng)后將根據(jù)自身的物理地址自動(dòng)設(shè)置一個(gè)PANID號(hào),此時(shí)如果路由和終端設(shè)備的PANID也設(shè)置為0xffff時(shí)將自動(dòng)加入該協(xié)調(diào)器創(chuàng)建的網(wǎng)絡(luò)。但是這時(shí)會(huì)帶來(lái)一個(gè)弊端就是如果路由與終端在第一次啟動(dòng)后如果發(fā)現(xiàn)有其他網(wǎng)絡(luò)而且信號(hào)強(qiáng)度比該網(wǎng)絡(luò)強(qiáng)他們將會(huì)加入另外一個(gè)網(wǎng)絡(luò)。第二種就是我們可以認(rèn)為的指定一個(gè)

23、PANID號(hào),例如-DZDAPP_CONFIG_PAN_ID =0x1234,此時(shí)協(xié)調(diào)器啟動(dòng)后將掃描一定范圍內(nèi)是否已經(jīng)存在同樣的PANID號(hào)的網(wǎng)絡(luò),若果存在則PANID號(hào)自動(dòng)加1創(chuàng)建一個(gè)新的網(wǎng)絡(luò)。但是此時(shí)要注意的時(shí),路由與終端要想加入該協(xié)調(diào)器創(chuàng)建的網(wǎng)絡(luò)必須人為的設(shè)置同樣的PANID。本設(shè)計(jì)中我們?nèi)藶榈闹付ㄒ粋€(gè)PANID號(hào),這樣的好處是,保證路由和終端只能加入我指定的網(wǎng)絡(luò)4。-DZDAPP_CONFIG_PAN_ID=0x1234即本設(shè)計(jì)中將PAN_ID設(shè)置成0x1234。2.2 元件選型2.2.1 CC2530ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)硬件設(shè)計(jì)的的核心是微處理器芯片。微處理器模塊在無(wú)線收發(fā)模塊的協(xié)作

24、下完成ZigBee網(wǎng)絡(luò)的建立與維護(hù),數(shù)據(jù)采集與處理,無(wú)線數(shù)據(jù)收發(fā)以及ZigBee2007協(xié)議棧的正常運(yùn)行。在網(wǎng)絡(luò)節(jié)點(diǎn)的硬件設(shè)計(jì)中可以根據(jù)成本與操作可行性等因數(shù)選擇不同的的設(shè)計(jì)方案,本設(shè)計(jì)選擇集微處理器模塊和無(wú)線收發(fā)模塊于一體的單芯片解決方案。TI公司的CC2530系列單片機(jī)是一個(gè)8位的、具有精簡(jiǎn)指令集的、超低功耗的混合型單片機(jī),由于它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開(kāi)發(fā)手段,已成為眾多單片機(jī)系列中一顆耀眼的新星5。CC2530系列單片機(jī)的電源電壓采用的是 1.83.6V。因而可使其在1MHz的時(shí)鐘條件下運(yùn)行時(shí),芯片的電流會(huì)在200400uA左右,時(shí)鐘關(guān)斷模式的最低功耗只有0.1uA。

25、因此,CC2530更適合應(yīng)用于使用電池供電的儀器、儀表類產(chǎn)品中。也正因?yàn)槿绱?本系統(tǒng)設(shè)計(jì)了了以無(wú)線通信領(lǐng)域最前沿的ZigBee技術(shù)為平臺(tái),TI公司的CC2530單片機(jī)作為無(wú)線采集系統(tǒng),以減少經(jīng)常更換電池給用戶帶來(lái)的不便。目前,國(guó)內(nèi)外嵌入式射頻芯片中,CC2530芯片是性能最好、功能更強(qiáng)的一個(gè)。它結(jié)合了市場(chǎng)領(lǐng)先的Z-StackTM、ZigBeeTM協(xié)議軟件和其他Chipcon公司的軟件工具,為開(kāi)發(fā)出無(wú)接口、緊湊、高性能和可靠的無(wú)線網(wǎng)絡(luò)產(chǎn)品提供了便利6。相信在未來(lái)幾年,它的應(yīng)用將會(huì)涉及到社會(huì)的更多領(lǐng)域。設(shè)計(jì)選用ti公司最新ZigBee芯片cc2530f256,工作在2.4ghz頻段,是符合IEEE

26、 802.15.4規(guī)范的真正片上系統(tǒng)解決方案,也是目前眾多ZigBee設(shè)備產(chǎn)品中表現(xiàn)最為出眾的微處理器之一。其主要特性如下:(1 片內(nèi)集成增強(qiáng)型高速8051內(nèi)核處理器,支持代碼預(yù)取;256k Flash程序存儲(chǔ)器,支持最新ZigBee2007pro協(xié)議;8k數(shù)據(jù)存儲(chǔ)器;支持硬件調(diào)試。(2 支持2v-3.6v供電區(qū)間,具有3種電源管理模式:喚醒模式0.2MA、睡眠模式1ua、中斷模式0.4ua。包括處理器和智能片內(nèi)外設(shè)在內(nèi)的模塊,具有超低功耗的特點(diǎn)。(3 片內(nèi)集成5通道DMA,MAC定時(shí)器,1個(gè)16位、兩個(gè)8位普通定時(shí)器;32kHz睡眠定時(shí)器;電源管理與片內(nèi)溫度傳感器;8通道12位ad轉(zhuǎn)換器;看

27、門狗等智能外設(shè)。高密度集成化電路節(jié)約設(shè)計(jì)成本。(4 應(yīng)用范圍包括2.GHz IEEE 802.15.4系統(tǒng)、rf4ce遠(yuǎn)程控制系統(tǒng)、ZigBee網(wǎng)絡(luò)、家居自動(dòng)化、照明系統(tǒng)、工業(yè)測(cè)控、低功耗wsn等領(lǐng)域7。2.2.2 DHT11DHT11是廣州奧松有限公司生產(chǎn)的一款濕溫度一體化的數(shù)字傳感器。該傳感器包括一個(gè)電阻式測(cè)濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。通過(guò)單片機(jī)等微處理器簡(jiǎn)單的電路連接就能夠?qū)崟r(shí)的采集本地濕度和溫度。DHT11與單片機(jī)之間能采用簡(jiǎn)單的單總線進(jìn)行通信,僅僅需要一個(gè)I/O口。傳感器內(nèi)部濕度和溫度數(shù)據(jù)40Bit的數(shù)據(jù)一次性傳給單片機(jī),數(shù)據(jù)采用校驗(yàn)和方式進(jìn)行校驗(yàn),有

28、效的保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。DHT11功耗很低,5V電源電壓下,工作平均最大電流0.5mA。性能指標(biāo)和特性如下:工作電壓范圍:3.5V-5.5V工作電流:平均0.5mA濕度測(cè)量范圍:20-90%RH溫度測(cè)量范圍:0-50濕度分辨率:1%RH 8位溫度分辨率:1 8位采樣周期:1S單總線結(jié)構(gòu)與TTL兼容(5V 圖5 DHT11DHT11數(shù)字濕溫度傳感器采用單總線數(shù)據(jù)格式。即,單個(gè)數(shù)據(jù)引腳端口完成輸入輸出雙向傳輸。其數(shù)據(jù)包由5Byte(40Bit組成。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說(shuō)明。一次完整的數(shù)據(jù)傳輸為40bit,高位先出。數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit

29、溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和,校驗(yàn)和數(shù)據(jù)為前四個(gè)字節(jié)相加。3 系統(tǒng)硬件設(shè)計(jì)3.1 硬件設(shè)計(jì)方案如系統(tǒng)硬件框圖6所示,本設(shè)計(jì)的硬件是份兩部分:傳感器采集節(jié)點(diǎn)和協(xié)調(diào)器顯示節(jié)點(diǎn)。 傳感器采集節(jié)點(diǎn)ZigBee網(wǎng)絡(luò)協(xié)調(diào)器顯示節(jié)點(diǎn)DHT11傳感器按鍵輸入LED顯示串口蜂鳴器LED顯示串口蜂鳴器DHT11傳感器按鍵輸入圖6 系統(tǒng)硬件框圖本設(shè)計(jì)將溫濕度傳感器DHT11采集來(lái)的數(shù)據(jù)通過(guò)ZigBee協(xié)議傳遞到協(xié)調(diào)器顯示,并能夠在現(xiàn)場(chǎng)實(shí)時(shí)顯示采集的溫度,人機(jī)交互采用按鍵控制,LED燈閃爍和液晶顯示。3.2 CC2530最小系統(tǒng)設(shè)計(jì) 圖7 CC2530最小系統(tǒng)如上圖7是本設(shè)計(jì)的CC2530的最小

30、系統(tǒng)電路,有復(fù)位電路、濾波電路、時(shí)鐘電路和下載調(diào)試端口等組成了本設(shè)計(jì)方案的最小系統(tǒng)。CC2530是51內(nèi)核,但是因?yàn)槭?.4Gz的高頻信號(hào)通道,故采用了了多級(jí)旁路電容進(jìn)行濾波,防止電路中出現(xiàn)干擾雜波,影響ZigBee的通信距離8。而且CC2530的復(fù)位電壓時(shí)1.8V,而供電電壓為3,3V,在其復(fù)位電路上,采用了10K電阻,故電路中的漏電流為(3.3-1.8/10K=250uA,也就是說(shuō)當(dāng)復(fù)位電路中一旦有250uA 的漏電流,CC2530就會(huì)復(fù)位。如果想要增加電路中的抗干擾能力,就適當(dāng)?shù)臏p小復(fù)位電路中的上拉電阻,進(jìn)而提高電路中的抗干擾能力9。本設(shè)計(jì)本來(lái)打算自己設(shè)計(jì)硬件原理圖,進(jìn)行PCB設(shè)計(jì),但是

31、因?yàn)榉N種原因,沒(méi)有成行,故本設(shè)計(jì)才用了網(wǎng)峰設(shè)計(jì)的ZigBee學(xué)習(xí)板,如圖8為本設(shè)計(jì)的CC2530的核心板最小系統(tǒng)。 圖8 CC2530最小系統(tǒng)核心板3.3 RF射頻電路設(shè)計(jì)ZigBee網(wǎng)絡(luò)是要通過(guò)無(wú)線網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)通信的,故其硬件電路中必不可少的是RF射頻電路。如圖9所示即為本設(shè)計(jì)采用的ZigBee的射頻電路,本電路是TI公司在CC2530的手冊(cè)說(shuō)明中已經(jīng)公開(kāi),CC2530芯片內(nèi)部有相對(duì)應(yīng)的RF射頻寄存器。 圖9 RF射頻電路3.4 穩(wěn)壓電源電路設(shè)計(jì)CC2530的供電電源為3.3V,其誤差范圍為±0.5V。我們最常用的電源為5V,比如普通的直流電源和電腦的USB借口電源都是5V的,所以如

32、果給CC2530供電我們有兩種選擇。第一普通的干電池電壓在1.5V左右,如果是新干電池其電壓范圍一般都在1.5V以上,所以兩節(jié)干電池串聯(lián)起來(lái)其電壓值可以達(dá)到3.2V左右,實(shí)際測(cè)量中其值為就在3.2V左右,這個(gè)誤差范圍在CC2530電源誤差范圍之內(nèi),所以用干電池供電時(shí)一種供電方式。第一我們采用穩(wěn)壓芯片,在市場(chǎng)中最常用的3.3V穩(wěn)壓芯片為AMS1117,如圖10所示,其典型電路圖如圖11所示。 圖10 AMS1117 圖11 AMS1117典型電路使用輸入旁路電容,10uF的鉭電容適用于幾乎所有的應(yīng)用。輸出電容如果使用鉭電容,AMS1117要求輸出電容的最小值為10uF。針對(duì)本設(shè)計(jì)的電源設(shè)計(jì)如下圖

33、12所示: 圖12 供電電源電路供電電源燈選擇通過(guò)跳線帽P1來(lái)選擇,選擇12為直流電源供電,選擇23為電池供電,在此加了一個(gè)電源指示燈和一個(gè)六腳的開(kāi)關(guān),單獨(dú)打開(kāi)開(kāi)關(guān)時(shí)無(wú)法供電的,只有將跳線帽跳到對(duì)應(yīng)的位置時(shí)才能正常供電。3.5 LCD及LED顯示電路設(shè)計(jì)本設(shè)計(jì)的協(xié)調(diào)器節(jié)點(diǎn)是采用NOKIA公司的5110液晶顯示屏,此屏除了應(yīng)用與移動(dòng)電話外,也廣泛應(yīng)用于各類便攜式設(shè)備的顯示系統(tǒng),與其他類型的產(chǎn)品相比,該模塊有以下特點(diǎn):84*48的點(diǎn)陣LCD,可以顯示4行漢字;采用串行接口與主處理器進(jìn)行通信,接口信號(hào)線數(shù)據(jù)線大幅度減少,包括電源線只有8條,采用SPI通信協(xié)議,傳輸速率能達(dá)到4Mbps;便于安裝和更換

34、,模塊體積小;采用低電壓供電,正常顯示工作電流200uA以下,具有背光選擇和掉電模式。如下圖13是采用NOKIA5110的顯示屏的模塊的接口電路,本電路數(shù)據(jù)線只有6根,易于設(shè)計(jì)。 圖13 LCD顯示模塊狀態(tài)指示LED燈的設(shè)計(jì)就比較簡(jiǎn)單,但是也是不可少的,設(shè)備的啟動(dòng)狀態(tài),是否啟動(dòng)成功,是否脫離網(wǎng)絡(luò),是否綁定成功等等一些列的狀態(tài)信息都可以通過(guò)指示燈的形式來(lái)顯示。其原理圖如下圖14。 圖14 LED狀態(tài)指示燈電路3.6 DHT11傳感器電路設(shè)計(jì)溫濕度傳感器我們采用單總線的DHT11,其硬件電路比較簡(jiǎn)單,使用比較方便,而且讀取的溫度值非常準(zhǔn)確,適用與一般環(huán)境下的溫濕度采集11。其電路圖如下圖15所示:

35、 圖15 溫濕度傳感器采集電路該電路設(shè)計(jì)非常簡(jiǎn)便,但是單總線的傳感器的時(shí)序一般都比較復(fù)雜,同樣DHT11的時(shí)序是很復(fù)雜的,所以硬件的簡(jiǎn)便必然要軟件區(qū)彌補(bǔ)。 圖16 系統(tǒng)設(shè)備圖如上圖16所示,為本次設(shè)計(jì)的系統(tǒng)“全家?!?圖16左側(cè)為系統(tǒng)的傳感器節(jié)點(diǎn),其中網(wǎng)格狀的模塊為溫濕度傳感器DHT11,而右側(cè)為協(xié)調(diào)器模塊,顯示屏是Nokia5110液晶屏。4 系統(tǒng)軟甲件設(shè)計(jì)4.1 軟件應(yīng)用環(huán)境本設(shè)計(jì)采用的是IAR Embedded Workbench開(kāi)發(fā)環(huán)境,它是一種用于開(kāi)發(fā)應(yīng)用各種不同的目標(biāo)處理器的靈活的集成環(huán)境。它提供一個(gè)方便的窗口界面用于迅速的開(kāi)發(fā)和調(diào)試。 圖17 IAR界面Embedded Work

36、bench 支持多種不同的目標(biāo)處理器,使用項(xiàng)目模式組織應(yīng)用程序。如圖17是IAR的編程界面,它的使用方法類似Keil,所以僅對(duì)其做簡(jiǎn)單介紹。第一次使用程序編寫調(diào)試一般需要經(jīng)過(guò)創(chuàng)建工作站、創(chuàng)建并保存工程、創(chuàng)建或加載源文件、保存工作站、設(shè)置工作環(huán)境(目標(biāo)芯片、調(diào)試方式、仿真器接口類型、工程編譯連接和調(diào)試七個(gè)步驟。(1 創(chuàng)建新工作站;(2 創(chuàng)建并保存工程;(3 創(chuàng)建或加載源文件;(4 保存工作站;(5 編譯環(huán)境設(shè)置;(6 工程編譯、連接和調(diào)試;工程編譯、連接和調(diào)試通過(guò)選擇菜單Project下的Compile/Make/Debug,或點(diǎn)擊界面右上方的快捷按鈕Debug完成。在程序通過(guò)了連接、生成目標(biāo)代

37、碼之后。通過(guò)單擊Project,Debugger,或按Ctrl+D 鍵,或單擊按鈕可以進(jìn)入調(diào)試集成環(huán)境。4.2 Z-Stack協(xié)議棧應(yīng)用初始化Z-Stack的main函數(shù)在Zmain.c中,總體上來(lái)說(shuō),它一共做了兩件工作,一個(gè)是系統(tǒng)初始化,即有啟動(dòng)代碼來(lái)初始化硬件系統(tǒng)和軟件架構(gòu)需要的各個(gè)模塊,另一個(gè)作用就是開(kāi)啟執(zhí)行操作系統(tǒng)實(shí)體。4.2.1 系統(tǒng)初始化系統(tǒng)啟動(dòng)代碼需要完成初始化硬件平臺(tái)和軟件架構(gòu)所需要的各個(gè)模塊,為操作系統(tǒng)的運(yùn)行做好準(zhǔn)備工作,主要分為初始化系統(tǒng)時(shí)鐘,檢測(cè)芯片工作電壓、初始化堆棧、初始化各個(gè)硬件模塊、初始化FLASH存儲(chǔ)、形成芯片MAC地址、初始化非易失量、初始化MAC層協(xié)議、初始

38、化化應(yīng)用幀層協(xié)議、初始化操作系統(tǒng)等十余部分12,他們都是在主函數(shù)main(中啟動(dòng),可以參看附錄中的部分代碼清單。之后進(jìn)入系統(tǒng)任務(wù)初始化,各個(gè)任務(wù)初始化之后,就開(kāi)始出發(fā)網(wǎng)絡(luò)啟動(dòng)層,其具體流程圖和對(duì)應(yīng)的函數(shù)如下圖18。 圖18 系統(tǒng)初始化流程圖4.2.2 操作系統(tǒng)執(zhí)行啟動(dòng)代碼為操作系統(tǒng)的執(zhí)行做好準(zhǔn)備工作后,就開(kāi)始執(zhí)行操作系統(tǒng)入口程序,并由此徹底將控制權(quán)移交給操作系統(tǒng)。其實(shí),操作系統(tǒng)實(shí)體只有一行代碼:Osal_start_system(; / No Return from here在這句話后面有一條注釋,意思是本函數(shù)不會(huì)返回,也就是說(shuō)它是一個(gè)死循環(huán),永遠(yuǎn)不可能執(zhí)行完。這個(gè)函數(shù)就是osal系統(tǒng)輪轉(zhuǎn)查詢

39、操作的主體部分,它所做的工作就是不斷的查詢每個(gè)任務(wù)中是否有事件發(fā)生,如果有事件發(fā)生,就調(diào)用相應(yīng)的事件處理函數(shù),如果沒(méi)有任何事件發(fā)生就一直查詢。我們可以看到下面就是這個(gè)函數(shù)的實(shí)現(xiàn),其實(shí)這個(gè)函數(shù)的就是在一個(gè)無(wú)限的循環(huán)中。void osal_start_system( void #if !defined ( ZBIT && !defined ( UBIT for(; / Forever Loop#endifuint8 idx = 0;osalTimeUpdate(;Hal_ProcessPoll(; / This replaces MT_SerialPoll( and osal_ch

40、eck_timer(do if (tasksEventsidx / 最高優(yōu)先級(jí)任務(wù)被找到break; while (+idx < tasksCnt; /其中tasksCnt為tasksArr數(shù)組中元素的個(gè)/得到了待處理的具有最高優(yōu)先級(jí)的任務(wù)的索引號(hào)idxif (idx < tasksCntuint16 events;halIntState_t intState;/ 進(jìn)入/退出臨界區(qū),來(lái)提取出需要處理的任務(wù)中的事件,其實(shí)這和C/OS-II操作系統(tǒng)中進(jìn)入臨界區(qū)很相似,C/OS-II中使用OS_ENTER_CRITICAL(;OS_EXIT_CRITICAL(; HAL_ENTER_CR

41、ITICAL_SECTION(intState;events = tasksEventsidx;tasksEventsidx = 0; / Clear the Events for this task.HAL_EXIT_CRITICAL_SECTION(intState;/通過(guò)指針調(diào)用來(lái)執(zhí)行對(duì)應(yīng)的任務(wù)處理函數(shù)events = (tasksArridx( idx, events ;/進(jìn)入/退出臨界區(qū),保存尚未處理的事件HAL_ENTER_CRITICAL_SECTION(intState;tasksEventsidx |= events; / Add back unprocessed event

42、s to the current task.HAL_EXIT_CRITICAL_SECTION(intState; /本次事件處理結(jié)束,#if defined( POWER_SA VING else / 所有的任務(wù)事件都被查詢結(jié)束后,沒(méi)有任何事件被激活osal_pwrmgr_powerconserve(; / 系統(tǒng)進(jìn)入休眠狀態(tài)。#endif操作系統(tǒng)專門分配了存放所有任務(wù)事件的tasksEvents數(shù)組,每一個(gè)單元對(duì)應(yīng)存放著每一個(gè)任務(wù)的所有事件,在這個(gè)函數(shù)中首先通過(guò)一個(gè)dowhile循環(huán)來(lái)遍歷tasksEvents,找到一個(gè)具有待處理事件的優(yōu)先級(jí)最高的任務(wù),序號(hào)低的任務(wù)優(yōu)先級(jí)高,然后跳出循環(huán),此

43、時(shí),就得到了最高優(yōu)先級(jí)任務(wù)的序號(hào)idx,然后通過(guò)events=tasksEventsidx語(yǔ)句,將這個(gè)當(dāng)前具有最高優(yōu)先級(jí)的任務(wù)的事件取出,接著就調(diào)用(tasksArridx(inx,events函數(shù)來(lái)執(zhí)行具體的處理函數(shù)了,taskArr是一個(gè)函數(shù)指針數(shù)組,根據(jù)不同的idx就可以執(zhí)行不同的函數(shù)。首先,明確系統(tǒng)中要執(zhí)行的幾個(gè)任務(wù)。在本設(shè)計(jì)中,幾個(gè)任務(wù)函數(shù)組成了上述的tasksArr函數(shù)指針數(shù)組,在Osal_GeneralApp.c中定義,osal_start_system(函數(shù)通過(guò)函數(shù)指針(tasksArridx(inx,events調(diào)用。tasksArr數(shù)組如下:const pTaskEvent

44、HandlerFn tasksArr = macEventLoop, /MAC層任務(wù)處理函數(shù)nwk_event_loop, /網(wǎng)絡(luò)層任務(wù)處理函數(shù)Hal_ProcessEvent, /硬件抽象層任務(wù)處理函數(shù)#if defined( MT_TASK MT_ProcessEvent, /調(diào)試任務(wù)處理函數(shù)可選#endifAPS_event_loop, /應(yīng)用層任務(wù)處理函數(shù),用戶不用修改ZDApp_event_loop, /設(shè)備應(yīng)用層任務(wù)處理函數(shù),用戶可以根據(jù)需要修改WORK_ProcessEvent /用戶應(yīng)用層任務(wù)處理函數(shù),用戶自己生成;操作系統(tǒng)一共要處理6項(xiàng)任務(wù),分別為MAC層,網(wǎng)絡(luò)層。硬件抽象層

45、,應(yīng)用層, ZigBee設(shè)備應(yīng)用層以及完全由用戶處理的應(yīng)用層,其優(yōu)先級(jí)由高到低。MAC層任務(wù)具有最高優(yōu)先級(jí),用戶層具有最低的優(yōu)先級(jí)。Z-Stack已經(jīng)編寫了對(duì)從MAC層到ZigBee 設(shè)備應(yīng)用層這五層任務(wù)的事件處理函數(shù),一般情況下不需要修改這些函數(shù),只需要按照自己的需求編寫應(yīng)用層的任務(wù)及事件處理函數(shù)就可以。4.3協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì)協(xié)調(diào)器是整個(gè)網(wǎng)絡(luò)的核心,協(xié)調(diào)器負(fù)責(zé)創(chuàng)建和維護(hù)整個(gè)網(wǎng)絡(luò),為每個(gè)加入該網(wǎng)絡(luò)的設(shè)備分配一個(gè)網(wǎng)絡(luò)地址,在協(xié)調(diào)器啟動(dòng)時(shí)其網(wǎng)絡(luò)地址將自動(dòng)設(shè)置為0x0000,在所有的網(wǎng)絡(luò)中,協(xié)調(diào)器的網(wǎng)絡(luò)地址均為0x0000,所以其他設(shè)備要想跟協(xié)調(diào)器通信,則設(shè)置目標(biāo)地址為0x0000即可13。本設(shè)計(jì)

46、中沒(méi)有區(qū)分路由節(jié)點(diǎn)和終端節(jié)點(diǎn),而是將將兩者結(jié)合,組成了了傳感器采集節(jié)點(diǎn),本設(shè)計(jì)協(xié)調(diào)器的工作流程圖如下圖19: 圖19 協(xié)調(diào)器啟動(dòng)流程圖在協(xié)調(diào)器工作過(guò)程中我們?cè)O(shè)置了一些指示燈用來(lái)指示其工作的狀態(tài),如果設(shè)備啟動(dòng)成功我們點(diǎn)亮LED1,如果打開(kāi)允許綁定則點(diǎn)亮LED2,關(guān)閉綁定則熄滅LED2,如果接受到了數(shù)據(jù)就閃爍LED1,這樣就能從視覺(jué)上感覺(jué)到協(xié)調(diào)器處于工作狀態(tài)。4.4 傳感器節(jié)點(diǎn)軟件設(shè)計(jì)傳感器節(jié)點(diǎn)的設(shè)計(jì)相對(duì)協(xié)調(diào)器和終端設(shè)備要簡(jiǎn)單些,設(shè)置其啟動(dòng)類型后他就負(fù)責(zé)采集溫濕度數(shù)據(jù),之后上傳給協(xié)調(diào)器,當(dāng)然傳感器節(jié)點(diǎn)的PANID和選擇的通信道必須和協(xié)調(diào)器保持一致,這樣傳感器節(jié)點(diǎn)才能加入網(wǎng)絡(luò),并且能實(shí)現(xiàn)轉(zhuǎn)發(fā)數(shù)據(jù)的功

47、能,此時(shí)我們也把傳感器節(jié)點(diǎn)的PANID設(shè)置為0X1234,通信道選擇11。傳感器節(jié)點(diǎn)的一系列初始化時(shí)跟協(xié)調(diào)器是相同的,如果設(shè)備是傳感器節(jié)點(diǎn)啟動(dòng),則一系列初始化完成之后,設(shè)備將去檢測(cè)網(wǎng)絡(luò)是否存在,如果網(wǎng)絡(luò)存在設(shè)備將會(huì)加入該網(wǎng)絡(luò),加入網(wǎng)絡(luò)之后,那么傳感器節(jié)點(diǎn)將會(huì)每隔一段時(shí)間采集一下傳感器數(shù)據(jù),在收到數(shù)據(jù)之后會(huì)按照相應(yīng)的地址轉(zhuǎn)發(fā)出去。如下圖20所示: 圖20 傳感器啟動(dòng)流程圖同樣,傳感器節(jié)點(diǎn)正常情況下也能作為路由節(jié)點(diǎn)使用,也能實(shí)現(xiàn)與協(xié)調(diào)器節(jié)點(diǎn)的綁定,不僅僅能采集傳感器數(shù)據(jù),而且能夠轉(zhuǎn)發(fā)一些距離協(xié)調(diào)器遠(yuǎn)的傳感器節(jié)點(diǎn)的數(shù)據(jù),組成網(wǎng)狀網(wǎng)絡(luò),為了備用,我們也在路由上也初始化一個(gè)端點(diǎn),并初始化其端點(diǎn)描述符。但

48、是本次設(shè)計(jì)因?yàn)楣?jié)點(diǎn)較少,就沒(méi)有使用路由功能。5 系統(tǒng)設(shè)計(jì)結(jié)果測(cè)試本設(shè)計(jì)中采用將傳感器節(jié)點(diǎn)采集水杯溫度及室內(nèi)濕度數(shù)據(jù)作為本設(shè)計(jì)的系統(tǒng)數(shù)據(jù)測(cè)試的條件,如圖21是傳感器節(jié)點(diǎn)將溫濕度傳感器DHT11放在水杯下面,水杯內(nèi)為溫?zé)崴?傳感器節(jié)點(diǎn)將水杯的溫度以及室內(nèi)濕度的溫濕度數(shù)據(jù)上傳給協(xié)調(diào)器。 圖21 傳感器測(cè)試圖如圖22是傳感器節(jié)點(diǎn)將溫濕度傳感器DHT11采集的水杯的溫度以及室內(nèi)濕度的溫濕度數(shù)據(jù)上傳到協(xié)調(diào)器,并由協(xié)調(diào)器接收到數(shù)據(jù)實(shí)時(shí)顯示。圖22的左圖是水杯溫度45度,水杯附近濕度為25度時(shí)的實(shí)驗(yàn)數(shù)據(jù),而右圖是同一杯水在水溫為27度時(shí),并在水杯附近灑水提高水杯附近濕度為34度的實(shí)驗(yàn)數(shù)據(jù)。 圖22 協(xié)調(diào)器測(cè)試

49、結(jié)果結(jié)束語(yǔ)經(jīng)過(guò)一段時(shí)間的繁忙,終于把畢業(yè)設(shè)計(jì)做出來(lái)了,但是想在短短的一段時(shí)間內(nèi)做出很好的產(chǎn)品,也有點(diǎn)困難。所以這跟實(shí)際產(chǎn)品還有很大差距,只能算實(shí)驗(yàn)室產(chǎn)品吧。我也將本設(shè)計(jì)中的一些不足之處以及缺陷簡(jiǎn)單說(shuō)明一下,以作參考。1. 整個(gè)系統(tǒng)的節(jié)點(diǎn)在不工作的時(shí)候不能進(jìn)入省電模式,造成了一定的能耗;整個(gè)系統(tǒng)在實(shí)驗(yàn)的時(shí)候無(wú)線傳播的距離只有幾十米,沒(méi)有達(dá)到理想要求。2. 沒(méi)有整個(gè)系統(tǒng)的硬件PCB設(shè)計(jì),這個(gè)只能以后再做了。3. 傳感器節(jié)點(diǎn)板在沒(méi)有添加太多的傳感器,只有一種,這個(gè)是一個(gè)缺憾。本設(shè)計(jì)原本是想以產(chǎn)品的要求來(lái)做,猶豫種種原因,沒(méi)有完成,只能以開(kāi)發(fā)板來(lái)代替,沒(méi)有達(dá)到實(shí)際的產(chǎn)品的效果,而且最重要是要本想著用這

50、款單片機(jī)是看中其低功耗的,但是對(duì)于本節(jié)點(diǎn)板確實(shí)很耗電,我們感覺(jué)像是穩(wěn)壓芯片的原因,但因?yàn)闀r(shí)間原因也沒(méi)有進(jìn)行測(cè)試。參考文獻(xiàn)1周怡頤,凌志浩,吳勤勤.ZigBee無(wú)線通信技術(shù)及其應(yīng)用探討J.自動(dòng)化儀表,2006,26(6:5-92劉巖,劉艷華,縱覽近距無(wú)線技術(shù).中國(guó)計(jì)算機(jī)用戶,2004,(47:61-623瞿雷.一種新的無(wú)線網(wǎng)絡(luò)通新技術(shù)ZigBeeJ. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,26(l:12-144彭瑜.無(wú)線通信網(wǎng)絡(luò)在工控領(lǐng)域的應(yīng)用現(xiàn)狀及前景.現(xiàn)代制造, 2006,3:38-415Jessica Davis. Whats up with ZigBee?J Electronic Busin

51、ess,2006,9:26-296Monica Alleven. Temperature Rises for ZigBeeJ. Wireless Week, 2006,7.7Frank Hakemeyer.無(wú)線數(shù)據(jù)通信走進(jìn)工廠自動(dòng)化團(tuán).現(xiàn)代制造,2005,27:42-448高亮,周德?lián)P,楊剛.24GE比無(wú)線數(shù)據(jù)傳輸系統(tǒng).北京廣播學(xué)院學(xué)報(bào),2005.12(3:32-369孫宇.工業(yè)控制中可靠的專用無(wú)線數(shù)據(jù)傳輸?shù)难芯?信息技術(shù),2004,28(l:51-5210葛崛,車軒. 工業(yè)監(jiān)控中的遠(yuǎn)程通信方案.電氣時(shí)代,2003,(9:44-411高守瑋,吳燦陽(yáng).ZigBee 技術(shù)實(shí)踐教程M.北京:北京航空

52、航天大學(xué)出版社,200812江修波.ZigBee技術(shù)及其應(yīng)用.低壓電器,2005,(7:27-2913王賀.基于IEEE802.15.4/ZigBee 的無(wú)線傳感器網(wǎng)絡(luò)的研究J.黑龍江大學(xué),2008,02(1:3-12附錄部分代碼清單主程序int main( void / Turn off interruptsosal_int_disable( INTS_ALL ;/ Initialization for board related stuff such as LEDsHAL_BOARD_INIT(;/ Make sure supply voltage is high enough to ru

53、nzmain_vdd_check(;/ Initialize board I/OInitBoard( OB_COLD ;/ Initialze HAL driversHalDriverInit(;/ Initialize NV Systemosal_nv_init( NULL ;/ Initialize the MACZMacInit(;/ Determine the extended addresszmain_ext_addr(;/ Initialize basic NV itemszgInit(;#ifndef NONWK/ Since the AF isn't a task, c

54、all it's initialization routineafInit(;#endif/ Initialize the operating systemosal_init_system(;/ Allow interruptsosal_int_enable( INTS_ALL ;/ Final board initializationInitBoard( OB_READY ;/ Display information about this devicezmain_dev_info(;/* Display the device info on the LCD */#ifdef LCD_

55、SUPPORTEDzmain_lcd_init(;#endif#ifdef WDT_IN_PM1/* If WDT is used, this is a good place to enable it. */ WatchDogEnable( WDTIMX ;#endifosal_start_system(; / No Return from herereturn 0; / Shouldn't get here. / main(應(yīng)用層初始化函數(shù)void WORK_Init( byte task_id halUARTCfg_t uartConfig;work_TaskID = task_i

56、d;work_bindInProgress = 0xffff;work_epDesc.task_id = &work_TaskID;work_epDesc.endPoint = 0;#if ( WORK_CB_FUNC work_epDesc.endPoint = zb_SimpleDesc.EndPoint;work_epDesc.task_id = &work_TaskID;work_epDesc.simpleDesc=(SimpleDescriptionFormat_t*&zb_SimpleDesc; work_epDesc.latencyReq = noLatencyReqs;/ Register the endpoint/interface description with the AFafRegister( &work_epDesc ;#endifRegisterForKeys( work_TaskID ;/*配置串口*/uartConfig.configured = TRUE; / 2x30 don't care - see uart driver.uartConfig.baudRate = SERIAL_APP_BAUD;uartConfig.flowControl = FALSE;uart

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論