CRC原理
CRC校验的基本思想是:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(即CRC码)R位,并附在信息后边,构成一个新的二进制码序列数共(K+R)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。16位的CRC码产生的规则是先将要发送的二进制序列数[M(X)]左移16位后,再除以一个多项式[G(X)],最后所得到的余数即是CRC码[R(X)]。16位生成多项式G(X)由协议规定,其结构及校错效果要经过严格的数据分析与实验后确定,目前已有多种生成多项式列入国际标准中。例如:
基于C8051F的CRC校验算法的实现