首页 HDLC的FPGA实现方法

HDLC的FPGA实现方法

举报
开通vip

HDLC的FPGA实现方法 2005年第 3期 通信与广播电视 23 HDLC的 FPGA实现方法 王 喜 吴祖民一 摘 要 魏 武一 HDLC (高级数据链路控制)的一般实现方法为采用ASIC器件和软件编程等。 应用 ASIC器件时设计简单,但灵活性较差;软件编程方法灵活,但占用处理器资 源多,执行速度慢,实时性不易预测。而 FPGA器件则采用硬件处理技术,可以反 复编程,能够兼顾速度和灵活性,并能多路并行处理,实时性能能够预测和仿真。 本设计采用Ahera公司的FPGA芯片,在 QUARTUSII软件平台上实现...

HDLC的FPGA实现方法
2005年第 3期 通信与广播电视 23 HDLC的 FPGA实现方法 王 喜 吴祖民一 摘 要 魏 武一 HDLC (高级数据链路控制)的一般实现方法为采用ASIC器件和软件编程等。 应用 ASIC器件时设计简单,但灵活性较差;软件编程方法灵活,但占用处理器资 源多,执行速度慢,实时性不易预测。而 FPGA器件则采用硬件处理技术,可以反 复编程,能够兼顾速度和灵活性,并能多路并行处理,实时性能能够预测和仿真。 本设计采用Ahera公司的FPGA芯片,在 QUARTUSII软件平台上实现了多路 HDLC 电路的设计,并已在某通信产品中应用成功。 关键词:数据通信 高级数据链路控制规程 循环冗余码校验 现场可编程门阵列 QUARTUSⅡ Realization of FPGA with HDLC W ang Xi Wu Zumin Wei Wu Abstract HDLC·-high level data link control is usually realized with ASIC device and software pro。- gramming.Design with ASIC device is simple,but lack of flexibility.Software program— ming is flexible,but needs for more processor resources and loses speed and real—time pre— diction.However FPGA adopts hardware process technology,can be programmed again and again and can take care of the speed and flexibility.FPGA can processes multi—chan— nel in parallel to achieve real—time prediction and emulation.The FPGA chip from Ahera is used and realized multi—channel HDLC design on QUARTUS software platform with great success. Key words:data communication HDLC CRC FPGA QUARTUS II 一 日f 、 √I 口 HDLC (High—level Data Link Control Procedures,高级数据链路控制规程)广泛应用于数 据通信领域,是确保数据信息可靠互通的重要技术。实施 HDLC的一般方法通常是采用 ^ 幸 幸 幸 幸 作者系熊猫军通四部助理 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 师 作者系熊猫军通四部助理工程师 作者系熊猫军通四部助理工程师 维普资讯 http://www.cqvip.com 通信与广播电视 2005年第 3期 ASIC (Application Specific Integrated Circuit,特定用途集成电路)器件和软件编程等。HDLC 的 ASIC芯片有 Motorola公司的 MC92460、ST公司的 MK5025、Zarlink公司的 MT8952B等。 这些集成电路使用简易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。 但由于HDLC标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏应 用灵活性。例如CCITr、ANSI、ISO/IEC等都有各种版本的HDLC标准,有的芯片公司还有 自己的标准,对 HDLC的CRC(Cyclical Redundancy Check,循环冗余码校验)序列生成多 项式等有不同的规定。况且,专用于 HDLC的ASIC芯片其片内数据存储器容量有限,通常 只有不多字节的FIFO(先进先出存储器)可用。对于某些应用来说,当需要扩大数据缓存 的容量时,只能对ASIC芯片再外接存储器或其它电路,ASIC的简单易用性就被抵销掉了。 FPGA (Field Programmable Gate Array,现场可编程门阵列)采用硬件技术处理信号,又可 以通过软件反复编程使用,能够兼顾速度和灵活性,并能并行处理多路信号,实时性能能够 预测和仿真。FPGA芯片虽成本略微高于ASIC芯片,但具有货源畅通、可多次编程使用等 优点。目前 FPGA单片所含的逻辑门和片上存储器的容量越做越大,百万门级的可编程逻辑 芯片已成为寻常产品。在中小批量通信产品的设计生产中,用 FPGA实现 HDLC功能是一种 值得采用的方法。正是有鉴于此,Ahera,Innocor,Xilinx等公司推出了能在FPGA中实现 HDLC功能的 IP Core(Intellectual Property Core,知识产权核),但这些 IP Core需要付费购 买许可 (License)才能使用,且在应用中受到了各种限制。本文从HDLC的基本定义出发, 通过对 FPGA设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现 HDLC功能的 方法。 二、HDLC的帧结构和CRC校验 首先回顾一下HDLC基本的帧结构形式。HDLC是面向比特流的链路控制规程,其链路 监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以 帧的形式传送。 以下是 ISO/IEC 3309标准规定的HDLC的基本帧结构。 『 起始标志 地址数据 控制数据 信息数据 帧校验序列 结束标志 01Il1l10 8 bits 8 bits 8 bits 16或 32 bits 0l1l1l10 其它的HDLC标准也有类似的帧结构。每帧的起始和结束以 “7E” (01IIII10)做标 志,两个 “7E”之间为数据段 (含地址数据、控制数据、信息数据)和帧校验序列。数据 段当然可以是任意个字节,帧校验采用CRC算法,对除了插入的 “零”以外的所有数据进 行校验。为了避免将数据中的 “7E”误为标志,在发送端和接收端要相应地对数据流和帧 校验序列进行 “插零”及 “删零”操作。 各种HDLC间的区别之一是帧校验序列的CRC算法不同,这种不同表现在几个方面: (1)帧校验序列的位数不同,如 16位和32位等。 (2)CRC生成多项式不同,如对于 16位的CRC,CCITI"V.41标准的多项式是 x16+ x12+x5+1,ANSI CRC一16标准的多项式是 x16+x15+x2+1等。 维普资讯 http://www.cqvip.com 2005年第3期 通信与广播电视 25 (3)CRC序列的初始化条件不同,如可以初始化为全 “0”、全 “1”等。 (4)CRC计算结果的处理方式不同,如可以直接把CRC结果发送,或对CRC结果取反 后再发送等。 (5)对接收到的数据做 CRC校验时,合格判据不同。因为有了上述的不同处理,自然 会得到不同的结果,由此造成合格判据不同。 显然,对于这些应用,可编程逻辑芯片正可以发挥自己的特长。 三、用 FPGA实现 HDLC功能的原理框图 对 FPGA器件进行功能设计一般采用的是 “Top to Down”(“从顶到底”)的方法 ,亦即 根据要求的功能先设计出顶层的原理框图,该图通常由若干个功能模块组成。再把各个模块 细化为子模块,对较复杂的设计都可以可把各子模块分成一层层的下级子模块,各层的功能 可以用硬件描述语言或电路图来实现。 图 1即为一个典型的单路双向HDLC电路的简化模块图。 该电路由接口模块interface、HDLC数据发送模块transmitter和HDLC数据接收模块re. ceiver三部分组成。当需要多路 HDLC收发器时,可将若干个transmitter模块和receiver模块 组合使用。图2是其细化后模块图,其中interface就包括 TX Controller、Rx Controller和 Backend,transmitter包括 FCS-16、Zero Insertion和 Flag Insertion,而 receiver包括 FCS.16、 Zero Deletion和 Flag Detection。 图 l 图 2 k k l f I 】 h h 维普资讯 http://www.cqvip.com 26 通信与广播电视 2005年第 3期 1. 接 口模块 interface interface模块的主要功能是:向接收,发送模块提供各种时钟 (可以用外部时钟);通 过数据、地址总线和外部CPU进行交互,产生和处理中断信号。见图3。 FPGA时钟的频率越高,就可以处理更高速的数据信号,相应的芯片功耗和价格也要高 一 些。数据总线的宽度取决于所使用的外部 CPU类型,可以是8位,16位,32位等等。目 前较多使用的是16位的单片处理器,因此这里采用 16位的数据总线 cpu—data[15..0]。 当然也可以根据需要采用8位或 32位的数据总线。 对于外部 CPU来说,FPGA可以看成是一个普通芯片,通过片选/CS、读写信号/RD和 /WR,就可以选中 FPGA并对其进行读写操作。 当FPGA需要向CPU传递信息时,通过中断的方式,当中断信号输出~/interrupt变为 低电平,CPU响应后可到FPGA中的状态寄存器去读取详细的中断信息并做出相应的处理。 2. HDLC数据发送模块 transmitter transmitter模块的主要功能是:对需要发送的HDLC数据先进行缓冲,并按指定时序启 动发送,然后做 CRC效验,之后将包括 CRC在内的数据、时钟与外部发送时钟进行同步处 理,对包括CRC计算值在内的数据进行 “插零”操作,最后在发送数据段前加上 “7E”起 始标志;并在数据尾部附上 “7F”结束标志把结果输出。transmitter模块由发送数据子模块 txbuffer — ent、发送数据 CRC计算子模块 txfcs—ent、同步模块txsynch—ent、数据插零和加 FLAG子模块txchannel—ent等组成,见图4。 HDLC的数据发送时钟tx—clk由外部电路提供 (在必要时也可由内部提供),工作时钟 clk — i的频率比数据发送时钟高出n倍并锁相于数据发送时钟,能以远远高于比特发送的速 度执行对数据的操作。 待发送数据是由外部CPU通过 interface模块写入指定地址的缓冲存储器的。在 HDLC 中,可以选用的缓冲存储器类型有FIFO(先进先出)存储器、DPRAM (双端口RAM)存 储器、移位寄存器等。在本设计中,发送数据的存储使用的是FIFO,这个类型的存储器使 用比较的简单,也没有多少需要的控制。“7E”标志加在发送数据段的前后,其时序由tx— channel — ent确定。在发送启动时,先发 “7E”再发数据。发送 CRC计算子模块txfcs—ent 是以字节的方式进行 CRC效验的,按照x16+x12+x5+1的生成多项式进行。其算法函数 网上到处可见,而该电路的原理可参看数据通信教科 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf ,此处不再赘述,FPGA可以根据 CRC算法不同作出相应的变化,充分体现了其设计的灵活性。 发送的数据经 CRC计算并将计算结果附在数据后面,再经 “插零”后附上 “7E”标志 就可输出。”插零”操作由子模块 zeroinsert—ent完成,当发现数据流中出现五个连续的 “1”时,就向数据流插入一个 “0”比特。 子模块txbuffer—ent中存储着待发送数据,并随时随地由txfcs—ent模块从中取数进行 CRC效验,当FIFO出现读空的时候,判定为已经没有数据需要发送,子模块 txfcs—ent停 止 CRC计算并把计算结果输出。再经过 16个数据时钟后,子模块flaginsert—ent发出 “7E” 作为结束标志,同时向接口模块interface发出tx—data—done信号表示数据发送结束。 维普资讯 http://www.cqvip.com 2o05年第3期 通信与广播电视 亡=)— ^一 亡= —七 一 [= — ———一 [ [= )_ — —一 [=)— 呻}:————一 [=3— l上 亡二)— 一 [=)— — ————~ [= J ‘二_ 亡= — 0L——一 [= — —:———一 [ =)_- —— 一 [= — l二一 一 [= — 一 一 (L IIl ’ 一 D 一 0l” 《 、 ·0 ’ — f ’ u . 0 0⋯ t 0I T I . I,I 1 h 日 Ⅷ j 1-D⋯ buttF∞ h 一 一●●r n I h 0 l_-l -· t·F 3●n 0 F‘ ‘ 删 I h c1 Id R · }·【m ● u’ r n R· R·Fr -F c p● t州 图 3 图 4 町 n¨ ~ Ⅲ 维普资讯 http://www.cqvip.com 通信与广播电视 2005年第3期 3. HDLC数据接收模块 receiver receiver模块的主要功能是:在接收的数据流中检测有无 “7E”标志;当检测到数据流 中有 “7E”信号时,认为开始有数据可以接收了,然后当检测到数据流中有五个连续的 “1”时,对数据进行 “删零”操作;对经 “删零”后的数据进行 CRC校验;把接收到的数 据存人FIFO;当接收到结束标志后,检查CRC校验值是否正确,向interface模块发出I'X— data — ready信号。receiver模块由标志检测和数据删零子模块rxchannel—ent、同步模块rx— synch — ent、接收CRC校验子模块 rxfcs—ent、接收数据缓冲子模块 rxbuffer—ent等组成, 见图5。对比一下 receiver模块和 transmitter模块,两者大多数子模块的功能是相逆的,其原 理是类似的,就不再重复了。 在receiver模块中采用了FIFO来作为 HDLC接收数据缓存器,当FIFO中有数据时, CPU就从中读取。 限于篇幅,以上所述仅为设计 HDLC电路的大致框架,许多细节已被省略了。 图6是 HDLC的一个仿真时序图。 四、应 用 实 例 根据上述设计方法,已成功地在 FPGA芯片上实现了多路 HDLC的设计。 设计输人在Ahera公司的QUARTUS 11[4.0]版本的软件平台上进行。首先考虑所需 设计的电路有多少路 HDLC收发器、需要多少内部存储器、工作速率多少 (当然一般传输 数据都是可以实现的)、对外部处理器的接121有何要求等。根据这些考虑,以电路图和 VHDL语言结合的方法进行设计输入,尽量采用QUARTUSⅡ中LPM (参数化模块库)提供 的模块来实现,这样可以节省逻辑门,速度也应该更快一些。全部设计输入完成后,对设计 进行编译、仿真。在波形仿真器内给定输人信号,检查输出的波形是否符合设计预期。反复 多次进行修改,确认无误后可将设计结果下载到 FPGA芯片。 FPGA芯片选用的是 Altera公司的 ACEX 1K系列。该系列是Ahera公司面向通信和消费 类数字产品推出的低功耗、高密度的高性能 FPGA集成电路,具有可与ASIC相比拟的价位。 ACEX 1K系列器件内部采用基于LUT的架构,最大逻辑门数为1O万门;可提供的片内存储 器最大为49152比特;最小时延仅数纳秒,实现电路总时延在数十纳秒左右;能够满足一般 HDLC的要求。ACEX 1 K系列 FPGA器件工作电压为2.5伏,I/O接口电压可选为2.5伏或 3.3伏,配置芯片可选 Ahera公司的EPC1型。 五、结 束 语 FPGA提供了一种取代 ASIC芯片的选择,以上所述仅是用FPGA实现 HDLC功能的一个 简单介绍。在通信产品的设计中,如果原已使用了可编程逻辑芯片来实现某些功能的话,只 要改用更大容量的FPGA芯片,就可以将类似于HDLC这样的功能都集成进去。使用Altera 公司的QUARTUSⅡ软件来进行设计 ,功能强大,能支持 “Top to Down”的设计方法,并且 支持 Cyclone等大规模 FPGA芯片。此外,Xilinx公司新推出90纳米工艺的Spartan一3系列低 成本FPGA芯片 ,也可作为取代ASIC的一种选择。显然 ,FPGA在通信技术中的应用十分 维普资讯 http://www.cqvip.com 2005年第3期 通信与广播电视 ^ 、 固 5 l rIffl1 ] l厂 lJ"1u_厂— L———————————————————————- 一一 r.’ m一 __—————————————————————————一 p 一二!二 一 —— 二 二 = 二 二 二 二二 __二二互 ___二 一一一: } 一 面 王互匣 = 二童重重二=二 二=二二 霍薹 r— ——————————————————— ————————————]1广 I t:= —— —— —一 — — —— — — — —— ——— —— ——— —— ——— 。= === == :== == === == === == =:= == === 一 —1Ⅱ1■m 。。。。。_'一_。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。L — r———————————— 广1nr1广 ’ 1 日 m'-1I —.广——————一 r1II 1 ’ 丌厂r rⅡU n]叫 目 ^n % ∞ ——————————————— r 一 值得重视,并正受到越来越多的关注。 l_ 2. 3 4 围6 参 考 文 献 张德民.数据通信.只194.北京:科学技术文献出版社.1997.8 ISO/IEC 3309:Information technology-Telecommunications and information exchange between systems-High-level data link control(HDLC)preeedures—Frame structure,P.4.Switzerland: International Electrotechnical Commission,Jan 2002 Zaflink Semiconductor.M呵B952B HDLC Protocol Controller.P.3-64.Mm-ch 1997 Altera Corporation.ACEX 1K Programmable Logic Family Data Sheet,Alters Di加且l Library, Version 3.2001 维普资讯 http://www.cqvip.com
本文档为【HDLC的FPGA实现方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_298753
暂无简介~
格式:pdf
大小:382KB
软件:PDF阅读器
页数:7
分类:互联网
上传时间:2013-04-08
浏览量:31