0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

电子设计 来源:郭婷 作者:电子设计 2018-12-30 11:00 次阅读

HDLC(High Level Date Link Control)协议是通信领域中应用最广泛的协议之一,它是面向比特的高级数据链路控制规程,具有差错检测功能强大、高效和同步传输的特点。目前市场上有很多专用的HDLC芯片,但这些芯片大多控制复杂,通道数目有限;另一方面,专用芯片的使用会有效增大PCB板面积,不利于设备的小型化,而且带来高成本等问题。

FPGA能对任意数据宽度的信号进行处理,内部的功能模块可以并行处理。因此,采用FPGA技术设计HDLC协议控制器可以均衡整个系统的负荷,实现多通道的高性能HDLC协议控制器,保证通信的可靠性。同时它还具有设计开发周期短、设计制造成本低、可实时在线检验等优点,因此被广泛用于特殊芯片设计中。本设计中采用Altera公司的EP2C70F672C8芯片来实现HDLC协议控制器。

1 HDLC协议简介

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

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

(1)标志字。

皿LC协议规定,所有信息传输必须以—个标志字开始,且以同一个标志字结束,这个标志字是01111110。开始标志到结束标志之间构成—个完整的信息单位,称为一帧。接收方可以通过搜索01111110来探知帧的开始和结束,以此建立帧同步。在帧与帧之间的空载期,可连续发送标志字来做填充。

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

(2)信息段及“0”比特插入技术。

HDLC帧的信息长度是可变的,可传送标志字以外的任意二进制信息。为了确保标志字是独一无二的,发送方在发送信息时采用“0”比特插入技术,即发送方在发送除标志字符外的所有信息时(包括校验位),只要遇到连续的5个“1”,就自动插入一个“0”;反之,接收方在接收数据时,只要遇到连续的5个“1”,就自动将其后的“0”删掉。“0”比特插入和删除技术也使得’HDLC具有良好的传输透明性,任何比特代码都可传输。

(3)地址段及控制段。

地址字段为8位,也可以8的倍数进行扩展,用于标识接收该帧的栈地址;控制字段为8位,发送方的控制字段用来表示命令和响应的类别和功能。

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

