摘要:討論了在自報式水情無線遙測系統(tǒng)數(shù)據(jù)通信中進行快速差錯校驗的必要性,給出了經(jīng)過實驗檢驗、可行的軟件快速校驗方法,并比較了它們的優(yōu)劣與適應(yīng)的場合。
關(guān)鍵詞:CRC 漢明碼 水情遙測 數(shù)據(jù)通信 差錯校驗
將測站的實時水情數(shù)據(jù)(水位、閘位、雨量等)準(zhǔn)確無誤地發(fā)送到中心站,提供給水文洪水預(yù)報、洪水調(diào)度、防洪排澇決策等高一級系統(tǒng),是水情遙測系統(tǒng)最基本、最重要的功能之一。水情遙測系統(tǒng)是一個軟硬件綜合系統(tǒng)。其基本工作流程是:在測量端(測站)完成水情參數(shù)的采集與處理(信源編碼、存儲記錄、信道編碼等),然后將處理過的數(shù)據(jù)通過無線或有線信道直接或經(jīng)中繼發(fā)送至遠(yuǎn)端的中心站,由中心站進行接收解碼并作進一步處理。圖1為水情無線遙測系統(tǒng)結(jié)構(gòu)示意圖。測站和中繼站的主控設(shè)備一般采用單片機,用匯編語言編程;而中心接收端主機一般采用微型機,用C語言(或其它高級語言)編程。
水情遙測系統(tǒng)的報汛方式一般有三種:定時自報式、查詢-應(yīng)答多和混合式(自報和查詢-應(yīng)答兼容)。三種報汛方式兼有長短。
綜合考慮系統(tǒng)功耗、可靠性、復(fù)雜性等要素,定時自報方式在水情遙測系統(tǒng)中仍占主流。其優(yōu)點是:功耗極低(值守狀態(tài)<50μA@+12V,大多以蓄電池供電),系統(tǒng)結(jié)構(gòu)簡單,可靠性較高;缺點是無法實現(xiàn)反饋重發(fā)、反傳校驗等差錯控制。顯然,需要選擇一種合適的有差錯校驗方法。
水情遙測系統(tǒng)的數(shù)據(jù)通信方式可分為超短波通信、微波通信、衛(wèi)星通信、移動通信、有線通信等。因其遙測站點常建于交通不便、供電及有線通信條件不足的地區(qū),基于建設(shè)成本及運行費用等考慮,數(shù)據(jù)通信仍以無線超短波通信為主要方式。
在無線數(shù)據(jù)通信過程中,即使信道質(zhì)量良好,但由于信號衰減、失真,特別是某些突發(fā)性的干擾(如雷電,電磁輻射)不可避免地會發(fā)生數(shù)據(jù)誤傳,即誤碼。根據(jù)水情遙測系統(tǒng)的相關(guān)規(guī)范,超短波數(shù)據(jù)傳輸?shù)恼`碼率應(yīng)小于10 -4,以及在每個數(shù)據(jù)收集周期平均應(yīng)有90%以上測站(重點控制站必須包括在內(nèi))能準(zhǔn)確傳送數(shù)據(jù)至中心站。因此采取適當(dāng)?shù)牟铄e控制方法,提高數(shù)據(jù)傳輸?shù)目煽啃院苡斜匾。常用的差錯控制方法分軟件和硬件方式。最簡單的是由器件直接實現(xiàn)奇偶校驗方式,它占用10%的時間,只檢出奇數(shù)個位出錯。據(jù)檢測,在電話網(wǎng)中以1200波特率傳輸數(shù)據(jù)時,若采用奇偶校驗方式,仍會有40%的錯誤不能檢出,這對水情遙測顯示是不夠的。欲對包括中繼在內(nèi)的每一個站實行碼校驗,還要求所選校驗方式具有高檢出率、速度快、編碼簡單等特點。常見的方式有漢明碼、循環(huán)冗余校驗(CRC)等,雖然這些校驗方式也可由硬件實現(xiàn),但人們角傾向于采用簡單經(jīng)濟又具靈活性的軟件校驗。以下結(jié)合工作實際給出經(jīng)驗證可行的快速校驗方式,并比較了它們的優(yōu)劣。文中所涉及到的程序算法均以C語言的形式給出,而將其轉(zhuǎn)變成單片機的算法也不難。
1 CRC校驗
CRC(Cyclical Redundancy Check)校驗,又稱循環(huán)冗余校驗,具有極強的檢錯能力(不能糾錯),算法簡單。早期用硬件電路直接搭成,但軟件方法成本更低,實現(xiàn)更簡單,運算速度也很快。16位的CRC檢錯率如表1所示[1]。
表1 16位的CRC檢錯率
| 單位個位錯誤 | 雙位錯誤 | 奇數(shù)個位錯誤 | 比16位短的突出性錯誤 | 恰好17位的突發(fā)性錯誤 | 其他所有突發(fā)性錯誤 |
| 100% | 100% | 100% | 100% | 99.9969% | 99.9984% |
常用的16位CRC多項式有兩種:一種是CRC-CCITT標(biāo)準(zhǔn),在微機通信的XMODEM協(xié)議中得到了應(yīng)用;另一種是CRC-16標(biāo)準(zhǔn),它實際捕獲錯誤的能力不如CRC-CCITT,在IBM的二進制同步協(xié)議(BYSYNC)的數(shù)據(jù)傳送中應(yīng)用已久。兩者采用的多項式如表2所示,本文采用前者。
表2 常用的16位CRC多項式
| 生成多項式的值(genpoly) | 本原多項式表示 | 標(biāo) 準(zhǔn) |
| 1021H F005H | X 16+X 12+X 5+1 X 16+X 15+X 2+1 | CRC-CCITT CRC-16 |





