下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、最近在搞 CRC 校验,用的是 CRC1 浙准,查看了很多资料发现很多讲的都是CRC16-CCITT 标准,一直想弄明白 CRC-16 标准中的采用查表法的方式中那两个表格中的数是如何求出来的。可惜没有一个文章仔细的讲,更没有文章给出实例来算一算。一切只能靠自己了,谁让我喜欢寻根摸底呢。研究了一下本站会员玉丫子的文章,自己琢磨了琢磨,终于知道是怎么算出来的了。CRC1 燹法的生成多项式 xA16 + xA15 + xA2 + 1,十六进制表示为 0 x8005。CRC1 弗见的表格中的数据是按照先传输LSB,消息右移进寄存器来计算的。因此需要判断寄存器的最低位LSB,同时要将 0 x8005按
2、位颠倒后(0 xA001)根据 LSB 的情况决定是否与寄存器异或即可。CRC16 勺表格中对应的数依次为 0255 计算出来的 CRC 直,因此,此处只选取其中一两个数作为实例计算CRC 直。具体步骤如下所示:1)从 0255 中选取需要计算的数,将其对应的十六进制数放入一个长度为16 的寄存器的低八位,高八位填充0;2) 如果寄存器的末位 LSB 为 1,将寄存器的数值右移1位,再与 0 xA001 位异或,否则仅将寄存器右移1 位;3) 重复第 2 步,直到低八位全部右移出寄存器;4) 寄存器中的值则为校验码。从 0255 中挑选 2 (对应 0 x02)计算其 CRC 值:0 x02
3、的 CRC-16 的表格计算(反向)00000000 00000010 - 最低位 LSB = 0 , 高八位填充 000000000 000000010 右移,高位填充 0,并舍弃最后一位-第一次计算00000000 00000001 - LSB = 100000000 000000001 右移,舍弃最后一位A10100000 00000001 - 与 0 xA001 异或-第二次10100000 00000001 - LSB = 101010000 000000001 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-第三次11110000 0000000
4、1 - LSB = 101111000 000000001 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-第四次11011000 00000001 - LSB = 101101100 000000001 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-第五次11001100 00000001 - LSB = 101100110 000000001 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-第六次11000110 00000001 - LSB = 101100011 0000000
5、01 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-第七次11000011 00000001 - LSB = 101100001 100000001 右移,舍弃最后一位A10100000 00000001 -与 0 xA001 异或-一共右移了八次,得到的结果为CRC11000001 10000001 - CRC: 0 xC1 81从本文最后的附表中可以看出auchCRCHi的第三个值就是 0 x81, auchCRCLo的第三个值就是 0 xC1,可见计算无误。另一个计算实例,从 0255 中挑选 11 (对应 0 x0B)计算其 CRC 值:0 x0B
6、 的 CRC-16 的表格计算(反向)00000000 00001011 - 最低位 LSB = 1 , 高八位填充 000000000 000001011 右移,高位填充 0,并舍弃最后一位A10100000 00000001 -与 0XA001 异或-第一次计算10100000 00000100 - LSB = 001010000 000000100 右移,舍弃最后一位-第二次01010000 00000010 - LSB = 000101000 000000010 右移,舍弃最后一位-第三次00101000 00000001 - LSB = 100010100 000000001 右移,
7、舍弃最后一位A10100000 00000001 -与 0XA001 异或-第四次10110100 00000001 - LSB = 101011010 000000001 右移,舍弃最后一位A10100000 00000001 -与 0XA001 异或-第五次11111010 00000001 - LSB = 101111101 000000001 右移,舍弃最后一位A10100000 00000001 -与 0XA001 异或-第六次11011101 00000001 - LSB = 101101110 1000000001 右移,舍弃最后一位A10100000 00000001 -与 0
8、XA001 异或-第七次11001110 10000001 - LSB = 101100111 010000001 右移,舍弃最后一位A10100000 00000001 -与 0XA001 异或-一共算八次,得到的结果为CRC11000111 01000001 - CRC: 0XC7 41从本文最后的附表中可以看出auchCRCHi的第 12 个值就是 0X 41 , auchCRCLo的第 12 个值就是 0XC7,可见计算无误。附:CRC-16 的 CRCB 值表const unsigned char auchCRCHi = 0 x00, 0 xC1,0 x81,0 x40, 0 x01
9、, 0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40, 0 x01, 0 xC0,0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x
10、81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x01, 0 xC0,0 x80, 0 x41,0 x00, 0 xC1,0 x81, 0 x40, 0
11、 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40,0 x00, 0 xC1,0 x81,0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0,
12、0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x01, 0 xC0,0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1,0 x81,0 x40, 0 x00, 0 xC1,0 x81,0 x40,
13、0 x01,0 xC0, 0 x80,0 x41,0 x00, 0 xC1,0 x81, 0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81,0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81, 0 x40, 0 x00,0 xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x01, 0 xC0, 0 x80, 0 x41,0 x00, 0 xC1, 0 x81,0 x40, 0 x00, 0
14、xC1,0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41, 0 x00,0 xC1,0 x81,0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0 x41,0 x00, 0 xC1,0 x81, 0 x40 );const unsigned char auchCRCLo = (0 x00, 0 xC0, 0 xC1,0 x01,0 xC3, 0 x03, 0 x02, 0 xC2, 0 xC6, 0 x06, 0 x07, 0 xC7, 0 x05, 0 xC5, 0 xC4, 0 x04, 0 xCC,
15、0 x0C, 0 x0D, 0 xCD, 0 x0F, 0 xCF, 0 xCE, 0 x0E,0 x0A, 0 xCA, 0 xCB, 0 x0B, 0 xC9, 0 x09, 0 x08, 0 xC8, 0 xD8, 0 x18, 0 x19, 0 xD9, 0 x1B, 0 xDB, 0 xDA, 0 x1A, 0 x1E, 0 xDE, 0 xDF, 0 x1F, 0 xDD, 0 x1D, 0 x1C,0 xDC, 0 x14, 0 xD4, 0 xD5, 0 x15, 0 xD7, 0 x17, 0 x16, 0 xD6, 0 xD2, 0 x12, 0 x13, 0 xD3, 0
16、 x11,0 xD1,0 xD0, 0 x10, 0 xF0, 0 x30, 0 x31,0 xF1,0 x33, 0 xF3, 0 xF2, 0 x32,0 x36, 0 xF6, 0 xF7, 0 x37, 0 xF5, 0 x35, 0 x34, 0 xF4, 0 x3C, 0 xFC, 0 xFD, 0 x3D, 0 xFF, 0 x3F, 0 x3E, 0 xFE, 0 xFA, 0 x3A, 0 x3B, 0 xFB, 0 x39, 0 xF9, 0 xF8, 0 x38,0 x28, 0 xE8, 0 xE9, 0 x29, 0 xEB, 0 x2B, 0 x2A, 0 xEA,
17、 0 xEE, 0 x2E, 0 x2F, 0 xEF, 0 x2D, 0 xED, 0 xEC, 0 x2C, 0 xE4, 0 x24, 0 x25, 0 xE5, 0 x27, 0 xE7, 0 xE6, 0 x26,0 x22, 0 xE2, 0 xE3, 0 x23, 0 xE1,0 x21,0 x20, 0 xE0, 0 xA0, 0 x60, 0 x61,0 xA1, 0 x63, 0 xA3, 0 xA2, 0 x62, 0 x66, 0 xA6, 0 xA7, 0 x67, 0 xA5, 0 x65, 0 x64, 0 xA4, 0 x6C,0 xAC, 0 xAD, 0 x
18、6D, 0 xAF, 0 x6F, 0 x6E, 0 xAE, 0 xAA, 0 x6A, 0 x6B, 0 xAB, 0 x69, 0 xA9, 0 xA8, 0 x68, 0 x78, 0 xB8, 0 xB9, 0 x79, 0 xBB, 0 x7B, 0 x7A, 0 xBA,0 xBE, 0 x7E, 0 x7F, 0 xBF, 0 x7D, 0 xBD, 0 xBC, 0 x7C, 0 xB4, 0 x74, 0 x75, 0 xB5, 0 x77, 0 xB7, 0 xB6, 0 x76, 0 x72, 0 xB2, 0 xB3, 0 x73, 0 xB1,0 x71,0 x70, 0 xB0,0 x50, 0 x90, 0 x91, 0 x51,0 x93, 0 x53, 0 x52, 0 x92, 0 x96, 0 x56, 0 x57, 0 x97, 0 x55, 0 x95, 0 x94, 0 x54, 0 x9C, 0 x5C, 0 x5D, 0 x9D, 0 x5F, 0 x9F,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DVT测量腿围方法
- 婴幼儿运动训练
- 音响产品设计介绍
- 精神残疾康复评估
- 工程分包安全协议书
- 商业代理协议书
- 赔偿协议书谅解书
- 自拟保修协议书
- 橄榄球规则介绍
- 2025版阑尾炎常见症状及护理要点指导
- 2022年10月自考00087英语翻译试题及答案含评分标准
- 监控机房搬迁实施方案
- 有趣得让人睡不着的植物
- 统计用产品分类目录
- 《历史的温度 套装共6册 》读书笔记PPT模板思维导图下载
- 附着式升降脚手架安全检查要点
- YY/T 1791-2021乙型肝炎病毒e抗体检测试剂盒(发光免疫分析法)
- DB41-T 2127-2021冬小麦夏玉米两熟制农田有机肥替减化肥技术规程-(高清现行)
- 楷书的章法课件
- 《教育哲学》自考真题
- 《汽车电子控制技术》课程思政教学大纲
评论
0/150
提交评论