(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所示。

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

3 实验结果和分析

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

采用FPGA与P2C70F672C8芯片实现多通道HDLC收发电路设计

为合理利用FPGA内部的逻辑资源,对设计进行一系列布局布线约束:(1)由前期的论证可知,设计的矛盾主要集中在资源的消耗上,所有模块的优化目标定位为“Area”,除FIFO外,其他模块规划在一起;(2)将FIFO划分为独立的模块;(3)全局时钟绑定在Global资源上,并/串、串/并模块中的衍生时钟,根据和全局时钟的关系,设定为多周期路径。

实际数据收发的稳定性和可靠性,也跟单板、温度等有关系。仿真完成后,在单板上进行飞线,对特定的收发电路进行电气连接,进行回环测试法,即发送端输出的数据由其接收端接收回来进行测试。在常温下,经过30小时的长时间运行测试后,接收和发送的数据做了对比,没有发现丢数据包和错数据包的情况。由测试结果可知,该HDLC收发电路的具有稳定性和可靠性。高低温实验由于条件所限未进行,单板的温度特性可由器件的温度特性大概推知,这里不做讨论。

4 结束语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1610

    文章

    21390

    浏览量

    595440
  • 芯片
    +关注

    关注

    449

    文章

    48573

    浏览量

    413079
  • 控制器
    +关注

    关注

    112

    文章

    15526

    浏览量

    173453
收藏 人收藏

    评论

    相关推荐

    无线收发电路设计原理图

    无线收发电路设计原理图 采用nRF905无线接收芯片设计的原理图
    发表于 06-30 22:21

    HDLC的DSP与FPGA实现

    反复编程使用。DSP、FPGA芯片虽成本略微高于ASIC芯片,但具有货源畅通、可多次编程使用等优点。在中小批量通信产品的设计生产中,用FPGA和DSP
    发表于 03-17 10:23

    DE2 FPGA开发板出手 Altera官方正品 EP2C35F672C8N 九成新,配件齐全 698元

    `DE2 FPGA开发板出手 Altera官方正品 EP2C35F672C8N 九成新,配件齐全 698元,可以小刀。南京地区可以当面交易。功能齐全,无任何问题,有兴趣的请联系QQ:865021481`
    发表于 04-29 21:43

    采用控制芯片P89C61x2和接口芯片ISP1581实现USB接口电路设计

    主要芯片介绍本设计采用控制芯片P89C61x2和接口芯片ISP1581实现USB接口
    发表于 04-16 07:00

    采用FPGA实现发电位仪系统设计

    集成滤波算法模块;数据采集采用高精度通道的模/数转换芯片ADSl258将通过放大器放大后的诱发电位信号进行模/数转换并输入
    发表于 05-16 07:00

    怎么设计通道HDLC收发电路

    上有很多专用的HDLC芯片,但这些芯片大多控制复杂,通道数目有限;另一方面,专用芯片的使用会有效增大PCB板面积,不利于设备的小型化,而且带
    发表于 08-13 08:23

    如何采用控制芯片P89C61x2和接口芯片ISP1581实现USB接口电路的设计?

    本设计采用控制芯片P89C61x2和接口芯片ISP1581实现USB接口电路的设计。
    发表于 04-22 06:36

    请问怎样去设计通道HDLC收发电路

    一种基于FPGA通道HDLC收发电路设计
    发表于 05-07 06:36

    基于FPGA的多通道HDLC通信系统设计与实现

    为了满足某测控平台的设计要求,设计并实现了基于FPGA的六通道HDLC并行通信系统。该系统以FPGA为核心,包括
    发表于 09-30 16:49 43次下载

    基于FPGA的多通道HDLC收发电路设计

    基于FPGA的多通道HDLC收发电路设计 HDLC(High Level Date Link Control)协议是通信领域中应用最广泛的
    发表于 12-10 10:14 1554次阅读

    基于MPC860的HDLC通道驱动程序的设计与实现

    基于MPC860的HDLC通道驱动程序的设计与实现 摘 要: 阐述了MPC860芯片及其SCC接口的基本工作原理,介绍了在SCC通道
    发表于 01-14 10:41 943次阅读
    基于MPC860的<b class='flag-5'>HDLC</b><b class='flag-5'>通道</b>驱动程序的设计与<b class='flag-5'>实现</b>

    基于DSP和FPGAHDLC协议通讯电路设计

    摘要:为了实现高速HDLC通讯协议,设计了DSP+FPGA结构的485通讯接口,接口包括DSP、FPGA、485转换等硬件电路,以及DSP与
    发表于 02-25 17:24 98次下载

    DSP和FPGAHDLC协议通讯电路设计

    DSP和FPGAHDLC协议通讯电路设计
    发表于 10-19 14:46 7次下载
    DSP和<b class='flag-5'>FPGA</b>的<b class='flag-5'>HDLC</b>协议通讯<b class='flag-5'>电路设计</b>

    基于DSP与FPGA实现HDLC

    引言 HDLC(高级数据链路控制)广泛应用于数据通信领域,是确保数据信息可靠互通的重要技术。实施HDLC的一般方法通常是采用ASIC器件或软件编程等。 HDLC的ASIC
    发表于 10-25 16:52 0次下载
    基于DSP与<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>的<b class='flag-5'>HDLC</b>

    如何使用FPGA实现HDLC协议控制器

    ,解析模块及其内部的CRC码生成,检验模块的方法。在FPGA内部采用硬件描述语言(HDL)并行设计多通道的高级数据链路控制(HDLC)协议控制器,该协议控制器有效利用
    发表于 11-04 18:04 15次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>HDLC</b>协议控制器