PCI总线接口芯片9050及其应用
4. PCI9050使用时应该注意的问题
9050内部的寄存器是通过外部串行EEPROM上电加载的。9050会自动根据该EEPROM的状态来决定其内部寄存器的值。如果EEPROM内部没有烧写为有效值,应保证其开始48位全为“1”,否则,系统上电时会出错。
9050有5个本地空间,用户可根据实际的需要来进行配置,并不是要用到所有的。当将本地空间配置成I/O时,对该空间的读写只能单次进行。如果配置成存储器模式,用户会有多种接入模式,大大提高了速度。
突发模式是为了提高本地总线操作速度而设计的。在该模式期间,9050只提供一次传输开始和终止信号。开始信号有效时,地址将以本地时钟的频率递增,可以利用BTERM#引脚是否有效来中止突发操作。
还有一点需要说明的是,Pentium系列的CPU,不支持突发读操作,只可能产生单次读操作。用户如果需要在PCI总线上实现突发操作,应该选用支持DMA传输的芯片,比如PCI9054。但是PCI9050会把PCI总线上的多次单次读操作转化为突发操作。
5. 基于PCI9050的PCI接口设计
下面给出的是一个利用PCI9050做接口的PCI插卡。在用户电路上,采用MT90820做交换,实现数字电路的转接和复接。具体电路如下图所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(1)硬件设计:
接口芯片PCI9050主要包括PCI总线信号接口和局部总线接口。硬件电路分为三个部分。第一部分是9050和PCI插槽间的连接信号线。这些信号包括地址数据复用信号AD[31:0],总线命令信号C/BE[3:0]#和PCI协议控制信号PAR、FRAME#、IRDY#、TRDY#、STOP#、IDSEL、DEVSEL#、PERR#、SERR#。第二部分是与串行EEPROM的连线。这里有四根信号线:EESK、EEDO、EEDI、EECS,串行EEPROM的数据可以提前烧好,也可以在线烧写。第三部分就是9050与应用电路的连接。在这个例子里,它和MT90820相连,包括LA地址总线,LAD数据总线,LBE#字节使能信号,LW/R读写信号等。
(2)软件设计:
程序主要分为两个部分。一部分为PCI9050各个配置寄存器赋值并初始化,还有一部分为主程序,任务就是把PCM链路上的信号经过MT90820交换矩阵后,再通过PCI9050送到CPU。
6. 结束语
由于PCI总线数据吞吐量大,传输速率高,所以现在PCI总线已经慢慢取代了ISA总线成为主流。当然,PCI总线协议要复杂的多,接口设计难度也就增大了。目前,设计PCI接口有两种方法。一种是使用ALTERA,XILINX等公司的FPGA系列并使用他们的元件库,这种方式需要用户直接面对复杂的PCI协议,开发周期长,难度大;还有一种就是利用我们上面介绍的PCI接口芯片,设计起来就要简单的多,因此得到了广泛的应用。