新聞中心

EEPW首頁 > 醫(yī)療電子 > 設計應用 > PCI9052總線接口芯片及其ISA模式應用

PCI9052總線接口芯片及其ISA模式應用

——
作者:吳業(yè)進,劉鋒 (解放軍信息工程大學 河南鄭州450002) 時間:2007-01-26 來源:《電子工程師》 收藏

1 引 言

本文引用地址:http://butianyuan.cn/article/20665.htm

pci(peripheral component interconnect)總線,即外圍部件互連總線,是一種先進的高性能32/64位地址數(shù)據(jù)復用局部總線。pci總線與處理器和時鐘頻率無關,可以提供高達132mb/s的數(shù)據(jù)傳送速率;它具有嚴格的規(guī)范,只要符合pci規(guī)范的擴展卡插入任何pci系統(tǒng)就能可靠地工作。但由于pci總線協(xié)議的復雜性,其接口的實現(xiàn)比vesa、isa和mca等總線要困難得多。

目前,開發(fā)pci接口設備有兩種方法:一種方法是采用可編程邏輯芯片,它的最大好處是比較靈活,用戶可以根據(jù)自己的需要開發(fā)出適合于特定功能的芯片,而不必實現(xiàn)pci的全部功能?,F(xiàn)在有許多生產可編程邏輯器件的廠商,如xilinx的logicore和altera的ampp都提供經(jīng)過嚴格測試的pci接口功能模塊,用戶只要進行組合設計即可。另一種常用的方法是使用專用接口器件,通過專用芯片可以實現(xiàn)完整的pci主控模塊和目標模塊的功能,將復雜的pci總線接口轉換為相對簡單的用戶接口,用戶只要設計轉換后的總線接口即可。

專用接口芯片具有較低的成本和通用性,能夠有效降低接口設計的難度,縮短開發(fā)時間?,F(xiàn)有的pci接口芯片主要有amcc公司的amccs59xx系列和plx公司的pci90xx系列。在plx系列產品中,pci9052是一款常用的pci總線目標接口芯片,該芯片最大的特色是帶有一個isa接口,通過它可以實現(xiàn)isa總線到pci總線的無縫連接,這為目前仍存在的isa插件移植到pci提供了極大的方便。

利用pci9052的isa模式進行pci的開發(fā)可以簡化設備開發(fā)過程,但難度還是較大。設計者不僅要理解掌握手冊中的要點,還要學習硬件設計和軟件設計的方法和過程。為了讓大家能夠系統(tǒng)地了解利用pci9052的isa模式進行pci板卡開發(fā)的過程和方法,本文從硬件設計、配置寄存器的編寫、板卡調試和驅動程序的編寫等方面介紹了pci9052的開發(fā)過程。2 pci9052的isa接口模式

2.1 基本特點

pci9052是plx公司繼pci9050之后推出的低成本pci總線接口芯片,它符合pci2.1規(guī)范,可作為pci總線目標設備實現(xiàn)基本的傳送要求;它有5個局部地址空間和4個局部設備片選信號,局部總線與pci總線時鐘相互獨立運行。通過配置eeprom的內容可以將pci9052設定為isa接口模式,通過8位或16位內存或i/o映射可直接使pci總線與isa總線相連,從而將isa總線快速地轉換到pci總線上。

在我們的數(shù)控測井系統(tǒng)中,原來的通信控制模塊是基于isa總線的插件,端口地址為0x100~0x10f,總線寬度是16位,可以實現(xiàn)輸入輸出,有中斷功能?,F(xiàn)在,我們利用pci9052芯片的isa模式對原來的板卡進行升級改造,使原來的板卡在做少量改動的情況下可以插在pci總線插槽中正常工作。

2.2 引腳介紹及連接

在不同的模式下,pci9052的部分引腳有不同的定義和功能。工作在isa模式下,其主要引腳如圖1所示。

pci9052硬件連接正確與否直接關系到芯片能否正常工作,某些引腳處理不當往往會引起芯片工作不正常或死機。在圖1中,9052左上方的信號和pci信號相連,左下方信號和串行eeprom相連,右邊的信號和局部總線信號相連,也就是和isa總線信號相連。

