以太网的CRC校验
时间:10-02
整理:3721RD
点击:
需要做以太网的CRC校验,用并行32CRC,各位看我说的对不对。接受到32位数据,求一次CRC,再将此次的CRC与下一个32bit异或得到新的数据,在求新数据的CRC,一次类推,是这样吗?
C语言程序输出:
不太正确。应该是,先把每个数据包的第一个32位数据求反,然后求得整个包的CRC。最后把这个结果求反。
第一个32位数据求反,可以用CRC的初值设为32'hFFFFFFFF来实现。
因此可以这样处理:
把CRC的初值设为32'hFFFFFFFF,算第一个8位数据的CRC;以这个结果为初值算下一个8位数据的CRC。如此往复。处理完一个数据包后,把这个结果求反。
没错
从某博客找到一个数据包(橙黄色的是CRC),验证了一下我在2楼的描述。
C语言程序输出:
66666,谢了
