關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > PCI接口芯片s5935及其應(yīng)用

PCI接口芯片s5935及其應(yīng)用

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:是AMCC公司生產(chǎn)的 ,可實(shí)現(xiàn)直通(PASS-THRU)、郵箱(MAILBOX)、FIFO/DMA三種工作方式。文章簡(jiǎn)要介紹了這三種工作方式,并給出了的WDM驅(qū)動(dòng)編程。

關(guān)鍵詞: WDM

PCI局部總線(xiàn)由于具有高速率以及支持即插即用等特點(diǎn)在微機(jī)系統(tǒng)中得到廣泛應(yīng)用。利用PCI可以方便地設(shè)計(jì)PCI規(guī)范板卡。s5935是AMCC公司s59xx系列PCI中的一種。該芯片功能強(qiáng)大,可用于高速數(shù)據(jù)采集處理卡、視頻加速卡以及多媒體通信等。其主要特點(diǎn)如下:

●兼容PCI2.1規(guī)范,可實(shí)現(xiàn)PCI總線(xiàn)主設(shè)備和從設(shè)備功能;

●具有高達(dá)132MB/s的傳輸速率;

●支持8/16/32位外加用戶(hù)總線(xiàn);

●可選nvRAM和擴(kuò)展BIOS;

●具有直通、郵箱、FIFO/DMA三種工作方式;

●適于32位5V電平PCI卡,具有160腳PQFP和208腳TQFP兩種封裝。

1?。螅担梗常档慕Y(jié)構(gòu)

圖1所示是s5935的內(nèi)部結(jié)構(gòu)框圖。s5935中的寄存器分為PCI配置寄存器組和操作寄存器組。前者可從nvRAM的40h~7fh位載入,也可以是默認(rèn)值,s5935只能實(shí)現(xiàn)首部類(lèi)型0和單功能設(shè)備配置。后者用于s5935與外加總線(xiàn)的操作配置和數(shù)據(jù)傳輸(如中斷控制,郵箱入口等),從PCI總線(xiàn)訪(fǎng)問(wèn)時(shí)稱(chēng)為PCI操作寄存器組,地址為PCI操作寄存器基址加各寄存器偏移地址;而從外加總線(xiàn)訪(fǎng)問(wèn)時(shí),稱(chēng)為外加總線(xiàn)操作寄存器組,可通過(guò)ADR[6:2]選擇。

s5935的引腳接口分為PCI總線(xiàn)接口、外加總線(xiàn)接口和nvRAM接口。外加總線(xiàn)接口包括中斷、復(fù)位輸出、數(shù)據(jù)總線(xiàn)及控制引腳,這三種工作方式各有其獨(dú)立的控制引腳。

2 s5935的工作方式

s5935具有直通、郵箱和FIFO三種工作方式,其中直通方式(Pass-Thru)可以實(shí)現(xiàn)PCI總線(xiàn)對(duì)外加總線(xiàn)的實(shí)時(shí)讀寫(xiě),它可對(duì)PCI總線(xiàn)讀寫(xiě)時(shí)序直接響應(yīng);郵箱方式(MAILBOX)可通過(guò)PCI總線(xiàn)與外加總線(xiàn)的一方讀/寫(xiě)郵箱,另一方接收中斷/查詢(xún)并寫(xiě)/讀郵箱;以上兩種工作方式只能在s5935作為PCI從設(shè)備時(shí)實(shí)現(xiàn)。 而FIFO方式則可使其作為總線(xiàn)主設(shè)備來(lái)啟動(dòng)DMA數(shù)據(jù)傳輸。在典型的PCI數(shù)據(jù)處理卡中,可用s5935作為PCI接口通過(guò)DSP處理數(shù)據(jù),同時(shí)使用FPGA完成DSP與s5935間的邏輯轉(zhuǎn)換;郵箱或直通方式用于主機(jī)和DSP之間的命令和參數(shù)傳輸,FIFO/DMA方式則可完成高速批量數(shù)據(jù)傳送。下面是s5935的PCI配置及三種工作方式在Win-dows2000下的WDM驅(qū)動(dòng)程序(DDK編程)。

2.1 s5935的PCI配置

PCI配置寄存器格式可參考PCI協(xié)議文檔。如果不使用nvRAM加載s5935的PCI配置寄存器,將無(wú)法實(shí)現(xiàn)FIFO和直通工作方式。PCI配置寄存器中的基址寄存器BASE ADDRESS 0對(duì)應(yīng)于PCI操作寄存器的基地址;BASE ADDRESS 1至4則分別對(duì)應(yīng)于四個(gè)直通通道地址(無(wú)nvRAM時(shí)默認(rèn)為0)。上述基址寄存器的內(nèi)容可由系統(tǒng)在初始化時(shí)查詢(xún)以確定映射方式(I/O或內(nèi)存映射)、直通通道位寬和地址范圍,然后由系統(tǒng)寫(xiě)入物理地址,這種具體配置方法比較麻煩(見(jiàn)參考文獻(xiàn)1和2)。同時(shí),nvRAM的45h字節(jié)的第5、6位必須置0以使能FIFO操作。

