




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 密級(jí): 公開 題 目 面向物聯(lián)的袋式除塵器檢測系統(tǒng)設(shè)計(jì) 學(xué) 院: 系: 專業(yè)班級(jí): 學(xué)生姓名: 學(xué)號(hào): 指導(dǎo)教師: 職稱: 起訖日期: I摘要面向物聯(lián)的袋式除塵器監(jiān)測系統(tǒng)設(shè)計(jì)摘要袋式除塵器內(nèi)部布滿了管道與閥門,為了實(shí)時(shí)了解袋式除塵器的工作狀況,以及在出故障時(shí)及時(shí)發(fā)現(xiàn)問題,需要在袋式除塵器內(nèi)部增加監(jiān)測系統(tǒng)。以ZigBee為核心的無線傳感網(wǎng)絡(luò)系統(tǒng)具有短延時(shí),低功耗,低成本,高可靠,高安全,網(wǎng)絡(luò)容量大,網(wǎng)絡(luò)自組織自愈的特點(diǎn)。本系統(tǒng)采用TI公司基于ZigBee協(xié)議研發(fā)的芯片CC2530,以及配套的協(xié)議棧Z-Stack,結(jié)合所需的傳感器,實(shí)現(xiàn)數(shù)據(jù)采集,數(shù)據(jù)無線傳輸?shù)墓δ堋U撐膶?huì)簡要介紹ZigBee的
2、框架,以及各層功能,將會(huì)涉及到一些基本概念。然后介紹TI公司的協(xié)議棧Z-Stack,主要包括OSAL(操作系統(tǒng)抽象層)的運(yùn)行機(jī)理,各個(gè)文件的作用,最后會(huì)以按鍵為例描述事件的觸發(fā)流程。接著介紹硬件系統(tǒng)設(shè)計(jì),這部分主要參考TI公司官網(wǎng)提供的設(shè)計(jì)參考庫。最后介紹如何利用CC2530和Z-Stack組建一個(gè)用戶體驗(yàn)好的基礎(chǔ)無線傳感網(wǎng)絡(luò)。這個(gè)無線傳感網(wǎng)可以實(shí)現(xiàn)以下功能:數(shù)據(jù)傳輸,終端節(jié)點(diǎn)休眠,節(jié)點(diǎn)入網(wǎng)控制,網(wǎng)絡(luò)自組織自愈,設(shè)置網(wǎng)絡(luò)地址,配合上位機(jī)顯示網(wǎng)絡(luò)結(jié)構(gòu)。關(guān)鍵字:ZigBee;Z-Stack;CC2530;休眠;入網(wǎng)控制;設(shè)置網(wǎng)絡(luò)地址;顯示網(wǎng) 絡(luò)結(jié)構(gòu)IAbstractDesign of Bag fi
3、lter monitoring system for Internet of thingsAbstractThe bag filter is filled with pipeline and valve, so we should increase the monitoring system in the bag filter to know the working status of it in time and present the problem when it breaks down. The wireless sensor network system, which based o
4、n ZigBee, has the features of short delay, low power consumption, low cost, high reliability, high security, network self organization and self-healing of network.The system uses the supporting protocol stack Z-Stack and the chip CC2530, which is researched and developed based on ZigBee protocol, co
5、mbining with the required sensor for data acquistion and wireless transmission function.The paper will briefly introduce the framework of ZigBee and the function of each layer, it will involve some basic concept.Then it will introduce the Z-Stack protocol stack of TI company, including the working m
6、echanism of OSAL(operating system abstracting layer), the role of each file and take the key as an example to describe the event triggered process.Then it will introduce the hardware system design, which mainly consult the reference library provided by TI companys website.Finally, it will introduce
7、how to build a good user experience base wireless senior network with CC2530 and Z-Stack. The wireless sensor network can achieve following functions: data transmission, end device dormant, access network control,network self-organization self healing,set network address, coordinate with PC display
8、network structure.Keyword : ZigBee;Z-Stack;CC2530;end device dormant;access network control; display network structureII目錄目錄摘要IAbstractII第一章 緒論11.1引言11.2 ZigBee的發(fā)展與現(xiàn)狀11.3 ZigBee技術(shù)特點(diǎn)21.4 ZigBee的發(fā)展趨勢2第二章 ZigBee簡介12.1 ZigBee協(xié)議層結(jié)構(gòu)12.2層與層的通信22.3 ZigBee各層介紹32.3.1物理層(PHY)32.3.2介質(zhì)訪問控制層(MAC)32.3.3 網(wǎng)絡(luò)層(NWK)42
9、.3.4應(yīng)用層(APL)52.3.5 安全服務(wù)提供層(SSP)52.4各層協(xié)作62.5 ZigBee基本概念6第三章ZigBee的實(shí)現(xiàn)軟件部分:Z-Stack協(xié)議棧93.1 OSAL任務(wù)輪詢93.2任務(wù)的產(chǎn)生103.3 Z-Stack框架與工程文件目錄113.3.1 Z-Stack框架113.3.2 Z-Stack工程文件目錄介紹113.4 任務(wù)觸發(fā)流程實(shí)例:按鍵任務(wù)的觸發(fā)13第四章 ZigBee的實(shí)現(xiàn)硬件部分:硬件系統(tǒng)設(shè)計(jì)154.1 CC2530介紹154.2電路圖介紹164.2.1 原理圖介紹164.2.2 PCB各層圖17第五章 ZigBee的應(yīng)用:應(yīng)用程序設(shè)計(jì)195.1 程序功能分析1
10、95.2功能的實(shí)現(xiàn)195.2.1數(shù)據(jù)采集與傳輸195.2.2終端節(jié)點(diǎn)休眠205.2.3 節(jié)點(diǎn)入網(wǎng)控制235.2.4 網(wǎng)絡(luò)地址設(shè)置245.2.5 終端節(jié)點(diǎn)掉線后間歇性入網(wǎng)255.2.6顯示網(wǎng)絡(luò)結(jié)構(gòu)275.3故障處理29第六章 結(jié)束語31參考文獻(xiàn)32致謝33目錄格式:目錄內(nèi)容:中文宋體,英文和數(shù)字Times New Roman,小四頁碼編號(hào):摘要,Abstract使用頁碼“I,II,”;正文開始使用頁碼“1,2,3,”;小節(jié)標(biāo)題左側(cè)縮進(jìn)1字符;頁碼數(shù)字居中對(duì)齊 IV第一章 緒論第一章 緒論1.1引言ZigBee是一種新興的短距離,低速率無線網(wǎng)絡(luò)技術(shù)。誕生之初主要用于工業(yè)自動(dòng)化控制的數(shù)據(jù)傳輸,后來逐
11、步向智能家居,智能樓宇,疾病監(jiān)控,健康管理,遠(yuǎn)程控制等領(lǐng)域拓展。1.2 ZigBee的發(fā)展與現(xiàn)狀ZigBee聯(lián)盟成立于2001年,于2004年發(fā)布了ZigBee協(xié)議規(guī)范(ZigBee Specification),ZigBee2004,這個(gè)版本的協(xié)議有許多漏洞。在2006年,ZigBee聯(lián)盟又推出了ZigBee2006,這個(gè)版本的協(xié)議比較完善。在2007年,ZigBee聯(lián)盟又在06版的基礎(chǔ)上推出了新的協(xié)議規(guī)范ZigBee2007/PRO。這個(gè)版本的協(xié)議具有網(wǎng)絡(luò)自組織、自愈,低功耗,低成本等優(yōu)點(diǎn)。ZigBee Specification是目前應(yīng)用最廣的協(xié)議。2009年3月,又推出ZigBee R
12、F4CE。它專門為簡單,雙向,點(diǎn)對(duì)點(diǎn)控制的應(yīng)用而設(shè)計(jì)。它不要求實(shí)現(xiàn)ZigBee協(xié)議那樣的全功能網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu),對(duì)存儲(chǔ)空間的要求低,簡單的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu)使得設(shè)計(jì)和測試都更簡單,從而可以快速的應(yīng)用到項(xiàng)目中。2013年3月,ZigBee聯(lián)盟推出了第三套規(guī)范ZigBee IP Specification。ZigBee IP是第一個(gè)基于IPv6全無線網(wǎng)狀網(wǎng)絡(luò)解決方案的開放標(biāo)準(zhǔn),為控制低功耗、低成本的裝置提供無縫銜接的互聯(lián)網(wǎng)連接。它可以將許多不同的設(shè)備接入到同一個(gè)網(wǎng)絡(luò)中。它專門為即將到來的ZigBee Smart Energy version 2提供支持。ZigBee的實(shí)現(xiàn)方案主要有三種:ZigBee RF
13、+MCU;ZigBee協(xié)議棧芯片+外掛芯片;單SOC。第一種指的是用ZigBee無線收發(fā)器配合單片機(jī)來實(shí)現(xiàn),優(yōu)點(diǎn)是超低功耗;第二種是用集成了2.4G無線射頻收發(fā)和微處理器功能的專用芯片,外加一款起提高系統(tǒng)性能或者降低專用芯片負(fù)擔(dān)作用的芯片來實(shí)現(xiàn),優(yōu)點(diǎn)是靈活性大,上市快;最后一種是指ZigBee射頻和單片機(jī)以及Flash存儲(chǔ)三部分集成在了一顆IC上的芯片,優(yōu)點(diǎn)是集成度高。ZigBee的第一款片上系統(tǒng)(SoC)解決方案是CHIPCON于2004年12月推出的CC2430無線單片機(jī),此后各大半導(dǎo)體公司先后推出各種ZigBee芯片。2006年,TI公司收購CHIPCON公司,之后不斷改進(jìn)ZigBee芯
14、片。2008年2月,推出第二代ZigBee收發(fā)芯片CC2520,同年6月推出2.4G放大芯片CC2591。1目前市場上ZigBee芯片提供商有:TI(Chipcon);Freescale;Ember;Jennic;Atmel;Integration;NEC;OkI;Renesas;等9家。其中TI;Frescale;Ember;Jennic是市場上主導(dǎo)的供應(yīng)廠商,這四大廠商基本上壟斷了整個(gè)90%的市場份額。1.3 ZigBee技術(shù)特點(diǎn)ZigBee是基于IEEE802.15.4標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。它從下到上可以分為物理層,媒介訪問控制層,網(wǎng)絡(luò)層,應(yīng)用層。其中物理層和媒介訪問控制層遵循IEEE
15、802.15.4標(biāo)準(zhǔn);ZigBee聯(lián)盟在IEEE802.15.4的標(biāo)準(zhǔn)上定義了網(wǎng)絡(luò)層和應(yīng)用層的框架。ZigBee技術(shù)具有以下特點(diǎn):高可靠。物理層和介質(zhì)訪問控制層遵循IEEE802.15.4標(biāo)準(zhǔn),采用正交相移鍵控(O-QPSK)調(diào)制技術(shù)和直接序列擴(kuò)頻(DSSS)技術(shù)相結(jié)合,提供一個(gè)高信噪比環(huán)境。采用帶有沖突避免的載波監(jiān)聽多路訪問(CSMA-CA)技術(shù),可以盡量避免沖突的發(fā)生。采用16位循環(huán)冗余校驗(yàn)碼(CRC)技術(shù),可以檢測數(shù)據(jù)傳輸?shù)恼_性,在通信過程中采用全應(yīng)答方式,確保數(shù)據(jù)成功地被接收。另外,在網(wǎng)狀網(wǎng)絡(luò)中,使用動(dòng)態(tài)路由以及路由修復(fù)策略,可以保證數(shù)據(jù)多跳傳輸?shù)目煽?。成本低。芯片價(jià)格低,協(xié)議棧免費(fèi)
16、使用;頻段免費(fèi)使用;使用免專利費(fèi)的AES-128位加密技術(shù)。低功耗。由于大部分時(shí)間處于休眠狀態(tài),兩節(jié)5號(hào)電池可以維持一個(gè)終端節(jié)點(diǎn)工作624個(gè)月。高安全。ZigBee提供三種安全服務(wù):構(gòu)造安全,網(wǎng)絡(luò)訪問控制,應(yīng)用數(shù)據(jù)安全。數(shù)據(jù)加密使用AES-128安全算法,而且還可以更新密鑰。低速率。ZigBee主要應(yīng)用于數(shù)據(jù)傳輸量小的應(yīng)用場合,為了實(shí)現(xiàn)低功耗以及低成本,低速率是可以接受的。ZigBee在2.4G頻段可以提供250kbps的原始數(shù)據(jù)吞吐率,在915MHZ為40kbps,在868MHZ為20kbps。高容量。每個(gè)ZigBee網(wǎng)絡(luò)可以容納65000個(gè)節(jié)點(diǎn)。由于可以容納的節(jié)點(diǎn)多,ZigBee網(wǎng)絡(luò)的覆蓋
17、范圍自然而然也就大了。網(wǎng)絡(luò)自組織自愈。ZigBee的節(jié)點(diǎn)在與父節(jié)點(diǎn)失去聯(lián)系后能夠自動(dòng)尋找新的父節(jié)點(diǎn),重新加入網(wǎng)絡(luò)。21.4 ZigBee的發(fā)展趨勢在協(xié)議規(guī)范方面,ZigBee已經(jīng)推出了ZigBee IP Specification,這個(gè)協(xié)議可以實(shí)現(xiàn)物聯(lián)網(wǎng)與互聯(lián)網(wǎng)相連。在應(yīng)用層面,ZigBee聯(lián)盟目前已經(jīng)針對(duì)不同的領(lǐng)域推出更有針對(duì)性的應(yīng)用層方案標(biāo)準(zhǔn)。在ZigBee誕生之初,所有的應(yīng)用領(lǐng)域都使用相同的標(biāo)準(zhǔn),而近年來,ZigBee針對(duì)不同領(lǐng)域推出了不同的標(biāo)準(zhǔn),以便更有針對(duì)性地解決問題。在ZigBee聯(lián)盟官網(wǎng)上已經(jīng)有各種不同的應(yīng)用層標(biāo)準(zhǔn),如ZigBee Building Automation,ZigB
18、ee Remote Control,ZigBee Smart Energy,ZigBee Home Automation,ZigBee Health Care等??梢灶A(yù)見,ZigBee將繼續(xù)拓展應(yīng)用領(lǐng)域,并提出對(duì)應(yīng)的應(yīng)用標(biāo)準(zhǔn),以便更好地滿足用戶需求。在ZigBee聯(lián)盟官網(wǎng)上,有一個(gè)ZigBee3.0,目前處于測試中。其主要目的是將市場上ZigBee的各個(gè)主要的應(yīng)用層標(biāo)準(zhǔn)統(tǒng)一,這樣可以使得各種智能產(chǎn)品在同一個(gè)網(wǎng)絡(luò)中工作,同時(shí)簡化與互聯(lián)網(wǎng)的連接。18第二章 ZigBee簡介第二章 ZigBee簡介ZigBee是一種低速率無線通信協(xié)議。它可以工作在868MHZ,915MHZ和2.4G 3個(gè)頻段,最大
19、傳輸速率為250kbps。ZigBee主要是針對(duì)低速率、低成本、電池供電的應(yīng)用場合。ZigBee終端節(jié)點(diǎn)的絕大部分時(shí)間都處于睡眠模式,也正因?yàn)檫@樣,它才能夠考兩節(jié)5號(hào)電池維持624個(gè)月。隨著物聯(lián)網(wǎng)的發(fā)展,ZigBee被廣泛應(yīng)用到工業(yè)自動(dòng)化,智能家居,智能樓宇,遠(yuǎn)程控制,自動(dòng)抄表,醫(yī)療設(shè)備等領(lǐng)域。2.1 ZigBee協(xié)議層結(jié)構(gòu)建立一種通信協(xié)議經(jīng)常會(huì)用到層的概念。每一層實(shí)現(xiàn)特定的功能,只有相鄰層之間才能夠進(jìn)行數(shù)據(jù),指令的傳輸。分層,有許多方便之處。首先可以將復(fù)雜的任務(wù)分解,從而降低難度,并且可以使得各個(gè)任務(wù)同時(shí)開發(fā),縮短研發(fā)時(shí)間;其次,由于各層之間相對(duì)獨(dú)立,當(dāng)協(xié)議更新的時(shí)候,只需要修改對(duì)應(yīng)的層即可
20、,無需推倒重來;再次用戶可以專注于應(yīng)用層開發(fā),而需過多關(guān)注其他層。3 4 ZigBee協(xié)議層結(jié)構(gòu)如圖2-1所示:圖2-1 ZigBee協(xié)議層框架從圖中可以看出,ZigBee的物理層(PHY)和媒介接入控制層(MAC)遵循IEEE 802.15.4標(biāo)準(zhǔn)。ZigBee聯(lián)盟將IEEE 802.15.4標(biāo)準(zhǔn)做了適當(dāng)?shù)男薷暮螅谄浠A(chǔ)上定義了網(wǎng)絡(luò)層(NWK),應(yīng)用支持子層,ZigBee設(shè)備對(duì)象,安全服務(wù)提供層。2.2層與層的通信層與層之間的通信使用的原語概念。原語可以理解為基本命令,基本操作,原始語句,原始語句是針對(duì)程序語句而言。只有相鄰層之間才能通信,具體表現(xiàn)為調(diào)用函數(shù)和傳遞數(shù)據(jù)。雖然各層之間的功能不
21、同,但是層與層之間的通信卻是相似的。每一個(gè)原語指定了要執(zhí)行的任務(wù)或者指示任務(wù)執(zhí)行的結(jié)果。原語也可以攜帶參數(shù)。下圖顯示了四種類型的原語。不管是IEEE 802.15.4協(xié)議還是ZigBee協(xié)議,它們描述的服務(wù)都使用這些格式來表達(dá)。原語類型如下:< The Primitive >.request< The Primitive >.indication< The Primitive >.response< The Primitive >.confirm其中request和response由服務(wù)使用者(上層)產(chǎn)生,indication和confirm由服
22、務(wù)提供者(下層)產(chǎn)生。下面這張圖可以形象的表達(dá)這種關(guān)系。圖2-2 原語通信過程請求服務(wù)(request)是由上層發(fā)出,用于向下層請求服務(wù)。比如MAC層向PHY層請求發(fā)送MAC數(shù)據(jù)包。指示事件(indication)是下層向上層報(bào)告有對(duì)上層很重要的事件發(fā)生。比如PHY層收到其它節(jié)點(diǎn)發(fā)來的數(shù)據(jù),并且需要向上傳遞給MAC層。PHY使用PD-Data.indication將數(shù)據(jù)傳送給MAC層。如果指示事件原語要求應(yīng)答(response),那么上層將使用應(yīng)答原語應(yīng)答下層。值得注意的是PYH層和NWK層沒有應(yīng)答原語,MAC層和APL層(應(yīng)用支持子層,后文將會(huì)介紹)有應(yīng)答原語。確認(rèn)結(jié)果(confirm)原語
23、是由下層發(fā)出,用于告知上層先前請求的任務(wù)執(zhí)行的結(jié)果。3 43各層之間的使用原語來通信,而它們接觸的地點(diǎn)是在服務(wù)接入點(diǎn)(service access points,SAP)。服務(wù)接入點(diǎn)是個(gè)概念性的地點(diǎn),層與層在那里進(jìn)行數(shù)據(jù)傳輸。服務(wù)接入點(diǎn)分為數(shù)據(jù)服務(wù)接入點(diǎn)和管理服務(wù)接入點(diǎn)。2.3 ZigBee各層介紹2.3.1物理層(PHY)物理層是協(xié)議棧的最底層,與硬件聯(lián)系最緊密。它的主要功能有:信道設(shè)置。ZigBee共有27個(gè)信道。其中信道0處于頻段868.0868.6MHZ,信道110處于頻段902.0928.0MHZ,相鄰信道間隔2MHZ,信道1126處于頻段2400.02483.5MHZ之間,相鄰信道
24、間隔5MHZ。信道能量偵測。選擇一個(gè)安靜的信道可以減少噪聲,提高通信質(zhì)量,節(jié)約能量。載波監(jiān)聽。為了減少碰撞,節(jié)點(diǎn)在發(fā)送數(shù)據(jù)之前會(huì)先判斷信道是否有其它的相同調(diào)制方式的載波,如果信道被占用,則會(huì)等待一段時(shí)間再次偵聽。鏈路質(zhì)量指示。用于指示接收到數(shù)據(jù)包的質(zhì)量,可以用信號(hào)強(qiáng)度或者信噪比來指示。鏈路質(zhì)量指示可以被網(wǎng)絡(luò)層作為選擇路由路徑的一個(gè)參數(shù)??臻e信道評(píng)估。對(duì)載波監(jiān)聽的結(jié)果進(jìn)行處理,判段信道是否處于空閑狀態(tài)。3 472.3.2介質(zhì)訪問控制層(MAC)MAC層主要有以下功能:協(xié)調(diào)器產(chǎn)生信標(biāo)和使用超幀結(jié)構(gòu)。如圖2-4所示,在使用信標(biāo)的網(wǎng)絡(luò)中,圖2-3 超幀結(jié)構(gòu)協(xié)調(diào)器會(huì)周期性的發(fā)出信標(biāo),來開始一個(gè)超幀,信標(biāo)
25、中包含了兩個(gè)信標(biāo)的間隔以及保證時(shí)隙(GTS)的個(gè)數(shù)等信息。每個(gè)超幀分為16個(gè)等長的時(shí)槽。超幀可以分為競爭接入期(CAP)、免競爭接入期(保證時(shí)隙期,GTS)和休眠期。在競爭接入期,各個(gè)設(shè)備想要使用信道要通過CSMA-CA機(jī)制來競爭;在非競爭接入期,協(xié)調(diào)器會(huì)將保證時(shí)隙分給指定的設(shè)備使用,用來保證一些實(shí)時(shí)性高的數(shù)據(jù)傳輸;以上兩個(gè)時(shí)期統(tǒng)稱活躍期。活躍期過后,如果選擇休眠,那么就進(jìn)入休眠期,在休眠期允許設(shè)備進(jìn)入節(jié)電模式。在信標(biāo)使能網(wǎng)絡(luò)中同步設(shè)備。設(shè)備可以請求與協(xié)調(diào)器同步,這樣就可以信標(biāo)發(fā)出之前的那一瞬間打開接收機(jī),而不必一直處于接收狀態(tài)。信道接入采用CSMA-CA機(jī)制。為了盡可能減少碰撞,節(jié)點(diǎn)采用帶有
26、沖突避免的載波堅(jiān)挺多路訪問機(jī)制(CSMA-CA)來接入信道。在發(fā)送數(shù)據(jù)之前,都會(huì)監(jiān)聽信道,判斷信道是否被占用,如果被占用則隨機(jī)避讓一段時(shí)間,再次偵聽。并不是每次發(fā)送數(shù)據(jù)都要偵聽,有兩種情況例外。在超幀中的免競爭接入期,GTS已經(jīng)被分配好,無需競爭;收到數(shù)據(jù)請求指令的應(yīng)答后可以直接發(fā)送數(shù)據(jù),無須競爭。處理和維護(hù)GTS機(jī)制。包括分配和收回GTS的使用權(quán)在兩個(gè)不同設(shè)備的MAC層間提供可靠的通信鏈路。提供網(wǎng)絡(luò)連接與斷開服務(wù)。提供MAC層的安全服務(wù),但是上層可以決定是否使用。3 792.3.3 網(wǎng)絡(luò)層(NWK)網(wǎng)絡(luò)層的功能如下:配置一個(gè)新設(shè)備,比如配置成協(xié)調(diào)器,路由器,終端節(jié)點(diǎn)。創(chuàng)建一個(gè)新的網(wǎng)絡(luò),只有協(xié)
27、調(diào)器有此能力。加入和離開一個(gè)網(wǎng)絡(luò)。提供網(wǎng)絡(luò)層安全。路由數(shù)據(jù),將數(shù)據(jù)傳給目的節(jié)點(diǎn),只有協(xié)調(diào)器和路由器有此能力。發(fā)現(xiàn)和保存路由。發(fā)現(xiàn)路由路徑,用于傳遞數(shù)據(jù);將路徑保存一段時(shí)間,以便備用,免得每次都去發(fā)現(xiàn)路由路徑,當(dāng)一段時(shí)間內(nèi)沒有用到后,則刪除這條路徑。發(fā)現(xiàn)單跳鄰居。這些鄰居是可以直接傳輸數(shù)據(jù)的節(jié)點(diǎn),無須路由。存儲(chǔ)單跳鄰居的信息。分配網(wǎng)絡(luò)地址給新加入的設(shè)備,只有協(xié)調(diào)器和路由器有此功能。3 1092.3.4應(yīng)用層(APL)應(yīng)用層由應(yīng)用支持子層(APS)、ZigBee設(shè)備對(duì)象(ZDO)和應(yīng)用層框架組成。應(yīng)用支持子層的功能如下:維護(hù)綁定表。綁定指的是兩個(gè)相關(guān)的節(jié)點(diǎn)建立邏輯聯(lián)系。比如一個(gè)與開關(guān)相連的節(jié)點(diǎn)可以
28、與一個(gè)或多個(gè)與燈泡相連的節(jié)點(diǎn)建立邏輯聯(lián)系,從而控制燈泡的狀態(tài)。綁定的好處是可以讓應(yīng)用程序在不知道目標(biāo)地址的情況下也能夠?qū)?shù)據(jù)發(fā)送到正確的地方。在綁定設(shè)備間轉(zhuǎn)發(fā)數(shù)據(jù)。管理組地址。ZigBee有三種數(shù)據(jù)傳輸方式,單播,廣播,組播。組播則只有在同一個(gè)組的節(jié)點(diǎn)才能收到數(shù)據(jù)。通過物理地址獲取網(wǎng)絡(luò)地址,反之,通過網(wǎng)絡(luò)地址獲取物理地址。每一個(gè)設(shè)備都有全球唯一的64位物理地址,在無線通信中,如果使用64為地址辨別節(jié)點(diǎn),則大大增加數(shù)據(jù)量,故而使用16位的短地址。提供可靠的數(shù)據(jù)傳輸。ZigBee設(shè)備對(duì)象(ZDO)是駐留在每一個(gè)ZigBee節(jié)點(diǎn)中的應(yīng)用對(duì)象,端點(diǎn)。其功能如下:定義設(shè)備類型,協(xié)調(diào)器,路由器,終端。設(shè)備
29、發(fā)現(xiàn)和應(yīng)用發(fā)現(xiàn)。發(fā)起綁定或者響應(yīng)綁定請求。執(zhí)行與安全有關(guān)的任務(wù)。3 1222.3.5 安全服務(wù)提供層(SSP)安全層提供一下功能:數(shù)據(jù)加密。ZigBee使用AES-128加密技術(shù),密碼在2128個(gè)數(shù)中選一個(gè),而且可以使用動(dòng)態(tài)密鑰,更新密碼。設(shè)備認(rèn)證和數(shù)據(jù)認(rèn)證。設(shè)備認(rèn)證是在新設(shè)備入網(wǎng)的時(shí)候進(jìn)行入網(wǎng)認(rèn)證。數(shù)據(jù)認(rèn)證是在接收到數(shù)據(jù)后判別數(shù)據(jù)是否被中途修改過。重復(fù)幀識(shí)別。在每次發(fā)新幀之前,都會(huì)在幀中添加一個(gè)幀序號(hào),接收者可以憑此識(shí)別重復(fù)幀,而不必進(jìn)行處理。在一個(gè)安全網(wǎng)絡(luò)中,有5種密鑰可以使用:連接密鑰,在兩個(gè)設(shè)備單播時(shí)使用。網(wǎng)絡(luò)密鑰,在整個(gè)網(wǎng)絡(luò)中使用,進(jìn)行廣播的時(shí)候可以使用。母密鑰,參與建立連接密鑰。密
30、鑰傳輸密鑰,用于保護(hù)密鑰的傳輸,不包括母密鑰,由信任中心向請求設(shè)備發(fā)送。密鑰裝載密鑰,用于保護(hù)母密鑰的傳輸。3 1342.4各層協(xié)作協(xié)議分層可以分解任務(wù),降低難度。但是要完成通信任務(wù),少不了各層之間的協(xié)作。下面來看一下數(shù)據(jù)收發(fā)過程中各層的協(xié)作,如圖2-4所示,數(shù)據(jù)在發(fā)出的時(shí)候在每一層都會(huì)在數(shù)據(jù)上加上相應(yīng)的幀頭和幀尾,在數(shù)據(jù)接收的時(shí)候會(huì)被解析出其中的信息。每一層幀以該層的名字命名。圖2-4 數(shù)據(jù)收發(fā)流程2.5 ZigBee基本概念1、 ZigBee設(shè)備類型有協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)。它們的功能如下:協(xié)調(diào)器是全功能設(shè)備,其功能特點(diǎn)如下:選擇一個(gè)頻道和PAN ID,組建網(wǎng)絡(luò)允許路由和終端節(jié)點(diǎn)加入這個(gè)
31、網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行路由必須常電供電,不能進(jìn)入睡眠模式可以為睡眠的終端節(jié)點(diǎn)保留數(shù)據(jù),至其喚醒后獲取。路由器全功能設(shè)備,其功能特點(diǎn)如下:在進(jìn)行數(shù)據(jù)收發(fā)之前,必須首先加入一個(gè)ZigBee網(wǎng)絡(luò)本身加入網(wǎng)絡(luò)后,允許路由和終端節(jié)點(diǎn)加入加入網(wǎng)絡(luò)后,可以對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行路由必須常電供電,不能進(jìn)入睡眠模式可以為睡眠的終端節(jié)點(diǎn)保留數(shù)據(jù),至其喚醒后獲取。 終端節(jié)點(diǎn)可以是全功能設(shè)備也可以是半功能設(shè)備,其功能特點(diǎn)如下:在進(jìn)行數(shù)據(jù)收發(fā)之前,必須首先加入一個(gè)ZigBee網(wǎng)絡(luò)不允許其他設(shè)備加入必須通過其父節(jié)點(diǎn)收發(fā)數(shù)據(jù),不能對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行路由可由電池供電,進(jìn)入睡眠模式協(xié)調(diào)器在選擇頻道和PAN ID組建網(wǎng)絡(luò)后,其功能將
32、相當(dāng)于一個(gè)路由器。協(xié)調(diào)器或者路由器均允許其他設(shè)備加入網(wǎng)絡(luò),并為其路由數(shù)據(jù)。4 2、PAN ID與擴(kuò)展PAN IDPAN ID是16位的整數(shù),是網(wǎng)絡(luò)的名字,相同范圍內(nèi)的網(wǎng)絡(luò)PAN ID不能形同。PAN ID的默認(rèn)值為0xFFFF,表明用戶沒有指定網(wǎng)絡(luò)名稱,由協(xié)調(diào)器自動(dòng)分配。通過給PAN ID賦值,用戶可以指定網(wǎng)絡(luò)名稱。擴(kuò)展PAN ID 是64位整數(shù),通常用于讓設(shè)備加入特定的網(wǎng)絡(luò)。如果擴(kuò)展PAN ID為默認(rèn)值全0,則設(shè)備可以加入任何允許加入的網(wǎng)絡(luò),如果為非零,則只能加入擴(kuò)展PAN ID相同的網(wǎng)絡(luò)。3、地址類型設(shè)備地址有16位的網(wǎng)絡(luò)地址與64位的物理地址。在通信中使用網(wǎng)絡(luò)地址,但是在加入網(wǎng)絡(luò)的時(shí)候,
33、要把物理地址告知父設(shè)備。所以通過網(wǎng)絡(luò)地址可以得到設(shè)備的物理地址,也可以通過物理地址得到設(shè)備的網(wǎng)絡(luò)地址。網(wǎng)絡(luò)地址是在加入的時(shí)候由父設(shè)備隨機(jī)分配。在同一個(gè)網(wǎng)絡(luò)中,兩類地址都不能有重復(fù)。4、數(shù)據(jù)傳播方式數(shù)據(jù)有三種傳播方式,單播、組播和廣播。單播時(shí)點(diǎn)對(duì)點(diǎn)通信,廣播是向所有節(jié)點(diǎn)發(fā)送數(shù)據(jù)。組播是想部分節(jié)點(diǎn)發(fā)送數(shù)據(jù),在組播前要先建立組,然后加入組,然后才可以收到組播數(shù)據(jù)。5、網(wǎng)絡(luò)結(jié)構(gòu)ZigBee支持三種網(wǎng)絡(luò)結(jié)構(gòu),星型,樹型,網(wǎng)狀型。它們的結(jié)構(gòu)示意圖如下:圖2-5 星型網(wǎng)絡(luò)結(jié)構(gòu)由圖可知,在星型網(wǎng)絡(luò)中協(xié)調(diào)器作為唯一的父節(jié)點(diǎn),其余節(jié)點(diǎn)直接與其相連。圖2-6 網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)在網(wǎng)狀型網(wǎng)絡(luò)結(jié)構(gòu)中,沒有父節(jié)點(diǎn)的概念,全功能
34、節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)相連,這種網(wǎng)絡(luò)結(jié)構(gòu)具有高的健壯性,即便某個(gè)節(jié)點(diǎn)出故障,對(duì)整個(gè)網(wǎng)絡(luò)影響不大。圖2-7 樹型網(wǎng)絡(luò)結(jié)構(gòu)由圖可知,樹型網(wǎng)絡(luò)中,路由器只能與父節(jié)點(diǎn)通信。在樹型結(jié)構(gòu)中,有個(gè)概念有必要解釋一下,網(wǎng)絡(luò)深度。與協(xié)調(diào)器相連的節(jié)點(diǎn)的網(wǎng)絡(luò)深度為1,深度為1的節(jié)點(diǎn)的子節(jié)點(diǎn)的網(wǎng)絡(luò)深度為2,其余深度類推。第三章 ZigBee的實(shí)現(xiàn)軟件部分:Z-Stack協(xié)議棧第三章ZigBee的實(shí)現(xiàn)軟件部分:Z-Stack協(xié)議棧市場上有許多ZigBee協(xié)議棧,其中開源的有Freakz,TinyOS等,半開源的有Z-Stack。本系統(tǒng)選擇的是Z-Stack,協(xié)議版本是ZigBee 2007/PRO。至于選擇的理由,稀里糊涂。
35、入手前對(duì)這些東西不懂,百度上搜索到的最多的是Z-Stack,入手資料多,但是半開源總是有許多不便之處,建議最好使用開源的協(xié)議棧。Z-Stack是TI公司開發(fā)的ZigBee協(xié)議棧,從1.0版本一直更新到2.6.0版本,此后由于ZigBee聯(lián)盟推出不同應(yīng)用領(lǐng)域的協(xié)議規(guī)范,TI公司也適應(yīng)這種變化,協(xié)議棧的名稱不再以Z-Stack 2.5.1a這種方式命名,而是根據(jù)應(yīng)用領(lǐng)域來命名,如Z-Stack-HOME代表智能家居領(lǐng)域的協(xié)議棧,不同領(lǐng)域的協(xié)議棧核心相同,只是在細(xì)節(jié)上有差異。本系統(tǒng)使用的是Z-Stack 2.5.1a。3.1 OSAL任務(wù)輪詢ZigBee協(xié)議由多層組成,每一層都有許多任務(wù),為了有效的
36、管理這些任務(wù),Z-Stack使用了OSAL(操作系統(tǒng)抽象層)機(jī)制。注意OSAL不是ZigBee協(xié)議中的內(nèi)容,但是在Z-Stack中,整個(gè)協(xié)議要依賴它運(yùn)行。先從主函數(shù)說起。主函數(shù)一開始是各種初始化,包括硬件初始化,OSAL初始化,任務(wù)初始化,之后就進(jìn)入一個(gè)死循環(huán)不斷的更新定時(shí)器鏈表,輪詢硬件,查詢是否有任務(wù)發(fā)生。如果有任務(wù),就調(diào)用相應(yīng)的任務(wù)處理函數(shù),處理完后再次查詢,直到所有的任務(wù)處理完,就可以進(jìn)入休眠,前提是允許休眠。醒來后再次輪詢。如果不允許休眠,那么就一直輪詢。終端節(jié)點(diǎn)可以選擇休眠,協(xié)調(diào)器和路由器不能夠休眠。終端節(jié)點(diǎn)的流程圖3-1如下:圖3-1 節(jié)點(diǎn)任務(wù)輪詢3.2任務(wù)的產(chǎn)生主循環(huán)在不斷的輪
37、詢?nèi)蝿?wù),那任務(wù)是什么時(shí)候產(chǎn)生的呢?在回答這個(gè)問題之前有必要要說說任務(wù)與任務(wù)處理函數(shù)是如何正確對(duì)應(yīng)起來的。在ZigBee中,有一個(gè)任務(wù)表,保存各層任務(wù)的對(duì)應(yīng)事件。每一層任務(wù)都是由一個(gè)16位的變量來表示,這個(gè)變量的每一位代表一個(gè)事件。如果事件發(fā)生,則相應(yīng)位置一,當(dāng)任務(wù)處理完,相應(yīng)的事件位置零。注意,同一個(gè)任務(wù)對(duì)應(yīng)多個(gè)事件,如何區(qū)分不同事件會(huì)在任務(wù)處理函數(shù)中完成。與任務(wù)表對(duì)應(yīng)的是任務(wù)處理函數(shù)表,里面存放的是任務(wù)處理函數(shù)的首地址。將任務(wù)與任務(wù)處理函數(shù)對(duì)應(yīng)起來很簡單,只要在兩個(gè)表中的位置相同即可。因?yàn)槿蝿?wù)表中的第N個(gè)位置與任務(wù)處理函數(shù)表中的第N個(gè)位置對(duì)應(yīng)。任務(wù)的產(chǎn)生主要有三種方式,其一為事件觸發(fā),其二為
38、消息觸發(fā),其三為定時(shí)器期滿。事件觸發(fā)。當(dāng)有事件發(fā)生,比如按鍵被按下,串口有數(shù)據(jù)接收,或者空中消息等,就會(huì)被捕捉到。然后調(diào)用回調(diào)函數(shù),將與事件相關(guān)的信息打包成一個(gè)消息,放到消息隊(duì)列中,然后再將任務(wù)中對(duì)應(yīng)的事件位置一,當(dāng)主循環(huán)檢測到該任務(wù)不為零,就可以調(diào)用任務(wù)處理函數(shù)了。這里再解釋一下捕獲事件的方式,一種是輪詢檢測,每隔一段時(shí)間去檢測一下,還有一種是產(chǎn)生外部中斷?;卣{(diào)函數(shù)是通過函數(shù)指針調(diào)用的函數(shù),如果你把A函數(shù)作為另一個(gè)函數(shù)的參數(shù),那么A就是一個(gè)回調(diào)函數(shù)。這樣可以將函數(shù)的實(shí)現(xiàn)與使用分開。回調(diào)函數(shù)將事件封裝成消息,比如按鍵被按下,要檢測是哪個(gè)按鍵按下,然后再發(fā)到消息隊(duì)列。Z-Stack里面有一個(gè)消息
39、隊(duì)列,里面存放著與任務(wù)有關(guān)的信息,當(dāng)有任務(wù)處理的時(shí)候,任務(wù)處理函數(shù)會(huì)從里面接收消息。消息觸發(fā)。層與層之間需要協(xié)作,比如應(yīng)用層要發(fā)送數(shù)據(jù),那么就要將數(shù)據(jù)封裝成消息,并通知下層。定時(shí)器期滿。比如要在10秒后產(chǎn)生某個(gè)任務(wù),那么就可以調(diào)用事件延時(shí)觸發(fā)函數(shù)設(shè)置一個(gè)10秒的定時(shí)器,10秒后會(huì)自動(dòng)觸發(fā)任務(wù)。不過,Z-Stack使用軟件定時(shí)器。由于任務(wù)眾多,有許多事件需要定時(shí)器觸發(fā),而硬件定時(shí)器僅有幾個(gè),不能滿足需求,即便能,那也會(huì)導(dǎo)致資源利用率不高。在Z-Stack中有一個(gè)定時(shí)器鏈表,每當(dāng)需要延時(shí)觸發(fā)任務(wù),就會(huì)再鏈表中加入一項(xiàng),當(dāng)期滿,就會(huì)設(shè)置對(duì)應(yīng)的事件,然后刪除定時(shí)器。那么定時(shí)器是如何更新時(shí)間的呢?使用一
40、個(gè)硬件定時(shí)器,每隔一段時(shí)間把硬件定時(shí)器的增量轉(zhuǎn)換成以微秒為單位的時(shí)間,去更新整個(gè)定時(shí)器鏈表。3.3 Z-Stack框架與工程文件目錄前兩節(jié)講解了Z-Stack中任務(wù)的產(chǎn)生,任務(wù)的檢測,任務(wù)的處理。對(duì)于它們的程序?qū)崿F(xiàn),只能通過閱讀程序來感知了。至于協(xié)議的具體實(shí)現(xiàn),沒有必要全部知道,只要專注于應(yīng)用層的開發(fā)即可。為了進(jìn)一步消除對(duì)Z-Stack的陌生感,本節(jié)將首先介紹Z-Stack的框架,然后介紹Z-Stack中各文件的作用。當(dāng)然,消除陌生感的最好方式是實(shí)踐。3.3.1 Z-Stack框架Z-Stack框架如圖3-2所示。相鄰層之間有服務(wù)接入點(diǎn)(ASP),安全層為網(wǎng)絡(luò)層和應(yīng)用層提供安全保障。端點(diǎn),是應(yīng)
41、用對(duì)象與應(yīng)用支持子層交互的地方,一個(gè)節(jié)點(diǎn)可以有255個(gè)端點(diǎn),用戶可以使用1240個(gè)端點(diǎn),可以定義240個(gè)應(yīng)用對(duì)象。端點(diǎn)241254保留。端點(diǎn)0用于配置和管理ZigBee設(shè)備。應(yīng)用程序可以通過端點(diǎn)0與ZigBee的其他層通信。與端點(diǎn)0對(duì)應(yīng)的應(yīng)用對(duì)象稱為ZDO(ZigBee設(shè)備對(duì)象),應(yīng)用層可以通過它對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行配置和訪問。端點(diǎn)255用于向所有端點(diǎn)廣播。應(yīng)用程序可以通過端點(diǎn)使用應(yīng)用支持子層提供的服務(wù)。圖3-2 Z-Stack框架3.3.2 Z-Stack工程文件目錄介紹先看ZigBee工程文件目錄,如圖3-3所示。下面分別介紹各文件的作用。圖3-3 Z-Stack工程目錄APP(Applicat
42、ion Programming):應(yīng)用層目錄,這是用戶創(chuàng)建各種不同工程的區(qū)域,在這個(gè)目錄中包含了應(yīng)用層的內(nèi)容和這個(gè)項(xiàng)目的主要內(nèi)容,在協(xié)議棧里面一般是以操作系統(tǒng)的任務(wù)實(shí)現(xiàn)的。HAL(Hardware (H/W) Abstraction Layer):硬件層目錄,包含有與硬件相關(guān)的配置和驅(qū)動(dòng)及操作函數(shù)。MAC:MAC層目錄,包含了MAC層的參數(shù)配置文件及其MAC 的LIB 庫的函數(shù)接口文件。MT(Monitor Test):實(shí)現(xiàn)通過串口可控各層,于各層進(jìn)行直接交互。NWK(ZigBee Network Layer):網(wǎng)絡(luò)層目錄,含網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫的函數(shù)接口文件,APS層庫的函數(shù)接口OS
43、AL(Operating System (OS) Abstraction Layer):協(xié)議棧的操作系統(tǒng)。Profile:AF(Application Framework)層目錄,包含AF層處理函數(shù)文件。Security:安全層目錄,安全層處理函數(shù),比如加密函數(shù)等。Services:地址處理函數(shù)目錄,包括著地址模式的定義及地址處理函數(shù)。Tools:工程配置目錄,包括空間劃分及ZStack 相關(guān)配置信息。ZDO(ZigBee Device Objects):ZDO目錄。ZMac:MAC層目錄,包括MAC層參數(shù)配置及MAC層LIB庫函數(shù)回調(diào)處理函數(shù)。ZMain:主函數(shù)目錄,包括入口函數(shù)及硬件配置文
44、件。Output:輸出文件目錄,這個(gè)EW8051 IDE 自動(dòng)生成的。53.4 任務(wù)觸發(fā)流程實(shí)例:按鍵任務(wù)的觸發(fā)程序太過繁雜,只看流程圖,如圖3-4所示。按鍵事件一共有兩種觸發(fā)方式,一種是輪詢,一種是中斷,其中中斷的實(shí)時(shí)性更好。圖3-4 按鍵任務(wù)的產(chǎn)生與處理如上圖,在主函數(shù)中,一開始各種初始化,最后進(jìn)入OSAL_start_system(),這是一個(gè)死循環(huán)。在這個(gè)函數(shù)里面進(jìn)行3.1節(jié)所講的任務(wù)輪詢。在OSAL_init_system() 中,進(jìn)行了OSAL初始化,包括了內(nèi)存,消息隊(duì)列,定時(shí)器鏈表,電源和系統(tǒng)任務(wù)初始化,在系統(tǒng)任務(wù)初始化中,調(diào)用了用戶任務(wù)初始化。在用戶任務(wù)初始化中對(duì)按鍵事件進(jìn)行了
45、注冊,只有注冊后,系統(tǒng)才能知道當(dāng)按鍵按下,要將按鍵事件發(fā)送給用戶任務(wù),而不是別的任務(wù)。在Init_Board(OB_READY)中調(diào)用了HalKeyConfig(),對(duì)按鍵進(jìn)行配置,可以配置成中斷方式,也可以配置成輪詢方式。配置完后,進(jìn)行一些其他的操作,就開始進(jìn)入輪詢死循環(huán)。在HalKeyConfig()中,按鍵事件的觸發(fā)如果配置成輪詢方式,則每隔100毫秒觸發(fā)一次硬件(不是按鍵)事件;如果是中斷方式,則在中斷產(chǎn)生后,延時(shí)25毫秒(為了消抖)后觸發(fā)硬件事件。在硬件事件中調(diào)用HalKeyPoll(),在這個(gè)函數(shù)中會(huì)檢測所有的硬件狀態(tài),包括按鍵是否被按下,如果是則會(huì)調(diào)用按鍵回調(diào)函數(shù),另外如果是輪詢
46、模式,還會(huì)在HalKeyPoll()中再次設(shè)置100毫秒后觸發(fā)硬件事件。接下來便是封裝消息,發(fā)送消息給注冊過按鍵事件的應(yīng)用對(duì)象,設(shè)置按鍵事件,最終調(diào)用按鍵任務(wù)處理函數(shù)。第四章 ZigBee的實(shí)現(xiàn)硬件部分:硬件系統(tǒng)設(shè)計(jì)第四章 ZigBee的實(shí)現(xiàn)硬件部分:硬件系統(tǒng)設(shè)計(jì)在緒論中,說到過ZigBee的硬件實(shí)現(xiàn)有三種,這里使用的是片上系統(tǒng)解決方案,直接使用TI公司專為ZigBee協(xié)議設(shè)計(jì)的CC2530單片機(jī)。本章將首先介紹CC2530單片機(jī),然后介紹電路原理圖,最后附上PCB圖。4.1 CC2530介紹CC2530芯片結(jié)合了RF收發(fā)器,增強(qiáng)型8051CPU,系統(tǒng)內(nèi)可編程閃存,8KB RAM和其他許多模塊
47、。支持ZigBee/ZigBee PRO,ZigBee RF4CE,6LoWPAN,WirelessHART及其他所有基于802.15.4標(biāo)準(zhǔn)的解決方案。在掉電模式下,只有睡眠定時(shí)器運(yùn)行時(shí),僅有1uA左右的電流損耗,能夠很好滿足終端節(jié)點(diǎn)對(duì)低功耗的要求。CC2530引腳功能如圖4-1所示:圖4-1 CC2530引腳功能圖CC2530可用資源如下:最高可達(dá)256KB的閃存,可擦除20000次;8KB的RAM。18個(gè)中斷源。調(diào)試接口。兩線調(diào)試接口允許對(duì)片上閃存進(jìn)行編程,可以訪問存儲(chǔ)器和寄存器的內(nèi)容,以及調(diào)試功能,比如斷點(diǎn),單步,修改寄存器等。電源工作模式選擇。CC2530之所以能夠?qū)崿F(xiàn)超低功耗,就是
48、因?yàn)樗梢怨ぷ髟诙喾N電源模式下。各模式指的是主動(dòng)模式,空閑模式,PM1,PM2,PM3。其中PM3具有最低功耗。通用IO端口,P0,P1是完全的8位端口,P2有5位可用。P1.0,P1.1具有20毫安的輸出驅(qū)動(dòng)能力,其余輸出均具備4mA的驅(qū)動(dòng)能力。5通道的DMA控制器4個(gè)定時(shí)器。定時(shí)器1具有輸入捕捉,輸出比較,和PWM功能的定時(shí)器/計(jì)數(shù)器。定時(shí)器2是睡眠定時(shí)器,用于芯片在PM2睡眠模式下睡眠時(shí)間的計(jì)算以及喚醒。IR信號(hào)產(chǎn)生和線性化ADC轉(zhuǎn)換。支持14位的模擬數(shù)字轉(zhuǎn)換,具有多達(dá)12位的有效位。隨機(jī)數(shù)發(fā)生器。產(chǎn)生偽隨機(jī)字節(jié),可以被CPU讀取,或有命令選通器直接使用。ASE協(xié)處理器,允許以最少的CP
49、U參與進(jìn)行ASE-128加密/解密??撮T狗定時(shí)器??梢栽谲浖霈F(xiàn)故障的時(shí)候重新復(fù)位,增加軟件的健壯性。2個(gè)串行通信接口,可以工作在異步UART模式或者同步SPI模式。USB控制器,可以監(jiān)控USB的相關(guān)活動(dòng)并處理數(shù)據(jù)包的傳輸。無線電模塊。由RF內(nèi)核控制,另外RF內(nèi)核還未MCU和無線電模塊提供接口,以便發(fā)出命令,讀取狀態(tài)和自動(dòng)對(duì)無線電事件排序。64.2電路圖介紹4.2.1 原理圖介紹在上一節(jié)中,可以看到,CC2530已經(jīng)集成的8051CPU和無線電模塊。因此硬件電路圖比較簡潔,分為兩部分,CC2530芯片電路和微波發(fā)射電路。如圖4-2所示:圖4-2 CC2530電路上面這個(gè)電路圖,主要是參考TI公
50、司的參考設(shè)計(jì)庫。主要分為CC2530電路和天線部分。在TI的論壇上,TI公司的員工建議用戶盡可能原搬照抄,不要去搞創(chuàng)意。不過TI公司的PCB是四層板,但是本系統(tǒng)只做最小系統(tǒng),所以PCB不能原搬照抄。4.2.2 PCB各層圖雙面板底層PCB圖圖4-3 底層PCB圖雙面板頂層圖4-4 頂層PCB圖第五章 ZigBee的應(yīng)用:應(yīng)用程序設(shè)計(jì)第五章 ZigBee的應(yīng)用:應(yīng)用程序設(shè)計(jì)5.1 程序功能分析本系統(tǒng)是個(gè)監(jiān)測系統(tǒng),基本功能是采集數(shù)據(jù),傳送數(shù)據(jù)。但是在實(shí)際應(yīng)用中,為了讓用戶省心,僅僅只有這兩個(gè)功能是不夠的,還需要實(shí)現(xiàn)以下功能:終端節(jié)點(diǎn)休眠。由于終端節(jié)點(diǎn)迫不得已使用電池供電,那么就一定要讓電池的壽命盡
51、可能的長,這可以通過盡可能長得休眠來節(jié)約電能。節(jié)點(diǎn)入網(wǎng)控制。Z-Stack的默認(rèn)狀態(tài)既不能夠讓節(jié)點(diǎn)加入特定的(自己的)網(wǎng)絡(luò),也不能夠阻止節(jié)點(diǎn)加入一個(gè)網(wǎng)絡(luò)。對(duì)于使用者來說,肯定希望讓自己的節(jié)點(diǎn)只加入自己的網(wǎng)絡(luò),同時(shí)拒絕別人的節(jié)點(diǎn)加入自己的網(wǎng)絡(luò)。網(wǎng)絡(luò)地址設(shè)置。Z-Stack中,節(jié)點(diǎn)的網(wǎng)絡(luò)地址是隨機(jī)分配的。這樣有個(gè)不便之處,就是難以知道某個(gè)節(jié)點(diǎn)采集的數(shù)據(jù)來自哪個(gè)地方。但是如果能夠預(yù)先設(shè)置網(wǎng)絡(luò)地址,那么可以在程序下載進(jìn)板子后,把設(shè)置好的網(wǎng)絡(luò)地址標(biāo)記在板子上,當(dāng)板子安裝的時(shí)候,就可以順便記下這個(gè)節(jié)點(diǎn)安裝的位置,這樣就可以知道某個(gè)節(jié)點(diǎn)采集的數(shù)據(jù)來自哪個(gè)位置。終端節(jié)點(diǎn)掉線后間歇性找網(wǎng)。Z-Stack中,終端
52、節(jié)點(diǎn)掉線后會(huì)一直試圖加入網(wǎng)絡(luò)。如此一來,會(huì)大大縮短電池的使用壽命,所以必須加以控制,讓其在找網(wǎng)失敗后進(jìn)入睡眠,醒來后再找。顯示網(wǎng)絡(luò)結(jié)構(gòu)。顯示網(wǎng)絡(luò)結(jié)構(gòu),可以得知網(wǎng)絡(luò)間各設(shè)備的連接關(guān)系,同時(shí)還可以查看節(jié)點(diǎn)是否掉線。上述功能中沒有涉及到安全方面的內(nèi)容,因?yàn)樵诒鞠到y(tǒng)中,即便被人偵聽,也不會(huì)產(chǎn)生嚴(yán)重后果。5.2功能的實(shí)現(xiàn)所有的功能都在Z-Stack的基礎(chǔ)上修改而來,本節(jié)將會(huì)介紹如何對(duì)協(xié)議棧進(jìn)行修改來實(shí)現(xiàn)所需的功能。論文主要講的是實(shí)現(xiàn)原理,會(huì)忽略細(xì)節(jié),所以如果照著論文修改,也有可能出現(xiàn)問題。但是如果理解原理,那么再修改,即便出了問題,那么也能夠自行解決。程序使用的協(xié)議棧是Z-Stack 2.5.1a,開發(fā)
53、軟件是IAR EW8051 V8.1,下載工具是CC DEBUG。5.2.1數(shù)據(jù)采集與傳輸這兩個(gè)功能相對(duì)基本,數(shù)據(jù)采集可以直接調(diào)用ADC轉(zhuǎn)換函數(shù),或者自己對(duì)寄存器進(jìn)行相關(guān)的設(shè)置。數(shù)據(jù)傳輸可以調(diào)用AF_DataRequest(),只要設(shè)置好相關(guān)參數(shù)即可。其函數(shù)原型如下:afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8* transID,uint8 options, uint8 radius )5.2.2終端節(jié)點(diǎn)休眠首先
54、介紹休眠時(shí)間的設(shè)置機(jī)理。在Z-Stack,休眠時(shí)間是由系統(tǒng)根據(jù)定時(shí)器鏈表中即將溢出的定時(shí)的溢出時(shí)間來確定的。比如,在定時(shí)器鏈表中,有一個(gè)定時(shí)器在1秒后會(huì)溢出,其余的溢出時(shí)間都大于1秒,那么系統(tǒng)的睡眠時(shí)間為(略小于)1秒,這樣就不會(huì)錯(cuò)過任務(wù)了。休眠有幾種,這里只介紹兩種。PM2模式,可以被睡眠定時(shí)器(24位)喚醒;PM3模式,深度睡眠,只能被復(fù)位或者外部中斷喚醒。下面的睡眠指的是PM2模式下的睡眠。要實(shí)現(xiàn)終端節(jié)點(diǎn)休眠,需要進(jìn)行以下操作:編譯預(yù)編譯選項(xiàng)POWER_SAVING,操作如下:Project->Option->C/C+ Compiler->Preprocessor-&g
55、t;Define symbols,在里面輸入POWER_SAVING即可。在文件f8wConfig.cfg中令-DRFD_RCVC_ALWAYS_ON=FALSE,不要讓節(jié)點(diǎn)一直處于接收狀態(tài)。接下來是關(guān)閉各種輪詢,因?yàn)檩喸儠?huì)讓節(jié)點(diǎn)頻繁蘇醒,不利于節(jié)能。很多都是只針對(duì)終端節(jié)點(diǎn)。在終端節(jié)點(diǎn)的配置中沒有定義RTR_NWK,而路由器和協(xié)調(diào)器都定義了。所以可以以此來區(qū)別終端節(jié)點(diǎn)。hal_drivers.c中Hal_ProcessEvent( uint8 task_id, uint16 events )將if (!Hal_KeyIntEnable)中的語句改成如下語句:/* if interrupt di
56、sabled, do next polling */ if (!Hal_KeyIntEnable) #if defined (RTR_NWK)/協(xié)調(diào)器路由器可以輪詢,終端節(jié)點(diǎn)因?yàn)椴恍枰菝?,輪詢費(fèi)電。 OSAL_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100); #endif 在協(xié)議棧中沒有添加#if defined (RTR_NWK) #endif。這里會(huì)使得終端節(jié)點(diǎn)的按鍵輪詢關(guān)閉,所以終端節(jié)點(diǎn)對(duì)使用輪詢模式的按鍵不會(huì)有反應(yīng)。但是對(duì)復(fù)位鍵或者使用中斷模式的按鍵仍然會(huì)有反應(yīng)。OSAL_pwrmgr_init(void)中pwrmgr_attribute.pwrmgr_device賦值為P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國銀行法律顧問合同范本
- 勞務(wù)分包個(gè)人合同范本
- 中醫(yī)飲售賣合同范本
- 剩余產(chǎn)品合同范本
- 農(nóng)業(yè)土豆銷售合同范本
- 公務(wù)車服務(wù)合同范本
- 個(gè)人包車協(xié)議合同范本
- 制定企業(yè)合同范本
- 個(gè)人餐館轉(zhuǎn)讓合同范本
- 單位買車合同范例
- 大學(xué)學(xué)院學(xué)生獎(jiǎng)助資金及相關(guān)經(jīng)費(fèi)發(fā)放管理暫行辦法
- 2022蘇教版科學(xué)五年級(jí)下冊全冊優(yōu)質(zhì)教案教學(xué)設(shè)計(jì)
- 加油員的安全生產(chǎn)責(zé)任制
- 2023年R2移動(dòng)式壓力容器充裝操作證考試題及答案(完整版)
- 九年級(jí)物理實(shí)驗(yàn)記錄單
- 2022年湖北省高中學(xué)業(yè)水平考試真題-音樂學(xué)科
- 提高屋面防水施工質(zhì)量年QC成果
- 部編初中語文古詩詞按作者分類梳理
- 博朗IRT6520中文說明書家用版
- 旅行社運(yùn)營實(shí)務(wù)電子課件 1.1 初識(shí)旅行社
- 【讀書如熬粥閱讀答案】讀書如熬粥閱讀答案
評(píng)論
0/150
提交評(píng)論