在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9220|回复: 19

[求助] crc实现

[复制链接]
发表于 2013-6-6 11:30:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
0XAA,0X55用crc校验器计算的crc的值分别是:E401A57B,C9034AF6。但是我用网络上的crc代码生成器生成的代码仿真计算的crc的值跟计算器算出的值不同,感觉代码生成的应该不会有错,难道我要在生成之前要做一些重要的设置不对吗。我用的是以太网的crc32标准,8位数据宽度。easic网站上只是设置校验的crc标准和数据宽度,有些其他网站上也与代码生成,不过还要设置LSB,MSB和初值什么的,难道哪些也要设置吗?如果要符合以太网的帧校验,生成的代码要注意什么重要的设置啊????急死人啦!!!!
发表于 2013-6-6 12:04:52 | 显示全部楼层
不一样最大的可能是用的多项式不一样

你查一下你的计算器用的多项式是多少

网上的代码生成器应该没有问题,我们一直用。
发表于 2013-6-6 12:21:24 | 显示全部楼层
本帖最后由 加油99 于 2013-6-6 12:22 编辑

crc32要以4字节为单位计算.用0xAAAAAAAA,0x55555555试一试。
 楼主| 发表于 2013-6-6 14:45:08 | 显示全部楼层
回复 3# 加油99


    您好,按您说的做了,定制crc32校验的代码用4字节的数据宽度,不过要对输入数据和输出的crc的值进行处理!仿真得到正确的数据(前提是我用的crc计算器算得是正确的值)!疑问的是定制crc校验的代码时候是可以设置数据宽度的,为什么用4字节的数据输入才能算出正确的结果而1字节的数据输入就得不到正确的结果呢?请您指点!!!

crc仿真

crc仿真
 楼主| 发表于 2013-6-6 15:56:15 | 显示全部楼层
回复 2# warmheard


    哪您的crc32校验生成的代码的数据输入位宽用的是多少位的宽度啊?八位宽的数据输入校验行吗?
发表于 2013-6-7 11:34:24 | 显示全部楼层
回复 4# 574920045


    我在3楼的说法不正确,应该说任何位宽都是可以的。
建议你看看两种算法的多项式是否一致。
发表于 2013-6-7 14:18:37 | 显示全部楼层



1bit 8bit 32bit的我都用过,1bit主要用于串行输入的数据,8和32主要用于并行输入的数据
各种位宽的crc算法和生成代码的复杂度是不一样的。

有一点要注意,不管用那中位宽,crc都支持数据流的校验,即数据很多,但校验位只用32bit
 楼主| 发表于 2013-6-7 14:32:11 | 显示全部楼层
回复 6# 加油99


    嗯,数据宽度应该是可以设置的!!!
 楼主| 发表于 2013-6-7 14:36:36 | 显示全部楼层
回复 7# warmheard


    不知道您是哪个网站生成的硬件代码,我的是OutputLogic.com生成的代码,不过要对代码的输入数据和计算的crc值都要进行位的相关操作,如颠倒位置和取反等才能输出对应数据的正确crc的校验值,不知道您有没有进行相关处理,您知道为什么要进行这些操作????
发表于 2013-6-7 16:04:58 | 显示全部楼层
本帖最后由 warmheard 于 2013-6-7 16:08 编辑

回复 9# 574920045

http://www.easics.com/webtools/crctool

我没有做你说的颠倒位置取反等操作,这个你要问问设计的认了,你们是不是在CRC之前做了什么预处理
CRC本身不需要做这些

也可能是某个协议规定的大小端,你做crc必须遵从
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 00:54 , Processed in 0.050487 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表