软考网工难点分析之三crc循环冗余校验

yttitan      2022-02-16     287

关键词:

在数据传输的过程中,不可避免会出现差错,为判断一个数据块中是否存在传输错误,发送方可在数据块中加入一些冗余信息,使接收方可通过这些冗余信息判断传输是否出错,这些加入的冗余信息称为差错编码。


差错编码分为检错码和纠错码。
检错码只能让接收方判断数据块是否有错,但无法确认错误的位置,主要有奇偶校验码和CRC循环冗余码。
纠错码不仅能发现错误,而且能纠正错误,主要是海明码。由于纠错码开销较大,所以不适合于计算机通信。在计算机通信中主要使用检错重发方法,主要使用的是检错码,其中CRC是一种能力相当强的检错码,并且实现编码和检错的电路比较简单,因而得到了广泛的应用。


CRC编码主要用于数据链路层,它的基本思想将二进制位串看成系数为0或1的多项式。一个n位的帧被看成是n-1次多项式的系数列表。最左边是xn-1项的系数,接着是xn-2项的系数,依此类推,直到X0项的系数。如二进制数11100011可以表示为多项式X7+X6+X5+X+1。同样的,多项式X4+ X+1,可以表示为二进制数10011。


假设发送方要发送的数据帧是1010101010,在进行CRC编码时,发送方和接收方必须事先商定一个生成多项式,如X4+ X+1,对应的二进制数为10011,其最高阶为4,则在帧1010101010后面附加4个0,成为10101010100000。
用10101010100000除以10011,得到的余数就是CRC校验码。

这个除法用到的是异或运算,基本规则是两个相同的数相除,其结果是0,两个不同的数相除,其结果是1。最终得到的CRC校验码为0100(生成多项式的最高阶为几,就可以得到一个几位的CRC校验码),然后将10101010100000用模2减法(实际上也是异或运算)减去CRC校验码0100,就得到了最终实际要传输的数据帧10101010100100。


大家可以自己练习一下这道考题:

若信息码字为11100011,生成多项式 G(X)=X5+X4+X+1,则计算出的 CRC 校验码为 (16) 。
    (16)A.01101    B.11010    C.001101    D.0011010

crc(循环冗余校验)

.../blog.csdn.net/liyuanbhu/article/details/7882789写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,... 查看详情

crc循环冗余校验码(cyclicredundancycheck,crc)的理论与误码率matlab仿真和分析

目录1.CRC理论概述2.matlab程序3.误码率性能仿真1.CRC理论概述    CRC校验利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(即CRC码)r位,并附在信息后面,构成一... 查看详情

循环冗余校验(crc)算法入门

http://blog.csdn.net/liyuanbhu/article/details/7882789前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。... 查看详情

crc循环冗余校验(代码片段)

CRC循环冗余校验publicclassCrcTestprivatestaticfinalIntegercrctab16[]=0X0000,0X1189,0X2312,0X329B,0X4624,0X57AD,0X6536,0X74BF,0X8C48,0X9DC1,0XAF5A,0XBED3,0XCA6C,0XDBE5,0XE97E,0XF8F7,0X1081,0X0108,0X3393,0X 查看详情

crc循环冗余校验检错的原理

比起奇偶校验码(PCC)只能校验一位错误,循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。1.CRC校验原理CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项... 查看详情

crc循环冗余校验

CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等... 查看详情

如何简单的计算且通俗的理解crc码(循环冗余校验码)含过程推演详细步骤

如何简单的计算且通俗的理解CRC码(循环冗余校验码)CRC码的出现的契机什么是模2运算怎么简单的求CRC码CRC码的出现的契机CRC(CyclicRedundancyCheck)码即循环冗余校验码,在计算机运行及数据传输时,由于... 查看详情

软考网络工程师冲刺阶段重要考点学习

软考网络工程师冲刺直播课程http://edu.51cto.com/course/8416.html冲刺要点:分专题重点讲解软考网工选择题第1-35题中必考题型及快速解题、提分方法专题一:CPU、内存、总线等专题二:数字编码、传输速率计算、调制解调及PCM计算等... 查看详情

crc校验的实现(c语言,crc16)(代码片段)

一、CRC是什么?循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码... 查看详情

crc校验

...验,也是通信模块里面常常使用到的技术。CRC简介CRC即[循环冗余校验码]:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余 查看详情

crc校验

一、什么是CRC校验CRC校验(即循环冗余校验)是数据通讯中最常采用检错纠错的一种校验方式,它广泛应用于数据链路层的数据传输中,以保证数据传输可靠性的一种差错检测措施。其特征是信息字段和校验字段的长度可以任意... 查看详情

2019年下半年软考各科真题及答案解析免费下载(网工网规信管集成软设信安信息系统等)

【徐朋出品,必属精品】作为51CTO学院的软考金牌讲师(最高级),本着对广大学员负责的态度,在每年同学们参加完软考考试,我都会尽早的给大家发布各科的真题详细解析资料。一方面是为了帮助参加软考考试的同学对自己... 查看详情

2019年下半年软考各科真题及答案解析免费下载(网工网规信管集成软设信安信息系统等)

【徐朋出品,必属精品】作为51CTO学院的软考金牌讲师(最高级),本着对广大学员负责的态度,在每年同学们参加完软考考试,我都会尽早的给大家发布各科的真题详细解析资料。一方面是为了帮助参加软考考试的同学对自己... 查看详情

crc校验码

...参见此文:http://winda.blog.51cto.com/55153/1063878 5.3.2 循环冗余校验检错方案   上节介绍的奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校 查看详情

crc校验8(代码片段)

什么是CRC校验?CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附... 查看详情

crc校验原理及步骤

什么是CRC校验?CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附... 查看详情

crc24循环冗余校验码的fpga实现(代码片段)

    CRC即循环冗余校验码(CyclicRedundancyCheck[1]):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对... 查看详情

奇偶校验码与循环冗余校验码crc

参考技术A物理层只管传输比特流,无法控制是否出错,所以数据链路层负责起“差错监测”的工作,检测比特流传输是否有出现错误。在比特流尾部添加一位比特位来检查比特率传输完成后是否有出差。假设需要传输00110010这个... 查看详情