論文設(shè)計(jì)風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)基于ZigBee及GPRS的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)_第1頁
論文設(shè)計(jì)風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)基于ZigBee及GPRS的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)_第2頁
論文設(shè)計(jì)風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)基于ZigBee及GPRS的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)_第3頁
論文設(shè)計(jì)風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)基于ZigBee及GPRS的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)_第4頁
論文設(shè)計(jì)風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)基于ZigBee及GPRS的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、南京工業(yè)大學(xué)畢業(yè)設(shè)計(jì)題目:基于zigbee及gprs的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì) 2012年6月基于zigbee及gprs的小型風(fēng)電場(chǎng)數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)摘要為實(shí)現(xiàn)對(duì)風(fēng)電場(chǎng)現(xiàn)場(chǎng)數(shù)據(jù)采集的目標(biāo)而對(duì)風(fēng)電場(chǎng)進(jìn)行監(jiān)控,但是傳統(tǒng)的監(jiān)控系統(tǒng)多采用以太網(wǎng)光纖通訊。對(duì)于大型風(fēng)電場(chǎng),隨著發(fā)電機(jī)組數(shù)量的增加, 勢(shì)必增加布線費(fèi)用, 且當(dāng)風(fēng)電場(chǎng)擴(kuò)充時(shí), 過多的通信線路會(huì)造成施工與維護(hù)困難等一系列問題。本課題以zigbee技術(shù)和gprs無線分組交換技術(shù)為基礎(chǔ),通過對(duì)小型風(fēng)電場(chǎng)的相關(guān)數(shù)據(jù)的采集,主要包括有風(fēng)電場(chǎng)的溫度、濕度、風(fēng)向、風(fēng)速以及大氣壓力,來實(shí)現(xiàn)對(duì)風(fēng)電場(chǎng)運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)控。本文以小型風(fēng)電場(chǎng)的數(shù)據(jù)采集系統(tǒng)為課題

2、背景,論述了zigbee軟件平臺(tái)的開發(fā)過程,主要完成課題中數(shù)據(jù)采集系統(tǒng)軟件部分設(shè)計(jì)。首先介紹了zigbee技術(shù)的發(fā)展現(xiàn)狀和應(yīng)用前景。其次,介紹了ti z-stack的軟件架構(gòu)。另外,本文還介紹了應(yīng)用層任務(wù)處理函數(shù)及自定義事件。 關(guān)鍵詞:風(fēng)電場(chǎng)zigbee技術(shù)數(shù)據(jù)采集software design of small wind farms data collection system based on zigbee and gprsabstractto achieve the goal of the wind farm site date acquisition to monitor the wi

3、nfd farm,but the traditional monitoring system is the use of ethernet fiber-optic communications. for large wind farms, along with the increase in the number of generating units, certainly will increase wiring fee, and when the wind power expansion, too much communication lines will cause the constr

4、uction and maintenance difficulties and so on a series of problems. this paper is based on the zigbee technology and gprs wireless packet switching technology. by collecting relevant date on small wind farms, including wind farms, temperature, humidity, wind direction, wind speed and atmospheric pre

5、ssure, it finally achieves the purpose of real-time monitoring of the operature status of the wind farm. with the subject background of using the date acquisition system for small-scale wind farm, this paper discusses the development process of the zigbee software part, mainly to complete the softwa

6、re part design of the data acquisition system in the subject. firstly it introduces the current situation of the development of zigbee technology and its development trend. secondly, it introduces the software architecture of ti z-stack. in addition, this paper also describes task handler of the app

7、lication layer and its custom events.keywords: wind farm; zigbee technology; data collector目錄摘要iabstractii第一章 緒 論11.1概述11.2 zigbee技術(shù)簡(jiǎn)介11.3 gprs技術(shù)61.4本文的主要工作6第二章 系統(tǒng)軟件總體方案設(shè)計(jì)72.1系統(tǒng)總體方案設(shè)計(jì)72.2軟件編程的設(shè)計(jì)說明82.2.1 終端節(jié)點(diǎn)82.2.1 路由節(jié)點(diǎn)82.2.1 協(xié)調(diào)器節(jié)點(diǎn)9第三章 軟件系統(tǒng)具體實(shí)現(xiàn)方案103.1 z-stack 協(xié)議棧103.3.1 系統(tǒng)初始化103.3.2 操作系統(tǒng)的執(zhí)行113.3.3 z-

8、stack文件結(jié)構(gòu)133.2應(yīng)用層初始化程序153.3 事件處理程序16第四章 系統(tǒng)調(diào)試214.1 iar編譯環(huán)境設(shè)置214.2系統(tǒng)調(diào)試與結(jié)果25結(jié)語27參考文獻(xiàn)28致謝29附錄1: 應(yīng)用層程序清單30第一章 緒 論1.1概述 當(dāng)前,全球能源供應(yīng)緊張,環(huán)境問題日益突出,風(fēng)能具有儲(chǔ)量巨大、分布廣泛、清潔無污染和可再生的特點(diǎn),符合人類可持續(xù)發(fā)展的要求,越來越受到世界各國和地區(qū)的廣泛關(guān)注。世界風(fēng)電產(chǎn)業(yè)近來迅速發(fā)展,風(fēng)力發(fā)電已經(jīng)成為解決世界能源短缺的重要途徑之一。 由于風(fēng)力發(fā)電的本身?xiàng)l件限制,風(fēng)力發(fā)電機(jī)一般在惡劣的環(huán)境下工作,在無人值守的情況下長(zhǎng)年運(yùn)行,因此要保證對(duì)其進(jìn)行實(shí)時(shí)、可靠的控制。在大型風(fēng)力發(fā)

9、電場(chǎng),通常需要對(duì)幾十臺(tái)或上百臺(tái)風(fēng)力發(fā)電機(jī)進(jìn)行集群控制,這就要求采用先進(jìn)的控制技術(shù)和通信手段。微機(jī)控制以其高可靠性、高性能價(jià)格比為這一實(shí)現(xiàn)提供了現(xiàn)實(shí)依據(jù)。傳統(tǒng)的監(jiān)控系統(tǒng)多采用以太網(wǎng)光纖通訊, 而對(duì)于大型風(fēng)電場(chǎng),隨著發(fā)電機(jī)組數(shù)量的增加, 勢(shì)必增加布線費(fèi)用, 且當(dāng)風(fēng)電場(chǎng)擴(kuò)充時(shí), 過多的通信線路會(huì)造成施工與維護(hù)困難等一系列問題。因此, 采用基于zigbee無線傳感器網(wǎng)絡(luò)和gprs技術(shù)相結(jié)合的無線監(jiān)控系統(tǒng),來實(shí)現(xiàn)各風(fēng)力發(fā)電機(jī)之間的互聯(lián)、各風(fēng)力發(fā)電機(jī)組與監(jiān)控中心的通訊是一種很好的方法。1.2 zigbee技術(shù)簡(jiǎn)介1、無線傳感器網(wǎng)絡(luò) 無線傳感器網(wǎng)絡(luò)(wsn)是當(dāng)前在國際上備受關(guān)注的、涉及多學(xué)科高度交叉、知識(shí)

10、高度集成的前沿?zé)狳c(diǎn)研究領(lǐng)域3。它綜合了傳感器、嵌入式計(jì)算、現(xiàn)代網(wǎng)絡(luò)以及無線通信和分布式信息處理等技術(shù),能夠通過各類集成化的微型傳感器協(xié)同完成對(duì)各種環(huán)境或監(jiān)測(cè)對(duì)象的信息的實(shí)時(shí)監(jiān)測(cè)、感知和采集,這些信息通過無線方式被發(fā)送,并以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端,從而實(shí)現(xiàn)物理世界、計(jì)算世界以及人類社會(huì)這三元世界的連同。無線傳感器網(wǎng)絡(luò)是由大量體積小、成本低。具有無線通信、傳感、數(shù)據(jù)處理能力的線感器節(jié)點(diǎn)組成的2。在無線傳感器網(wǎng)絡(luò)中,大量傳感器節(jié)點(diǎn)被分布在整個(gè)觀測(cè)區(qū)域中,各個(gè)傳感器節(jié)點(diǎn)講探測(cè)的有用信息經(jīng)過初步的數(shù)據(jù)處理和信息融合后傳送給用戶。數(shù)據(jù)傳送的過程是通過相鄰的路由節(jié)點(diǎn)接力傳送回基站,然后再以衛(wèi)星通信

