宋遇剛 尹飛 朱文亮
摘? 要:水文、水資源通訊規(guī)約通信規(guī)約中數(shù)據(jù)的準(zhǔn)確傳輸?shù)靡嬗贑RC校驗(yàn),同時(shí)此校驗(yàn)也保證了數(shù)據(jù)傳輸?shù)耐暾?。文章介紹了循環(huán)冗余校驗(yàn)(CRC)原理,并以實(shí)例闡述了它在水文、水資源項(xiàng)目工程中數(shù)據(jù)準(zhǔn)確傳輸?shù)闹匾饔谩?/p>
關(guān)鍵詞:CRC算法;CRC校驗(yàn)原理;數(shù)據(jù)傳輸
中圖分類(lèi)號(hào):TP301.6? ? ? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號(hào):2095-2945(2020)29-0039-02
Abstract: The accurate transmission of data in the communication protocol of hydrology and water resources benefits from CRC verification, which also ensures the integrity of data transmission. In this paper, the principle of cyclic redundancy check (CRC) is introduced, and its important role in accurate data transmission in hydrological and water resources projects is illustrated with examples.
Keywords: CRC algorithm; CRC verification principle; data transmission
引言
計(jì)算機(jī)串口通信中,為了保證數(shù)據(jù)傳輸準(zhǔn)確,一般采用奇偶校驗(yàn)法和糾錯(cuò)校驗(yàn)等方法進(jìn)行校驗(yàn)。在一些通信安全較高的場(chǎng)合中,上述的方法還不足以滿(mǎn)足要求,需要采用CRC校驗(yàn)原理進(jìn)行校驗(yàn)。
隨著通信領(lǐng)域的快速發(fā)展,數(shù)據(jù)傳輸?shù)目煽啃浴?zhǔn)確性顯得尤為重要,為了保證數(shù)據(jù)在傳輸過(guò)程中的準(zhǔn)確無(wú)誤,既需要可靠的硬件電路,又要有查錯(cuò)檢查機(jī)制支持。水利信息化建設(shè)的基礎(chǔ)是水文、水資源現(xiàn)代化建設(shè),信息傳輸是水利信息化的重要基礎(chǔ)之一,在信息傳輸過(guò)程中通信規(guī)約在保障監(jiān)測(cè)系統(tǒng)安全運(yùn)行中起著極大作用,而CRC校驗(yàn)又是整個(gè)規(guī)約中數(shù)據(jù)安全傳輸?shù)年P(guān)鍵所在,保證了數(shù)據(jù)的準(zhǔn)確性和完整性[1]。在實(shí)際應(yīng)用中,相比于LRC,CRC校驗(yàn)由于實(shí)現(xiàn)簡(jiǎn)單、檢錯(cuò)能力強(qiáng)、占用系統(tǒng)資源少、用軟硬件都便于實(shí)現(xiàn),從而得到了廣泛應(yīng)用[2-3]。
1 CRC校驗(yàn)原理
CRC校驗(yàn)的基本原理是基于串行數(shù)據(jù)傳輸?shù)拈L(zhǎng)除法,即將發(fā)送的信息左移若干位,然后與生成多項(xiàng)式進(jìn)行模2除法,即按位進(jìn)行異或計(jì)算,得到的余數(shù)即為CRC校驗(yàn)信息[4]。
如果接收碼沒(méi)有出現(xiàn)誤碼,接收碼應(yīng)當(dāng)?shù)扔谏鲜街邪l(fā)送的碼T(x),此時(shí)接收碼可以被生成多項(xiàng)式G(x)整除,反之,若無(wú)法整除,則在傳輸中發(fā)生誤碼。另外在信息傳輸中還有一種校驗(yàn)方法,CRC碼直接被用于監(jiān)測(cè)通信過(guò)程中的誤碼。傳輸數(shù)據(jù)期間,發(fā)送端計(jì)算每個(gè)數(shù)據(jù)塊的CRC碼,數(shù)據(jù)塊發(fā)送完畢后,CRC校驗(yàn)碼也發(fā)送出去,接收端同樣的生成多項(xiàng)式處理接收到的數(shù)據(jù)塊,若接收到的數(shù)據(jù)無(wú)誤,則接收端計(jì)算得到的CRC碼應(yīng)當(dāng)和發(fā)送端的CRC碼一致[5]。
2 CRC校驗(yàn)在工程中的應(yīng)用實(shí)例
在江蘇省東??h沭新灌區(qū)項(xiàng)目中,無(wú)論是水位、閘位、流量、圖片等每個(gè)重要數(shù)據(jù)上傳至服務(wù)器過(guò)程中進(jìn)行CRC校驗(yàn),從而保證了數(shù)據(jù)的準(zhǔn)確性,此次測(cè)試?yán)密浖﨣eil uVision5,配合MSO-MC3智能遙測(cè)終端機(jī)進(jìn)行了多次測(cè)試,以攝像頭拍照為例,如圖1、圖2、圖3所示。
通過(guò)實(shí)驗(yàn)結(jié)果看出,由于將圖1中CRC校驗(yàn)代碼注釋后,導(dǎo)致了圖片數(shù)據(jù)的不完整,如圖2、3所示,以至于攝像頭拍到的照片在服務(wù)器端無(wú)法還原。
3 結(jié)束語(yǔ)
數(shù)據(jù)的準(zhǔn)確傳輸是項(xiàng)目工程中的關(guān)鍵一環(huán),應(yīng)該深刻認(rèn)識(shí)到CRC校驗(yàn)對(duì)保證數(shù)據(jù)準(zhǔn)確傳輸起到的重要作用,加強(qiáng)數(shù)據(jù)的準(zhǔn)確傳輸則是提高工程質(zhì)量的重要步驟。
參考文獻(xiàn):
[1]崔彥坤,馬萌.CRC校驗(yàn)算法的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2019,45(01):66-68.
[2]譚明新,李瑞,余英,等.CRC檢錯(cuò)探究[J].科技創(chuàng)業(yè)月刊,2006(11):202-204.
[3]張平安.16位循環(huán)冗余校驗(yàn)碼(CRC)的原理和性能分析[J].山西科技,2005(05):129-131.
[4]肖艷艷,何曉雄.基于FPGA的CRC算法的串行和并行實(shí)現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2016(39):1366.
[5]朱正鵬,朱旭鋒,李賓,等.一種位寬可變的CRC校驗(yàn)算法及硬件實(shí)現(xiàn)[J].航天控制,2019,037(002):42-48.
[6]王鵬.基于Modbus協(xié)議的數(shù)據(jù)采集系統(tǒng)的研究[D].合肥工業(yè)大學(xué)2019.