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