基于Zigbee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)_第1頁
基于Zigbee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)_第2頁
基于Zigbee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)_第3頁
基于Zigbee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)_第4頁
基于Zigbee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本科生畢業(yè)設(shè)計(jì)(論文)基于ZigBee無線溫濕度數(shù)據(jù)采集單元軟件設(shè)計(jì)TheSofewareDesignofTemperatureandHumidityBased-onZigBee總計(jì):19頁表格:3個(gè)插圖:13幅學(xué)院(系):電子與電氣工程系 專業(yè):電子信息工程[摘要]本文設(shè)計(jì)中ZigBee協(xié)議的實(shí)現(xiàn),采用包含51單片機(jī)內(nèi)核的CC2430來實(shí)現(xiàn),在開發(fā)環(huán)境用C語言實(shí)現(xiàn)對(duì)CC2430的編程。溫濕度數(shù)據(jù)采集,采用數(shù)字式SHT11通過總線對(duì)溫濕度數(shù)據(jù)采集的編程實(shí)現(xiàn)。通過對(duì)CC2430軟件設(shè)計(jì),實(shí)現(xiàn)溫濕度數(shù)據(jù)在ZigBee網(wǎng)絡(luò)中傳輸集中到PC中進(jìn)行顯示和處理。[關(guān)鍵字]ZigBee;傳感器網(wǎng)絡(luò);溫濕度傳感器;無線傳輸TheSofewareDesignofTemperatureandHumidityBased-onZigBeeAbstract:Inthispaper,thedesignoftherealizationofZigBeeprotocolusedincluded51oftheCC2430single-chipcoretoachieve,inthedevelopmentenvironmentusingClanguageprogrammingoftheCC2430.Temperatureandhumiditydataacquisition,throughtheuseofdigitalSHT11busdataacquisitionoftemperatureandhumidityoftheprogramming.