11、或者有線網(wǎng)絡(luò)連接的方式傳送給終端用戶。1)傳感器節(jié)點(diǎn)體系結(jié)構(gòu)傳感器節(jié)點(diǎn)一般由傳感器模塊、處理器模塊、無線通信模塊和能量供應(yīng)模塊四個(gè)功能模塊組成。傳感器模塊又稱數(shù)據(jù)采集模,包括傳感器、a/d轉(zhuǎn)換器,負(fù)責(zé)監(jiān)測(cè)區(qū)域內(nèi)信息的采集和數(shù)據(jù)轉(zhuǎn)換;處理器模塊又稱數(shù)據(jù)處理和控制模塊,包括微處理器、存儲(chǔ)器,負(fù)責(zé)控制整個(gè)傳感器節(jié)點(diǎn)的操作,存儲(chǔ)和處理本身采集的數(shù)據(jù)以及其他節(jié)點(diǎn)發(fā)來的數(shù)據(jù);無線通信模塊通過無線收發(fā)器負(fù)責(zé)與其他傳感器節(jié)點(diǎn)進(jìn)行無線通信,交換控制信息和收發(fā)采集數(shù)據(jù);能量供應(yīng)模塊(電池、dc/ac能量轉(zhuǎn)換器)為傳感器節(jié)點(diǎn)提供運(yùn)行所需的能量,通常采用微型電池。2)無線傳感器網(wǎng)絡(luò)協(xié)議無線傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)體系具有二維

12、結(jié)構(gòu),即橫向的通信協(xié)議層和縱向的傳感器網(wǎng)絡(luò)管理面。通信協(xié)議層可以劃分為物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。網(wǎng)絡(luò)管理面則劃分為能耗管理面、移動(dòng)性管理面以及任務(wù)管理面。3)無線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)包括星型網(wǎng)、網(wǎng)狀網(wǎng)和混合網(wǎng)。隨著數(shù)字通信和計(jì)算機(jī)技術(shù)的發(fā)展,許多短距離無線通信的要求被提出。目前,五種短距離無線網(wǎng)絡(luò)技術(shù)正在成為業(yè)界談?wù)摰臒狳c(diǎn),分別是無線局域網(wǎng)(wi-fi)、超帶寬通信(uwb)、近場(chǎng)通信(nfc)、藍(lán)牙(bluetooth)、紅外線數(shù)據(jù)通irda和zigbee。而本系統(tǒng)運(yùn)用的正是zigbee無線通信技術(shù)。2、zigbee技術(shù)簡(jiǎn)介 zigbee是一種新興的短距離、低功耗、低數(shù)據(jù)速率、低

13、成本、低復(fù)雜度的無線網(wǎng)絡(luò)技術(shù)。蜜蜂在發(fā)現(xiàn)花叢后,會(huì)通過一種特殊的肢體語言zigzag行舞蹈,來告知同伴食物源位置的信息,這是蜜蜂之間傳達(dá)信息的一種簡(jiǎn)單方式1。借此意義zigbee作為新一代無線通訊技術(shù)的命名。zigbee也被稱為“homerf lite”、“rf-easylink”或“firefly”無線電技術(shù),目前統(tǒng)稱為zigbee技術(shù)。zigbee技術(shù)可使用的頻段有3個(gè):(1)2.4ghz的ism頻段(全球流行),可使用16個(gè)信道,最高傳輸速率達(dá)250kbit/s (2)歐洲的868頻段,僅可使用1個(gè)信道,最高傳輸速率達(dá)20kbit/s (3)美國的915頻段,可使用10個(gè)信道,最高傳輸速

14、率達(dá)40kbit/s。中國采用的是2.4ghz頻段,是免申請(qǐng)和免費(fèi)使用的頻率,帶寬為250k。作為一種無線通信技術(shù), zigbee一下主要特點(diǎn):1)數(shù)據(jù)傳輸速率低:只有10k字節(jié)/秒到250k字節(jié)/秒,專注于低傳輸應(yīng)用2)功耗低:在低耗電待機(jī)模式下,兩節(jié)普通5號(hào)干電池可使用6個(gè)月到兩年,免去了充電或者頻繁更換電池的麻煩。這是zigbee的支持者所一直引以為豪的獨(dú)特優(yōu)勢(shì);3)成本低:因?yàn)閦igbee數(shù)據(jù)傳輸速率低,協(xié)議簡(jiǎn)單,所以大大降低了成本,且zigbee協(xié)議免收專利費(fèi)。4)網(wǎng)絡(luò)容量大:可支持節(jié)點(diǎn)達(dá)65000個(gè);每個(gè)zigbee網(wǎng)絡(luò)最多課支持255個(gè)設(shè)備,即每個(gè)zigbee設(shè)備可與另外254臺(tái)

15、設(shè)備相連接;5)時(shí)延短:通常時(shí)延都在15毫秒至30毫米之間;6)安全:zigbee提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,加密算法采用aes-128,同時(shí)可以靈活確定其安全屬性;7)有效范圍?。河行Ц采w范圍1075米之間,具體依據(jù)實(shí)際發(fā)射功率的大小和各種不同的應(yīng)用模式而定,基本上能夠覆蓋普通的家庭或辦公室環(huán)境;8)工作頻段靈活:使用的頻段分別為2.4ghz、868mhz(歐洲)及915mhz(美國),均為免執(zhí)照頻段。3、 zigbee協(xié)議棧 zigbee無線傳感器網(wǎng)絡(luò)通信標(biāo)準(zhǔn)是的ieee 802.15.4,這是ieee無線個(gè)人網(wǎng)絡(luò)工作組的一項(xiàng)標(biāo)準(zhǔn),被稱作ieee 802.15.4(zigbee)技術(shù)標(biāo)

16、準(zhǔn)。ieee 802.15.4包括用于低速無線個(gè)人網(wǎng)絡(luò)的物理層和媒體接入控制層6。zigbee協(xié)議棧采用分層結(jié)構(gòu),每個(gè)層都有一套特定的服務(wù)方法和上一層連接,稱為協(xié)議,每一層也為上一層提供一系列特殊的服務(wù)。數(shù)據(jù)實(shí)體提供數(shù)據(jù)的傳輸服務(wù),而管理實(shí)體提供所有的服務(wù)類型。每個(gè)層的服務(wù)實(shí)體通過服務(wù)接入點(diǎn)(spa)和上一層相接,每個(gè)spa提供大量服務(wù)方法完成相應(yīng)的操作圖1-1 協(xié)議棧結(jié)構(gòu)如圖1-1所示,協(xié)議棧的體系結(jié)構(gòu)從上至下包括:應(yīng)用層(apl層),網(wǎng)絡(luò)層(nwk層),媒介層(mac層),物理層(phy層)。其中,ieee802.15.4 2003標(biāo)準(zhǔn)定義了最下面兩層底層協(xié)議:物理層(physical l

17、ayer,phy)和媒介層(medium access control sublayer,mac)。zigbee聯(lián)盟又在此基本上建立的應(yīng)用層(application layer,apl)和網(wǎng)絡(luò)層(network layer,nwk)。應(yīng)用層apl層又包括應(yīng)用支持子層(application support -layer aps),zigbee的設(shè)備對(duì)象(zigbee device object zdo)以及制造商定義的應(yīng)用對(duì)象7。4、zigbee的網(wǎng)絡(luò)拓?fù)錁?gòu)架和設(shè)備節(jié)點(diǎn)zigbee以一個(gè)個(gè)獨(dú)立的工作節(jié)點(diǎn)為依托,通過無線通信組成了包括星狀、樹狀和網(wǎng)狀在內(nèi)的三種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。,因此每個(gè)節(jié)點(diǎn)的功能并

