采用PCI9052的ATM數(shù)據(jù)采集卡的接口電路設(shè)計
1. 引言
隨著CPU 的發(fā)展,原有的工業(yè)總線標(biāo)準(zhǔn)ISA/EISA總線早已跟不上時代的步伐,PCI總線作為一種先進(jìn)的高性能32/64位局部總線,可以同時支持多組外圍設(shè)備并且不受制于處理器和時鐘頻率,并能完全兼容現(xiàn)有的ISA/EISA/MAC等擴(kuò)展總線,非常適合于顯示卡、網(wǎng)卡、多串口卡等高速外設(shè),已經(jīng)取代了原來ISA總線的主導(dǎo)地位,成為微型計算機(jī)系統(tǒng)的主流總線。
2. PCI總線概述
PCI總線不依附于某個具體的處理器,除了適用intel公司的芯片外,還適用于其他型號的處理器芯片,并能實現(xiàn)PP,既在系統(tǒng)加電時,BIOS可以自動檢測機(jī)器配置,而給各個外圍設(shè)備分配中斷請求信號和存儲器的緩沖區(qū)等。PCI接口設(shè)備開發(fā)的有兩種方法,一種方法是采用可編程邏輯芯片,好處是比較靈活,用戶可以根據(jù)自己的需要開發(fā)出適合于特定功能的芯片。另一種常用的方法是使用專用接口芯片,通過專用芯片可以實現(xiàn)完整的PCI主控模塊和目標(biāo)模塊的功能,將復(fù)雜的PCI總線接口轉(zhuǎn)換為相對簡單的用戶接口,我們只要設(shè)計轉(zhuǎn)換后的總線接口即可。PCI9052是常用的總線接口芯片。本文詳細(xì)敘述采用PCI9052.進(jìn)行接口電路設(shè)計,主要的創(chuàng)新點在于PCI9052寄存器的配置空間及PCB布線中高速信號線的處理。
3. PCI9052的工作原理
PCI9052是PLX公司為擴(kuò)展適配板卡推出的一種混合的高性能PCI總線目標(biāo)(從)模式接口芯片。該芯片可與多種局部總線互連,支持PCI總線上的突發(fā)傳輸速率達(dá)到132Mb/s, PCI9052作為目標(biāo)接口芯片,只能作為從設(shè)備,但其功能獨具特色。
3.1 初始化和復(fù)位
在上電過程中,PCI9052的內(nèi)部寄存器有PCI BUS的RST#信號復(fù)位,并給以響應(yīng)信號RETRY,在LOCAL BUS上輸出LRESET#信號,還要檢查串行EEPROM是否存在,如果安裝了EEPROM并且它的前16位不為FFFFH,則PCI9052用EEPROM中的值來配置片內(nèi)的寄存器,否則使用缺省值。PCI總線上主控設(shè)備還可通過軟件的途徑(在NCTRL寄存器中設(shè)置相應(yīng)的位)對PCI9052復(fù)位,并給出LRESET#信號。采用這種復(fù)位以后,主設(shè)備只能訪問PCI9052的配置寄存器,而不能訪問LOCAL BUS,直到由主設(shè)備將軟件復(fù)位的位清除為止。
3.2 片內(nèi)寄存器訪問
為了接口設(shè)計的最大靈活性,PCI9052提供了兩種類型的片內(nèi)寄存器,它們分別是PCI配置寄存器和局部配置寄存器,二者都可以PCI總線和串行EEPROM訪問,也可以通過設(shè)置寄存器CNTRL[13]~CNTRL[12]禁止對串行EEPROM的訪問。
3.3 直接數(shù)據(jù)傳輸模式
PCI9052支持PCI主設(shè)備直接訪問LOCAL BUS上的設(shè)備,數(shù)據(jù)的傳輸方式分為內(nèi)存映射的突發(fā)傳輸和I/O映射的單次傳輸,并由PCI基地址寄存器設(shè)置其在PCI內(nèi)存和I/O空間的合適位置,局部映射寄存器還允許PCI地址空間轉(zhuǎn)換到局部地址空間。
3.4 PCI中斷的產(chǎn)生
PCI規(guī)范定義了四個中斷信號,以INTA#為例,要產(chǎn)生PCI中斷INTA#,首先要將寄存器INTCST的第6位(PCI中斷使能位)設(shè)置為1;如果需要以軟件方式產(chǎn)生中斷,則只需將INTCST的第7位(軟件中斷位)設(shè)置為1即可。
4.利用PCI9052進(jìn)行總線接口設(shè)計
圖1ATM數(shù)據(jù)采集卡結(jié)構(gòu)圖
ATM(異步傳輸模式)不僅適用于高速信息傳送和對服務(wù)質(zhì)量(QOS)的支持,還具備了綜合多種業(yè)務(wù)的能力,以及動態(tài)帶寬分配與連接管理能力和對已有技術(shù)的兼容性,ATM系統(tǒng)具有光明的前景。作者所在研究所開發(fā)設(shè)計的ATM數(shù)據(jù)采集卡采用PCI9052作為接口芯片,選擇支持5V32位的長卡,EEPROM選擇93AA46,9052選擇非復(fù)用模式,上圖為其結(jié)構(gòu)圖。
ATM數(shù)據(jù)采集卡通過光口接收光纖傳輸?shù)腟TM-1信元,通過物理層的PM5384把STM-1信元轉(zhuǎn)換成ATM信元,F(xiàn)PGA把ATM信元解釋成用戶需要的信號,PCI9052則控制信號在ATM數(shù)據(jù)采集卡和PC之間的傳輸。
4.1 寄存器的配置
PCI總線支持三個物理空間:存儲器地址空間、I/O地址空間和配置空間。配置空間是PCI特有的一個空間,所有的PCI設(shè)備必須提供配置空間。串行EEPROM存儲了PCI9052的重要配置信息,它的內(nèi)容非常重要,直接關(guān)系到整個板卡能否正常工作,需要非常注意。系統(tǒng)加電時,通過PCI的RST復(fù)位以后,PCI9052首先檢測EEPROM是否存在。如果檢測到EEPROM首字不是FFFFH,PCI9052將依次讀取EEPROM的內(nèi)容來初始化內(nèi)部寄存器,PCIBIOS根據(jù)配置寄存器的內(nèi)容進(jìn)行資源分配,從而實現(xiàn)PCI總線的即插即用特性。PCI配置寄存器的配置如表1所示。
PCI9052中還包括局部配置寄存器,以對PCI設(shè)備的基地址、地址空間范圍、地址空間描述符和片選信號等進(jìn)行配置。用戶可以在EEPROM中對PCI9052的局部配置寄存器進(jìn)行配置,也可以使用系統(tǒng)對該設(shè)備分配默認(rèn)值。局部配置寄存器的配置不是必須的,一般情況下使用缺省配置即可。
4.2 PCB布局布線
4.2.1 PCI卡電源要求
在設(shè)計電路圖時,必須遵循PCI規(guī)范。在電源層和地線層之間的電容可為連接器上的電源引腳提供去耦作用。所有3.3V引腳和沒有使用到的5V引腳需要用以下方法耦合到地:
(1)每個電源引腳上必須有退耦電容,且容量至少位0.01μf。
(2)從引腳根部到電容器焊盤的走線長度不大于0.25 in ,線寬至少為0.02 in 。
PCI擴(kuò)展板上所允許的最大功耗為25w,該值是指來自四條電源線功耗的總和。最大功耗也可以設(shè)置成15w或7.5w,這由連接器上的PRSNT1#和PRSNT2#引腳決定。
4.2.2 走線長度
從擴(kuò)展卡的連接器到PCI元器件的引腳之間,走線長度有如下限制:
(1)所有接口信號的最大走線長度為1.5 in。
(2)時鐘CLK信號走線長度為2.5 in,并且只能接到一個負(fù)載上。
4.2.3 布局布線
PCI接口卡采用四層板結(jié)構(gòu),在電源層布線時采用“分裂的電源層”技術(shù),既將電源層分成5V和3.3V兩個電源層,為了防止高速信號在跨過電源層是的信號完整性問題以及由于斷裂處信號線交流回路受阻造成的阻抗的不連續(xù)性,盡量不把高速信號布置在兩個電源平面上,應(yīng)把它們?nèi)坎荚?.3V平面上訪或5V平面上方,如果有的信號不得已要跨越兩個區(qū)域,可以把他放到扳子的另一面,使它在地線平面上方走線。如果有的信號無論如何采用什么方法都不能不讓它跨越兩個電源層平面的裂縫,這時應(yīng)將兩個電源層平面用電容器耦合在一起,沒四條跨過的線用一個0.01μF的高速電容器,并且電容器的位置距跨越點不超過0.25 in.
4.3驅(qū)動程序開發(fā)
對于開發(fā)WDM驅(qū)動程序來說,有三個常用的開發(fā)環(huán)境,Windows DDK, DriverStudio和Windriver,綜合考慮它們的優(yōu)缺點,我們使用DriverStudio來完成PCI9052驅(qū)動程序的開發(fā)。PCI設(shè)備有兩個特征使得它的驅(qū)動程序與“標(biāo)準(zhǔn)的”或現(xiàn)有的設(shè)備驅(qū)動程序不同。
第一個特征是PCI設(shè)備是可以再定位的。也就是說設(shè)備的地址空間不是硬件固定的,PCI設(shè)備驅(qū)動程序及其它配置軟件應(yīng)當(dāng)用該設(shè)備配置空間中的映射信息來決定將設(shè)備映射到何處,這個可以在例程OnStartDivce中實現(xiàn)。
第二個持征是PCI中斷是共享的。因為在系統(tǒng)實現(xiàn)中,很有可能將各個設(shè)備連到一條中斷線上,這就要求PCI設(shè)備驅(qū)動程序能夠支持共享的中斷。在DivceStudio中使用Kinterrupt類實現(xiàn)中斷處理,調(diào)用成員函數(shù)對中斷初始化,控制一個中斷服務(wù)程序和另一個之間的連接和斷開。對于DriveWizard生成的框架,它在OnStartDevice(KIrpI)中對一個中斷對象調(diào)用InitializeAndConnect(),完成初始化和連接。為了實現(xiàn)PCI中斷的共享,中斷服務(wù)程序必須迅速作出是否為自己板卡來的中斷的判定,如果是則返回TURE,否則返回FALSE。對于需要大量操作的工作,中斷服務(wù)程序會調(diào)用一個低于DIRLQ級別的延遲調(diào)用函數(shù),在DISPATCH-LEVEL上完成處理。
4.4 驗證
通過Creatfile打開設(shè)備,使用DeviceIOcontrol將IOCTL控制命令及緩沖區(qū)首地址送到驅(qū)動程序,驅(qū)動程序采用DMA方式將由FPGA重組后的數(shù)據(jù)加上一個頭部信息(VPI、VCI、消息類型等)傳遞給上層測試程序。經(jīng)驗證收到的數(shù)據(jù)信息
電容器相關(guān)文章:電容器原理
電路相關(guān)文章:電路分析基礎(chǔ)
評論