水環(huán)境監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)軟件設(shè)計(jì)_第1頁(yè)
水環(huán)境監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)軟件設(shè)計(jì)_第2頁(yè)
水環(huán)境監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)軟件設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、水環(huán)境監(jiān)測(cè)系統(tǒng)節(jié)點(diǎn)軟件設(shè)計(jì)本文中設(shè)訃的監(jiān)測(cè)丹點(diǎn)選取IAREmbeddedWorkbench為開址壞境.編程語(yǔ)盲為C語(yǔ)言【仙.應(yīng)用這款毎成開發(fā)環(huán)境設(shè)計(jì)開發(fā)節(jié)點(diǎn)的軟件.方便快捷,開發(fā)效率高.并且此開發(fā)環(huán)境的Cg編譯器能夠忙成高效幷可靠的可執(zhí)擰代碼,同時(shí)能夠針對(duì)具體的芯片進(jìn)廳代碼優(yōu)化.本監(jiān)測(cè)系統(tǒng)的節(jié)點(diǎn)軟件設(shè)訃k耍包抹隘度傳感器的測(cè)鼠程用.畢于CC3430fUZigbm網(wǎng)簾的廿點(diǎn)Z問(wèn)通們程序以朋匯聚廿點(diǎn)F1上位機(jī)通過(guò)-t11燈數(shù)腳的處理程用4.1監(jiān)測(cè)節(jié)點(diǎn)初始化程序設(shè)計(jì)溫度監(jiān)穂節(jié)點(diǎn)主要功能厲矍運(yùn)用傳感器去采鋸H標(biāo)水域的話度值.井通過(guò)傳感器微據(jù)線將數(shù)字伯號(hào)件輸?shù)絾蝺吼嚨腎/O口幷任單片機(jī)屮處理,然后通過(guò)R

