种基于PCD656的高速PCI总线接口的设计与实现

发布者:Qingfang最新更新时间:2014-08-22 来源: cecb2b关键字:PCD656  PCI总线接口  FPGA 手机看文章 扫描二维码
随时随地手机看文章

     现代雷达信号处理具有数据量大、实时性高等特点,而总线传输的效率决定了系统的性能,目前普遍使用标准化的PCI总线技术,以便升级更新。为加快产品开发和降低设计难度,一般有两种解决方法:采用通用的PCI芯片或IP核。目前常用的PCI芯片如PCD054、PCD052等虽然性能稳定、使用方便,但它们只适用33 MHz、32位总线接口,受时序设计和应用程序效率等影响,总线传输速度约稳定在70 MB·s-1;使用IP核虽可以兼容66 Hz、64位总线且节省板卡面积,但其价格昂贵不利于高校及中小企业推广使用。而PCI9656适用于66 MHz、64位的PCI总线,因此逐渐成为总线开发的主流元器件,使得总线传输速度达到了150 MB·s-1甚至更高。

  本文利用高效PCI芯片和FPGA设计了一款64位总线传输接口电路,传输速度达到212 MB·s-1,较以往总线传输速度有了较大地提高,满足了目前高速数据传输系统的要求。

  1 PCI总线接口架构

  本系统主要由PCI9656和FPGA构成,系统框图如图1所示。当主机发起读写操作时PCI9656需要响应其操作,并将相应命令发送到FPGA进行处理,FPGA进行处理后将数据和命令通过PCI9656回传给主机。PCI9656与主机之间的通信需要相应的设备驱动程序支持,而FPGA响应主机命令则需要配置相应的局部时序。因此,本设计主要的工作为设备驱动程序的开发和FPGA局部时序的设计。

  2 PCI9656性能概述

  PCI9656是PLX公司推出的一款兼容32位和64位PCI总线标准的桥接芯片,采用PLX数据流水线结构(Data Pipe Architecture),内部配有DMA控制器、可编程主模式传输及从模式传输;内部有PCI优先判决器,可以支持外部7个外部主控器;可由本地中断信号LINTi和LINTo生成一个PCI中断信号INTA;本地时钟独立于PCI时钟工作;支持位宽为8位、16位和32位的66,MHz本地总线。PCI9656寄存器与PCI9054寄存器兼容,可容易地进行基于32位PCI总线与基于64位PCI总线的软件移植。

  PCI 9656具有6条独立的数据通道,分别支持Direct Master、Direct Slave以及DMA功能模式下的数据传输。

  (1)Direct Master模式。用于局部总线到PCI(CompactPCI)的数据传输,主控设备在局部总线端。16 QWord(128 Byte)和32 QWords(256Byte)的FIFO各应用于数据的读、写通道。

  (2)Direct Slave模式。用于PCI(CompactPCI)到局部总线的数据传输,主控设备在PCI端。16QWords(128 Byte)和32 QWords(256 Byte)的FIFO各应用于数据的读、写通道。

  (3)DMA模式。DMA传输时PCI9656同时是PCI和局部总线的主控设备,PCI 9656有两条DMA通道(Channel 0、Channel 1),每条通道都由一DMA控制器和32 QWords(256 Byte)双向FIFO组成。其DMA方式有常规的块模式(Block Mode)、集散模式(Scatter/Gather Mode)和命令模式(Demand Mode)。

  在局部总线端,根据不同的处理器PCI9656有3种工作模式。

  (1)M模式。支持Motorola 32 bit的处理器,提供了可与MPC850/860 PowerQUICC直接相连的接口。

  (2)C模式。适合大多数处理器的通用模式,比如常用的FPGA,在本设计中采用此模式。

  (3)J模式。与C模式类似,但其地址线与数据线复用。

  3 总线设备驱动开发

  在Windows环境下开发PCI设备驱动程序主要有两种模型,即WinDriver和WDM。本设计使用了WDM驱动模型。开发PCI设备驱动程序WDM需要处理:硬件访问、中断处理和DMA传输3方面问题。

  3.1 硬件访问

  X86处理器有两种独立的映射空间:I/O空间和内存空间,I/O空间只能通过I/O指令来访问,KIoRange类封装了对I/O空间的操作命令。对于设计的PCI设备,可以通过实例化KIoRange类来对I/O空间进行相应的操作。

  对于PCI设备可以使用KMemoryRange类对内存进行相应操作,具体操作与KIoRange类对I/O空间的操作相似。

  3.2 中断处理

  驱动程序使用KInterrupt类来实现对中断操作的处理,其中包括中断的初始化、将一个中断服务例程连接到一个中断和解除其连接等。

  中断服务例程不是KInterrupt类的成员函数,这是为了减少中断延迟时间。中断处理需要中断服务例程和延迟过程调用例程,在中断服务例程中,首先判断该中断是否是自己设备产生的,若不是,则返回False;若是,则请求一个延迟过程调用例程(DPC)。

 

  3.3 DMA传输

  PCI9656使用DMA方式进行数据传输。实现DMA传输需要3个类:KDmaAdapter,KDmaTransfer和KCommonDmaBuffer。其中,KDmaAdapter类用于建立一个DMA适配器,它说明了DMA通道的特性,如总线宽度,单次传输最大个数等,需要注意的是本设备使用的是64位总线宽度,因此需要特别指出;KDmaTransfer类用于DMA传输控制,如传输开始、传输字节数等;KCommonDmaBuffer类用于申请系统提供的公共缓冲区。具体DMA传输设置如下

  OnDmaReady例程中获取传输的物理内存的地址和字节数,然后设置相应的DMA寄存器值开始DMA传输。DMA传输结束后,应使m_CmxentTm-nsfer无效并删除。具体流程如图2所示。

  4 局部总线端设计

  本设计中,局部总线端采用了C模式。C模式下可配置3种数据传输方式:单周期方式(Single Cycle Mode)、4字方式(Brust-4 Mode)和连续突发传输方式(Continuous Mode),在本设计中采用了连续突发方式,可以有效地提高输出效率。

  PCI9656在局部总线为为主设备,始终占用局部总线,局部总线端的FPGA始终响应PCI9656的操作。方案中使用PCI9656的DMA传输模式,在本地端不需要进行地址译码,因此可以对PCI9656的控制信号进行简化处理,PCI9656的局部端主要控制信号如下

  ADS#:一次总线访问开始;

  Blast#:总线访问结束;

  LW/R#:读写控制信号;

  Ready#:从设备准备好信号,有效时表示总线访问进行中;

  LHOLD:PCI9656占用本地总线申请信号;

  LHOLDA:占用本地总线应答信号;

  Wait#:主设备传输暂停信号;

  EOT#:数据传输异常中止信号,用于FIFO溢出或空时中断数据传输;

  Lint#:用于引起CompaetPCI总线端的中断信号;

  LRST#:本地总线复位信号;

  CCS#:配置寄存器选择信号。

  在DMA传输过程中主要关心的信号可简化为:ADS#、Blast#、LW/R#、Ready#、LHOLD、LHOLDA,如图3所示。

  图3中,lclk为本地总线时钟,当PCI9656要发起一次DMA操作时,先发送lhold信号申请本地总线,若本地总线空闲则FPGA发出lholda信号响应PCI9656,然后PCI有效ads_n信号以示总线传输开始,FPGA使ready_n有效以示总线传输正在进行中,此时本地数据通过局部数据线传送到PCI总线,或着数据由PCI总线传送到局部逻辑。一次传输结束时PCI使blast_n信号有效并使lhold信号无效,然后FPGA使lholda信号和ready_n信号无效,一次DMA传输完成。传输中若是DMA读操作则lwr信号拉低,若为写操作则拉高。

  本地总线位宽为32位,因此本地总线理论速度为264MB·s-1,由于应用程序的效率问题和传输中一些无效状态的存在,目前PCI总线平均速率达到212 MB·s-1,可以满足目前高速数据采集、传输对总线传输速度的要求。

  PCI9656本地总线时序设计中需要注意blast_n信号有效说明为突发传输最后一个时钟周期,此时ready_n信号仍然为有效,否则会造成总线等待;在正常读写访问中CCS#信号应置高,否则总线访问将指向配置空间而非内存或I/O空间。

  5 结束语

  利用PCI9656和FPGA实现了一种高速PCI总线接口,较全面地论述了总线驱动开发和局部时序设计的过程。这种设计提高了总线传输速度,为高速数据采集系统的实现创造了条件。

