低成本PCI仲裁器逻辑扩展设计

时间:2008-08-16

  本文论述了飞思卡尔公司32位处理器MPC5200B的PCI接口设计要点,阐述了PCI仲裁器逻辑扩展设计及方法。经过CPLD仿真及实际应用证明,该电路设计正确,针对MPC5200B有效地扩展了PCI仲裁器逻辑,增加了PCI总线上主设备个数。

  PCI总线是现今为流行的控制总线之一,它广泛地应用在计算机中,目前嵌入式设备中的很多解决方案都包含了PCI总线。在多主设备的PCI系统应用中,必须为各个主设备提供仲裁授权信号。为了使PCI设备能够更方便地应用在嵌入式系统中,本文介绍一种基于飞思卡尔MPC5200B的低成本PCI总线仲裁器逻辑扩展的设计方法,此方法可以在已有的PCI仲裁器的基础上,实现扩展PCI总线上主设备的个数,从而满足多PCI设备的设计要求,提高系统的扩展性要求,在体积、功能、成本等诸多方面都有很好的应用前景。

  MPC5200B 
      
  飞思卡尔公司的MPC5200B是基于PowerPC架构下的一款性能卓越的微处理器。它具有760MIPS、带浮点运算单元(FPU)、低功耗等特点。该处理器采用高性能的e300内核,集成了高性能存储控制器、中断控制器、DMA控制器、PCI控制器、以太网控制器以及USB、CAN 2.0A/B、I2C等丰富的接口。其结构框图如图1所示。

   MPC5200B能够快速提供数据吞吐和处理。集成的 BestComm DMA控制器可降低主e300传送I/O密集数据的负荷。集成的双倍数据速率(DDR)内存控制器的有效内存总线速度达到266MHz,能够实现高速数据访问。 BestComm DMA 控制器和DDR内存支持的高速PCI 接口能够实现高速数据输入和输出。

  MPC5200B内部集成了一个PCI总线仲裁器,但其仲裁只支持两个外部PCI主设备(包含MPC5200B的PCI模块)。为了增加PCI主设备,我们必须对PCI仲裁器进行扩展。
  
  PCI总线仲裁

  PCI总线是一种共享式的总线,可以连接多个主设备,但由于数据传输的独享性,每一时刻只能由一个主设备占用总线。因此,为了有效地利用PCI总线带宽,总线上必须设置一个仲裁器。

  每个具有主设备功能的PCI设备必须提供两个与仲裁有关的信号:REQ#(请求总线信号)和GNT#(总线授权信号)。由需要发起PCI传输事务的设备发出REQ#信号,由PCI总线仲裁器裁决后给出GNT#信号。接到GNT#信号的PCI设备将在下总线空闲后开始操作。

   PCI总线仲裁的裁决过程可以在PCI传输期间完成,并不占用PCI总线的带宽,这被称为隐式仲裁:即需要发起PCI操作的设备可以随时发出请求REO#,PCI仲裁器立即批准该请求并给出GNT#。但实际的传输过程一定要等到当前传输完毕、线空闲后才可以开始。 
   
  具体设计及仿真

  以MPC5200B外扩两个主PCI设备为例,依据PCI仲裁原理及MPC5200B PCI控制器接口,逻辑扩展方式如图2所示。其中逻辑单元(Logic Unit)就是本文详细阐述的部分。

  MPC5200B含有一个片上PCI总线仲裁器,现在需要对外扩展其仲裁功能,以满足多主PCI设备的需求。

  对于外扩PCI主设备而言,有两对REQ#和GNT#信号需要和MPC5200B片上PCI仲裁器进行通讯;对于MPC5200B而言,逻辑单元就是它一对一的主PCI设备,通讯信号为相关的PCI总线控制信号。逻辑单元电路如图3所示。

  PCI总线复位信号对逻辑电路复位后,如果仅有一个总线请求,则相对应的总线授权信号MASTER_GNT通过由此总线请求控制的MUX进行输出,实现总线“请求-授权”过程。

  如果两PCI外设同时产生总线请求信号REQ0#和REQ1#,则DR(Dual Require)信号配合PCI_PRAME和PCI_CLK,锁住NG(Next Grant)信号的更新,直到当前帧传输完毕。

  可以看出,仿真环境模拟了一个设备申请和两个设备同时申请的情况,并分别给出了总线授权信号(GNT),验证了仲裁器扩展逻辑的正确性。

  结语

  PCI总线协议抽象性很强,且时序逻辑复杂。本文采用简单的逻辑设计实现了对于PCI仲裁器扩展,已经在CPLD中实现,成功应用于MPC5200B的PCI仲裁器逻辑扩展。

  



  
上一篇:片上SDRAM控制器的设计与集成
下一篇:无人值班变电站遥视系统的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料