AVR单片机CRC校验码的查表与直接生成
[09-12 17:48:32] 来源:http://www.88dzw.com 单片机学习 阅读:8886次
文章摘要:m(x) 生成多项式的系数为0或1,但是m(x) 的首项系数为1,末项系数也必须为1。m(x) 的次数越高,其检错能力越强。2 使用Atmega128生成32位CRC校验码 2.1 直接计算法生成32位CRC校验码直接计算法就是依据CRC校验码的产生原理来设计程序。其优点是模块代码少,修改灵活,可移植性好。这种算法简单,容易实现,对任意长度生成多项式m(x) 都适用。在发送的数据不长的情况下可以使用,但是如果发送的数据块很长,这种方法就不太适合了。因为它1次只能处理1位数据,效率太低,运算量大。计算法生成32位CRC校验码的流程如图1所示。用AVR单片机汇编语言实现CRC-32源程序见本
AVR单片机CRC校验码的查表与直接生成,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.comm(x) 生成多项式的系数为0或1,但是m(x) 的首项系数为1,末项系数也必须为1。m(x) 的次数越高,其检错能力越强。
2 使用Atmega128生成32位CRC校验码
2.1 直接计算法生成32位CRC校验码
直接计算法就是依据CRC校验码的产生原理来设计程序。其优点是模块代码少,修改灵活,可移植性好。这种算法简单,容易实现,对任意长度生成多项式m(x) 都适用。在发送的数据不长的情况下可以使用,但是如果发送的数据块很长,这种方法就不太适合了。因为它1次只能处理1位数据,效率太低,运算量大。
计算法生成32位CRC校验码的流程如图1所示。
用AVR单片机汇编语言实现CRC-32源程序见本刊网络补充版(http://www.88dzw.com)。
2.2 查表法生成32位CRC校验码
和直接计算法相反,查表法生成32位CRC校验码的优点是运算量小,速度快;缺点是可移植性较差。这种算法首先要求得到32位CRC生成表,由于1个字节有8位,所以这个表总共有256项。但是,由于AVR高速嵌入式单片机中的寄存器是以1个字节为单位的,所以在编程实现中,这个CRC生成表总共有1024项,分别从0~1023;每4位对应1个32位CRC生成表的项,每一项都从高到低降幂排列。关于32位CRC生成表的程序详见本刊网络补充版(http://www.88dzw.com)。
查表法生成32位CRC校验码的流程如图2所示。
图2所示的流程图中,在通过异或运算得到CRC生成表的索引时,由于AVR高速嵌入式单片机中的寄存器是以1个字节为单元的,所以在编程实现中应根据所要求生成的CRC校验码的位数乘以相应的系数。例如:在数据传输时要求32位CRC校验码,应该把所得到的索引数乘以系数4,然后再从高到低依次取得32位CRC生成表单元中的内容。
使用查表法得到32位CRC校验码的源程序详见本刊网络补充版(http://www.88dzw.com)。
3 实验结果
为了比较所述两种32位CRC校验码生成方法的特点,分别选取不同字节数的数据段,对两种方法在不同情况下的效果进行比较,如表1所列。
表1 两种算法实验结果对比
计算法生成32位CRC校验码 | 查表法生成32位CRC校验码 | |||
数据段字节数 | 程序耗时/μs | 周期数 | 程序耗时/μs | 周期数 |
3 | 193.67 | 2324 | 29.33 | 352 |
4 | 222.50 | 2670 | 34.83 | 418 |
10 | 319.58 | 3835 | 48.58 | 583 |
20 | 517.92 | 6215 | 76.08 | 913 |
40 | 886.25 | 10635 | 131.08 | 1573 |
80 | 1582.92 | 189995 | 241.08 | 2893 |
150 | 2957.08 | 35485 | 433.58 | 5203 |
200 | 3891.25 | 46695 | 571.08 | 6853 |
220 | 4267.92 | 51215 | 626.08 | 7513 |
239 | 4645.17 | 55742 | 678.33 | 8140 |
240 | 4659.58 | 55915 | 681.08 | 8173 |
250 | 4872.92 | 58475 | 708.58 | 8503 |
《AVR单片机CRC校验码的查表与直接生成》相关文章
- › 自制AVR单片机的并口ISP下载线
- › AVR单片机的RTOS-AVRX应用
- › 基于AVR单片机的多任务嵌入式Internet系统设计
- › 一种基于AVR单片机的工频干扰滤除快速算法
- › 基于AVR单片机LED显示屏的灰度设计与实现
- › 基于AVR单片机的可充电电池的放电监测
- 在百度中搜索相关文章:AVR单片机CRC校验码的查表与直接生成
- 在谷歌中搜索相关文章:AVR单片机CRC校验码的查表与直接生成
- 在soso中搜索相关文章:AVR单片机CRC校验码的查表与直接生成
- 在搜狗中搜索相关文章:AVR单片机CRC校验码的查表与直接生成