基于FPGA的HDLC协议设计
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"。
HDLC的FPGA实现方法(Altera)
HDLC的FPGA实现方法
摘要:HDLC(高级数据链路控制)的一般实现方法为采用ASIC器件和软件编程等。应用ASIC器件时设计简单,但灵活性较差;软件编程方法灵活,但占用处理器资源多,执行速度慢,实时性不易预测。FPGA器件采用硬件处理技术,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理,实时性能能够预测和仿真。在中小批量通信产品的设计中,FPGA是取代ASIC实现HDLC功能的一种合适选择。采用Altera公司的FPGA芯片,在MAX+plus II软件平台上实现了多路HDLC电路的设计,并已在某通信产品样机中应用成功。
关键词:数据通信; HDLC;CRC校验;FPGA;MAX+plus II
1 引言
HDLC(High-level Data Link Control Procedures, 高级数据链路控制规程)广泛应用于数据通信领域,是确保数据信息可靠互通的重要技术。实施HDLC的一般方法通常是采用ASIC(Application Specific I ntegrated Circuit,特定用途集成电路)器件和软件编程等。
HDLC的ASIC芯片有Motorola公司的MC92460、ST公司的MK5025、Zarlink公司的MT8952B等。这些集成电路使用简易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。但由于HDLC 标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏应用灵活性。例如CCITT、A NSI、ISO/IEC等都有各种版本的HDLC标准,有的芯片公司还有自己的标准,对HDLC的CRC(Cycl ical Redundancy Check,循环冗余码校验)序列生成多项式等有不同的规定。况且,专用于HDLC的A SIC芯片其片内数据存储器容量有限,通常只有不多字节的FIFO(先进先出存储器)可用。对于某些应用来说,当需要扩大数据缓存的容量时,只能对ASIC芯片再外接存储器或其它电路,ASIC的简单易用性就被抵销掉了。HDLC的软件编程方法功能灵活,通过修改程序就可以适用于不同的HDLC应用。但程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。对于多路信号的HDLC 应用,处理器的资源占用率与处理路数成正比,所以软件HDLC一般只能用于个别路数的低速信号处理。
HDLC协议
什么是HDLC?HDLC是什么意思?
HDLC英文全称High level Data Link Control,高级数据链路控制,HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是个由1970年代IBM所提出的对称式资料连结控制(Synchronous Data Link Control,SDLC)所研发出来的ISO标准。
高级数据链路控制(HDLC)协议是基于的一种数据链路层协议,促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。HDLC 的另一个重要功能是流量控制,换句话说,一旦接收端收到数据,便能立即进行传输。H DLC 具有两种不同的实现方式:高级数据链路控制正常响应模式即HDLC NRM(又称为SDLC)和 HDLC 链路访问过程平衡(LAPB)。其中第二种使用更为普遍。HDLC 是 X.25 栈的一部分。
HDLC 是面向比特的同步通信协议,主要为全双工点对点操作提供完整的数据透明度。它支持对等链路,表现在每个链路终端都不具有永久性管理站的功能。另一方面,HDLC NRM 具有一个永久基站以及一个或多个次站。
HDLC LAPB 是一种高效协议,为确保流量控制、差错监测和恢复它要求额外开销最小。如果数据在两个方向上(全双工)相互传输,数据帧本身就会传送所需的信息从而确保数据完整性。
帧窗口是用于在接收第一个帧已经正确收到的确认之前发送复帧。这就意味着在具有长“turn-around”时间滞后的情况下数据能够继续传送,而不需要停下来等待响应。例如在卫星通信中会发生这种情形。
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所示。State0状态是发送的起始状态也是空闲状态。当没有数据要发送时(TX_DAT_OK=0),程序以7E填充发送;当程序检测到有新数据时(TX_DAT_OK=1),程序检测7E是否发送结束如果没结束则继续发送7E,如果7E发送结束则状态在下一周期切换为State1。State1状态主要完成接收并发送数据功能,在第二个CLK周期先将读使能和读信号拉高,在第三个CLK 周期再将其拉低,在第五个CLK周期开始读数。在并行的数据发送PROCESS中根据CLK 周期和发送计数器,将接收到的数据通过移位进行发送同时对连续‘1’的个数和发送个数进行计数。当连续‘1’的个数为5时在下一个周期插入发送‘0’,将连续‘1’的计数器清零,发送个数不变。在发送数据的同时进行CRC校验的计算。帧校验序列字段使用CRC-16,对两个标志字段之间的整个帧的内容进行校验。CRC的生成多项式为X16+X12+X5+1,对在校错范围内的错码进行校验。标志位和按透明规则插入的所有‘0’不在校验的范围内。程序设计中的CRC校验算法的原理框图如图3所示。State3状态主要完成发送字尾,发送完成后直接转入state0。
hdlc的工作原理
HDLC(高级数据链路控制)是一种面向比特的链路层协议,其工作原理如下:
通过控制字符进行帧的分隔与标识,并采用逐比特的同步位同步方式进行数据传输。
HDLC协议具有收发双方均可开始传输、节点地址识别和流量控制等重要的功能特点。
HDLC协议不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输。
在标准HDLC协议格式中,没有包含标识所承载的上层协议信息的字段,所以在链路层封装标准HDLC协议的单一链路上只能承载单一的网络层协议。
总的来说,HDLC是一种高效的链路层协议,其工作原理使得它能广泛应用于各种通信场景中。
基于FPGA的多通道HDLC通信系统设计与实现
及 软 件 流 程 图。 测 试 结 果表 明 , 统 通 讯 速 度 为 l / , 且 工作 稳 定 , 系 s并 Mb 目前 该 设 计 已 经 成 功 应 用 于
某样机 中。
关 键 词 :HD ; I 多通 道 ;F G 4 5接 口 C P A; 8
中 图 分 类 号 :T 4 9 N 0 文 献 标 识 码 :A
c mmu i ai n y tm i e in d n i hI1 l t. 1e y t m sn F G o n c t s s o e s d s e a d mp 1i (1 g I l 1l s se u ig P A. DS n 4 5 o v l i tr c P a d 8 c n e  ̄ n e a e.T e e in c e f h d sg s h me l f wc a t s wel s t e r a iai n f k y ld h l r s n e o h r ,a l a h e l t o e no u a t z o ,p e e td.T e y t m i e td y C h s se s se b P wi P I n e a e,e p rme t e t t h C i tr c f x ei ns r— s i h w t a h i tr c o k tb e wi 1Mh s s'eI h e in h s b e s c e su l p l d i o a l r d cs u t s o h t t e n e a e w r s sa l t / l ( s f h .T e d s a e n u c sf l a p i n s me s mp e p o u t . g y e
HDLC协议RS-485总线控制器的FPGA实现
HDLC协议RS-485总线控制器的FPGA实现
高振斌;陈禾;韩月秋
【期刊名称】《河北工业大学学报》
【年(卷),期】2004(033)005
【摘要】介绍了以HDLC协议控制为基础的RS-485总线通信控制器,采用VHDL 语言在RTL级设计,并在单片FPGA上实现.该控制器具有两个独立的全双工通道,通过存储器管理单元共用片内4KB双口RAM,与CPU进行数据交换.内建中断管理模块,可以工作在查询模式或中断模式.CPU可通过内部ISA总线接口,对片内RAM 地址、本站站址、收发数据长度、数据的波特率等编程控制.工作时钟为40MHz 时,各通道波特率最高可达10MHz.实际应用表明,此控制器设计合理,工作可靠.【总页数】5页(P28-32)
【作者】高振斌;陈禾;韩月秋
【作者单位】北京理工大学,信息科学技术学院,北京,100081;河北工业大学,信息学院,天津,300130;北京理工大学,信息科学技术学院,北京,100081;北京理工大学,信息科学技术学院,北京,100081
【正文语种】中文
【中图分类】TN919
【相关文献】
1.基于FPGA的USB-HDLC协议转换器的设计与实现 [J], 杨峰;秦兆涛
2.符合中国移动标准协议转换器中的HDLC协议的FPGA设计与实现 [J], 刘宇;张
斌;徐东明
3.基于FPGA+ARM的HDLC协议控制器的设计与实现 [J], 杨尧;赵立立;侯翔昊
4.HDLC协议的FPGA实现方法 [J], 刘文学;郭玉忠;姜琳琳
5.基于FPGA的HDLC协议控制系统实现 [J], 张伟
基于FPGA平台的HDLC协议的应用与研究(全文)
基于FPG平台的HDLC协议的应用与研究
一、HDLC协议的介绍
数据链路层协议根据数据帧操纵的格式可以分为:面向字符的数据链路层协议和面向比特的数据链路层协议。HDLC协议是一种面向比特的数据链路协议。在这类面向比特的数据链路协议中,帧头和帧尾都是特定的二进制序列,通过操纵字段来实现对链路的监控,可以采纳多种编码方式实现高效的、可靠的透明传输。
二、基于FPG平台的HDLC协议的实现
1、初始模块的实现.在实现HDLC模块以前必须针对其完成初始化的相应流程以后方可正常进入工作运行装填。这里的初始化具体来说是针对HDLC模块内部的各类寄存器进行参数上的配置,其中主要的寄存器类型有辅助寄存器、地址寄存器等。而且地址寄存器的初始化尤为重要,一般当对这几类寄存器完成初始化配置后,系统会自动生成一个标识信号,如果信号显示为正常且有效的,那么其代表HDLC的初始化工作已经基本完成,且可以进入到下一步工作状态中。而辅助配置寄存器的初始化则并不一定需要在该阶段中完成。
2、发送模块的实现。在HDLC协议中,具体负责差错校检功能的为CRC校检模块,具体的帧发送模块的实现过程为:首先系统与CPU线路开始连接一户,然后数据开始被写入到FIFO 中,如果检测到某条线路正好处于未被资源占用的状态,那么
CRC校验模块则开始对FIFO中的数据进行校验和插零程序。同时,数据经过插零并发送以后,每一个数据序列必须添加包头和包围并以串行的形式被发送端传输出去,并且将帧标志的状态修改为“011111100”,这里笔者将以上组成发送模块的发送端分成四个部分,分别是fifomin、insert_0、crcme以及frme insert 等模块。
HDLC协议简介
8
7
N(R) N(R)
6
5
P P/F P/F
4 3 2
N(S) S S 0 1
1
0 1 1
M M M
M M
发送顺序号 接收顺序号 监控功能比特 修改功能比特 探询/终结比特
二)HDLC的规程要素
规程要素:规程在不同网络结构中的不同 工作方式,以及跟控制字段有关的三种帧 格式。 1、规程工作方式 第一:正规响应方式(NRM) 第二:异步响应方式(ARM) 第三:异步平衡方式(SABM)
C
C
异步平 衡方式
C/R
平 衡 型
平衡结构
P S
对称结构
Pwenku.baidu.com
C/R
S
4、响应方式
三种响应方式 1)正规响应方式(NRM):适用于非平衡链 路结构,其特点是仅当次站被主站查询时 才能进行信息传送。 2)异步响应方式(ARM):适用于平衡和非 平衡型中的点---点链路结构,主站允许次 站不经查询即能发送信息。
3、链路结构
1)非平衡型:在一个系统中,仅仅有一个 站负有链路控制的责任,即仅有一个主站 和一个或多个次站,次站按照主站发出的 命令进行数据收发。 2)平衡型:在链路结构,两个站具有同等 责任的情况称为平衡型结构。
链路结构 非 平 衡 型
P
多点结构
S
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。我国相应的标准是GB 7496。CCITT则将HDLC再修改后称为链路接入规程LAP(Link Access Procedure),并作为X.25建议书的一部分。不久,HDLC的新版本又把LAP修改为LAPB,“B”表示平衡型(Balanced),所以LAPB叫做链路接入规程(平衡型)。
HDLC原理及实现
3.1HDLC 原理概述
高级数据链路控制(High Level Data Link Control protocol) 高级数据链路控制(HDLC )协议 是一个在同步网上传输 数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM 公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的.促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。
七十年代初,IBM 公司率先提出了面向比特的同步数据链路控制规程SDLC (Synchronous Data Link Control )。随后,ANSI 和ISO 均采纳并发展了SDLC ,并分别提出了自己的标准:ANSI 的高级通信控制过程ADCCP (Advanced Data Control Procedure ),ISO 的高级数据链路控制规程HDLC (High-level Data Link Contl )。
链路控制协议着重于对分段成物理块或包的数据的逻辑传输,块或包由起始标志引导并由终止标志结束,也称为帧。帧是每个控制、每个响应以及用协议传输的所有信息的媒体的工具。所有面向比特的数据链路控制协议均采用统一的帧格式,不论是数据还是单独的控制信息均以帧为单位传送。
每个帧前、后均有一标志码01111110,用作帧的起始、终止指示及帧的同步。标志码不允许在帧的内部出现,以免引起畸意。为保证标志码的唯一性但又兼顾帧内数据的透明性,可以采用“0比特插入法”来解决。该法在发送端监视除标志码以外的所有字段,当发现有连续5个“1”出现时,便在其后添插一个“0”,然后继续发后继的比特流。在接收端,同样监视起始标志码以外的所有字段。当连续发现5个“1”出现后,若其后一个比特“0”则自动删除它,以恢复原来的比特流;若发现连续6个“1”,则可能是插入的“0”发生差错变成的“1”,也可能是收到了帧的终止标志码。后两种情况,可以进一步通过帧中的帧检验序列来加以区分。“0比特插入法”原理简单,很适合于硬件实现。
hdlc标准
hdlc标准
HDLC(High-Level Data Link Control)是一种数据链路层协议,通常用于数据通信和数据传输。HDLC协议是一种同步的、面向位的协议,它在OSI(开放系统互连)模型中处于数据链路层,用于在物理层上可靠地传输数据。HDLC标准由国际电报和电话咨询委员会(CCITT,现在被称为国际电信联盟ITU-T)定义。
HDLC协议有三种主要的变种,它们分别是:
1.基本HDLC(Basic HDLC):基本HDLC协议提供了数据传输和
可靠性,它支持全双工通信,能够进行数据的传输和接收。它
使用帧同步字节(Flag)来界定数据帧,采用透明传输方式,支
持错误检测和纠正。
2.异步HDLC(Asynchronous HDLC):异步HDLC是基本HDLC
的变种,它主要用于异步串行通信,与异步串行通信设备兼容。
它引入了控制字段,以支持数据传输的同步和错误检测。
3.HDLC协议的衍生版本:HDLC协议的许多变种和衍生版本被广
泛用于各种通信环境中,如SDLC(Synchronous Data Link Control)、X.25等。这些协议在HDLC的基础上进行了扩展和
修改,以适应不同的通信需求。
需要注意的是,虽然HDLC是一种通用的数据链路层协议,但它的应用范围有限,通常用于专用网络和系统中,如电信和数据通信设备。它的广泛使用导致了一些变种和扩展协议,以满足不同应用的需求。
基于FPGA的HDLC协议设计
摘要
高级数据链路控制(HDLC)协议是数字通信中的重要协议之一。Altera公司的可编程门阵列(FPGA),设计了一种基于并行机制的高级数据链路控制(HDLC)协议控制系统。该系统采用模块组合的设计方法,使系统的复杂功能由各个模块组合实现,这种分块处理使得设计层次清晰且易于修改。该系统有效利用FPGA的内部硬件资源,实现了并行的多通道的HDLC协议报文的生成和解析。通过分析当前实现HDLC协议的一般方法,指出其存在的一些弊端,提出了一种利用FPGA 编程实现HDLC协议的硬件处理方法,并对FPGA如何实现HDLC协议的帧序列校验——循环冗余校验(CRC)进行了阐述。模块下载到硬件中测试通过,证实了FPGA实现HDLC协议的可行性,模块编程简单且易于修改使其在应用中具有很大的优越性。基于在数据通信中为了降低通信线路传输的误码率,需要采用高效能的差错控制方法。循环冗余校验CRC由于编码简单且有效,是一种最常用的信道编码方。
【关键词】:HDLC协议FPGA CRC校验
ABSTRACT
High level data link control (HDLC) protocol is an important one in digital communication. Altera's programmable gate array (FPGA), design of parallel mechanism based on high level data link control (HDLC) Protocol control system. The system uses a combination of modular design method, complex combination of features from the various modules of the system implementation, this block makes the design is clear and easy to modify. The system effectively uses the FPGA's internal hardware resources, enabling parallel multi-channel HDLC protocol message generation and parsing. Through an analysis of the current implementation of HDLC Protocol General, pointed out that there are some drawbacks, have come up with a hardware processing of the HDLC protocol using FPGA programming methods and verification on FPGA implementation of HDLC protocol using FPGA programming methods and verification on FPGA implementation of HDLC protocol frame sequence-a cyclic redundancy check (CRC) explains. Module downloaded to the hardware test passed, confirm the feasibility of FPGA implementation of HDLC Protocol, application module programming simple and easy to modify so that it has a lot of advantages. In data communication in order to reduce the error rate of the transmission of communication lines, requires the use of high-efficiency error control method. Cyclic redundancy check CRC as the coding is simple and effective, is one of the most common channel coding.
HDLC协议及帧格式介绍
HDLC协议及帧格式介绍
一、HDLC协议:
1、HDLC的定义
高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层
协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的.
[注]:
这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称"面向比特"的协议。
2、HDLC的特点
HDLC协议具有以下特点:数据报文可透明传输;全双工通讯;采用窗口机制和捎带应答;采用帧校验序列,并对信息帧进行顺序编号,防止漏收或重收,传输可靠性高;传输控制功能和处理功能分离,应用非常灵活。HDLC执行数据传输控
制功能,一般分为3个阶段:数据链路建立阶段、信息帧传送阶段、数据链路释放阶段。
二、HDLC帧格式:
1、帧格式定义
异步数据业务和以太网数据业务在信道上传输采用连续同步HDLC帧格式封装,收发时钟均采用信道时钟。
0x7E 2 bytes 1 byte n bytes CCITT-16 0x7E
HDLC帧格式
帧头字段:0x7E
地址字段:用于用户信道设备的识别
广播地址:0xFFFF
控制字段:控制字段主要用于识别HDLC帧内封装的信息类型
数据字段:(由信道误码率和丢帧率确定)长度<1020
校验字段:2bytes
校验方式:CCITT-16
帧尾字段:0x7E
HDLC协议
为使不了解它的人有一个初步的认识
重点介绍了HDLC的基本概念及帧格式可以参考
及HDLC协议控制芯片手册
数据链路控制协议
数据链路控制协议也称链路通讯规程数据链路控制协议一般可分为异步协议和同步协议两大类
我们再熟悉不过了如MCS51803116C2552SD511等等
在每个字符的起始处开始对字符内的比特实现同步
即字符之间是异步的由于发送器和接收器中近似于同一频率的两个约定时钟
所以可以用字符起始处同步的时钟来采样该字符的各比特
异步协议中因为每个传输字符都要添加诸如起始位
故信道利用率很低
同步协议是以许多字符或许多比特组织成的数据块---帧为传输单位在帧内维持固定的时钟
供接收端从数据中分离出时钟来所以同步协议能更好地利用信
道流量控制等功能
面向比特的同步协议及面向字节计数的同步协议
其典型代表是IBM公司的二进制同步通讯协议
BISYNC 或 BSCͨ³£Ò²³Æ¸ÃÐ-ÒéΪ»ù±¾Ð-Òé
ISO的标准称为数据通讯系统的基本控制过程
二
IBM公司率先提出了面向比特的同步数据控制规程SDLC
ANSI和ISO均采纳并发展了SDLC ANSI的高级通讯控制过程ADCCP
High_level Data Link Control
链路控制协议着重于对分段成物理块或包的数据的逻辑传输
也称为帧每个响应以及用协议传输的所有信息的媒体和工具
不论是数据还是单独的控制信息均以帧为单位传送
后均有一标志码01111110ÖÕָֹʾ֡µÄͬ²½
ÒÔÃâÒýÆð»ûÒâ¿ÉÒÔ²ÉÓÓ0比特插入法”来解决当发现有连续的5个“1”出现
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。我国相应的标准是GB 7496。CCITT则将HDLC再修改后称为链路接入规程LAP(Link Access Procedure),并作为X.25建议书的一部分。不久,HDLC的新版本又把LAP修改为LAPB,“B”表示平衡型(Balanced),所以LAPB叫做链路接入规程(平衡型)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一节 FIFO缓存区及端口控制
在数据发送时,为了平滑CPU与HDLC协议控制器之间的数据传输速率,采用 一个异步FIFO作为两者之间的接口模块。 该FIFO()接收数据总线上送来的数据转 换成固定速率的并行数据输出,并且将自身状态信息(wrfull,rdempty)通过指
Leabharlann Baidu
第二章
基于 FPCA 的 HDLC 协议器设计
在可编程器件FPGA(EPFlOK)内设计HDLC协议器,该器件的优点是可以在线 编程、方便调试、支持仿真。同时该器件内融合了雷达系统的多种控制功能。在 FPGA内实现HDLC功能采用的是“自顶向下”的设计方法,即根据要求的功能先设 计出顶层的原理框图, 该图由若干个功能模块组成。 再把各个模块细化为子模块, 对较复杂的设计则把各子模块分成一层层的下级子模块, 各层的功能可以用硬件 描述语言或电路图实现。 该设计中主要使用VHDIJ语言编写程序代码, 经过综合、 仿真和优化等过程,最终将程序下载到芯片中。HDLC协议器的工作原理为CPU将 收到的大量数据通过数据总线,地址总线不断地送到FPGA中,FPGA将该数据存到 HDLC协议器的缓存区内,并根据一定的时钟频率将该数据进行长度设定,通过并 /串转换,“0”比特插入,增加标志字等模块处理后,将数据按照HDLC协议 发送。接收端将接收到的数据进行校验显示,对比发送端的数据判断数据发送的 可靠性。整个系统的收发端采用同一个全局时钟。HDLC协议总体结构图如图2所 示。
地址段表示接收端的地址号,可以是8 b或16 b。每个接收端都有惟一的地 址,可以判断当前数据帧是否是发给自己。 控制段是最为复杂的字段,根据他的定义可将HDLC帧分为信息帧、监督帧和 无编号帧。 信息段所要传输的数据。 帧校验序列用于对传输数据的检错与纠错。
二、“O”位插入和删除
HDLC协议规定以01111110为标志字, 但传输的数据组合有可能与标(01111110) 相同,为了防止接收端误判为帧头或帧尾,在一帧的帧头和帧尾之间每当传输连 续5个“1”比特之后,就自动插入一个“0”比特,此“O”不进行CRC计算。而 接收端在接收到帧头后,每连续接收到5个“1”比特,就自动将其后的一个“o” 比特删除,以恢复信息的原有形式。经过此操作保证了数据链路的透明传输(即 可以传输任意组合的比特流)。
第一节 FIFO 缓存区及端口控制……………………………………………………………..9 第二节 HDLC 协议器………………………………………………………………………………….10
第三章综合和验证及结果……………………………………………………..13
第一节仿真及验证…………………………………………………………………………………..13 第二节系统模块图…………………………………………………………………………………..14 第三节现象及讨论…………………………………………………………………………………..14
三、 CRC校验
HDLC规程中数据位信息是以帧方式来传送,为了保证数据传送的可靠性,在 一帧的格式中加入了帧校验(Frame Checking Sequence,FCS)序列。HDLC规程采 用循环冗余校验码(CRC),对所传送的数据进行检错与纠错。在HDLC规程中,帧 校验序列通常与一码生成多项式相对应。 对于16位帧校验序列,码生成多项式为: P(x)=x16 +x12 +x 5 +1 对于32位帧校验序列,码生成多项式为: P(x)=x 32 +x 26 +x 23 +x 22 +x16 +x11 +x10 +x 8 +x 7 +x 5 +x 4 +x 2 +x1 +1 本设计中采用16位帧校验序列,CRC计算由软件完成。在HDLC协议中,除了标志 位和自动插入的“O”位外,所有的信息都参与CRC计算。CRC校验码生成原理图 如下:
目录
前言………………………………………………………………………………………………5 第一章 HDLC协议概述………………………………………6
第一节 HDLC协议简介………………………………………………...6
第二节 HDLC协议分析…………………………………………………………………………………6
第二章 基于 FPCA 的 HDLC 协议器设计……………………...9
心得体会…………………………………………………………………………………….15 参考文献…………………………………………………………………………………….16 附录…………………………………………………………………………………………….17
前言
在数据通信中,链路层协议种类繁多,从通信方式看,可以分为异步通信和 同步通信, 同步通信的协议也多种多样, 有基于字符的通信协议, 比如BSC协议、 CD2协议和DDCMP协议等;也有基于比特的通信协议,比如HDLC协议,HDLC(High Levei Data Link Controi)协议是通信领域中应用最广泛的协议之一,它是面 向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特 点。目前市场上有很多专用的HDLC 芯片,但这些芯片大多因追求功能的完备, 而使芯片的控制变得复杂。实际上,对于某些特殊场合的特殊用途( 如手持式设 备) ,我们只需选择HDLC 协议中最符合系统要求的部分功能,设计一种功能相 对简单、使用灵活的小型化HDLC 协议控制器。另一方面,随着深亚微米工艺技 术的发展,FPGA(Fieid Programmabie Gate Array) 芯片的规模越来越大,其单 片逻辑门数已超过上百万门。同时它还具有设计开发周期短、设计制造成本低、 可实时在线检验等优点,因此被广泛用于特殊芯片设计中。本设计中采用Altera 公司的飓风Ⅱ系列芯片EP2C8Q208C8来实现HDLC 协议控制器。
第二节 HDLC协议分析
一、 HDLC帧结构
HDIC是面向比特数据的传输协议,他对一次传输的信息的位数没有限制,因 此适合于大量数据的传输。HDIC协议以帧格式传输信息,帧的基本格式如图1所 示。 标志 8b 地址 8/16b 控制 8/16b 信息 8b×n 帧校验 16/32b 标志 8b
图1 HDLC帧的基本格式 标志符HDLC规程规定, 一个完整的帧信息是以一个标志字开始,并以该标志 字结束。 两个标志字之间为数据段(包括地址段、 控制段和信息段)。 在本协议中, 标志字为01111110(Ox7e)。
第一章
HDLC协议概述
第一节 HDLC协议简介
在种类繁多的链路层协议中,HDLC协议是一个在同步网上传输数据、面向比 特的数据链路层协议。 该协议主要是为全双工点对点操作提供完整的数据透明度, 也支持对等链路,在每个链路终端都不具有永久性管理站功能。链路控制协议着 重于对分段成物理块或包的数据进行逻辑传输, 块或包由起始标志引导并由终止 标志结束,也称为帧。所有面向比特的数据链路控制协议帧格式均是统一的,不 论是数据还是单独的控制信息的传送均以帧为单位。 作为典型的面向比特的数据 链路控制协议,HDLC协议具有如下特点:协议不依赖于任何一种字符编码集;数 据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双 工通信,有较高的数据链路传输效率,不必等待确认便可连续发送数据;所有帧 均采用循环冗余校验(CRC),传输可靠性高;传输控制功能与处理功能分离,具 有较大灵活性和较完善的控制功能。
摘要
高级数据链路控制(HDLC)协议是数字通信中的重要协议之一。 Altera公司的 可编程门阵列(FPGA), 设计了一种基于并行机制的高级数据链路控制(HDLC)协议 控制系统。该系统采用模块组合的设计方法,使系统的复杂功能由各个模块组合 实现,这种分块处理使得设计层次清晰且易于修改。该系统有效利用FPGA的内部 硬件资源,实现了并行的多通道的HDLC协议报文的生成和解析。通过分析当前实 现HDLC协议的一般方法,指出其存在的一些弊端,提出了一种利用FPGA编程实现 HDLC协议的硬件处理方法, 并对FPGA如何实现HDLC协议的帧序列校验——循环冗 余校验(CRC)进行了阐述。模块下载到硬件中测试通过,证实了FPGA实现HDLC协 议的可行性,模块编程简单且易于修改使其在应用中具有很大的优越性。基于在 数据通信中为了降低通信线路传输的误码率,需要采用高效能的差错控制方法。 循环冗余校验CRC由于编码简单且有效,是一种最常用的信道编码方。
【关键词】:HDLC协议
FPGA
CRC校验
ABSTRACT
High level data link control (HDLC) protocol is an important one in digital communication. Altera's programmable gate array (FPGA), design of parallel mechanism based on high level data link control (HDLC) Protocol control system. The system uses a combination of modular design method, complexcombination of features from the various modules of the system implementation, this block makes the design is clear and easy to modify. The system effectively uses the FPGA's internal hardware resources, enabling parallel multi-channel HDLC protocol message generation and parsing. Through an analysis of the current implementation of HDLC Protocol General, pointed out that there are some drawbacks, have come up with a hardware processing of the HDLC protocol using FPGA programming methods and verification on FPGA implementation of HDLCprotocol using FPGA programming methods and verification on FPGA implementation of HDLC protocol frame sequence-a cyclic redundancy check (CRC) explains. Module downloaded to the hardware test passed, confirm the feasibility of FPGA implementation of HDLC Protocol, application module programming simple and easy to modify so that it has a lot of advantages. In data communication in order to reduce the error rate of the transmission of communication lines, requires the use of high-efficiency error control method. Cyclic redundancy check CRC as the coding issimple and effective, is one of the most common channel coding. 【Key words】HDLC protocol FPGA CRC check