18、不完全相同,工作節(jié)點(diǎn)分為三類:終端節(jié)點(diǎn)、路由節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)。根據(jù)工作節(jié)點(diǎn)的不同作用,zigbee定義了3種類型的設(shè)備,各種設(shè)備都有自己的功能要求:1)zigbee協(xié)調(diào)器(co-ordinator),是啟動(dòng)和配置網(wǎng)絡(luò)的一種設(shè)備,是整個(gè)網(wǎng)絡(luò)的核心節(jié)點(diǎn),一個(gè)zigbee網(wǎng)絡(luò)只允許有一個(gè)zigbee協(xié)調(diào)器,它需要啟動(dòng)并建立整個(gè)網(wǎng)絡(luò)和賦予一個(gè)panid,同時(shí)賦予每一個(gè)加入網(wǎng)絡(luò)的設(shè)備一個(gè)16位的id號(hào);2)zigbee路由器(router),是一種支持關(guān)聯(lián)的設(shè)備,主要起到將數(shù)據(jù)轉(zhuǎn)發(fā)到其他設(shè)備的作用,zigbee網(wǎng)絡(luò)或樹形網(wǎng)絡(luò)可以有多個(gè)zigbee路由器,zigbee星型網(wǎng)絡(luò)不支持zigbee路由器;3)

19、zigbee終端設(shè)備(end device),執(zhí)行具體功能的設(shè)備,風(fēng)電場(chǎng)采集系統(tǒng)中在終端設(shè)備上安裝傳感器芯片,用于收集采集到的信號(hào)。以上的三種設(shè)備可以根據(jù)功能的完整性分為全功能設(shè)備(ffd)和半功能設(shè)備(rfd)。全功能設(shè)備用于負(fù)責(zé)與所控制的子節(jié)點(diǎn)通信、匯集數(shù)據(jù)和發(fā)布控制,或起到通信路由的作用,所以可以是協(xié)調(diào)器、路由器或者終端設(shè)備。半功能設(shè)備只起到一個(gè)作用,系統(tǒng)中的大部分節(jié)點(diǎn)都是半功能設(shè)備,所以半功能設(shè)備只作為終端設(shè)備。一個(gè)ffd可與多個(gè)rfd或多個(gè)其他ffd通信,而一個(gè)rfd只能與一個(gè)ffd通信。 在本設(shè)計(jì)中,采用的是樹形拓?fù)浣Y(jié)構(gòu),包括一個(gè)co-ordinator以及一系列的router和e

20、nd device節(jié)點(diǎn)。co-ordinator連接一些列的router和end device,它的子節(jié)點(diǎn)的router也可以連接一系列的router和end device。這樣可一個(gè)重復(fù)多次層級(jí),如圖1-2所示。圖1-2 樹形拓?fù)浣Y(jié)構(gòu)5、 zigbee技術(shù)的發(fā)展現(xiàn)狀和應(yīng)用前景 zigbee技術(shù)的應(yīng)用十分廣泛,在工業(yè)控制、工業(yè)無線定位、家庭網(wǎng)絡(luò)、汽車自動(dòng)化、樓宇自動(dòng)化、消費(fèi)電子、醫(yī)用設(shè)備控制等多個(gè)領(lǐng)域都具有廣泛的應(yīng)用前景?,F(xiàn)階段以商業(yè)大樓自動(dòng)化,家庭自動(dòng)化控制(新建安裝)與儀表控制為重點(diǎn)11。商業(yè)大樓可以利用zigbee完成自動(dòng)控制,管理員可以有效地管理空調(diào),燈光,火災(zāi)感應(yīng)系統(tǒng)等各項(xiàng)開關(guān)控制系

21、統(tǒng),可以達(dá)到減少能源費(fèi)用,降低管理人力等節(jié)約目的。對(duì)消費(fèi)者來說,若家中具有zigbee系統(tǒng),可方便的監(jiān)控家中的整體運(yùn)作,有效掌握電力,自來水,瓦斯的使用狀況之外,亦可以具有安全功能,例如可以在家中安裝無線傳感器來監(jiān)控各種不同情況,一旦偵查到異狀即可自動(dòng)發(fā)出警告。zigbee在儀表控制市場(chǎng)隨著國際儀表巨頭中國華立儀表集團(tuán);韓國nuri telecom等紛紛開始引進(jìn)zigbee技術(shù)之儀表控制系統(tǒng)之后,這個(gè)市場(chǎng)開始受到重視。zigbee儀表控制系統(tǒng)相當(dāng)適合人工高昂,幅員遼闊,或是抄表員素質(zhì)不良,抄表準(zhǔn)確度不高,又或抄表員不易進(jìn)入水,電,瓦斯儀表所在地的地方。具有這樣背景的地方促使zigbee儀表控制

22、市場(chǎng)具有一定的需求12。雖然zigbee應(yīng)用越來越多,芯片出貨量也連年遞增,但總體來說,zigbee市場(chǎng)仍然處于起步探索階段,還沒有真正上量起飛,主要表現(xiàn)在在于可應(yīng)用的終端商用產(chǎn)品還多處于研發(fā)階段,真正上市的不多,具有典型應(yīng)用的方向和領(lǐng)域便少,點(diǎn)對(duì)點(diǎn)的應(yīng)用較多,體現(xiàn)zigbee優(yōu)勢(shì)的網(wǎng)狀網(wǎng)絡(luò)應(yīng)用少,缺乏體現(xiàn)zigbee大型組網(wǎng)應(yīng)用。雖然zigbee在艱難中前進(jìn),但未來整個(gè)zigbee產(chǎn)品還是值得我們期待,從技術(shù)標(biāo)準(zhǔn)層面上來看,未來zigbee將緊密迎合物聯(lián)網(wǎng)大概念方向趨勢(shì)的發(fā)展,努力扮演好傳輸層界于ipv6結(jié)合,更面上的角色,在zigbee聯(lián)盟的推動(dòng)下,zigbee技術(shù)將朝著開發(fā)soc(片上系

23、統(tǒng)),更多規(guī)范,廉價(jià),更省電,更快速等方向發(fā)展。1.3 gprs技術(shù)gprs ( general packet radio service) 是通用分組無線業(yè)務(wù)的簡(jiǎn)稱24。它是第二代移動(dòng)通信技術(shù)gsm向第三代移動(dòng)通信技術(shù)3g的過渡技術(shù),經(jīng)常被描述成2.5g,gprs是gsm phase2.1規(guī)范實(shí)現(xiàn)的內(nèi)容之一,是在現(xiàn)有的gsm移動(dòng)通信系統(tǒng)基礎(chǔ)上發(fā)展起來的一種移動(dòng)分組數(shù)據(jù)業(yè)務(wù)5。gprs通過在gsm數(shù)字移動(dòng)通信網(wǎng)絡(luò)中引入分組交換功能實(shí)體,以交換采用分組方式進(jìn)行的數(shù)據(jù)傳輸。gprs能提供比現(xiàn)有g(shù)sm網(wǎng)9.6kb/s更高的數(shù)據(jù)傳輸速率,最高可達(dá)171.2kb/s。gprs采用分組交換技術(shù),數(shù)據(jù)傳輸速

