基于無(wú)線傳感網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(一)
1.3 校正處理
無(wú)線傳感器節(jié)點(diǎn)因受環(huán)境因素較大,故在用接收到的RSSI 值進(jìn)行計(jì)算前因先進(jìn)行RSSI值校正處理。首先,設(shè)定RSSI 取值的最小和最大臨界值,當(dāng)實(shí)驗(yàn)測(cè)量到的RSSI 值遠(yuǎn)遠(yuǎn)小于最小臨界值則令其等于最小臨界值,或者RSSI 遠(yuǎn)遠(yuǎn)大于最大臨界值時(shí)則令其等于最大臨界值,如果RSSI 和臨界值相差不大,則根據(jù)從實(shí)驗(yàn)過(guò)程中得到的經(jīng)驗(yàn)對(duì)該RSSI 值進(jìn)行適當(dāng)校正,使該RSSI 值回到臨界區(qū)域內(nèi)部。
1.4 濾波
第一步:設(shè)定RSSI 的期望值,如式(3)式所示:
其中, R 0 是預(yù)期的RSSI 值,R 是實(shí)際得到的RSSI 值, R 1 是前一次得到的RSSI 值,R2是在此之前的第二次得到的RSSI 值,α、β、γ 分別是R, R1 , R2 在期望值中所占的權(quán)重,分別將其設(shè)置為0.6,0.25,0.15。
第二步:設(shè)定閾值,閾值是在大量實(shí)驗(yàn)基礎(chǔ)上進(jìn)行總結(jié)再設(shè)定的,該系統(tǒng)中設(shè)為0.5。
第三步:除噪,若期望值0 R 和當(dāng)前值R 差的絕對(duì)值小于設(shè)定的閾值,就讓令上一次的值作為當(dāng)前值,R= 1 R ,同時(shí)2 R = 1 R;若期望值和當(dāng)前值差的絕對(duì)值已經(jīng)大于閾值,則令期望值作為當(dāng)前值,R= R 0 ,同時(shí), R2 = R 1 , R 1 = R 0 ;實(shí)驗(yàn)結(jié)果表明:通過(guò)以上濾波處理,不僅減小了節(jié)點(diǎn)不穩(wěn)定帶來(lái)的軌跡震蕩,節(jié)點(diǎn)的軌跡變化曲線更加趨于平緩。
1.5 串口數(shù)據(jù)提取
在串口通信協(xié)議中一個(gè)串口通信數(shù)據(jù)幀的格式如圖5所示:
圖5 串口通信數(shù)據(jù)幀的格式
Sync 是一個(gè)數(shù)據(jù)幀的起始和結(jié)束標(biāo)志符,用0x7E 來(lái)表示該標(biāo)志符。緊跟在起始Sync后面的是Type標(biāo)志符。CRC用來(lái)表示冗余校驗(yàn)碼,其中,參與冗余校驗(yàn)的字段為TOS MsgHeader 和Payload,這兩個(gè)字段存放的是網(wǎng)關(guān)收到的一個(gè)傳感器節(jié)點(diǎn)發(fā)出的完整的路由包。
最后面的一個(gè)Sync 用來(lái)表示幀的結(jié)束。
在實(shí)驗(yàn)過(guò)程中,串口接收到的原始數(shù)據(jù)如圖6 所示:
圖6 串口原始數(shù)據(jù)
通過(guò)對(duì)上表中數(shù)據(jù)分析得知:表中第一條數(shù)據(jù)中0x7E 表示一個(gè)數(shù)據(jù)幀的起始,0x42 表示一個(gè)數(shù)據(jù)幀的Type,不要求接收方對(duì)發(fā)送方回復(fù)一個(gè)確認(rèn)包。從第二行第五個(gè)數(shù)據(jù)開(kāi)始時(shí)對(duì)上層應(yīng)用有用的字段,在進(jìn)行上層開(kāi)發(fā)時(shí),可以從該處提取出串口中的數(shù)據(jù),其中0x0100,表示數(shù)據(jù)包的ID 號(hào),緊跟其之后的是兩個(gè)字節(jié)0x3A00 表示接收到的數(shù)據(jù)包的序列號(hào),接下來(lái)的0x 0200 表示錨節(jié)點(diǎn)的ID 號(hào)為2,0x0500 表示Move 節(jié)點(diǎn)的ID 號(hào)為5,0x0800 表示從2 號(hào)錨節(jié)點(diǎn)獲取到的5 號(hào)Move 節(jié)點(diǎn)的RSSI 值為8, 接下來(lái)的0x 0300 表示錨節(jié)點(diǎn)的ID號(hào)為3,0x0500 表示Move 節(jié)點(diǎn)的ID 號(hào)為5,0x0C00 表示從3 號(hào)錨節(jié)點(diǎn)獲取到的5 號(hào)Move節(jié)點(diǎn)的RSSI 值為0x0C, 接下來(lái)的0x 0400 表示錨節(jié)點(diǎn)的ID 號(hào)為4,0x0500 表示Move 節(jié)點(diǎn)的ID 號(hào)為5,0xF800 表示從4 號(hào)錨節(jié)點(diǎn)獲取到的5號(hào)Move節(jié)點(diǎn)的RSSI值為0Xf8,接下來(lái)的F207FE 為CRC 字段,最后一個(gè)7E 為數(shù)據(jù)幀的結(jié)束字段。通過(guò)以上分析,可以快速?gòu)拇谕ㄐ艛?shù)據(jù)中提取所需的字段,為上層開(kāi)發(fā)奠定基礎(chǔ)。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)架構(gòu)
系統(tǒng)由底層(硬件層),中間層(串口消息解析層),上層(數(shù)據(jù)處理層)系統(tǒng)的構(gòu)架如圖7所示。
圖7 系統(tǒng)架構(gòu)
評(píng)論