基于無(wú)線傳感器網(wǎng)絡(luò)的橋梁監(jiān)測(cè)系統(tǒng)研究
5.1 CTP協(xié)議的實(shí)現(xiàn)
CTP協(xié)議是基于樹(shù)的多跳協(xié)議。把網(wǎng)絡(luò)中的節(jié)點(diǎn)抽象為樹(shù),每棵樹(shù)有一個(gè)根節(jié)點(diǎn), 負(fù)責(zé)收集這棵樹(shù)所有節(jié)點(diǎn)的信息。網(wǎng)絡(luò)中節(jié)點(diǎn)通過(guò)路由梯度值(ETX)逐跳地選擇路由, 直至到達(dá)根節(jié)點(diǎn)。根節(jié)點(diǎn)的ETX為0, 每個(gè)子節(jié)點(diǎn)的ETX值等于父節(jié)點(diǎn)的ETX值加上該節(jié)點(diǎn)到它父節(jié)點(diǎn)的路徑ETX值。因此, ETX值是沿著往根節(jié)點(diǎn)的方向遞減的, CTP選擇路徑ETX值最小的路徑作為路由。
CTP的實(shí)現(xiàn)是基于下層鏈路估計(jì)結(jié)果的。鏈路估計(jì)會(huì)維護(hù)一個(gè)鄰節(jié)點(diǎn)表, 表中存儲(chǔ)了每個(gè)鄰節(jié)點(diǎn)的路徑ETX 值。CTP協(xié)議中的CtpRoutingEngine 組件實(shí)現(xiàn)了路由的選擇, 它根據(jù)鄰節(jié)點(diǎn)的ETX值為數(shù)據(jù)傳輸選擇下一個(gè)路由。另一個(gè)關(guān)鍵的組件函數(shù)CtpForwardingEngine, 該組件主要是維護(hù)一個(gè)消息發(fā)送隊(duì)列, 往下層發(fā)送本地產(chǎn)生的或者轉(zhuǎn)發(fā)過(guò)來(lái)的數(shù)據(jù)包; 該組件還能夠檢測(cè)重復(fù)發(fā)送的數(shù)據(jù)包, 以抑制重復(fù)發(fā)包。
實(shí)現(xiàn)的四個(gè)關(guān)鍵函數(shù)是: 數(shù)據(jù)包接收(SubReceive.receive())、數(shù)據(jù)包轉(zhuǎn)發(fā)(forward())、包傳輸(sendTask())和發(fā)送完成事件(SubSend.sendDone())。
函數(shù)SubReceive.receive ()決定是否要轉(zhuǎn)發(fā)包。通過(guò)維護(hù)一個(gè)最近收到的包緩存來(lái)檢查是否有重復(fù)包。如果判定一個(gè)包不是重復(fù)包, 則調(diào)用forward()函數(shù)。
forward()函數(shù)封裝好要發(fā)送的包。這個(gè)函數(shù)同時(shí)檢查是否有回環(huán)。發(fā)送時(shí)將包放到發(fā)送隊(duì)列中去, 若隊(duì)列滿了, 就丟棄該包, 并把C位置1。如果隊(duì)列為空, 則立即post 發(fā)送任務(wù)。
sendTask()檢查發(fā)送隊(duì)列頭部的數(shù)據(jù)包, 封裝好后提交給AM層。發(fā)送完成后, sendDone()函數(shù)檢查發(fā)送的結(jié)果。如果該數(shù)據(jù)包已經(jīng)被確認(rèn)過(guò)了, 則將該包從隊(duì)列中取出。如果是本地的包, 發(fā)送事件通知給上層的客戶。如果是轉(zhuǎn)發(fā)來(lái)的包, 則將它放到轉(zhuǎn)發(fā)消息池中。如果隊(duì)列中還有包的話, 就啟動(dòng)一個(gè)隨機(jī)時(shí)鐘, 重新post發(fā)送任務(wù)。
5.2 LEEP協(xié)議的實(shí)現(xiàn)
LEEP 是一種鏈路估計(jì)交換協(xié)議, 主要是用來(lái)計(jì)算某節(jié)點(diǎn)與鄰節(jié)點(diǎn)之間的雙向鏈路質(zhì)量。節(jié)點(diǎn)A→B的鏈路質(zhì)量是指B成功接收到A發(fā)送的數(shù)據(jù)包的概率。節(jié)點(diǎn)(A, B)間的雙向鏈路質(zhì)量是A→B的鏈路質(zhì)量(in-bound 鏈路質(zhì)量)與B→A的鏈路質(zhì)量(out-bound 鏈路質(zhì)量) 的乘積。
6 結(jié)束語(yǔ)
基于無(wú)線傳感器網(wǎng)絡(luò)的橋梁結(jié)構(gòu)健康監(jiān)測(cè)系統(tǒng),我們對(duì)傳感器節(jié)點(diǎn)的設(shè)計(jì)和支持系統(tǒng)運(yùn)行的嵌入式操作系統(tǒng)TinyOS的移植問(wèn)題進(jìn)行了研究。還有兩個(gè)問(wèn)題需要進(jìn)一步深入研究,一個(gè)是傳感器網(wǎng)絡(luò)的休眠節(jié)能技術(shù)需要解決網(wǎng)絡(luò)各節(jié)點(diǎn)的同步問(wèn)題;第二個(gè)問(wèn)題是建立橋梁結(jié)構(gòu)健康*估專家系統(tǒng),能夠根據(jù)傳感器網(wǎng)絡(luò)匯總的大量橋梁結(jié)構(gòu)信息作出準(zhǔn)確的分析判斷,從而實(shí)現(xiàn)事故預(yù)報(bào)警,預(yù)防突發(fā)性災(zāi)難,確保橋梁安全。
光纖傳感器相關(guān)文章:光纖傳感器原理
評(píng)論