宋遇刚 尹飞 朱文亮
摘 要:水文、水资源通讯规约通信规约中数据的准确传输得益于CRC校验,同时此校验也保证了数据传输的完整性。文章介绍了循环冗余校验(CRC)原理,并以实例阐述了它在水文、水资源项目工程中数据准确传输的重要作用。
关键词:CRC算法;CRC校验原理;数据传输
中图分类号:TP301.6 文献标志码:A 文章编号: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
引言
计算机串口通信中,为了保证数据传输准确,一般采用奇偶校验法和纠错校验等方法进行校验。在一些通信安全较高的场合中,上述的方法还不足以满足要求,需要采用CRC校验原理进行校验。
随着通信领域的快速发展,数据传输的可靠性、准确性显得尤为重要,为了保证数据在传输过程中的准确无误,既需要可靠的硬件电路,又要有查错检查机制支持。水利信息化建设的基础是水文、水资源现代化建设,信息传输是水利信息化的重要基础之一,在信息传输过程中通信规约在保障监测系统安全运行中起着极大作用,而CRC校验又是整个规约中数据安全传输的关键所在,保证了数据的准确性和完整性[1]。在实际应用中,相比于LRC,CRC校验由于实现简单、检错能力强、占用系统资源少、用软硬件都便于实现,从而得到了广泛应用[2-3]。
1 CRC校验原理
CRC校验的基本原理是基于串行数据传输的长除法,即将发送的信息左移若干位,然后与生成多项式进行模2除法,即按位进行异或计算,得到的余数即为CRC校验信息[4]。
如果接收码没有出现误码,接收码应当等于上式中发送的码T(x),此时接收码可以被生成多项式G(x)整除,反之,若无法整除,则在传输中发生误码。另外在信息传输中还有一种校验方法,CRC码直接被用于监测通信过程中的误码。传输数据期间,发送端计算每个数据块的CRC码,数据块发送完毕后,CRC校验码也发送出去,接收端同样的生成多项式处理接收到的数据块,若接收到的数据无误,则接收端计算得到的CRC码应当和发送端的CRC码一致[5]。
2 CRC校验在工程中的应用实例
在江苏省东海县沭新灌区项目中,无论是水位、闸位、流量、图片等每个重要数据上传至服务器过程中进行CRC校验,从而保证了数据的准确性,此次测试利用软件Keil uVision5,配合MSO-MC3智能遥测终端机进行了多次测试,以摄像头拍照为例,如图1、图2、图3所示。
通过实验结果看出,由于将图1中CRC校验代码注释后,导致了图片数据的不完整,如图2、3所示,以至于摄像头拍到的照片在服务器端无法还原。
3 结束语
数据的准确传输是项目工程中的关键一环,应该深刻认识到CRC校验对保证数据准确传输起到的重要作用,加强数据的准确传输则是提高工程质量的重要步骤。
参考文献:
[1]崔彦坤,马萌.CRC校验算法的设计与实现[J].计算机与网络,2019,45(01):66-68.
[2]譚明新,李瑞,余英,等.CRC检错探究[J].科技创业月刊,2006(11):202-204.
[3]张平安.16位循环冗余校验码(CRC)的原理和性能分析[J].山西科技,2005(05):129-131.
[4]肖艳艳,何晓雄.基于FPGA的CRC算法的串行和并行实现[J].合肥工业大学学报:自然科学版,2016(39):1366.
[5]朱正鹏,朱旭锋,李宾,等.一种位宽可变的CRC校验算法及硬件实现[J].航天控制,2019,037(002):42-48.
[6]王鹏.基于Modbus协议的数据采集系统的研究[D].合肥工业大学2019.