好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

CDT规约CRC校验.pdf

3页
  • 卖家[上传人]:飞***
  • 文档编号:47787508
  • 上传时间:2018-07-04
  • 文档格式:PDF
  • 文档大小:24.11KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • CDT规约 CRC (循环冗余校验)校验机制计算(开始以为校验很简单,对于没有接触过校验方式的人来说理解还是有困难 的,以下把我的理解介绍如下) 1、 校验的基本原理 站端的远程数据终端设备RTU通过数模转换 A/D 将实时数据转换成二进 制码发送到接受端,在通讯的传输过程中,由于线路杂音以及其他的各种干 扰,容易使这些拍好的信息码产生错误,收端的前置机负责识别这种错误的 信息码,在 CDT规约中,前置机还负责舍弃这些错误码 这样就需要用到校验,在发送端,由RTU依据规约的不同,根据传输的 具体信息,计算出一个CRC附加值在数据尾部一起传输;在收端,用同样的 方法生产一个 CRC值,与收到的对比,若相同,认为信息正确,不同,则判 断信息错误,并舍弃 2、 CRC码集选择的原则 若设码字长度为 N,信息字段为 K位,校验字段为 R位(N=K+R) ,则对于 CRC码集中的任一码字,存在且仅存在一个R次多项式 g(x),使得 V(x)=A(x)g(x)=xRm(x)+r(x); 其中: m(x)为 K次信息多项式,r(x)为 R-1次校验多项式, g(x)称为生成多项式: g(x)=g0+g1x+ g2x2+...+g(R-1)x(R-1)+gRxR 发送方通过指定的g(x)产生 CRC码字,接收方则通过该g(x)来验证收到 的 CRC 码字。

      3、 CRC校验码生成方法简单例 信息字段代码为 : 1011001;对应 m(x)=x6+x4+x3+1 假设生成多项式为: g(x)=x4+x3+1 ;则对应 g(x)的代码为 : 11001 x4m(x)=x10+x8+x7+x4 对应的代码记为: 10110010000; 采用多项式除法 : 得余数为 : 1010 (即校验字段为: 1010) 发送方:发出的传输字段为: 1 0 1 1 0 0 1 1 0 10 信息字段校验字段 接收方:使用相同的生成码进行校验:接收到的字段 /生成码(二进制除 法)如果能够除尽,则正确 4、 常用 CRC ” 权”( 即多项表达式 )定义 CRC-8 : g(x)=X8+X2+X1+1 CRC-12 :g(x)= x12+ x11 + x3+ x2 +x+1 CRC-16 :g(x)= x16+ x15 + x2 +1 CRC-32 :g(x)= x32+ x26 + x23+ x22 + x16+ x12+ x11 + x10+ x8+ x7+ x5+ x4+ x2 +x+1 CRC-CCITT:g(x)= x16+ x12 + x5 +1 5、 CDT规约中的 CRC校验 我国微机远动系统中循环传送方式的码制是(48、40)码,这种码有两 个特点: 1) 、n-k=8,比较小,这就是验证码数据位是8位的意思; 2) 、k=40,是 n-k 的整数倍。

      这样,编码和算法会相对容易实现一些 我们知道,无论是控制字,还是信息字,它们的字结构是一样的,后8 位均为校验码,按照部颁CDT规约,这种( 48、40)码组的生成多项式为G (X)=X8+X2+X+1 或 G(X)=107H,陪集码为 FFH 部颁 CDT规约中,字节和位的排列规则是:字节由低到高上下排列,字 节的位由高到低左右排列按照这个规则,假设有一个K 位的信息字,对应 多项式为 K (X) ,它的 CRC值的计算方法是:用一个r(r=8)次的多项式即 G (X)做除数,把在信息字尾部增添r(r=8)个 0 所构成的新信息字对应的多 项式作为被除数,二者做模2 除法,最后得到的r 位余数即余式 R(X)就是 K(X)的 CRC 值校验码 了解以上知识,就可以对CDT码制的校验码进行计算了 6、 实例讲解 方法一: 某站某时刻一信息字为f10000000094,我们来判断一下检验码的正确性 1) 首先将 f10000000094除去 94H(校验码 )写成二进制码形式,并补加8 个 0; 2) 用上述二进制编码除以生成多项式G(X)=X8+X2+X+1 ,即 100000111; 3) 用模 2 加法(即不进位加法,相同出0,相异出 1)算余式; 4) 得出余式后,加陪集码FFH ,即逐位取反,所得R(X)即为校验码。

      11110001 00000000 00000000 00000000 00000000 00000000 10000011 1 --- ---- --- --- --- --- --- --- 01110010 10 1000001 11 --- --- --- --- --- --- --- --- 0110011 010 100000 111 ------- ----- ----- --- --- --- - ⋯⋯⋯ ⋯⋯⋯ .. ------------ ----------- ------------------------- -------------------------- 1101011 1101011(D)+FF(H)=10010100(D)=94(H) 由此可判断该校验码是正确的,那么,该信息字也就是正确的 我们还可以用如下方法(查表法)判断校验码的正确性方法二: 1) 将 40 个码字分为 5 个 8 位消息段; 2) 查出第一段对应的部分余式r1; 3) 用第二段 M2+r1=M2ˊ,再查出 M2ˊ对应的部分余式r2;4) 以此类推 ,得出 r5; 5) r5 再与陪集码 FFH相加,即得到最后的 R(x)。

      首先,将 40个码字分为 5 个 8 位消息段 M1=11110001、 M2=00000000、 M3=00000000、 M4=00000000 、 M5=00000000 6)查 G(x)=X8 +X2 +X +1 生成(8i+8,8i)码的软件表 ,如下表所示:0 1 2 3 4 5 6 7 8 9 a b c d e f 0 00 07 0e 09 1c 1b 12 15 38 3f 36 31 24 23 2a 2d 1 70 77 7e 79 6c 6b 62 65 48 4f 46 41 54 53 5a 5d 2 e0 ee ee e9 fc fb f2 f5 d8 df d6 d1 c4 c3 ca cd 3 90 99 9e 99 8c 8b 82 85 a8 af a6 a1 b4 b3 ba bd 4 c7 c0 c9 ce db dc d5 d2 ff f8 f1 f6 e3 e4 ed ea 5 b7 b0 b9 be ab ac a5 a2 88 88 81 86 93 94 9d 9a 6 27 20 29 2e 3b 3c 35 32 11 18 11 16 03 04 0d 0a 7 57 50 59 5e 4b 4c 45 42 66 68 61 66 73 74 7d 7a 8 89 8e 87 80 95 92 9b 9c b1 b6 bf b8 ad aa a3 a4 9 f9 fe f7 f0 e5 e2 eb ec c1 c6 cf c8 dd da d3 d4 a 69 6e 67 60 75 72 7b 7c 51 56 5f 58 4d 4a 43 44 b 19 1e 17 15 05 02 0b 0c 21 26 2f 28 3d 3a 33 34 c 4e 49 40 47 52 55 5c 5b 76 71 78 7f 6a 6d 64 63 d 3e 39 30 37 22 25 2c 2b 06 01 03 0f 1a 1d 14 13 e e0 a9 a0 a7 b2 b5 bc bb 96 91 98 9f 8a 8d 84 83 f de d9 d0 d7 c2 c5 cc cb e6 e1 e8 ef fa fd f4 f3 查上表可知: M1 对应的部分余式 r1=d9; M2ˊ= M2+r1=d9, 查表 r2=01; M3ˊ= M3+r2=01, 查表 r3=07; M4ˊ= M4+r3=07, 查表 r4=15; M5ˊ= M5+r4=15, 查表 r5=6b; 6b(H)+FF(H ) =01101011(D)+11111111 (D) =10010100(D)=94(H) 由此亦可判断该校验码和该信息字的正确性。

      大家可以通过上面的列子, 尝试找些报文计算一下校验码的正确性,希望本文的 经验有助于大家对CRC校验码的学习。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.