`
huozheleisi
  • 浏览: 1226744 次
文章分类
社区版块
存档分类
最新评论

PCI9054芯片局部总线设计

 
阅读更多

PIC9054是PLX公司推出的一种32位33MHz的PCI总线主控I/O加速器。它采用多种先进技术,使复杂的PCI接口应用设计变得相对简单。该芯片是目前主流的PCI接口芯片之一,其功能和性能如下:
•符合PCI V2.2规范,包含PCI电源管理特性;
•支持PCI双地址周期,地址空间高达4GB;
•提供两个独立的可编程DMA控制器,每个通道均支持块和分散/集中的DMA方式;
•PCI与Local Bus之间数据传输速率高达132MB/s;
•支持复用或非复用的32位局部总线操作,本地总线支持8位、16位和32位外围设备和存储设备,本地总线有三种工作模式:M模式、C模式和J模式,可通过模式选择引脚加以选择;
•PCI9054内部有可编程的FIFO,可以实现零等待突发传输及本地总线与PCI总线之间的异步操作,本地总线速率高达50MHz。
•支持可编程突发管理、可编程预取数技术和可编程中断产生;
•3.3V/5V兼容。



1 PCI9054的工作模式
PCI9054有M、C、J三种工作模式,可通过模式选择控制引脚MODE[1:0]进行控制。当MODE[1:0]=“11”时,PCI9054工作在M模式;当MODE[1:0]="00"时,PCI9054工作在C模式;当MODE[1:0]=“01”时,PCI9054工作在J模式;当MODE[1:0]="10"时,娄保留工作状态。
M模式可与Motorola MPC850或MPC860系列高性能微处理器进行无缝连接;C模式可与Intel i960系列高性能微处理器进行无缝连接;J模式地址和数据线复用,应用很复杂,不过在一些特殊的应用场合,利用J模式和TI公司6000系列DSP的HPI口进行接口,其控制逻辑将比其它模式简单得多。
事实上,C模式能够满足绝大多数的应用需求,而且C模式的本地总线操作时序最简单,逻辑控制相对容易,其开发难度相对较低,因此,如无特殊需求,建议采用C模式。
2 总线仲裁
在PCI9054与本地总线的接口设计中,一般需采用一片可编程逻辑器件CPLD/FPGA进行逻辑控制。在其控制逻辑中,总线仲裁逻辑是最关键、最核心的部分,直接影响计算机运行的稳定性。如果总线仲裁逻辑设计不合理,当计算机对PCI扩展板上的硬件资源进行访问时,计算机将会死机,因此PCI9054本地总线的所有控制逻辑必须服从于总线仲裁逻辑。
下面以C模式为例对PCI9054的总线仲裁逻辑进行探讨。在C模式下,PCI9054的143脚LHOLD和144脚LHOLDA是总线仲裁输入输出信号控制引脚,从公开发表的论文来看,有人将这两个引脚直接与设计电路相连进行总线仲裁逻辑设计。笔者在设计时也曾采用过这种方式,结果计算机运行很不稳定,经常莫名其妙地死机。仔细分析这种方式设计的电路会发现,该设计电路其实是利用器件的引脚传输延时配合总线仲裁电路的时序关系的。一般情况下,当环境温度、工作电压等外界因素变化时,大多数据逻辑器件的引脚延时会有相应的变化,因此用器件引脚延时设计出的总线仲裁逻辑电路运行不稳定应该是预料之中的事。
利用D触发器只在触发时钟有效边沿对信号敏感的特性进行设计,提高电路运行的稳定性,是可编程逻辑器件设计中的一种常用技巧。图1是PCI9054在C模式下对外设进行单一周期写操作的时序图,图2是利用可编程逻辑器件中的D触发器设计出的总线仲裁电路。



在图1中,ADS#、BLAST#和READY#信号的时序配合很重要,如果配合不好,计算机同样会死机。要提高电路稳定性,其设计思想与图2中的总线仲裁逻辑电路的设计思想相似。从多次实验情况来看,无论使用哪种工作模式,在该设计思想下设计出的本地总线控制逻辑电路运行非常稳定,没有死机的情况发生。
3 存储器和I/O操作
通常PCI扩展板应该有配置空间、存储器空间和I/O空间三类资源。空间配置是必须的,根据设计需要,后两种资源可以只包含其中之一。PCI9054有S0和S1两个配置空间,两个配置空间都可以配置成存储器空间和I/O空间,存储器空间和I/O空间的配置既有相同之处,也有很大的区别。其相同点为两者都以字节为单位进行空间配置。不同之处有以下几点:
(1)存储器空间支持0~4GB的空间配置和映射,而I/O空间只支持0~256字节的空间配置和映射;
(2)存储器空间支持8位、16位和32位总线位宽配置和操作,而I/O空间只支持32位总线位宽配置和操作;
(3)存储器空间支持单一周期和突发模式读写操作,而I/O空间只支持单一周期读写操作;
(4)在编写设备驱动程序时,存储器空间用程序指针进行访问,I/O空间则用专用的函数进行访问。
如果不清楚存储器空间和I/O空间的异同步,有可能配错相应的寄存器。当计算机重新启动时,很有可能会启动不起来。除此之外,值得注意的是:在配置存储器空间和I/O空间时,不要将两种硬件资源配置到相同的空间,导致空间重叠,使驱动程序产生误操作。
4 DMA和突发数据传输
在《PCI9054-DataBook》中,每种工作模式都将DMA和突发数据传输的时序图放在一起,这并不意味着DMA和突发数据传输是等同的,这是两个不同的概念。事实上,既可利用一周期的总线操作也可以利用DMA方式进行数据传输。
DMA和突发数据传输的作用是不同的。PCI9054中有两个DMA通道,可以独立工作,互不干扰。采用DMA方式传输数据,可以节省CPU资源;采用突发方式传输数据可以提高数据的传输率,充分发挥PCI总线数据传输率高的优点。因此,在高速大容量数据传输和处理系统中,将DMA和突发数据传输方式结合在一起是比较理想的,一方面可以充分发挥PCI总线的性能,另一方面可以将节省出的CPU资源对数据处理算法进行优化。图3是PCI9054在C模式突发数据传输方式的时序图。



从图1和图3可以看出,用状态机实现该控制逻辑是比较理想的。图4是PCI9054在C模式下采用单一周期和突发相结合的总线访问状态转换图。用该状态转换图设计出的逻辑电路既可满足单一周期总线访问的需要,又可以满足突发方式传输数据的需要,具有很大的实用价值。
使用DMA和突发方式相结合进行数据传输时,驱动程序要作为如下设置:
(1)调用驱动程序中相应的API函数,找到PC机的物理地址;
(2)在设备驱动程序中使能突发寄存器;
(3)在设备驱动程序中使能总线位宽寄存器;
(4)在设备驱动程序中使能相应的寄存器,指明DMA传输的方向是PCI→LOCAL还是LOCAL→PCI;
(5)在设备驱动程序中指明本次DMA传输需要传输的字节数。
完成上述设置后,即可在突发方式下进行DMA传输,否则DMA传输会失败。



5 PCI中断
PCI总线采用的是中断共享机制,所有的PCI扩展板在PCM插槽上共用一根信号线INTA#,通过电平触发方式响应PCI中断。每块PCI扩展板上的PCI9054提供的中断使能寄存器和中断状态寄存器能识别相应板卡上十几种类开的PCI中断。
当PCI插槽上只有一块PCI扩展板,而系统需要使用某种PCI中断时,则在主程序中将相应的中断使能寄存器置位,当相应的中断源中断信号到来时,与主板相连的信号线INTA#置一段时间低电平后,中断状态寄存器中的相应位被置位。当这两个寄存器的相应位都有效时,计算机响应相应的PCI中断,执行中断服务子程序。在《PCI9054-DataBool》中,INTA#信号为11个本地总线时钟周期,该时序图给不少设计人员带来了很多困惑。根据笔者的应用经验,INTA#信号在7μs左右是比较理想的,这与在Windows下PCI总线每秒钟可以响应十几万次中断的相关资料是相符的。
当PCI插槽上有多块PCI扩展板需要用到中断功能时,其工作过程与一块PCI扩展板差不多。唯一不同的是,首先驱动程序要利用一系列设备寄存器对扩展板进行设备识别,然后利用中断使能寄存器和中断状态寄存器对中断类型进行识别,最后响应相应的中断服务子程序。
在网上经常看到一些应用PCI9054的设计人员被以上讨论的问题所困扰,笔者在近两年从事PCI9054芯片应用设计中,也曾被这些问题困扰过。本文从这些方面对PCI9054芯片的应用进行了深入的探讨和总结,提出的所有技术解决方案都经过实验验证是可行的,这些内容在以往公开发表的论文中一般比较可见。本文探讨的内容对从事PCI9054芯片应用设计的人员应该会有一定的参考价值。

http://www.haitai.com.cn/forum/forum/viewthread?thread=8922

分享到:
评论

相关推荐

    PCI9054性能分析及外部FIFO的扩充

     关键词:PC总线PCI接口芯片9054FIFOPCI总线是Intel公司推出的一种高性能局部总线,其数据总线为32位,且可扩展为64位,最大数据传输速率为132~264MB/s,是目前使用非常普遍的一种总线。因PCI协议比较复杂,较难...

    pci总线结构中文规范

    PCI总线结构的规范 1、什么是PCI局部总线 2、为什么要使用PCI局部总线 3、PCI局部总线的应用范围 4、主要的PCI接口芯片 …… ……

    PCI9052芯片手册

    将PCI总线转换成简单的局部总线,本资料具体的描述了PCI9052的特点。

    PCI总线数据采集系统的硬件研究

    随着科学技术的飞速发展,数据采集已经广泛地应用于我们的生产生活中。...PCI9052的局部总线设置为8位局部总线,采用地址数据非复用模式,实现与TMS320VC5402的接口。并采用TLC5510芯片实现高速并行AD转换。

    嵌入式系统/ARM技术中的基于PCI总线的数据转换模块的设计与应用

    外围部件互连总线PCI(Peripheral Component Interconnect)总线,是一种先进的高性能32/64位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供了一座沟通的桥梁...

    嵌入式系统/ARM技术中的PCI总线接口芯片9050及其应用

    关键词:PCI总线 局部总线 PCI9050 1. 引言 PCI总线是目前应用最广泛、最流行的一种高速同步总线,具有32bit总线宽度,总线时钟频率为0~33MHZ,最大传输速率可以达到132Mbyte/s,远远大于ISA总线5Mbyte/s的速度。...

    嵌入式系统/ARM技术中的利用PCI局部总线实现BIade Server的数据交换

    摘要:通过对刀片服务器基本概念、主要组成以及内部架构的分析和研究,针对刀片与主板之间的高速通信需求,采用PCI总线作为系统的数据通信协议,给出了PCI局部总线的详细分析和设计流程,以及系统所采用的"PCI+FPGA+...

    用双端口RAM实现与PCI总线接口数据通讯

    提出了一种使用CPLD解决双端口RAM地址译码和PCI接口芯片局部总线仲裁的的硬件设计方案,并给出了PCI总线接口芯片寄存器配置实例,介绍了软件包WinDriver开发设备驱动程序的具体过程。随着计算机技术的不断发展,为...

    基于DSP的PCI数据采集系统的设计方案.pdf

    文中提出基于PCI 局部总线DSP 通用数据采集系统设计方案, 该方案采用TMS320VC5416 作为外围核心处理单元,PCI2040 作为PCI 桥芯片, TLV1572 作为数据转换器通过软件开发实现数据采集,具有高速度,低成本的优点。...

    基于CY7CO9449的高速PCI数据采集卡设计

    FPGA的逻辑设计着重讨论了对CY7C09449局部总线的同步传输控制逻辑的设计,这种逻辑支持局部总线的突发传输,可获得高达200Mb/s的局部总线数据传输速度。采集卡在WindowsXP下的驱动程序设计重点讨论了DMA数据传输...

    通信与网络中的用双端口RAM实现与PCI总线接口的数据通讯

     提出了一种使用CPLD解决双端口RAM地址译码和PCI接口芯片局部总线仲裁的的硬件设计方案,并给出了PCI总线接口芯片寄存器配置实例,介绍了软件包WinDriver开发设备驱动程序的具体过程。  随着计算机技术的不断发展...

    VICORDC/DC模块及其应用

     关键词:PCI 总线 FIFO一、引言 PCI总线是Intel公司推出的一种高性能局部总线,其数据总线为32位,且可扩展为64位,最大数据传输速率为132~264MB/S,是目前使用非常普遍的一种总线。因PCI协议比较复杂,较难...

    PCB技术中的PCI总线接口芯片及其应用

     PCI(PeripheralCompornentInterconnect,即外围部件互连)总线是一种先进的高性能32/64位地址数据复用局部总线,该总线是以INTEL为首的多家集团设计的,PCI总线可以同时支持多组外围设备,且处理器和时钟频率无关...

    PCI接口芯片s5935及其应用

    PCI局部总线由于具有高速率以及支持即插即用等特点在微机系统中得到广泛应用。利用PCI接口芯片可以方便地设计PCI规范板卡。s5935是AMCC公司s59xx系列PCI接口芯片中的一种。该芯片功能强大...

    基于PCI 总线数据采集系统的设计 (2008年)

    提出基于PCI 局部总线数据采集系统设计方案,系统采用PCI9054 作为PCI 桥芯片,TLV1572作为数据转换器,FLEX10K3E作为系统的逻辑控制和数据缓冲芯片.论述PCI 总线数据采集系统接口电路的硬件设计方法,介绍开发PCI 设备...

    PCI总线接口芯片及其应用

     PCI(PeripheralCompornentInterconnect,即外围部件互连)总线是一种先进的高性能32/64位地址数据复用局部总线,该总线是以INTEL为首的多家集团设计的,PCI总线可以同时支持多组外围设备,且处理器和时钟频率无关...

    嵌入式系统/ARM技术中的基于PCI总线的GP-IB接口电路设计

    主要介绍作为从设备如何根据PCI总线协议设计PCI总线接口电路,从而实现基于PCI总线的GP-IB接口电路设计,重点阐述PCI总线接口状态机的设计。  前言  基于PCI总线的GP-IB接口电路框图如图1... PCI局部总线很复杂,

    双口RAM在PCI总线与AVR接口设计中的应用

    利用有限状态机方法将PCI接口芯片局部端逻辑转换为双口RAM读写控制信号和地址数据信号,并通过仿真工具Modelsim Se对接口电路进行了验证,得出的仿真波形符合要求;利用乒乓操作方法实现PCI接口芯片和AVR单片机交替...

    PCI接口芯片9052及其应用

    PCI(Peripheral Component Interconnect,即外围部件互连)总线是一种能为主CPU及外设提供高性能数据总线的局部总线。1992年以INTEL为首的多家集团开始设计PCI总线,其V2.0规范于1993年4月正式发布。PCI总线具有严格...

    嵌入式系统/ARM技术中的PCI总线接口芯片PCI 9052及其应用

    PCI总线即外围部件互连总线,是一种先进的高性能32/64位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供一座沟通的桥梁,提高数据吞吐量(32位时最大可达132MB/s...

Global site tag (gtag.js) - Google Analytics