CRC是什么
CRC?
基站维护跟CRC有关系吗?是CRO吧
CRO:CELL RESELECT OFFSET
小区重选偏置
答: CRC (Cyclic Redundancy Check) 循环冗余校验
解释: CRC是数据通信中应用最广的一种检验差错方法。方法是在发送端用数学方法产生一个循环码,叫做循环冗余检验码。在信息码位之后随信息一起发出。在接收端也用同样方法产生一个循环冗余校验码。将这两个校验码进行比较,如果一致就证明所传信息无误;如果不一致就表明传输中有差错,并要求发送端再传输。
对通信的可靠性检查就需要‘校验’,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。
CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。 它的编码规则是:
1、首先将原信息码(kbit)左移r位(k+r=n)
2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。
非常简单,要说明的:模2除就是在除的过程中用模2加,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是:
0+0=1+1=0,1+0=0+1=1
即‘异’则真,‘非异’则假。
由此得到定理:a+b+b=a 也就是‘模2减’和‘模2加’直值表完全相同。
有了加减法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。
例如: g(x)=x4+x3+x2+1,(7,3)码,信息码110产生的CRC码就是:
101
11101 | 110,0000
111 01
1 0100
1 1101
1001
余数是1001,所以CRC码是110,1001
标准的CRC码是,CRC-CCITT和CRC-16,它们的生成多项式是:
CRC-CCITT=x16+x12+x5+1
CRC-16=x16+x15+x2+1
循环冗余码(CRC)
1.CRC的工作方法
在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循环冗余码同样的算法进行校验,若有错,需重发。
2.循环冗余码的产生与码字正确性检验例子。
例1.已知:信息码:110011 信息多项式:K(X)=X5+X4+X+1
生成码:11001 生成多项式:G(X)=X4+X3+1(r=4)
求:循环冗余码和码字。
解:1)(X5+X4+X+1)*X4的积是 X9+X8+X5+X4 对应的码是1100110000。
2)积/G(X)(按模二算法)。
由计算结果知冗余码是1001,码字就是1100111001。
1 0 0 0 0 1←Q(X) G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr 1 1 0 0 1 , 1 0 0 0 0 1 1 0 0 1 1 0 0 1←R(X)(冗余码) |
例2.已知:接收码字:1100111001 多项式:T(X)=X9+X8+X5+X4+X3+1
生成码 : 11001 生成多项式:G(X)=X4+X3+1(r=4)
求:码字的正确性。若正确,则指出冗余码和信息码。
解:1)用字码除以生成码,余数为0,所以码字正确。
1 0 0 0 0 1←Q(X) G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x) 1 1 0 0 1 , 1 1 0 0 1 1 1 0 0 1 0←S(X)(余数) |
2)因r=4,所以冗余码是:11001,信息码是:110011
3.循环冗余码的工作原理
循环冗余码CRC在发送端编码和接收端校验时,都可以利用事先约定的生成多项式G(X)来得到,K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X),由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*K(X)+R(X)。
4.循环冗余校验码的特点
1)可检测出所有奇数位错;
2)可检测出所有双比特的错;
3)可检测出所有小于、等于校验位长度的突发错。
循环冗余校验码(CRC)
CRC校验采用多项式编码方法。被处理的数据块可以看作是一个n阶的二进制多项式,由 。如一个8位二进制数10110101可以表示为: 。多项式乘除法运算过程与普通代数多项式的乘除法相同。多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致。
采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。
CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。CCITT建议:2048 kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验码生成多项式g(x)= 。采用16位CRC校验,可以保证在 bit码元中只含有一位未被检测出的错误 。在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,使用CRC-16,其生成多项式g(x)= ;而在CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用CCITT-16,其生成多项式g(x)= 。CRC-32的生成多项式g(x)= 。CRC-32出错的概率比CRC-16低 倍 。由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所以在通信、计算机等领域运用十分广泛。在一些UART通信控制芯片(如MC6582、Intel8273和Z80-SIO)内,都采用了CRC校验码进行差错控制;以太网卡芯片、MPEG解码芯片中,也采用CRC-32进行差错控制。
MSC和BSC对接的时候,会用到CRC校验的,不过好像都不开这个功能。