![基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/82aa7ee3-7fa3-485e-a708-fb3498c25aef/82aa7ee3-7fa3-485e-a708-fb3498c25aef1.gif)
![基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/82aa7ee3-7fa3-485e-a708-fb3498c25aef/82aa7ee3-7fa3-485e-a708-fb3498c25aef2.gif)
![基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/82aa7ee3-7fa3-485e-a708-fb3498c25aef/82aa7ee3-7fa3-485e-a708-fb3498c25aef3.gif)
![基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/82aa7ee3-7fa3-485e-a708-fb3498c25aef/82aa7ee3-7fa3-485e-a708-fb3498c25aef4.gif)
![基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/82aa7ee3-7fa3-485e-a708-fb3498c25aef/82aa7ee3-7fa3-485e-a708-fb3498c25aef5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于無線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要無線傳感網(wǎng)是由眾多部署在復(fù)雜環(huán)境中的節(jié)點(diǎn)組成的,利用節(jié)點(diǎn)收集數(shù)據(jù),分析后做出決策,ZigBee 技術(shù)作為一種新興的近距離、低功耗的無線傳感網(wǎng)技術(shù),獲得了廣泛支持,成為當(dāng)前研究的熱點(diǎn)和重點(diǎn)之一. 本文介紹了在對無線傳感網(wǎng)以及 ZigBee 協(xié)議棧學(xué)習(xí)的基礎(chǔ)上,設(shè)計(jì)節(jié)點(diǎn)采集溫度等數(shù)據(jù)的程序,以及開發(fā)上位機(jī)的監(jiān)控軟件,通過實(shí)驗(yàn)平臺進(jìn)行組網(wǎng),將節(jié)點(diǎn)上采集的數(shù)據(jù)發(fā)送給協(xié)調(diào)器,再通過以太網(wǎng)將數(shù)據(jù)發(fā)送給上位機(jī)軟件,利用監(jiān)控軟件監(jiān)控?cái)?shù)據(jù)的變化,實(shí)現(xiàn)對溫度等數(shù)據(jù)的監(jiān)控功能。 該系統(tǒng)的目標(biāo)是實(shí)時監(jiān)控環(huán)境溫度變化,并在溫度異常時發(fā)出警報(bào)。利用無線傳感網(wǎng),本系統(tǒng)可部署在各
2、種需要溫度監(jiān)控的環(huán)境中。關(guān)鍵詞:無線傳感網(wǎng) ZIGBEECC2430 Z-STACK 信息采集Design and realization of temperature monitoring system based on wireless sensor networkABSTRACT Wireless sensor network is composed of numerous of nodes deployed in a complex environment, using node gather data and analysising to make a decision , ZigB
3、ee technology as a new near distance and low power wireless sensor network technology, receives broad support,and has become one of research hot spot and focus on the current. In this paper,based on Studying on wireless sensor network, and ZigBee protocol stack, i designed the program of node temper
4、ature data acquisition as well as the development of PC monitoring software, through the experiment platform for network, the data collected on nodes is sent to the coordinator, then the coordinator sent the data to PC via Ethernet software.we can use monitoring software to monitor the change of the
5、 data,and then realize the temperature data of monitoring and other functions. The goal of the system is real-time monitoring the environment temperature changes, and sound an alarm when the temperature is abnormal . Using wireless sensor network, this system can be deployed in a variety of environm
6、ent needing temperature monitoring.Key words: Zigbee, wireless sensor network, Temperature Acquisition ,Z-Stack目 錄第一章 緒論.11.1 論文研究的背景和意義 .11.2 研究現(xiàn)狀及發(fā)展趨勢 .11.3 本文主要結(jié)構(gòu) .2第二章 ZIGBEE 協(xié)議棧.52.1 ZIGBEE協(xié)議棧簡介 .52.2 設(shè)備類型 .62.2.1 協(xié)調(diào)器.72.2.2 路由器.72.2.3 終端設(shè)備.72.2.4 設(shè)備的協(xié)議棧配置.72.3 尋址 .72.3.1 尋址類型.82.3.2 網(wǎng)絡(luò)地址分配.82.
7、3.3Zstack 尋址.92.4 本章總結(jié) .10第三章 開發(fā)平臺與環(huán)境分析.113.1 開發(fā)平臺介紹 .113.1.1 實(shí)驗(yàn)平臺簡介.113.1.2 仿真器.123.1.3 網(wǎng)關(guān)主板.133.1.4 有源感知節(jié)點(diǎn).133.1.5 Zigbee 模塊.143.2 軟件開發(fā)環(huán)境 .15第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).214.1 系統(tǒng)整體設(shè)計(jì) .214.2 模塊的軟件設(shè)計(jì) .224.2.1 模塊軟件整體設(shè)計(jì).224.2.2 添加任務(wù)過程分析 .234.2.3 具體功能實(shí)現(xiàn) .244.2.4 上位機(jī)監(jiān)控軟件開發(fā).274.3 本章小結(jié) .29第五章 系統(tǒng)運(yùn)行與演示.305.1 系統(tǒng)連接與配置 .305.2
8、編譯和下載項(xiàng)目文件 .315.3 運(yùn)行監(jiān)控系統(tǒng) .32結(jié)束語.34參考文獻(xiàn).35附錄.36致謝.57天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書00第一章 緒論1.1 論文研究的背景和意義伴隨著著無線網(wǎng)絡(luò)通信、大規(guī)模集成電路、傳感器等技術(shù)的快速發(fā)展和逐漸成熟,無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)應(yīng)運(yùn)而生。無線傳感網(wǎng)絡(luò)是由部署在一定區(qū)域內(nèi)的數(shù)量巨大的傳感器節(jié)點(diǎn),通過自組織形成多跳網(wǎng)絡(luò),進(jìn)行協(xié)作的感知、采集區(qū)域內(nèi)的信息,經(jīng)過處理并最終發(fā)送給觀察者。無線傳感網(wǎng)中的節(jié)點(diǎn)具有體積小,數(shù)量多,能耗低,集成無線通信以及數(shù)據(jù)采集和處理功能,它們通過無線信道通信,自組織的構(gòu)成
9、網(wǎng)絡(luò)。傳感器中包括了多種傳感器,可以測量周圍環(huán)境的溫度,濕度,光強(qiáng),RSSI 值等眾多對人類有價(jià)值的信息和現(xiàn)象。在采集數(shù)據(jù)后,還可以通過網(wǎng)關(guān)連接到網(wǎng)絡(luò)基礎(chǔ)設(shè)施中,比如將數(shù)據(jù)發(fā)送給較近的基站,達(dá)到講采集的數(shù)據(jù)和信息傳送給遠(yuǎn)程的終端的目的。所以,傳感器節(jié)點(diǎn)在無線傳感網(wǎng)中起著基礎(chǔ)作用,其設(shè)計(jì)的好壞將影響整個系統(tǒng)和網(wǎng)絡(luò)的質(zhì)量 CC2430 是一種低功耗,高效率的片上系統(tǒng),可以很好的解決無線傳感網(wǎng)絡(luò)中能量消耗較大的問題。CC2430 芯片是由 Chipon 公司開發(fā)的全球首款集成了 ZigBee 協(xié)議的片上系統(tǒng)解決方案,外置元件需要較少,成本低廉,可以很廉價(jià)、快速的構(gòu)建 Zigbee 節(jié)點(diǎn)。CC2430
10、 芯片延用了以往 CC2420 芯片的架構(gòu),在單個芯片上整合了 ZigBee 射頻(RF)前端、內(nèi)存和微控制器。它使用 1 個 8 位 MCU(8051) ,具有 128 KB 可編程閃存和 8 KB 的 RAM,還包含數(shù)字模擬轉(zhuǎn)換器、定時器、AES128 協(xié)同處理器、看門狗定時器、32 kHz 晶振的休眠模式定時器、上電復(fù)位電路以及 21 個可編程 I/O 引腳。CC2430 芯片采用 0.18mCMOS 工藝生產(chǎn),在接收和發(fā)射模式下電流損耗分別低于 27mA 或 25 mA。CC2430 的休眠模式和轉(zhuǎn)換到主動模式的超短時間的特性,特別適合那些要求電池壽命非常長的應(yīng)用。1.2 研究現(xiàn)狀及發(fā)
11、展趨勢 無線傳感器網(wǎng)絡(luò)將邏輯中的信息世界與客觀的物理世界連接、融合在一起,極大改變了人類與自然界的交互方式。人們通過傳感器網(wǎng)絡(luò)可以直接感知客觀的世界,從而極大地?cái)U(kuò)展現(xiàn)有網(wǎng)絡(luò)的功能和人類認(rèn)識世界的能力以及范圍。美國商業(yè)周刊和 MI 技術(shù)評論曾經(jīng)在預(yù)測未來技術(shù)發(fā)展的報(bào)告中,分別將無線傳感器網(wǎng)絡(luò)列為改變世界的 10 大技術(shù)之一以及 21 世紀(jì)最有影響的 21 項(xiàng)技術(shù)。同時,無線傳感器網(wǎng)絡(luò)、塑料電子學(xué)和仿生人體器官也被稱為全球未來天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書11三大高科技產(chǎn)業(yè)。最近幾年,隨著成本的降低,無線傳感器網(wǎng)絡(luò)已經(jīng)在如下幾個領(lǐng)域中有了大規(guī)模應(yīng)用:1)環(huán)境監(jiān)測由于環(huán)境污染問題越來越
12、突出,人們對與環(huán)境的保護(hù)愈發(fā)關(guān)注,于是對于環(huán)境的監(jiān)測需求相應(yīng)增加。無線傳感器網(wǎng)絡(luò)為在環(huán)境監(jiān)測中采集數(shù)據(jù)提供很大便利,同時還可以減少對環(huán)境的破壞。無線傳感器網(wǎng)絡(luò)可以環(huán)境變化對農(nóng)作物的影響,跟蹤候鳥和昆蟲的遷移,監(jiān)測大氣、海洋和土壤的成分等。2)醫(yī)療護(hù)理無線傳感器網(wǎng)絡(luò)也可以應(yīng)用在醫(yī)療和護(hù)理領(lǐng)域。英特爾公司推出的基于無線傳感器網(wǎng)絡(luò)的家庭護(hù)理技術(shù)即為其中之一,該系統(tǒng)利用在鞋、家具以家用電器等家用設(shè)備中嵌入傳感器,對老齡人士、阿爾茨海默氏病患者以及殘障人士的家庭生活有很大幫助。3)軍事領(lǐng)域由于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)造價(jià)低廉,可以密集隨機(jī)的分布在各種惡劣的戰(zhàn)場環(huán)境中,包括偵察敵情、監(jiān)控兵力、裝備和物資,判斷生
13、物化學(xué)攻擊等多方面用途。目前無線傳感器網(wǎng)絡(luò)還存在著如下問題:1)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)的通信問題。傳感器節(jié)點(diǎn)在正常通信過程中,信號可能被一些障礙物阻擋而受到影響,怎樣提高傳感器節(jié)點(diǎn)的穿透性是亟待解決的問題。2)延長傳感器網(wǎng)絡(luò)的使用壽命?,F(xiàn)在一般使用高能電池、降低傳感節(jié)點(diǎn)的功耗兩種方式來解決這個問題。此外還有傳感器網(wǎng)絡(luò)的自我能量收集技術(shù)和電池?zé)o線充電技術(shù),但這兩項(xiàng)技術(shù)尚在研究中,還不成熟。無線傳感器網(wǎng)絡(luò)有著十分廣泛的應(yīng)用前景以及較好的發(fā)展趨勢,除了在工業(yè)、農(nóng)業(yè)、軍事、環(huán)境、醫(yī)療等領(lǐng)域有具有巨大的運(yùn)用價(jià)值,在未來還將在許多新興領(lǐng)域體現(xiàn)其優(yōu)越性,如家用、保健、交通等領(lǐng)域。將來微型傳感器可以將家用電器等其他日常用
14、品同互聯(lián)網(wǎng)相連,對這些設(shè)備進(jìn)行遠(yuǎn)距離控制,這樣有利于家庭的安全調(diào)控、節(jié)電。1.3 本文主要結(jié)構(gòu) 第一章緒論首先簡要介紹了無線傳感網(wǎng),接著介紹了無線傳感網(wǎng)的研究背景、現(xiàn)狀和發(fā)展趨勢,最后對本題的提出和本文的工作內(nèi)容做了說明。第二章首先介紹了 Zigbee 技術(shù)的體系結(jié)構(gòu)。對 Z-Stack 協(xié)議棧的功能及其實(shí)現(xiàn)進(jìn)行了概述,包括地址分配、尋址、節(jié)點(diǎn)綁定、路由選擇機(jī)制,配置 PANID 等功能,以及選擇網(wǎng)絡(luò)加天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書22入等幾個方面。第三章對系統(tǒng)整體方案進(jìn)行了論述,包括硬件介紹和軟件設(shè)計(jì)。硬件主要介紹數(shù)據(jù)匯聚模塊,溫度傳感器模塊;軟件設(shè)計(jì)包括上位機(jī)界面設(shè)計(jì)、數(shù)據(jù)匯
15、聚模塊、溫度傳感器模塊的軟件設(shè)計(jì)。第三章對整個系統(tǒng)的開發(fā)平臺進(jìn)了論述,硬件方面主要包括無線龍的無線傳感網(wǎng)實(shí)驗(yàn)箱,包括主板,協(xié)調(diào)器,節(jié)點(diǎn),以及相應(yīng)的硬件模塊介紹,在軟件方面有嵌入式開發(fā)平臺 IAR,上位機(jī)的監(jiān)控軟件,zigbee 協(xié)議棧等。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書33第二章 ZigBee 協(xié)議棧協(xié)議棧2.1 zigbee 協(xié)議棧簡介 Zigbee 協(xié)議棧由一系列子層組成,每層為其上層提供特定的服務(wù):數(shù)據(jù)實(shí)體提供數(shù)據(jù)傳輸?shù)姆?wù),管理實(shí)體則提供其他的全部服務(wù)。服務(wù)接入點(diǎn)(SAP)為每一層的服務(wù)實(shí)體為其上一層提供服務(wù)的結(jié)構(gòu),SAP 中也提供了完成服務(wù)所需要的服務(wù)指令。Zigbee
16、協(xié)議棧的結(jié)構(gòu)自上而下包括 zigbee 應(yīng)用層,IEEE802.15.3MAC 層和IIEEE802.15.4 PHY 層。IEEE802.15.4 定義了最下面的兩層:物理層和介質(zhì)接入控制層。而Zigbee 聯(lián)盟則提供了應(yīng)用層和網(wǎng)絡(luò)層的框架設(shè)計(jì),應(yīng)用層的框架包括了 zigbee 設(shè)備對象(ZDO)、應(yīng)用支持子(APS)以及由制造商制定的應(yīng)用對象。圖 2-1 zigbee 協(xié)議棧天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書44 對比于其他無線通信標(biāo)準(zhǔn),zigbee協(xié)議有著明顯的優(yōu)勢和特定,需要的套件緊湊且簡單,具體實(shí)現(xiàn)要求較低,zigbee協(xié)議套件的大概最低需求為:8 位處理器,比如80C51
17、;32kb的 ROM,最小軟件只需4KB的 ROM,例如 CC2530 芯片,具有 8051 單片機(jī)增強(qiáng)型內(nèi)核,內(nèi)存為 32 位 128kb。網(wǎng)絡(luò)主節(jié)點(diǎn),即協(xié)調(diào)器節(jié)點(diǎn)需要更多的 sdram,用來容納網(wǎng)絡(luò)中所有節(jié)點(diǎn)的設(shè)備信息,設(shè)備關(guān)聯(lián)表以及與安全有關(guān)的密匙存儲等等。 Zigbee聯(lián)盟希望可以建立一種可連接每個電子設(shè)備的無線網(wǎng)。并預(yù)言zigbee將成為全球最高端的無線技術(shù)之一, ,同時IPV6與IEEE802.15.4 結(jié)合是傳感器網(wǎng)絡(luò)的發(fā)展趨勢,因?yàn)镮PV6采用 128 位地址,可以幾乎不受限制的提供地址。 在 IAR 中打開 zigbee 協(xié)議棧,其結(jié)構(gòu)如圖:圖 2.1 zigbee協(xié)議棧Ap
18、p :應(yīng)用層目錄,用戶在這里創(chuàng)建不同的工程,本目錄包含了協(xié)議棧的應(yīng)用層內(nèi)容和創(chuàng)建項(xiàng)目的內(nèi)容,一般是以操作系統(tǒng)的任務(wù)的形式實(shí)現(xiàn)的。HAL:硬件抽象層,包含了與硬件相關(guān)的配置信息、驅(qū)動及操作函數(shù)。MAC:MAC層目錄,包含了 mac 層的參數(shù)配置文件及其 LIB 庫的函數(shù)接口文件。MT:實(shí)現(xiàn)了通過串口對各層控制,以及與各層進(jìn)行直接交付。NWK:網(wǎng)絡(luò)層目錄,包含網(wǎng)絡(luò)層配置參數(shù)相關(guān)文件和 aps 層庫的函數(shù)接口以及網(wǎng)絡(luò)層庫函數(shù)接口文件及 OSAL:協(xié)議棧的操作系統(tǒng)。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書55PROFILE:AF層的目錄。Security:安全層目錄,包含安全層的處理函數(shù),如加密函
19、數(shù)等。Tools:工程配置目錄,包含空間劃分、z-stack相關(guān)配置的信息。Zdo:zdo目錄。Zmac:mac目錄,包括mac層參數(shù)的配置以及mac層lib庫函數(shù)回調(diào)處理函數(shù)。Zmain:主函數(shù)的目錄,包含入口函數(shù) main 以及硬件配置的文件。Output:輸出文件目錄,這是由開發(fā)環(huán)境IAR ew_8051自動生成的。 由此可以看出,整個 zigbee 協(xié)議棧已經(jīng)體現(xiàn)了 zigbee 的全部功能,建立一個 zigbee 項(xiàng)目的方法主要就是對應(yīng)用層的添加和修改。2.2 設(shè)備類型在ZigBee網(wǎng)絡(luò)中,一共有三種不同的邏輯設(shè)備類型:Coordinator(協(xié)調(diào)器節(jié)點(diǎn)),Router(路由器節(jié)點(diǎn))
20、和End-Device(終端設(shè)備節(jié)點(diǎn))。ZigBee網(wǎng)絡(luò)是由一個Coordinator 節(jié)點(diǎn)、多個Router 節(jié)點(diǎn)、多個 End_Device 節(jié)點(diǎn)組成,zigbee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如下: 圖 2.2 zigbee 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書662.2.1 協(xié)調(diào)器 協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)整個網(wǎng)絡(luò)的啟動,同時也是網(wǎng)絡(luò)中的第一個設(shè)備。它選擇一個可用信道和網(wǎng)絡(luò) ID,即 PANID(Personal Area Network ID),隨后啟動整個網(wǎng)絡(luò)。協(xié)調(diào)器也可以協(xié)助建立協(xié)議棧中的應(yīng)用層和安全層的綁定. 需要注意的是,協(xié)調(diào)器的功能主要涉及網(wǎng)絡(luò)的啟動和配置,當(dāng)完成這些任務(wù)后,協(xié)調(diào)器
21、的功能就類似一個路由器,而接下來整個網(wǎng)絡(luò)的操作,由于 ZigBee 網(wǎng)絡(luò)本身的特性,并不依賴協(xié)調(diào)器的存在。2.2.2 路由器路由器的主要功能是:允許其他設(shè)備加入網(wǎng)絡(luò),負(fù)責(zé)多跳路由和協(xié)助它的子設(shè)備終端之間的通訊,這些子設(shè)備通常是由電池供電。通常情況,路由器希望一直處于活動狀態(tài),因此它一般必須使用主電源供電。但是當(dāng)使用樹群這種網(wǎng)絡(luò)模式時,路由允許間隔一定的周期操作一次,即可以使用電池給其供電。2.2.3 終端設(shè)備 終端設(shè)備不負(fù)責(zé)維持網(wǎng)絡(luò)結(jié)構(gòu),一般是一個電池供電的設(shè)備,它可以處于睡眠模式或者喚醒模式。通常,終端設(shè)備對存儲空間(特別是RAM需要)較小。注意:不同的設(shè)備類型在 IAR 中編譯時要選擇不用
22、的編譯選項(xiàng),不同的設(shè)備類型的項(xiàng)目文件是相互獨(dú)立的。2.2.4 設(shè)備的棧配置ZigBee 棧參數(shù)的集合需要被配置為一定的值,和這些值在一起被稱之為棧配置。ZigBee聯(lián)盟已經(jīng)定義了這些由棧配置組成的棧參數(shù)。網(wǎng)絡(luò)中的所有設(shè)備一定要遵循同樣的棧配置。為了促進(jìn)互用性這個目標(biāo),ZigBee 聯(lián)盟為 ZigBee2006 規(guī)范定義了棧配置。所有遵循此棧配置的設(shè)備可以用在其他開發(fā)商開發(fā)的遵循同樣棧配置的網(wǎng)絡(luò)中。2.3 尋址2.3.1 地址類型ZigBee 設(shè)備有兩種類型的地址。一種是 16 位網(wǎng)絡(luò)地址,另一種是 64 位IEEE地址,即MAC地址。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書7716 位網(wǎng)絡(luò)
23、地址是設(shè)備加入網(wǎng)絡(luò)后分配的。它在網(wǎng)絡(luò)中是唯一的,用來在網(wǎng)絡(luò)中鑒別設(shè)備和發(fā)送數(shù)據(jù)。64 位地址是由IEEE來維護(hù)和分配全球唯一的地址,它通常由制造商或者被安裝時設(shè)置,設(shè)備將在它的生命周期中一直擁有它。2.3.2 網(wǎng)絡(luò)地址分配ZigBee 使用的是分布式尋址方案來為設(shè)備分配網(wǎng)絡(luò)地址。此方案能保證在整個網(wǎng)絡(luò)中所有分配的地址是唯一的。這是必須的,只有這樣才能保證一個特定的數(shù)據(jù)包能夠發(fā)給它指定的設(shè)備,而不出現(xiàn)混亂。同時,這個尋址算法的分布特性保證設(shè)備只能與他的父設(shè)備通訊來接受一個網(wǎng)絡(luò)地址,并不需要整個網(wǎng)絡(luò)范圍內(nèi)通訊的地址分配,這有助于提高網(wǎng)絡(luò)的可測量性。 在每個路由加入網(wǎng)絡(luò)之前,尋址方案需要知道和配置一
24、些參數(shù)。這些參數(shù)分別是MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。這些參數(shù)也是棧配置的一部分。 ZigBee2006協(xié)議棧已經(jīng)規(guī)定了這些參數(shù)的值:MAX_DEPTH =5,MAX_ROUTERS = 6和MAX_CHILDREN = 20。 MAX_DEPTH決定網(wǎng)絡(luò)的最大深度。協(xié)調(diào)器(Coordinator)的深度規(guī)定為 0,其兒子位于深度 1,它的兒子的兒子位于深度 2,以此類推。MAX_DEPTH 參數(shù)限制了網(wǎng)絡(luò)在物理上的長度。 MAX_ROUTER決定一個路由(Router)或者一個協(xié)調(diào)器(Coordinator)節(jié)點(diǎn)可以處理的具有路由功能的兒子節(jié)點(diǎn)的最大個數(shù)
25、。MAX_CHILDREN決定一個路由(Router)或者一個協(xié)調(diào)器節(jié)點(diǎn)可以處理的兒子節(jié)點(diǎn)的最大個數(shù)。 2.3.3 Z-Stack 尋址 在 zigbee 網(wǎng)絡(luò)中向設(shè)備發(fā)送數(shù)據(jù)時,應(yīng)用程序通常使用 AF_DataRequest()函數(shù),此函數(shù)將數(shù)據(jù)包發(fā)送給一個 afAddrType 類型的目標(biāo)設(shè)備。其數(shù)據(jù)結(jié)構(gòu)定義如下:typedef structunion天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書88uint16 shortAddr; addr;afAddrMode_t addrMode;byte endPoint; afAddrType_t;目的地址模式可以設(shè)置為以下幾個值:typedef
26、 enumafAddrNotPresent = AddrNotPresent,afAddr16Bit = Addr16Bit,afAddrGroup = AddrGroup,afAddrBroadcast = AddrBroadcast afAddrMode_t;在Zigbee中,數(shù)據(jù)包可以有單點(diǎn)傳送(unicast)、多點(diǎn)傳送(multicast)或者廣播傳送三種方式,所以必須有地址模式參數(shù)來標(biāo)明哪種方式。單點(diǎn)傳送中數(shù)據(jù)包只發(fā)送給一個設(shè)備,多點(diǎn)傳送中數(shù)據(jù)包則要傳送給一組設(shè)備,廣播中數(shù)據(jù)包則要發(fā)送給整個網(wǎng)絡(luò)的所有節(jié)點(diǎn)。2.3.4 重要設(shè)備地址 應(yīng)用程序如果需要知道它的父親地址和它的設(shè)備地址。
27、使用下面的函數(shù)獲取該設(shè)備的父設(shè)備的地址(在 ZStack API 中定義):NLME_GetCoordShortAddr()返回本設(shè)備的父設(shè)備的 16 位網(wǎng)絡(luò)地址NLME_GetCoordExtAddr()返回本設(shè)備的父設(shè)備的 64 位擴(kuò)展地址使用下面的函數(shù)獲取設(shè)備地址:NLME_GetShortAddr()返回本設(shè)備的 16 位網(wǎng)絡(luò)地址NLME_GetExtAddr()返回本設(shè)備的 64 位擴(kuò)展地址天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書992.4 本章小結(jié)本章節(jié)主要介紹了 zigbee 協(xié)議棧,其實(shí) TI 公司的 Zigbee 協(xié)議總體而言并不復(fù)雜,只需開發(fā)者用心的專注于應(yīng)用層與驅(qū)動測
28、層的開發(fā),并且協(xié)議棧有很多現(xiàn)成的模板可以用。本章重點(diǎn)講述的 zigbee 協(xié)議中設(shè)計(jì)的一些重要屬于,如設(shè)備類型,尋址等,詳細(xì)了解這些內(nèi)容對開發(fā)者更深入的了解 zigbee 協(xié)議標(biāo)準(zhǔn)有很大的意義。其實(shí)作為 zigbee 無線通信網(wǎng)絡(luò)的一名開發(fā)者,僅僅需了解 zigbee 中一些關(guān)鍵的問題,不需要了解太多協(xié)議的具體實(shí)現(xiàn)細(xì)節(jié),就可以完成開發(fā)工作。 天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1010 第三章 開發(fā)平臺與環(huán)境分析3.1 開發(fā)平臺整體介紹 3.1.1 實(shí)驗(yàn)設(shè)備簡介: 本選題采用無線龍公司的理想系列ZigBee 無線傳感器網(wǎng)絡(luò)平臺DREAMRF-CC2430 ,該平臺支持國際802.15.
29、4 標(biāo)準(zhǔn)和ZigBee2006 標(biāo)準(zhǔn)。 DREAMRF-CC2430 配套提供ZigBee 模塊提供了93dB 的鏈路質(zhì)量,優(yōu)秀的接收器靈敏度和健壯的抗干擾性,多種供電模式,以及一套廣泛的外設(shè)集包括2個UART、14 位ADC 和21 個通用GPIO,4 個定時器,AES 加密處理器,DMA 控制器等等。DREAMRF-CC2430 功能特點(diǎn):1、具有 USB 高速下載、支持IAR 集成開發(fā)環(huán)境;2、具有在線下載、調(diào)試、仿真功能;3、提供ZigBee2006 協(xié)議棧;4、基礎(chǔ)例子程序以源代碼方式提供;5、靈活配置。根據(jù)需求可選配多種無線模塊及擴(kuò)展傳感器板;6、開發(fā)方便、快捷、簡單;7、C51
30、編程。熟悉、順手、入手快;8、具有液晶顯示。直觀、明了;9、采用最新ARM9 微控制器為核心,配置大型彩色TFT 液晶顯示屏和高級觸摸屏,支持UCOS-II 實(shí)時操作系統(tǒng)和GUI 圖形軟件,文件系統(tǒng)等,將ARM 32 位微控制器和多種無線網(wǎng)絡(luò)模塊有機(jī)結(jié)合,為使用32 位ARM 微控制器開發(fā)各種無線網(wǎng)絡(luò),提供了方便途徑。10、板上模塊接口包括最新的溫度、濕度,光線,壓力,3 軸加速度等傳感器,LED, 鍵盤,串口,直流、步進(jìn)電機(jī)等;也可以通過模塊置換增加更多類型傳感器模塊;大量軟件代碼,實(shí)現(xiàn)了和這些傳感器的控制接口,是ARM 微控制器可以和各種無線有線網(wǎng)絡(luò)進(jìn)行實(shí)時連接,實(shí)時數(shù)據(jù)采集和分析,自動控
31、制管理。DREAMRF-CC2430 系統(tǒng)結(jié)構(gòu):理想系列 ZigBee 無線傳感器網(wǎng)絡(luò)平臺DREAMRF-CC2430 由1 .PC 機(jī)部分、2.網(wǎng)關(guān)部分、3.路由節(jié)點(diǎn)部分、4.傳感器節(jié)點(diǎn)部分四部分組成,用戶可以很方便的實(shí)現(xiàn)傳感器網(wǎng)絡(luò)無線化,網(wǎng)絡(luò)化,規(guī)模化的演示,教學(xué),觀測和再次開發(fā)。整體開發(fā)概念示意圖如圖1 所示。1 PC 機(jī):完成接收網(wǎng)關(guān)數(shù)據(jù)和發(fā)送指令,實(shí)現(xiàn)可視化,形象化人機(jī)界面,方便用戶操作,觀察;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書11112 網(wǎng)關(guān):完成通過計(jì)算機(jī)發(fā)送的指令發(fā)送或接收路由節(jié)點(diǎn)或者傳感器節(jié)點(diǎn)數(shù)據(jù),并將接收到的數(shù)據(jù)發(fā)送給計(jì)算機(jī);3 路由節(jié)點(diǎn): 在網(wǎng)關(guān)不能和所有的傳感
32、器節(jié)點(diǎn)通信時,路由節(jié)點(diǎn)作為一種中介使網(wǎng)關(guān)和傳感器節(jié)點(diǎn)通信,實(shí)現(xiàn)路由通信功能;4 傳感器節(jié)點(diǎn):完成對設(shè)備的控制和數(shù)據(jù)的采集,包括燈的控制溫度、光照度、加速度數(shù)據(jù)等等。ZigBee 無線傳感器網(wǎng)絡(luò)根據(jù)不同的情況可以由一個網(wǎng)關(guān),一個或多個路由器,一個或多個傳感器節(jié)點(diǎn)組成。系統(tǒng)大小只受PC 軟件觀測數(shù)量,路由深度,網(wǎng)絡(luò)最大負(fù)載量限制。ZigBee2006 無線傳感器網(wǎng)絡(luò)在沒有進(jìn)行網(wǎng)絡(luò)拓補(bǔ)修改之前支持5 級路由,31101 個網(wǎng)絡(luò)節(jié)點(diǎn)。傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)圖如圖所示。 圖 3_1 傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)3.1.2 仿真器C51RF 無線ZigBee 開發(fā)技術(shù)核心-C51RF-3 仿真器C51RF-3 仿真器具
33、有在線下載、調(diào)試、仿真等功能,具有一個USB接口,一個復(fù)位按鍵以及一根仿真線。 C51RF-3 仿真器通過USB 接口與計(jì)算機(jī)進(jìn)行通信,要在CC2430的ZigBee 模塊的開發(fā)上實(shí)現(xiàn)下載、調(diào)試(DEBUG)、仿真等的通信都由此接口來實(shí)現(xiàn)。仿真器上的復(fù)位鍵用來實(shí)現(xiàn)C51RF-3 仿真器的復(fù)位,仿真線是一根10芯的下載、調(diào)試(DEBUG)、仿真線,通過它與CC2430 的天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1212ZigBee模塊進(jìn)行連接。3.1.3 網(wǎng)關(guān)主板 理想系列ZigBee 無線傳感器網(wǎng)絡(luò)平臺DREAMRF-CC2430 網(wǎng)關(guān)主板包括32 位ARM 高性能微控制器。網(wǎng)關(guān)硬件包括彩
34、色OLED 觸摸圖形顯示器,觸摸按鍵,支持UCOS-II 操作系統(tǒng),GUI 圖形軟件。集成了802.15.4/ZigBee 網(wǎng)絡(luò)路由器、網(wǎng)絡(luò)節(jié)點(diǎn)和軟件協(xié)議棧等完整軟件硬件。還包括UHF EPC Gen2 大功率RFID 讀卡器及HF 的RFID 讀卡器接口。提供光敏、溫度、壓力(選配) 、蜂鳴器、濕度等感知傳感器。圖 3_2 網(wǎng)關(guān)主板3.1.4 有源感知節(jié)點(diǎn) 理想系列 ZigBee 無線傳感器網(wǎng)絡(luò)平臺 DREAMRF-CC2430 提供有源網(wǎng)絡(luò)感知節(jié)點(diǎn),節(jié)點(diǎn)提供三種傳感器(光敏、溫度、加速度)來進(jìn)行數(shù)據(jù)采集,并提供 ZigBee 無線模塊進(jìn)行數(shù)據(jù)傳輸,提供 2 種電源供電方式進(jìn)行能源供應(yīng)。此外
35、有源感知網(wǎng)絡(luò)節(jié)點(diǎn)提供仿真器接口進(jìn)行程序下載。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1313圖 3_3 有源感知節(jié)點(diǎn)3.1.5 zigbee 模塊有源網(wǎng)絡(luò)感知節(jié)點(diǎn)配套 ZigBee 無線模塊采用無線龍標(biāo)準(zhǔn)雙排 20 針功能引腳 ZigBee圖 3_4 zigbee 模塊無線模塊采用的是 TI 的 ZigBee 片上系統(tǒng) CC2430 作為微控制器。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1414CC2430 是一顆真正的系統(tǒng)芯片(SoC)CMOS 解決方案。這種解決方案能夠提高性能并滿足以 ZigBee 為基礎(chǔ)的 2.4GHz ISM 波段應(yīng)用對低成本,低功耗的要求。它使用 1 個 8
36、 位MCU(8051) ,具有 32/64/128 KB 可編程閃存和 8KB 的 RAM,還包含模擬數(shù)字轉(zhuǎn)換器(ADC)、幾個定時器(Timer) 、AES128 協(xié)同處理器、看門狗定時器(Watchdog Timer) 、32 kHz 晶振的休眠模式定時器、上電復(fù)位電路(Power On Reset)、掉電檢測電路(Brown Out Detection)以及 21 個可編程 I/O 引腳。3.2 軟件開發(fā)環(huán)境本題目的開發(fā)環(huán)境是 IARIAR Embedded Workbench(簡稱EW)的C/C+交叉編譯器和調(diào)試器是今天世界最完整的和最容易使用專業(yè)嵌入式應(yīng)用開發(fā)工具。EW 對不同的微處
37、理器提供一樣直觀用戶界面。EW 今天已經(jīng)支持35 種以上的8 位/16 位32 位ARM 的微處理器結(jié)構(gòu)。圖 3_5 IAR 界面環(huán)境配置為了開發(fā)cc2430程序,需要對IAR進(jìn)行一系列的配置。設(shè)置工程選項(xiàng)參數(shù)選擇 Project 菜單下的 Options 配置與 CC2430 相關(guān)的選項(xiàng)。Target 標(biāo)簽天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1515圖3_6 IAR參數(shù)配置配置Target,選擇Code model 和Data model,以及其它參數(shù)。Data Pointer 標(biāo)簽圖3_7 IAR參數(shù)配置選擇數(shù)據(jù)指針數(shù)1 個,16 位。Stack/Heap 標(biāo)簽天津理工大學(xué) 201
38、3 屆本科畢業(yè)設(shè)計(jì)說明書1616 圖3_8 IAR參數(shù)配置改變XDATA 棧大小到0 x1FF。單擊 Options 中右邊框架內(nèi)的Linker 選項(xiàng),配置相關(guān)的選項(xiàng)。Output 標(biāo)簽選中 Override default 可以在下面的文本框中更改輸出文件名。如果要用 C-SPY 進(jìn)行調(diào)試,選中 format 下面的 Debug information for C-SPY, 圖3_9 IAR參數(shù)配置天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1717Config 標(biāo)簽單擊 Linker command file 欄文本框右邊的按鈕,選擇正確的連接命令文件圖3_10 IAR參數(shù)配置Code M
39、odel 關(guān)系表:Code Model FileNear lnk51ew_cc2430.xclBanked lnk51ew_cc2430b.xclDebugger單擊Options 中右邊框架內(nèi)的Debugger 選項(xiàng),配置相關(guān)的選項(xiàng)。在Setup 標(biāo)簽在 Device Description file 選擇CC2430.ddf 文件,其位置在程序安裝文件夾下如C:Program FilesIAR SystemsEmbedded Workbench 4.05 Evaluation version8051Configderivativeschipcon 。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說
40、明書1818。圖3_11 IAR參數(shù)配置最后按下“ok”保存設(shè)置。成功編譯工程,并且沒有錯誤信息提示后,按照下圖連接硬件系統(tǒng)圖3_12 系統(tǒng)連接示意圖編譯、連接、下載選擇 ProjectMake 或按F7 鍵編譯和連接工程,之后projectdebuge 就可以進(jìn)入調(diào)試界面,同時程序?qū)⒈幌螺d到節(jié)點(diǎn)中。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書1919圖 3_13 debug 界面天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2020第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 4.1 系統(tǒng)總體設(shè)計(jì)基于無線傳感網(wǎng)的監(jiān)控系統(tǒng)主要分為兩部分:zigbee 模塊程序開發(fā),上位機(jī)監(jiān)控軟件開發(fā)。Zigbee 模塊的開發(fā)是建立在
41、 ZigBee 協(xié)議棧的基礎(chǔ)上,添加自己的項(xiàng)目,實(shí)現(xiàn) cc2430 節(jié)點(diǎn)的啟動,傳感器收集數(shù)據(jù),發(fā)送數(shù)據(jù),接受命令等功能。數(shù)據(jù)匯聚模塊(主板)負(fù)責(zé)組建Zigbee 網(wǎng)絡(luò),完成傳感器模塊與上位機(jī)(PC)數(shù)據(jù)的透明傳輸;數(shù)據(jù)匯聚模塊(主板)通過RS-232 串口與上位機(jī)相連。上位機(jī)有監(jiān)控界面可以測環(huán)境溫度,光強(qiáng),RSSI 值,多個傳感器節(jié)點(diǎn)置于不同的監(jiān)測區(qū)域,每個傳感器節(jié)點(diǎn)把數(shù)據(jù)傳給匯聚節(jié)點(diǎn),在匯聚節(jié)點(diǎn)完成數(shù)據(jù)融合,然后匯聚節(jié)點(diǎn)把數(shù)據(jù)通過串口傳給上位機(jī)做進(jìn)一步處理并顯示給用戶。上位機(jī)監(jiān)控界面需要顯示所有溫度,光強(qiáng),RSSI 值數(shù)據(jù)的大小及變化趨勢。 圖 4_1 系統(tǒng)整體框圖天津理工大學(xué) 2013
42、屆本科畢業(yè)設(shè)計(jì)說明書21214.2 模塊的軟件設(shè)計(jì)4.2.1 模塊軟件整體設(shè)計(jì) Zigbee 網(wǎng)絡(luò)節(jié)點(diǎn)軟件系統(tǒng)是建立在 TI 的協(xié)議棧 ZStack1.4.31.2.1。通過更改協(xié)議棧的配置,可以把協(xié)議棧配置為協(xié)調(diào)器(Coordinator) 、終端(Enddevice) 。此協(xié)議棧支持CC2430 芯片,有較高的可靠性。 在各功能節(jié)點(diǎn)的協(xié)議棧程序設(shè)計(jì)時,該協(xié)議棧采用統(tǒng)一的編寫方式,用宏定義語句:def、ifdef、else 等語句區(qū)別各功能節(jié)點(diǎn)在各協(xié)議層中的操作,這樣的編寫方式將協(xié)議棧看成一個整體,提高了協(xié)議棧的移植性。根據(jù) ZigBee2006 標(biāo)準(zhǔn)的規(guī)范,ZStack1.4.31.2.1
43、 協(xié)議棧文件結(jié)構(gòu)如下:App:應(yīng)用層,包含有具體應(yīng)用需要的功能函數(shù),可供用戶自行修改設(shè)計(jì)。HAL:硬件抽象層,包含具體芯片的功能函數(shù)以及硬件構(gòu)架的接口參數(shù)。MAC:硬件物理層,包含針對具體芯片的物理層封裝(主要為 TIMAC-CC2430.lib 中的頭文件) ,ZMac 為在其上的 ZigBee 的 MAC 層封裝。MT:調(diào)試跟蹤與監(jiān)控測試,通過定義 MT_TASK 使能該功能,使設(shè)備能與 PC 端的 Z-TOOL 應(yīng)用程序通信。NWK:網(wǎng)絡(luò)層,包含有網(wǎng)絡(luò)層函數(shù)封裝(主要為協(xié)調(diào)器與路由器需要的庫函數(shù)Router.lib 的頭文件,或者終端設(shè)備所需庫文件 EndDevice.lib 中的頭文件
44、) 。OSAL:操作系統(tǒng)抽象層,嵌入簡易操作系統(tǒng)的函數(shù)封裝,每個應(yīng)用都以操作系統(tǒng)的一個任務(wù)形式執(zhí)行。Profile:通用操作框架,包含有設(shè)備描述幫助函數(shù),主要對相關(guān)設(shè)備的通用功能進(jìn)行封裝。Security:安全層,包含 Security.lib 庫函數(shù)的頭文件。Tools:包含應(yīng)用的配置文件。ZDO:ZigBee 設(shè)備對象的相關(guān)操作封裝。ZMac:ZigBee MAC 層的封裝。ZMain:包含 main 函數(shù)定義、起始代碼以及硬件功能配置函數(shù) OnBoard.h 等。整個協(xié)議棧采用中斷事件調(diào)用機(jī)制,任務(wù)添加函數(shù) osalTaskAdd()將各層初始化函數(shù)指針、各層事件處理函數(shù)指針以及各層任務(wù)
45、優(yōu)先級添加到任務(wù)表,然后通過中斷添加響應(yīng)事件天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2222(events) 。整個函數(shù)構(gòu)成消息處理機(jī)制,每個層次互不干擾互不影響。本設(shè)計(jì)中,終端節(jié)點(diǎn)負(fù)責(zé)采集當(dāng)前的溫度數(shù)據(jù)在現(xiàn)場實(shí)時的顯示,并最終發(fā)送給協(xié)調(diào)器,在向協(xié)調(diào)器發(fā)送數(shù)據(jù)的同時還要實(shí)時的接收協(xié)調(diào)器發(fā)送過來的溫度報(bào)警數(shù)據(jù),并能夠超限報(bào)警。路由器只負(fù)責(zé)在終端節(jié)點(diǎn)和協(xié)調(diào)器之間的距離超過接收不到的情況下轉(zhuǎn)發(fā)協(xié)調(diào)器與終端節(jié)點(diǎn)所發(fā)送的數(shù)據(jù),起到一個中繼器的作用。協(xié)調(diào)器在接收到終端節(jié)點(diǎn)發(fā)送過來的溫度數(shù)據(jù)后進(jìn)行相應(yīng)的處理,然后通過 RS232 發(fā)送到上位機(jī)顯示,對上位機(jī)發(fā)送來的報(bào)警溫度進(jìn)行處理,然后分節(jié)點(diǎn)的發(fā)送給相應(yīng)
46、的節(jié)點(diǎn)報(bào)警。下圖為整個系統(tǒng)的流程圖圖 4_2 系統(tǒng)整體流程4.2.2 添加任務(wù)過程分析 在 Zstack(TI 的 Zigbee 協(xié)議棧)中,對于每個用戶自己新建立的任務(wù)通常需要兩個相關(guān)的處理函數(shù),包括: (1).用于初始化的函數(shù),如:SampleApp_Init(), 這個函數(shù)是在 osalInitTasks()這個 osal 中去調(diào)用的,其目的就是把一些用戶自己寫的任務(wù)中的一些變量,網(wǎng)絡(luò)模式,網(wǎng)絡(luò)終端類型等進(jìn)行初始化;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2323在 osalInitTasks()中實(shí)現(xiàn)了多個任務(wù)初始化的設(shè)置,其中 macTaskInit( taskID+ )到ZDA
47、pp_Init( taskID+ )的幾行代碼表示對于幾個系統(tǒng)運(yùn)行初始化任務(wù)的調(diào)用,而用戶自己實(shí)現(xiàn)的 SampleApp_Init()在最后,這里 taskID 隨著任務(wù)的增加也隨之遞增.所以用戶自己實(shí)現(xiàn)的任務(wù)的初始化操作應(yīng)該在 osalInitTasks()中增加.void osalInitTasks( void )uint8 taskID = 0;/這里很重要, 調(diào)用 osal_mem_alloc()為當(dāng)前 OSAL 中的各任務(wù)分配存儲空間(實(shí)際上是一個任/務(wù)數(shù)組),并用 tasksEvents 指向該任務(wù)數(shù)組(任務(wù)隊(duì)列).tasksEvents = (uint16 *)osal_mem_
48、alloc( sizeof( uint16 ) * tasksCnt);osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt); /將 taskSEvents 所指向的空間清零macTaskInit( taskID+ );nwk_init( taskID+ );Hal_Init( taskID+ );#if defined( MT_TASK )MT_TaskInit( taskID+ );#endifAPS_Init( taskID+ );ZDApp_Init( taskID+ );SampleApp_Init( taskID );
49、 /用戶自己需要添加的任務(wù) (2).用于引起該任務(wù)狀態(tài)變化的事件發(fā)生后所需要執(zhí)行的事件處理函數(shù),如:SampleApp_ProcessEvent(),這個函數(shù)是首先在 const pTaskEventHandlerFn tasksArr 中進(jìn)行設(shè)置(綁定),然后在 osalInitTasks()中如果發(fā)生事件進(jìn)行調(diào)用綁定的事件處理函數(shù).4.2.3 具體功能實(shí)現(xiàn)(1)Master 節(jié)點(diǎn)設(shè)計(jì) Master 節(jié)點(diǎn)的主要處理函數(shù)在uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )函數(shù)中實(shí)現(xiàn),此函數(shù)主要負(fù)責(zé)處任務(wù)的所有 events
50、,包括計(jì)時器,數(shù)據(jù)傳送,以及用戶自定義的時間。在本設(shè)計(jì)中,master 節(jié)點(diǎn)還要負(fù)責(zé)網(wǎng)絡(luò)的建立,網(wǎng)絡(luò)節(jié)點(diǎn)的加入以及網(wǎng)絡(luò)號的分配等等。master 節(jié)點(diǎn)的流程圖如下:天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2424 圖 4_3 master 節(jié)點(diǎn)流程圖sampleApp_ProcessEvent函數(shù)代碼如下:case SPI_INCOMING_ZTOOL_PORT:/ /P1_1=!P1_1; HalUARTRead( SPI_MGR_DEFAULT_PORT, UartRxBuf.RxBuf, 32 ); memcpy(LastRecLaddr,UartRxBuf.RXDATA.Laddr
51、,8); HalLedBlink(HAL_LED_1,2,50,1000); ReadFlag = 0;if(& = UartRxBuf.RxBuf0) if(1)/(CheckUartData(&UartRxBuf.RxBuf1,29) = UartRxBuf.RxBuf30)/如果校驗(yàn)通過 switch(UartRxBuf.RXDATA.HeadCom0)/串口命令頭case R:天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2525if(UartRxBuf.RXDATA.HeadCom1 = N) & (UartRxBuf.RXDATA.HeadCom2 = D)/
52、網(wǎng)絡(luò)發(fā)現(xiàn)ReadFlag = 1;/讀自己elseReadFlag = 0;/讀網(wǎng)絡(luò)break;case S:case T:case C:ReadFlag = 0;break;if(ReadFlag)UartOutNetDis();/串口輸出網(wǎng)絡(luò)結(jié)構(gòu)elsememcpy(&RfTx.TxBuf0,&UartRxBuf.RxBuf1,29);/裝入數(shù)據(jù)SrcSaddr = 0;flag = 0;for(j=0; jJoinNode.RouterCount; j+)/叛斷有無重復(fù)加入的節(jié)點(diǎn)findflag = 1;for(i=0; i8; i+)if(RfTx.TXDATA.Lad
53、dri != JoinNode.RouterAddrji)天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2626findflag = 0;break;/不是if(findflag = 0)continue;SrcSaddr = JoinNode.RouterAddrj8;SrcSaddr = 8;SrcSaddr += JoinNode.RouterAddrj9; /查找到網(wǎng)絡(luò)地址flag = 1;break; if(flag = 0) for(j=0; jJoinNode.RfdCount; j+)/叛斷有無重復(fù)加入的節(jié)點(diǎn) findflag = 1;for(i=0; i8; i+)if(RfT
54、x.TXDATA.Laddri != JoinNode.RfdAddrji)findflag = 0;break;/不是if(findflag = 0)continue;SrcSaddr = JoinNode.RfdAddrj8;SrcSaddr hdr.event 的內(nèi)容,決定要進(jìn)行什么處理。case AF_INCOMING_MSG_CMD:接受到 master 節(jié)點(diǎn)的命令,需要對接受的命令進(jìn)行處理,之后調(diào)用 SampleApp_MessageMSGCB( MSGpkt )函數(shù)進(jìn)行處理,主要包括的是讀取傳感器,包括溫度、光感、RSSI 值,將數(shù)據(jù)發(fā)送給 master 節(jié)點(diǎn)。switch(Rf
55、Rece.RXDATA.HeadCom0)case R:/讀f(RfRece.RXDATA.HeadCom1 = A) & (RfRece.RXDATA.HeadCom2 = S)/讀傳感器if(RfRece.RXDATA.DataBuf0 = G) & (RfRece.RXDATA.DataBuf1 = M)/讀光敏memset(RfTx.TxBuf,x,32);RfTx.TXDATA.HeadCom0 = R;RfTx.TXDATA.HeadCom1 = A;RfTx.TXDATA.HeadCom2 = S; memcpy(RfTx.TXDATA.Laddr,ieeeAdd
56、r,8);/RfTx.TXDATA.Saddr = NLME_GetShortAddr();RfTx.TXDATA.DataBuf0 = G;RfTx.TXDATA.DataBuf1 = M; #ifdef POWER_SAVING Sensor_Delay(3000); #endiftemp = ReadSensorAdc(0);RfTx.TXDATA.DataBuf2 = temp/100 + 0 x30;temp = temp%100;RfTx.TXDATA.DataBuf3 = temp/10 + 0 x30;RfTx.TXDATA.DataBuf4 = temp%10 + 0 x30
57、;RfHaveTxDara = 1;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2828else if(RfRece.RXDATA.DataBuf0 = W) & (RfRece.RXDATA.DataBuf1 = D)/讀溫度 memset(RfTx.TxBuf,x,32); SPIReadTC77Data(); /注:第一次轉(zhuǎn)換溫度數(shù)據(jù),會出現(xiàn)不準(zhǔn)確現(xiàn)像 Sensor_Delay(50); SPIReadTC77Data(); Sensor_Delay(50); temp1 = SPIReadTC77Data(); temp = temp1 / 100;Slave 節(jié)點(diǎn)的程序流程圖
58、如下: 圖 4_4 slave 節(jié)點(diǎn)流程圖天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書2929Slave 節(jié)點(diǎn)的部分主要代碼:SampleApp_ProcessEvent( uint8 task_id, uint16 events ) unsigned char *ieeeAddr; uint16 SrcSaddr;afIncomingMSGPacket_t *MSGpkt;if ( events & SYS_EVENT_MSG )MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); /檢索收到任
59、務(wù)信息 while ( MSGpkt )switch ( MSGpkt-hdr.event )case AF_INCOMING_MSG_CMD:SampleApp_MessageMSGCB( MSGpkt );break; /改變網(wǎng)絡(luò)狀態(tài) case ZDO_STATE_CHANGE:SampleApp_NwkState = (devStates_t)(MSGpkt-hdr.status); /網(wǎng)絡(luò)狀態(tài)=協(xié)調(diào)器,路由,設(shè)備if(SampleApp_NwkState = DEV_END_DEVICE) #ifdefWXL_RFD SampleApp_RDPSensorDevice(); /初使化設(shè)
60、備memset(RfTx.TxBuf,x,32);RfTx.TXDATA.Head = &RfTx.TXDATA.HeadCom0 = J;RfTx.TXDATA.HeadCom1 = O;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說明書3030RfTx.TXDATA.HeadCom2 = N;ieeeAddr = NLME_GetExtAddr();memcpy(RfTx.TXDATA.Laddr,ieeeAddr,8); SrcSaddr = NLME_GetShortAddr();RfTx.TXDATA.Saddr0 = SrcSaddr; RfTx.TXDATA.Saddr1 = SrcSaddr8;RfTx.TXDATA.DataBuf0 = R;RfTx.TX
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)城市中的智能化垃圾分類與處理
- 物流園區(qū)中的多式聯(lián)運(yùn)組織與管理
- 國慶節(jié)手表銷售活動方案
- 臨時用電專項(xiàng)施工方案編制
- 現(xiàn)代辦公環(huán)境下的溝通技巧與團(tuán)隊(duì)合作
- 生產(chǎn)中的柔性管理策略及實(shí)踐應(yīng)用
- 學(xué)生國慶節(jié)游玩活動方案
- Unit 1 Sports and Game Lesson 3(說課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語四年級上冊
- 25 王戎不取道旁李(說課稿)-2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 2024年六年級品社下冊《可怕的物種入侵》說課稿2 蘇教版
- 2025年三人合伙投資合作開店合同模板(三篇)
- 2025年合資經(jīng)營印刷煙包盒行業(yè)深度研究分析報(bào)告
- 天津市五區(qū)縣重點(diǎn)校2024-2025學(xué)年高一上學(xué)期1月期末聯(lián)考試題 化學(xué) 含答案
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 生物 含答案
- 高考日語閱讀理解練習(xí)2篇-高考日語復(fù)習(xí)
- 2025年湖南省通信產(chǎn)業(yè)服務(wù)限公司春季校園招聘76人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版高一數(shù)學(xué)上冊期末考試試卷及答案
- 安全學(xué)原理第2版-ppt課件(完整版)
- 鉭鈮礦開采項(xiàng)目可行性研究報(bào)告寫作范文
- 小升初數(shù)學(xué)銜接班優(yōu)秀課件
- 出口食品生產(chǎn)企業(yè)備案自我評估表
評論
0/150
提交評論