2、F射頻摸塊將戲?仃勺無(wú)線發(fā)送踣匯舉節(jié)點(diǎn),上位機(jī)通過(guò)卅1讀取匯聚節(jié)點(diǎn)接豎敵戡.晟店可以再在后臺(tái)系統(tǒng)對(duì)轉(zhuǎn)換后的伯號(hào)信息進(jìn)帝査詢D水環(huán)境監(jiān)測(cè)節(jié)點(diǎn)是作丸整個(gè)系姣工作的第一環(huán)節(jié).皺投放在訂標(biāo)水域?qū)嵤?shù)據(jù)液址匚作.監(jiān)測(cè)節(jié)點(diǎn)稈序總休設(shè)計(jì)如閣41所示.”亠一.Ftf,*RmiS閣11臨測(cè)節(jié)點(diǎn)桎斥總體訕計(jì)監(jiān)測(cè)背點(diǎn)實(shí)施數(shù)據(jù)棗集工作之詢、戢先設(shè)置眼片機(jī)CC2430(W鐘頻率.站后設(shè)置穩(wěn)用器,一整個(gè)系統(tǒng)循環(huán)等特一直到穩(wěn)斥器供電穩(wěn)定.隨后初始化單片機(jī)的輸入輸出錨U,在本系統(tǒng)中,傳感器的監(jiān)測(cè)敵抑:從POU輸入,即把POLH殳疋為輸入模式,即將內(nèi)部的輸出卜拉驅(qū)動(dòng)管關(guān)閉,將P0置LCC2430的4個(gè)定時(shí)器分別是16位定時(shí)器(

3、定時(shí)器1)MAC定時(shí)器(定時(shí)»2).8位定時(shí)器(定時(shí)器3和4),單片機(jī)種通過(guò)控制寄存器TxCTL來(lái)控制定時(shí)器操作,這世采用輸出比較模式來(lái)進(jìn)行典吃的輸入捕獲和輸出比較操作.CC2430具有兼容RF收發(fā)器,是以業(yè)界領(lǐng)先的CC2420射頻核心為基礎(chǔ)的,節(jié)點(diǎn)之間的無(wú)線通苗便采用IEEE802.154定義卜的24GHz直接序列擴(kuò)頻頻譜(DSSS)RF調(diào)制恪式來(lái)進(jìn)fj(4SL添加介門狗程序以保證也片機(jī)運(yùn)行鎧定,防止收到外界磴場(chǎng)干擾.IIS測(cè)廿點(diǎn)的系純初始化如圖42圖4.2節(jié)點(diǎn)初始化涼秤圖4.2溫度數(shù)據(jù)采集模塊程序設(shè)計(jì)本系統(tǒng)是対11標(biāo)水域的相關(guān)物理參數(shù)進(jìn)行測(cè)屋從而完咸實(shí)時(shí)監(jiān)測(cè)的功能,數(shù)據(jù)佇息是通過(guò)

4、相關(guān)傳感器進(jìn)行采集,本監(jiān)測(cè)節(jié)點(diǎn)搭載DS18B20溫度傳感器實(shí)現(xiàn)水環(huán)境溫度的采集和傳輸.DS1SB20的溫度檢測(cè)的-個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理在DS18B2D共仃三種形態(tài)的存儲(chǔ)器資源.它們分別是:ROM只讀存儲(chǔ)器.RAM數(shù)抑:暫存器,EEPROMIE易失性記憶體。根據(jù)DS18B20的通們協(xié)議,DS18B20只能作為從機(jī),而單片機(jī)系統(tǒng)作為主機(jī),單片機(jī)控制DS18B20完成一次溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:復(fù)位、發(fā)送ROM指令、發(fā)送RAM指令.毎次對(duì)DS18B20的操作都要進(jìn)行以上三個(gè)步驟問(wèn)。復(fù)位過(guò)程為:DS1SB20的所有通佶都由復(fù)位脈沖組成的初始化序列開始.該初始化序列由匸機(jī)發(fā)出

5、.后銀由DS1SB20發(fā)出的存在脈沖(presencepulse)。虹片機(jī)將數(shù)擁線抑低至少480uS然施杯放數(shù)抑:線等待15-60uSilDS18B20接收佇:;,DS18B20接收到們號(hào)后,會(huì)把數(shù)據(jù)線拉低60-240uS.L機(jī)檢測(cè)到敵卅線被拉低后標(biāo)識(shí)虹位成功.發(fā)送ROM指令:ROM折令表示主機(jī)對(duì)系統(tǒng)上所接的全部DS1SB20進(jìn)行尋址,以確定對(duì)那個(gè)DS1SB20進(jìn)行操作,或者是讀収某個(gè)DS1SB20的ROM序列號(hào)。發(fā)送RAM指令:RAM指令用于單片機(jī)對(duì)DS1SB20內(nèi)部RAM進(jìn)行操作,如讀訛寄«器的值,或占設(shè)置寄仔器的值.DS1SB20的或"J時(shí).?圖如圖43所j;根據(jù)實(shí)際

6、測(cè)試的情況總結(jié)出了以卜的DS18B20操作步驟:(1'初始化DS18B20:(a) t先控制數(shù)據(jù)線,將其設(shè)置為高電平位“1”:(b) 然厲進(jìn)行延時(shí),延時(shí)的時(shí)間要盡雖的短,不過(guò)不要求特別精確和嚴(yán)格:(c) 接著再將數(shù)抓線祝為低電平“0”:(d) 陽(yáng)進(jìn)行延時(shí)操作,延時(shí)的時(shí)何大致在480微秒到960微秒左右:(e) 將數(shù)據(jù)線拉回到高電平位“1”:(f) 延時(shí)等待.初始化成功時(shí),DS18B20將在1550毫秒間產(chǎn)生-個(gè)低電平“0”,這個(gè)電位的變化可以用來(lái)確定它的存在但是為了避免用序陷入死循環(huán),冋該限制延時(shí)等待的時(shí)間,進(jìn)行必要的超時(shí)控制:(g) 如果CPU讀到數(shù)擁線的低電平“0”麻,仍需耍進(jìn)行延

7、時(shí),延時(shí)的時(shí)間耍從數(shù)抑線拉到高電、“1”算起.也就是從第(e)步的時(shí)間算起,并11至少要480微抄:(h) 赧后以將數(shù)抑;線拉到高電平“L結(jié)束。(2) DS1SB20的寫操作:<a)數(shù)據(jù)線置低電平“0”:(b) 延時(shí)確定時(shí)何設(shè)鬥為小15微秒的值,例如為2微妙:(c) 發(fā)送字節(jié)按由低到高的順序,每次只發(fā)送一位:<d)延時(shí)一個(gè)大于60微秒的時(shí)何:<e)拉數(shù)據(jù)線到高電平,并延時(shí)一個(gè)小于15微秒的時(shí)何(可以設(shè)為2微秒):(f)重交上述<a)(f)的步驟.將所仃的了節(jié)都發(fā)送出£:<g)錄后將數(shù)據(jù)線拉至島電半.(3) DS1SB20的讀操作:(a)拉高數(shù)據(jù)線:<

