新闻中心

EEPW首页 > EDA/PCB > 设计应用 > HDLC的FPGA实现方法

HDLC的FPGA实现方法

作者:时间:2012-04-18来源:网络收藏

  7E标志加在发送数据段的前后,其时序由tx_timer确定。在发送启动时,先发7E再发数据。

  发送CRC计算子模块tx_crc由16个带赋能端e的D触发器组成,其电路图见图4,可用来按照x16 + x12 + x5 + 1的生成多项式进行16位CRC计算。该电路的原理可参看数据通信教科书,此处不再赘述,仅说明几点:

  a. 如果要改变CRC的位数,只要改变D触发器的数量。

  b. 如果要改变CRC生成多项式,仅需将多项式中非零系数项对应的D触发器的输出与d1信号异或后送至下一个D触发器的输入。

  c. 通过给D触发器的PRN端或CLRN端置0,就可改变CRC计算的初始值。

  这个例子可说明用设计的CRC电路具有极大的灵活性。

发送CRC计算子模块tx

  图4

  发送的数据经CRC计算并将计算结果附在数据后面,再经插零后附上7E标志就可输出。插零操作由子模块zero_insert完成。子模块tx_data监视着每一个串行移出的数据,当发现数据流中出现五?quot;1时,就输出控制信号1f_detect/ 暂停数据移位,此时子模块zero_insert向数据流插入一个0比特。

  子模块tx_data中存储着待发送数据的比特长度值,并随时和已发送数据的比特长度值比较。当出现两者相等的情况时,判定为数据发送完毕,子模块tx_crc停止CRC计算并把计算结果输出。再经过16个数据时钟后,子模块7e_generator发出7E作为结束标志,同时向接口模块interface发出tx_data_empty信号表示数据发送结束。

  3.3 数据接收模块receiver

  receiver模块的主要功能是:产生与本路接收数据时钟同步的工作时钟;在接收的数据流中检测有无7E标志;当检测到数据流中有1F信号时,对数据进行删零操作;对经删零后的数据进行CRC校验;把接收到的数据进行串/并转换并存入双端口RAM;当接收到结束标志后,检查CRC校验值是否正确,向interface模块发出rx_data_ready信号。

  receiver模块由接收定时子模块rx_timer、接收数据子模块rx_data、标志检测子模块7e_detector、数据删零子模块zero_delete、接收CRC校验子模块 rx_crc等组成,见图5。

  对比receiver模块和transmitter模块,虽然两者一些子模块的功能是相逆的,但其原理是类似的,因此不再重复说明。

  在receiver模块中采用了双端口RAM来作为接收数据缓存器,因此内部向双端口RAM写入数据和FPGA外部向双端口RAM读出数据可以分别通过两个端口独立的数据地址总线同时进行。

  

HDLC数据接收模块receiver

图5

  限于篇幅,以上所述仅为设计HDLC电路的大致框架,许多细节已被省略了。

  4 应用实例

  根据上述设计方法,已成功地在可编程逻辑芯片上实现了多路HDLC的设计。

  设计输入在Altera公司的MAX+plus II[4] 10.0版本的软件平台上进行。首先考虑拟设计的电路有多少路HDLC收发器、需要多少内部存储器、工作速率多少、对外部处理器的接口有何要求等。根据这些考虑,以电路图和AHDL语言结合的方法进行设计输入。对于时序电路,主要采用电路图输入的方法;对于地址译码等功能电路,采用AHDL语言描述;对于存储器、锁存器及移位寄存器等,尽量采用MAX+plus II中LPM(参数化模块库)提供的模块来实现。全部设计输入完成后,对设计进行编译、仿真。在波形仿真器内给定输入信号,检查输出的波形是否符合设计预期。反复多次进行修改,确认无误后可将设计结果下载到FPGA芯片。

  FPGA芯片选用的是Altera公司的ACEX 1K系列[5]。该系列是Altera公司面向通信和消费类数字产品推出的低功耗、高密度的高性能FPGA集成电路,具有可与ASIC相比拟的价位。ACEX 1K系列器件内部采用基于LUT的架构,最大逻辑门数为10万门;可提供的片内存储器最大为49152比特;最小时延仅数纳秒,实际电路总时延在数十纳秒左右;能够满足一般HDLC的要求。ACEX 1K系列FPGA器件工作电压为2.5伏,I/O接口电压可选为2.5伏或3.3伏,配置芯片可选Altera公司的EPC1型。

  设计出的具有多路HDLC功能的FPGA芯片已应用于船舶AIS(Automatic Identification System,自动识别系统)样机的无线数据通信链路中,成功实现了双向数据通信。

  5 结束语

  FPGA提供了一种取代ASIC芯片的选择,以上所述仅是用FPGA实现HDLC功能的一个简单介绍。在通信产品的设计中,如果原已使用了可编程逻辑芯片来实现某些功能的话,只要改用更大容量的FPGA芯片,就可以将类似于HDLC这样的功能都集成进去。如使用Altera 公司的Quartus II软件来进行同类设计,则功能更强大,更能支持Top to Down的设计方法,并且支持Cyclone等大规模FPGA芯片。此外,Xilinx公司新推出90纳米工艺的Spartan-3系列低成本FPGA芯片,也可作为取代ASIC的一种选择。显然,FPGA在通信技术中的应用十分值得重视,并正受到越来越多的关注。(2003.11)

  参考文献

  1 张德民. 数据通信,P.194. 北京:科学技术文献出版社,1997.8

  2 ISO/IEC 3309: Information technology-Telecommunications and information exchange between systems-High-level data link control (HDLC) procedures-Frame structure, P.4. Switzerland: International Electrotechnical Commission, Jun 2002

  3 Zarlink Semiconductor. MT8952B HDLC Protocol Controller, P.3-64. March 1997

  4 Altera Corporation. MAX+plus II, Version 10.0, Sep 2000

  5 Altera Corporation. ACEX 1K Programmable Logic Family Data Sheet, Altera Digital Library,Version 3,2001


上一页 1 2 3 下一页

关键词: HDLC FPGA 实现方法

评论


相关推荐

技术专区

关闭