您的位置 首页 电源

种根据PCD656的高速PCI总线接口的规划与完成

现代雷达信号处理具有数据量大、实时性高等特点,而总线传输的效率决定了系统的性能,目前普遍使用标准化的PCI总线技术,以便升级更新。为加快产品开发和降低设计难度,一般有两种解决方法:采用通用的PCI芯片

现代雷达信号处理具有数据量大、实时性高级特色,而总线传输的功率决议了体系的功用,现在遍及运用规范化的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总线接口,较全面地论说了总线驱动开发和部分时序规划的进程。这种规划进步了总线传输速度,为高速数据收集体系的完结发明了条件。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/226006.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部