AMCCS5933 在PCI板卡設(shè)計(jì)中的應(yīng)用
通過(guò)設(shè)置MCSR寄存器啟動(dòng)DMA傳輸。
由本地邏輯控制的DMA傳輸步驟,只需將控制方式改為本地邏輯控制,然后由本地邏輯來(lái)設(shè)置相應(yīng)的寄存器。
3.5 PASS THRU方式下的數(shù)據(jù)傳輸
配置空間中的基址寄存器為PCI系統(tǒng)資源分配(內(nèi)存和I/O空間的分配)提供了一種機(jī)制,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啟動(dòng)后讀取各個(gè)PCI設(shè)備配置空間中的基址寄存器,獲取每個(gè)PCI設(shè)備分配所需的資源類型和大小等信息,并且為這些PCI設(shè)備分配好所設(shè)定的資源,然后再將分配的內(nèi)存空間或地址空間的基地址回寫到PCI設(shè)備的各個(gè)基址寄存器中。
配置空間中有6個(gè)基址寄存器,與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]表示由哪個(gè)基址寄存器所分配的內(nèi)存空間或I/O空間。
PASS THRU方式下的數(shù)據(jù)傳輸主要由AMCCS5933芯片與本地邏輯電路通過(guò)上述引腳信號(hào)的交互、握手來(lái)完成,時(shí)序如圖4所示。
PASS THRU的握手時(shí)序可以通過(guò)可編程邏輯以同步狀態(tài)機(jī)的方式實(shí)現(xiàn),用ALTERA的AHDL硬件編程語(yǔ)言可以很容易地實(shí)現(xiàn)它。
3.6 中斷的設(shè)置與產(chǎn)生
AMCCS5933有兩個(gè)中斷引腳:INTA#和IRQ#。INTA#為PCI總線信號(hào)用于產(chǎn)生系統(tǒng)PCI中斷,IRQ#是本地總線信號(hào)用于產(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當(dāng)前值,確定中斷源并做相應(yīng)中斷處理。
(5)清中斷及退出中斷處理程序,清中斷通過(guò)往INTCSR相應(yīng)的中斷標(biāo)志位寫“1”來(lái)完成。
評(píng)論