HDLC(High-Level Data Link Control)(对比以太网)

4 篇文章 0 订阅

1、HDLC是什么

高级数据链路控制HDLC(High-Level Data Link Control),数据链路层是OSI参考模型的第二层,相当于以太网MAC层。

对物理层没有详细的规定,对数据速率、编码方式、传输介质等没有规定,可以采用光纤CMI、NRZI等编码。

     

2、HDLC的分类

主要分为两大类,一般使用时只使用某一特定的子集。以太网不同协议在datalink 层也不同,常见的以太网帧结构由ETHERNET IIIEEE802.3,详见帧结构一章的图片。

面向字符型     

       国际标准化组织制定的ISO 1745   、  IBM公司的二进制同步规程BSC  、国家标准GB3543-82(缺点使用不同字符集的两个站之间很难通信)。

面向比特型

         ITU-T制定的X.25建议的LAPB、ISO制定的HDLC、美国国家标准ADCCP、IBM公司的SDLC。

3、HDLC的拓扑结构、响应方式

主站、从站、复合站(同时有主从功能)。三种基本操作方式如下,U帧配置工作方式,帧结构见U帧详述表格。以太网拓扑结构:总线型、环形、星型及其它符合结构,当前基本全双工。

1) 正常响应方式(NRM)

   适用于不平衡链路结构,即用于点-点和点-多点的链路结构中,特别是点-多点链路。主站控制整个链路的操作,负责链路的初始化、数据流控制和链路复位等。从站只有在收到主站的明确允许后,才能发出响应。

2) 异步响应方式(ARM)

  也适用于不平衡链路结构。它与NRM不同的是:在ARM方式中,从站可以不必得到主站的允许就可以开始数据传输。显然它的传输效率比NRM有所提高。

3) 异步平衡方式(ABM)

  适用于平衡链路结构。链路两端的复合站具有同等的能力,不管哪个复合站均可在任意时间发送命令帧,并且不需要收到对方复合站发出的命令帧就可以发送响应帧。ITU-T X.25建议的数据链路层就采用这种方式

4) 扩充方式。除三种基本操作方式,还有三种扩充方式,即扩充正常响应方式(SNRM)、扩充异步响应方式(SARM)、扩充异步平衡方式(SABM)它们分别与基本方式相对应。

4、帧结构及分类、功能

帧头帧尾F标志为0x7E=8'b01111110。所有数据串行发送没5个‘1’插入1个‘0’。前一个帧的结束标志字段F可以兼作后一个帧的起始标志字段,空闲发0x7E。右图为以太网数据链路层帧结构,空闲时不发数据。

          

  • 地址字段(A)

 站的地址。在使用不平衡方式传送数据时(采用NRM和ARM),地址字段总是写入从站的地址;在使用平衡方式时(采用ABM),地址字段总是写入应答站(本次通讯的从站)的地址。

地址字段的长度一般为8bit=256个站的地址。在许多系统中规定,地址字段为“11111111”时,定义为全站地址,即通知所有的接收站接收有关的命令帧并按其动作;全“0”比特为无站地址,用于测试数据链路的状态。有效地址有254个,对一般的多点链路是足够的。

但在某些情况下,如使用分组无线网,用户可能很多,可使用扩充地址字段,以字节为单位扩充。在扩充时,每个地址字段的第1位用作扩充指示,即当第1位为“0”时,后续字节为扩充地址字段;当第1位为“1”时,后续字节不是扩充地址字段,地址字段到此为止。

  • 控制字段(C)

控制字段用来表示帧类型、帧编号以及命令、响应等。分为三种类型:信息帧、监控帧、无编号帧,分别简称I帧(Information)、S帧(Supervisory)、U帧(Unnumbered),允许扩展为2字节。

N(S)   发送帧序列编号;

N(R)   期望接收的帧序列编号,且是对N(R)以前帧的确认;接收方把收到的编号与自己期望的编号对比确认。

S        监控功能比特

M        无编号功能比特

P/F      查询/结束(Poll/Final)比特,作为命令帧发送时的查询比特,以P位出现;作为响应帧发送时的结束比特,以F位出现。

4.1  信息帧(I帧)

I帧用于数据传送,它包含信息字段。由于是全双工通信,通信每一方都各有一个N(S)和N(R)。特别强调指出:N(R)带有确认的意思,它表示序号为N(R)-1以及在这以前的各帧都已经正确无误地收妥了。

4.2 监控帧(S帧)

监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送请求等功能。监控帧不具有信息字段,总长6字节。监控帧共有4种,表1是这4种监控帧的代码、名称和功能。