pci端主要信號完全符合pci規(guī)范要求,直接和pci總線上對應的引腳相連即可。 isa端連接如下:

在我們的板卡中由于只涉及到i/o,且為16位寬的數(shù)據(jù),因此,memwr#、memrd#、sbhe#和bale信號可以不用。

lad〔15:0〕是16位的數(shù)據(jù)總線。la〔23:2〕和isaa〔1:0〕共同組成isa的地址總線,對于8位的數(shù)據(jù)總線,isaa〔1:0〕相當于la〔1:0〕,它們一起進行地址譯碼。而對于16位的數(shù)據(jù)線,每次讀寫兩個字節(jié),這時isaa〔0〕不用,isaa〔1〕和la〔23:2〕一起進行地址譯碼。需要注意的是,并不是所有的地址線都要進行地址譯碼,這里要根據(jù)板卡上實際i/o口空間的大小選擇譯碼地址線的數(shù)目。對于我們的板卡,la〔3:2〕和isaa〔1〕地址譯碼是必需的(isaa〔1〕為低位),當然,所有的地址線都參加地址譯碼也是可以的。

iowr#和iowd#是局部端口讀寫信號。lclk是isa端時鐘信號,按芯片要求外接8mhz的時鐘。lreset#是9052芯片上電時pci端復位后所發(fā)出的對isa端進行復位的信號。在isa模式下,該信號輸出高有效。

linti1和linti2是局部總線中斷輸入信號,這里,我們只用到linti1信號,由于9052內部沒有對這兩個信號進行上拉或下拉處理,因此,在外部將linti2上拉或下拉到一個確定的狀態(tài)。

nows#是無等待標志信號,此引腳上拉或接地可以減少等待的時鐘數(shù)。lrdy#是局部準備就緒信號,如果局部芯片沒有提供該信號,一般對它進行下拉或接地處理。chrdy是局部通道準備好信號,一般要進行上拉處理。lhold是局部總線請求信號,應該進行下拉或接地處理。mode是模式選擇信號,由于我們使用的是isa非復用模式,因此該引腳接地。

在設計電路板時,要嚴格遵循pci規(guī)范。電源和地線要盡可能寬且電源濾波要良好,在芯片的每個電源引腳最好接0.1μf的濾波電容。由于pci時鐘信號的一半要靠反射波來提升,因此,時鐘信號clk走線長度近似為2500mil。prstn1和prstn2兩者必須有一個接地,主板就是靠這兩個信號來判斷這個插槽上是否有卡的。用作上拉或下拉的電阻一般取值2.2 k歐姆即可。一般來說,pci板卡推薦做4層板,其實只要布線合理做兩層板也是可以的。

串行eeprom端信號有以下幾種:時鐘信號(eeck)、讀數(shù)據(jù)信號(eedo)、寫數(shù)據(jù)信號(eedi)和片選信號(eesc),分別和eeprom相應管腳相連即可。

2.3 串行eeprom的配置

與isa總線相比,pci總線支持三個物理空間:存儲器地址空間、i/o地址空間和配置空間。配置空間是pci所特有的一個空間,所有的pci設備必須提供配置空間。串行eeprom存儲了pci9052重要的配置信息,如設備號did、制造商號vid、子設備號sdid、子制造商號svid、中斷號、設備類型號、局部空間基地址、局部空間描述符、片選響應以及局部響應控制cntrl等信號。eeprom的內容非常重要,它直接關系到整個板卡能否正常工作,在設計時要非常注意。

系統(tǒng)加電時,通過pci的rst復位以后,pci9052首先檢測eeprom是否存在。如果檢測到eeprom首字不是ffffh,pci9052將依次讀取eeprom的內容來初始化內部寄存器。pcibios根據(jù)配置寄存器的內容進行系統(tǒng)資源分配,這樣,整個pci設備的資源才不會發(fā)生沖突,從而實現(xiàn)了pci總線的即插即用的特性。

