RAS Technology

RAS Technology

三文搞定CRC – CRC3

CRC(循环冗余校验,Cyclic Redundancy Check)是一种通过添加冗余位来检测数据传输过程中是否发生错误的技术。其基本思想类似除法运算,将原始数据与一个固定的“除数”或“生成多项式”进行运算,得出的“余数”即为校验码。发送方将数据与校验码一并发送,接收方用相同的方法重新计算校验码,若一致则认为数据未损坏。文章通过十进制到二进制的转换演示了校验原理,指出实际中采用异或(XOR)替代传统减法以简化硬件实现。通过选择不同的多项式(如 1011 表示 X³ + X + 1),可检测各种错误位翻转的情况。进一步分析还揭示如何设计多项式以增强对连续多位错误的检测能力,例如使用不能被 X+1 整除的多项式来识别相邻两位错误。这种机制广泛用于网络通信、存储设备和数字协议中,是现代数据完整性保障的重要手段之一。

RAS Technology

三文搞定CRC – CRC16

在深入理解CRC16前,推荐先浏览Koopman教授的网站,了解他对CRC二项式的研究成果。CRC16的核心在于用特定多项式对数据进行二进制长除,计算出校验码以检测数据传输中的误码。文章通过“Helo!”字符串演示CRC16的计算过程,并结合电路设计,解释如何通过线性移位寄存器实现该算法。此外,还提供了Python与SystemVerilog实现代码,适合软件与硬件开发者参考。

Scroll to Top