前三种用在返回N连续ARQ方法中,最后一种只用于选择重发ARQ方式中(只否认N帧,请求重发);

RR帧和RNR帧还具有流量控制的作用,RR帧表示已经作好表示接收帧的准备,希望对方继续发送,而RNR帧则表示希望对方停止发送(这可能是由于来不及处理到达的帧或缓冲器已存满)。

(以太网发送可以设置两帧发送间隔,并有重发机制)

4.3  无编号帧(U帧)

用于链路控制(建立、查询、断开等),不带编号,可在任何需要的时刻发出,而不影响带编号的信息帧的交换顺序。它可以分为命令帧和响应帧。

根据通信双方的链路结构和传输响应类型,HDLC提供了三种基本操作方式、三种扩展操作方式。

4.4  P/F比特的使用

从站只有收到主站发出的P比特为1(对从站的查询)的命令帧以后才能发送响应帧。若从站有数据发送,则在最后一个信息帧中将F比特置1;若无数据发送,则应在回答的S帧中将F比特置1。

传送帧的一些主要参数按照“地址,帧名和序号,P/F”的先后顺序标注。地址是指地址字段中应填入的站地址;帧名是指帧的名称,如RR、I;序号是指监控帧中的N(R) 或信息帧中的N(S)N(R),如RR4、I31(第1个数字是N(S),第2个数字是N(R))。P/F是在其为1时才写上P或F,表明此时控制字段的第5比特为1。

工作过程:A问B是否有数据查询P,B向A发数据4帧并相应F,A再向B确认不查询。A问C是否有数据查询P,C无数据用S帧响应F。

两种确认方式:S帧和I帧中的P/F都可以用来确认;信息帧中的N(R)。

在两个复合站全双工通信时,任何一方都可随时使P=1,这时对方就要立即回答RR帧,并置F=1,这样就可以收到对方的确认了。

如果不使用P/F比特,则收方不一定马上发出确认帧,比如收方可以在发送自己的信息帧时,利用N(R)把确认信息发出。

 

5、工作过程举例

建立配置链路(U帧)  →  传输信息(I/S帧)  →  断开链路(U帧)

HDLC执行数据传输控制功能,一般分为3个阶段:数据链路建立阶段、信息帧传送阶段、数据链路释放阶段。第2阶段的完成需要用到信息帧和监控帧,第1、3阶段的完成需要用到无编号帧

复合站两头均可发起控制

6、FPGA代码设计注意事项

  • 在总线空闲时发送同步码0x7E,仅此同步码中可以出现大于5个连续‘1’;检测到7E且后一字节!=7E,认为一帧开始,检测到[6:1]=6'b111111认为一帧结束,[7][0]可能也=1强制终止一帧。
  • 插‘0’删‘0’:只有标志同步码0x7E中可以连续>5个‘1’,其他情况必须插入‘0’,接收端再删除;

                

  • 发送顺序:每个字节 低位先发;使用状态机实现FPGA中的顺序执行。
  • CRC:CRC16 发送时先发低字节。代码计算可使用查表法、实时计算法(快捷模块方法见另一篇博文)。使用CRC计算器时的配置项见下图。

                   

  • 地址处理:在FPGA中对地址进行过滤,类似以太网处理,减少CPU干预。
  • 对下的物理层速率、编码方式、传输介质(光、电)可根据需要设计,无规定;

          曼彻斯特编码:用信号的边沿来表示二进制数据“0”和“1”,比如信号的上身沿表示“1”,下降沿表示“0”,而这种跳变一般发生在位帧的中间;

          差分曼彻斯特编码:遇到0则在起始位置处跳变,1则不变化。

          NRZI:不发生跳跃,数据被编码为0;若发生跳跃,数据被编码为1。

          B1B4:1用1100表示,0用1010表示。

          8B / 10B Encode/Decode详解  以太网物理层编码

          CMI编码:0输出“01”,当输入“1”码时“00“和”11“交替出现

     

  • 工作在数据链路层的其他协议:SV,GOOSE,二层以太网交换协议;
  • 与CPU的通讯总线接口时序要特别注意同步时序,必要时使用FIFO,将控制信号一并压入fifo。内部关键信号(如状态机启动、转换信号)不可组合逻辑太长,打拍同步.
  • 设计框图

  • HDLC-Lattice Demo输出无编码。

7、参考文献

 

 

1、《高级数据链路控制规程HDLC 》 https://wenku.baidu.com/view/a5456bc34028915f804dc284.html  

2、《HDLC_controller FPGA设计原理框图》https://download.csdn.net/download/leixj025/13984089

3、《常见以太网帧结构》ALIFPGA   CSDN博文 

4、ISO/IEC 13239

  • 4
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值