CRC校验的设计与实现_第1页
CRC校验的设计与实现_第2页
CRC校验的设计与实现_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.3.4 循环冗余校验的设计与实现本系统中数据通信技术占据重要地位,是保证数据采集准确性的关键。客户端与称重仪表进行通信时,为减小产量信息在传输过程中由于电磁干扰等因素导致的错误,需进行数据校验。数据校验方法有很多,比较传统的有:行列冗余校验、重复码校验、奇偶校验、循环冗余校验等。本系统采用循环冗余校验()进行通信过程中的数据校验。是一种检错能力很强的循环码,利用模2取余的原理对数据进行循环校验,计算效率高且误判概率极低,几乎为零。从性能和开销上考虑,远优于传统的算术和校验及奇偶校验。1编码原理校验通常采用多项式编码的方式,参与校验的数据信息(以下简称“待校验数”)可看作一个阶的二进制形式的

2、多项式,即。例如,一个6位二进制数101101可表示为:(为方便下文描述,把该类型的多项式称为“转换多项式”)。的编码方式是把待校验数转变成二进制数,然后再将转变为转换多项式,令(式中的表示对中括号内的式子进行取余运算),将余数做为待校验数的校验码。校验码具体求解步骤如下:假设待校验数是位二进制形式的多项式,把转变为转换多项式,位数为。在待校验数的末尾附加个零,则待校验数的长度变为位,其对应的二进制形式的多项式变成。把和进行取余运算,设余数为,则,位数为。则就是经过编码后的校验码。把以模2除法的方法求得,然后减去,得到二进制形式的多项式就是包含了CRC校验码的待校验数。2解码原理检验原理是在一

3、个位待校验数后添加个二进制序列,组成一个长度为 位的二进制数据。例如,一个位二进制数据块为,位校验码为,得到的位二进制校验码;附加在位待校验数后的位二进制序列与之间存在一种校验关系。若数据传输过程中因电磁干扰、环境因素等原因造成待校验数中部分数据产生错误,那么这种校验关系就被破坏。所以通过检查此校验关系,即可实现对数据传输准确性的校验。由编码过程可得,数据接收方接收的位待校验数是码和的组合,去除的最后位数据,就得到原始待校验数。因此,CRC解码过程是对接收的前位数据进行与编码相同的校验,数据通讯双方采用相同的多项式,将校验得到的位校验码与的最后位校验码进行对比,以两者是否一致为依据来检验待校验

4、数在传输过程中是否出错。若两者不同,则待校验数在传输过程中产生错误;若两者相同,则表明待校验数在传输过程中未出现错误。编码实际上是将位待校验数转变成能够被除尽的位二进制多项式。因此解码过程亦可通过对进行取余运算实现,即:。若余式,则判定数据传输过程中产生错误;反之,则表明数据传输正常。目前,大多数解码电路按照此运算方式进行数据数据传输过程中错误的校验。常用的校验算法有两种:查表法,计算法。本系统设计的校验算法采用第一种方法,具体程序设计如下: CRC校验算法。crc = (crcTable(crc And &HFF00) / 256) And &HFF) Xor (DataBuf(i) And

5、 &HFF) Xor(crc And &HFF) * 256) And &HFF00)Private Function CRC16(ByRef DataBuf() As Byte, ByVal LenData As Integer) As Long Dim J, K, L, M, N, O As Long Dim CRC_CHECK As Long Dim i As Integer For i = 0 To GET_DATA_LEN(DATA_REC) - 1 J = (crc And &HFF00) / 256 K = i And &HFF L = DataBuf(i) And &HFF M = J Xor K N = crc_Table(L) O = (crc And &HFF) * 256 CRC_CHECK = M Xor N Next i If CRC16 = CRC_CHECK Then Call D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论