关键字:PCD656  PCI总线接口  FPGA 引用地址:种基于PCD656的高速PCI总线接口的设计与实现

上一篇:USB设备不被识别的常见原因
下一篇:USB3.0主控端系统设计应用

推荐阅读最新更新时间:2024-05-02 23:08

从MCU到FPGA:第2部分
最近,我在做一个项目,该项目要求我这个MCU迷,转向FPGA开发。在这个系列博客中,我将介绍如何将现有的MCU知识和经验运用到FPGA的开发中。在第一部分中,我介绍了FPGA的优缺点,以及Terasic DE10 nano开发套件,并且探讨了影响FPGA设计的关键因素。现在,在第2部分,我将分析示例代码并发现更多的有用的资源。 MCU和FPGA之间的区别类似于摩托车和汽车之间的差异:尽管两者都可以让你从A点到达B点,但是机制却有着根本的不同。我认为这个类比在描述MCU和FPGA的引脚模式、引脚类型以及串并行处理时非常贴切,在这些方面,两者是完全不同的。 最初,我从Terasic的设置和指导实践开始,但是一直处于困境中。每次
[嵌入式]
利用FPGA实现UART的设计
引 言 随着计算机技术的发展和广泛应用,尤其是在工业控制领域的应用越来越广泛,计算机通信显的尤为重要。串行通信虽然使设备之间的连线大为减少,但随之带来串/并转换和位计数等问题,这使串行通信技术比并行通信技术更为复杂。串/并转换可用软件实现,也可用硬件实现。用软件实现串行传送大多采用循环移位指令将一个字节由高位到低位(或低位到高位)一位一位依次传送,这种方法虽然简单但速度慢,而且大量占用CPU的时间,影响系统的性能。更为方便的实现方法是用硬件,目前微处理器串行接口常用的LSI 芯片是UART(通用异步收发器)、USART(通用同步异步收发器)和ACIA(异步通信接口适配器)等。不论是哪一种芯片,它们的一种基本功能是实现串/并转换。
[嵌入式]
基于FPGA流水线分布式算法的FIR滤波器的实现
摘要:提出了一种采用现场可编码门阵列器件(FPGA)并利用窗函数法实现线性FIR数字滤波器的设计方案,并以一个十六阶低通FIR数字滤波器电路的实现为例说明了利用Xilinx公司的Virtex-E系列芯片的设计过程。对于在FPGA中实现FIR滤波器的关键——乘加运算,给出了将乘加运算转化为查找表的分布式算法。设计的电路通过软件进行了验证并进行了硬件仿真,结果表明:电路工作正确可靠,能满足设计要求。 关键词:FIR滤波器 FPGA 窗函数 分布式算法 流水线 随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC器件得到了迅速普及和发展,器件集成度和速度都在高速长。FPGA既具有门阵列的高逻辑密度和高可靠性,
[应用]
基于DSP和FPGA的嵌入式同步控制器实现
摘 要:针对印染设备多单元同步控制中动态性和稳定性的问题,提出一种基于DSP和FPGA的嵌入式同步控制器设计方案。DSP作为运算控制的核心,负责控制算法的实现;FPGA作为数据采集模块的核心,负责数据采集的实现。该系统具有结构灵活,通用性强的特点,且大大减少了系统的外围接口器件,降低了成本。采用Bang-Bang控制和数字PID控制相结合的双模控制算法,满足了系统响应快速性和稳定性的要求,提高了可靠性,具有很高的实用价值。 关键词:嵌入式;同步控制;DSP;FPGA 在印染机械设备生产加工过程中,各个传动单元分别由独立的电机驱动。为了保证整机各单元同步协调工作,提高产品质量,需要设计相应的同步控制器。多单元同步传动是印
[嵌入式]
基于DSP和<font color='red'>FPGA</font>的嵌入式同步控制器实现
eFPGA和FPGA SoC有什么区别?
近年来,在终端应用转变,传统芯片面临材料和架构瓶颈等现状的影响下,市场对FPGA的关注达到了前所未有的高度。但传统单纯的FPGA似乎不能满足多样化的需求,从而延伸出eFPGA和FPGA SoC这两个方向。新的嵌入式FPGA和业界一直在努力整合的FPGA SoC,谁会是未来的选择? eFPGA:冉冉升起的新星 eFPGA即嵌入式FPGA(embedded FPGA),是近期兴起的新型电路IP。 随着摩尔定律越来越接近瓶颈,制造ASIC芯片的成本越来越高。因此,设计者会希望ASIC能实现一定的可配置性,同时又不影响性能。在希望能做成可配置的模块中,负责与其他芯片或者总线通信的接口单元又首当其冲。在芯片中,模块间的通信往往使
[嵌入式]
FPGA实现32阶FIR数字滤波器的硬件电路方案
 随着软件无线电的发展,对于滤波器的处理速度要求越来越高。传统的FIR滤波器一般采用通用DSP处理器,但是DSP处理器采用的是串行运算,而FPGA是现场可编程阵列,可以实现专用集成电路,另外还可以采用纯并行结构及考虑流水线结构,因此在处理速度上可以明显高于DSP处理器。本文采用并行分布式算法在FPGA上设计并实现了高速处理的32阶FIR低通滤波器,在此过程中利用Matlab的数值计算与分析功能来提高设计效率。   在数字信号处理中,数字滤波器的应用是极其广泛和重要的单元。与模拟滤波器相比,数字滤波器可以克服模拟滤波器所无法克服的电压漂移,温度漂移以及噪声等问题。数字滤波器根据冲击响应函数的特性,可以分为IIR滤波器和FIR滤波器
