文章目录
0.CRC校验概述
- CRC(Cyclic Redundancy Check),循环冗余校验,是数字通讯中常用的信道编码技术。其特征是信息段和校验字段的长度可以任意选定。
- 冗余就是说余数循环。总长为N,信息码长K,则称(N,K)码。
1.CRC基本原理
- 增加冗余码规则。增加冗余码(校验位)后的数量码共N位,包括有效信息(k位),校验信息(r位),则应该满足下列关系:N=k+r <= 2^r-1。 即 r位的校验位最多可以表示2 ^ r 种情况,排除掉正确的情况(即上面的-1),剩下的 2 ^ r-1应当大于等于有效信息和校验信息的总bit数。
- 生成多项式G(x)。 收发双方约定一个统一的标准,发送方利用G(x)对N位数据码做模2除法运算,产生校验码。接受方利用G(x)对收到的N位数据码做模2除法运算来检测是否有错误(余数为0表示没错),若有错误,则利用校验码修复或者要求发送方重新发送数据。G(x)应该满足下列条件:
- 最高位和最低位必须为1;
- 被发送数据任何一位有错误,接受方除以G(x)后余数不为零;
- 不同位数错误,余数不同;