24、率高,它支持多種帶寬,是對(duì)有效帶寬的高效利用22。gprs網(wǎng)絡(luò)滿足電力負(fù)荷管理系統(tǒng)中數(shù)據(jù)的通信速率的要求。gprs具有“永遠(yuǎn)在線”的功能,當(dāng)終端與gprs網(wǎng)絡(luò)建立連接后,即使沒有數(shù)據(jù)傳送,終端也一直與網(wǎng)絡(luò)保持連接,再次進(jìn)行數(shù)據(jù)傳輸時(shí)不需要重新連接,而網(wǎng)絡(luò)容量只有在實(shí)際進(jìn)行傳輸時(shí)才被占用,從而保證了數(shù)據(jù)交換的實(shí)時(shí)性7。gprs是以傳輸?shù)臄?shù)據(jù)量,而不是以連接時(shí)間為基準(zhǔn)來收費(fèi)的,接入gprs網(wǎng)絡(luò)但沒有數(shù)據(jù)傳輸是不收費(fèi)的,這使得通信信道的使用費(fèi)用大大降低。gprs網(wǎng)絡(luò)是在現(xiàn)有的gsm網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ)上引入新的部件而構(gòu)成的無線數(shù)據(jù)傳輸系統(tǒng),在一次性投入和網(wǎng)絡(luò)維護(hù)上的開銷小,可以節(jié)省耗費(fèi)巨大的導(dǎo)線材料和人工

25、費(fèi)用,而且免除了日常檢修和維護(hù)費(fèi)用,同時(shí),具有高可靠性,擴(kuò)展性和抗干擾性。綜上所述,在電力負(fù)荷管理系統(tǒng)中使用gprs通訊模塊,充分利用覆蓋面廣,運(yùn)行可靠、費(fèi)用低廉的gprs公用無線網(wǎng)絡(luò),實(shí)現(xiàn)gprs無線數(shù)據(jù)通訊功能進(jìn)行數(shù)據(jù)傳輸,達(dá)到電力負(fù)荷管理的通訊要求,做到gprs在電力數(shù)據(jù)采集的實(shí)用化23。1.4本文的主要工作本文中軟件設(shè)計(jì)的主要工作有:1)系統(tǒng)初始化及無線傳感網(wǎng)絡(luò)的建立;2)終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)各功能模塊的流程圖設(shè)計(jì);3)數(shù)據(jù)的發(fā)送及重發(fā)機(jī)制設(shè)計(jì);4)終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)整體程序框架設(shè)計(jì);5)終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、協(xié)調(diào)器節(jié)點(diǎn)程序設(shè)計(jì);5)gprs模塊流程圖及程序設(shè)計(jì);6

26、)系統(tǒng)的可靠性實(shí)時(shí)性以及數(shù)據(jù)傳輸?shù)臏?zhǔn)確性等進(jìn)行調(diào)試。第二章 系統(tǒng)軟件總體方案設(shè)計(jì)2.1系統(tǒng)總體方案設(shè)計(jì)小型風(fēng)電場(chǎng)采集系統(tǒng)主要用于對(duì)風(fēng)能現(xiàn)場(chǎng)的數(shù)據(jù)進(jìn)行測(cè)量采集,包括大氣壓力、溫度、濕度、風(fēng)速以及風(fēng)向,實(shí)現(xiàn)對(duì)風(fēng)電場(chǎng)環(huán)境的檢測(cè)。通過數(shù)據(jù)采集系統(tǒng),可以保證系統(tǒng)的信息完整,正確掌握風(fēng)電系統(tǒng)的運(yùn)行狀態(tài),幫助診斷系統(tǒng)故障,提高生產(chǎn)效率。系統(tǒng)采用zigbee組建無線傳感器網(wǎng)絡(luò),網(wǎng)絡(luò)采用樹形拓?fù)浣Y(jié)構(gòu),包括終端采集節(jié)點(diǎn)、路由節(jié)點(diǎn)和中心協(xié)調(diào)器節(jié)點(diǎn)。終端節(jié)點(diǎn)上連接風(fēng)速傳感器、風(fēng)向傳感器、溫濕度傳感器和大氣壓力傳感器,用來采集風(fēng)電場(chǎng)相關(guān)參數(shù)。終端采集節(jié)點(diǎn)通過路由將測(cè)風(fēng)數(shù)據(jù)發(fā)送給中心協(xié)調(diào)器節(jié)點(diǎn),中心協(xié)調(diào)器節(jié)點(diǎn)再通過gpr

27、s模塊講測(cè)風(fēng)數(shù)據(jù)發(fā)送至遠(yuǎn)程計(jì)算機(jī)控制中心。圖 2-1 系統(tǒng)結(jié)構(gòu)圖如圖2-1所示,本設(shè)計(jì)主要是對(duì)系統(tǒng)軟件進(jìn)行設(shè)計(jì),著重分析在數(shù)據(jù)采集系的應(yīng)用中各個(gè)功能進(jìn)行模塊化設(shè)計(jì)。提出適合風(fēng)電場(chǎng)的數(shù)據(jù)采集系統(tǒng)的總體設(shè)計(jì)方案,并詳細(xì)介紹該系統(tǒng)各個(gè)組成模塊的功能及軟件實(shí)現(xiàn)過程,其中包括數(shù)據(jù)采集模塊,zigbee控制模塊,gprs模塊,以及以上模塊與主控芯片的連接設(shè)計(jì),采用基于51的內(nèi)核芯片2430進(jìn)行系統(tǒng)主控電路的設(shè)計(jì),最終通過無線網(wǎng)絡(luò)將采集數(shù)據(jù)發(fā)送至服務(wù)器。并對(duì)系統(tǒng)的可靠性實(shí)時(shí)性記憶數(shù)據(jù)傳輸?shù)臏?zhǔn)確性等進(jìn)行調(diào)試。2.2軟件編程的設(shè)計(jì)說明2.2.1 終端節(jié)點(diǎn)由圖2-2可知:終端采集模塊涉及的程序包括應(yīng)用層初始化、采

28、集指令事件、發(fā)送數(shù)據(jù)事件、重發(fā)數(shù)據(jù)事件、自動(dòng)尋找目的設(shè)備事件、key檢測(cè)事件和程序運(yùn)行事件。對(duì)于終端、路由和協(xié)調(diào)器節(jié)點(diǎn),都涉及到尋找目的設(shè)備事件。不同的節(jié)點(diǎn)(彼此間在網(wǎng)絡(luò)模塊的通信范圍內(nèi))通過彼此自動(dòng)尋找,就可以形成一個(gè)互聯(lián)互通的zigbee 網(wǎng)絡(luò);當(dāng)節(jié)點(diǎn)撤銷或位置變化時(shí), 模塊可以通過重新尋找通信對(duì)象, 確定彼此間的聯(lián)絡(luò), 對(duì)原有網(wǎng)絡(luò)進(jìn)行刷新對(duì)于測(cè)風(fēng)采集終端節(jié)點(diǎn)。每個(gè)終端節(jié)點(diǎn)上,連接著一個(gè)led燈、lcd液晶顯示器和鍵盤控制模塊等。程序運(yùn)行事件控制led的狀態(tài),用于顯示加入網(wǎng)絡(luò)正常;key檢測(cè)事件涉及到lcd和鍵盤控制模塊,在鍵盤控制電路中s1鍵用于啟動(dòng)采集模塊,s2鍵用于修改采集時(shí)間,lc

