




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品好资料学习推荐目录内容摘要1关 键 词1Abstract1 Key Words 11绪论 21.1研究的意义 21.2本设计的主要功能 22HDLC协议综述 32.1 HDLC协议的产生背景 32.2 HDLC协议的帧结构 42.3 HDLC协议的规程分析 73HDLC协议控制器的设计 83.1 HDLC协议控制器设计方案选择83.2 FPGA的设计原则 93.3 HDLC协议控制器总框架103.4 HDLC帧发送器的设计113.5 HDLC帧接收器的设计15参考文献 18致 谢19说明:在本页中,“目录”二字居中,宋体小二号,加黑,其它统一由宋体小四号,不加黑排版打印、行间距为1.521
2、 / 23内容摘要: HDLC(高级数据链路控制)协议是一种面向比特的链路控制规程,广泛的用作数据链路层的控制协议。论文在分析和研究HDLC协议的基础上,提出了一种基于FPGA(现场可编程门阵列)的HDLC协议控制器的设计。对HDLC协议控制器的功能进行划分,分别设计了标志位的检测和生成、插零和删零、FCS的校验等控制模块。采用VHDL硬件描述语言在FPGA内部实现HDLC协议的各功能模块,本设计使用Quartus II 9.1平台实现代码编写、综合、编译、仿真。对HDLC链路控制规程功能,帧控制和FCS校验功能进行了仿真实现。关 键 词:HDLC;FPGA;帧收发器;Abstract:(宋体
3、,小四号,加黑)。(宋体,小四号,不加黑)Key words:(宋体,小四号,加黑) (宋体,小四号,不加黑)1 绪论1.1 研究的意义HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是由国际标准化组织(ISO)制订的。该协议被广泛的用作数据链路层的控制协议,HDLC控制器在网络设备中得到大量的使用,如列车通信网络技术、综合业务数字网ISDN、X.25分组交换网以及帧中继网等。怎样在产品中设计与实现HDLC网络协议也是一个技术研究的热点。HDLC的一般实现方法为采用 ASIC 器件和软件编程等。ASIC的芯片有Motorola公司的MC92460,ST公司的MK5025等。应用这些
4、 ASIC 器件时设计简单,功能针对性强,性能可靠,适用于特定用途的大批量产品中。但是这类ASIC芯片存在开发时间长,一旦芯片固有缺陷就不容易解决等问题,而且HDLC标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏灵活性。HDLC的软件编程方法灵活,通过修改程序就可适用于不同的HDLC应用,但程序运行占用处理器资源多,执行速度慢,实时性不易预测。FPGA(Field Programmable Gate Array, 现场可编程门阵列)器件采用硬件处理信号,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理。在中小批量通信产品的设计中,FPGA 是取代 ASIC 实现 HD
5、LC 功能的一种合适选择。1.2 本设计的主要功能本文实现了一种采用FPGA的HDLC协议控制器的设计和功能仿真。首先综述了HDLC协议的产生背景和帧结构,提出了基于FPGA设计模式的控制器。以HDLC协议帧的接收和发送为主体,在明确FPGA的设计原则的基础上,对帧收发器进行分功能模块设计,编写代码,时序分析。以发送器为例,其中包括了标志位的生成,插零,FCS校验等模块的设计。接收器跟发送器设计思想类似。在完成各个模块的设计后,使用了Quartus II 9.1自带仿真器对各个模块的功能一一进行了仿真,并对HDLC协议及其规程进行了验证和分析。2 HDLC协议综述2.1 HDLC 协议的产生背
6、景计算机通信的早期,人们发现对于经常发生误码的实际链路,只要加上了合适的控制规程,就可以是通信变得比较可靠。这些规程都是数据链路层的协议,都是面向字符的。所谓面向字符,就是说在链路上所传送的数据都是由规定的字符集中的字符所组成的。而且,链路上传送的控制信息也必须由同一个字符集中的若干指定的控制字符构成。面向字符的链路控制规程曾在计算机网络的发展过程中起了重要的作用,但随着发展,这种规程就逐渐暴露出其弱点。其主要限制是:1通信线路的利用率低,因为它采用的是停止等待协议,收发双方交替地工作。2所有通信设备必须使用同样字符的代码,而不同版本的规程要求使用不同的代码。3.只对数据部分进行差错控制,若控
7、制部分出错就无法控制,因而可靠性差。4.不易扩展,每增加一种功能就需要设定一个新的控制字符。1974 年,IBM 公司推出了著名的体系结构 SNA。在 SNA 的数据链路层规程上采用了面向比特的规程 SDLC(Synchronous Data Link Control)。后来 IBM 将此规程提交美国国家标准协会 ANSI 和国际标准化组织 ISO,建议成为国家和国际标准。ANSI 把 SDLC 修改为 ADCCP(Advanced Data Communication ControlProcedure)作为美国国家标准,而 ISO 把 SDLC 修改后称为 HDLC(High-level D
8、ataLink 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。标志地址控制信息
9、帧校验序列标志FACIFCSF0111111016/8位16/8位N位16/32位01111110图1 HDLC帧结构l 标志序列(F)HDLC指定采用01111110为标志序列,称为F标志。要求所有的帧必须以F标志开始和结束。接收设备不断地搜寻F标志,以实现帧同步,从而保证接收部分对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送F,用来作时间填充。在一串数据比特中,有可能产生与标志字段的码型相同的比特组合。为了防止这种情况产生,保证对数据的透明传输,采取了比特填充技术。当采用比特填充技术时,在信码中连续5个“1”以后插入一个“0”;而在接收端,则去除5个“1”以后的“0”,恢复原
10、来的数据序列,如图4所示。比特填充技术的采用排除了在信息流中出现的标志字段的可能性,保证了对数据信息的透明传输。数据中某一段比特组合恰好 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 出现和F字段一样的情况 会误认为是F字段 发送端在5个连1之后 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 填入0比特再发送出去 填入0比特在接收端将5个连1之后 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0图2 比特填充当连续传输两帧时,前一个帧的结束标志字段F可以兼作后一个帧的起始标志字段。当暂时没有信息传送时,可以连续发送标
11、志字段,使接收端可以一直保持与发送端同步。l 地址字段(A)地址字段表示链路上站的地址。使用平衡方式(采用ABM),地址字段写入应答站的地址。HDLC协议没有给出地址字段的具体格式,只对其扩充方法及全站地址、无站地址给出了定义。考虑到实际的需要与实现上的方便,定义地址字面结构如下:0 12345671C/RXXXXXXX 未使用Bit0 置“1”,表示地址字段只有一个字节C/R 置“1”表示命令帧,置“0”表示响应帧图3 地址字段定义地址字段的长度采用8bit时,最多可以表示64个站的地址。地址字段bit2bit7为“111111”时,定义为全站地址,即通知所有的接收站接收有关的命令帧并按其动
12、作;bit2bit7为全“0”比特为无站地址,用于测试数据链路的状态。因此有效地址共有62个。l 控制字段(C)控制字段用来表示帧类型、帧编号以及命令、响应等。由于C字段的构成不同,可以把HDLC帧分为三种类型:信息帧、监控帧、无编号帧,分别简称I帧(Information)、S帧(Supervisory)、U帧(Unnumbered)。在控制字段中,第1位是“0”为I帧,第1、2位是“10”为S帧,第1、2位是“11”为U帧。比特12345678I帧0N(S)P/FN(R)S帧10S1S2P/FXXXU帧11M1M2P/FM3M4M5图4 基本模式控制字段比特1234567891011121
13、3141516I帧0N(S)P/FN(R)S帧10S1S2XXXXP/FN(R)U帧11M1M2UM3M4M5P/FXXXXXXX注:X-未使用,置0U-未定义,置1。图5 扩充模式控制字段l 信息字段(I)信息字段内包含了用户的数据信息和来自上层的各种控制信息。长度小于58Bytes。l 帧校验序列字段(FCS)帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内,长度定义由于单板中有部分HDLC链路采用HDLC控制器实现,而HDLC控制器只能支持16bits的CRC 2.3 HDLC协议的规程分析1
14、使用统一的帧格式:实现数据、命令和响应的传输,实施起来方便;2采用0位插入法:使得规程可以支持任意的位流传输,保证了信息传输的透明性;3采用窗口机制和捎带应答机制:全双工工作方式,允许在未收到确认的情况下,连续发送多个帧,提高了信息传输的效率;4采用帧校验序列,并设置窗口序号,可以提高信息传输的正确性和可靠性。总之,面向二进制位的控制规程比面向字符型的控制规程具有较高的优越性。3 HDLC协议控制器的设计3.1 HDLC协议控制器设计方案选择HDLC协议控制器实现方法有三种:ASIC器件、软件编程以及FPGA器件。实现HDLC协议的ASIC芯片有Motorola 公司的 MC92460、ZIL
15、OG 公司的Z80230/85230、ST 公司的 MK5025等。这些集成电路使用简易,功能针对性强,适用于特定用途的大批量产品中。但HDLC标准的文本较多,ASIC芯片出于专用性的目的难于通用于不同版本,缺乏灵活性。而且,专用于 HDLC 的 ASIC 芯片其片内数据存储器容量有限,通常只有不多字节的 FIFO(先进先出存储器)可用,存储深度较浅,对于某些应用来说,当需要扩大数据缓存的容量时,只能对 ASIC 芯片再外接存储器或其它电路,这样,ASIC 芯片在使用中就会有一定的限制。HDLC的软件编程实现,包括PC机和单片机,方法灵活,具有成本低、硬件结构简单、软件编程容易等特点。通过修改
16、程序就可以适用于不同的HDLC协议要求的应用。但是程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。使用FPGA(Field Programmable GateArray,现场可编程门阵列),能够有效的综合前两种方法的优点。FPGA采用硬件技术处理信号,可以通过软件反复编程使用,能兼顾速度和灵活性,可以实时预测和仿真。VHDL语言设计灵活,可以用模拟器来验证程序的功能和时序的正确;不要求设计者非常熟悉器件的内部结构,使得设计者可以集中精力从事设计构思,可以在各EDA平台上运行。在中小批量通信产品的设计生产中,用FPGA实现HDLC功能是一种较好的实现途径。3.2 FPGA的设
17、计原则完整的FPGA设计流程分为电路设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真、配置下载与调试等主要步骤。在设计FPGA系统时,主要考虑以下几个原则:面积和速度的平衡原则与互换原则、硬件原则、系统原则和同步设计原则。1)面积和速度的平衡原则与互换原则:这里的“面积”是指一个设计所消耗的FPGA的逻辑资源数量。“速度”是指设计在芯片上稳定运行时所能够达到的最高频率,与设计时众多时序特征量密切相关。一般来说,速度的优先级要高于资源耗费。当两者冲突时,采用速度优先的准则。2)硬件原则对HDL代码编写而言,它的本质作用在于描述硬件。所以评判一段HDL代码的优劣的最终标准是其描述并实现
18、的硬件电路的性能(包括速度和面积两个方面的指标)。3)系统原则系统原要求设计者能够通过全局、整体上把握设计,从而提高设计质量,优化设计效果。4)同步设计原则同步时序设计是FPGA设计的最重要原则之一。异步电路容易产生毛刺和竞争冒险;同步时序电路主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信号稳定。从资源使用方面考虑,在FPGA中,同步设计并不比异步设计浪费资源。特别需要注意的是,不同的时钟域的接口需要进行同步。还要考虑全局时钟布线资源的利用。全局时钟资源由特殊的工艺实现,具有很高的扇出性能,且到达芯片内部的所有可配置单元、FO单元和选择性块RAM的时延和抖动都为最小。逻辑设计中使用
19、非常频繁的时钟信号、预设置信号、复位信号和使能信号均应从全局脚引入。3.3 HDLC协议控制器总框架帧发送器帧接收器 总控制端local if由结构图可以看出,HDLC协议控制器分为总控制模块、帧发送器、帧接收器,按具体功能模块划分,每个帧控制器又划分为控制、数据缓冲、插零、删零、标志位等模块。各个模块之间的连接时依靠控制信号和寄存器的配置实现的,通过配置好总控制模块的各个控制信号,从而组成整体的HDLC帧的收发功能。具体电路如下图所示:3.4 HDLC帧发送器的设计帧发送器是将信息按照HDLC协议的格式封装成帧并发送出去,其中包括了帧头帧尾标志位的插入、插零、FCS校验和发送模块。通过配置功
20、能选择寄存器addr选择发送功能,并设置好时钟、复位等控制信号即可实现帧发送器的功能。3.4 .1 帧发送器的主要功能1)插零发送器接收到数据时,首先检测是否数据中有5个连续的1,如若有就在其后面插入一个0。2)标志位生成当接收到信号开始发送数据时,将“7E”加在帧头和帧尾,并发送出去。3)CRC校验帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内。4)数据缓冲3.4 .2 帧发送器的组成 控制模块txbuff txsynchtxchannel txfcs 帧发送器功能组成模块 数据缓冲模块( tx
21、buff):数据缓冲模块负责将接收到的数据缓存起来,然后供后续模块调用数据。其端口定义如下图:数据缓冲模块管脚定义图 初始化之后,当控制端收到发送数据的信号时,将txenable和wr端口置1,数据由txdatainbuff输入,txbuff开始缓冲数据,当数据缓冲满了将full置1或达到了预定的数值时会将txdone置1。数据缓冲完后,txdataavail置1表示此时缓冲器内数据可以供调用,数据由txdataoutbuff输出。txbuff模块对帧的数据量根据存储模块的大小和后面数据处理能力来决定,模块输出的8比特并行数据。 CRC校验模块(txfcs):在通信系统中传输数据的可靠性即误码
22、率是非常重要的,因此在传输的数据中需要插入一定的校验信息。根据HDLC协议的要求,数据发送前要对帧内所有的数据进行CRC多项式的计算,并将结果一起发送出去,CRC校验的模块引脚图如下图: 发送器CRC校验模块系统初始处于idle_st状态,当收到读数据信号时(rdy置1),进入read_st状态,如果txdataavail有效txfcs将rdbuff置“1”开始从txbuff中读取数据,然后将数据一一进行CRC多项式运算,并将数据一起封装在帧里面发送出去。 txsynch模块:txsynch模块的功能是将总控制模块、txbuff模块、txfcs模块和txchannel模块连接,模块引脚图如下:
23、 txsynch模块引脚图 txchannel模块:txchannel模块又由zeroins、txcont、flag_ins3个模块构成,分别负责标志位的生成和插零功能的实现,其模块引脚图如下: txchannel模块引脚图1)标志位生成模块flag_ins:标志位生成模块负责对待发送的数据进行帧头尾的添加,其端口定义图如下图:flag_ins模块引脚图当该模块接收到控制使能信号时(TXEN置”1”),串行数据由TXD端口输入,TX端口输出已加好标志位的串行数据流。标志位的仿真时序图如下图: 发送端标志位仿真时序图设定发送数据为“10101010”,由图可知数据流中已加入“0x7E”的标志位,
24、这是构建HDLC帧的第一步。2)插零模块zeroins:为了保证数据链路的透明传输(即可以传输任意组合的比特流),HDLC发送器在遇到5个连“1”的情况下,为了防止接收端误判帧头或帧尾,必须在其后填充一个“0”比特。其模块引脚图如下:当data7.0端口接收到数据时,在时钟上升沿来到时利用移位寄存器,进行8位数据并串转换,在模块内定义一个5位的寄存器,对转换后的连续的5比特数据进行求与运算,若是连续的5个“1”比特,则在后面插入一个“0”比特。插零功能仿真时序图如下:发送端插零模块仿真时序图由图可以看出,输入数据值为“11111000”时,由于数据的高5位均为“1”,根据每逢5个连续的“1”插
25、一个“0”,所以输出的数据流中变成了“111110000”3.5 HDLC帧接收器设计帧接收器设计的模块与帧发送器的设计过程类似,接收器负责标志位检测、CRC生成、删零模块,基本与帧发送器相逆。同样帧接收器的数据缓冲模块也与帧发送器的设计过程相似。通过配置addr寄存器即可实现HDLC帧接收器的整体功能。3.5 .1 帧发送器的主要功能1)标志检测:此模块检测比特流中的“7E”,作为数据帧开始和结束的标志。2)删零:接收数据时,每遇到连续的5个“1”,就将其后面的一个“0”删掉。3)CRC检测:采用CRC-12,也可以不进行检测。3.5 .2 帧发送器的组成 控制模块rxbuff rxsync
26、hrxchannel rxfcs 数据缓冲模块( rxbuff):帧接收器的数据缓冲模块,跟发送器的缓冲模块功能相似,但是逻辑相逆。这里是将从txchannel中收到的数据缓存起来,等到缓冲满了,供用户调用数据。数据缓冲模块引脚图如下: rxchannel模块:rxchannel也包含了rxcont、flagdetect、zerodetect这3个模块。Rxchannel模块引脚图如下:Rxchannel模块引脚图1)标志位检测功能模块引脚图: 接收器标志位检测引脚图标志位检测的主要功能是检测接收到数据流的帧头,确定帧的边界。帧头判别式如下:FlagVar := not ShiftReg(0)
27、 and ShiftReg(1) and ShiftReg(2) and ShiftReg(3) and ShiftReg(4) and ShiftReg(5) and ShiftReg(6) and not ShiftReg(7);FlagDetect = FlagVar;如果检测到FlagDetect其值为高,则表明检测到帧头的出现,这样就可将为下个模块提高控制信号,提示可以开始接收数据。若为零,则表示帧头还未到来。标志位检测功能模块仿真时序图如下:标志位检测功能模块仿真时序图1由图可知,输入标志位“0x7E”之后紧跟着的是“1111000000001111”数据流。输出数据data如下图所示:标志位检测功能模块仿真时序图2这是输出的8比特并行数据,两组数据分别是“11110000”和“00001111”,可见帧接收器正确的接收到了发出的数据。2)零检测功能模块引脚图: 零检测功能模块引脚图零检测功能模块是检测比特流中连续“1”的个数,向后面的提供控制信号,以完成删零判断,检测帧结束标志的功能。模块内设置一个计数器,用来计算连续“1”的个数。若是计数值为6且下一接收比特为“0”,表明检测到结束标志。当计数器值为5且下一比特为“0”,则表明该“0”比特应该删去。零检测功能模块仿真时序图如下:由图可知,输入的 数据流是“111110001100111
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第14课 沟通中外文明的丝绸之路 教学设计-部编版历史与社会七年级上册
- 《分割与组合》教学设计
- 二零二五年度学历提升与就业跟踪服务合同
- 二零二五年度影视作品演员合同及隐私保护条款
- 石家庄市2025年度劳务派遣服务劳动合同书
- 2025-2030中国发电机组行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国反光带行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国压缩机机架行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国厄贝沙坦胶囊行业市场深度分析及发展趋势与投资研究报告
- 2025-2030中国单门铰链行业市场发展趋势与前景展望战略研究报告
- 医院依法执业培训课件
- 注册监理工程师练习题库(附答案)
- 2024年甘肃省公务员录用考试《行测》真题及答案解析
- 2024年广东省公务员录用考试《行测》真题及解析
- 人际交往与人际沟通
- “双循环”视阈下我国稀土产业价值链的逻辑构成与重构路径研究
- 2024年煤矿安全管理人员(掘进班组长)考试题库(浓缩500题)
- 二十届三中全会精神知识竞赛试题及答案
- 生物合成薄荷酮的新途径
- 储能解决方案
- 统编版六年级下册道德与法治1-学会尊重-课件(54张课件)
评论
0/150
提交评论