8、;b)延時(shí)2微秒:<c)拉低數(shù)據(jù)線:<d)延時(shí)一個(gè)小于15微秒的時(shí)何.這里為2微秒:(e)拉高數(shù)據(jù)線,并設(shè)迓端口狀態(tài)為輸入狀態(tài):<f)延時(shí)4微秒.或冷是其他小于15微秒的時(shí)何:<g)通過(guò)讀取數(shù)抑;線來(lái)獲得一個(gè)狀態(tài)位,然后進(jìn)行敵拯處理:(h)延時(shí)70微秒,或者是其他-個(gè)處J:60120倣秒間的時(shí)間。4.3節(jié)點(diǎn)通信程序設(shè)計(jì)431節(jié)點(diǎn)之間數(shù)據(jù)傳送程序設(shè)計(jì)將監(jiān)測(cè)節(jié)點(diǎn)置于II標(biāo)水域,并把每個(gè)節(jié)點(diǎn)編號(hào)??际赖接捎谠趯?shí)際惜況卜.節(jié)點(diǎn)耍大面枳覆孟監(jiān)測(cè)的H標(biāo)水域,但是由于水流或者是風(fēng)向形響,W點(diǎn)位置會(huì)不斷的發(fā)生變動(dòng),所以監(jiān)測(cè)節(jié)點(diǎn)和匯聚卩點(diǎn)Z間的實(shí)際距離是否超過(guò)無(wú)線通信距離便成為數(shù)據(jù)佇息能

9、否成功接收的關(guān)鍵因索。為了解決物理趾離仃可能超過(guò)通佇趾離的惜況,本系統(tǒng)讓每個(gè)監(jiān)測(cè)節(jié)點(diǎn)都有轉(zhuǎn)發(fā)功能,這樣遠(yuǎn)距離的數(shù)據(jù)們息就可以多跳,經(jīng)過(guò)路由節(jié)點(diǎn)到達(dá)匯聚節(jié)點(diǎn),實(shí)現(xiàn)遠(yuǎn)距離的數(shù)據(jù)傳輸。節(jié)點(diǎn)通信數(shù)據(jù)流程圖如圖44增應(yīng)節(jié)點(diǎn)路由節(jié)點(diǎn)'林聚節(jié)點(diǎn)J圖4.4節(jié)點(diǎn)通信數(shù)據(jù)涼幹圖把毎個(gè)節(jié)點(diǎn)編號(hào),確定路由節(jié)點(diǎn)并將路由表'弓入相關(guān)節(jié)點(diǎn),節(jié)點(diǎn)正常匸作的時(shí)候,每個(gè)路由節(jié)點(diǎn)都把白己的ID以及父節(jié)點(diǎn)ID.溫度和電壓倍息廣播出去,同時(shí)其他監(jiān)測(cè)節(jié)點(diǎn)都在按照踣由表來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),最后數(shù)據(jù)轉(zhuǎn)發(fā)到匯聚節(jié)山由匯聚節(jié)點(diǎn)通過(guò)申11發(fā)送給服務(wù)器。同時(shí)隨著時(shí)間和節(jié)點(diǎn)相對(duì)位置的改變,能通過(guò)匯聚節(jié)點(diǎn)向路由節(jié)點(diǎn)發(fā)送新的路由表,建工新伯息傳輸

10、路徑.節(jié)點(diǎn)Z何的通伯模型如圖4.5:X1RHA*+二叫V二:9"*"V;:MhiiW冬MihW/di、亠林由節(jié)a路由節(jié)衣Miiiva樣由wa路由"點(diǎn)捋由審炷45貝有傳感功能的路由節(jié)點(diǎn)和匯鎖節(jié)點(diǎn)通信模型通過(guò)CC2430的射頻模塊發(fā)送數(shù)擁報(bào)文,傳輸?shù)臄?shù)據(jù)報(bào)文包含了節(jié)點(diǎn)的節(jié)點(diǎn)編號(hào),能盤狀態(tài)和溫度值伯息.未經(jīng)路由的報(bào)文格式如圖46所示,經(jīng)過(guò)路由的報(bào)文格式如圖47所示:FatherID:MyID:Temperature:1byte1byte6byteVoltage圖4.6末經(jīng)過(guò)路由的報(bào)文格式圖4.7經(jīng)過(guò)路由的報(bào)文格式LQI:FatherID:MyID:Tempentun.V