29、d上會(huì)顯示出采集時(shí)間。終端節(jié)點(diǎn)主要的工作是采集數(shù)據(jù)以及通過cc2430的射頻電路發(fā)送給它的父節(jié)點(diǎn),這就一定會(huì)涉及到采集指令事件、發(fā)送數(shù)據(jù)和重發(fā)數(shù)據(jù)事件。節(jié)點(diǎn)采集數(shù)據(jù)通過ad轉(zhuǎn)換,發(fā)送出去,重發(fā)機(jī)制保證路由或協(xié)調(diào)器節(jié)點(diǎn)能夠準(zhǔn)確接收到數(shù)據(jù)。圖2-2 終端節(jié)點(diǎn)結(jié)構(gòu)圖2.2.1 路由節(jié)點(diǎn)由圖2-3所示:路由節(jié)點(diǎn)涉及的程序包括應(yīng)用層初始化、發(fā)送數(shù)據(jù)事件、重發(fā)數(shù)據(jù)事件、重發(fā)響應(yīng)信息事件、自動(dòng)尋找目的設(shè)備事件和程序運(yùn)行事件。路由節(jié)點(diǎn)的作用是將數(shù)據(jù)轉(zhuǎn)發(fā)到其他設(shè)備,重發(fā)響應(yīng)信息事件是將路由節(jié)點(diǎn)準(zhǔn)確接受數(shù)據(jù)后對(duì)發(fā)送數(shù)據(jù)做出的回應(yīng)。程序運(yùn)行事件中,led顯示路由是否正常工作。圖2-3 路由節(jié)點(diǎn)結(jié)構(gòu)圖2.2.1 協(xié)調(diào)

30、器節(jié)點(diǎn)由圖2-4所示:協(xié)調(diào)器節(jié)點(diǎn)涉及的程序包括發(fā)送數(shù)據(jù)事件、重發(fā)數(shù)據(jù)事件、重發(fā)響應(yīng)信息事件、自動(dòng)尋找目的設(shè)備事件、key檢測(cè)事件和程序運(yùn)行事件。協(xié)調(diào)器節(jié)點(diǎn)是zigbee網(wǎng)絡(luò)的核心,它需要啟動(dòng)并建立整個(gè)網(wǎng)絡(luò)和賦予一個(gè)panid,同時(shí)賦予每一個(gè)加入網(wǎng)絡(luò)的設(shè)備一個(gè)16位的id號(hào)。協(xié)調(diào)器節(jié)點(diǎn)的主控芯片cc2430f128將接收到的數(shù)據(jù)首先在lcd上顯示,同時(shí)顯示采集時(shí)間間隔。另外,它將把數(shù)據(jù)進(jìn)行打包通過gprs模塊(mc55)發(fā)送至遠(yuǎn)程的計(jì)算機(jī)控制中心,由遠(yuǎn)程的服務(wù)器接收,并在上位機(jī)顯示。協(xié)調(diào)器節(jié)點(diǎn)同終端一樣,連接有l(wèi)ed、lcd和鍵盤控制電路。按鍵電路與終端節(jié)點(diǎn)不同的是s1鍵用于短信功能,s2鍵用于

31、gprs模塊關(guān)機(jī)、這里key檢測(cè)事件中,將接收到的數(shù)據(jù)首先在lcd上顯示,同時(shí)顯示采集時(shí)間間隔。圖2-4 協(xié)調(diào)器節(jié)點(diǎn)結(jié)構(gòu)圖。第三章 軟件系統(tǒng)具體實(shí)現(xiàn)方案數(shù)據(jù)采集的過程,簡(jiǎn)單來說,就是終端節(jié)點(diǎn)(傳感器芯片)采集現(xiàn)場(chǎng)信息后將其轉(zhuǎn)化成數(shù)字信號(hào)數(shù)據(jù),然后將其發(fā)送給其連接的路由器節(jié)點(diǎn)。路由節(jié)點(diǎn)在無線網(wǎng)絡(luò)中起到數(shù)據(jù)轉(zhuǎn)發(fā)的作用,通過相鄰路由節(jié)點(diǎn),節(jié)節(jié)發(fā)送數(shù)據(jù),最終將數(shù)據(jù)發(fā)送至協(xié)調(diào)器節(jié)點(diǎn)。協(xié)調(diào)器節(jié)點(diǎn)有一個(gè)接收數(shù)據(jù)的過程,并返回接收數(shù)據(jù)響應(yīng),報(bào)告給發(fā)送節(jié)點(diǎn)(終端節(jié)點(diǎn))接收成功。之后協(xié)調(diào)器節(jié)點(diǎn)在將數(shù)據(jù)發(fā)送至串口,進(jìn)入gprs模塊高速率發(fā)送出去,最終至遠(yuǎn)程計(jì)算機(jī)控制中心,過程如圖2-1所示。在本章中,主要介紹z-s

32、tack協(xié)議棧,應(yīng)用層初始化程序以及應(yīng)用層自定義的7個(gè)事件,并畫出了流程圖介紹程序的運(yùn)行過程。3.1 z-stack 協(xié)議棧z-stack的main函數(shù)在zmain.c中,總體上來說,它一共做了兩件工作,一個(gè)是系統(tǒng)初始化,即由初始代碼來初始化硬件系統(tǒng)和軟件架構(gòu)的各個(gè)模塊,另一個(gè)及時(shí)開始執(zhí)行操作系統(tǒng)1。如圖3-1所示。圖3-1 協(xié)議棧主要流程3.3.1 系統(tǒng)初始化系統(tǒng)初始化代碼需要完成初始化硬件平臺(tái)和軟件架構(gòu)所需要的各個(gè)模塊,為操作系統(tǒng)的運(yùn)行做好準(zhǔn)備工作,主要分為初始化系統(tǒng)時(shí)鐘、檢測(cè)芯片工作電壓、初始化堆棧、初始化各個(gè)硬件模塊、初始化flash存儲(chǔ)、形成芯片mac地址、初始化非易失性變量、初始化

33、mac層協(xié)議、初始化應(yīng)用幀層協(xié)議、初始化操作系統(tǒng)等十余部分,如圖3-2所示及程序見附錄程序清單3.1。圖 3-2 系統(tǒng)初始化流程圖 3.3.2 操作系統(tǒng)的執(zhí)行在這里,我們先要了解操作系統(tǒng)的特點(diǎn)。ti z-stack是基于輪轉(zhuǎn)查詢式操作系統(tǒng)的16。這個(gè)系統(tǒng)中,有一個(gè)“優(yōu)先級(jí)”的概念,先處理排列在前面優(yōu)先級(jí)高的任務(wù),再處理后 面低的任務(wù)。而每個(gè)任務(wù)中又有多個(gè)事件存在。這里采用把優(yōu)先級(jí)放在最重要地位的調(diào)度方式,優(yōu)先級(jí)高的任務(wù)中的所有時(shí)間都具有很高的級(jí)別,即只要優(yōu)先級(jí)高的任務(wù)有事件沒有處理完,就一直處理,直到所有事件得到處理,才去執(zhí)行下一個(gè)任務(wù)事件的查詢。另外,即使當(dāng)前在處理的任務(wù)中有兩個(gè)以上事件待處

34、理,處理完一件后,也要回頭再去查詢優(yōu)先級(jí)更高的任務(wù)。只有在任務(wù)更高的任務(wù)沒有事件要處理的情況下,才會(huì)處理原來任務(wù)優(yōu)先級(jí)第二高的事件。如果此時(shí)發(fā)現(xiàn)優(yōu)先級(jí)高的任務(wù)有了新的事件要處理,則立刻處理該事件。通過這中輪轉(zhuǎn)查詢式調(diào)度方式,就賦予了優(yōu)先級(jí)高的任務(wù)最大的權(quán)力,盡可能保證高優(yōu)先級(jí)的每一個(gè)事件都能得到及時(shí)的處理。系統(tǒng)初始化,即啟動(dòng)代碼為操作系統(tǒng)的執(zhí)行做好了準(zhǔn)備工作,之后就開始執(zhí)行操作系統(tǒng)入口程序,并講控制權(quán)全部交給操作系統(tǒng)。操作系統(tǒng)實(shí)體只有一行代碼:osal-start-system(); / no return frm here這句代碼的注釋意思是,本函數(shù)不會(huì)返回,也就是它是一個(gè)死循環(huán),永遠(yuǎn)不可能