pci9052的內部寄存器為總線接口的設計與實現(xiàn)提供了最大的靈活性,這些寄存器可以分為兩類:pci配置寄存器和局部配置寄存器。pci配置寄存器有6個基地址寄存器,這些基地址是在系統(tǒng)中的物理地址。其中,基地址0和基地址1分別是以內存方式和i/o方式訪問局部配置寄存器的基地址,基地址2和基地址3分別映射到局部基地址0和局部基地址1。局部總線配置寄存器用于設定局部總線的工作方式,如基地址和地址范圍等。實際上,9052在pci和isa總線之間起到一個翻譯作用,要訪問isa端地址只需對pci端基地址進行操作就可以了。對于我們的設計,eeprom的值及裝入順序如表1所示。

表1中,did和vid是plx公司的標志,一般不能更改。操作系統(tǒng)就是通過did、vid、sdid、svid及設備類型碼來識別不同廠家的設備的。

在isa模式下,局部空間1必須映射為i/o空間,局部空間0必須映射為內存空間。另外要注意:在isa模式下雖然不存在片選信號,但我們必須設置它,使它的值和局部空間1的基地址和范圍相匹配,否則,局部地址空間無法響應pci的控制指令。同樣,如果用到局部地址空間0,也要設置它的值。

對于pci9052芯片,它的配置寄存器的內容是在芯片復位時通過串行eeprom加載的。在isa模式下,串行eeprom一定不能省略,我們一般使用松下公司的nm93cs46或與之兼容的存儲器。配置寄存器的內容編寫完以后,可以用編程器寫入eeprom中。另外,也可以通過主機在線燒寫,但由于各種原因,成功率很低。3 板卡調試

板卡做好以后,就可以插入主機板的pci插槽中進行調試。在調試的過程中,為了跟蹤信號的變化通常要用到數(shù)字示波器,另外,還需要一個軟件調試工具。plx公司提供了一個905x的專用調試軟件plxmon,我們可以從它的網(wǎng)站免費下載。plxmon包括以下功能:pci總線的探測與選擇;配置寄存器的檢查和修改;內存空間的顯示、修改和填充;eeprom內容的讀寫等。利用這個工具,我們可以很清楚地看到eeprom的內容以及pci配置寄存器和局部端配置寄存器的內容,另外,用戶還可以進行內存和i/o端口的讀寫。

此外,我們也可以用windriver或softice軟件進行板卡調試,但總的來說,使用起來都不如plxmon方便。有了開發(fā)工具,設計者就可以根據(jù)板卡的具體要求進行調試了。

4 驅動程序的編寫

板卡調試成功以后就可以編寫驅動程序了。目前,編寫驅動程序最常用的工具是vtoolsd和windriver,它們都是專門的驅動開發(fā)工具。尤其是windriver,開發(fā)人員不需要掌握windows驅動編程的知識,利用它的向導工具,能很快地開發(fā)出高質量的驅動程序。

在windows9x環(huán)境下,操作系統(tǒng)統(tǒng)一管理硬件資源,出于安全性考慮,ring3層應用程序不能直接訪問硬件(i/o端口訪問除外),因此,必須編寫運行在ring0層的虛擬設備驅動程序(vxd)來響應系統(tǒng)底層的中斷。如果板卡只有i/o操作,而沒有用到中斷和內存操作,可以不用編寫驅動程序,直接在應用程序里實現(xiàn)輸入輸出就可以了。編程的方法是先找到板卡,再找到卡中與我們用到的局部空間相對應的pci基地址,然后就可以根據(jù)要求對這個基地址進行操作了。如果在windows98以上版本的操作系統(tǒng)下,就要編寫wdm設備驅動程序了。

5 結束語

由于pci總線數(shù)據(jù)吞吐量大,傳輸速率高,在微機接口設計中,基于pci總線的設計成為主流。pci9052是一款優(yōu)秀的pci接口芯片,設計者用它可避免直接面對復雜的pci總線協(xié)議,降低了設計難度,從而使用戶可以集中精力解決具體的應用問題,縮短了開發(fā)周期。實踐證明,pci9052為開發(fā)作為總線接口目標設備的產品,特別是對基于isa總線的接口板向pci的轉換提供了極大的方便。



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