FPGA总线桥接在特种计算机中的应用设计

FPGA/ASIC技术

190人已加入

描述

本文针对特种计算机的多接口、微型化特点,以FPGA 为核心将总线桥接技术应用于特种计算机设计中,不仅完成计算机电源控制功能,而且以一颗主芯片实现多接口的传输应用,节约PCB 布局面积,节省整机空间。该应用包含以太网、UART、USB 以及CAN 总线等多种接口,设计灵活、稳定性高。

近年来,特种计算机的特点逐渐朝着抗恶劣环境、高性能、高可靠、多接口、微型化趋势发展。其中,计算机多接口特点的实现通常采用多个专用芯片来完成板载设计以及使用多个专用扩展卡来完成扩展设计,该种设计不仅与微型化相矛盾而且会产生整机内部空间拥挤、制作工序复杂、稳定性低等缺点。

本文针对特种计算机的多接口、微型化特点提出基于FPGA 的总线桥接在特种计算机中的应用,即使用FPGA 设计总线桥接技术来替代传统的接口转接芯片或多扩展卡来完成多接口设计,同时将计算机上电管理模块集成在FPGA 内部实现,该应用对于板载接口可以节约PCB 布局面积,对于扩展设计则能节省设备空间布局,能够在保证稳定性的基础上实现计算机的多接口、微型化特点。
 

1 FPGA 概述

FPGA,即现场可编程门阵列(Field ProgrammableGateArrays),是一种可编程使用的数字逻辑器件,用户以根据自身需求改变其配置信息来实现相应的设计功能,来满足系统设计需求。FPGA 器件在可编程、集成度、性能和可靠性上都比传统数字电路要优越。通过编程设计来完成器件内部逻辑功能配置,既能减少电路设计工作量又可以将电路设计中的信号质量、空间布局等都集成在芯片内部,在保证效果的同时提高工作效率,增加灵活性[1]。目前,FPGA 在市场中已经越来越多的被使用在数字系统设计中,且该技术可以将半导体发展过程中低功耗、高频率、低成本等特点完全体现。未来,FPGA 的特点将集中表现为高规模、高集成度、高性能、低价格。

当前主流FPGA 芯片提供商为Xilinx、Altera、Lattice、Actel、Atmel 等,前两者市场占有率在60%以上,而ACTEL 主要涉及军品和宇航级市场。本文采用Xilinx 品牌系列产品,将FPGA 芯片的高集成度、高性能等特点使用在计算机接口扩展应用上,既能保证接口数量和性能,又能节省设备结构空间布局,同时具有设计灵活等显著特点。

2 FPGA 总线桥接在特种计算机中的应用

在特种计算机设计中因客户的特殊应用环境不同,决定了特种计算机的多接口特点,在面向主流应用中,采用专用芯片来实现多接口的方式价格昂贵、占用PCB 面积大,设计不灵活,本文涉及应用以FPGA 逻辑桥接为核心,使用模块化设计方案,以FPGA+ 接口芯片的方式实现不同接口的通信。在FPGA 部分,包括外部接口单元、PCIE 接口单元、逻辑桥接单元以及计算机电源管理单元,四个逻辑单元均集成在FPGA内部,对于计算机系统,FPGA 芯片以DMA 模式挂接在PCIE 总线下,其为PCIE 桥设备。电源管理单元将计算机电源时序控制以及系统部分信号控制集成在FPGA 内部,该单元与接口通信为相互独立功能单元。如图1 为整个系统结构框图。

FPGA

图1 FPGA 总线桥接应用示意图

2.1 逻辑桥接单元
如图2 所示在该部分主要以逻辑控制为核心,在数据通信中,FPGA 内部设计局部总线实现PCI-E 到各接口的逻辑桥接,每一个接口模块都挂接在该局部总线上,逻辑桥接模块通过地址线、数据线、控制信号线(包括读写信号线和片选信号线)与各接口模块通信,各个接口模块的内部分为顶层逻辑控制模块和接口处理模块。顶层控制模块负责完成相应接口协议与局部总线协议的转化,接口处理模块负责完成FPGA 与外部接口的数据传输。通过协议转换以及局部总线桥接完成PCIE 与各接口模块的信号通信。

FPGA

图2 逻辑桥接单元

2.2 PCIE 接口单元
PCIE 接口单元为FPGA 与计算机系统通信的通道,也是接口数据传输的通道,该单元为由FPGA 内部PCIE 硬核层和PCIE 软核(IP 核)构成,通过例化硬核和编写应用层逻辑,即可直接使用FPGA 厂家提供的IP 核实现PCIE 端点(Endpoint) 设备功能,利用系统PCIE 总线将设备和计算机系统进行链式 DMA 高速数据传输[2]。该过程主要完成PCIE 协议的解析,在将解析后的信号数据通过逻辑控制模块转换协议后存放于局部总线缓冲器,待进一步与对应模块通信完成PCIE—外部接口的逻辑桥接。外部接口至PCIE 的数据通信与之相反,逻辑控制模块从局部总线读取数据并转换协议后通过PCIE 送至系统。该部分逻辑图如图3 所示。

