打印

请教CRC-ITU查表法

[复制链接]
5063|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wsdcl|  楼主 | 2008-3-6 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了很多篇关于CRC的**,关于CRC-ITU查表法有点糊涂。 

《CRC算法原理及C语言实现》 
http://www.laogu.com/wz_2713.htm 
unsigned int crc_ta[256]={               /* CRC余式表 */ 
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7。。。。 
此文中的CRC-ITU余式表很好理解,是根据多项式 x16+x12+x5+1 即 1021 计算得来,笔算也没错。 

《CRC算法与实现》 
http://www.bloghome.cn/posts/6741.html 
// CRC-ITU查找表 
const u16 crctab16[] =  
{0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf。。。。 
此文中的余式表为什么与上面的不同?这是为什么?是因为采用了不同的多项式吗? 

相关帖子

沙发
chunyang| | 2008-3-6 10:25 | 只看该作者

不要用查表这样的笨办法

去看看我的Blog,有很简单的CRC计算法。

使用特权

评论回复
板凳
xwj| | 2008-3-6 10:28 | 只看该作者

lz,因为多项式不同

或者移位方向不同...



使用特权

评论回复
地板
wsdcl|  楼主 | 2008-3-6 10:35 | 只看该作者

to chunyang

实际上我是用在一个温度传感器的MODBUS协议里,以前一直都是自定义的规约,这次老板有要求,要用标准MODBUS协议。

由于传输的内容比较多,所以准备采用MODBUS RTU,但是CRC理解一直不是很透彻。

芯片剩余空间还很多,查表法是不是更好点呢?

另外chunyang大哥,您的BLOG里能不能直接给个链接?好象不能搜索来着

使用特权

评论回复
5
wsdcl|  楼主 | 2008-3-6 10:37 | 只看该作者

x16+x12+x5+1

标准CRC-ITU的多项式也可以是不同的吗?
不是这样的吗?x16+x12+x5+1

使用特权

评论回复
6
chunyang| | 2008-3-6 10:55 | 只看该作者

不同CRC标准的生成多项式不同

链接地址如下:
相关链接:http://blog.21ic.com/user1/67/36696.html

使用特权

评论回复
7
wsdcl|  楼主 | 2008-3-6 11:00 | 只看该作者

十分感谢

十分感谢,马上去拜读!

使用特权

评论回复
8
wsdcl|  楼主 | 2008-3-6 14:20 | 只看该作者

请教chunyang

MODBUS RTU方式下,识别一帧开始是以当前波特率下的三个半字符时间的静默来判断。
这个3.5字符时间如何来识别?有什么好的思路吗?

使用特权

评论回复
9
chunyang| | 2008-3-6 16:28 | 只看该作者

当前帧结束后启动定时器

定时器溢出设标志,根据标志判断即可。也可用帧头特征比对法。

使用特权

评论回复
10
bhsdlmj| | 2009-10-15 08:43 | 只看该作者
去看看我的Blog,有很简单的CRC计算法。
chunyang 发表于 2008-3-6 10:25



同意查表法 真是笨!!! 我弄了这么长时间,也不敢确定哪个查表法是绝对的正确!

打算放弃用查表法了!!!

使用特权

评论回复
11
hotpower| | 2015-9-27 12:56 | 只看该作者
左移CRC16=X16+X12+X8+X7+X3+1

使用特权

评论回复
12
hotpower| | 2015-9-27 12:58 | 只看该作者
//CRC位域4表(大端): const unsigned int CRCL16_1189_Table[16] = {   0x0000,0x1189,0x2312,0x329B,0x4624,0x57AD,0x6536,0x74BF,0x8C48,0x9DC1,0xAF5A,0xBED3,0xCA6C,0xDBE5,0xE97E,0xF8F7 };

使用特权

评论回复
13
hotpower| | 2015-9-27 13:00 | 只看该作者
http://www.21ic.com/tools/HotWC3_V1.11.html

使用特权

评论回复
14
hotpower| | 2015-9-27 13:00 | 只看该作者
表格中的1189就是权值!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

15

帖子

1

粉丝