版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于無(wú)線傳感網(wǎng)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要無(wú)線傳感網(wǎng)是由眾多部署在復(fù)雜環(huán)境中的節(jié)點(diǎn)組成的,利用節(jié)點(diǎn)收集數(shù)據(jù),分析后做出決策,ZigBee 技術(shù)作為一種新興的近距離、低功耗的無(wú)線傳感網(wǎng)技術(shù),獲得了廣泛支持,成為當(dāng)前研究的熱點(diǎn)和重點(diǎn)之一. 本文介紹了在對(duì)無(wú)線傳感網(wǎng)以及 ZigBee 協(xié)議棧學(xué)習(xí)的基礎(chǔ)上,設(shè)計(jì)節(jié)點(diǎn)采集溫度等數(shù)據(jù)的程序,以及開(kāi)發(fā)上位機(jī)的監(jiān)控軟件,通過(guò)實(shí)驗(yàn)平臺(tái)進(jìn)行組網(wǎng),將節(jié)點(diǎn)上采集的數(shù)據(jù)發(fā)送給協(xié)調(diào)器,再通過(guò)以太網(wǎng)將數(shù)據(jù)發(fā)送給上位機(jī)軟件,利用監(jiān)控軟件監(jiān)控?cái)?shù)據(jù)的變化,實(shí)現(xiàn)對(duì)溫度等數(shù)據(jù)的監(jiān)控功能。 該系統(tǒng)的目標(biāo)是實(shí)時(shí)監(jiān)控環(huán)境溫度變化,并在溫度異常時(shí)發(fā)出警報(bào)。利用無(wú)線傳感網(wǎng),本系統(tǒng)可部署在各
2、種需要溫度監(jiān)控的環(huán)境中。關(guān)鍵詞:無(wú)線傳感網(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ā)展趨勢(shì) .11.3 本文主要結(jié)構(gòu) .2第二章 ZIGBEE 協(xié)議棧.52.1 ZIGBEE協(xié)議棧簡(jiǎn)介 .52.2 設(shè)備類(lèi)型 .62.2.1 協(xié)調(diào)器.72.2.2 路由器.72.2.3 終端設(shè)備.72.2.4 設(shè)備的協(xié)議棧配置.72.3 尋址 .72.3.1 尋址類(lèi)型.82.3.2 網(wǎng)絡(luò)地址分配.82.
7、3.3Zstack 尋址.92.4 本章總結(jié) .10第三章 開(kāi)發(fā)平臺(tái)與環(huán)境分析.113.1 開(kāi)發(fā)平臺(tái)介紹 .113.1.1 實(shí)驗(yàn)平臺(tái)簡(jiǎn)介.113.1.2 仿真器.123.1.3 網(wǎng)關(guān)主板.133.1.4 有源感知節(jié)點(diǎn).133.1.5 Zigbee 模塊.143.2 軟件開(kāi)發(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ù)過(guò)程分析 .234.2.3 具體功能實(shí)現(xiàn) .244.2.4 上位機(jī)監(jiān)控軟件開(kāi)發(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é)束語(yǔ).34參考文獻(xiàn).35附錄.36致謝.57天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)00第一章 緒論1.1 論文研究的背景和意義伴隨著著無(wú)線網(wǎng)絡(luò)通信、大規(guī)模集成電路、傳感器等技術(shù)的快速發(fā)展和逐漸成熟,無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)應(yīng)運(yùn)而生。無(wú)線傳感網(wǎng)絡(luò)是由部署在一定區(qū)域內(nèi)的數(shù)量巨大的傳感器節(jié)點(diǎn),通過(guò)自組織形成多跳網(wǎng)絡(luò),進(jìn)行協(xié)作的感知、采集區(qū)域內(nèi)的信息,經(jīng)過(guò)處理并最終發(fā)送給觀察者。無(wú)線傳感網(wǎng)中的節(jié)點(diǎn)具有體積小,數(shù)量多,能耗低,集成無(wú)線通信以及數(shù)據(jù)采集和處理功能,它們通過(guò)無(wú)線信道通信,自組織的構(gòu)成
9、網(wǎng)絡(luò)。傳感器中包括了多種傳感器,可以測(cè)量周?chē)h(huán)境的溫度,濕度,光強(qiáng),RSSI 值等眾多對(duì)人類(lèi)有價(jià)值的信息和現(xiàn)象。在采集數(shù)據(jù)后,還可以通過(guò)網(wǎng)關(guān)連接到網(wǎng)絡(luò)基礎(chǔ)設(shè)施中,比如將數(shù)據(jù)發(fā)送給較近的基站,達(dá)到講采集的數(shù)據(jù)和信息傳送給遠(yuǎn)程的終端的目的。所以,傳感器節(jié)點(diǎn)在無(wú)線傳感網(wǎng)中起著基礎(chǔ)作用,其設(shè)計(jì)的好壞將影響整個(gè)系統(tǒng)和網(wǎng)絡(luò)的質(zhì)量 CC2430 是一種低功耗,高效率的片上系統(tǒng),可以很好的解決無(wú)線傳感網(wǎng)絡(luò)中能量消耗較大的問(wèn)題。CC2430 芯片是由 Chipon 公司開(kāi)發(fā)的全球首款集成了 ZigBee 協(xié)議的片上系統(tǒng)解決方案,外置元件需要較少,成本低廉,可以很廉價(jià)、快速的構(gòu)建 Zigbee 節(jié)點(diǎn)。CC2430
10、 芯片延用了以往 CC2420 芯片的架構(gòu),在單個(gè)芯片上整合了 ZigBee 射頻(RF)前端、內(nèi)存和微控制器。它使用 1 個(gè) 8 位 MCU(8051) ,具有 128 KB 可編程閃存和 8 KB 的 RAM,還包含數(shù)字模擬轉(zhuǎn)換器、定時(shí)器、AES128 協(xié)同處理器、看門(mén)狗定時(shí)器、32 kHz 晶振的休眠模式定時(shí)器、上電復(fù)位電路以及 21 個(gè)可編程 I/O 引腳。CC2430 芯片采用 0.18mCMOS 工藝生產(chǎn),在接收和發(fā)射模式下電流損耗分別低于 27mA 或 25 mA。CC2430 的休眠模式和轉(zhuǎn)換到主動(dòng)模式的超短時(shí)間的特性,特別適合那些要求電池壽命非常長(zhǎng)的應(yīng)用。1.2 研究現(xiàn)狀及發(fā)
11、展趨勢(shì) 無(wú)線傳感器網(wǎng)絡(luò)將邏輯中的信息世界與客觀的物理世界連接、融合在一起,極大改變了人類(lèi)與自然界的交互方式。人們通過(guò)傳感器網(wǎng)絡(luò)可以直接感知客觀的世界,從而極大地?cái)U(kuò)展現(xiàn)有網(wǎng)絡(luò)的功能和人類(lèi)認(rèn)識(shí)世界的能力以及范圍。美國(guó)商業(yè)周刊和 MI 技術(shù)評(píng)論曾經(jīng)在預(yù)測(cè)未來(lái)技術(shù)發(fā)展的報(bào)告中,分別將無(wú)線傳感器網(wǎng)絡(luò)列為改變世界的 10 大技術(shù)之一以及 21 世紀(jì)最有影響的 21 項(xiàng)技術(shù)。同時(shí),無(wú)線傳感器網(wǎng)絡(luò)、塑料電子學(xué)和仿生人體器官也被稱為全球未來(lái)天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)11三大高科技產(chǎn)業(yè)。最近幾年,隨著成本的降低,無(wú)線傳感器網(wǎng)絡(luò)已經(jīng)在如下幾個(gè)領(lǐng)域中有了大規(guī)模應(yīng)用:1)環(huán)境監(jiān)測(cè)由于環(huán)境污染問(wèn)題越來(lái)越
12、突出,人們對(duì)與環(huán)境的保護(hù)愈發(fā)關(guān)注,于是對(duì)于環(huán)境的監(jiān)測(cè)需求相應(yīng)增加。無(wú)線傳感器網(wǎng)絡(luò)為在環(huán)境監(jiān)測(cè)中采集數(shù)據(jù)提供很大便利,同時(shí)還可以減少對(duì)環(huán)境的破壞。無(wú)線傳感器網(wǎng)絡(luò)可以環(huán)境變化對(duì)農(nóng)作物的影響,跟蹤候鳥(niǎo)和昆蟲(chóng)的遷移,監(jiān)測(cè)大氣、海洋和土壤的成分等。2)醫(yī)療護(hù)理無(wú)線傳感器網(wǎng)絡(luò)也可以應(yīng)用在醫(yī)療和護(hù)理領(lǐng)域。英特爾公司推出的基于無(wú)線傳感器網(wǎng)絡(luò)的家庭護(hù)理技術(shù)即為其中之一,該系統(tǒng)利用在鞋、家具以家用電器等家用設(shè)備中嵌入傳感器,對(duì)老齡人士、阿爾茨海默氏病患者以及殘障人士的家庭生活有很大幫助。3)軍事領(lǐng)域由于無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)造價(jià)低廉,可以密集隨機(jī)的分布在各種惡劣的戰(zhàn)場(chǎng)環(huán)境中,包括偵察敵情、監(jiān)控兵力、裝備和物資,判斷生
13、物化學(xué)攻擊等多方面用途。目前無(wú)線傳感器網(wǎng)絡(luò)還存在著如下問(wèn)題:1)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)的通信問(wèn)題。傳感器節(jié)點(diǎn)在正常通信過(guò)程中,信號(hào)可能被一些障礙物阻擋而受到影響,怎樣提高傳感器節(jié)點(diǎn)的穿透性是亟待解決的問(wèn)題。2)延長(zhǎng)傳感器網(wǎng)絡(luò)的使用壽命。現(xiàn)在一般使用高能電池、降低傳感節(jié)點(diǎn)的功耗兩種方式來(lái)解決這個(gè)問(wèn)題。此外還有傳感器網(wǎng)絡(luò)的自我能量收集技術(shù)和電池?zé)o線充電技術(shù),但這兩項(xiàng)技術(shù)尚在研究中,還不成熟。無(wú)線傳感器網(wǎng)絡(luò)有著十分廣泛的應(yīng)用前景以及較好的發(fā)展趨勢(shì),除了在工業(yè)、農(nóng)業(yè)、軍事、環(huán)境、醫(yī)療等領(lǐng)域有具有巨大的運(yùn)用價(jià)值,在未來(lái)還將在許多新興領(lǐng)域體現(xiàn)其優(yōu)越性,如家用、保健、交通等領(lǐng)域。將來(lái)微型傳感器可以將家用電器等其他日常用
14、品同互聯(lián)網(wǎng)相連,對(duì)這些設(shè)備進(jìn)行遠(yuǎn)距離控制,這樣有利于家庭的安全調(diào)控、節(jié)電。1.3 本文主要結(jié)構(gòu) 第一章緒論首先簡(jiǎn)要介紹了無(wú)線傳感網(wǎng),接著介紹了無(wú)線傳感網(wǎng)的研究背景、現(xiàn)狀和發(fā)展趨勢(shì),最后對(duì)本題的提出和本文的工作內(nèi)容做了說(shuō)明。第二章首先介紹了 Zigbee 技術(shù)的體系結(jié)構(gòu)。對(duì) Z-Stack 協(xié)議棧的功能及其實(shí)現(xiàn)進(jìn)行了概述,包括地址分配、尋址、節(jié)點(diǎn)綁定、路由選擇機(jī)制,配置 PANID 等功能,以及選擇網(wǎng)絡(luò)加天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)22入等幾個(gè)方面。第三章對(duì)系統(tǒng)整體方案進(jìn)行了論述,包括硬件介紹和軟件設(shè)計(jì)。硬件主要介紹數(shù)據(jù)匯聚模塊,溫度傳感器模塊;軟件設(shè)計(jì)包括上位機(jī)界面設(shè)計(jì)、數(shù)據(jù)匯
15、聚模塊、溫度傳感器模塊的軟件設(shè)計(jì)。第三章對(duì)整個(gè)系統(tǒng)的開(kāi)發(fā)平臺(tái)進(jìn)了論述,硬件方面主要包括無(wú)線龍的無(wú)線傳感網(wǎng)實(shí)驗(yàn)箱,包括主板,協(xié)調(diào)器,節(jié)點(diǎn),以及相應(yīng)的硬件模塊介紹,在軟件方面有嵌入式開(kāi)發(fā)平臺(tái) IAR,上位機(jī)的監(jiān)控軟件,zigbee 協(xié)議棧等。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)33第二章 ZigBee 協(xié)議棧協(xié)議棧2.1 zigbee 協(xié)議棧簡(jiǎn)介 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è)備對(duì)象(ZDO)、應(yīng)用支持子(APS)以及由制造商制定的應(yīng)用對(duì)象。圖 2-1 zigbee 協(xié)議棧天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)44 對(duì)比于其他無(wú)線通信標(biāo)準(zhǔn),zigbee協(xié)議有著明顯的優(yōu)勢(shì)和特定,需要的套件緊湊且簡(jiǎn)單,具體實(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,用來(lái)容納網(wǎng)絡(luò)中所有節(jié)點(diǎn)的設(shè)備信息,設(shè)備關(guān)聯(lián)表以及與安全有關(guān)的密匙存儲(chǔ)等等。 Zigbee聯(lián)盟希望可以建立一種可連接每個(gè)電子設(shè)備的無(wú)線網(wǎng)。并預(yù)言zigbee將成為全球最高端的無(wú)線技術(shù)之一, ,同時(shí)IPV6與IEEE802.15.4 結(jié)合是傳感器網(wǎng)絡(luò)的發(fā)展趨勢(shì),因?yàn)镮PV6采用 128 位地址,可以幾乎不受限制的提供地址。 在 IAR 中打開(kāi) 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ū)動(dòng)及操作函數(shù)。MAC:MAC層目錄,包含了 mac 層的參數(shù)配置文件及其 LIB 庫(kù)的函數(shù)接口文件。MT:實(shí)現(xiàn)了通過(guò)串口對(duì)各層控制,以及與各層進(jìn)行直接交付。NWK:網(wǎng)絡(luò)層目錄,包含網(wǎng)絡(luò)層配置參數(shù)相關(guān)文件和 aps 層庫(kù)的函數(shù)接口以及網(wǎng)絡(luò)層庫(kù)函數(shù)接口文件及 OSAL:協(xié)議棧的操作系統(tǒng)。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)55PROFILE:AF層的目錄。Security:安全層目錄,包含安全層的處理函數(shù),如加密函
19、數(shù)等。Tools:工程配置目錄,包含空間劃分、z-stack相關(guān)配置的信息。Zdo:zdo目錄。Zmac:mac目錄,包括mac層參數(shù)的配置以及mac層lib庫(kù)函數(shù)回調(diào)處理函數(shù)。Zmain:主函數(shù)的目錄,包含入口函數(shù) main 以及硬件配置的文件。Output:輸出文件目錄,這是由開(kāi)發(fā)環(huán)境IAR ew_8051自動(dòng)生成的。 由此可以看出,整個(gè) zigbee 協(xié)議棧已經(jīng)體現(xiàn)了 zigbee 的全部功能,建立一個(gè) zigbee 項(xiàng)目的方法主要就是對(duì)應(yīng)用層的添加和修改。2.2 設(shè)備類(lèi)型在ZigBee網(wǎng)絡(luò)中,一共有三種不同的邏輯設(shè)備類(lèi)型:Coordinator(協(xié)調(diào)器節(jié)點(diǎn)),Router(路由器節(jié)點(diǎn))
20、和End-Device(終端設(shè)備節(jié)點(diǎn))。ZigBee網(wǎng)絡(luò)是由一個(gè)Coordinator 節(jié)點(diǎn)、多個(gè)Router 節(jié)點(diǎn)、多個(gè) 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ì)說(shuō)明書(shū)662.2.1 協(xié)調(diào)器 協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)整個(gè)網(wǎng)絡(luò)的啟動(dòng),同時(shí)也是網(wǎng)絡(luò)中的第一個(gè)設(shè)備。它選擇一個(gè)可用信道和網(wǎng)絡(luò) ID,即 PANID(Personal Area Network ID),隨后啟動(dòng)整個(gè)網(wǎng)絡(luò)。協(xié)調(diào)器也可以協(xié)助建立協(xié)議棧中的應(yīng)用層和安全層的綁定. 需要注意的是,協(xié)調(diào)器的功能主要涉及網(wǎng)絡(luò)的啟動(dòng)和配置,當(dāng)完成這些任務(wù)后,協(xié)調(diào)器
21、的功能就類(lèi)似一個(gè)路由器,而接下來(lái)整個(gè)網(wǎng)絡(luò)的操作,由于 ZigBee 網(wǎng)絡(luò)本身的特性,并不依賴協(xié)調(diào)器的存在。2.2.2 路由器路由器的主要功能是:允許其他設(shè)備加入網(wǎng)絡(luò),負(fù)責(zé)多跳路由和協(xié)助它的子設(shè)備終端之間的通訊,這些子設(shè)備通常是由電池供電。通常情況,路由器希望一直處于活動(dòng)狀態(tài),因此它一般必須使用主電源供電。但是當(dāng)使用樹(shù)群這種網(wǎng)絡(luò)模式時(shí),路由允許間隔一定的周期操作一次,即可以使用電池給其供電。2.2.3 終端設(shè)備 終端設(shè)備不負(fù)責(zé)維持網(wǎng)絡(luò)結(jié)構(gòu),一般是一個(gè)電池供電的設(shè)備,它可以處于睡眠模式或者喚醒模式。通常,終端設(shè)備對(duì)存儲(chǔ)空間(特別是RAM需要)較小。注意:不同的設(shè)備類(lèi)型在 IAR 中編譯時(shí)要選擇不用
22、的編譯選項(xiàng),不同的設(shè)備類(lèi)型的項(xiàng)目文件是相互獨(dú)立的。2.2.4 設(shè)備的棧配置ZigBee 棧參數(shù)的集合需要被配置為一定的值,和這些值在一起被稱之為棧配置。ZigBee聯(lián)盟已經(jīng)定義了這些由棧配置組成的棧參數(shù)。網(wǎng)絡(luò)中的所有設(shè)備一定要遵循同樣的棧配置。為了促進(jìn)互用性這個(gè)目標(biāo),ZigBee 聯(lián)盟為 ZigBee2006 規(guī)范定義了棧配置。所有遵循此棧配置的設(shè)備可以用在其他開(kāi)發(fā)商開(kāi)發(fā)的遵循同樣棧配置的網(wǎng)絡(luò)中。2.3 尋址2.3.1 地址類(lèi)型ZigBee 設(shè)備有兩種類(lèi)型的地址。一種是 16 位網(wǎng)絡(luò)地址,另一種是 64 位IEEE地址,即MAC地址。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)7716 位網(wǎng)絡(luò)
23、地址是設(shè)備加入網(wǎng)絡(luò)后分配的。它在網(wǎng)絡(luò)中是唯一的,用來(lái)在網(wǎng)絡(luò)中鑒別設(shè)備和發(fā)送數(shù)據(jù)。64 位地址是由IEEE來(lái)維護(hù)和分配全球唯一的地址,它通常由制造商或者被安裝時(shí)設(shè)置,設(shè)備將在它的生命周期中一直擁有它。2.3.2 網(wǎng)絡(luò)地址分配ZigBee 使用的是分布式尋址方案來(lái)為設(shè)備分配網(wǎng)絡(luò)地址。此方案能保證在整個(gè)網(wǎng)絡(luò)中所有分配的地址是唯一的。這是必須的,只有這樣才能保證一個(gè)特定的數(shù)據(jù)包能夠發(fā)給它指定的設(shè)備,而不出現(xiàn)混亂。同時(shí),這個(gè)尋址算法的分布特性保證設(shè)備只能與他的父設(shè)備通訊來(lái)接受一個(gè)網(wǎng)絡(luò)地址,并不需要整個(gè)網(wǎng)絡(luò)范圍內(nèi)通訊的地址分配,這有助于提高網(wǎng)絡(luò)的可測(cè)量性。 在每個(gè)路由加入網(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,以此類(lèi)推。MAX_DEPTH 參數(shù)限制了網(wǎng)絡(luò)在物理上的長(zhǎng)度。 MAX_ROUTER決定一個(gè)路由(Router)或者一個(gè)協(xié)調(diào)器(Coordinator)節(jié)點(diǎn)可以處理的具有路由功能的兒子節(jié)點(diǎn)的最大個(gè)數(shù)
25、。MAX_CHILDREN決定一個(gè)路由(Router)或者一個(gè)協(xié)調(diào)器節(jié)點(diǎn)可以處理的兒子節(jié)點(diǎn)的最大個(gè)數(shù)。 2.3.3 Z-Stack 尋址 在 zigbee 網(wǎng)絡(luò)中向設(shè)備發(fā)送數(shù)據(jù)時(shí),應(yīng)用程序通常使用 AF_DataRequest()函數(shù),此函數(shù)將數(shù)據(jù)包發(fā)送給一個(gè) afAddrType 類(lèi)型的目標(biāo)設(shè)備。其數(shù)據(jù)結(jié)構(gòu)定義如下:typedef structunion天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)88uint16 shortAddr; addr;afAddrMode_t addrMode;byte endPoint; afAddrType_t;目的地址模式可以設(shè)置為以下幾個(gè)值:typedef
26、 enumafAddrNotPresent = AddrNotPresent,afAddr16Bit = Addr16Bit,afAddrGroup = AddrGroup,afAddrBroadcast = AddrBroadcast afAddrMode_t;在Zigbee中,數(shù)據(jù)包可以有單點(diǎn)傳送(unicast)、多點(diǎn)傳送(multicast)或者廣播傳送三種方式,所以必須有地址模式參數(shù)來(lái)標(biāo)明哪種方式。單點(diǎn)傳送中數(shù)據(jù)包只發(fā)送給一個(gè)設(shè)備,多點(diǎn)傳送中數(shù)據(jù)包則要傳送給一組設(shè)備,廣播中數(shù)據(jù)包則要發(fā)送給整個(gè)網(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ì)說(shuō)明書(shū)992.4 本章小結(jié)本章節(jié)主要介紹了 zigbee 協(xié)議棧,其實(shí) TI 公司的 Zigbee 協(xié)議總體而言并不復(fù)雜,只需開(kāi)發(fā)者用心的專(zhuān)注于應(yīng)用層與驅(qū)動(dòng)測(cè)
28、層的開(kāi)發(fā),并且協(xié)議棧有很多現(xiàn)成的模板可以用。本章重點(diǎn)講述的 zigbee 協(xié)議中設(shè)計(jì)的一些重要屬于,如設(shè)備類(lèi)型,尋址等,詳細(xì)了解這些內(nèi)容對(duì)開(kāi)發(fā)者更深入的了解 zigbee 協(xié)議標(biāo)準(zhǔn)有很大的意義。其實(shí)作為 zigbee 無(wú)線通信網(wǎng)絡(luò)的一名開(kāi)發(fā)者,僅僅需了解 zigbee 中一些關(guān)鍵的問(wèn)題,不需要了解太多協(xié)議的具體實(shí)現(xiàn)細(xì)節(jié),就可以完成開(kāi)發(fā)工作。 天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1010 第三章 開(kāi)發(fā)平臺(tái)與環(huán)境分析3.1 開(kāi)發(fā)平臺(tái)整體介紹 3.1.1 實(shí)驗(yàn)設(shè)備簡(jiǎn)介: 本選題采用無(wú)線龍公司的理想系列ZigBee 無(wú)線傳感器網(wǎng)絡(luò)平臺(tái)DREAMRF-CC2430 ,該平臺(tái)支持國(guó)際802.15.
29、4 標(biāo)準(zhǔn)和ZigBee2006 標(biāo)準(zhǔn)。 DREAMRF-CC2430 配套提供ZigBee 模塊提供了93dB 的鏈路質(zhì)量,優(yōu)秀的接收器靈敏度和健壯的抗干擾性,多種供電模式,以及一套廣泛的外設(shè)集包括2個(gè)UART、14 位ADC 和21 個(gè)通用GPIO,4 個(gè)定時(shí)器,AES 加密處理器,DMA 控制器等等。DREAMRF-CC2430 功能特點(diǎn):1、具有 USB 高速下載、支持IAR 集成開(kāi)發(fā)環(huán)境;2、具有在線下載、調(diào)試、仿真功能;3、提供ZigBee2006 協(xié)議棧;4、基礎(chǔ)例子程序以源代碼方式提供;5、靈活配置。根據(jù)需求可選配多種無(wú)線模塊及擴(kuò)展傳感器板;6、開(kāi)發(fā)方便、快捷、簡(jiǎn)單;7、C51
30、編程。熟悉、順手、入手快;8、具有液晶顯示。直觀、明了;9、采用最新ARM9 微控制器為核心,配置大型彩色TFT 液晶顯示屏和高級(jí)觸摸屏,支持UCOS-II 實(shí)時(shí)操作系統(tǒng)和GUI 圖形軟件,文件系統(tǒng)等,將ARM 32 位微控制器和多種無(wú)線網(wǎng)絡(luò)模塊有機(jī)結(jié)合,為使用32 位ARM 微控制器開(kāi)發(fā)各種無(wú)線網(wǎng)絡(luò),提供了方便途徑。10、板上模塊接口包括最新的溫度、濕度,光線,壓力,3 軸加速度等傳感器,LED, 鍵盤(pán),串口,直流、步進(jìn)電機(jī)等;也可以通過(guò)模塊置換增加更多類(lèi)型傳感器模塊;大量軟件代碼,實(shí)現(xiàn)了和這些傳感器的控制接口,是ARM 微控制器可以和各種無(wú)線有線網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)連接,實(shí)時(shí)數(shù)據(jù)采集和分析,自動(dòng)控
31、制管理。DREAMRF-CC2430 系統(tǒng)結(jié)構(gòu):理想系列 ZigBee 無(wú)線傳感器網(wǎng)絡(luò)平臺(tái)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ú)線化,網(wǎng)絡(luò)化,規(guī)模化的演示,教學(xué),觀測(cè)和再次開(kāi)發(fā)。整體開(kāi)發(fā)概念示意圖如圖1 所示。1 PC 機(jī):完成接收網(wǎng)關(guān)數(shù)據(jù)和發(fā)送指令,實(shí)現(xiàn)可視化,形象化人機(jī)界面,方便用戶操作,觀察;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)11112 網(wǎng)關(guān):完成通過(guò)計(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)通信時(shí),路由節(jié)點(diǎn)作為一種中介使網(wǎng)關(guān)和傳感器節(jié)點(diǎn)通信,實(shí)現(xiàn)路由通信功能;4 傳感器節(jié)點(diǎn):完成對(duì)設(shè)備的控制和數(shù)據(jù)的采集,包括燈的控制溫度、光照度、加速度數(shù)據(jù)等等。ZigBee 無(wú)線傳感器網(wǎng)絡(luò)根據(jù)不同的情況可以由一個(gè)網(wǎng)關(guān),一個(gè)或多個(gè)路由器,一個(gè)或多個(gè)傳感器節(jié)點(diǎn)組成。系統(tǒng)大小只受PC 軟件觀測(cè)數(shù)量,路由深度,網(wǎng)絡(luò)最大負(fù)載量限制。ZigBee2006 無(wú)線傳感器網(wǎng)絡(luò)在沒(méi)有進(jìn)行網(wǎng)絡(luò)拓補(bǔ)修改之前支持5 級(jí)路由,31101 個(gè)網(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 無(wú)線ZigBee 開(kāi)發(fā)技術(shù)核心-C51RF-3 仿真器C51RF-3 仿真器具
33、有在線下載、調(diào)試、仿真等功能,具有一個(gè)USB接口,一個(gè)復(fù)位按鍵以及一根仿真線。 C51RF-3 仿真器通過(guò)USB 接口與計(jì)算機(jī)進(jìn)行通信,要在CC2430的ZigBee 模塊的開(kāi)發(fā)上實(shí)現(xiàn)下載、調(diào)試(DEBUG)、仿真等的通信都由此接口來(lái)實(shí)現(xiàn)。仿真器上的復(fù)位鍵用來(lái)實(shí)現(xiàn)C51RF-3 仿真器的復(fù)位,仿真線是一根10芯的下載、調(diào)試(DEBUG)、仿真線,通過(guò)它與CC2430 的天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1212ZigBee模塊進(jìn)行連接。3.1.3 網(wǎng)關(guān)主板 理想系列ZigBee 無(wú)線傳感器網(wǎng)絡(luò)平臺(tái)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ú)線傳感器網(wǎng)絡(luò)平臺(tái) DREAMRF-CC2430 提供有源網(wǎng)絡(luò)感知節(jié)點(diǎn),節(jié)點(diǎn)提供三種傳感器(光敏、溫度、加速度)來(lái)進(jìn)行數(shù)據(jù)采集,并提供 ZigBee 無(wú)線模塊進(jìn)行數(shù)據(jù)傳輸,提供 2 種電源供電方式進(jìn)行能源供應(yīng)。此外
35、有源感知網(wǎng)絡(luò)節(jié)點(diǎn)提供仿真器接口進(jìn)行程序下載。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1313圖 3_3 有源感知節(jié)點(diǎn)3.1.5 zigbee 模塊有源網(wǎng)絡(luò)感知節(jié)點(diǎn)配套 ZigBee 無(wú)線模塊采用無(wú)線龍標(biāo)準(zhǔn)雙排 20 針功能引腳 ZigBee圖 3_4 zigbee 模塊無(wú)線模塊采用的是 TI 的 ZigBee 片上系統(tǒng) CC2430 作為微控制器。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1414CC2430 是一顆真正的系統(tǒng)芯片(SoC)CMOS 解決方案。這種解決方案能夠提高性能并滿足以 ZigBee 為基礎(chǔ)的 2.4GHz ISM 波段應(yīng)用對(duì)低成本,低功耗的要求。它使用 1 個(gè) 8
36、 位MCU(8051) ,具有 32/64/128 KB 可編程閃存和 8KB 的 RAM,還包含模擬數(shù)字轉(zhuǎn)換器(ADC)、幾個(gè)定時(shí)器(Timer) 、AES128 協(xié)同處理器、看門(mén)狗定時(shí)器(Watchdog Timer) 、32 kHz 晶振的休眠模式定時(shí)器、上電復(fù)位電路(Power On Reset)、掉電檢測(cè)電路(Brown Out Detection)以及 21 個(gè)可編程 I/O 引腳。3.2 軟件開(kāi)發(fā)環(huán)境本題目的開(kāi)發(fā)環(huán)境是 IARIAR Embedded Workbench(簡(jiǎn)稱EW)的C/C+交叉編譯器和調(diào)試器是今天世界最完整的和最容易使用專(zhuān)業(yè)嵌入式應(yīng)用開(kāi)發(fā)工具。EW 對(duì)不同的微處
37、理器提供一樣直觀用戶界面。EW 今天已經(jīng)支持35 種以上的8 位/16 位32 位ARM 的微處理器結(jié)構(gòu)。圖 3_5 IAR 界面環(huán)境配置為了開(kāi)發(fā)cc2430程序,需要對(duì)IAR進(jìn)行一系列的配置。設(shè)置工程選項(xiàng)參數(shù)選擇 Project 菜單下的 Options 配置與 CC2430 相關(guān)的選項(xiàng)。Target 標(biāo)簽天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1515圖3_6 IAR參數(shù)配置配置Target,選擇Code model 和Data model,以及其它參數(shù)。Data Pointer 標(biāo)簽圖3_7 IAR參數(shù)配置選擇數(shù)據(jù)指針數(shù)1 個(gè),16 位。Stack/Heap 標(biāo)簽天津理工大學(xué) 201
38、3 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)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ì)說(shuō)明書(shū)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ì)說(shuō)
40、明書(shū)1818。圖3_11 IAR參數(shù)配置最后按下“ok”保存設(shè)置。成功編譯工程,并且沒(méi)有錯(cuò)誤信息提示后,按照下圖連接硬件系統(tǒng)圖3_12 系統(tǒng)連接示意圖編譯、連接、下載選擇 ProjectMake 或按F7 鍵編譯和連接工程,之后projectdebuge 就可以進(jìn)入調(diào)試界面,同時(shí)程序?qū)⒈幌螺d到節(jié)點(diǎn)中。天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)1919圖 3_13 debug 界面天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)2020第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 4.1 系統(tǒng)總體設(shè)計(jì)基于無(wú)線傳感網(wǎng)的監(jiān)控系統(tǒng)主要分為兩部分:zigbee 模塊程序開(kāi)發(fā),上位機(jī)監(jiān)控軟件開(kāi)發(fā)。Zigbee 模塊的開(kāi)發(fā)是建立在
41、 ZigBee 協(xié)議棧的基礎(chǔ)上,添加自己的項(xiàng)目,實(shí)現(xiàn) cc2430 節(jié)點(diǎn)的啟動(dòng),傳感器收集數(shù)據(jù),發(fā)送數(shù)據(jù),接受命令等功能。數(shù)據(jù)匯聚模塊(主板)負(fù)責(zé)組建Zigbee 網(wǎng)絡(luò),完成傳感器模塊與上位機(jī)(PC)數(shù)據(jù)的透明傳輸;數(shù)據(jù)匯聚模塊(主板)通過(guò)RS-232 串口與上位機(jī)相連。上位機(jī)有監(jiān)控界面可以測(cè)環(huán)境溫度,光強(qiáng),RSSI 值,多個(gè)傳感器節(jié)點(diǎn)置于不同的監(jiān)測(cè)區(qū)域,每個(gè)傳感器節(jié)點(diǎn)把數(shù)據(jù)傳給匯聚節(jié)點(diǎn),在匯聚節(jié)點(diǎn)完成數(shù)據(jù)融合,然后匯聚節(jié)點(diǎn)把數(shù)據(jù)通過(guò)串口傳給上位機(jī)做進(jìn)一步處理并顯示給用戶。上位機(jī)監(jiān)控界面需要顯示所有溫度,光強(qiáng),RSSI 值數(shù)據(jù)的大小及變化趨勢(shì)。 圖 4_1 系統(tǒng)整體框圖天津理工大學(xué) 2013
42、屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)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。通過(guò)更改協(xié)議棧的配置,可以把協(xié)議棧配置為協(xié)調(diào)器(Coordinator) 、終端(Enddevice) 。此協(xié)議棧支持CC2430 芯片,有較高的可靠性。 在各功能節(jié)點(diǎn)的協(xié)議棧程序設(shè)計(jì)時(shí),該協(xié)議棧采用統(tǒng)一的編寫(xiě)方式,用宏定義語(yǔ)句:def、ifdef、else 等語(yǔ)句區(qū)別各功能節(jié)點(diǎn)在各協(xié)議層中的操作,這樣的編寫(xiě)方式將協(xié)議??闯梢粋€(gè)整體,提高了協(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:硬件物理層,包含針對(duì)具體芯片的物理層封裝(主要為 TIMAC-CC2430.lib 中的頭文件) ,ZMac 為在其上的 ZigBee 的 MAC 層封裝。MT:調(diào)試跟蹤與監(jiān)控測(cè)試,通過(guò)定義 MT_TASK 使能該功能,使設(shè)備能與 PC 端的 Z-TOOL 應(yīng)用程序通信。NWK:網(wǎng)絡(luò)層,包含有網(wǎng)絡(luò)層函數(shù)封裝(主要為協(xié)調(diào)器與路由器需要的庫(kù)函數(shù)Router.lib 的頭文件,或者終端設(shè)備所需庫(kù)文件 EndDevice.lib 中的頭文件
44、) 。OSAL:操作系統(tǒng)抽象層,嵌入簡(jiǎn)易操作系統(tǒng)的函數(shù)封裝,每個(gè)應(yīng)用都以操作系統(tǒng)的一個(gè)任務(wù)形式執(zhí)行。Profile:通用操作框架,包含有設(shè)備描述幫助函數(shù),主要對(duì)相關(guān)設(shè)備的通用功能進(jìn)行封裝。Security:安全層,包含 Security.lib 庫(kù)函數(shù)的頭文件。Tools:包含應(yīng)用的配置文件。ZDO:ZigBee 設(shè)備對(duì)象的相關(guān)操作封裝。ZMac:ZigBee MAC 層的封裝。ZMain:包含 main 函數(shù)定義、起始代碼以及硬件功能配置函數(shù) OnBoard.h 等。整個(gè)協(xié)議棧采用中斷事件調(diào)用機(jī)制,任務(wù)添加函數(shù) osalTaskAdd()將各層初始化函數(shù)指針、各層事件處理函數(shù)指針以及各層任務(wù)
45、優(yōu)先級(jí)添加到任務(wù)表,然后通過(guò)中斷添加響應(yīng)事件天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)2222(events) 。整個(gè)函數(shù)構(gòu)成消息處理機(jī)制,每個(gè)層次互不干擾互不影響。本設(shè)計(jì)中,終端節(jié)點(diǎn)負(fù)責(zé)采集當(dāng)前的溫度數(shù)據(jù)在現(xiàn)場(chǎng)實(shí)時(shí)的顯示,并最終發(fā)送給協(xié)調(diào)器,在向協(xié)調(diào)器發(fā)送數(shù)據(jù)的同時(shí)還要實(shí)時(shí)的接收協(xié)調(diào)器發(fā)送過(guò)來(lái)的溫度報(bào)警數(shù)據(jù),并能夠超限報(bào)警。路由器只負(fù)責(zé)在終端節(jié)點(diǎn)和協(xié)調(diào)器之間的距離超過(guò)接收不到的情況下轉(zhuǎn)發(fā)協(xié)調(diào)器與終端節(jié)點(diǎn)所發(fā)送的數(shù)據(jù),起到一個(gè)中繼器的作用。協(xié)調(diào)器在接收到終端節(jié)點(diǎn)發(fā)送過(guò)來(lái)的溫度數(shù)據(jù)后進(jìn)行相應(yīng)的處理,然后通過(guò) RS232 發(fā)送到上位機(jī)顯示,對(duì)上位機(jī)發(fā)送來(lái)的報(bào)警溫度進(jìn)行處理,然后分節(jié)點(diǎn)的發(fā)送給相應(yīng)
46、的節(jié)點(diǎn)報(bào)警。下圖為整個(gè)系統(tǒng)的流程圖圖 4_2 系統(tǒng)整體流程4.2.2 添加任務(wù)過(guò)程分析 在 Zstack(TI 的 Zigbee 協(xié)議棧)中,對(duì)于每個(gè)用戶自己新建立的任務(wù)通常需要兩個(gè)相關(guān)的處理函數(shù),包括: (1).用于初始化的函數(shù),如:SampleApp_Init(), 這個(gè)函數(shù)是在 osalInitTasks()這個(gè) osal 中去調(diào)用的,其目的就是把一些用戶自己寫(xiě)的任務(wù)中的一些變量,網(wǎng)絡(luò)模式,網(wǎng)絡(luò)終端類(lèi)型等進(jìn)行初始化;天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)2323在 osalInitTasks()中實(shí)現(xiàn)了多個(gè)任務(wù)初始化的設(shè)置,其中 macTaskInit( taskID+ )到ZDA
47、pp_Init( taskID+ )的幾行代碼表示對(duì)于幾個(gè)系統(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ù)分配存儲(chǔ)空間(實(shí)際上是一個(gè)任/務(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(),這個(gè)函數(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í)器,數(shù)據(jù)傳送,以及用戶自定義的時(shí)間。在本設(shè)計(jì)中,master 節(jié)點(diǎn)還要負(fù)責(zé)網(wǎng)絡(luò)的建立,網(wǎng)絡(luò)節(jié)點(diǎn)的加入以及網(wǎng)絡(luò)號(hào)的分配等等。master 節(jié)點(diǎn)的流程圖如下:天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)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)通過(guò) switch(UartRxBuf.RXDATA.HeadCom0)/串口命令頭case R:天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)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+)/叛斷有無(wú)重復(fù)加入的節(jié)點(diǎn)findflag = 1;for(i=0; i8; i+)if(RfTx.TXDATA.Lad
53、dri != JoinNode.RouterAddrji)天津理工大學(xué) 2013 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)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+)/叛斷有無(wú)重復(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)的命令,需要對(duì)接受的命令進(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ì)說(shuō)明書(shū)2828else if(RfRece.RXDATA.DataBuf0 = W) & (RfRece.RXDATA.DataBuf1 = D)/讀溫度 memset(RfTx.TxBuf,x,32); SPIReadTC77Data(); /注:第一次轉(zhuǎn)換溫度數(shù)據(jù),會(huì)出現(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ì)說(shuō)明書(shū)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ì)說(shuō)明書(shū)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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東外語(yǔ)外貿(mào)大學(xué)《地理信息系統(tǒng)原理與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東松山職業(yè)技術(shù)學(xué)院《茶樹(shù)病蟲(chóng)防治學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東食品藥品職業(yè)學(xué)院《英語(yǔ)微設(shè)計(jì)與制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東汕頭幼兒師范高等專(zhuān)科學(xué)?!盾壍澜煌姎庀到y(tǒng)故障診斷》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東培正學(xué)院《理論力學(xué)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)上冊(cè)《2.2.2 第1課時(shí) 有理數(shù)的除法》課件與作業(yè)
- 廣東南方職業(yè)學(xué)院《跨文化商務(wù)交際》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名幼兒師范專(zhuān)科學(xué)?!痘炷两Y(jié)構(gòu)設(shè)計(jì)原理實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《財(cái)務(wù)會(huì)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東理工職業(yè)學(xué)院《數(shù)值分析初步》2023-2024學(xué)年第一學(xué)期期末試卷
- 研發(fā)項(xiàng)目管理培訓(xùn)課件講解
- 2024-2030年中國(guó)膏劑(膏方)行業(yè)競(jìng)爭(zhēng)狀況及營(yíng)銷(xiāo)前景預(yù)測(cè)報(bào)告版
- 2023虛擬電廠新型電力系統(tǒng)
- 如何保護(hù)個(gè)人手機(jī)數(shù)據(jù)的安全
- 2024醫(yī)療設(shè)備維修與保養(yǎng)合同
- 智慧環(huán)保監(jiān)測(cè)與管理平臺(tái)開(kāi)發(fā)合同
- 2024年全國(guó)陸上石油天然氣開(kāi)采作業(yè)考試題庫(kù)(含答案)
- JJF 2158-2024 熱量表型式評(píng)價(jià)大綱
- 汽車(chē)內(nèi)飾件及材料氣味評(píng)價(jià)標(biāo)準(zhǔn)解析
- 紡紗工藝學(xué)課程設(shè)計(jì)
- 夫妻間經(jīng)濟(jì)合同模板
評(píng)論
0/150
提交評(píng)論