35、執(zhí)行玩。這個(gè)函數(shù)就是輪轉(zhuǎn)查詢式操作系統(tǒng)的主體部分,它所做的就是不斷查詢每個(gè)任務(wù)中是否有事件發(fā)生,如果發(fā)生,就執(zhí)行相應(yīng)的函數(shù),如果沒有發(fā)生,就查詢下一個(gè)任務(wù)。首先我們明確系統(tǒng)要執(zhí)行的幾個(gè)任務(wù),在serialapp本項(xiàng)目中,不算調(diào)試的任務(wù),操作系統(tǒng)一共要處理6項(xiàng)任務(wù),分別是mac層、網(wǎng)絡(luò)層、板硬件抽象層,應(yīng)用層、zigbee設(shè)備應(yīng)用層以及用戶處理的應(yīng)用層,其優(yōu)先級(jí)由高到低,即mac層具有最高的優(yōu)先級(jí)。 項(xiàng)目serialapp中的tasksarr函數(shù)數(shù)組代碼見程序清單3.2,流程圖如圖3-3所示。程序清單3.2:const ptaskeventhandlerfn taskaaee= macevent

36、loop, /mac層任務(wù)處理函數(shù) nwk_event_loop, /網(wǎng)絡(luò)層任務(wù)處理函數(shù) hal_processevent, /板硬件抽象層任務(wù)處理函數(shù) # if defined ( mt_task ) mt_processevent, /調(diào)試任務(wù)處理函數(shù),可選 # endif aps_event_loop, /應(yīng)用層任務(wù)處理函數(shù),用戶不要更改 zdapp_event_loop, /zigbee設(shè)備應(yīng)用層任務(wù)處理函數(shù),用戶可以根據(jù)需要更改 sampleapp_processevent /serialapp的用戶任務(wù)處理函數(shù);z-stack已經(jīng)編寫了對(duì)從mac層到zigbee設(shè)備應(yīng)用層這五層任務(wù)

37、的事件的處理函數(shù),一般情況下不需要修改這些函數(shù),所以只需要編寫應(yīng)用層的任務(wù)和事件處理函數(shù)。所以,在本設(shè)計(jì)中,重點(diǎn)是app應(yīng)用層的任務(wù)及事件函數(shù)14。操作系統(tǒng)多任務(wù)處理流程圖如圖3-3所示。圖3-3輪轉(zhuǎn)查詢式操作系統(tǒng)多任務(wù)處理在app任務(wù)處理函數(shù)中,一共需要添加三個(gè)文件,1)主文件(serialapp.c):存放具體的任務(wù)事件處理函數(shù)(sampleapp_processevent)2)頭文件(serialapp.h):定義設(shè)備配置信息,定義自定義事件名。3)操作系統(tǒng)接口文件(osal_serialapp.c):存放任務(wù)處理函數(shù)數(shù)組tasks的文件。3.3.3 z-stack文件結(jié)構(gòu)系統(tǒng)軟件總體結(jié)

38、構(gòu)如圖3-4所示,整個(gè)程序是圍繞cc2430單片機(jī)設(shè)計(jì)的,軟件程序采用模塊化設(shè)計(jì)更容易理解和調(diào)試。整個(gè)程序從上至下包括:app應(yīng)用層,hal硬件層,mac層,mt層,nwk網(wǎng)絡(luò)層,osal(協(xié)議棧操作系統(tǒng)),af應(yīng)用框架層,安全層,services層,tool(工具配置目錄),zdo目錄,zmac(mac層目錄),zmain(主函數(shù)目錄),output(輸出文件目錄)。本設(shè)計(jì)中,主要研究的是app應(yīng)用層中所涉及的程序函數(shù)以及其流程圖。各個(gè)目錄含義如下:1)app:應(yīng)用層目錄,其目錄結(jié)構(gòu)如圖3-5所示。這個(gè)目錄下的后三個(gè)文件是創(chuàng)建一個(gè)新項(xiàng)目是要主要添加的文件。2)hal:硬件層目錄,其目錄結(jié)構(gòu)如

39、圖3-6所示。common目錄下的文件是公用文件,基本上與硬件無關(guān),其中hal_assert.c是斷言文件,用于調(diào)試,hal_driver.c是驅(qū)動(dòng)文件,抽象出與硬件無關(guān)的驅(qū)動(dòng)函數(shù),包含有與硬件相關(guān)的配置和驅(qū)動(dòng)及操作函數(shù)。include目錄下主要包含各個(gè)硬件模塊的頭文件,而target目錄下的文件是跟硬件平臺(tái)相關(guān)的,可以看到有兩個(gè)平臺(tái),分別是cc2430db平臺(tái)和一個(gè)是cc2430eb平臺(tái),其中cc2430db文件夾是灰白色的,表示你的項(xiàng)目并沒有使用這個(gè)平臺(tái),意味著cc2430eb平臺(tái)正在使用中。圖 3-4 z-stack在項(xiàng)目中的目錄結(jié)構(gòu) 3)mac層:mac層目錄,4)mt:監(jiān)控調(diào)試層目錄

40、,該目錄下的文件主要用于調(diào)試目的,即實(shí)現(xiàn)通過串口調(diào)試各層,與各層進(jìn)行直接交互。5)nwk:網(wǎng)絡(luò)層目錄,含網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫的函數(shù)接口文件,和aps層庫的函數(shù)接口。6)osal:協(xié)議棧的操作系統(tǒng)。7)profile:af層目錄,包含af層處理函數(shù)接口文件。8)security:安全層目錄,包含安全層處理函數(shù)接口文件。9)services:zigbee和802.15.4設(shè)備的地址處理函數(shù)目錄。包括地址模式的定義及地址處理函數(shù)。10)tools:工程配置目錄,包括空間劃分及z-stack相關(guān)配置信息。11)zdo:zigbee設(shè)備對(duì)象,可認(rèn)為是一種公共的功能集方便用戶用自定義的對(duì)象調(diào)用ap

41、s子層的服務(wù)和nwk層的服務(wù)。12)zmac:如圖3-7所示,其中zmac.c是z-stack mac導(dǎo)出層接口文件,zmac_cb.c是zmac需要調(diào)用的網(wǎng)絡(luò)層函數(shù)。13)zmain:如圖3-8所示,在zmain.c主要包含了整個(gè)項(xiàng)目的入口函數(shù)main(),在outboard.c中包含對(duì)硬件開發(fā)平臺(tái)各類外設(shè)進(jìn)行控制的接口函數(shù)。14)output:輸出文件目錄,這個(gè)ew8051 ide自動(dòng)生成的。 圖3-5 app目錄結(jié)構(gòu) 圖3-6 hal目錄結(jié)構(gòu) 圖3-7 zmac層目錄結(jié)構(gòu) 圖3-8 zmain層目錄結(jié)構(gòu)3.2應(yīng)用層初始化程序如圖3-9所示為應(yīng)用層初始化函數(shù)serialapp_init的流

42、程圖。程序見附錄程序清單3.3。其主要過程如下:1)為進(jìn)行i/o口初始化,設(shè)置芯片引腳連接什么地址等。 2)調(diào)用memcpy()函數(shù)為項(xiàng)目選擇合適的信道,賦予一個(gè)panid,同時(shí)賦予每一個(gè)加入網(wǎng)絡(luò)的設(shè)備一個(gè)16位的id號(hào)。包括設(shè)置接收序列號(hào),分配任務(wù)id,設(shè)置目的設(shè)備端口,設(shè)置目的地址,設(shè)置目的地址模式和廣播等待。3)注冊(cè)端口描述符4)獲取64位地址5)串口配置信息,包括設(shè)置波特率,流量控制,流控閥值 ,最大接收量,最大發(fā)送量等等6)判斷是否擁堵,接受回調(diào)函數(shù)圖3-9 應(yīng)用層初始化3.3 事件處理程序在serialapp.h中定義了7個(gè)自定義事件:重發(fā)數(shù)據(jù)事件、重發(fā)響應(yīng)信息事件、發(fā)送數(shù)據(jù)事件、

