通过设置MCSR寄存器启动DMA传输。
由本地逻辑控制的DMA传输步骤,只需将控制方式改为本地逻辑控制,然后由本地逻辑来设置相应的寄存器。
3.5 PASS THRU方式下的数据传输
配置空间中的基址寄存器为PCI系统资源分配(内存和I/O空间的分配)提供了一种机制,PCI设备在基址寄存器中填入所需资源的类型和大小,基址寄存器的0位为1表示为内存空间,为0则表示为I/O空间,1、2位则指定内存或I/O空间是分配在1M地址以下,还是分配在任意地址空间,3位表示能否预取,4~31位表示所需分配的内存或I/O空间的大小。PCI BIOS启动后读取各个PCI设备配置空间中的基址寄存器,获取每个PCI设备分配所需的资源类型和大小等信息,并且为这些PCI设备分配好所设定的资源,然后再将分配的内存空间或地址空间的基地址回写到PCI设备的各个基址寄存器中。
配置空间中有6个基址寄存器,与PASS THRU方式有关的是基址寄存器1~4,基址寄存器0被指定为AMCCS5933分配I/O资源,基址寄存器6保留不用。
PASS THRU 方式下的数据传输的有关引脚:PTATN#、PTRDY#、PTNUM[1:0]、PTBE[3:0]#、BE[3..0]#、PTADR#、 PTWR、PTBURST#、DQ[31..0]
PTNUM[1:0]表示由哪个基址寄存器所分配的内存空间或I/O空间。
PASS THRU方式下的数据传输主要由AMCCS5933芯片与本地逻辑电路通过上述引脚信号的交互、握手来完成,时序如图4所示。
PASS THRU的握手时序可以通过可编程逻辑以同步状态机的方式实现,用ALTERA的AHDL硬件编程语言可以很容易地实现它。
3.6 中断的设置与产生
AMCCS5933有两个中断引脚:INTA#和IRQ#。INTA#为PCI总线信号用于产生系统PCI中断,IRQ#是本地总线信号用于产生本地逻辑的中断。
MAILBOX的空满变化、DMA读写传送的完成都可以产生中断,中断的使用方法如下:
A PCI设备中断INTA#
(1)在配置空间中断引脚寄存器填入中断引脚,单功能设备选INTA#。
(2)从配置空间矢量寄存器中获取中断矢量。
(3)在PCI总线控制寄存器中,设置产生的条件,如MAILBOX变满产生中断、DMA写完成产生中断等。
(4)在中断处理程序中,读取PCI总线控制寄存器INTCSR和MBEF当前值,确定中断源并做相应中断处理。
(5)清中断及退出中断处理程序,清中断通过往INTCSR相应的中断标志位写“1”来完成。