网站设计有限公司怎么样,制作一个网页的步骤,网站开发 聊天窗口,网站优化推广公司推荐什么是CRC校验#xff1f;CRC即循环冗余校验码#xff1a;是数据通信领域中最常用的一种查错校验码#xff0c;其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查#xff08;CRC#xff09;是一种数据传输检错功能#xff0c;对数据进行多项式计算#xff0c… 什么是CRC校验 CRC即循环冗余校验码是数据通信领域中最常用的一种查错校验码其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查CRC是一种数据传输检错功能对数据进行多项式计算并将得到的结果附在帧的后面接收设备也执行类似的算法以保证数据传输的正确性和完整性。 CRC校验原理 其根本思想就是先在要发送的帧后面附加一个数这个就是用来校验的校验码但要注意这里的数也是二进制序列的下同生成一个新帧发送给接收端。当然这个附加的数不是随意的它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除注意这里不是直接采用二进制除法而是采用一种称之为“模2除法”。到达接收端后再把接收到的新帧除以同样采用“模2除法”这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数做了“去余”处理也就已经能整除了所以结果应该是没有余数。如果有余数则表明该帧在传输过程中出现了差错。 模2除法 模2除法与算术除法类似但每一位除的结果不影响其它位即不向上一位借位所以实际上就是异或。在循环冗余校验码CRC的计算中有应用到模2除法。 例 CRC校验步骤 CRC校验中有两个关键点一是预先确定一个发送送端和接收端都用来作为除数的二进制比特串或多项式可以随机选择也可以使用国际标准但是最高位和最低位必须为1二是把原始帧与上面计算出的除数进行模2除法运算计算出CRC码。 具体步骤 1. 选择合适的除数 2. 看选定除数的二进制位数然后再要发送的数据帧上面加上这个位数-1位的0然后用新生成的帧以模2除法的方式除上面的除数得到的余数就是该帧的CRC校验码。注意余数的位数一定只比除数位数少一位也就是CRC校验码位数比除数位数少一位如果前面位是0也不能省略。 3. 将计算出来的CRC校验码附加在原数据帧后面构建成一个新的数据帧进行发送最后接收端在以模2除法方式除以前面选择的除数如果没有余数则说明数据帧在传输的过程中没有出错。 CRC校验码计算示例 现假设选择的CRC生成多项式为GX X4 X3 1要求出二进制序列10110011的CRC校验码。下面是具体的计算过程 ①将多项式转化为二进制序列由GX X4 X3 1可知二进制一种有五位第4位、第三位和第零位分别为1则序列为11001 ②多项式的位数位5则在数据帧的后面加上5-1位0数据帧变为101100110000然后使用模2除法除以除数11001得到余数。 ③将计算出来的CRC校验码添加在原始帧的后面真正的数据帧为101100110100再把这个数据帧发送到接收端。 ④接收端收到数据帧后用上面选定的除数用模2除法除去验证余数是否为0如果为0则说明数据帧没有出错。 https://blog.csdn.net/d_leo/article/details/73572373