当前位置:首页 > EDA > 电子设计自动化
[导读] HDLC(High Level Date Link Control)协议是通信领域中应用最广泛的协议之一,它是面向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特点。目前市场上有很多专用的HDLC芯片,但这些芯片大

    HDLC(High Level Date Link Control)协议是通信领域中应用最广泛的协议之一,它是面向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特点。目前市场上有很多专用的HDLC芯片,但这些芯片大多控制复杂,通道数目有限;另一方面,专用芯片的使用会有效增大PCB板面积,不利于设备的小型化,而且带来高成本等问题。
    FPGA能对任意数据宽度的信号进行处理,内部的功能模块可以并行处理。因此,采用FPGA技术设计HDLC协议控制器可以均衡整个系统的负荷,实现多通道的高性能HDLC协议控制器,保证通信的可靠性。同时它还具有设计开发周期短、设计制造成本低、可实时在线检验等优点,因此被广泛用于特殊芯片设计中。本设计中采用Altera公司的EP2C70F672C8芯片来实现HDLC协议控制器。


1 HDLC协议简介
    在HDLC通信方式中,所有信息都是以帧的形式传送,HDLC帧格式,如表1所示。

    (1)标志字。
    皿LC协议规定,所有信息传输必须以—个标志字开始,且以同一个标志字结束,这个标志字是01111110。开始标志到结束标志之间构成—个完整的信息单位,称为一帧。接收方可以通过搜索01111110来探知帧的开始和结束,以此建立帧同步。在帧与帧之间的空载期,可连续发送标志字来做填充。
    (2)信息段及“0”比特插入技术。
    HDLC帧的信息长度是可变的,可传送标志字以外的任意二进制信息。为了确保标志字是独一无二的,发送方在发送信息时采用“0”比特插入技术,即发送方在发送除标志字符外的所有信息时(包括校验位),只要遇到连续的5个“1”,就自动插入一个“0”;反之,接收方在接收数据时,只要遇到连续的5个“1”,就自动将其后的“0”删掉。“0”比特插入和删除技术也使得’HDLC具有良好的传输透明性,任何比特代码都可传输。
    (3)地址段及控制段。
    地址字段为8位,也可以8的倍数进行扩展,用于标识接收该帧的栈地址;控制字段为8位,发送方的控制字段用来表示命令和响应的类别和功能。
    (4)帧校验。
    HDLC采用16位循环冗余校验码(CRC-16)进行差错控制,其生成多项式为x16+x12+x5+1,差错校验指对整个帧的内容作CRC循环冗余校验,即对在纠错范围内的错码进行纠正,对在校错范围内的错码进行校验,但不能纠正。标志位和按透明规则插入的所有“0”不在校验的范围内。


2 HDLC协议的FPGA实现
    某遥控遥测平台为确保满足高速通讯、多通道收发、功能易于扩展配置的任务要求,中心控制器采用了以高性能的ARM7为CPU数据处理核心、采用FPGA设计串行通信控制器来收发多通道HDLC数据的一体化设计。

    FPGA按照HDLC协议规程,接收并存储来自集成处理器等8个独立通道的数字量。系统先将外部输入的HDLC数据流由RS485电气特性转换为TTL电平,在此过程中用光耦进行隔离,以避免与外部设备之间的相互干扰,并且RS485芯片与光耦器件的相关电源使用由电气供给的独立5 V和5 V地。      HDLC协议总体结构框图,如图2所示,每个控制模块由时钟控制、编码/冲突检测、发送和接收FIFO等功能模块组成。在发送方向和接收方向,各有一个128 bit的FIFO,用于串行通道和CPU总线接口之间的数据缓冲。发送是接收的逆过程,这里以HDLC数据接收为例进行说明。

    FPGA串行通信控制器接收HDLC数据的原理为:首先,将接收到的数据帧的消息字段和附加的状态字段移入,然后根据选定的寻址模式,对接收帧中的目的地址进行识别,确认数据帧的发送地址是否为本设备(站地址=77H),是本设备数据帧则进行接收数据并存储在FIFO中,当接收数据帧结束时,发出中断信号给ARM系统,请求接收HDLC数据。

  目的地址不是本设备的数据帧将被抛弃,流程图如图3所示。

3 实验结果和分析
    首先,在FPGA中实现一对HDLC数据收发电路,并在对收发电路进行仿真和相关测试。通过在Matlab开发环境下,生成相关的数据文件作为HDLC的数据源,在ModelSim SE 6.1的测试文件中直接调用,最后对比仿真结果和Matlab生成的数据源,可以得到满意的结果。仿真的测试代码覆盖率为100%,仿真结果和数据源完全吻合,可以认定电路的正确性及良好的可靠性。图4,图5分别为HDLC数据收发模块在ModelSim SE 6.1中的仿真图。

    为合理利用FPGA内部的逻辑资源,对设计进行一系列布局布线约束:(1)由前期的论证可知,设计的矛盾主要集中在资源的消耗上,所有模块的优化目标定位为“Area”,除FIFO外,其他模块规划在一起;(2)将FIFO划分为独立的模块;(3)全局时钟绑定在Global资源上,并/串、串/并模块中的衍生时钟,根据和全局时钟的关系,设定为多周期路径。
    实际数据收发的稳定性和可靠性,也跟单板、温度等有关系。仿真完成后,在单板上进行飞线,对特定的收发电路进行电气连接,进行回环测试法,即发送端输出的数据由其接收端接收回来进行测试。在常温下,经过30小时的长时间运行测试后,接收和发送的数据做了对比,没有发现丢数据包和错数据包的情况。由测试结果可知,该HDLC收发电路的具有稳定性和可靠性。高低温实验由于条件所限未进行,单板的温度特性可由器件的温度特性大概推知,这里不做讨论。


4 结束语
    针对某遥控遥测平台的要求,文中提出了一种基于FPGA的多通道HDLC收发电路设计方案,并利用Altera公司的P2C70F672C8芯片来实现。目前,实现该电路的单板已经完成调试,并成功地应用于整机试验。实践表明,该电路实现简单、可靠性高、使用灵活等优点,具有一定的推广价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

电子设计自动化

21260 篇文章

关注

发布文章

编辑精选

技术子站

关闭