11、blageIVyteIVyteIVyte6Vyte所以我們可以淸晰的從上傳到上位機(jī)的數(shù)據(jù)們息中讀収到測(cè)址值還仃備節(jié)點(diǎn)的H體工作位息等,便r我們及時(shí)調(diào)整卩點(diǎn)位世以適應(yīng)ji體環(huán)境的變化,保證監(jiān)測(cè)數(shù)據(jù)的準(zhǔn)確性和可靠性。監(jiān)測(cè)"點(diǎn)z何數(shù)據(jù)傳送程丿?沒(méi)n流程圖如圖4&II由II由,z>II由i.ncin*;.ul號(hào).ricir>)編度.電用為佶34>出£羯:.£;.:A)'.為估MX遇怙H»«kflftn崔it/H£M«nA&lX*MUiAi«tt.AW«©Hlit

12、oAr*tf%i£Ul£圖4.8監(jiān)測(cè)15點(diǎn)之間數(shù)據(jù)傳送程序設(shè)計(jì)滅程圖可以G出監(jiān)測(cè)節(jié)點(diǎn)都具有路由轉(zhuǎn)發(fā)的功能ID號(hào)和路由衣都固化在硬件節(jié)點(diǎn)之中系統(tǒng)初始化之厲,測(cè)a到的數(shù)據(jù)信息就按照路由路徑在節(jié)點(diǎn)之間傳遞并到達(dá)匯聚節(jié)點(diǎn),通過(guò)串口得到數(shù)據(jù)侑息.43.2串口通信程序設(shè)計(jì)傷置于斥邊的匯聚節(jié)點(diǎn)通過(guò)無(wú)線接收到監(jiān)測(cè)水域內(nèi)監(jiān)測(cè)*點(diǎn)發(fā)送來(lái)的數(shù)擁佇息.將敵犯信息送至廿點(diǎn)fpu,I:位機(jī)通過(guò)串口讀収敵拯并作進(jìn)一步處理,實(shí)現(xiàn)整個(gè)數(shù)據(jù)的傳輸過(guò)程.圖4.9是匯聚節(jié)點(diǎn)接收轉(zhuǎn)發(fā)數(shù)據(jù)流程圖。WWHIt圖4.9匯聚節(jié)點(diǎn)接收轉(zhuǎn)發(fā)數(shù)據(jù)滅程圖匯聚節(jié)點(diǎn)接收到水域內(nèi)監(jiān)測(cè)節(jié)點(diǎn)的數(shù)據(jù)們息后上傳至上位機(jī),匯聚節(jié)點(diǎn)將數(shù)據(jù)們息發(fā)送到

13、弗口的程序如卜:voidDataToPort(UINT8*pBuf)UINT8*buf,UINT8temBufll;UINT81;if(byte)osal_strien(pBuf)=10)teniBuffOla1;foi(i=l;i<=10,i+)tcniDuf(i-pDufi-l;buf=teniBuf,definedMT_TASK)debug_sti(iunt8*)buf);#enchf)上位機(jī)和匯聚節(jié)點(diǎn)通過(guò)九針出口相連在匯聚節(jié)點(diǎn)接收到監(jiān)測(cè)節(jié)點(diǎn)的數(shù)據(jù)們息并將伯息送至弗口處后,由上位機(jī)對(duì)串口數(shù)據(jù)進(jìn)行讀取,從而得到監(jiān)測(cè)數(shù)據(jù).上位機(jī)對(duì)笊口數(shù)據(jù)讀取程庁如卜:publicpartialclas

14、sL1通SystemWebUI.PageprotectedvoidPage_Load(objectsender,EveiitArgse)Portlnfosportinfos=newPortinfos();protectedvoidSendbtn_Click(objectsender,EventArgse)Portinfoportinfo=newPortlnfo();portinfoPortName=tlusPortName.Text,portinfoBaiuidRate=ConveilTolnt32(tlusBaudRateText);portinfoDataBits=ConvertToInt

15、32(thisDataBitsText);portinfoStopBits=Convert.Tolnt32(thisstopBitsText);portinfoData=thisDataText;portinfosadd(portinfo)tPortSendportsend=newPortsend(),portsend.Send(portinfos).現(xiàn)實(shí)環(huán)境卜.我們要隨著節(jié)點(diǎn)的實(shí)際位進(jìn)情況更新路由表.以保證數(shù)據(jù)能夠正常的在系統(tǒng)內(nèi)傳輸.所以監(jiān)測(cè)節(jié)點(diǎn)和匯聚節(jié)點(diǎn)要能實(shí)現(xiàn)雙向通伯.-旦判斷霸要更新路由表.我們可以通過(guò)W聚肖點(diǎn)的無(wú)線發(fā)送讓監(jiān)測(cè)節(jié)點(diǎn)收到收到新的路由佔(zhàn)息.匯聚節(jié)點(diǎn)向路由節(jié)點(diǎn)發(fā)送路由表程序流

