3.2 总线控制寄存器的访问
PCI总线控制寄存器只有主机才能访问,主机通过PCI总线进行I/O读写操作来访问这些寄存器。
本地总线控制寄存器只有本地逻辑才能访问,与其有关的引脚有ADR[6..2]、BE[3..0]#、SELECT#、WR#、RD#和数据地址总线DQ[31..0]。
读时序如图3所示,写时序将图中RD#替换为WR#即可。
ADR[6..2]提供被访问寄存器的地址,BE[3..0]#制定访问是双字中的哪些字节,WR#为写使能,RD#为读使能,SELECT#为操作使能,都为低电平有效。
3.3 MAILBOX方式的使用
AMCCS5933内部有8个MAILBOX:4个输出MAILBOX,四个输入MAILBOX。PCI方的输入MAILBOX对应于本地的输出MAILBOX,输出MAILBOX则对应于输入MAILBOX。
MAILBOX主要用于主机方与本地逻辑之间的通信,例如传输一些自定义的控制字、状态信息等。
主机对MAILBOX的访问通过I/O读写来完成,本地逻辑对MAILBOX的访问则通过访问本地控制寄存器的方式来完成。
MIALBOX的空满状态由控制寄存器MBEF(PCI)和AMBEF(本地)来表征。
3.4 FIFO方式下的数据传输
3.4.1基本数据传输
AMCCS5933内部有两个单向FIFO:输出FIFO和输入FIFO,主机和本地逻辑可以以访问控制寄存器的方式来访问FIFO,也可以通过WRFIFO#、RDFIFO#、WFULL、RDEMPTY、BPCLK这几个引脚来直接读写FIFO。在设计当中一般采用后一种方法。直接读写FIFO有两种工作方式:同步方式和异步方式。在同步方式下,WRFIFO#、RDFIFO#为FIFO读写使能信号,在BPCLK的上跳沿写入和读出数据,输出引脚BPCLK输出33MHz信号。在异步方式下,WRFIFO#、RDFIFO#为FIFO读写信号。WRFULL为输出FIFO满信号,RDEMPTY为输入FIFO空信号。
3.4.2 DMA的实现
在FIFO方式下可以实现DMA传输。
DMA传输的实现步骤:
(1)通过NVBUILD软件设置DMA传输的控制方为主机或本地逻辑,以下假设为主机控制。
(2)设置有关的PCI总线控制寄存器。
MWAR DMA写地址寄存器 填入接收数据存放的起始地址
MWTC DMA写计数器 填入接收数据的字节数
MRAR DMA 读地址寄存器 填入发送数据起始地址
MRTC DMA 读计数器 填入发送数据的字节数
(3) 启动DMA传输