HDLC的FPGA实现方法
发布时间:2008/5/29 0:00:00 访问次数:798
摘要: hdlc(高级数据链路控制)的一般实现方法为采用asic器件和软件编程等。应用asic器件时设计简单,但灵活性较差;软件编程方法灵活,但占用处理器资源多,执行速度慢,实时性不易预测。fpga器件采用硬件处理技术,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理,实时性能能够预测和仿真。在中小批量通信产品的设计中,fpga是取代asic实现hdlc功能的一种合适选择。 采用altera公司的fpga芯片,在max+plus ii软件平台上实现了多路hdlc电路的设计,并已在某通信产品样机中应用成功。
关键词: 数据通信; hdlc; crc校验; fpga; max+plus ii
1 引言
hdlc(high-level data link control procedures, 高级数据链路控制规程)广泛应用于数据通信领域,是确保数据信息可靠互通的重要技术。实施hdlc的一般方法通常是采用asic(application specific integrated circuit,特定用途集成电路) 器件和软件编程等。
hdlc的asic芯片有motorola公司的mc92460、st公司的mk5025、zarlink公司的mt8952b等。这些集成电路使用简易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。但由于hdlc标准的文本较多,asic芯片出于专用性的目的难以通用于不同版本,缺乏应用灵活性。例如ccitt、ansi、iso/iec等都有各种版本的hdlc标准,有的芯片公司还有自己的标准,对hdlc的crc(cyclical redundancy check,循环冗余码校验)序列生成多项式等有不同的规定。况且,专用于hdlc的asic芯片其片内数据存储器容量有限,通常只有不多字节的fifo(先进先出存储器)可用。对于某些应用来说,当需要扩大数据缓存的容量时,只能对asic芯片再外接存储器或其它电路,asic的简单易用性就被抵销掉了。 hdlc的软件编程方法功能灵活,通过修改程序就可以适用于不同的hdlc应用。但程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。对于多路信号的hdlc应用,处理器的资源占用率与处理路数成正比,所以软件hdlc一般只能用于个别路数的低速信号处理。
fpga(field programmable gate array, 现场可编程门阵列)采用硬件技术处理信号,又可以通过软件反复编程使用,能够兼顾速度和灵活性,并能并行处理多路信号,实时性能能够预测和仿真。fpga芯片虽成本略微高于asic芯片,但具有货源畅通、可多次编程使用等优点。目前fpga单片所含的逻辑门和片上存储器的容量越做越大,百万门级的可编程逻辑芯片已成为寻常产品。在中小批量通信产品的设计生产中,用fpga实现hdlc功能是一种值得采用的方法。正是有鉴于此,innocor、xilinx等公司推出了能在fpga中实现hdlc功能的ip core(intellectual property core,知识产权核),但这些ip core需要付费购买许可(license)才能使用,且在应用中受到各种限制。
本文从hdlc的基本定义出发,通过对fpga设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现hdlc功能的方法。
2 hdlc的帧结构和crc校验
hdlc规程主要由帧结构、规程要素、规程类别三个部分组成[1]。为了使fpga的设计能够实现hdlc的基本功能并能按照各项标准的规定灵活采用不同的crc校验算法,首先回顾一下hdlc基本的帧结构形式。
hdlc是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以帧的形式传送。
以下是iso/iec 3309标准规定的hdlc的基本帧结构。
起始标志 | 地址数据 | 控制数据 | 信息数据 | 帧校验序列 | 结束标志 |
01111110 | 8bits | 8bits | 8bits | 16或32bits | 01111110 |
其它的hdlc标准也有类似的帧结构。每帧的起始和结束以"7e"(01111110)做标志,两个"7e"之间为数据段(含地址数据、控制数据、信息数据)和帧校验序列。帧校验采用crc算法,对除了插入的"零"以外的所有数据进行校验。为
摘要: hdlc(高级数据链路控制)的一般实现方法为采用asic器件和软件编程等。应用asic器件时设计简单,但灵活性较差;软件编程方法灵活,但占用处理器资源多,执行速度慢,实时性不易预测。fpga器件采用硬件处理技术,可以反复编程,能够兼顾速度和灵活性,并能多路并行处理,实时性能能够预测和仿真。在中小批量通信产品的设计中,fpga是取代asic实现hdlc功能的一种合适选择。 采用altera公司的fpga芯片,在max+plus ii软件平台上实现了多路hdlc电路的设计,并已在某通信产品样机中应用成功。
关键词: 数据通信; hdlc; crc校验; fpga; max+plus ii
1 引言
hdlc(high-level data link control procedures, 高级数据链路控制规程)广泛应用于数据通信领域,是确保数据信息可靠互通的重要技术。实施hdlc的一般方法通常是采用asic(application specific integrated circuit,特定用途集成电路) 器件和软件编程等。
hdlc的asic芯片有motorola公司的mc92460、st公司的mk5025、zarlink公司的mt8952b等。这些集成电路使用简易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。但由于hdlc标准的文本较多,asic芯片出于专用性的目的难以通用于不同版本,缺乏应用灵活性。例如ccitt、ansi、iso/iec等都有各种版本的hdlc标准,有的芯片公司还有自己的标准,对hdlc的crc(cyclical redundancy check,循环冗余码校验)序列生成多项式等有不同的规定。况且,专用于hdlc的asic芯片其片内数据存储器容量有限,通常只有不多字节的fifo(先进先出存储器)可用。对于某些应用来说,当需要扩大数据缓存的容量时,只能对asic芯片再外接存储器或其它电路,asic的简单易用性就被抵销掉了。 hdlc的软件编程方法功能灵活,通过修改程序就可以适用于不同的hdlc应用。但程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。对于多路信号的hdlc应用,处理器的资源占用率与处理路数成正比,所以软件hdlc一般只能用于个别路数的低速信号处理。
fpga(field programmable gate array, 现场可编程门阵列)采用硬件技术处理信号,又可以通过软件反复编程使用,能够兼顾速度和灵活性,并能并行处理多路信号,实时性能能够预测和仿真。fpga芯片虽成本略微高于asic芯片,但具有货源畅通、可多次编程使用等优点。目前fpga单片所含的逻辑门和片上存储器的容量越做越大,百万门级的可编程逻辑芯片已成为寻常产品。在中小批量通信产品的设计生产中,用fpga实现hdlc功能是一种值得采用的方法。正是有鉴于此,innocor、xilinx等公司推出了能在fpga中实现hdlc功能的ip core(intellectual property core,知识产权核),但这些ip core需要付费购买许可(license)才能使用,且在应用中受到各种限制。
本文从hdlc的基本定义出发,通过对fpga设计输入的模块化描述,介绍一种能够在可编程逻辑芯片中实现hdlc功能的方法。
2 hdlc的帧结构和crc校验
hdlc规程主要由帧结构、规程要素、规程类别三个部分组成[1]。为了使fpga的设计能够实现hdlc的基本功能并能按照各项标准的规定灵活采用不同的crc校验算法,首先回顾一下hdlc基本的帧结构形式。
hdlc是面向比特的链路控制规程,其链路监控功能通过一定的比特组合所表示的命令和响应来实现,这些监控比特和信息比特一起以帧的形式传送。
以下是iso/iec 3309标准规定的hdlc的基本帧结构。
起始标志 | 地址数据 | 控制数据 | 信息数据 | 帧校验序列 | 结束标志 |
01111110 | 8bits | 8bits | 8bits | 16或32bits | 01111110 |
其它的hdlc标准也有类似的帧结构。每帧的起始和结束以"7e"(01111110)做标志,两个"7e"之间为数据段(含地址数据、控制数据、信息数据)和帧校验序列。帧校验采用crc算法,对除了插入的"零"以外的所有数据进行校验。为
上一篇:tri0和tri1线网