16、程圖設(shè)計(jì)如圖410:1f1mar*tnxrY4.10匯寨卩點(diǎn)向路由傳點(diǎn)發(fā)送路由山榨序流程圖4.4節(jié)點(diǎn)分簇算法設(shè)計(jì)根據(jù)上文介紹的本系統(tǒng)節(jié)點(diǎn)之何通伯特點(diǎn)每個(gè)節(jié)點(diǎn)都有轉(zhuǎn)發(fā)能力.路由節(jié)點(diǎn)會(huì)收到匯聚節(jié)點(diǎn)發(fā)送的新路宙表,實(shí)現(xiàn)動(dòng)態(tài)擠撲.如何很據(jù)節(jié)點(diǎn)在監(jiān)測(cè)水域的實(shí)際惜況確定新的路由農(nóng)就是保證系統(tǒng)數(shù)據(jù)傳輸穩(wěn)定的一頂遺要壞節(jié).本課題中.設(shè)計(jì)了一種分簇算法,對(duì)網(wǎng)絡(luò)進(jìn)行分簇,選取簇頭卩點(diǎn),為每個(gè)卩點(diǎn)構(gòu)造路由表,并將執(zhí)行算法Z/H的網(wǎng)絡(luò)拓?fù)淦燥@示.算法介紹實(shí)驗(yàn)開始前.要先行測(cè)S:被測(cè)水域的大小參數(shù).將節(jié)點(diǎn)成長(zhǎng)方形的分布置于H標(biāo)水域,如圖4.11所示。我們已知的卄點(diǎn)佇息包括:卩恵編號(hào)(SensorNumber),&qu

17、ot;點(diǎn)坐標(biāo)(CoordinateX.CoordinateY)fll疔點(diǎn)剩余能址(DumpEnergy),在執(zhí)行完算法之后,我們能夠紂到:"點(diǎn)所在簇的編(ArealD),卩點(diǎn)和色(IsHead)和宵點(diǎn)路由衷(由父巧點(diǎn)編兮Father.子節(jié)點(diǎn)編號(hào)Children組成).步狠1:首先根據(jù)地理位置分簇.如圖所示分成四個(gè)三角形根據(jù)肖點(diǎn)位置坐標(biāo)劃分節(jié)點(diǎn)所在區(qū)域.対ArealD賦值劃分式如圖412所示./®0O/O/KI.圖412對(duì)監(jiān)測(cè)區(qū)城分塊選聯(lián)匯聚節(jié)點(diǎn)為坐標(biāo)原點(diǎn).建芷坐標(biāo)軸,劃分節(jié)點(diǎn)分傷的業(yè)形區(qū)域.如圖所示:CoordinateY>=0IW域0:CoorchnateX<

18、0&&CoorclinateY/CoordinateX>=-2W/L區(qū)域1:CoorclinateX<0&&CoordinateY/CoordinateX<-2W/L區(qū)域2:CoorchnateX>=0&&CoordinateY/CoordinateX>2W/L域3:CoorclinateX>0&&CoordinateY/CoordinateX<=2W/L步驟2:為毎個(gè)子區(qū)域選取簇頭節(jié)點(diǎn),選取簇頭節(jié)點(diǎn)的標(biāo)準(zhǔn)是:根據(jù)節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離對(duì)該區(qū)域的節(jié)點(diǎn)進(jìn)行排序.次序在范N/3+1.2N/3+1的節(jié)點(diǎn)作為泯選第頭.即根擁節(jié)點(diǎn)到汗聚節(jié)點(diǎn)的距離選擇中何段的節(jié)點(diǎn)作為該簇的候選簇頭(2)選取候選節(jié)點(diǎn)中倒余能呈赧髙的節(jié)點(diǎn)作為簇頭.步驟3:為毎個(gè)節(jié)點(diǎn)構(gòu)造路由表,對(duì)Father和Children賦值具體過(guò)程為:對(duì)于簇成員節(jié)點(diǎn)I.如'4

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論