它提供了三种物理总线接口:PCI总线接口,LOCAL总线接口,及串行EPROM接口。
LOCAL总线的数据宽度为32位,时钟频率可达到50MHZ, 并且支持数据预取功能。 9054的LOCAL总线与PCI总线之间数据传输有三种方式:主模式(Direct Master),从模式(Direct Slave),DMA方式。其内部具有两个DMA数据通道,双向数据通路上各有6个FIFO进行数据缓冲,可同时进行高速的数据接收和发送。8个32位Maibox寄存器可为双向数据通路提供消息传送。9054还有2个32位Doorbell寄存器,用来在PCI和Local总线上产生中断。
用户通过设置其内部寄存器,即可完成各种控制功能。9054内部寄存器的配置信息可以写在一片串行EPROM中,在加电时9054自动加载串行EPROM配置信息,并由PCIBIOS通过PCI总线对配置寄存器读写。9054可方便地与各种存储设备相连接,在本设计中,它与FIFO及EPROM的设计接口如图4所示。在本系统中,数据传输是单方向的,因此只设计PCI9504从FIFO中读数据的情况,只用到与读FIFO有关的信号,如REN,RCLK等。其中的CPLD逻辑关系如下:
REN平时为高电平(无效电平),当ADS#为低(有效),BLAST为高(无效),LW/R为低(有效)时,表明9054开始了一个有效的读数据周期,CPLD产生一个低电平信号REN(有效电平)给FIFO,同时作为Ready信号返回给9054,通知9054设备已准备就绪。此信号持续到ADS#为高(无效)且BLAST为低(有效)时,表明9054已经开始最后一个周期,此时REN信号再次变高电平(无效)。
OE信号与REN信号可同样设置,在读信号允许的同时使能FIFO芯片。
本设计中采用了PCI9054的DMA工作方式,在此方式下,9054作为PCI总线的主设备,同时也是Local总线的控制者,通过设置其DMA控制器内部的寄存器即可实现两总线之间的数据传送。表1显示了与DMA传输相关的寄存器在PCI总线上的地址分配:
PCI9054的DMA传输过程可由以下几个步骤实现:
1.设置方式寄存器:设置DMA通道的传输方式,寄存器DMAMODE0或者DMAMODE1的位9:0-表示块传输,1-表示散/聚传输;
2.设置PCI地址寄存器:设置PCI总线侧的地址空间。
3.设置LOCAL地址寄存器:设置LOCAL总线侧的地址空间。
4.设置传输计数寄存器:以字节位单位设置传输数据量。
5.设置描述寄存器:设置DMA传输的方向;在散/聚方式下,位0表示传输参数的加载地址,0-PCI地址,1-Local地址; 位1表示传输链结束,0-未结束,1-结束;位2设置当前块传输结束后中断;位3指示DMA的传输方向,0-从PCI总线到Local总线,1-从Local总线到PCI总线;高28位[31:4]表示传输参数表的地址指针。
6.设置命令/状态寄存器:启动或停止DMA操作,并读此寄存器返回DMA状态 。
通过PCI9054的DMA传输方式,高速数据可以较容易地实现从PCI接口板上传入计算机,不必考虑PCI总线接口的实现,从而大大简化了设计中的复杂度,加快了设计周期。
结语
随着数字技术的发展,要求的数据传输速率将会越来越高,CPLD技术和PCI总线将会越来越多地应用在数据传输的设计中,PCI9054总线控制器有着较高的性能/价格比,将来的应用将会更加广泛。
|