2.2 CRC-4 我们跳过 CRC-2,CRC-3(原理是一样的),直接来看 CRC-4 吧。 下面进行 模 2 除: CRC-4 最后的余数就是校验码,即 1110,所以信息串为:0b0011 0101 1011 1110(最后四位是校验码)。 对方接收到信息串后,以同样的方法对前 12 位信息进行 CRC-4 校验算出校验码,并将算出的校验码与接收到的校验码比对,如果一样则认为信息传输无误,否则认为传输有误请求重新发送。 CRC-4 的错误检测能力比 CRC-1(奇偶校验)要强些,因为 CRC-4 的“冗余量”(4 位)CRC-1(1 位)更大了。
知道CRC计算原理后,再来看一下CRC-4的实现:原始的 CRC 校验算法:根据多项式除法,我们就可以得到原始的 CRC 校验算法。 以 CRC-4 为例,生成多项式 g(x)=x^4 + x + 1 ,对应了一个 5bits 的二进制数字 10011 ,那么 reg 就是 5 bits 。 reg = (reg<<1) | (data[pos]); pos++; }return reg; // reg中的后r位存储的就是余数 上面只是简述一下CRC算法的原理,如果采用CRC
对于e1而言,它们默认是CRC-4、HDB3,时隙最大范围为1~31。 图5 PRI配置 配置信令接口,对E1链路而言,是采用第16路时隙作为信令时隙。 SanJose1(config)#controller e1 1/0 //配置E1 controller SanJose1(config-controller)#framing crc
标准CRC生成多项式如下表: 名称 生成多项式 简记式* 标准引用 CRC-4 x4+x+1 3
前者可以随机选择,也可按国际上通行的标准选择,但最高位和最低位必须均为“1” 六、循环冗余的计算 实例: 由于CRC-32、CRC-16、CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样