


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CRC算法及工作原理CRC检验 CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正 确,就不得不采用检错的手段。在诸多检错手段中, CRC是最著名的一种。 CRC 的全称是循环冗余校验,其特点是 : 检错能力极强,开销小,易于用编码器及检 测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因 而,在数据存储和数据通讯领域, CRC无处不在:著名的通讯协议 X.25 的 FCRC检验CRC校验实用程序库 在数据存储和数据通讯领域,为了保证数据的正确,就不 得不采用检错的手段。在诸多检错手段中, C
2、RC是最著名的一种。 CRC的全称是 循环冗余校验,其特点是 : 检错能力极强,开销小,易于用 编码器 及检测电路实 现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据 存储和数据通讯领域, CRC无处不在:著名的通讯协议 X.25 的 FCS( 帧检错序列 ) 采用的是 CRC-CCITT,WinRAR、 NERO、 ARJ、LHA等压缩工具软件采用的是 CRC3,2 磁盘驱动器的读写采用了 CRC16,通用的图像存储格式 GIF、TIFF 等也都用 CRC作为检错手段。CRC的本质是模 -2 除法的
3、余数,采用的除数不同, CRC的类型也就不一样。通 常, CRC的除数用生成多项式来表示。最常用的 CRC码的生成多项式如表 1 所 示。10A08800.GIF;表1.最常用的 CRC码及生成多项式 由于 CRC在通讯和数据处理软件中经常采用,笔者在实际工作中对其算法进行 了研究和比较,总结并编写了一个具有最高效率的 CRC通用程序库。该程序采 用查表法计算 CRC,在速度上优于一般的直接模仿硬件的算法,可以应用于通 讯和数据压缩程序。算法通常的 CRC算法在计算一个数据段的 CRC值时,其 CRC值是由求解每个数值的 CRC值的和对 CRC寄存器的值反复更新而得到的。这样,求解 CRC的速
4、度较 慢。通过对 CRC算法的研究,我们发现 :一个 8位数据加到 16位累加器中去, 只有累加器的高 8位或低 8位与数据相作用,其结果仅有 256种可能的组合 值。因而,我们可以用查表法来代替反复的运算,这也同样适用于CRC32的计算。本文所提供的程序库中,函数 crchware 是一般的 16 位 CRC的算法 ;mk- crctbl 用以在内存中建立一个 CRC数值表 ;crcupdate 用以查表并更新 CRC累加 器的值 ;crcrevhware 和 crcrevupdate 是反序算法的两个函 数 ;BuildCRCTable 、CalculateBlockCRC32 和 Upd
5、ateCharac terCRC32 用于 CRC32的计算。/* CRC.C CRC程序库 */#define CRCCCITT 0x1021#define CCITT-REV 0x8408#define CRC16 0x8005#define CRC16-REV 0xA001#define CRC32-POLYNOMIAL 0xEDB88320L/* 以上为 CRC除数的定义 */#define NIL 0#define crcupdate(d,a,t)*(a)=(*(a)& lt ;8)(d);#define crcupdate16(d,a,t)*(a)=(*(a)8(t)(*(a)(d)& amp;0x00ff)/* 以上两个宏可以代替函数 crcupdate 和 crcrevupdate */#include #include #include /* 函数 crchware 是传统的 CRC算法,其返回值 即 CRC值 */ unsigned short crchware(data,genpoly,accum)unsigned short data;/* 输入的数据 */unsigned short genpoly;/* CRC除数 */unsigned short accum;/* CRC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省聊城市东方中学2025届初三第五次检测试题语文试题含解析
- 武汉纺织大学外经贸学院《电子商务英语》2023-2024学年第一学期期末试卷
- 山西电力职业技术学院《国际市场营销双语》2023-2024学年第二学期期末试卷
- 苏州市高新区市级名校2024-2025学年第二学期统一检测试题初三英语试题含答案
- 湖北民族大学《现代生物学专题》2023-2024学年第二学期期末试卷
- 武昌职业学院《数字信息检索与应用》2023-2024学年第二学期期末试卷
- 湖北第二师范学院《生态学原理》2023-2024学年第一学期期末试卷
- 南宁学院《通信仿真》2023-2024学年第二学期期末试卷
- 江苏省盐城市东台市第四联盟重点中学2025届初三下学期期中考试生物试题(B卷)含解析
- 南京大学金陵学院《新媒体文案创作》2023-2024学年第二学期期末试卷
- 《尚书》介绍课件
- 肥大细胞增多症培训演示课件
- 高中物理《光学》练习题(附答案解析)
- 米兰大教堂完整版本
- 失能老人消防应急预案
- GB/T 15622-2023液压缸试验方法
- CONSORT2010流程图(FlowDiagram)【模板】文档
- 华容道24局最佳解法
- 游戏综合YY频道设计模板
- 访客接待联络单
- 四年级下册一字多义练习
评论
0/150
提交评论