AMCCS5933 在PCI板卡設(shè)計中的應(yīng)用
通過設(shè)置MCSR寄存器啟動DMA傳輸。
由本地邏輯控制的DMA傳輸步驟,只需將控制方式改為本地邏輯控制,然后由本地邏輯來設(shè)置相應(yīng)的寄存器。
3.5 PASS THRU方式下的數(shù)據(jù)傳輸
配置空間中的基址寄存器為PCI系統(tǒng)資源分配(內(nèi)存和I/O空間的分配)提供了一種機制,PCI設(shè)備在基址寄存器中填入所需資源的類型和大小,基址寄存器的0位為1表示為內(nèi)存空間,為0則表示為I/O空間,1、2位則指定內(nèi)存或I/O空間是分配在1M地址以下,還是分配在任意地址空間,3位表示能否預(yù)取,4~31位表示所需分配的內(nèi)存或I/O空間的大小。PCI BIOS啟動后讀取各個PCI設(shè)備配置空間中的基址寄存器,獲取每個PCI設(shè)備分配所需的資源類型和大小等信息,并且為這些PCI設(shè)備分配好所設(shè)定的資源,然后再將分配的內(nèi)存空間或地址空間的基地址回寫到PCI設(shè)備的各個基址寄存器中。
配置空間中有6個基址寄存器,與PASS THRU方式有關(guān)的是基址寄存器1~4,基址寄存器0被指定為AMCCS5933分配I/O資源,基址寄存器6保留不用。
PASS THRU 方式下的數(shù)據(jù)傳輸?shù)挠嘘P(guān)引腳:PTATN#、PTRDY#、PTNUM[1:0]、PTBE[3:0]#、BE[3..0]#、PTADR#、 PTWR、PTBURST#、DQ[31..0]
PTNUM[1:0]表示由哪個基址寄存器所分配的內(nèi)存空間或I/O空間。
PASS THRU方式下的數(shù)據(jù)傳輸主要由AMCCS5933芯片與本地邏輯電路通過上述引腳信號的交互、握手來完成,時序如圖4所示。
PASS THRU的握手時序可以通過可編程邏輯以同步狀態(tài)機的方式實現(xiàn),用ALTERA的AHDL硬件編程語言可以很容易地實現(xiàn)它。
3.6 中斷的設(shè)置與產(chǎn)生
AMCCS5933有兩個中斷引腳:INTA#和IRQ#。INTA#為PCI總線信號用于產(chǎn)生系統(tǒng)PCI中斷,IRQ#是本地總線信號用于產(chǎn)生本地邏輯的中斷。
MAILBOX的空滿變化、DMA讀寫傳送的完成都可以產(chǎn)生中斷,中斷的使用方法如下:
A PCI設(shè)備中斷INTA#
(1)在配置空間中斷引腳寄存器填入中斷引腳,單功能設(shè)備選INTA#。
(2)從配置空間矢量寄存器中獲取中斷矢量。
(3)在PCI總線控制寄存器中,設(shè)置產(chǎn)生的條件,如MAILBOX變滿產(chǎn)生中斷、DMA寫完成產(chǎn)生中斷等。
(4)在中斷處理程序中,讀取PCI總線控制寄存器INTCSR和MBEF當前值,確定中斷源并做相應(yīng)中斷處理。
(5)清中斷及退出中斷處理程序,清中斷通過往INTCSR相應(yīng)的中斷標志位寫“1”來完成。
評論