AMCCS5933 在PCI板卡設(shè)計(jì)中的應(yīng)用
3.2 總線控制寄存器的訪問
PCI總線控制寄存器只有主機(jī)才能訪問,主機(jī)通過PCI總線進(jìn)行I/O讀寫操作來訪問這些寄存器。
本地總線控制寄存器只有本地邏輯才能訪問,與其有關(guān)的引腳有ADR[6..2]、BE[3..0]#、SELECT#、WR#、RD#和數(shù)據(jù)地址總線DQ[31..0]。
讀時(shí)序如圖3所示,寫時(shí)序?qū)D中RD#替換為WR#即可。
ADR[6..2]提供被訪問寄存器的地址,BE[3..0]#制定訪問是雙字中的哪些字節(jié),WR#為寫使能,RD#為讀使能,SELECT#為操作使能,都為低電平有效。
3.3 MAILBOX方式的使用
AMCCS5933內(nèi)部有8個(gè)MAILBOX:4個(gè)輸出MAILBOX,四個(gè)輸入MAILBOX。PCI方的輸入MAILBOX對(duì)應(yīng)于本地的輸出MAILBOX,輸出MAILBOX則對(duì)應(yīng)于輸入MAILBOX。
MAILBOX主要用于主機(jī)方與本地邏輯之間的通信,例如傳輸一些自定義的控制字、狀態(tài)信息等。
主機(jī)對(duì)MAILBOX的訪問通過I/O讀寫來完成,本地邏輯對(duì)MAILBOX的訪問則通過訪問本地控制寄存器的方式來完成。
MIALBOX的空滿狀態(tài)由控制寄存器MBEF(PCI)和AMBEF(本地)來表征。
3.4 FIFO方式下的數(shù)據(jù)傳輸
3.4.1基本數(shù)據(jù)傳輸
AMCCS5933內(nèi)部有兩個(gè)單向FIFO:輸出FIFO和輸入FIFO,主機(jī)和本地邏輯可以以訪問控制寄存器的方式來訪問FIFO,也可以通過WRFIFO#、RDFIFO#、WFULL、RDEMPTY、BPCLK這幾個(gè)引腳來直接讀寫FIFO。在設(shè)計(jì)當(dāng)中一般采用后一種方法。直接讀寫FIFO有兩種工作方式:同步方式和異步方式。在同步方式下,WRFIFO#、RDFIFO#為FIFO讀寫使能信號(hào),在BPCLK的上跳沿寫入和讀出數(shù)據(jù),輸出引腳BPCLK輸出33MHz信號(hào)。在異步方式下,WRFIFO#、RDFIFO#為FIFO讀寫信號(hào)。WRFULL為輸出FIFO滿信號(hào),RDEMPTY為輸入FIFO空信號(hào)。
3.4.2 DMA的實(shí)現(xiàn)
在FIFO方式下可以實(shí)現(xiàn)DMA傳輸。
DMA傳輸?shù)膶?shí)現(xiàn)步驟:
(1)通過NVBUILD軟件設(shè)置DMA傳輸?shù)目刂品綖橹鳈C(jī)或本地邏輯,以下假設(shè)為主機(jī)控制。
(2)設(shè)置有關(guān)的PCI總線控制寄存器。
MWAR DMA寫地址寄存器 填入接收數(shù)據(jù)存放的起始地址
MWTC DMA寫計(jì)數(shù)器 填入接收數(shù)據(jù)的字節(jié)數(shù)
MRAR DMA 讀地址寄存器 填入發(fā)送數(shù)據(jù)起始地址
MRTC DMA 讀計(jì)數(shù)器 填入發(fā)送數(shù)據(jù)的字節(jié)數(shù)
(3) 啟動(dòng)DMA傳輸
評(píng)論