CC2430throughsoftwaredesign,therealizationoftemperatureandhumiditydatatransmissionintheZigBeenetworkconcentratedinthePCdisplayandprocessing.KeyWords:ZigBee;sensornetwork;temperatureandhumiditysensor;wirelesstransmission目錄1引言 11.1無線傳輸技術(shù)的發(fā)展 11.2溫濕度數(shù)據(jù)采集系統(tǒng) 11.3軟件設(shè)計(jì)的主要工作 21.4論文的基本結(jié)構(gòu) 22ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì) 32.1ZigBee技術(shù)的由來 32.2ZigBee技術(shù)特點(diǎn) 32.3ZigBee協(xié)議標(biāo)準(zhǔn) 42.3.1網(wǎng)絡(luò)層概況 52.3.2物理層規(guī)范 62.3.3MAC層規(guī)范 62.4網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì) 73溫濕度數(shù)據(jù)采集單元的軟件設(shè)計(jì) 93.1數(shù)字式溫濕度傳感器SHT11 93.2工作原理 113.3溫濕度系統(tǒng)軟件流程 143.4溫濕度數(shù)據(jù)系統(tǒng)軟件設(shè)計(jì) 154串口通信的軟件設(shè)計(jì) 165軟件的開發(fā)與調(diào)試 175.1開發(fā)環(huán)境與編程語言 175.2軟件調(diào)試 19結(jié)束語 19參考文獻(xiàn) 20附錄 21致謝 261引言1.1無線傳輸技術(shù)的發(fā)展隨著科學(xué)技術(shù)的發(fā)展,無線技術(shù)逐步取代有線技術(shù),僅支持靜態(tài)固定拓?fù)涞臒o線網(wǎng)絡(luò)也逐漸被支持動(dòng)態(tài)變化拓?fù)涞臒o線網(wǎng)絡(luò)所取代。在短距離無線控制、監(jiān)測(cè)、數(shù)據(jù)傳輸領(lǐng)域,通用的技術(shù)有IEEE802.11、藍(lán)牙、紅外等。它們雖然各有優(yōu)勢(shì),但是存在功耗大、組網(wǎng)能力差等劣勢(shì)。為彌補(bǔ)它們的不足,ZigBee聯(lián)盟于2004年推出了基于IEEE802.15.4的ZigBee技術(shù)。(1)藍(lán)牙技術(shù)(Bluetooth)藍(lán)牙技術(shù)是一種無線數(shù)據(jù)與語音通信的開放性全球規(guī)范,目的是取代數(shù)據(jù)電纜,實(shí)現(xiàn)多種電子設(shè)備之間的低功耗、低成本、短距離的無線連接。其傳輸頻段為全球通用的2.4GHzISM頻段,采用1600MHz的快速跳頻擴(kuò)頻技術(shù),傳輸速率為1MB/s,具有很強(qiáng)的抗干擾能力。其標(biāo)準(zhǔn)有效傳輸距離為lOm,放大器可將傳輸距離增加到100m。(2)紅外技術(shù)(IRDA)IRDA是一種利用紅外線進(jìn)行點(diǎn)對(duì)點(diǎn)通信的技術(shù),是第一個(gè)實(shí)現(xiàn)無線個(gè)人局域網(wǎng)(WPAN)的技術(shù)。目前,它的軟硬件技術(shù)都很成熟,在小型移動(dòng)設(shè)備,如PDA(PersonalDigitalAssistant,掌上電腦)、手機(jī)上廣泛使用。其lm內(nèi)通信速率已達(dá)到16MB/s,采用4PPM(PulsePositionModulation,脈沖位置調(diào)制)調(diào)制方式,適合于傳輸容量大的數(shù)據(jù)文件和多媒體數(shù)據(jù)流。另外,由于紅外線發(fā)射角小,因此在物理傳輸上具有一定的安全性??蓱?yīng)用于工業(yè)測(cè)控網(wǎng)絡(luò)的互連,為工業(yè)移動(dòng)測(cè)試和傳輸提供優(yōu)良的手段。(3)WiFi技術(shù)WiFi(WirelessFidelity)無線高保真技術(shù)是IEEE802.11標(biāo)準(zhǔn)的統(tǒng)稱,其最高速率(IEEE802.11g)可達(dá)54MB/s,符合測(cè)試系統(tǒng)和個(gè)人信息化的需求。雖然在數(shù)據(jù)安全方面比藍(lán)牙技術(shù)要差一些,但在電波的覆蓋范圍方面卻較強(qiáng),可達(dá)100m左右。(4)UWB技術(shù)UWB是一種高速、低成本和低功耗的新興無線通信技術(shù),通常指信號(hào)帶寬大于500MHZ或者是信號(hào)帶寬與中心頻率之比大于25%,其傳輸速率在100--480MB之間,理論上可達(dá)1GB以上。UWB工作頻段為3.1~10.6GHz,信號(hào)的傳輸范圍一般在10m以內(nèi),采用OFDM(orthogonalfrequencydivisionmultiplexing,正交頻分多路復(fù)用)調(diào)制方式,完全擺脫了一般無線收發(fā)中必須采用載波調(diào)制的傳統(tǒng)手段,成為在時(shí)域中可直接操作的線技術(shù)。1.2溫濕度數(shù)據(jù)采集系統(tǒng)本文主要研究在基于ZigBee的協(xié)議的基礎(chǔ)上,實(shí)現(xiàn)溫濕度數(shù)據(jù)的采集,然后把數(shù)據(jù)傳輸給上位機(jī)來顯示和處理。首先,此系統(tǒng)包括ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的程序設(shè)計(jì),溫濕度數(shù)據(jù)采集的程序設(shè)計(jì),串口通信的程序設(shè)計(jì)。明白了我們需要的設(shè)計(jì)的模塊的基礎(chǔ)上,根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能,給出了如圖1所示的系統(tǒng)設(shè)計(jì)框圖:圖1系統(tǒng)整體設(shè)計(jì)硬件框圖圖1系統(tǒng)整體設(shè)計(jì)框圖ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)采用CC2430芯片,此產(chǎn)品可以實(shí)現(xiàn)我們需要的ZigBee傳輸協(xié)議;溫濕度數(shù)據(jù)采集電路設(shè)計(jì)采用SHT11芯片,這種芯片是一種全數(shù)字式的芯片,具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換的特定,在實(shí)際應(yīng)用中非常方便;串口設(shè)計(jì)采用RS-232通信標(biāo)準(zhǔn),實(shí)現(xiàn)數(shù)據(jù)的接收和傳送;編寫以上各個(gè)模塊的程序,實(shí)現(xiàn)系統(tǒng)的整體功能。1.3軟件設(shè)計(jì)的主要工作本文的設(shè)計(jì)目標(biāo)是通過若干個(gè)終端測(cè)量節(jié)點(diǎn),搭建一個(gè)ZigBee網(wǎng)絡(luò)。進(jìn)行數(shù)據(jù)采集,然后進(jìn)行數(shù)據(jù)傳輸。主要工作如下在:(1)熟悉ZigBee技術(shù)發(fā)展的歷史和技術(shù)特點(diǎn)。(2)設(shè)計(jì)軟件流程,主要包括實(shí)現(xiàn)ZigBee傳輸協(xié)議的程序,溫濕度數(shù)據(jù)采集的程序設(shè)計(jì),串口通信的程序設(shè)計(jì)。(3)在程序編寫正確的情況下,利用IAREmbededWorkbenchIDE開發(fā)環(huán)境,調(diào)試程序,并觀察結(jié)果。1.4論文的基本結(jié)構(gòu)本文的結(jié)構(gòu)大致分為四部分:第一章:引言。該章介紹了無線通信技術(shù)的特點(diǎn)并進(jìn)行了比較,在其基礎(chǔ)上闡述了本設(shè)計(jì)的主要研究方向,最后對(duì)本文的工作做了提綱性的簡(jiǎn)介。第二章:介紹了ZigBee技術(shù)的特點(diǎn)和協(xié)議標(biāo)準(zhǔn),并在其基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)。第三章:介紹軟件設(shè)計(jì)的工作原理,并在此基礎(chǔ)上編寫溫濕度數(shù)據(jù)采集程序,介紹數(shù)據(jù)的流程圖和整個(gè)系統(tǒng)的工作流程圖。第四章:進(jìn)行串口通信的軟件設(shè)計(jì),介紹串口通信流程圖。第五章:軟件的開發(fā)和調(diào)試,這章闡述了在IAREmbededWorkbenchIDE開發(fā)平臺(tái)上調(diào)試編寫程序的具體環(huán)節(jié)。2ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)2.1ZigBee技術(shù)的由來ZigBee一個(gè)由可多到65000個(gè)無線數(shù)據(jù)傳輸模塊組成的一個(gè)無線數(shù)據(jù)傳輸網(wǎng)絡(luò)平臺(tái),十分類似現(xiàn)有的移動(dòng)通信的CDMA網(wǎng)或GSM每一個(gè)ZigBee無線數(shù)據(jù)傳輸模塊類似移動(dòng)網(wǎng)絡(luò)的一個(gè)基站,在整個(gè)網(wǎng)絡(luò)范圍內(nèi),它們之間可以進(jìn)行相互通信;每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間的距離可以從標(biāo)準(zhǔn)的75米,到擴(kuò)展后的幾百米,甚至幾公里:另外整個(gè)21個(gè)網(wǎng)絡(luò)還可以與現(xiàn)有的其它的各種網(wǎng)絡(luò)連接.例如,你可以通過互聯(lián)網(wǎng)在北京監(jiān)控云南某地的一個(gè)ZigBee控制網(wǎng)絡(luò)。不同的是,ZigBee網(wǎng)絡(luò)主要是為自動(dòng)化控制數(shù)據(jù)傳輸而建立,而移動(dòng)通信網(wǎng)主要是為語音通信而建立:每個(gè)移動(dòng)基站價(jià)值一般都在百萬元人民幣以上,而每個(gè)ZigBee基站卻不到1000元人民幣;每個(gè)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)不僅本身可以與監(jiān)控對(duì)一一配對(duì),例如傳感器連接直接進(jìn)行數(shù)據(jù)采集和監(jiān)控,它還可以自動(dòng)中轉(zhuǎn)別的網(wǎng)絡(luò)節(jié)點(diǎn)傳過來的數(shù)據(jù)資料;除此之外,每一個(gè)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)(FFD)還可在自己信號(hào)覆蓋的范圍內(nèi),和多個(gè)不承擔(dān)網(wǎng)絡(luò)信息中轉(zhuǎn)任務(wù)的孤立的子節(jié)點(diǎn)(RFD)無線連接。每個(gè)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)(FD和FRD)可以可支持多到13個(gè)的傳感器和受控設(shè)備,每一個(gè)傳感器和受控設(shè)備終可以有8種不同的接口方式。可以采集和傳輸數(shù)字量和模擬量。2.2ZigBee技術(shù)特點(diǎn)(1)省電:ZigBee傳輸速率低,使其傳輸資料量亦少,所以訊號(hào)的收發(fā)時(shí)間短,其次在非工作模式時(shí),ZigBee處于睡眠模式,而在工作與睡眠模式之間的轉(zhuǎn)換時(shí)間,一般睡眠啟動(dòng)時(shí)間只有15ms,而設(shè)備搜索時(shí)間為30ms。透過上述方式,使得ZigBee十分省電,透過電池則可支援ZigBee長(zhǎng)達(dá)6個(gè)月到2年左右的使用時(shí)間。(2)可靠度高:ZigBee的MAC層采用talk-when-ready的碰撞避免機(jī)制,此機(jī)制為當(dāng)有資料傳送需求時(shí)則立即傳送,每個(gè)發(fā)送的資料封包都由接收方確認(rèn)收到,并進(jìn)行確認(rèn)訊息回覆,若沒有得到確認(rèn)訊息的回覆就表示發(fā)生了碰撞,將再傳一次,以此方式大幅提高系統(tǒng)資訊傳輸?shù)目煽慷龋硗鈀igBee提供了數(shù)據(jù)完整性檢驗(yàn)和鑒權(quán)功能。(3)安全性高:ZigBee加密算法采用了AES-128,同時(shí)各個(gè)應(yīng)用程序可以靈活確定其安全屬性。ZigBee聯(lián)盟還開發(fā)了安全層,以保證這種設(shè)備不會(huì)意外泄漏其標(biāo)識(shí),而且這種利用網(wǎng)絡(luò)的遠(yuǎn)距離傳輸不會(huì)被其它節(jié)點(diǎn)獲得。(4)高度擴(kuò)充性:一個(gè)ZigBee的網(wǎng)絡(luò)最多包括有255個(gè)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn),其中一個(gè)是Master設(shè)備,其余則是Slave設(shè)備。若是透過NetworkCoordinator:則整體網(wǎng)絡(luò)最多可達(dá)到6500個(gè)ZigBee網(wǎng)絡(luò)節(jié)點(diǎn),再加上各個(gè)NetWorkCoordinator可互相連接,整體ZigBee網(wǎng)路節(jié)點(diǎn)數(shù)目將十分可觀。(5)成本低廉:目前,ZigBee芯片的成本大約在3美元左右,ZigBee設(shè)備成本的目標(biāo)是要在1美元以下。而且ZigBee芯片的體積較小,如Freescal公司生產(chǎn)Mc13192ZigBee收發(fā)芯片的體積為5mm*5mm,隨著半導(dǎo)體集成技術(shù)的發(fā)展,ZigBee芯片的體積將會(huì)變得更小,成本也會(huì)降得更低。2.3ZigBee協(xié)議標(biāo)準(zhǔn)ZigBee技術(shù)是一組基于IEEE802.15.4無線標(biāo)準(zhǔn)研制開發(fā)的、有關(guān)組網(wǎng)、安全和應(yīng)用軟件方面的技術(shù),IEEE802.15.4僅處理物理層(PHYLayer)和介質(zhì)訪問控制層(MediaAccessControlLayer,MACLayer),ZigBee聯(lián)盟制定了網(wǎng)絡(luò)層(NetworkLayer)、安全層(SecurityLayer)、應(yīng)用層(ApplicationLayer)、高層應(yīng)用規(guī)范(API)以及各種應(yīng)用產(chǎn)品的資料(Profile)。整個(gè)協(xié)議架構(gòu)如圖2所示。ZigBee協(xié)議中明確定義了三種拓?fù)浣Y(jié)構(gòu):星型(Star)、簇狀(Cluster)和網(wǎng)狀(Mesh)結(jié)構(gòu)。協(xié)議定義了兩種相互配合使用的物理設(shè)備,全功能設(shè)備(FFD,F(xiàn)ull-functionDevice)和精簡(jiǎn)功能設(shè)備(RFD,Reduced-functionDevice)。與RFD相比,F(xiàn)FD在硬件功能上比較完備,在通信能力上FFD可以與所有其他FFD或RFD之間通信,而RFD只能和與其關(guān)聯(lián)的FFD通信。與RFD相關(guān)聯(lián)的FFD設(shè)備稱為該RFD的協(xié)調(diào)器(Coordinator)。ZigBee網(wǎng)絡(luò)需要至少一個(gè)FFD作為網(wǎng)絡(luò)協(xié)調(diào)器(PANCoordinator)。網(wǎng)絡(luò)協(xié)調(diào)器除直接參與應(yīng)用外,還需要完成成員身份管理、鏈路狀態(tài)信息管理以及分組轉(zhuǎn)發(fā)等任務(wù)。終端節(jié)點(diǎn)(RFD)一般使用削減功能設(shè)備來降低系統(tǒng)成本和功耗,提高電池使用壽命。另外所有設(shè)備必須使用一個(gè)64位的IEEE地址,可以使用16位短地址來減少數(shù)據(jù)包大小,其尋址模式可以為網(wǎng)絡(luò)增加設(shè)備標(biāo)識(shí)符的星型結(jié)構(gòu),以及源和目標(biāo)標(biāo)識(shí)符的點(diǎn)到點(diǎn)結(jié)構(gòu)兩種。所有節(jié)點(diǎn)之間互相連接稱為全網(wǎng)狀結(jié)構(gòu)(FullMesh),不是所有的節(jié)點(diǎn)都和每個(gè)別的節(jié)點(diǎn)相連則稱為部分網(wǎng)狀結(jié)構(gòu)。部分網(wǎng)狀結(jié)構(gòu)的主要好處就是每個(gè)節(jié)點(diǎn)的范圍被成倍地?cái)U(kuò)大了。大部分短距無線技術(shù)都有一個(gè)典型的最大范圍:10米或更短。但是部分網(wǎng)狀結(jié)構(gòu)沒有最大通信距離的限制,因?yàn)槠渌械墓?jié)點(diǎn)都被用作中繼器或路由器。圖2協(xié)議結(jié)構(gòu)圖2.3.1網(wǎng)絡(luò)層概況ZigBee網(wǎng)絡(luò)層的主要功能就是提供一些必要的函數(shù),確保ZigBee的層的正常工作,并且為應(yīng)用層提供合適的服務(wù)接口。為了向應(yīng)用層提供接口,網(wǎng)絡(luò)層提供了兩個(gè)必須的功能服務(wù)實(shí)體,它們分別為數(shù)據(jù)服務(wù)實(shí)體和管理服務(wù)實(shí)體。網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體(NLDE)通過網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體服務(wù)接入點(diǎn)(NLDE-SAP)提供數(shù)據(jù)傳輸服務(wù),網(wǎng)絡(luò)層管理實(shí)體(NLME)通過網(wǎng)絡(luò)層管理實(shí)體服務(wù)接入點(diǎn)(NLME-SAP)提供網(wǎng)絡(luò)管理服務(wù)。網(wǎng)絡(luò)層管理實(shí)體利用網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體完成一些網(wǎng)絡(luò)管理工作,并且,網(wǎng)絡(luò)層管理實(shí)體完成對(duì)網(wǎng)絡(luò)信息庫扭(NIB)的維護(hù)和管理。網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體為數(shù)據(jù)提供服務(wù),在兩個(gè)或者更多的設(shè)備之間傳送數(shù)據(jù),將按照應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)的格式進(jìn)行傳送,并且這些設(shè)備必須在同一各網(wǎng)絡(luò)中,即在同一內(nèi)部個(gè)域網(wǎng)中。網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體提供如服務(wù):(1)生成網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元(NPDU),網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體通過增加一個(gè)適當(dāng)?shù)膮f(xié)議頭,從應(yīng)用支持層協(xié)議數(shù)據(jù)單元中生成網(wǎng)絡(luò)層的協(xié)議數(shù)據(jù)單元。(2)指定拓?fù)鋫鬏斅酚?,網(wǎng)絡(luò)層數(shù)據(jù)實(shí)體能夠發(fā)送一個(gè)網(wǎng)絡(luò)層的協(xié)議數(shù)據(jù)單元到一個(gè)合適的設(shè)備,該設(shè)備可能是最終目的通信設(shè)備,也可能是在通信鏈路中的一個(gè)中間通信設(shè)備。2.3.2物理層規(guī)范在IEEE802.15.4標(biāo)準(zhǔn)協(xié)議中,規(guī)定了2.4GHz物理層的數(shù)據(jù)傳輸速率250kbps.在2.4GHz物理層,ZigBee技術(shù)采用16相位準(zhǔn)正交調(diào)制技術(shù)。在調(diào)制前,將數(shù)據(jù)信號(hào)進(jìn)行轉(zhuǎn)換處理,將信息按每4位信息比特進(jìn)行處理,每4位信息比特組成一個(gè)符號(hào)數(shù)據(jù),根據(jù)該符號(hào)數(shù)據(jù),從16個(gè)幾乎正交的偽隨機(jī)序列(PN序列)中,選取其中一個(gè)序列作為傳送序列。根據(jù)所發(fā)送連續(xù)的數(shù)據(jù)信息,將所選出的PN序列串接起來,并使用O-QPSK的調(diào)制方法,將這些集合在一起的序列調(diào)制到載波上。圖3的各功能模塊為2.4GHz物理層擴(kuò)展調(diào)制方式的參考模塊。圖3擴(kuò)展調(diào)制功能2.3.3MAC層規(guī)范MAC層處理所有物理層無線信道接入,其主要功能為:(1)網(wǎng)絡(luò)協(xié)調(diào)器產(chǎn)生網(wǎng)絡(luò)信標(biāo)與信標(biāo)同步;(2)支持個(gè)域網(wǎng)(PAN)鏈路的建立和斷開;(3)為設(shè)備的安全性提供支持;(4)信道接入方式采用免沖突載波檢測(cè)多址接入(CSMA/CA)機(jī)制;(5)處理和維護(hù)保護(hù)時(shí)隙(GTS)機(jī)制;(6)在兩個(gè)對(duì)等的MAC實(shí)體之間提供一個(gè)可靠的通信鏈路。MAC層在服務(wù)規(guī)范協(xié)議匯聚層(SSCS)和物理層之間提供了一個(gè)接口。從概念上說,MAC層包括一個(gè)管理實(shí)體,通常稱為MAC管理實(shí)體(MLME),該實(shí)體提供了一個(gè)服務(wù)接口,通過此接口可調(diào)用MAC層管理功能。同時(shí),該管理層還負(fù)責(zé)維護(hù)MAC層固有地管理對(duì)象地?cái)?shù)據(jù)庫。該數(shù)據(jù)庫包含了MAC層地個(gè)域網(wǎng)絡(luò)信息數(shù)據(jù)庫(PIB)信息。在ZigBee網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,最基本的結(jié)構(gòu)單元是設(shè)備,這個(gè)設(shè)備可以是一個(gè)RFD也可以是一個(gè)FFD;在同一個(gè)物理信道的POS(個(gè)人工作范圍)通信范圍內(nèi),兩個(gè)或兩個(gè)以上的設(shè)備就可以構(gòu)成一個(gè)WPAN。但是,在一個(gè)網(wǎng)絡(luò)中至少要求一個(gè)FFD作為PAN協(xié)調(diào)器。LR-WPAN屬于家庭標(biāo)準(zhǔn)的一部分,其覆蓋范圍可能超出WPAN所規(guī)定的POS范圍。對(duì)于無線媒體而言,其傳播特性具有動(dòng)態(tài)的和不確定的特性,因此,不存在一個(gè)精確的覆蓋范圍,僅僅是位置或方向的一個(gè)小小變化都可能導(dǎo)致信號(hào)強(qiáng)度或者鏈路通信質(zhì)量的巨大變化,無論靜止設(shè)備,還是移動(dòng)設(shè)備,這些變化都會(huì)對(duì)無線傳播有影響。在MAC層中,MAC層通過它的兩個(gè)不同的服務(wù)接入點(diǎn)為它提供兩種不同的MAC層服務(wù),即MAC層通過它的公共部分子層服務(wù)接入點(diǎn)為它提供數(shù)據(jù)服務(wù);通過它的管理實(shí)體服務(wù)接入點(diǎn)為它提供管理服務(wù)。MAC幀結(jié)構(gòu):通用MAC層幀結(jié)構(gòu),即MAC層協(xié)議數(shù)據(jù)單元。每一個(gè)MAC幀包括幾個(gè)基本部分如下所列:(1)MAC幀頭,包括幀控制、序列號(hào)和地址信息.(2)可變長(zhǎng)度的MAC載荷,不同的幀類型有不同的載荷.確認(rèn)幀沒有載荷。(3)MAC幀尾,包括幀校驗(yàn)序列。MAC層幀結(jié)構(gòu)由MAC層幀頭、MAC載荷和MAC層幀尾組成。2.4網(wǎng)絡(luò)節(jié)點(diǎn)的軟件設(shè)計(jì)CC2430/CC2431的無線接收器是一個(gè)低中頻的接收器。接收到的射頻信號(hào)通過低噪聲放大器放大而正交降頻轉(zhuǎn)換到中頻。在中頻2MHz中,當(dāng)ADC模數(shù)轉(zhuǎn)換時(shí),輸入/正義調(diào)相信號(hào)被過濾和放大。無線模塊具有兩個(gè)中斷向量:RFFERR中斷(中斷0)和RF中斷(中斷12)。其功能如下:(1)RFERR:TXFIFO下溢出(TXFIFO空)、RXFIFO上溢出(RXFIFO滿);(2)RF:所有其他RF中斷由RFIF中斷標(biāo)志給出。注意:這些RF中斷均由上升沿觸發(fā)。RF中斷也可以用來觸發(fā)計(jì)數(shù)器1。其中在接受模式中,當(dāng)幀開始定界符SFD全部收到之后,中斷標(biāo)志RFIF。IRQ_SFD置1,而且發(fā)出RF中斷請(qǐng)求。如果地址識(shí)別已經(jīng)禁止或者已經(jīng)獲得成功,則RFSTATUS。接收期間SFD、FIFO和FIFOP的活動(dòng)實(shí)例如圖4所示:圖4接收期間SFD、FIFO和FIFOP實(shí)例圖按照硬件電路設(shè)計(jì),系統(tǒng)軟件編程的基本思路是先對(duì)SPI端口、CC2430控制端口初始化;使能SPI端口、UART端口和ADC;對(duì)CC2430芯片初始化;開啟接收機(jī)后,就可以運(yùn)行任務(wù)程序,實(shí)現(xiàn)接收或發(fā)送數(shù)據(jù)。接收和發(fā)送程序流程圖如圖5和圖6所示。圖5接收數(shù)據(jù)流程圖接收溫濕度數(shù)據(jù)子程序的流程如圖5所示,實(shí)現(xiàn)對(duì)無線溫濕度數(shù)據(jù)的接收。首先對(duì)無線收發(fā)模塊進(jìn)行初始化,設(shè)置系統(tǒng)的通訊頻率及本地地址以后,打開無線接收,等待接收溫濕度數(shù)據(jù)。上電開始接收溫濕度信息,查看數(shù)據(jù)是否溢出,如果是的話就返回,重新等待接收數(shù)據(jù)。如果沒有發(fā)現(xiàn)數(shù)據(jù)溢出,就讀入數(shù)據(jù)的包長(zhǎng)度,與最小包長(zhǎng)進(jìn)行比較,如果比最小包長(zhǎng)小就調(diào)用接收函數(shù)處理數(shù)據(jù)。如果大于最小包長(zhǎng),就讀入接收數(shù)據(jù)的控制位,此時(shí)等待確認(rèn)字符(ACK)回發(fā),發(fā)回?cái)?shù)據(jù)通知接收成功。如果沒有,此時(shí)正在接收其它數(shù)據(jù),就調(diào)用接收函數(shù)處理數(shù)據(jù),然后返回。整個(gè)接收數(shù)據(jù)的過程結(jié)束。發(fā)送數(shù)據(jù)流程如圖6所示,在發(fā)送數(shù)據(jù)之前先要對(duì)系統(tǒng)進(jìn)行初始化。主程序上電開始,等待CC2430空閑,這時(shí)候關(guān)閉全局中斷,等待接收信號(hào)強(qiáng)度指示器(RSSI)有效,下一步要考慮CC2430要發(fā)送引導(dǎo)序列,其中包括要發(fā)送的數(shù)據(jù)的長(zhǎng)度,以及定位要發(fā)送數(shù)據(jù)的目的地址等,向CC2430寫入數(shù)據(jù)包內(nèi)容,等待CC2430發(fā)送完畢。如果需要確認(rèn)字符(ACK)發(fā)回確認(rèn)信息,就等待回發(fā),然后返回,如果不需要就返回。這時(shí)候整個(gè)發(fā)送數(shù)據(jù)的過程結(jié)束。關(guān)閉全局中斷向關(guān)閉全局中斷向CC2430寫入數(shù)據(jù)包內(nèi)容等待RSSI有效使能CC2430發(fā)送引導(dǎo)序列等待CC2430空閑等待CC2430發(fā)送完畢是否需要ACK回發(fā)等待ACK發(fā)回返回開始圖6發(fā)送數(shù)據(jù)流程圖3溫濕度數(shù)據(jù)采集單元的軟件設(shè)計(jì)3.1數(shù)字式溫濕度傳感器SHT11SHT11是個(gè)芯片,它由標(biāo)準(zhǔn)數(shù)字輸出的濕度和溫度傳感器模塊組成。先定做后加工的CMOS應(yīng)用程序確保高度的可靠性和穩(wěn)定性。該芯片包括兩個(gè)已校準(zhǔn)的微型溫度和濕度傳感器,14位的A/D轉(zhuǎn)換器,放大器,線性校準(zhǔn)電路和數(shù)字串行接口。一體化的結(jié)構(gòu)使它具有質(zhì)量好,反應(yīng)快,抗干擾,價(jià)格低等特點(diǎn)。每一個(gè)傳感器在精確的濕度室內(nèi)校準(zhǔn),其校準(zhǔn)系數(shù)被寫到OTP存儲(chǔ)器中。兩線制的串行接口和內(nèi)部電壓校準(zhǔn)使系統(tǒng)一體化,既容易又快捷。它的外形小巧,能耗低,適用于許多行業(yè)。如:汽車,儀表,醫(yī)療器械,供暖系統(tǒng),通風(fēng)設(shè)備和空調(diào)系統(tǒng)。溫濕度傳感器由表面安裝型的(SHT1x)和四引腳型的(SHT7x).(1)串行數(shù)據(jù)(DATA)DATA的三態(tài)引腳用于芯片的數(shù)據(jù)輸入和輸出。DATA在SCK線的下降沿改變,而在上升沿有效。一個(gè)外部的上拉電阻將信號(hào)提高。上拉電阻器常常包含在微型控制器的I/O電路中。(2)指令序列啟動(dòng)傳送應(yīng)先發(fā)出‘傳送開始’序列,這個(gè)序列是由‘SCK高電平時(shí),DATA為下降沿,在SCK下一個(gè)高點(diǎn)平時(shí),DATA為上升沿’組成。圖7指令序列圖后來的指令序列包括三個(gè)地址位(只有000在目前受支持)和五個(gè)指令位。如果在第八個(gè)SCK時(shí)鐘下降沿后面,DATA引腳被拉低(ACK位),而第九個(gè)SCK時(shí)鐘下降沿后面,DATA線被拉高,SHT1x則顯示指令被接收。(3)連接重新安排序列如果設(shè)備間通訊中斷,下面的信號(hào)序列將重新安排它的串行接口:DATA的高電平要保持9個(gè)或更多SCK脈沖,‘傳送開始’序列必須在下一個(gè)指令之前。這個(gè)指令只重新安排接口。狀態(tài)寄存器保存它原來的內(nèi)容。圖8重新安排序列圖(4)檢測(cè)序列(溫度與濕度)發(fā)出檢測(cè)指令后(‘00000101’為濕度,‘00000011’為溫度),控制器等待檢測(cè)完成。檢測(cè)一個(gè)8/12/14位大約用11/55/210ms。準(zhǔn)確的時(shí)間隨著內(nèi)部振蕩器速度的±15%的變化而變化。為了發(fā)出檢測(cè)完成的信號(hào),SHT1x將DATA線拉低,控制器必須重新啟動(dòng)SCK。于是檢測(cè)數(shù)據(jù)的兩個(gè)字節(jié)和CRC校驗(yàn)和的一個(gè)字節(jié)被發(fā)送。uC必須通過拉低數(shù)據(jù)線來承認(rèn)每一個(gè)字節(jié)。所有值都是最高有效位MSB在先,(例如:12位精度的最高位位于高字節(jié)MSB的第五位)。在CRC數(shù)據(jù)的承認(rèn)位的后面通訊結(jié)束。如果CRC-8Checksum沒有使用,控制器應(yīng)在檢測(cè)數(shù)據(jù)LSB能正確應(yīng)答所有命令后結(jié)束通訊。檢測(cè)和通訊完成后,設(shè)備會(huì)自動(dòng)回到睡眠模式。注意:在0.1℃下要保持加熱SHT11。每次檢測(cè)的前15%或更長(zhǎng)時(shí)間是無效的。(例如:對(duì)12位精度每秒測(cè)3次).(5)加熱當(dāng)接通芯片上的加熱元件后,傳感器溫度大約提高了5℃。功率消耗在5V電壓下提高8mA。應(yīng)用:a通過接通傳感器前后的溫濕度值的變化,它的功能可以得到檢驗(yàn)。b在高濕度環(huán)境下加熱傳感器元件可避免冷凝。注意:當(dāng)傳感器加熱時(shí),內(nèi)置校準(zhǔn)并不正確。(6)SHT11的特性:工作條件運(yùn)行條件外的臨時(shí)偏移量為濕度信號(hào)的±3%RH。在回到正常工作條件后,它自動(dòng)回到校準(zhǔn)狀態(tài)。要加速這個(gè)過程,我們推薦下面的再加熱程序:90℃at﹤5%RHfor24hfollowedby20—30℃at﹥74%RHfor48h延長(zhǎng)曝光或條件惡劣會(huì)加速傳感器老化。3.2工作原理SHT11的濕度檢測(cè)運(yùn)用電容式結(jié)構(gòu),采用具有不同保護(hù)的“微型結(jié)構(gòu)”檢測(cè)電極系統(tǒng)與聚合物覆蓋層來組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵御來自外界的影響。由于它將溫度傳感器與濕度傳感器結(jié)合在一起而構(gòu)成了一個(gè)單一的個(gè)體,因而測(cè)量精度較高且可精確得出露點(diǎn),同時(shí)不會(huì)產(chǎn)生由于溫度與濕度傳感器之間隨溫度梯度變化引起的誤差。CMOSensTM技術(shù)不僅將溫濕度傳感器結(jié)合在一起,而且還將信號(hào)放大器、模/數(shù)轉(zhuǎn)換器、校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、標(biāo)準(zhǔn)總線等電路全部集成在一個(gè)芯片內(nèi)。SHT11的每一個(gè)傳感器都是在極為精確的濕度室中校準(zhǔn)的。SHT11傳感器的校準(zhǔn)系數(shù)預(yù)先存在芯片內(nèi)存OTP中。經(jīng)校準(zhǔn)的相對(duì)濕度和溫度傳感器與一個(gè)14位的A/D轉(zhuǎn)換器相連,可將轉(zhuǎn)換后的數(shù)字溫濕度值送給二線總線器件,從而將數(shù)字信號(hào)轉(zhuǎn)換為總線串行數(shù)字信號(hào)。(1)傳輸開始初始化傳輸時(shí),應(yīng)首先發(fā)出“傳輸開始”命令。該命令它包括:當(dāng)SCK時(shí)鐘高電平時(shí)DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖?隨后是在SCK時(shí)鐘高電平DATA翻轉(zhuǎn)為高電平。接下來的命令順序:一個(gè)地址位“000B”和5個(gè)命令位:00011B、00101B、00111B、00110B、11110B。當(dāng)DATA腳的ack位處于低電位時(shí),表示SHT11正確收到命令。SHT11會(huì)以下述方式表示已正確地接收到指令:在第8個(gè)SCK時(shí)鐘的下降沿之后,將DATA下拉為低電平(ACK位),在第9個(gè)SCK時(shí)鐘的下降沿之后,釋放DATA(恢復(fù)高電平)。SHT11傳感器共有5條用戶命令,具體命令格式表1:表1SHT11使用指令命令編碼說明測(cè)量溫度00011溫度測(cè)量測(cè)量濕度00101濕度測(cè)量讀寄存器狀態(tài)00111“讀”狀態(tài)寄存器寫寄存器狀態(tài)00110“寫”狀態(tài)寄存器軟復(fù)位11110重啟芯片,消除狀態(tài)記錄器的錯(cuò)誤記錄,11毫秒后進(jìn)入下個(gè)命令(2)通訊復(fù)位時(shí)序如果與SHT11傳感器的通訊中斷,下列信號(hào)順序會(huì)使串口復(fù)位:即當(dāng)DATA線處于高電平時(shí),觸發(fā)SCK9次或更多,此后應(yīng)接著發(fā)一個(gè)“傳輸開始”命令。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。(3)溫濕度測(cè)量時(shí)序當(dāng)發(fā)出了發(fā)布一組測(cè)量命令(‘00000101B’表示相對(duì)濕度RH,‘00000011B’表示溫度T)后,控制器就要等待測(cè)量完成(使用8/12/14位的分辨率測(cè)量分別需要大約11/55/210ms的時(shí)間)。為表明測(cè)量完成,SHT11會(huì)使數(shù)據(jù)線降為低電平,此時(shí)控制器必須重新啟動(dòng)SCK,然后傳送兩字節(jié)的測(cè)量數(shù)據(jù)與1字節(jié)CRC校驗(yàn)和??刂破鞅仨毻ㄟ^使DATA為低來確認(rèn)每一個(gè)字節(jié),所有的量均從右算,MSB列于第一位。通訊在確認(rèn)CRC數(shù)據(jù)位后停止。如果沒有用CRC-8校驗(yàn)和,則控制器就會(huì)在測(cè)量數(shù)據(jù)LSB后保持ack為高來停止通訊,SHT11在測(cè)量和通訊完成后會(huì)自動(dòng)返回睡眠模式。(4)狀態(tài)寄存器SHT11傳感器中的一些高級(jí)功能是通過狀態(tài)寄存器來實(shí)現(xiàn)的,寄存器各位的類型及說明見表2所列。表2是寄存器相關(guān)位的功能說明。(5)相對(duì)濕度傳感器的補(bǔ)償:a非線性補(bǔ)償:SHT11輸出的相對(duì)濕度讀數(shù)值(N)與被測(cè)相對(duì)濕度(RH)呈非線性關(guān)系.為了獲得相對(duì)濕度的準(zhǔn)確數(shù)據(jù),必須對(duì)讀數(shù)值進(jìn)行非線性補(bǔ)償。進(jìn)行12位A/D轉(zhuǎn)換時(shí)利用下式可以補(bǔ)償非線性:對(duì)于8位的相對(duì)濕度讀數(shù)值,補(bǔ)償公式變?yōu)椋盒枰赋?,以上兩式中的N值并不相同。例如,12位數(shù)據(jù)1000就對(duì)應(yīng)于8位數(shù)據(jù)62.5()b溫度補(bǔ)償當(dāng)環(huán)境溫度25℃時(shí),還需要對(duì)相對(duì)濕度傳感器進(jìn)行溫度補(bǔ)償,補(bǔ)償公式為:上式僅對(duì)12位的數(shù)據(jù)適用。對(duì)于8位數(shù)據(jù),,公式變?yōu)楸?SHT11寄存器說明位類型說明缺省備注7保留06讀低電壓檢查位,0對(duì)應(yīng)Vdd>2.47,1對(duì)應(yīng)Vdd<2.47X5保留04保留03只用于試驗(yàn),不可以使用02讀/寫加熱0關(guān)1讀/寫不從OTP加載0加載0讀/寫1’=8位相對(duì)濕度,12位溫度分辨率。0’=12位相對(duì)濕度,14位濕度分辨率012位相對(duì)溫度,14位相對(duì)濕度(6)溫度傳感器的補(bǔ)償溫度傳感器的讀數(shù)值M也呈非線性,必須代入下式才能計(jì)算出被測(cè)溫度值T(℃):式中的、均為常數(shù),根據(jù)下表可以確定不同情況下的、值如表3所示:表3溫濕度數(shù)據(jù)補(bǔ)償表電源電壓/V溫度數(shù)據(jù)的位數(shù)備注+514-400.01采用攝氏溫標(biāo),額定環(huán)境溫度=+25℃+512-400.04+314-39.60.01+312-39.60.04+2.514-39.550.01+2.512-39.550.043.3溫濕度系統(tǒng)軟件流程該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、體積小、功耗低,且配有232通訊接口,可以獨(dú)立編址,因此可以組成現(xiàn)場(chǎng)溫濕多點(diǎn)檢測(cè)系統(tǒng)。在實(shí)際應(yīng)用時(shí),該系統(tǒng)作為溫濕檢測(cè)的終端子系統(tǒng),通常工作在被動(dòng)方式下,即由主系統(tǒng)訪問,子系統(tǒng)采集數(shù)據(jù)、上傳數(shù)據(jù),其工作流程如圖9所示。數(shù)據(jù)采集如圖9所示:產(chǎn)生啟動(dòng)序列產(chǎn)生啟動(dòng)序列寫地址和控制指令等待轉(zhuǎn)換完成轉(zhuǎn)換數(shù)據(jù)至攝氏溫度/相對(duì)濕度讀取數(shù)據(jù)和校驗(yàn)值圖9溫濕度數(shù)據(jù)采集流程圖每個(gè)子系統(tǒng)獨(dú)立編址,主機(jī)訪問的指令格式為:同步碼+子系統(tǒng)地址+命令碼+數(shù)據(jù)+結(jié)束碼。子系統(tǒng)接收到指令后,首先進(jìn)行地址校驗(yàn),如果是,則按照指令工作,然后返回?cái)?shù)據(jù),其格式為:同步碼+子系統(tǒng)地址+數(shù)據(jù)+結(jié)束碼。圖10是應(yīng)用中的溫濕檢測(cè)點(diǎn)的系統(tǒng)流程圖。系統(tǒng)首先在上電的情況下復(fù)位,然后溫濕度采集系統(tǒng)開始采集溫濕度數(shù)據(jù),采集完成以后,把數(shù)據(jù)傳給CC2430處理,然后把數(shù)據(jù)經(jīng)過數(shù)據(jù)傳輸端口傳給上位機(jī)進(jìn)行處理,完成這次溫濕度數(shù)據(jù)采集,然后接著開始下一次數(shù)據(jù)采集。工作流程圖如圖10所示:上電復(fù)位上電復(fù)位接收數(shù)據(jù)地址校驗(yàn)采集溫濕度數(shù)據(jù)地址校驗(yàn)NOYES圖10溫濕度系統(tǒng)工作流程圖3.4溫濕度數(shù)據(jù)系統(tǒng)軟件設(shè)計(jì)對(duì)SHT1l的讀寫程序如下:Unsignedcharwrite_byte(unsignedcharvalue){//寫命令并檢查ackUnsignedchari;Unsignedcharerror=0;for(i=0x80;i>0;i/=2){If(i&value)SDATA=1;ElseSDATA=0;5SCK=1;nop_();_nop_();_nop_();//寬度約5usSCK=0;}SDATA=1;//釋放DATASCK=1;//#9時(shí)鐘,檢查ack信號(hào)error=SDATA;//檢查ack信號(hào),正常為低壓電平SCK=0;Renturnerror;//error=1表示無ack}Unsignedcharread_byte(bitack)//讀數(shù)據(jù),ack=1檢查ack,ack=0不檢查ack{Unsignedchari;Unsignedcharval=0;SDATA=1;//釋放DATAFor(i=0x80;i>0;i/=2)//shiftbitformasking{SCK=1;//clkforSENSI-BUSIf(SDATA)val=(val|i);//讀1bSCK=0;}SDATA=!Ack;//SDATA表示結(jié)束傳輸SCK=1;_nop_();_nop_();_nop_();SCK=0;SDATA=1;//釋放DATAReturnval;4串口通信的軟件設(shè)計(jì)RS-232在傳送數(shù)據(jù)時(shí),并不需要另外使用一條傳輸線來傳送同步訊號(hào),就能正確的將數(shù)據(jù)順利傳送到對(duì)方,因此叫做“異步傳輸”,簡(jiǎn)稱UART(UniversalAsynchronousReceiverTransmitter),不過必須在每一次數(shù)據(jù)傳送的前后都加上同步訊號(hào),把同步訊號(hào)與數(shù)據(jù)混和之后,使用同一條傳輸線來傳輸。比如數(shù)據(jù)11001010被傳輸時(shí),數(shù)據(jù)的前后就需加入Start(Low)以及Stop(High)等兩個(gè)位元,值得注意的是,Start訊號(hào)固定為一個(gè)位元,但Stop停止位元?jiǎng)t可以是1、1.5或者是2位元,由使用RS-232的傳送與接收兩方面自行選擇,但需注意傳送與接受兩者的選擇必須一致。在串行通信軟件設(shè)置中D/P/S是常規(guī)的符號(hào)表示。8/N/1(非常普遍)表明8bit數(shù)據(jù),沒有奇偶校驗(yàn),1bit停止位。數(shù)據(jù)位可以設(shè)置為7、8或者9,奇偶校驗(yàn)位可以設(shè)置為無(N)、奇(O)或者偶(E),奇偶校驗(yàn)位可以使用數(shù)據(jù)中的位元(bit),所以8/E/1就表示一共8位數(shù)據(jù)位,其中一位用來做奇偶校驗(yàn)位。停止位可以是1、1.5或者2位的(1.5是用在波特率為60wpm的電傳打字機(jī)上的)。當(dāng)程序開始運(yùn)行時(shí),先初始化串口。然后發(fā)送握手信號(hào),如果信號(hào)發(fā)送成功,則開始把信號(hào)傳送到主處理芯片,開始信號(hào)發(fā)送成功,通信開始。如果數(shù)據(jù)發(fā)送成功,會(huì)收到主處理芯片的接收應(yīng)答,表明數(shù)據(jù)發(fā)送成功,結(jié)束通信。接收數(shù)據(jù)則是此逆過程。串口通信流程圖如圖11所示:圖11串口通信流程圖5軟件的開發(fā)與調(diào)試5.1開發(fā)環(huán)境與編程語言系統(tǒng)的軟件調(diào)試采用IARSystems公司的IAREmbededWorkbenchIDE是一款功能非常強(qiáng)大內(nèi)部開發(fā)環(huán)境,允許用戶開發(fā)、管理完成的嵌入式應(yīng)用工程。他是一個(gè)發(fā)展的平臺(tái),方便用戶在日常的產(chǎn)品開發(fā)。IAREmbededWorkbench可以用在大多數(shù)8位、16位微控制器上以及32位機(jī)上的一小部分。能夠提供一個(gè)簡(jiǎn)單易學(xué)高效的開發(fā)環(huán)境和強(qiáng)大的代碼移植能力,具有全面和具體的目標(biāo)調(diào)試支持。IAREmbededWorkbench推行一種有用的工作方法,因此顯著的減少了開發(fā)周期。IAREmbededWorkbenchIDE的內(nèi)部的各個(gè)功能框架都是無縫連接的,它包括:(1)具有高度可選的IARC/C++編譯器(2)可使用IAR匯編程序(3)方便靈活的IARXLINK連接器(4)具有IARXAR庫構(gòu)造器和IARXLIB庫函數(shù)(5)功能強(qiáng)大的編輯器和工程管理器(6)命令行建立應(yīng)用(7)IARC-SPY調(diào)試器,具有到藝術(shù)級(jí)別的調(diào)試能力系統(tǒng)軟件采用單片機(jī)C/C++語言編寫,相對(duì)于冗長(zhǎng)、復(fù)雜、容易出錯(cuò)的匯編語言來說,C可實(shí)現(xiàn)模塊化編程技術(shù),使得程序有很好的可移植性,而且有更容易開發(fā)和調(diào)試程序。圖12是一個(gè)打開工程選項(xiàng)的界面,圖13是工程選項(xiàng)頁面。在圖13的頁面中針對(duì)CC2430需要設(shè)置很多必要的參數(shù)。如:GeneralOptions設(shè)置:在GeneralOptions->Target選項(xiàng)中Derivative選擇為CC2430;在GeneralOptions->Target選項(xiàng)中Datamodel選擇為L(zhǎng)arge;在GeneralOptions->Target選項(xiàng)中Callingcinvention選擇為XDATA;在GeneralOptions->Target選項(xiàng)中Stack/heap中的堆棧大小做適當(dāng)修改。C/C++Compiler設(shè)置,Linker設(shè)置;Debugger設(shè)置等。圖12打開工程選項(xiàng)頁面圖13工程選項(xiàng)頁面5.2軟件調(diào)試系統(tǒng)的軟件調(diào)試采用IARSystems公司的IAREmbededWorkbenchIDE采用程序分塊調(diào)試的原則,首先把系統(tǒng)分為系統(tǒng)的主程序模塊,Zigbee無線收發(fā)的調(diào)試,溫濕度數(shù)據(jù)顯示程序。對(duì)程序進(jìn)行從局部到全面的調(diào)試。以下為系統(tǒng)調(diào)試的主要方法:(1)系統(tǒng)軟件按照功能劃分模塊,對(duì)各個(gè)模塊或者子函數(shù)逐個(gè)單一調(diào)試運(yùn)行,并且檢查運(yùn)行的準(zhǔn)確性。(2)額外編寫?yīng)毩⒌臏y(cè)試子程序單獨(dú)測(cè)試個(gè)別子功能模塊準(zhǔn)確性和合理性。(3)系統(tǒng)帶有運(yùn)行狀態(tài)燈,為調(diào)試各個(gè)模塊程序和測(cè)試運(yùn)行狀態(tài)提供了方便,在有需要的地方設(shè)置狀態(tài)標(biāo)志,以便檢驗(yàn)程序運(yùn)行結(jié)果。結(jié)束語本文主要對(duì)基于ZigBee的無線傳感器網(wǎng)絡(luò)進(jìn)行溫濕度數(shù)據(jù)采集與顯示。首先,在明確了硬件設(shè)計(jì)的基礎(chǔ)上,明確了所使用的芯片,及其所使用功能。CC2430在軟件設(shè)計(jì)中主要用的是寄存器和中斷的功能。數(shù)字式溫濕度傳感器SHT11主要是依據(jù)其溫濕度采集的工作原理,以及其溫濕度補(bǔ)償原理。串口通信主要是明確其傳輸流程。然后,在明確以上所使用芯片功能的基礎(chǔ)上,設(shè)計(jì)軟件設(shè)計(jì)的流程圖,并在流程圖的基礎(chǔ)編寫程序,實(shí)現(xiàn)了多個(gè)模塊的功能。編寫完程序以后,利用IAREmbededWorkbenchIDE調(diào)試平臺(tái),調(diào)試各個(gè)模塊的程序,觀察試驗(yàn)結(jié)果,且達(dá)到了預(yù)期的結(jié)果。該系統(tǒng)作為一個(gè)基本平臺(tái)實(shí)現(xiàn)的功能有限,如果對(duì)于此系統(tǒng)的開發(fā)重點(diǎn)放在節(jié)點(diǎn)間的功能控制方面,可以在現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)上,對(duì)終端節(jié)點(diǎn)與應(yīng)用對(duì)象進(jìn)行功能綁定,從而達(dá)到對(duì)節(jié)點(diǎn)應(yīng)用對(duì)象的控制目的。參考文獻(xiàn)[1]曲振寧.基于ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)及其在遠(yuǎn)程健康監(jiān)護(hù)中的應(yīng)用.吉林大學(xué)[2]施承.基于ZigBee議的無線傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)的研究實(shí)現(xiàn).東南大學(xué).2006[3]趙進(jìn).無線傳感器網(wǎng)絡(luò)路由協(xié)議研究與實(shí)現(xiàn).南京航空航天大學(xué).2005[4]張宏鋒.一個(gè)基于ZigBee技術(shù)的無線傳感器網(wǎng)絡(luò)平臺(tái).武漢理工大學(xué).2006[6]楊賡.Zigbee無線傳感器網(wǎng)絡(luò)的研究與實(shí)現(xiàn).浙江大學(xué).2600[7]陳小明.基于IEEE802.15.4的車輛監(jiān)控系統(tǒng).浙江大學(xué).2006[8]陳利虎.無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)的研究國(guó)防科學(xué)技術(shù)大學(xué)[9]李凌.基于傳感器網(wǎng)絡(luò)任務(wù)分配技術(shù)研究西北工業(yè)大學(xué)[10]黃錚.無線傳感器網(wǎng)絡(luò)連通與覆蓋的研究武漢理工大學(xué).[11]周賢偉,韋煒,覃伯平.無線傳感器網(wǎng)絡(luò)的時(shí)間同步算法研究傳感技術(shù)學(xué)報(bào)[12]Tsung—HsienLin。WilliamJ.Kaiser,GregoryJ.Pottie.Integrated-powercommunicationsystemdesignforwirelesssensornetworks.IEEECommunicationsMagazine.December2004[13]畢艷忠,孫利民.傳感器網(wǎng)絡(luò)中的數(shù)據(jù)融合.計(jì)算機(jī)科學(xué).2004[14]DeS,QiaoCM,WuHY.Meshedmultiplthroutingwithselectiveforwarding:anefficientstrategyinwirelesssensornetworks.ComputerNetworks.2003[15]SasikanthAvancha,JeffreyUndercoffer,AnupomJoshieta1.Securesensornetworksforperimeterprotection.ComputerNetworks.2003[16]ZigBeeAlliance.ZigBeespecification.December。2006.[17]StankovicJA,AbdelzaherF,LuCY,etal.Real-TimeCommunicationandCoordinationinEmbeddedSensorNetworks.[18]于海斌,曾鵬,王忠鋒等,分布式無線傳感器網(wǎng)絡(luò)通信協(xié)議研究.通信學(xué)報(bào),[19]曾鵬,于海斌,梁英等.分布式無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)及應(yīng)用支撐技術(shù)研究.信息與控制[20]BobHeile,EmergingStandards:WheredoZigBee/UWBfit,2004,[21]王權(quán)平,王莉,ZigBee技術(shù)及其應(yīng)用,現(xiàn)代電信科技,2004[22]陳群,葛萬成,ZigBee在工業(yè)控制中的應(yīng)用探討,自動(dòng)化博覽,2006附錄主程序:#ifndefHAL_H#defineHAL_H#include"ioCC2430.h"/*************************************************************************************************Portfunctions/macros*************************************************************************************************/#defineIO_PER_LOC_TIMER1_AT_PORT0_PIN234()do{PERCFG=(PERCFG&~0x40)|0x00;}while(0)#defineIO_PER_LOC_TIMER1_AT_PORT1_PIN012()do{PERCFG=(PERCFG&~0x40)|0x40;}while(0)#defineIO_PER_LOC_TIMER3_AT_PORT1_PIN34()do{PERCFG=(PERCFG&~0x20)|0x00;}while(0)#defineIO_PER_LOC_TIMER3_AT_PORT1_PIN67()do{PERCFG=(PERCFG&~0x20)|0x20;}while(0)#defineIO_PER_LOC_TIMER4_AT_PORT1_PIN01()do{PERCFG=(PERCFG&~0x10)|0x00;}while(0)#defineIO_PER_LOC_TIMER4_AT_PORT2_PIN03()do{PERCFG=(PERCFG&~0x10)|0x10;}while(0)#defineIO_PER_LOC_SPI1_AT_PORT0_PIN2345()do{PERCFG=(PERCFG&~0x08)|0x00;}while(0)#defineIO_PER_LOC_SPI1_AT_PORT1_PIN4567()do{PERCFG=(PERCFG&~0x08)|0x08;}while(0)#defineIO_PER_LOC_SPI0_AT_PORT0_PIN2345()do{PERCFG=(PERCFG&~0x04)|0x00;}while(0)#defineIO_PER_LOC_SPI0_AT_PORT1_PIN2345()do{PERCFG=(PERCFG&~0x04)|0x04;}while(0)#defineIO_PER_LOC_UART1_AT_PORT0_PIN2345()do{PERCFG=(PERCFG&~0x02)|0x00;}while(0)#defineIO_PER_LOC_UART1_AT_PORT1_PIN4567()do{PERCFG=(PERCFG&~0x02)|0x02;}while(0)#defineIO_PER_LOC_UART0_AT_PORT0_PIN2345()do{PERCFG=(PERCFG&~0x01)|0x00;}while(0)#defineIO_PER_LOC_UART0_AT_PORT1_PIN2345()do{PERCFG=(PERCFG&~0x01)|0x01;}while(0)#defineIO_DIR_PORT_PIN(port,pin,dir)do{if(dir==IO_OUT)P##port##DIR|=(0x01<<(pin));elseP##port##DIR&=~(0x01<<(pin));}while(0)//Whereport={0,1,2},pin={0,..,7}anddirisoneof:#defineIO_IN0#defineIO_OUT1#defineIO_IMODE_PORT_PIN(port,pin,imode)do{if(imode==IO_IMODE_TRI)P##port##INP|=(0x01<<(pin));elseP##port##INP&=~(0x01<<(pin));}while(0)#defineIO_IMODE_PUD0//Pull-up/pull-down#defineIO_IMODE_TRI1//Tristate#defineIO_PUD_PORT(port,pud)do{if(pud==IO_PULLDOWN)P2INP|=(0x01<<(port+5));elseP2INP&=~(0x01<<(port+5));}while(0)#defineIO_PULLUP0#defineIO_PULLDOWN1#defineIO_FUNC_PORT_PIN(port,pin,func)do{if((port==2)&&(pin==3)){if(func){P2SEL|=0x02;}else{P2SEL&=~0x02;}}elseif((port==2)&&(pin==4)){if(func){P2SEL|=0x04;}else{P2SEL&=~0x04;}}else{if(func){P##port##SEL|=(0x01<<(pin));}else{P##port##SEL&=~(0x01<<(pin));}}}while(0)//wherefuncisoneof:#defineIO_FUNC_GIO0//GeneralpurposeI/O#defineIO_FUNC_PERIPH1//Peripheralfunction#defineIO_ADC_PORT0_PIN(pin,adcEn)do{if(adcEn)ADCCFG|=(0x01<<pin);elseADCCFG&=~(0x01<<pin);}while(0)//whereadcEnisoneof:#defineIO_ADC_EN1//ADCinputenabled#defineIO_ADC_DIS0//ADCinputdisab/*************************************************************************************************FLASHprogrammingfunctions************************************************************************************************//Macroforerasingagivenflashpage#defineFLASH_ERASE_PAGE(page)do{FADDRH=(page)<<1;FADDRL=0x00;FLASH_CONFIG(ERASE);}while(0)//Macroforconfiguringflashaccessandsettingflashaccessmode.#defineFLASH_CONFIG(options)do{FWT=(0x2A>>CLKSPD);FCTL=options;}while(0)//_options_maybethefollowing:#defineREAD_WHEN_NEED0x00#defineCONTINOUS_READ0x10#defineWRITE0x02#defineERASE0x01#defineFLASH_BUSY0x80/*************************************************************************************************Powerandclockmanagement***************************************************************************************************//Macroforgettingtheclockdivisionfactor#defineCLKSPD(CLKCON&0x07)//Macroforgettingthetimertickdivisionfactor.#defineTICKSPD((CLKCON&0x38)>>3)//Macroforcheckingstatusofthecrystaloscillator#defineXOSC_STABLE(SLEEP&0x40)//MacroforcheckingstatusofthehighfrequencyRCoscillator.#defineHIGH_FREQUENCY_RC_OSC_STABLE(SLEEP&0x20)//Macroforsettingpowermode#defineSET_POWER_MODE(mode)do{if(mode==0){SLEEP&=~0x03;}elseif(mode==3){SLEEP|=0x03;}else{SLEEP&=~0x03;SLEEP|=mode;}PCON|=0x01;asm("NOP");}while(0)//Where_mode_isoneof#definePOWER_MODE_00x00//Clockoscillatorson,voltageregulatoron#definePOWER_MODE_10x01//32.768KHzoscillatoron,vol

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論