HDLC协议控制器设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录内容摘要……………………………………………………………………1关键词……………………………………………………………………1Abstract……………………………………………………………………1KeyWords…………………………………………………………………11.绪论……………………………………………………………………21.1研究的意义………………………………………………………21.2本设计的主要功能………………………………………………22.HDLC协议综述…………………………………………………………32.1HDLC协议的产生背景…………………………………………32.2HDLC协议的帧结构……………………………………………42.3HDLC协议的规程分析…………………………………………73.HDLC协议控制器的设计………………………………………………83.1HDLC协议控制器设计方案选择…………………………………83.2FPGA的设计原则………………………………………………93.3HDLC协议控制器总框架………………………………………103.4HDLC帧发送器的设计……………………………………………113.5HDLC帧接收器的设计……………………………………………15参考文献…………………………………………………………………18致谢………………………………………………………………………19[说明:在本页中,“目录”二字居中,宋体小二号,加黑,其它统一由宋体小四号,不加黑排版打印、行间距为1.5]1内容摘要:HDLC(高级数据链路控制)协议是一种面向比特的链路控制规程,广泛的用作数据链路层的控制协议。论文在分析和研究HDLC协议的基础上,提出了一种基于FPGA(现场可编程门阵列)的HDLC协议控制器的设计。对HDLC协议控制器的功能进行划分,分别设计了标志位的检测和生成、插零和删零、FCS的校验等控制模块。采用VHDL硬件描述语言在FPGA内部实现HDLC协议的各功能模块,本设计使用QuartusII9.1平台实现代码编写、综合、编译、仿真。对HDLC链路控制规程功能,帧控制和FCS校验功能进行了仿真实现。关键词:HDLC;FPGA;帧收发器;Abstract:(宋体,小四号,加黑)××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××。(宋体,小四号,不加黑)Keywords:(宋体,小四号,加黑)×××□□×××□□×××□□(宋体,小四号,不加黑)21绪论1.1研究的意义HDLC是一个在同步网上传输数据、面向位的数据链路层协议,它是由国际标准化组织(ISO)制订的。该协议被广泛的用作数据链路层的控制协议,HDLC控制器在网络设备中得到大量的使用,如列车通信网络技术、综合业务数字网ISDN、X.25分组交换网以及帧中继网等。怎样在产品中设计与实现HDLC网络协议也是一个技术研究的热点。HDLC的一般实现方法为采用ASIC器件和软件编程等。ASIC的芯片有Motorola公司的MC92460,ST公司的MK5025等。应用这些ASIC器件时设计简单,功能针对性强,性能可靠,适用于特定用途的大批量产品中。但是这类ASIC芯片存在开发时间长,一旦芯片固有缺陷就不容易解决等问题,而且HDLC标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏灵活性。HDLC的软件编程方法灵活,通过修改程序就可适用于不同的HDLC应用,但程序运行占用处理器资源多,执行速度慢,实时性不易预测。FPGA(FieldProgrammableGateArray,现场可编程门阵列)器件采用硬件处理信号,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理。在中小批量通信产品的设计中,FPGA是取代ASIC实现HDLC功能的一种合适选择。1.2本设计的主要功能本文实现了一种采用FPGA的HDLC协议控制器的设计和功能仿真。首先综述了HDLC协议的产生背景和帧结构,提出了基于FPGA设计模式的控制器。以HDLC协议帧的接收和发送为主体,在明确FPGA的设计原则的基础上,对帧收发器进行分功能模块设计,编写代码,时序分析。以发送器为例,其中包括了标志位的生成,插零,FCS校验等模块的设计。接收器跟发送器设计思想类似。在完成各个模块的设计后,使用了QuartusII9.1自带仿真器对各个模块的功能一一进行了仿真,并对HDLC协议及其规程进行了验证和分析。32HDLC协议综述2.1HDLC协议的产生背景计算机通信的早期,人们发现对于经常发生误码的实际链路,只要加上了合适的控制规程,就可以是通信变得比较可靠。这些规程都是数据链路层的协议,都是面向字符的。所谓面向字符,就是说在链路上所传送的数据都是由规定的字符集中的字符所组成的。而且,链路上传送的控制信息也必须由同一个字符集中的若干指定的控制字符构成。面向字符的链路控制规程曾在计算机网络的发展过程中起了重要的作用,但随着发展,这种规程就逐渐暴露出其弱点。其主要限制是:1.通信线路的利用率低,因为它采用的是停止等待协议,收发双方交替地工作。2.所有通信设备必须使用同样字符的代码,而不同版本的规程要求使用不同的代码。3.只对数据部分进行差错控制,若控制部分出错就无法控制,因而可靠性差。4.不易扩展,每增加一种功能就需要设定一个新的控制字符。1974年,IBM公司推出了著名的体系结构SNA。在SNA的数据链路层规程上采用了面向比特的规程SDLC(SynchronousDataLinkControl)。后来IBM将此规程提交美国国家标准协会ANSI和国际标准化组织ISO,建议成为国家和国际标准。ANSI把SDLC修改为ADCCP(AdvancedDataCommunicationControlProcedure)作为美国国家标准,而ISO把SDLC修改后称为HDLC(High-levelDataLinkControl),并作为国际标准ISO3309。HDLC协议有两种链路配置和三种数据传送方式:1.非平衡模式:a.正常响应方式NRM(NomalResponseMode)b.异步响应方式ARM(AsynchronousResponseMode)2.平衡模式:c.异步平衡方式ABM(AsynchronousBalancedMode)42.2HDLC协议的帧结构HDLC的帧格式由六个字段组成,这六个字段可以分为五种类型,即标志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验字段(FCS)。在帧结构中允许不包含信息字段I。标志地址控制信息帧校验序列标志FACIFCSF0111111016/8位16/8位N位16/32位01111110图1HDLC帧结构标志序列(F)HDLC指定采用01111110为标志序列,称为F标志。要求所有的帧必须以F标志开始和结束。接收设备不断地搜寻F标志,以实现帧同步,从而保证接收部分对后续字段的正确识别。另外,在帧与帧的空载期间,可以连续发送F,用来作时间填充。在一串数据比特中,有可能产生与标志字段的码型相同的比特组合。为了防止这种情况产生,保证对数据的透明传输,采取了比特填充技术。当采用比特填充技术时,在信码中连续5个“1”以后插入一个“0”;而在接收端,则去除5个“1”以后的“0”,恢复原来的数据序列,如图4所示。比特填充技术的采用排除了在信息流中出现的标志字段的可能性,保证了对数据信息的透明传输。数据中某一段比特组合恰好001001111110001010出现和F字段一样的情况会误认为是F字段发送端在5个连1之后0010011111010001010填入0比特再发送出去填入0比特5在接收端将5个连1之后001001111110001010图2比特填充当连续传输两帧时,前一个帧的结束标志字段F可以兼作后一个帧的起始标志字段。当暂时没有信息传送时,可以连续发送标志字段,使接收端可以一直保持与发送端同步。地址字段(A)地址字段表示链路上站的地址。使用平衡方式(采用ABM),地址字段写入应答站的地址。HDLC协议没有给出地址字段的具体格式,只对其扩充方法及全站地址、无站地址给出了定义。考虑到实际的需要与实现上的方便,定义地址字面结构如下:012345671C/RXXXXXXX–未使用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帧。6比特12345678I帧0N(S)P/FN(R)S帧10S1S2P/FXXXU帧11M1M2P/FM3M4M5图4基本模式控制字段比特12345678910111213141516I帧0N(S)P/FN(R)S帧10S1S2XXXXP/FN(R)U帧11M1M2UM3M4M5P/FXXXXXXX注:X-未使用,置0U-未定义,置1。图5扩充模式控制字段信息字段(I)信息字段内包含了用户的数据信息和来自上层的各种控制信息。长度小于58Bytes。帧校验序列字段(FCS)帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内,长度定义由于单板中有部分HDLC链路采用HDLC控制器实现,而HDLC控制器只能支持16bits的CRC72.3HDLC协议的规程分析1.使用统一的帧格式:实现数据、命令和响应的传输,实施起来方便;2.采用‘0’位插入法:使得规程可以支持任意的位流传输,保证了信息传输的透明性;3.采用窗口机制和捎带应答机制:全双工工作方式,允许在未收到确认的情况下,连续发送多个帧,提高了信息传输的效率;4.采用帧校验序列,并设置窗口序号,可以提高信息传输的正确性和可靠性。总之,面向二进制位的控制规程比面向字符型的控制规程具有较高的优越性。83HDLC协议控制器的设计3.1HDLC协议控制器设计方案选择HDLC协议控制器实现方法有三种:ASIC器件、软件编程以及FPGA器件。实现HDLC协议的ASIC芯片有Motorola公司的MC92460、ZILOG公司的Z80230/85230、ST公司的MK5025等。这些集成电路使用简易,功能针对性强,适用于特定用途的大批量产品中。但HDLC标准的文本较多,ASIC芯片出于专用性的目的难于通用于不同版本,缺乏灵活性。而且,专用于HDLC的ASIC芯片其片内数据存储器容量有限,通常只有不多字节的FIFO(先进先出存储器)可用,存储深度较浅,对于某些应用来说,当需要扩大数据缓存的容量时,只能对ASIC芯片再外接存储器或其它电路,这样,ASIC芯片在使用中就会有一定的限制。HDLC的软件编程实现,包括PC机和单片机,方法灵活,具有成本低、硬件结构简单、软件编程容易等特点。通过修改程序就可以适用于不同的HDLC协议要求的应用。但是程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。使用FPGA(FieldProgrammableGateArray,现场可编程门阵列),能够有效的综合前两种方法的优点。FPGA采用硬件技术处理信号,可以通过软件反复编程使用,能兼顾速度和灵活性,可以实时预测和仿真。VHDL语言设计灵活,可以用模拟器来验证程序的功能和时序的正确;不要求设计者非常熟悉器件的

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功