HDLC协议控制器的设计解读
HDLC协议概述
HDLC协议概述协议名称:HDLC协议(High-Level Data Link Control Protocol)概述:HDLC协议是一种数据链路层协议,用于在物理链路上可靠地传输数据。
它提供了数据的封装、帧同步、流控制、差错检测和纠错等功能。
HDLC协议广泛应用于各种通信网络,包括广域网(WAN)、局域网(LAN)和串行通信链路等。
1. HDLC协议的基本原理HDLC协议采用点对点(Point-to-Point)或多点(Point-to-Multipoint)拓扑结构,通过数据链路层进行数据传输。
它将数据分割成一系列的帧(Frame),并在每个帧中添加控制信息,以确保数据的可靠传输。
2. HDLC协议的帧结构HDLC帧由以下几个部分组成:- 帧起始标志(Flag):一个字节的特定字符,用于标识帧的起始。
- 地址字段(Address):一个字节的地址标识,用于多点链路中的目标站点识别。
- 控制字段(Control):一个字节的控制信息,用于控制数据的流向和帧的类型。
- 信息字段(Information):可选的数据字段,用于携带传输的有效数据。
- 帧检验序列(FCS):用于检测帧中的差错,通常采用循环冗余校验(CRC)算法。
- 帧结束标志(Flag):一个字节的特定字符,用于标识帧的结束。
3. HDLC协议的工作模式HDLC协议支持三种工作模式:- 基本模式(Normal Mode):用于点对点链路,包含单个发送站点和单个接收站点。
- 非平衡模式(Asynchronous Balanced Mode,ABM):用于多点链路,包含多个发送站点和单个接收站点。
- 平衡模式(Synchronous Balanced Mode,SBM):用于多点链路,包含多个发送站点和多个接收站点。
4. HDLC协议的流控制HDLC协议通过控制字段实现流控制,包括以下几种方式:- 停止-等待流控制(Stop-and-Wait Flow Control):发送方发送一个帧后,等待接收方确认后再发送下一个帧。
基于ARM的HDLC协议通信控制器设计与实现
2019年第16期信息与电脑China Computer & Communication软件开发与应用基于ARM的HDLC协议通信控制器设计与实现何 非(民航云南空管分局 技术保障部,云南 昆明 650000)摘 要:笔者采用ST公司ARM处理器STM32F103RCT6处理器,通过软件方式实现了使用高级数据链路控制(HDLC)协议封装的雷达数据报文在异步串口、以太网、USB等多种接口之间的数据双向传输。
该控制器的硬件成本低、接口丰富、使用灵活,能够满足民航空管系统雷达信号的通信需求。
关键词:高级数据链路控制;ARM;雷达数据处理中图分类号:TP273 文献标识码:A 文章编号:1003-9767(2019)16-075-03Design and Implementation of HDLC Protocol Communication ControllerBased on ARMHe Fei(Yunnan ATM Sub-bureau, CAAC, Kunming Yunnan 650000, China)Abstract: In this paper, STM32F103RCT6 processor, an ARM processor of ST company, is used to realize bidirectional data transmission between asynchronous serial port, ethernet, USB and other interfaces of radar data message encapsulated by HDLC protocol through software. The hardware cost of the controller is low, the interface is rich, and the use is flexible. The performance of the controller meets the communication requirements of the radar signal of the civil aviation air traffic control system.Key words: Advanced Data Link Control; ARM; Radar Data Processing0 引言高级数据链路控制(High-Level Data Link Control,HDLC)是一个在同步网上面向Bit位的数据链路层协议,具有透明传输、可靠性高、传输效率高等特点,可以实现点到点或者点到多点的数据传输,在民航空管系统使用的雷达信号通常采用HDLC协议进行传输。
简述hdlc协议
HDLC协议简介HDLC(High-Level Data Link Control)协议是一种数据链路层的协议,用于在点对点和多点网络中的数据传输。
它提供了信道复用、错误检测和纠正、流量控制和数据传输确认等功能。
本文将详细介绍HDLC协议的概念、设计原理、工作方式以及在实际应用中的应用场景。
概念HDLC协议是由国际电信联盟(ITU)制定的一种面向比特同步传输的链路层协议。
它定义了帧的结构、传输模式和控制流程。
HDLC协议可以用于各种不同的物理介质,如同轴电缆、光纤和无线电频谱等。
它被广泛应用在广域网(WAN)和局域网(LAN)中,特别是在X.25、ISDN和PPP等网络协议中。
帧结构HDLC协议使用点对点的通信模式,通信双方分别被称为发送方和接收方。
数据在发送方被分成一系列的帧进行传输,接收方对帧进行接收、检测和处理。
HDLC帧由几个字段组成,如下所示: 1. 标志字段:标志字段由16位或8位的特定比特模式组成,用于标识帧的开始和结束。
2. 地址字段:地址字段用于在多点网络中识别接收方。
3. 控制字段:控制字段指定了帧的类型和控制信息,如传输模式和流量控制方式等。
4. 信息字段:信息字段包含数据部分,用于传输数据。
5. 校验字段:校验字段用于检测帧传输过程中的错误。
6. 填充字段:填充字段用于填充数据,使帧长度满足最小要求。
传输模式HDLC协议定义了三种传输模式:同步传输模式、异步传输模式和透明传输模式。
同步传输模式在同步传输模式下,帧的传输速率是固定的,发送方和接收方的时钟是同步的。
发送方按照时钟周期将数据拆分成一系列的比特,并依次传输。
接收方根据时钟周期对比特进行采样,确保数据的正确接收。
同步传输模式适用于相对稳定的传输环境,如同轴电缆和光纤等。
异步传输模式在异步传输模式下,帧的传输速率是可变的,发送方和接收方的时钟是不同步的。
发送方在帧的开始和结束时添加标志字段,接收方通过检测标志字段来确定帧的起始位置。
HDLC控制协议的FPGA设计与实现
! "# !
图 , $%&’ 协议控制器总体结构图
转换并送入数据总线。 04 - ’.’ 校验 $%&’ 协议使用循环冗余校验,在发送端对信 息进行 ’.’ 编码, 其生成多项式为 "# ’ ( ! ) * ! $ ! "% $ ! & $ " ’.’ 校验模块实际为根据生成多项式所设计的 编码电路。根据循环系统码编码原理,该编码电路 实际上是乘 ! "# 除 ’ ( ! ) 的电路, 其示意图如图 - 所 示。电路的工作过程如下: ( ,)," 级移位寄存器的初始状态全清零,门 , 开、 门 - 关, 然后进行移位。 信息位移入编码电路后, 一方面经或门输出, 一方面则自动乘以 ! "# 后进入除 从而完成乘 ! "# 除 ’ ( ! ) 的功能; ’ ( ! ) 除法电路, ( -)信息位全部移入编码电路后除法完成,此 时 ," 位移位寄存器中的内容就是除法的余式的系 数, 即校验元; ( 0) 门 , 关、 门 - 开, 再经过 ," 次移位后, 把移 位寄存器的校验元全部输出; ( 2)门 , 开、 门 - 关, 送入第二组信息组重复上 述过程。 ’.’ 编码器的核心 8$%& 源代码如下: 444444 % 9 / : ; < =>? @AB % 9 ,# : C DAB > >? / EA 0 FAAG % 9 > H ,: ; < % 9 > : C
$
’()* 协议简介
在 ’()* 通信方式中,所有信息都是以帧的形 式传送的, ’()* 帧格式如表 2 所列。 ( 2)标志字 ’()* 协议规定,所有信息传输必须以一个标 志字开始,且以同一个标志字结束,这个标志字是 %222222%。开始标志到结束标志之间构成一个完整 的信息单位,称为一帧。接收方可以通过搜索 %222222% 来探知帧的开始和结束,以此建立帧同 步。在帧与帧之间的空载期,可连续发送标志字来 做填充。 ( $)信息段及 “ %” 比特插入技术 ’()* 帧的信息长度是可变的,可传送标志字 以外的任意二进制信息。为了确保标志字是独一无 二的, 发送方在发送信息时采用 “ %” 比特插入技术,
HDLC协议IP核的设计(全文)
HDLC协议IP核的设计(全文)《电子设计工程杂志》2014年第十一期1HDLC的帧结构首先回顾一下HDLC基本的帧结构形式。
HDLC是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以帧的形式传送。
每帧的起始和结束以”7E”(01111110)做标志,两个”7E”之间为数据段(包括地址数据、控制数据、信息数据)和帧校验序列。
帧校验采用CRC算法,对除了插入的”零”以外的所有数据进行校验。
为了避免将数据中的”7E”误为标志,在发送端和接收端要相应地对数据流和帧校验序列进行”插零”及”删零”操作。
2原理框图基于FPGA的HDLC协议的实现原理框图如图1所示。
该框图包括3个部分:对外接口部分、HDLC发送部分、HDLC接收部分。
以下对3个部分的实现分别进行论述。
2.1对外接口模块对外接口部分主要实现HDLC对外的数据交换。
包括CPU接口、发送FIFO、发送接口、接收FIFO以及接收接口。
本设计是以总线的形式实现HDLC与外部CPU的通信。
当需要发送数据时,外部CPU通过总线将待发数据写入FIFO(FIFO的IP核在各开发软件中都是免费提供的,在程序中只需直接调用即可,故在此不再详细描述)。
之中。
发送数据准备就绪标志(TX_DAT_OK);接收数据时,当对外接口模块接收到数据有效信号时,根据接收模块发来的写信号(WR_MEM)将数据写入接收FIFO中。
接收完一帧数时向CPU 发送中断信号(INT),通知CPU读取数据。
2.2HDLC发送模块HDLC发送部分主要实现HDLC发送功能。
当接收到数据准备就绪标志(TX_DAT_OK)后,向对外接口模块发送读使能(RD_MEM_EN)和读信号(RD_MEM),通过局部总线将待发数据存入发送缓冲区,在T_CLK的控制下将数据从HDLC_TXD管脚发出。
数据发送模块采用状态机来完成发送各个阶段的切换。
状态切换流程图如图2所示。
HDLC协议原理
HDLC协议原理⼴域⽹简称WAN,是⼀种跨越超⼤的、地域性的计算机⽹络集合。
通常跨省、市、甚⾄⼀个国家。
⼴域⽹包括很多⼦⽹,⼦⽹可以是局域⽹;也可以是⼩型的⼴域⽹。
由于串⾏通信有着传输距离远、成本低的特点,所以远距离、超远距离的通信中较常使⽤串⾏通信。
HDLC协议及其特点HDLC(⾼级数据链路控制)协议,是⼀种数据链路层的协议。
HDLC是⼀个ISO标准的⾯向位的数据链路协议,其在同步串⾏数据链路上封装数据,最常⽤于点对点链接。
HDLC主要有以下⼏个特点: ①协议不依赖于任何⼀种字符编码集。
②数据报⽂可透明传输,⽤于透明传输的“0⽐特插⼊法”易于硬件实现。
③全双⼯通信,不必等待确认可连续发送数据报⽂,有较⾼的数据链路传输效率。
④所有帧采⽤CRC校验,并对信息帧进⾏编号,可防⽌漏收或重收,传输可靠性⾼。
⑤传输控制功能与处理功能分离,具有较⼤的灵活性和较完善的控制功能。
⑥ HDLC的主要缺点在于,没有指定字段来标识已封装的第三层协议。
因此,已经基于HDLC定义了其他⼏种协议。
HDLC⽀持的传输模式异步传输模式:是以字节为单位来传输数据,并且需要采⽤额外的起始位和停⽌位来标记每个字节的开始和结束。
因此,每个字节的发送都需要额外的开销。
可以⾯向点对点或点对多点的传输。
同步传输模式:是以帧为单位来传输数据,在通信时需要使⽤时钟来同步本端和对端设备的通信。
只能⽤于⾯向点对点的传输。
DCE(数据通信设备),提供了⼀个⽤于同步DCE设备和DTE设备之间数据传输的时钟信号,通常情况下使⽤DCE产⽣的时钟信号。
HDLC接⼝地址借⽤接⼝没有IP地址,就⽆法⽣产路由,也就⽆法转发数据报⽂。
IP地址借⽤允许⼀个没有IP地址的接⼝从其他的接⼝上借⽤IP地址,这样可以避免⼀个接⼝独占IP地址,从⽽造成IP地址的浪费。
⼀般是借⽤loopback接⼝的IP地址。
因为这类接⼝总是处于活跃(active)状态,因⽽能提供稳定可⽤的IP地址。
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议.doc
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
HDLC(High-Level Data Link Control)高层数据链路协议是一组用于在网络结点间传送数据的协议。
在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。
HDLC协议也管理数据流和数据发送的间隔时间。
HDLC是在数据链路层中最广泛最使用的协议之一。
现在作为ISO的标准,HDLC是基于IBM的SDLC协议的,SDLC 被广泛用于IBM的大型机环境之中。
在HDLC中,属于SDLC 的被称为通响应模式(NRM)。
在通常响应模式中,基站(通常是大型机)发送数据给本地或远程的二级站。
不同类型的HDLC被用于使用X.25协议的网络和帧中继网络,这种协议可以在局域网或广域网中使用,无论此网是公共的还是私人的。
HDLC协议简介
3、帧同步方式
帧同步:在发送/接收之间建立了位同步基 础之上,正确识别由任意比特数据构成的 “帧”的一种同步方式。 帧同步用于面向比特的高级数据链路控制 规程。
三、高级数据链路控制规程(HDLC)
是帧同步方式 面向bit的链路层协议 特点: 使用固定“封装”格式的帧结构 任意比特的数据都能以帧的形式传输 HDLC规程组成: 1、帧结构 2、规程要素 3、规程分类
链路结构 非 平 衡 型
P
多点结构
S
S S
P
点-点结构
正规响 应方式 异步响 应方式
C
C
异步平 衡方式
C/R
平 衡 型
平衡结构
P S
对称结构
P
C/R
S
4、响应方式
三种响应方式 1)正规响应方式(NRM):适用于非平衡链 路结构,其特点是仅当次站被主站查询时 才能进行信息传送。 2)异步响应方式(ARM):适用于平衡和非 平衡型中的点---点链路结构,主站允许次 站不经查询即能发送信息。
止 比 特
字 符 2
起 比 特
止 比 特
字 符 1
起 比 特
起止式同步
S Y N 字 符 n
…..
字 符 4
字 符 3
字 符 2
字 符 1
S Y N
S Y N
字符同步
F L A G
帧
F L A G
帧同步
2)字符同步方式
通过在一连串的数据字符的前面加1个或2 个同步字符(SYN)来实现同步。 字符同步方式用于面向字符的链路控制规 程(如IBM的BSC规程)。 除同步字符之外,面向字符的链路控制规 程使用了10个控制字符,以实现链路同步 与控制。
HDLC的基本原理和应用场景
HDLC的基本原理和应用场景1. HDLC简介HDLC(High-level Data Link Control)是一种数据链路层协议,用于在计算机网络中进行数据的传输和错误检测。
它是一种面向比特的协议,通过帧的形式将数据从发送方传输到接收方,并提供可靠的数据传输和流量控制。
2. HDLC的基本原理•帧结构:HDLC使用帧来传输数据,每个帧由开始标志、地址域、控制域、信息域、FCS(Frame Check Sequence)和结束标志组成。
开始标志和结束标志用于标识一个帧的开始和结束,地址域用于标识帧的接收方,控制域用于设置帧的控制信息,信息域用于传输数据,FCS用于检测错误。
•流量控制:HDLC支持两种流量控制机制,一种是基于窗口的流量控制,另一种是基于令牌的流量控制。
基于窗口的流量控制通过发送方和接收方的窗口大小来控制数据的发送和接收速率。
基于令牌的流量控制则是通过发送方和接收方之间的令牌来控制数据的发送和接收。
•错误检测:HDLC使用循环冗余检测(CRC)来检测数据传输过程中的错误。
发送方在发送数据之前,会计算数据的CRC值,并将CRC值添加到帧的FCS字段中。
接收方在接收到数据后,会重新计算CRC值,并与接收到的CRC值进行比较,如果两者不一致,则说明数据传输过程中发生了错误。
•可靠性:HDLC提供了可靠的数据传输机制,通过使用确认帧和重传机制来确保数据的正确接收。
发送方在发送完所有的帧之后,会等待接收方的确认帧,如果接收方收到了正确的数据,就会发送一个确认帧给发送方。
如果发送方在一定的时间内没有收到接收方的确认帧,就会重新发送帧。
3. HDLC的应用场景HDLC广泛应用于各种计算机网络中,包括局域网、广域网和数据中心网络等。
以下是一些HDLC的应用场景:•串口通信:HDLC常用于串口通信中,通过串口将数据传输到其他设备。
HDLC通过帧的形式传输数据,提供了可靠的数据传输和流量控制,适用于不同设备之间的通信。
HDLC协议控制器的设计
目录内容摘要 (1)关键词 (1)Abstract (1)Key Words (1)1.绪论 (2)1.1研究的意义 (2)1.2本设计的主要功能 (2)2.HDLC协议综述 (3)2.1 HDLC协议的产生背景 (3)2.2 HDLC协议的帧结构 (4)2.3 HDLC协议的规程分析 (7)3.HDLC协议控制器的设计 (8)3.1 HDLC协议控制器设计方案选择 (8)3.2 FPGA的设计原则 (9)3.3 HDLC协议控制器总框架 (10)3.4 HDLC帧发送器的设计 (11)3.5 HDLC帧接收器的设计 (15)参考文献 (18)致谢 (19)[说明:在本页中,“目录”二字居中,宋体小二号,加黑,其它统一由宋体小四号,不加黑排版打印、行间距为1.5]内容摘要:HDLC(高级数据链路控制)协议是一种面向比特的链路控制规程,广泛的用作数据链路层的控制协议。
论文在分析和研究HDLC协议的基础上,提出了一种基于FPGA(现场可编程门阵列)的HDLC协议控制器的设计。
对HDLC协议控制器的功能进行划分,分别设计了标志位的检测和生成、插零和删零、FCS的校验等控制模块。
采用VHDL硬件描述语言在FPGA内部实现HDLC协议的各功能模块,本设计使用Quartus II 9.1平台实现代码编写、综合、编译、仿真。
对HDLC链路控制规程功能,帧控制和FCS校验功能进行了仿真实现。
关键词:HDLC;FPGA;帧收发器;Abstract:(宋体,小四号,加黑)××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。
HDLC协议原理及其应用概述
HDLC协议原理及其应用概述摘要:数据链路层的主要功能是在物理层的数字比特流或字节流上传输信息帧,而高级数据链路控制HDLC(High-level Data Link Control)规程是通信领域现阶段应用十分广泛的一个数据链路层协议。
HDLC是面向比特的数据链路控制协议的典型代表,它是由国际标准化组织(ISO)定制的,为在数据链路层上操作提供了一系列的标准。
本文介绍了HDLC协议的发展历史、主要内容、存在的标准及其应用和发展前景。
关键词:数据链路层、HDLC协议引言根据通信的功能,整个通信过程可以分为若干层,每一层的对等协议通过使用下层服务对齐上层提供服务。
其中数据链路层在物理层提供服务的基础上向网络层提供透明的和可靠的数据传输服务。
为此,数据链路层必须具备一系列相应的功能,主要有:将数据组合成帧,并向帧中插入地址或协议类型信心;提供差错控制以确保可靠的传输;提供流量控制,以避免接收端缓冲区溢出;提供链路管理控制功能。
数据链路层的协议可以分为两类:面向字符的协议和面向比特的协议。
其中HDLC(高级数据链路控制)就是一种重要的面向比特的数据链路层协议。
一.HDLC的发展历史最早的数据链路层协议是面向字符的,有很多缺点:控制报文和数据报文格式不一样;采用停止等待方式,效率低;只对数据部分进行差错控制,可靠性较差;系统每增加一种功能就需要设定一个新的控制字符。
为克服这些缺点,上世纪七十年代初,IBM公司推出了著名的体系结构SNA。
在SNA的数据链路层规程采用了面向比特的规程SDLC(Synchronous Data Link Control)。
所谓“面向比特”就是帧首部中的控制信息不是由几种不同的控制字符组成,而是由首部中各比特的值来决定。
由于比特的组合是多种多样的,因此DLC协议能够满足各种用户的不同需求。
此外,SDLC还使用同步传输,效率比异步传输有了很大的提高。
后来ISO把SDLC修改后成为HDLC(High-level Data Link Control),作为国际标准ISO 3309。
dhlc协议
竭诚为您提供优质文档/双击可除dhlc协议篇一:hdlc协议及帧格式介绍hdlc协议及帧格式介绍一、hdlc协议:1、hdlc的定义高级数据链路控制(high-leveldatalinkcontrol或简称hdlc),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(iso)根据ibm公司的sdlc(synchronousdatalinkcontrol)协议扩展开发而成的.[注]:这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称"面向比特"的协议。
2、hdlc的特点hdlc协议具有以下特点:数据报文可透明传输;全双工通讯;采用窗口机制和捎带应答;采用帧校验序列,并对信息帧进行顺序编号,防止漏收或重收,传输可靠性高;传输控制功能和处理功能分离,应用非常灵活。
hdlc执行数据传输控制功能,一般分为3个阶段:数据链路建立阶段、信息帧传送阶段、数据链路释放阶段。
二、hdlc帧格式:1、帧格式定义异步数据业务和以太网数据业务在信道上传输采用连续同步hdlc帧格式封装,收发时钟均采用信道时钟。
0x7e2bytes1bytenbytesccitt-160x7ehdlc帧格式帧头字段:0x7e地址字段:用于用户信道设备的识别广播地址:0xFFFF控制字段:控制字段主要用于识别hdlc帧内封装的信息类型数据字段:(由信道误码率和丢帧率确定)长度校验字段:2bytes校验方式:ccitt-16帧尾字段:0x7e篇二:hdlc协议概述hdlc协议概述刘文龙(北京理工大学信息与电子学院)学号2120xx0886摘要:不同企业和不同公司的产品越来越先进,单板也越来越复杂,单板与单板之间,与终端之间数据传输的容量与可靠性要求也越来越高,简单的通讯方式满足不了要求的。
hdlc链路控制协议是现在常见的同步协议,为使不了解它的人有一个初步的认识,本文对数据链路层的hdlc协议进行综述介绍,主要内容包括hdlc的发展数据链路控制协议,hdlc协议的主要内容、存在的技术标准以及hdlc的应用和发展前景等。
通信测试卡中HDLC协议控制器的设计与实现
通信 , 以在数 据传 输 过程 中可 以不加 C C校 验 , 所 R
本文将介绍一种简化 H L D C协议控制器 的方法 。
1 HD C协 议简 介 L
H L D C协议是 通 信 领 域 中应 用 最 广 泛 的协 议 之
一
,
其面 向比特 的高级数据链路控制规程 , 具有差错 检
关 键词 :控 制器 通信 测试 FG V D H L P A H L D C协 议
文献标 志码 :A 中图分 类号 :T 4 9 N 0
Absr c ta t:Ai n tte map a tc xsi gi o mig a h lr ciee itn n c mmo t d tp e e tfrHDLC prtc lc nrle ,t ehad r r c si to y n meho sa r s n o oo o o tolr h r wa ep o e sngmeh d b a o tn PGA oraiea dsmpi h d pi g F t e l n i ly teHDL poo o o tolri rp s d.W ihVHDL ln u g z f C rtc lc nrle sp o o e t a g a e,teta s tiga d rc iigmo uei h r n mi n n e evn d l s t d sg e e p ciey Th r ig p icpe n o o io sa l a he smuain r s l fe c d l r n rd c d i eal Th e in d r s e tv l. ewokn rn ilsa d c mp st n swel st i lt e ut o a h mo u e ae ito u e n d ti. i o s e r s l h w ta PGA i lf sHDLC poo o ,t u h o r mmi gfrmo ue e o ssmpe a a yt df e ut s o h tF s smp ie i rtc l h steprg a n o d lsb c me i l nde s o mo i y;t emeh d p se ss h to o s se
HDLC协议原理及其概述-北理工
当数据信息在物理链路中传输出现差错,数据链路控制规程要求接收端能检测出差错并 予以恢复,通常采用的方法有自动请求重发 ARQ 和前向纠错两种。采用 ARQ 方法时,为 了防止帧的重收和漏收,常对帧采用编号发送和接收。当检测出无法恢复的差错时,应通知 网络层做相应处理。
流量控制
流量控制用于克服链路的拥塞。它能对链路上信息流量进行调节,确保发送端发送的数 据速率与接收端能够接收的数据速率相容。常用的流量控制方法是滑动窗口控制法。
复合站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
2.2.2 HDLC链路结构
在 HDLC 中,对主站、从站和复合站定义了三种链路结构,如图 2 所示。
主站 C(命令)
从站
Computer
R(响应) Computer
主站 C
Computer
R
Computer
R 从站
Computer
A mildly different version is also used as the control channel for E-carrier (E1) and SONET multi-channel telephone lines. Some vendors, such as Cisco, implemented protocols such as Cisco HDLC that used the low-level HDLC framing techniques but added a protocol field to the standard HDLC header. More importantly, HDLC is the default encapsulation for serial interfaces on Cisco routers. It has also been used on Tellabs DXX for destination of Trunk.
HDLC协议详解
HDLC协议工作原理2008-03-24 15:52HDLC协议的操作过程分3个阶段:1、建立数据链路连接阶段。
当网络层向链路层发出连接请求时,链路层的发送端向接收端发出SNRM(置正常响应模式)无编号帧,若接收端准备就绪,则发出UA(无编号帧确认)无编号帧,表示同意建立数据链路连接,此时,链路连接就建立好了。
2、传递数据阶段。
链路连接建立好后,发送端开始按照某种流量控制策略发送信息帧。
如果采用滑动窗口流量控制,那么一次允许连续发送多帧而无需对方应答。
接收端收到信息帧后,通过帧校验序列来检验接收的数据是否正确。
若正确则发出确认监督帧,否则发出否认监督帧。
为了提高效率,当接收端收到一正确的信息帧后,不急于发出确认监督帧,继续接收后面的信息帧。
比如说,已连续收到了N(S)=0,1,2三个信息帧,此时,恰好接收端也有一信息帧要发到发送端,可"顺便"将确认信息放在该信息帧的N(R)中带走,即将N(R)置成4,以此确认3号以及3号以前各帧均已收到,并期望接收4号帧,这种方式称为背回应答方式。
当然,如果连续正确接收一定数目的信息帧后,接收端仍没有信息帧要发送,那么只好单独发一确认监督帧,否则会因为"接收窗口"尺寸的限制而产生死锁。
(有关"接收窗口"的概念请参见4.2.3)数据链路层的功能简单地说,数据链路层的主要功能是在物理层比特流服务的基础上为网络层实体提供点到点的、无差错的数据传输服务。
数据链路层的基本数据单元是帧(Frame)。
它要完成如下功能:·成帧·差错检测和纠错·流量控制·介质访问控制HDLC具有如下特点:协议不依赖于任何一种字符编码集;数据报文可透明舆传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;所有帧均采用CRC校验,对信息帧进行编号,可纺止漏收或重份,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性和较完善的控制功能。
hdlc协议原理
hdlc协议原理
高级数据链路控制HDLC是一种面向比特的链路层协议,其最大特点是不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。
只要数据流中不存在同标志字段F相同的数据就不至于引起帧边界的错误判断。
万一出现同边界标志字段F相同的数据,即数据流中出现六个连1的情况,可以用零比特填充法解决。
标准HDLC协议族中的协议都是运行于同步串行线路之上,如:DDN。
HDLC的地址字段是8个比特,在平衡方式时总是写入应答站的地址。
控制字段8比特,用来实现HDLC协议的各种控制信息,并标识本帧的类型。
在标准HDLC协议格式中我们可以看到,它没有包含标识所承载的上层协议信息的字段,所以在链路层封装标准HDLC协议的单一链路上只能承载单一的网络层协议。
HDLC帧结构:
I-帧
1 2 3 4 5 6 7 8(位)
S-帧
1 2 3 4 5 6 7 8(位)
U-帧
1 2 3 4 5 6 7 8(位)
标志F:标志帧的开始和结尾,用以解决帧的同步。
标志为01111110。
在两个标志字段之间的比特串中,如果碰巧出现了和标志F一样的比特串,则HDLC采用零比特填空法使之不会出现连续6个"1"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录内容摘要 (1)关键词 (1)Abstract (1)Key Words (1)1.绪论 (2)1.1研究的意义 (2)1.2本设计的主要功能 (2)2.HDLC协议综述 (3)2.1 HDLC协议的产生背景 (3)2.2 HDLC协议的帧结构 (4)2.3 HDLC协议的规程分析 (7)3.HDLC协议控制器的设计 (8)3.1 HDLC协议控制器设计方案选择 (8)3.2 FPGA的设计原则 (9)3.3 HDLC协议控制器总框架 (10)3.4 HDLC帧发送器的设计 (11)3.5 HDLC帧接收器的设计 (15)参考文献 (18)致谢 (19)[说明:在本页中,“目录”二字居中,宋体小二号,加黑,其它统一由宋体小四号,不加黑排版打印、行间距为1.5]内容摘要:HDLC(高级数据链路控制)协议是一种面向比特的链路控制规程,广泛的用作数据链路层的控制协议。
论文在分析和研究HDLC协议的基础上,提出了一种基于FPGA(现场可编程门阵列)的HDLC协议控制器的设计。
对HDLC协议控制器的功能进行划分,分别设计了标志位的检测和生成、插零和删零、FCS的校验等控制模块。
采用VHDL硬件描述语言在FPGA内部实现HDLC协议的各功能模块,本设计使用Quartus II 9.1平台实现代码编写、综合、编译、仿真。
对HDLC链路控制规程功能,帧控制和FCS校验功能进行了仿真实现。
关键词:HDLC;FPGA;帧收发器;Abstract:(宋体,小四号,加黑)××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。
(宋体,小四号,不加黑)Key words:(宋体,小四号,加黑)×××□□×××□□×××□□(宋体,小四号,不加黑)1 绪论1.1 研究的意义HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是由国际标准化组织(ISO)制订的。
该协议被广泛的用作数据链路层的控制协议,HDLC控制器在网络设备中得到大量的使用,如列车通信网络技术、综合业务数字网ISDN、X.25分组交换网以及帧中继网等。
怎样在产品中设计与实现HDLC网络协议也是一个技术研究的热点。
HDLC的一般实现方法为采用 ASIC 器件和软件编程等。
ASIC的芯片有Motorola 公司的MC92460,ST公司的MK5025等。
应用这些 ASIC 器件时设计简单,功能针对性强,性能可靠,适用于特定用途的大批量产品中。
但是这类ASIC芯片存在开发时间长,一旦芯片固有缺陷就不容易解决等问题,而且HDLC标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏灵活性。
HDLC的软件编程方法灵活,通过修改程序就可适用于不同的HDLC应用,但程序运行占用处理器资源多,执行速度慢,实时性不易预测。
FPGA(Field Programmable Gate Array, 现场可编程门阵列)器件采用硬件处理信号,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理。
在中小批量通信产品的设计中,FPGA 是取代 ASIC 实现 HDLC 功能的一种合适选择。
1.2 本设计的主要功能本文实现了一种采用FPGA的HDLC协议控制器的设计和功能仿真。
首先综述了HDLC协议的产生背景和帧结构,提出了基于FPGA设计模式的控制器。
以HDLC 协议帧的接收和发送为主体,在明确FPGA的设计原则的基础上,对帧收发器进行分功能模块设计,编写代码,时序分析。
以发送器为例,其中包括了标志位的生成,插零,FCS校验等模块的设计。
接收器跟发送器设计思想类似。
在完成各个模块的设计后,使用了Quartus II 9.1自带仿真器对各个模块的功能一一进行了仿真,并对HDLC 协议及其规程进行了验证和分析。
2 HDLC协议综述2.1 HDLC 协议的产生背景计算机通信的早期,人们发现对于经常发生误码的实际链路,只要加上了合适的控制规程,就可以是通信变得比较可靠。
这些规程都是数据链路层的协议,都是面向字符的。
所谓面向字符,就是说在链路上所传送的数据都是由规定的字符集中的字符所组成的。
而且,链路上传送的控制信息也必须由同一个字符集中的若干指定的控制字符构成。
面向字符的链路控制规程曾在计算机网络的发展过程中起了重要的作用,但随着发展,这种规程就逐渐暴露出其弱点。
其主要限制是:1.通信线路的利用率低,因为它采用的是停止等待协议,收发双方交替地工作。
2.所有通信设备必须使用同样字符的代码,而不同版本的规程要求使用不同的代码。
3.只对数据部分进行差错控制,若控制部分出错就无法控制,因而可靠性差。
4.不易扩展,每增加一种功能就需要设定一个新的控制字符。
1974 年,IBM 公司推出了著名的体系结构SNA。
在SNA 的数据链路层规程上采用了面向比特的规程SDLC(Synchronous Data Link Control)。
后来IBM 将此规程提交美国国家标准协会ANSI 和国际标准化组织ISO,建议成为国家和国际标准。
ANSI 把SDLC 修改为ADCCP(Advanced Data Communication Control Procedure)作为美国国家标准,而ISO 把SDLC 修改后称为HDLC(High-level Data Link Control),并作为国际标准ISO3309。
HDLC协议有两种链路配置和三种数据传送方式:1.非平衡模式:a.正常响应方式NRM(Nomal Response Mode)b.异步响应方式ARM(Asynchronous Response Mode)2.平衡模式:c. 异步平衡方式ABM (Asynchronous Balanced Mode)2.2 HDLC 协议的帧结构HDLC的帧格式由六个字段组成,这六个字段可以分为五种类型,即标志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验字段(FCS)。
在帧结构中允许不包含信息字段I。
图1 HDLC帧结构标志序列(F)HDLC指定采用01111110为标志序列,称为F标志。
要求所有的帧必须以F标志开始和结束。
接收设备不断地搜寻F标志,以实现帧同步,从而保证接收部分对后续字段的正确识别。
另外,在帧与帧的空载期间,可以连续发送F,用来作时间填充。
在一串数据比特中,有可能产生与标志字段的码型相同的比特组合。
为了防止这种情况产生,保证对数据的透明传输,采取了比特填充技术。
当采用比特填充技术时,在信码中连续5个“1”以后插入一个“0”;而在接收端,则去除5个“1”以后的“0”,恢复原来的数据序列,如图4所示。
比特填充技术的采用排除了在信息流中出现的标志字段的可能性,保证了对数据信息的透明传输。
数据中某一段比特组合恰好出现和F字段一样的情况会误认为是F字段发送端在5个连1之后填入0比特再发送出去填入0比特在接收端将5个连1之后图2 比特填充当连续传输两帧时,前一个帧的结束标志字段F可以兼作后一个帧的起始标志字段。
当暂时没有信息传送时,可以连续发送标志字段,使接收端可以一直保持与发送端同步。
●地址字段(A)地址字段表示链路上站的地址。
使用平衡方式(采用ABM),地址字段写入应答站的地址。
HDLC协议没有给出地址字段的具体格式,只对其扩充方法及全站地址、无站地址给出了定义。
考虑到实际的需要与实现上的方便,定义地址字面结构如下:X –未使用Bit0 置“1”,表示地址字段只有一个字节C/R 置“1”表示命令帧,置“0”表示响应帧图3 地址字段定义地址字段的长度采用8bit时,最多可以表示64个站的地址。
地址字段bit2~bit7为“111111”时,定义为全站地址,即通知所有的接收站接收有关的命令帧并按其动作;bit2~bit7为全“0”比特为无站地址,用于测试数据链路的状态。
因此有效地址共有62个。
●控制字段(C)控制字段用来表示帧类型、帧编号以及命令、响应等。
由于C字段的构成不同,可以把HDLC帧分为三种类型:信息帧、监控帧、无编号帧,分别简称I帧(Information)、S帧(Supervisory)、U帧(Unnumbered)。
在控制字段中,第1位是“0”为I帧,第1、2位是“10”为S帧,第1、2位是“11”为U帧。
图4 基本模式控制字段注:X-未使用,置0U-未定义,置1。
图5 扩充模式控制字段●信息字段(I)信息字段内包含了用户的数据信息和来自上层的各种控制信息。
长度小于58Bytes。
●帧校验序列字段(FCS)帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内,长度定义由于单板中有部分HDLC链路采用HDLC控制器实现,而HDLC控制器只能支持16bits的CRC2.3HDLC协议的规程分析1.使用统一的帧格式:实现数据、命令和响应的传输,实施起来方便;2.采用‘0’位插入法:使得规程可以支持任意的位流传输,保证了信息传输的透明性;3.采用窗口机制和捎带应答机制:全双工工作方式,允许在未收到确认的情况下,连续发送多个帧,提高了信息传输的效率;4.采用帧校验序列,并设置窗口序号,可以提高信息传输的正确性和可靠性。
总之,面向二进制位的控制规程比面向字符型的控制规程具有较高的优越性。
3 HDLC协议控制器的设计3.1 HDLC协议控制器设计方案选择HDLC协议控制器实现方法有三种:ASIC器件、软件编程以及FPGA器件。
实现HDLC协议的ASIC芯片有Motorola 公司的MC92460、ZILOG 公司的Z80230/85230、ST 公司的MK5025等。
这些集成电路使用简易,功能针对性强,适用于特定用途的大批量产品中。
但HDLC标准的文本较多,ASIC芯片出于专用性的目的难于通用于不同版本,缺乏灵活性。