2.2 直通方式

s5935提供有四條直通通道,可以實(shí)現(xiàn)單周期和突發(fā)數(shù)據(jù)傳送。在主機(jī)驅(qū)動(dòng)程序中,讀寫(xiě)直通通道地址可實(shí)現(xiàn)數(shù)據(jù)傳輸,如:

WRITE PORT USHORT?BASE ADDRESS 3+OFF-SET ADDRESS,DATA?;

s5935外加總線(xiàn)接口部分相關(guān)引腳:

PTATN: 輸出,直通周期開(kāi)始;

PTNUM?1?0?: 輸出,指示四個(gè)直通通道之一;

PTBE?3?0?: 輸出,DQ?31?0?字節(jié)使能;

PTWR: 輸出,讀寫(xiě)選擇;

PTADR: 輸入,OFFSET ADDRESS從直通地址寄存器驅(qū)動(dòng)至DQ?31?0?;

PTRDY: 輸入,表明外加總線(xiàn)完成傳輸;

ADR?6?2?: 輸入,選擇外加操作寄存器;

2.3 郵箱方式

s5935有輸入、輸出郵箱各四個(gè),多采用中斷/查詢(xún)方式傳輸數(shù)據(jù),外加總線(xiàn)則可由ADR?6:2?和IRQ等引腳實(shí)現(xiàn)。中斷控制/狀態(tài)寄存器用于實(shí)現(xiàn)中斷的使能配置、查詢(xún)和清除,郵箱狀態(tài)寄存器可查詢(xún)郵箱狀態(tài),通過(guò)控制/狀態(tài)寄存器可使郵箱復(fù)位。還可以通過(guò)EA?0?8?腳直接讀寫(xiě)外加總線(xiàn)4號(hào)輸出郵箱的第三字節(jié),這也是直連外部中斷的一種簡(jiǎn)單方法。在Windows2000下,其典型WDM驅(qū)動(dòng)程序中斷相關(guān)部分模型如下(地址I/O映射):

AddDevice()//加載設(shè)備

? ……

IoInitializeDpcRequest();

……?

DispatchPNP ? ? //

?……

case CmResourceTypeInterrupt:

GetInterruptRes??; //取得中斷資源

……

WRITE PORT ULONG(BASE ADDRESS 0+INTCSR,DISABLE INT DWORD) ;//禁止中斷

IoConnectInterrupt???

……?

DeviceControl()//實(shí)現(xiàn)應(yīng)用程序中DeviceIOCon-trol函數(shù)對(duì)設(shè)備的讀寫(xiě)

? ……

switch?CONTROLCODE??……

case ENABLE INTERRUPT: //使能和配置

中斷方式

WRITE PORT ULONG(BASE ADDRESS 0+INTCSR,INT MASK DWORD);

case WRITE DATA:

WRITE PORT ULONG(BASE ADDRESS 0+INCOMING MBOX2 ADDRESS,DATA);

}

……}

InterruptHandler? ? //中斷服務(wù)函數(shù)

{ ……

DWORD= READ PORT ULONG(BASE AD-DRESS 0+INTCSR)?//查詢(xún)是否使本設(shè)備產(chǎn)生的中斷及本設(shè)備以何種方式產(chǎn)生中斷

……

DWORD=READ PORT ULONG(BASE AD-DRESS 0+PCI INCOMING MBOX2);//假設(shè)2號(hào)郵箱收到數(shù)據(jù)產(chǎn)生此中斷

WRITE PORT ULONG(BASE ADDRESS 0+INTCSR,DEASSERT INTERRUPT WORD);//清中斷

……

IoRequestDpc();//調(diào)用DpcForISR函數(shù),完成可推遲的中斷服務(wù)

……?

DpcForISR? ? ?……?

2.4 FIFO方式

s5935的兩條FIFO,分別對(duì)應(yīng)于讀、寫(xiě)外加總線(xiàn),它們可根據(jù)讀寫(xiě)方向由s5935自動(dòng)選擇。當(dāng)外加總線(xiàn)作為主控設(shè)備時(shí),使能AMREN(外加總線(xiàn)主控讀使能)和AMWEN(外加總線(xiàn)主控寫(xiě)使能)引腳即可啟動(dòng)FIFO/DMA傳輸,同時(shí)可通過(guò)相應(yīng)的引腳或寄存器得到FIFO狀態(tài)并復(fù)位FIFO。當(dāng)從PCI總線(xiàn)進(jìn)行s5935主控FIFO/DMA傳輸時(shí),首先應(yīng)在中斷配置寄存器中寫(xiě)endian格式和中斷方式,然后寫(xiě)地址和計(jì)數(shù)寄存器,最后寫(xiě)PCI控制/狀態(tài)寄存器(MCSR)并啟動(dòng)DMA, 在Windows2000下的驅(qū)動(dòng)程序步驟如圖2所示,具體編程可參考郵箱方式。



關(guān)鍵詞: s5935 PCI 接口芯片

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