43、自動(dòng)尋找目的設(shè)備事件、key檢測(cè)周期、程序運(yùn)行事件和采集指令事件。下面幾小節(jié)詳細(xì)介紹了這幾個(gè)自定義事件的流程圖以及代碼。1、 重發(fā)數(shù)據(jù)事件重發(fā)數(shù)據(jù)事件程序見程序清單3.4,流程圖如圖3-10所示。程序在應(yīng)用層中采取兩種措施增強(qiáng)數(shù)據(jù)通信的可靠性。首先是利用重發(fā)數(shù)據(jù)事件serialapp_msg_rtry_ev重發(fā)數(shù)據(jù),重新發(fā)送次數(shù)由rtycnt決定。由于在數(shù)據(jù)包之前增加了序列號(hào)serialapp_seqtxt,多次重發(fā)的數(shù)據(jù)不會(huì)被接收節(jié)點(diǎn)反復(fù)發(fā)送到串口。另外,加入了數(shù)據(jù)接收響應(yīng)機(jī)制,發(fā)送節(jié)點(diǎn)在發(fā)送完數(shù)據(jù)后等待接收節(jié)點(diǎn)發(fā)揮接收數(shù)據(jù)響應(yīng),收到返回接收數(shù)據(jù)響應(yīng)的命令serialapp_clustrid

44、2后,判斷信息包中的接收狀態(tài)參數(shù)。若接收狀態(tài)為ota_dup_msg,表示接收節(jié)點(diǎn)串口繁忙,應(yīng)啟動(dòng)重發(fā)機(jī)制,延時(shí)后產(chǎn)生重發(fā)數(shù)據(jù)事件;若接收狀態(tài)ota_success,表明接收節(jié)點(diǎn)將數(shù)據(jù)成功發(fā)送至串口,應(yīng)釋放緩存區(qū),等待串口接收下一包數(shù)據(jù)。圖3-10重發(fā)數(shù)據(jù)事件流程圖2、重發(fā)響應(yīng)信息事件如圖3-11所示。在重發(fā)響應(yīng)信息事件中,接收節(jié)點(diǎn)將接收狀態(tài)參數(shù)打包成為接收數(shù)據(jù)響應(yīng)信息,返回發(fā)送給發(fā)送節(jié)點(diǎn)。這里用stat記錄接收節(jié)點(diǎn)發(fā)送的接收數(shù)據(jù)響應(yīng)信息數(shù)據(jù)是否已成功發(fā)送給發(fā)送節(jié)點(diǎn)。系統(tǒng)對(duì)stat進(jìn)行判斷,如果stat不是success,表示接收節(jié)點(diǎn)發(fā)送接受數(shù)據(jù)響應(yīng)信息沒有成功,系統(tǒng)則啟動(dòng)定時(shí)器進(jìn)行延時(shí)后產(chǎn)生

45、重發(fā)數(shù)據(jù)響應(yīng)事件。程序代碼見附錄程序清單3.5。圖3-11重發(fā)響應(yīng)信息事件流程圖3、發(fā)送數(shù)據(jù)事件如圖3-12所示,發(fā)送數(shù)據(jù)事件serialap_msg_send_evt觸發(fā)事件處理函serialapp_processevent去調(diào)用serialapp_senddata,將數(shù)據(jù)無線發(fā)送到接收節(jié)點(diǎn)。首先判斷是否是協(xié)調(diào)器節(jié)點(diǎn),如果是協(xié)調(diào)器節(jié)點(diǎn),那么將協(xié)調(diào)器節(jié)點(diǎn)的數(shù)據(jù)發(fā)送至串口,如果是終端節(jié)點(diǎn),那么就將終端節(jié)點(diǎn)的數(shù)據(jù)發(fā)送出去(數(shù)據(jù)通過路由節(jié)點(diǎn)相鄰發(fā)送方式,最終發(fā)送給終端),發(fā)送結(jié)束后調(diào)用free_otabuf()釋放接收數(shù)據(jù)緩存區(qū)。發(fā)送數(shù)據(jù)事件見程序清單3.6。圖3-12 發(fā)送數(shù)據(jù)事件流程圖4、自動(dòng)尋

46、找目的設(shè)備事件如圖3-13所示,serialapp_auto_find_evt事件是觸發(fā)新設(shè)備去自動(dòng)尋找數(shù)據(jù)傳輸?shù)哪康脑O(shè)備的事件。每個(gè)設(shè)備都能觸發(fā)此事件。當(dāng)設(shè)備狀態(tài)(zdo_state_change)改變后(這個(gè)狀態(tài)的改變一般由建立網(wǎng)絡(luò)或新設(shè)備加入網(wǎng)絡(luò)引起),調(diào)用zdapp_autofinddestination函數(shù)尋找設(shè)備,如果找到設(shè)備地址,break退出if,退出事件;如果沒有找到,返回啟動(dòng)定時(shí)器延時(shí) ,延時(shí)結(jié)束后繼續(xù)尋找設(shè)備觸發(fā)此事件。程序見附錄程序清單3.7。圖3-13 自動(dòng)尋找目的設(shè)備事件流程圖5、key檢測(cè)周期事件 在這里,p1_0,p1_4分別對(duì)應(yīng)協(xié)調(diào)cc2430模塊上的兩個(gè)按鍵

47、s1、s2,在終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)上,都連接lcd液晶顯示器,而按鍵控制的功能不同。如圖3-14所示,key檢測(cè)周期事件每0.002秒執(zhí)行一次,系統(tǒng)不斷循環(huán)執(zhí)行。觸發(fā)事件后,先判斷是否是設(shè)備協(xié)調(diào)器節(jié)點(diǎn),如果是協(xié)調(diào)器設(shè)備,按下s1鍵,則gprs關(guān)機(jī),液晶上顯示“gprs power off!”;按下s2鍵,則開啟發(fā)送短信功能,液晶上顯示“sms test!”。如果是終端節(jié)點(diǎn),按下s1鍵,啟動(dòng)定時(shí)器,1秒后開始采集數(shù)據(jù),按下s2鍵,采集時(shí)間增加5秒,液晶上顯示采集時(shí)間。程序見附錄程序清單3.8。圖3-14 key檢測(cè)周期事件流程圖6、程序運(yùn)行事件 如圖3-15所示,p1_3控制的是一個(gè)led燈。c

48、c2430協(xié)調(diào)器芯片、終端和路由上均連接有個(gè)一個(gè)led燈,顯示狀態(tài)。p1_3取反,即led燈亮。 首先判斷是否是協(xié)調(diào)器節(jié)點(diǎn)。若是終端或者路由節(jié)點(diǎn),led燈亮表示加入網(wǎng)絡(luò)正常。若是協(xié)調(diào)器節(jié)點(diǎn),led 指示gsm模塊的網(wǎng)絡(luò)狀況,在之后進(jìn)行g(shù)prs指令的判斷,指令包括短信標(biāo)志指令gprs_sing.sms_sign和關(guān)機(jī)標(biāo)志指令gprs_sign.power_off。短信指令為1時(shí),向gprs發(fā)送短信,短信6條為一組,滿六條后清零;關(guān)機(jī)指令為1時(shí),向gprs發(fā)送關(guān)機(jī)指令,gprs關(guān)機(jī)。程序見附錄程序清單3.9。圖3-15 程序運(yùn)行事件流程圖7、采集指令事件 如圖3-16所示,終端節(jié)點(diǎn)上連接有l(wèi)cd液

