循环冗余校验码的原理及应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

12020年1月21日星期二CRC产生的背景在数字通信系统中可靠与快速往往是矛盾的。如何合理地解决可靠与速度这一对矛盾呢?可靠性快速性可靠性快速性22020年1月21日星期二CRC产生的背景1.为追求快速性波形变窄2.为追求可靠性传送消息速率变慢采用差错控制每个码元所占时间缩短能量减少可用的通信系统32020年1月21日星期二CRC的特点CRC的主要特点检错能力极强开销很小易于实现1.ARJ,LHA,ZIP等压缩软件采用的是CRC-32;2.GIF,TIFF等图像存储格式;3.所有链路层或网络接口层协议中,例如HDLC、DDCMP等众多领域。应用范围广42020年1月21日星期二CRC原理将待发送的位串看成系数为0或1的多项式;收发双方约定一个生成多项式G(x)(其最高阶和最低阶系数必须为1),发送方用位串及G(x)进行某种运算得到校验和,并在帧的末尾加上校验和,使带校验和的帧的多项式能被G(x)整除;接收方收到后,用G(x)除多项式,若有余数,则传输有错。52020年1月21日星期二CRC校验和计算法1.若生成多项式G(x)为r阶(即r+1位位串),原帧为m位,其多项式为M(x),则在原帧后面添加r个0,即循环左移r位,帧成为m+r位,相应多项式成为xrM(x);2.按模2除法用G(x)对应的位串去除对应于xrM(x)的位串,得余数R(x);3.按模2减法(即模2加)从对应于xrM(x)的位串中减去(加上)余数R(x),结果即传送的带校验和的帧多项式T(x)。T(x)=xrM(x)+R(x)62020年1月21日星期二用CRC运算能进行校验的简单证明:发送方接收方设xrM(x)除以G(x)的商和余数分别为Q(x)和R(x)。则有:xrM(x)=G(x)Q(x)+R(x)即:接收方收到带CRC校验和的帧多项式T(x)=xrM(x)+R(x)。由于模2加减相当于异或运算,于是接收方模2除后商Q(x),余数0.得证!72020年1月21日星期二举一个例子(1)发送数据110011;(2)生成多项式G(x)=x4+x3+1;(3)将要发送的数据系列左移4位,新的序列为1100110000;(4)按模2算法,将生成的新序列除以生成多项式序列;(5)将余数多项式比特序列加到新的序列中即得发送端传送序列。下面。1000011100111001100001100110000100111001110011100182020年1月21日星期二接收方校验方案方案二:提取接收到序列的信息码元,重复发送方的操作xrM(x),再除以生成多项式G(x),如果余数R’(x)=R(x),则证明传输正确。方案一:直接用接收到的序列除以生成多项式G(x),如果余数R’(x)=0,则证明传输正确。接收方校验方案92020年1月21日星期二生成多项式G(x)的国际标准CRC-12:x12+x11+x3+x2+x+1CRC-32:x32+x26+x23+x22+x16+x12CRC-8:x8+x2+x+1CRC-10:x10+x9+x5+x4+x2+1CRC-16:x16+x15+x2+1+x11+x10+x8+x7+x5+x4+x2+x+1CRC-CCITT:x16+x12+x5+1102020年1月21日星期二CRC软件实现过程基于MFC的CRC-4的算法如何进行两列数字序列的除法运算得到余式------校验码R(X)通过输入任意的信息码元序列,经过CRC-4的校验,在接收端进行检错1.MFC仿真界面及功能介绍2.核心步骤算法解释3.仿真演示112020年1月21日星期二1.MFC仿真界面及功能介绍122020年1月21日星期二2.核心步骤算法解释Start请点击按钮打开软件的实现过程132020年1月21日星期二CRC的应用---HDLC协议142020年1月21日星期二CRC的应用---HDLC协议HDLC是一个第二层协议,它用于来连接点到点的串行设备,它运行在广域网两个不同的地方。每个路由器将会解封装HDLC的数据包对它们进行转发到LAN或者是丢弃。HDLC完整的帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成。HDLC协议简介152020年1月21日星期二PPP/HDLC发送端框图串行发送原始数据并行转换插0处理帧标志CRC计算162020年1月21日星期二生成过程1234在开始时CRC寄存器的每一位都预置为1,把CRC寄存器与8bits的数据进行异或运算;CRC寄存器内的数据从高到低进行第一次移位,在最高位补零,而最低位(已被移出CRC寄存器)如果为1,则把寄存器与生成多项式码进行异或运算,如果LSB为零,则保持;重复8次步骤2的移位,则第一个8bits数据处理完毕,用此时CRC寄存器的值与下一个8bits数据异或并进行如前一个数据似的8次移位;所有的字符处理完成后CRC寄存器内的值即为最终的CRC值(FCS内的值)。172020年1月21日星期二步骤一1111111111111111寄存器预置全1传输的8bit数据0000000010111100上下进行异或运算1111111101000011182020年1月21日星期二步骤二1111111101000011将得到的数据向右移位011111111010000111010000000000001CRC-16生成多项式上下进行异或运算1101111110100000若最低位是1,则需要异或高位补0192020年1月21日星期二步骤三1111111101000011将得到的数据再向右移位0011111111010000111010000000000001CRC-16生成多项式上下进行异或运算1001111111010001重复8次步骤2的移位,则第一个8bits数据处理完毕,用此时CRC寄存器的值与下一个8bits数据异或并进行如前一个数据似的8次移位;202020年1月21日星期二步骤四1111000110111110发送端接收端212020年1月21日星期二PPP/HDLC接收端框图串行接收CRC对比串行转换删0处理数据保存CRC计算标志识别222020年1月21日星期二

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功