FPGA

图3 PCIE 接口单元

2.3 外部接口单元
外部接口单元为实现特种计算机多接口功能的具体实现单元,该部分可以根据客户定制需求来选择不同的设计内容,对相应设计进行逻辑编程即可实现特殊接口定制功能。本文提出的应用包括以太网接口、UART 接口、USB 接口以及CAN 总线接口。

2.3.1 以太网接口
传统的以太网接口通过以太网控制器外接一个PHY 芯片来完成主机与外部通信(如图4)。对于使用FPGA 的通信方式通常有两种,一个使用只含有物理层(PHY)的控制器,则需要在FPGA 内部来实现MAC 功能,另一个是自带物理层(PHY)处理接口和媒体控制层(MAC)处理接口,此种使用FPGA 只关心数据协议的处理。本文太网链接通过外接带PHY 和MAC 层的以太网接口芯片DM9000 实现,故只需在FPGA 内部实现协议应用层,通过逻辑控制以及协议转换经局部总线即可完成与PCIE 的链路桥接(如图5)。

FPGA

图4 传统以太网接口

FPGA

图5 DM9000 应用接口

2.3.2 UART 通信接口
该通信接口模块包括数据发送、数据接收、波特率发生器、顶层逻辑控制部分[3],顶层逻辑控制部分负责与局部总线通信以完成数据发送和接受,进而实现上层通信;在下层通信中,通过FPGA 内部逻辑控制功能的改写以及外部链接不同的TTL 电平转换芯片即可完成如RS232 和RS485 的对外通信。图6 为UART 接口框图。

FPGA

图6 UART 接口通信

2.3.3 USB 接口
USB 接口部分采用FPGA 外挂CY7C68013 接口芯片的方式实现,该芯片集成了USB2.0 协议,可以直接完成USB2.0 协议的解析[4]。如图7,FPGA 作为核心对该接口芯片进行控制,接口芯片以异步方式运行于从模式,其与FPGA 的数据连线采用16 位。数据收:USB 总线控制器接收自USB 设备的数据,将其解析后并行输入至FPGA,FPGA 内部逻辑控制模块将数据经过内部格式的转换后,将数据传至在FPGA 局部总线的缓存器中,最后传输至计算机系统。数据发与收路径相反。在通信中FPGA 将PCIE 通道信号与UBS 信号通道,进行逻辑控制,进行数据及时序转换,通过局部总线来完成通信信道的链接。

FPGA

图7 USB 接口通信

2.3.4 CAN 总线接口
CAN 总线是现场总线的一种,因为其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用[5]。实现CAN 总线与计算机双向通信接口的核心是FPGA 及CAN 控制器。FPGA 对CAN 控制器控制程序包括初始化、读数据、写数据等部分。如图8 所示为CAN 总线接口框图。其中,数据接收模式:CAN 总线控制器接收自CAN 总线的数据,将其并行输入至FPGA,FPGA 内部逻辑控制模块将数据经过内部格式的转换后,将数据传至FPGA局部总线的缓存器中,最后传输至计算机系统。数据发送模式与收路径相反。CAN 控制器采用SJA1000,收发器采用PCA82C250。

FPGA

图8 CAN 总线接口通信

2.4 电源管理单元
电源管理单元为FPGA 内部与逻辑接口单元相独立的部分,其为了实现整机的微型化特点,将电源管理部分集成至FPGA 内部,通过逻辑控制不同电源芯片的使能来实现对计算机时序的控制,同时增加对关键器件的复位、初始化控制,实现整个机器的时序逻辑控制。其实现如图9 所示。

FPGA

图9 计算机电源管理单元

3 FPGA 的实现

本设计选用的是Xilinx 公司FPGA 的Spartan-6 系列产品。整个设计采用Verilog HDL 硬件描述语言,ISE Design Suite 14.7 环境平台上进行系统的开发、仿真等设计。通过Xilinx Platform Cable USB 将编译后的文件下载至硬件系统中,进行系统调试以及性能、稳定性测试等。

4 结语

特种计算机的发展逐渐朝着多用途、微型化方向发展,随着使用者及使用环境的不断变化和增多,会产生越来越多的各种定制化产品。FPGA 芯片的发展也逐渐朝着高集成度、高性能方向发展,在部分专用FPGA 中也已经集成了专用CPU 核,FPGA 的的高集成度、高性能及可编程性使其能在诸特种计算机的特定要求中发挥着较高的设计灵活性。在未来的计算机开发中,FPGA 的使用也将成为一种不可或缺的设计手段。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分