49、晶顯示屏。通過getsensorvoltage()將采集到的數(shù)據(jù)進(jìn)行ad轉(zhuǎn)換成電壓值,用collecting_counter13記錄已采集的次數(shù),最后將電壓值和當(dāng)前的采集次數(shù)在lcd上顯示出來。程序見附錄程序清單3.10。圖3-16 采集指令事件流程圖第四章 系統(tǒng)調(diào)試4.1 iar編譯環(huán)境設(shè)置 1、軟件介紹zigbee開發(fā)軟件是iar embedded workbench。iar embedded workbench是一套開發(fā)工具,用于對(duì)匯編、c或c+編寫的嵌入式應(yīng)用程序進(jìn)行編譯和調(diào)試。iar embedded workbench是一套高度精密且使用方便點(diǎn)的嵌入式應(yīng)用編程開發(fā)工具。該集成開發(fā)環(huán)

50、境包含了iar的c/c+編譯器,匯編器,鏈接器,文件管理器,文本編輯器,工程管理器和cspy調(diào)試器。通過其內(nèi)置的針對(duì)不同芯片的代碼優(yōu)化器,iar embedded workbench可以為arm芯片生成非常高效和可靠的flash/promable代碼。iar初始頁面如下圖4-1所示。圖 4-1 iar初始頁面2、設(shè)置工程選項(xiàng)選擇“project”菜單下的“option”設(shè)置與cc2430相關(guān)的選項(xiàng)。(1)設(shè)置general option選項(xiàng)“target”標(biāo)簽,如圖4-2所示;“data pointer”標(biāo)簽,如圖4-3所示,選擇數(shù)據(jù)指針數(shù)1個(gè),16位;“stack/heap”標(biāo)簽,如圖4-4

51、所示,改變xdata棧大小到0x1ff2)設(shè)置linker選項(xiàng)?!皁utput”標(biāo)簽,如圖4-5所示,在此處override default下面的文本框中可以更改文件名;“config”標(biāo)簽,如圖4-6所示,單擊linker command file 欄文本框右邊的按鈕,選擇正確的連接命令文件圖4-2 target圖4-3 數(shù)據(jù)指針選擇(3)設(shè)置“debugger”選項(xiàng)“setup”標(biāo)簽,如圖4-7所示,devic description file欄出可選擇程序安裝文件夾。圖4-4 stack/help設(shè)置3、編譯和連接選擇project /make或按f7鍵編譯和連接工程。4、調(diào)試仿真器選擇

52、菜單project/debug或按快捷鍵crol+d進(jìn)入雕飾狀態(tài),也可按工具欄上的調(diào)試按鈕進(jìn)入調(diào)試。圖4-5 輸出文件設(shè)置圖4-6 選擇連接命令文件圖4-7 配制調(diào)試器圖4-8 程序調(diào)試界面4.2系統(tǒng)調(diào)試與結(jié)果對(duì)系統(tǒng)軟件與硬件進(jìn)行聯(lián)合調(diào)試,結(jié)果能夠達(dá)到最初的設(shè)計(jì)要求。下圖為2月2日測(cè)得的風(fēng)速、風(fēng)向、氣壓、濕度和溫度的相關(guān)數(shù)據(jù)。圖4-9 風(fēng)速曲線圖圖4-10 風(fēng)向曲線圖圖4-11 氣壓曲線圖圖4-12 濕度曲線圖圖4-13 溫度曲線圖結(jié)語本畢業(yè)論文以小型風(fēng)電場(chǎng)現(xiàn)場(chǎng)的風(fēng)速、風(fēng)向等的數(shù)據(jù)采集為背景,主要完成基于zigbee和gprs技術(shù)的數(shù)據(jù)采集系統(tǒng)的軟件部分設(shè)計(jì)。根據(jù)任務(wù)書的要求,設(shè)計(jì)初期介紹了z

53、igbee技術(shù)和gprs技術(shù)的基礎(chǔ)知識(shí)以及應(yīng)用。其次,繪制了系統(tǒng)的整體框圖,設(shè)計(jì)了各分模塊的流程圖、并編寫了相應(yīng)的子程序。系統(tǒng)軟件編程中先用iar軟件進(jìn)行了編譯,再結(jié)合硬件電路在開發(fā)板上對(duì)程序進(jìn)行了調(diào)試。本設(shè)計(jì)中還存在諸多需要改進(jìn)的地方,軟件編程中存在一些編寫錯(cuò)誤問題。系統(tǒng)軟件設(shè)計(jì)中在編程上存在一些錯(cuò)誤,調(diào)試過程中出現(xiàn)報(bào)錯(cuò)現(xiàn)象。要使該系統(tǒng)投入實(shí)際環(huán)境中進(jìn)行相關(guān)數(shù)據(jù)的測(cè)試與發(fā)送,但由于實(shí)驗(yàn)的器件沒達(dá)到這一要求,所以還需進(jìn)一步學(xué)習(xí)和研究。參考文獻(xiàn)1 高守瑋,吳燦陽. zigbee技術(shù)實(shí)踐教程:基于cc2430/31的無線傳感器網(wǎng)絡(luò)解決方案m.北京:北京航空航天大學(xué)出版社,2009.2 馬組長(zhǎng),孫怡

54、寧,梅濤. 無線傳感器網(wǎng)絡(luò)綜述j.通信學(xué)報(bào),2004,25(4):12-15.3 崔莉,鞠海玲等. 無線傳感器網(wǎng)絡(luò)研究進(jìn)展j.計(jì)算機(jī)研究與發(fā)展,2005,4(21):8-11.4 任豐原,黃海寧,林闖.無線傳感器網(wǎng)絡(luò)j.軟件學(xué)報(bào),2003,14(7):2-5.5 李文仲,段朝玉. zigbee2007/pro協(xié)議棧實(shí)驗(yàn)與實(shí)踐m.北京:北京航空航天大學(xué)出版社,2009.6 郭淵博. zigbee技術(shù)與應(yīng)用m .北京:國防工業(yè)出版社,2010.6.7 鐘永鋒 劉永俊. zigbee無線傳感器網(wǎng)絡(luò)m.北京:北京郵電大學(xué)出版社,2011.8 呂治安. zigbee網(wǎng)絡(luò)原理與應(yīng)用開發(fā)m.北京:北京航空航

55、天大學(xué)出版社,2008.9 周益明.基于無線傳感器網(wǎng)絡(luò)的溫室群檢測(cè)與控制系統(tǒng)的關(guān)鍵技術(shù)研究與實(shí)現(xiàn)j.cnki:cdmd:1.2010.063862:2-5.10 周宇,景博,等. 基于zigbee無線傳感器網(wǎng)絡(luò)的嵌入式遠(yuǎn)程監(jiān)測(cè)系統(tǒng)j.儀表技術(shù)與傳感器,2008,(2):15-16.11 馬海.基于zigbee無線傳感器網(wǎng)絡(luò)的遠(yuǎn)程數(shù)據(jù)檢測(cè)的設(shè)計(jì)與實(shí)現(xiàn)j.電子測(cè)量技術(shù),2010,10(2):2-5.12 李小珉 趙志宏等.zigbee無線傳感器網(wǎng)絡(luò)的研究與實(shí)驗(yàn)j.電子測(cè)量技術(shù),2007,16,(30):11-13.13 郭棟,秦明芝.基于cc2430的zigbee無線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)j.物聯(lián)網(wǎng)技術(shù),2011,(1):15-17.14 胡靜,沈連豐等.新的無線傳感器分簇算法j.通信協(xié)報(bào),2008,29(7):2-5.15 甘勇,王華等.基于arm平臺(tái)的zigbee網(wǎng)關(guān)設(shè)計(jì)j.通信技術(shù),2009, 4(21):8-12.16 曾國寶.z

溫馨提示

  • 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)論