版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CRC 1 6 计 算 算 法CRC 16计算算法XOR =异或N =字节的信息位POLY = CRC 16 多项式计算=1010 0000 0000 0001(生成多项式=1 + X2 + x 15 + x 16)在CRC 16中,发送的第一个字节为低字节.CRC计算示例(帧02 07)CRC寄存器初始化1111111111111111XOR第一个字符00000000000000001111111111111101移位1011111111111111011010000000000001标志1, XOR多项式1101111111111111移位20110111111111111 1标志1, X
2、OR多项式10100000000000011100111111111110移位301100111111111100移位40011001111111111110100000000000011001001111111110移位501001001111111110移位60010010011111111110100000000000011000010011111110移位701000010011111110移位800100001001111110101000000000000110000001001111100000000000000111XOR第二个字符1000000100111001移位10100
3、000010011100110100000000000011110000010011101移位20111000001001110110100000000000011101000001001111移位30110100000100111110100000000000011100100000100110移位401100100000100110移位50011001000001001110100000000000011001001000001000移位601001001000001000移位700100100100000100移位800010010010000010最高有效最低有效帧的CRC 16则为:
4、4112例执行CRC生成的C语言的函数在下面示出。所有的可能的 CRC值都被预装在两个数组中,当计算 报文内容时可以简单的索引即可。一个数组含有16位CRC域的所有256个可能的高位字节,另一个数组含有地位字节的值。这种索引访问CRC的方式提供了比对报文缓冲区的每个新字符都计算新的CRC更快的方法。注意:此函数内部执行高/低CRC字节的交换。此函数返回的是已经经过交换的CRC值。也就是说,从该函数返回的 CRC值可以直接放置于报文用于发送。函数使用两个参数:unsigned char *puchMsg;指向含有用于生成 CRC的二进制数据报文缓冲区的指针unsigned short usDat
5、aLen;报文缓冲区的字节数.usDataLen ) /* 函数以 unsigned short 类型返回CRC生成函数 unsigned short CRC16 ( puchMsgCRC */unsigned char *puchMsg ;*/unsigned short usDataLen ;unsigned char uchCRCHi = 0 xFF ;*/unsigned char uchCRCLo = 0 xFF ;*/unsigned ulndex ;while (usDataLen-)/*用于计算CRC的报文/*报文中的字节数*/* CRC的高字节初始化/* CRC的低字节初始化
6、/* CRC查询表索引*/*完成整个报文缓冲区*/ulndex = uchCRCLo A *puchMsgg+ ;uchCRCLo = uchCRCHi 人 auchCRCHiuIndex; uchCRCHi = auchCRCLouIndex;return (uchCRCHi 8 | uchCRCLo);高字节表/*高位字节的CRC值*/ static unsigned char auchCRCHi口 = 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
7、,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 x81,0 x40, 0 x01, 0 xC0, 0 x80, 0 x41,0 x01,0 xC0, 0 x80, 0
8、 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 x00, 0 xC1, 0 x81,0 x40, 0 x01,0 xC0, 0 x80, 0 x41,0 x01,
9、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 x81, 0 x40, 0 x01,0 xC0,
10、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, 0 x01, 0 xC0, 0 x80, 0 x41, 0 x00, 0 xC1,0 x81
11、,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, 0 x80, 0 x41,0
12、 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;低字节表/*低位字节的CRC值*/static 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, 0 x0C, 0 x0D, 0 xCD, 0 x0F, 0 xCF, 0
13、 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 x11, 0 xD1,0 xD0, 0 x10, 0 xF0, 0 x30,
14、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, 0 xEE,0 x2E, 0 x2F, 0 xEF, 0 x2D, 0 xED,
15、 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 x6D, 0 xAF, 0 x6F,0 x6E, 0 xAE, 0 xAA, 0 x6A,
16、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, 0 x9E, 0 x5E, 0 x5A, 0 x9A,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渗滤液催化氧化处理合同
- 碳排放监测员岗前冲突管理考核试卷含答案
- 液晶显示器件成盒制造工岗前基础验收考核试卷含答案
- 2026年国庆中秋节假日安全培训考试卷
- 氧化铝焙烧工安全行为竞赛考核试卷含答案
- 塑料模压工安全生产规范模拟考核试卷含答案
- 装车仓操作工操作管理竞赛考核试卷含答案
- 复合机床操作工安全管理模拟考核试卷含答案
- 灌溉机械制造工班组管理测试考核试卷含答案
- 旅游鞋制作工岗前技术管理考核试卷含答案
- 学习贯彻《中华人民共和国生态环境法典》专题宣讲课件
- 2026年贵州省中考语文试题卷(含答案及解析)
- 学校食品安全知识培训课件
- 2026年三轮驾驶证理论考试题附答案
- 1.8 《自制打气筒》导学案新教科版四年级上册
- 初级通信专业技术人员职业水平考试题库(1000题含答案和解析)
- 活动一 走近人工智能教学设计初中信息技术上海科教版八年级第二学期-上海科教版
- 拉森钢板桩施工变形监测方案
- 危重患者循证护理实践
- 【中考真题】云南省2026年初中学业水平考试语文真题试卷(含答案)
- T-COSHA71-2026危险化学品火灾爆炸定量风险评估方法选用指南
评论
0/150
提交评论