基于FPGA的总线桥接在特种计算机中的应用
摘 要:
摘 要:本文针对特种计算机的多接口、微型化特点,以FPGA为核心将总线桥接技术应用于特种计算机设计中,不仅完成计算机电源控制功能,而且以一颗主芯片实现多接口的传输应用,节约PCB布局面积,节省整机空间。该应用包含以太网、UART、USB以及CAN总线等多种接口,设计灵活、稳定性高。
关键词:
关键词:特种计算机 FPGA 总线桥接 电源控制
近年来,特种计算机的特点逐渐朝着抗恶劣环境、高性能、高可靠、多接口、微型化趋势发展。其中,计算机多接口特点的实现通常采用多个专用芯片来完成板载设计以及使用多个专用扩展卡来完成扩展设计,该种设计不仅与微型化相矛盾而且会产生整机内部空间拥挤、制作工序复杂、稳定性低等缺点。
本文针对特种计算机的多接口、微型化特点提出基于FPGA的总线桥接在特种计算机中的应用,即使用FPGA设计总线桥接技术来替代传统的接口转接芯片或多扩展卡来完成多接口设计,同时将计算机上电管理模块集成在FPGA内部实现,该应用对于板载接口可以节约PCB布局面积,对于扩展设计则能节省设备空间布局,能够在保证稳定性的基础上实现计算机的多接口、微型化特点。
1 FPGA概述
FPGA,即现场可编程门阵列(Field Programmable GateArrays),是一种可编程使用的数字逻辑器件,用户以根据自身需求改变其配置信息来实现相应的设计功能,来满足系统设计需求。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为整个系统结构框图。
图1 FPGA总线桥接应用示意图
2.1 逻辑桥接单元(见图2)
在该部分主要以逻辑控制为核心,在数据通信中,FPGA内部设计局部总线实现PCI-E到各接口的逻辑桥接,每一个接口模块都挂接在该局部总线上,逻辑桥接模块通过地址线、数据线、控制信号线(包括读写信号线和片选信号线)与各接口模块通信,各个接口模块的内部分为顶层逻辑控制模块和接口处理模块。顶层控制模块负责完成相应接口协议与局部总线协议的转化,接口处理模块负责完成FPGA与外部接口的数据传输。通过协议转换以及局部总线桥接完成PCIE与各接口模块的信号通信。
图2 逻辑桥接单元
2.2 PCIE接口单元
PCIE接口单元为FPGA与计算机系统通信的通道,也是接口数据传输的通道,该单元为由FPGA内部PCIE硬核层和PCIE软核(IP核)构成,通过例化硬核和编写应用层逻辑,即可直接使用FPGA厂家提供的IP核实现PCIE端点(Endpoint)设备功能,利用系统PCIE 总线将设备和计算机系统进行链式 DMA 高速数据传输[2]。该过程主要完成PCIE协议的解析,在将解析后的信号数据通过逻辑控制模块转换协议后存放于局部总线缓冲器,待进一步与对应模块通信完成PCIE—外部接口的逻辑桥接。外部接口至PCIE的数据通信与之相反,逻辑控制模块从局部总线读取数据并转换协议后通过PCIE送至系统。该部分逻辑图如图3所示。
图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)。
图4 传统以太网接口图5 DM9000应用接口
2.3.2 UART通信接口
该通信接口模块包括数据发送、数据接收、波特率发生器、顶层逻辑控制部分[3],顶层逻辑控制部分负责与局部总线通信以完成数据发送和接受,进而实现上层通信;在下层通信中,通过FPGA内部逻辑控制功能的改写以及外部链接不同的TTL电平转换芯片即可完成如RS232和RS485的对外通信。图6为UART接口框图。
图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信号通道,进行逻辑控制,进行数据及时序转换,通过局部总线来完成通信信道的链接。
图7 USB接口通信
2.3.4 CAN总线接口
CAN 总线是现场总线的一种,因为其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用[5]。实现CAN总线与计算机双向通信接口的核心是FPGA及CAN控制器。FPGA对CAN控制器控制程序包括初始化、读数据、写数据等部分。如图8所示为CAN总线接口框图。其中,数据接收模式:CAN总线控制器接收自CAN总线的数据,将其并行输入至FPGA,FPGA内部逻辑控制模块将数据经过内部格式的转换后,将数据传至FPGA局部总线的缓存器中,最后传输至计算机系统。数据发送模式与收路径相反。CAN控制器采用SJA1000,收发器采用PCA82C250。
图8 CAN总线接口通信
2.4 电源管理单元
电源管理单元为FPGA内部与逻辑接口单元相独立的部分,其为了实现整机的微型化特点,,将电源管理部分集成至FPGA内部,通过逻辑控制不同电源芯片的使能来实现对计算机时序的控制,同时增加对关键器件的复位、初始化控制,实现整个机器的时序逻辑控制。其实现如图9所示。
图9 计算机电源管理单元
3 FPGA的实现
本文编号:14549
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/14549.html