無線傳感網(wǎng)絡(luò)(WSN)設(shè)計經(jīng)典參考實例(四)
1.4 濾波
第一步:設(shè)定RSSI 的期望值,如式(3)式所示:
其中, R 0 是預期的RSSI 值,R 是實際得到的RSSI 值, R 1 是前一次得到的RSSI 值,R2是在此之前的第二次得到的RSSI 值,α、β、γ 分別是R, R1 , R2 在期望值中所占的權(quán)重,分別將其設(shè)置為0.6,0.25,0.15。
第二步:設(shè)定閾值,閾值是在大量實驗基礎(chǔ)上進行總結(jié)再設(shè)定的,該系統(tǒng)中設(shè)為0.5。
第三步:除噪,若期望值0 R 和當前值R 差的絕對值小于設(shè)定的閾值,就讓令上一次的值作為當前值,R= 1 R ,同時2 R = 1 R;若期望值和當前值差的絕對值已經(jīng)大于閾值,則令期望值作為當前值,R= R 0 ,同時, R2 = R 1 , R 1 = R 0 ;實驗結(jié)果表明:通過以上濾波處理,不僅減小了節(jié)點不穩(wěn)定帶來的軌跡震蕩,節(jié)點的軌跡變化曲線更加趨于平緩。
1.5 串口數(shù)據(jù)提取
在串口通信協(xié)議中一個串口通信數(shù)據(jù)幀的格式如圖5所示:
圖5 串口通信數(shù)據(jù)幀的格式
Sync 是一個數(shù)據(jù)幀的起始和結(jié)束標志符,用0x7E 來表示該標志符。緊跟在起始Sync后面的是Type標志符。CRC用來表示冗余校驗碼,其中,參與冗余校驗的字段為TOS MsgHeader 和Payload,這兩個字段存放的是網(wǎng)關(guān)收到的一個傳感器節(jié)點發(fā)出的完整的路由包。
最后面的一個Sync 用來表示幀的結(jié)束。
在實驗過程中,串口接收到的原始數(shù)據(jù)如圖6 所示:
圖6 串口原始數(shù)據(jù)
通過對上表中數(shù)據(jù)分析得知:表中第一條數(shù)據(jù)中0x7E 表示一個數(shù)據(jù)幀的起始,0x42 表示一個數(shù)據(jù)幀的Type,不要求接收方對發(fā)送方回復一個確認包。從第二行第五個數(shù)據(jù)開始時對上層應用有用的字段,在進行上層開發(fā)時,可以從該處提取出串口中的數(shù)據(jù),其中0x0100,表示數(shù)據(jù)包的ID 號,緊跟其之后的是兩個字節(jié)0x3A00 表示接收到的數(shù)據(jù)包的序列號,接下來的0x 0200 表示錨節(jié)點的ID 號為2,0x0500 表示Move 節(jié)點的ID 號為5,0x0800 表示從2 號錨節(jié)點獲取到的5 號Move 節(jié)點的RSSI 值為8, 接下來的0x 0300 表示錨節(jié)點的ID號為3,0x0500 表示Move 節(jié)點的ID 號為5,0x0C00 表示從3 號錨節(jié)點獲取到的5 號Move節(jié)點的RSSI 值為0x0C, 接下來的0x 0400 表示錨節(jié)點的ID 號為4,0x0500 表示Move 節(jié)點的ID 號為5,0xF800 表示從4 號錨節(jié)點獲取到的5號Move節(jié)點的RSSI值為0Xf8,接下來的F207FE 為CRC 字段,最后一個7E 為數(shù)據(jù)幀的結(jié)束字段。通過以上分析,可以快速從串口通信數(shù)據(jù)中提取所需的字段,為上層開發(fā)奠定基礎(chǔ)。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)架構(gòu)
評論