打印

CRC16的查表程序,谁给提供个?

[复制链接]
4882|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bhsdlmj|  楼主 | 2009-10-14 15:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
bhsdlmj|  楼主 | 2009-10-14 15:45 | 只看该作者
都不提供啊 只有我自己用手算了

你们真抠门:Q

使用特权

评论回复
板凳
冷漠| | 2009-10-14 16:53 | 只看该作者
呵呵。你不是已经程序搞定了么,自己造一个岂不是很简单的事。

先请教一下,用你的程序,数据00,余数计算出来是多少?
80H呢,8000H?800000H?

如果正确,用HOT的计算器造个表就行了。或者就用MODBUS计算器一样。
一般网络上的表好像都是初值为0000的。你造一个初值FFFF的也很有意义了。

使用特权

评论回复
地板
bhsdlmj|  楼主 | 2009-10-14 17:15 | 只看该作者
数据00的话  算出校验码是0x40BF

看样子确实得用查表啊  用了8位机 校验6个字节耗了我1毫秒钟啊  用了32位 校验6个字节耗了我0.07毫秒
==============================================================

HOT计算器能直接生成表么?? 我到哪里弄hot计算器

多谢!!!

使用特权

评论回复
5
冷漠| | 2009-10-14 17:37 | 只看该作者

40BF正解

本帖最后由 冷漠 于 2009-10-14 17:38 编辑

HOT的网上计算器地址。当然只能按字节计算。

http://www.hotc51.com/HotPower_HotWC3.html

使用特权

评论回复
6
bhsdlmj|  楼主 | 2009-10-15 09:43 | 只看该作者
unsigned int crc_table[256]={ /* CRC 余式表 */
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};


这个表是最流行的。 不知道是采取怎么个方法弄出来的?
谁能描述下???
多谢

使用特权

评论回复
7
twz8858877| | 2009-10-15 11:01 | 只看该作者
找英文版的<<Modicon Modbus Protocol Reference Guide>>,表格跟示例程序都有。

使用特权

评论回复
8
冷漠| | 2009-10-15 11:13 | 只看该作者

怎么算的?

哈哈,这哪是MODBUS的CRC表?!分明是CCITT   ,G=11021嘛。

使用特权

评论回复
9
bhsdlmj|  楼主 | 2009-10-15 12:45 | 只看该作者
哈哈,这哪是MODBUS的CRC表?!分明是CCITT   ,G=11021嘛。
冷漠 发表于 2009-10-15 11:13


你说的对

使用特权

评论回复
10
bhsdlmj|  楼主 | 2009-10-15 13:02 | 只看该作者
找英文版的,表格跟示例程序都有。
twz8858877 发表于 2009-10-15 11:01

多谢!

使用特权

评论回复
11
冷漠| | 2009-10-15 13:31 | 只看该作者
回6楼当然是计算出来的,把你的程序稍微改动一下就行了。

手工计算表达更清楚,例如:

数据为 01 时,X16M(X)即被除数等于10000H,做模二除法10000/11021=1 余数1021
同样,设M=08, 即被除数为80000H,做模二除法80000/11021=8 余数 8108

使用特权

评论回复
12
bhsdlmj|  楼主 | 2009-10-15 14:15 | 只看该作者
怪不得chunyang说查表是个笨方法。现在看来真是笨! 查表也快不到哪里去!! 能快个5倍就不错了

使用特权

评论回复
13
冷漠| | 2009-10-15 19:42 | 只看该作者
咱搞了多年通信项目,从没软件计算过CRC,都是硬件实时完成的。接收方接收帧完毕,CRC也同时校验完毕。说严格点是滞后2个字节(或者4个字节)的时间,通信速率1Mbps时,滞后16BIT不过16us 就结束了。
用软件计算CRC?是因为从没玩过硬件通信控制器吧。当今最普及的像CAN ,还有流行硬件玩家玩的8051+以太网适配器,都是包含硬件CRC电路的芯片。

使用特权

评论回复
14
hotpower| | 2009-10-16 15:17 | 只看该作者
看到几位讨论CRC查表,冒个泡泡~~

https://bbs.21ic.com/icview-139314-1-1.html

使用特权

评论回复
15
xwj| | 2009-10-16 15:19 | 只看该作者
呵呵,热烈欢迎老hot常回来冒泡泡~~
:D

使用特权

评论回复
16
hotpower| | 2011-12-26 13:15 | 只看该作者
顶起来,掀起密码安全教育风暴~~~

使用特权

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

使用特权

评论回复
18
hotpower| | 2015-9-27 13:12 | 只看该作者
这是太简单的问题,对于HotWC3来说

使用特权

评论回复
19
hotpower| | 2018-12-30 01:34 | 只看该作者

使用特权

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

本版积分规则

55

主题

351

帖子

0

粉丝