打印

CRC校验原理

[复制链接]
707|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
关小波522|  楼主 | 2015-8-22 17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享一个CRC的资料
沙发
关小波522|  楼主 | 2015-8-22 17:59 | 只看该作者
资料

crc16校验原理.pdf

289.97 KB

使用特权

评论回复
板凳
peace555| | 2015-8-22 21:41 | 只看该作者
硬件CRC好不好用呢

使用特权

评论回复
地板
历史暴君| | 2015-8-22 22:57 | 只看该作者
我有一次想用STM32的硬件CRC,发现不好用

使用特权

评论回复
5
没有六一了| | 2015-8-22 23:01 | 只看该作者
循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

使用特权

评论回复
6
波越| | 2015-8-22 23:14 | 只看该作者
任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

使用特权

评论回复
7
电子信使| | 2015-8-22 23:22 | 只看该作者
CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。

使用特权

评论回复
8
huihui520| | 2015-8-23 00:08 | 只看该作者
CRC是很常用的模块,不错

使用特权

评论回复
9
hotpower| | 2015-9-27 11:58 | 只看该作者
//CRC位域4表(大端): const unsigned int CRCL16_1021_Table[16] = {   0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7,0x8108,0x9129,0xA14A,0xB16B,0xC18C,0xD1AD,0xE1CE,0xF1EF }; //CRC位域4查表算法(大端): unsigned int GetCRCL16_1021_FFFF_0000_Table(unsigned char *crcBuff, unsigned char crcLen) { unsigned char i; unsigned int crc = 0xFFFF; unsigned char crcTemp;   for(i = 0; i < (crcLen * 2); i ++) {     if (i & 1) crcTemp = crcBuff[i >> 1] & 0x0F;     else crcTemp = crcBuff[i >> 1] >> 4;     crc = (crc << 4) ^ CRCL16_1021_Table[(crc >> 12) ^ crcTemp];   }   return crc; } void main() { const unsigned char dataTable[] = "\x01\x23\x45\x67\x89\xAB\xCD\xEF"; unsigned int crc;   crc = GetCRCL16_1021_FFFF_0000_Table((unsigned char *)dataTable, sizeof(dataTable) - 1);   while(1); }

使用特权

评论回复
10
hotpower| | 2015-9-27 11:59 | 只看该作者
HotWC3自动生成的!

使用特权

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

使用特权

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

本版积分规则

58

主题

564

帖子

1

粉丝