没有合适的资源?快使用搜索试试~ 我知道了~
首页HDLC的FPGA实现方法
HDLC的FPGA实现方法

从HDLC的基本定义出发,通过对FPGA设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现HDLC功能的方法。
资源详情
资源评论
资源推荐

HDLC的的FPGA实现方法实现方法
从HDLC的基本定义出发,通过对FPGA设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现HDLC
功能的方法。
1 引言引言
HDLC的ASIC芯片有Motorola公司的MC92460、ST公司的MK5025、Zarlink公司的MT8952B等。这些集成电路使用简
易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。但由于HDLC标准的文本较多,ASIC芯片出于专用性
的目的难以通用于不同版本,缺乏应用灵活性。例如CCITT、ANSI、ISO/IEC等都有各种版本的HDLC标准,有的芯片公司还
有自己的标准,对HDLC的
说,当需要扩大数据缓存的容量时,只能对ASIC芯片再外接存储器或其它电路,ASIC的简单易用性就被抵销掉了。 HDLC
的软件编程方法功能灵活,通过修改程序就可以适用于不同的HDLC应用。但程序运行占用处理器资源多,执行速度慢,对
信号的时延和同步性不易预测。对于多路信号的HDLC应用,处理器的资源占用率与处理路数成正比,所以软件HDLC一般只
能用于个别路数的低速信号处理。
从HDLC的基本定义出发,通过对FPGA设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现HDLC功能的方
法。
2 HDLC的帧结构和的帧结构和CRC校验校验
HDLC规程主要由帧结构、规程要素、规程类别三个部分组成[1]。为了使FPGA的设计能够实现HDLC的基本功能并能按
照各项标准的规定灵活采用不同的CRC校验算法,首先回顾一下HDLC基本的帧结构形式。
HDLC是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信
息比特一起以帧的形式传送。
以下是ISO/IEC 3309标准规定的HDLC的基本帧结构。
其它的HDLC标准也有类似的帧结构。每帧的起始和结束以7E(01111110)做标志,两个7E之间为数据段(含地址数
据、控制数据、信息数据)和帧校验序列。帧校验采用CRC算法,对除了插入的零以外的所有数据进行校验。为了避免将数
据中的7E误为标志,在发送端和接收端要相应地对数据流和帧校验序列进行插零及删零操作。
各种HDLC间的区别之一是帧校验序列的CRC算法不同,这种不同表现在几个方面:
a. 帧校验序列的位数不同,如16位和32位等。
b. CRC生成多项式不同,如对于16位的CRC,CCITT V.41标准的多项式是x16 + x12 + x5 + 1,ANSI CRC-16标准的多
项式是x16 + x15 + x2 + 1等。
c. CRC序列的初始化条件不同,如可以初始化为全0、全1等。
d. CRC计算结果的处理方式不同,如可以直接把CRC结果发送,或对CRC结果取反后再发送等。
e. 对接收到的数据做CRC校验时,合格判据不同。因为有了上述的不同处理,自然会得到不同的结果,由此造成合格判
据不同。例如有的标准以校验结果1D0F判为无错误[2]。而有的ASIC芯片以校验结果F0B8判为无错误[3]。
显然,对于这些应用,可编程逻辑芯片正可以发挥自己的特长。
3 用用FPGA实现实现HDLC功能的原理框图功能的原理框图
对FPGA器件进行功能设计一般采用的是Top to Down(从顶到底)的方法,亦即根据要求的功能先设计出顶层的原理框
图,该图通常由若干个功能模块组成。再把各个模块细化为子模块,对较复杂的设计还可把各子模块分成一层层的下级子模
块,各层的功能可以用硬件描述语言或电路图来实现。
图2即为一个典型的单路双向HDLC电路的顶层电原理图设计实例。
从图中可以看出,该电路由接口模块interface、HDLC数据发送模块transmitter和HDLC
数据接收模块receiver三部分组成。当需要多路HDLC收发器时,可将若干个transmitter模块和receiver模块组合使用。以
下分别对这几个模块做简要说明。


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1