由图1可知,pci9054提供了pci、eeprom、local总线三个接口。pci9054作为一种桥接芯片在pci总线和local总线之间提供 传递消息,既可以作为两个总线的主控设备去控制总线,也可以作为两个总线的目标设备去响应总线。

pci9054有6个零等待可编程fifo存储器(fifos)。它们分别完成pci发起读、写操作,pci目标读、写操作和dma读、写操作。由于 fifo存储器的存在,数据可以大量突发传输而不丢失。这样不仅满足实时性要求,同时可以根据用户的需要采用与pci时钟异步的本地频率。串形 eeprom(serial eeprom)是用来在开机时初始化配置内部寄存器的。内部寄存器(internal regi- sters)标识地址映射关系以及pci端和本地端工作状态。fifo和内部寄存器在计算机主机或者本地端都是统一编址的,用户可以从两端通过编程访问它 们的每一个字节。

3.2 数据传输模式

pci9054的数据传输模式灵活多样,包括直接主模式(pci master)、直接从模式(pci target)、dma模式。

数据传输模式的选择主要是要根据硬件设计者对硬件设计的需求而定的。当硬件设计者选择由pci发起控制的时候,则pci9054应该为pci的工作目标, 这时应选择pci 9054的工作方式为pci从模式。当硬件设计者选择本地端发起控制的时候,pci9054成为主控设备,而pci则成为pci9054的工作目标,这种 情况下应选择pci9054的工作方式为pci主模式。在数据进行dma传输时,pci9054对pci端和local端都是主控设备,本身具有dma控 制器完全可以脱离pc机进行dma控制,此时pci9054工作在dma传输模式。

3.3 本地总线工作方式

pci9054本地总线可工作在m,c,j三种模式。

m模式是专为motorola公司的mcu设计的工作模式。c模式下9054芯片通过片内逻辑控制将pci的地址线和数据线分开,很方便地为本地工作时序 提供各种工作方式,一般较广泛应用于系统设计中。j模式是一种没有local master的工作模式,它的好处是地址数据线没有分开,严格仿效pci总线的时序。pci9054的工作方式可利用模式选择引脚加以选择,对于 176pin-pqfp封装的9054芯片模式选择引脚为pin156(mode1)和pin 157(modeo)。只要将这两个脚接地便可选择了c模式;两个脚都接 则选择了m模式;pin156接地,pin157接则选择了j模式。

4 利用pci9054进行pci接口电路的设计

4.1 接口电路的硬件结构图如图2所示:

pci9054为pci总线接口的开发提供了一种简洁的方法

图2 硬件结构图

4.2 pci9054与pci bus接口

硬件接口电路的第一部分是9054与pci插槽间的连接信号线。这些信号包括地址数据复用信号ad[31:0],总线命令信号 c/be[3:0]和pci 协议控制信号par,frame#,irdy#,trdy#,stop#,idsel,devsel#等。电路连接中将彼此对应的信号线连接在一起即可。在pci总线信号中,除了rst#,inta#~intd#之外,其它所有信号都在时钟上升沿被采样。每个信号都有相对于时钟前沿的建立和保持时间。在此期间,不允许有信号跳动。该时间一过,信号的变化就无关紧要了。这种建立和保持时间对于不同的信号其情形是不同的。对于ad[31:0]、par和 idsel来说,只有在一定的时钟边沿上才有上述时间的要求。对于 lock#,irdy#,trdy#,frame#,devsel#,stop#,req#, gnt#,serr#和perr#这些信号在每个时钟前沿都有建立和保持时间。对于c/be[3:0]#在传输总线命令时,要在frame#第一次建立时 对应的时钟边沿上遵守建立和保持时间的关系。若传输字节使能信号时,要在完成一个地址期或数据期之后的每一个时钟边沿保证相应的建立和保持时间。