CRC校验码计算

CRC校验码计算

【引言】

在数据传输中,无论传输系统设计的再怎么完美,差错总会存在,这种差错可能会导致在链路上传输的一个或者多个帧被破坏(出现比特差错,0变为1或者1变为0),从而导致接收方接收到错误的数据。

在数据存储和数据通讯领域,为了保证数据的正确,就不的不采用检错的方法,常见的检测方法有:奇偶校验、因特网校验和循环冗余校验等。

循环冗余校验(Cyclic Redundancy Check,CRC)是一种用于校验通信链路上数字传输准确性的计算方法。

其方法是:发送方计算机使用某公式计算出被传送数据所含信息的一个值,并将此值附在被传送数据后,接受方计算机则对同一数据进行计算,应该得到相同的结果,若这两个 CRC 结果不一致,则说明发送中间出出现了差错,接收方计算机可以要求发送方计算机重新发送该数据。

其特点是:检错能力强,开销小,易于用编码器及检测电路实现。从检错的正确率与速度、成本等方面,都比奇偶校验等校验方式具有优势,故 CRC 成为计算机信息通信领最为普遍的校验方式。著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC-CCITT,WinRAR、NERO、ARJ、LHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。

以下是计算CRC校验码的方法。

【例题】

采用 CRC 进行差错校验,生成多项式为 G(x) = x^4 + x + 1 ,信息码字为 10111,则计算出的 CRC 校验码是:

解:根据题意得:

G(x) = x^4 + x + 1 对应的二进制序列为 10011,循环冗余校验的计算方法为(按位异或运算)

1.png

所以,最终计算出的 CRC 校验码是 01100。

【结果】

循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2020-11-10 10:50:04

修改时间:2020-11-10 10:50:04

查看次数:34

评论次数:0