[嵌入式]
<font color='red'>FPGA</font>实现32阶FIR数字滤波器的硬件电路方案
基于ARM与FPGA的电力电源一体化监控装置
随着现代电力行业的集成化、信息化、智能化的发展趋势,电力系统要求站用交流电源、直流电源、通讯电源、UPS电源、逆变电源等不是再作为分散独立的系统,而是作为一个整体进行集中监控与管理,这就需要一种监控装置适用于电力电源系统一体化的需求。 1 系统总体架构 作为交直流一体化电源系统的集中监控管理单元,该装置不仅可以同时监控站内各设备,还可通过IEC61850规约与变电站后台设备连接,实现对一体化电源系统的集中、统一、远程监控维护管理。装置在系统中的连接示意图如下图1所示。因此,该一体化监控装置需要有多路485通信、CAN通信和以太网通信。为了满足该装置现场运行情况复杂性的需求,本文提出了一种基于ARM和FPGA的设计架构,该方案可根据
[单片机]
基于ARM与<font color='red'>FPGA</font>的电力电源一体化监控装置
华为美产FPGA芯片告急,“备胎”能否接过大任?
华盛顿邮报引述总部位于美国加州的研究公司Mobile Experts首席分析师马登(Joe Madden)的话指出,华为的美国芯片等零部件库存将用尽。 报道指出,华为即将耗尽的正是用于包括5G基站在内的通信设备的FPGA芯片,来自美国半导体大厂赛灵思(Xilinx),可编程逻辑器件(FPGA)独步全球。 自孟晚舟及美国实体清单事件之后,华为一方面开启了备胎计划,搬出多年积累的自研芯片,另一方面华为早就预想到了美国制裁,早早的就在大量囤积可能受到制裁影响的零部件,以及转单不受美国影响的零部件供应商,来保障零部件供应。外界预估,华为的库存可保证一年的缓冲期。 此外,由于美国的制裁,华为转向扶持国内供应商,目前有多家国
[网络通信]
华为美产<font color='red'>FPGA</font>芯片告急,“备胎”能否接过大任?
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved