首页>>科技 >>内容

crc循环冗余校验码算法全称,crc循环冗余校验码算法

发布时间:2023-10-13 10:36:28编辑:温柔的背包来源:

很多朋友对crc循环冗余校验码算法全称,crc循环冗余校验码算法不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

crc循环冗余校验码算法全称,crc循环冗余校验码算法

一、CRC简介循环冗余校验(CRC)是根据网络数据包或计算机文件等数据生成短的固定位数校验码的哈希函数,主要用于检测或校验数据传输或存储后可能出现的错误。它使用除法和余数的原理来检测错误。

在数据传输的过程中,无论传输系统的设计有多完善,总会出现错误,可能导致链路上传输的一帧或多帧被破坏(出现误码,0变成1或1变成0),使接收端接收到错误的数据。为了尽可能提高接收方接收到的数据的准确性,需要在接收方接收之前对数据进行错误检测,只有检测结果正确,接收方才能真正接受数据。

检测方式有很多种,比如奇偶校验,互联网校验,循环冗余校验。

二、CRC硬件计算过程1。设置CRC寄存器,并将其分配为FFFF(十六进制)。2.将数据的第一个8位字符与16位CRC寄存器的低8位进行异或运算,并将结果存储在CRC寄存器中。3.三号。CRC寄存器右移一位,MSB用零填充,LSB移出并检查。4.如果LSB为0,重复第三步;如果LSB为1,则CRC寄存器和多项式代码不同或。注意:这一步检查的LSB应该是右移前的LSB,也就是第三步之前的LSB。

5.重复步骤3和4,直到完成所有8个班次。此时,一个8位数据被处理。6.重复步骤2至5,直到所有数据都处理完毕。7.CRC寄存器的最终内容是CRC值。

三、循环冗余校验码(CRC)的基本原理是将R位校验码拼接在K位信息码之后。整个编码长度为n比特,所以这种编码也称为(n,k)码。对于给定的(n,k)码,可以证明存在n-k=r的最高次幂的多项式G(x),根据G(x)可以生成k比特信息的校验码,G(x)称为这个CRC码的生成多项式。

校验码的具体生成过程是:假设传输的信息用信息多项式C(x)表示,将C(x)左移r位,就可以表示为C(x)*2R,这样C(X)的右边就会剩下r位,这就是校验码的位置。C(x)*2R除以生成多项式G(x)得到的余数就是校验码。原则思维导图概述:

四、通信和网络中常用的CRC在数据通信和网络中,k通常相当大,由一千甚至上千个数据位组成一个帧,然后用CRC码生成R位奇偶校验位。它只能检测错误,但不能纠正错误。一般r=16,标准的16位生成器多项式为CRC-16=x16x15x21和CRC-CCITT=x16x15x21。

一般来说,由R比特生成器多项式生成的CRC码可以检测所有双重错误、奇位错、突发长度小于或等于R的突发错误、突发长度为(1-2-(r-1))的突发错误和突发长度为(1-2-r)大于r-1的突发错误。例如,对于上述r=16的情况,可以检测到突发长度小于或等于16的所有突发错误、突发长度为17的99.997%的突发错误和突发长度大于17的99.998%的突发错误。所以CRC码的检错能力还是很强的。

这里的突发错误指的是几乎连续发生的一系列错误,突发长度指的是从错误的第一位到错误的最后一位的长度(不过中间并不是每一位都是错的)。

【例1】循环冗余码(CRC)的生成多项式g(x)=x3 x2 1。由该生成多项式生成的冗余比特被添加到信息比特中以形成CRC码。如果发送信息位1111和1100,它们的CRC码分别是_ a _和_ b _码。由于某种原因,接收端接收到的CRC码根据某些规律可以判断为错误,比如码字_ c _、_ d _和_ e _。(1998年第11题)备选答案:A:LLLL l0011111011111101111111。

b:1100100110010111001101100111 c ~ E:000000000110000111100011110100011011000解:A: G (x)=1100。c(x)=1111 c(x)* 23g(x)=11110001101=1011剩余111得到的CRC码为11111b: g (x)=1101,c (x)=1100c (x)。

00101111101余000 00110101101余000 10001101101余000 1001111 1101余1001010001101余000 101100。应该在编码过程中使用_B_ operation。假设使用的生成多项式为G(X)=X4 X3 X 1,原始消息为1100101010101,则编码后的消息为_C_。CRC代码_D_的陈述是正确的。

无线电通信中常用它来规定码字长度为7位,并且其中总是只有3个“1”。这个代码的编码效率是_E_。备选答案:A: 纵横奇偶循环求和循环冗余正比值B: 模除法定点二进制除法二进制-十进制除法循环移位法C:1100101010100111100101100110010101d:可纠错。

能检测出所有小于校验位长度的突发错误能检测出所有小于等于校验位长度的突发错误E:3/74/7Log23/Log27(log 235)/7解:从前面关于CRC的讨论中可以得出以下结论:A: 循环冗余B: 模2除C: G (x)=11011,C (x)=C (x) * 24 g (x)=1100101010

d:从前面关于通信和网络中常用的CRC的讨论,我们可以得出以下结论:所有小于等于校验位长度的突发错误都是可以检测的。e:等比码,也叫等重码,是奇偶校验的推广。在定比码中,奇数或偶数的性质不变,但有一个限制,每个字中1的总数是固定的。根据应用的不同,固定比率码可能需要不止一个额外的奇偶校验位,但是与单个奇偶校验相比,它将增加错误检测能力。

所谓7取3定比码,是指整个码字的长度为7比特,其中1比特的个数固定为3。在所有的128个7位代码(0000000 ~ 111111)中,只有固定位数为1的那个是它的合法码字。合法码字的个数可以通过组合的公式求出:c73=7!/(3!*(7-3)!)=7 * 6 * 5/(1 * 2 * 3)=35编码效率=法定码字所需比特数/码字总比特数=(log235)/7。CRC的实现方式有两种,分别是多项式和查表法。

以上知识分享希望能够帮助到大家!