通信人家园

标题: HDLC的帧结构和CRC校验  [查看完整版帖子] [打印本页]

时间:  2005-1-18 11:10
作者: andy_qhz     标题: HDLC的帧结构和CRC校验

HDLC规程主要由帧结构、规程要素、规程类别三个部分组成[1]。为了使FPGA的设计能够实现HDLC的基本功能并能按照各项标准的规定灵活采用不同的CRC校验算法,首先回顾一下HDLC基本的帧结构形式。
HDLC是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以帧的形式传送。

      以下是ISO/IEC 3309标准规定的HDLC的基本帧结构。

      起始标志 地址数据  控制数据  信息数据  帧校验序列 结束标志
      01111110 8bits 8bits 8bits 16或32bits 01111110

     其它的HDLC标准也有类似的帧结构。每帧的起始和结束以"7E"(01111110)做标志,两个"7E"之间为数据段(含地址数据、控制数据、信息数据)和帧校验序列。帧校验采用CRC算法,对除了插入的"零"以外的所有数据进行校验。为了避免将数据中的"7E"误为标志,在发送端和接收端要相应地对数据流和帧校验序列进行"插零"及"删零"操作。

     各种HDLC间的区别之一是帧校验序列的CRC算法不同,这种不同表现在几个方面:
     a. 帧校验序列的位数不同,如16位和32位等。
     b. CRC生成多项式不同,如对于16位的CRC,CCITT V.41标准的多项式是x16 + x12 + x5 + 1,ANSI CRC-16标准的多项式是x16 + x15 + x2 + 1等。
     c. CRC序列的初始化条件不同,如可以初始化为全"0"、全"1"等。
    d. CRC计算结果的处理方式不同,如可以直接把CRC结果发送,或对CRC结果取反后再发送等。
    e. 对接收到的数据做CRC校验时,合格判据不同。因为有了上述的不同处理,自然会得到不同的结果,由此造成合格判据不同。例如有的标准以校验结果"1D0F"判为无错误[2]。而有的ASIC芯片以校验结果"F0B8"判为无错误[3]。
显然,对于这些应用,可编程逻辑芯片正可以发挥自己的特长。
时间:  2005-1-18 11:30
作者: bigcats

哪儿搞来的资料?不错哦
时间:  2005-1-20 17:12
作者: andy_qhz

有点冷淡,大家不怎么关心。。。
时间:  2005-1-20 20:06
作者: hdragonfly

做设计的用得上,做维护的看看吧。




通信人家园 (https://www.txrjy.com/) Powered by C114