当前位置:
文档之家› 基于FPGA的HDLC协议设计
基于FPGA的HDLC协议设计
第一节 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