没有合适的资源?快使用搜索试试~ 我知道了~
首页CRC校验原理解释以及范例
CRC校验原理解释以及范例
需积分: 10 12 下载量 65 浏览量
更新于2023-03-03
评论
收藏 157KB DOC 举报
CRC校验原理解释以及范例 CRC校验原理解释以及范例 CRC校验原理解释以及范例
资源详情
资源评论
资源推荐
校验原理
1、循环校验码(CRC 码):是数据通信领域中最常用的一种差错校验码,其
特征是信息字段和校验字段的长度可以任意选定。
2、生成 CRC 码的基本原理:任意一个由二进制位串组成的代码都可以和一个
系数仅为‘和‘取值的多项式一一对应。例如:代码 对应的多项式
为
,而多项式为
对应的代码 。
3、CRC 码集选择的原则:若设码字长度为 ,信息字段为 位,校验字段为
位,则对于 码集中的任一码字,存在且仅存在一个 次多项
式 ,使得
V(x)=A(x)g(x)=x
R
m(x)+r(x);
其中为 次信息多项式, 为 次校验多项式,
称为生成多项式:
发送方通过指定的 产生 码字,接收方则通过该 来验证收到的
码字。
4、CRC 校验码软件生成方法:
借助于多项式除法,其余数为校验字段。
例如:信息字段代码为;对应
假设生成多项式为:
;则对应 的代码为
对应的代码记为:;
采用多项式除法: 得余数为: 1010 (即校验字段为:1010)
发送方:发出的传输字段为: 1 0 1 1 0 0 1 1 0 10
信息字段 校验字段
接收方:使用相同的生成码进行校验:接收到的字段/生成码(二进制除法)
如果能够除尽,则正确,
CRC 校验源码分析
这两天做项目,需要用到 校验。以前没搞过这东东,以为挺简单的。结
果看看别人提供的汇编源程序,居然看不懂。花了两天时间研究了一下
校验,希望我写的这点东西能够帮助和我有同样困惑的朋友节省点时间。
先是在网上下了一堆乱七八遭的资料下来,感觉都是一个模样,全都是从
的数学原理开始,一长串的表达式看的我头晕。第一次接触还真难以理解。
这些东西不想在这里讲,随便找一下都是一大把。我想根据源代码来分析会比
较好懂一些。
费了老大功夫,才搞清楚 根据”权”即多项表达式的不同而相应的源代
码也有稍许不同。以下是各种常用的权。
以下的源程序全部以 为例。其实本质都是一样,搞明白一种,其他的都
是小菜。
图 ,图 说明了 校验中 值是如何计算出来的,体现的多项式正是
。 !"#$"%"即是需要校验的数据。从把数据移位开始计
算,将数据位(从最低的数据位开始)逐位移入反向耦合移位寄存器这个名词
我也不懂,觉得蛮酷的,就这样写了,嘿。当所有数据位都这样操作后,计算
结束。此时,位移位寄存器中的内容就是 码。
图中进行 &运算的位与多项式的表达相对应。
代表 '!%,代表 '!%,自然是代表 '!%,比较特别,是指
移位寄存器移出的数据,即图中的 $((&)。可以这样理解,与数据位做
& 运算的是上次 值的 '!%。
根据以上说明,可以依葫芦画瓢的写出以下程序。程序都是在 * !#下
调试的
%+, - ./01!0 -23"/23"4
%+, - ./01!0 -!0%/!0%4
25- /23"226/789
:;;;;;-;-; <4
/!0%224==码
>5!-"!0>5!-
:
/23"?,%4
224==初值
,%226/74==指向第一个 '+% 数据
2222#,%;4
@3!# 4
<
/!0%22#/23"?,%;/23"# 0==,%为数据指针,# 0为数据长度
:
/23"!4
@3!# # 0
:
.5!4!A4!BB
:
!.22CA:22DD422E4<
#1 22DD4
!.?,%C!A22E4
<
,%4
<
%/0224
<
执行结果 22-624
程序 ;;可以理解成移位前 22的 '!%与数据对应的 '!%?,%C!
做 & 运算,根据此结果来决定是否执行 22E。只要明白两次异
或运算与原值相同,就不难理解这个程序。
很多资料上都写了查表法来计算,当时是怎么也没想通。其实蛮简单的。假设
通过移位处理了 个 6!%的数据,相当于把之前的 码的高字节6!%全部
移出,与一个 6+% 的数据做 &运算,根据运算结果来选择一个值称为余
式,与原来的 码再做一次 &运算,就可以得到新的 码。
不难看出,余式有 种可能的值,实际上就是 F以
为权得到的 码,可以通过函数 22# 来计算。以
为例。
25- % 1%89:<4
224
,%% 1%4
2222#,%;4
执行结果 22,这就是 对应的余式。
进一步修改函数,我这里就懒得写了,可得到 的余式表。
25- /!0%22G%"89:==余式表
;;;;;";2;
;
;HH;"";66;22;-"-; 2 ;
. .;
;;;;6;H;.;
-;
HH;;66;"";-6-;2H2;.7;
- ;
;;;; ;2;";
;
"";66;;HH; ;.2.;2"2;
--;
;;;;-;.;H;
剩余24页未读,继续阅读
脉泳
- 粉丝: 13
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0