單片機總線(xiàn)接口芯片及其ISA模式應用
引 言
本文引用地址:http://dyxdggzs.com/article/172047.htmPCI(Peripheral Component Interconnect)總線(xiàn),即外圍部件互連總線(xiàn),是一種先進(jìn)的高性能32/64位地址數據復用局部總線(xiàn)。PCI總線(xiàn)與處理器和時(shí)鐘頻率無(wú)關(guān),可以提供高達132MB/s的數據傳送速率;它具有嚴格的規范,只要符合PCI規范的擴展卡插入任何PCI系統就能可靠地工作。但由于PCI總線(xiàn)協(xié)議的復雜性,其接口的實(shí)現比VESA、ISA和MCA等總線(xiàn)要困難得多。
目前,開(kāi)發(fā)PCI接口設備有兩種方法:一種方法是采用可編程邏輯芯片,它的最大好處是比較靈活,用戶(hù)可以根據自己的需要開(kāi)發(fā)出適合于特定功能的芯片,而不必實(shí)現PCI的全部功能?,F在有許多生產(chǎn)可編程邏輯器件的廠(chǎng)商,如Xilinx的LogiCore和Altera的AMPP都提供經(jīng)過(guò)嚴格測試的PCI接口功能模塊,用戶(hù)只要進(jìn)行組合設計即可。另一種常用的方法是使用專(zhuān)用接口器件,通過(guò)專(zhuān)
用芯片可以實(shí)現完整的PCI主控模塊和目標模塊的功能,將復雜的PCI總線(xiàn)接口轉換為相對簡(jiǎn)單的用戶(hù)接口,用戶(hù)只要設計轉換后的總線(xiàn)接口即可。
專(zhuān)用接口芯片具有較低的成本和通用性,能夠有效降低接口設計的難度,縮短開(kāi)發(fā)時(shí)間?,F有的PCI接口芯片主要有AMCC公司的AMCCS59xx系列和PLX公司的PCI90xx系列。在PLX系列產(chǎn)品中,PCI9052是一款常用的PCI總線(xiàn)目標接口芯片,該芯片最大的特色是帶有一個(gè)ISA接口,通過(guò)它可以實(shí)現ISA總線(xiàn)到PCI總線(xiàn)的無(wú)縫連接,這為目前仍存在的ISA插件移植到PCI提供了極大的方便。
利用PCI9052的ISA模式進(jìn)行PCI的開(kāi)發(fā)可以簡(jiǎn)化設備開(kāi)發(fā)過(guò)程,但難度還是較大。設計者不僅要理解掌握手冊中的要點(diǎn),還要學(xué)習硬件設計和軟件設計的方法和過(guò)程。為了讓大家能夠系統地了解利用PCI9052的ISA模式進(jìn)行PCI板卡開(kāi)發(fā)的過(guò)程和方法,本文從硬件設計、配置寄存器的編寫(xiě)、板卡調試和驅動(dòng)程序的編寫(xiě)等方面介紹了PCI9052的開(kāi)發(fā)過(guò)程。
2 PCI9052的ISA接口模式
2.1 基本特點(diǎn)
PCI9052是PLX公司繼PCI9050之后推出的低成本PCI總線(xiàn)接口芯片,它符合PCI2.1規范,可作為PCI總線(xiàn)目標設備實(shí)現基本的傳送要求;它有5個(gè)局部地址空間和4個(gè)局部設備片選信號,局部總線(xiàn)與PCI總線(xiàn)時(shí)鐘相互獨立運行。通過(guò)配置EEPROM的內容可以將PCI9052設定為ISA接口模式,通過(guò)8位或16位內存或I/O映射可直接使PCI總線(xiàn)與ISA總線(xiàn)相連,從而將ISA總線(xiàn)快速地轉換到PCI總線(xiàn)上。
在我們的數控測井系統中,原來(lái)的通信控制模塊是基于ISA總線(xiàn)的插件,端口地址為0X100~0X10F,總線(xiàn)寬度是16位,可以實(shí)現輸入輸出,有中斷功能?,F在,我們利用PCI9052芯片的ISA模式對原來(lái)的板卡進(jìn)行升級改造,使原來(lái)的板卡在做少量改動(dòng)的情況下可以插在PCI總線(xiàn)插槽中正常工作。
2.2 引腳介紹及連接
在不同的模式下,PCI9052的部分引腳有不同的定義和功能。工作在ISA模式下,其主要引腳如圖1所示。
PCI9052硬件連接正確與否直接關(guān)系到芯片能否正常工作,某些引腳處理不當往往會(huì )引起芯片工作不正?;蛩罊C。在圖1中,9052左上方的信號和PCI信號相連,左下方信號和串行EEPROM相連,右邊的信號和局部總線(xiàn)信號相連,也就是和ISA總線(xiàn)信號相連。
PCI端主要信號完全符合PCI規范要求,直接和PCI總線(xiàn)上對應的引腳相連即可。 ISA端連接如下:在我們的板卡中由于只涉及到I/O,且為16位寬的數據,因此,MEMWR#、MEMRD#、SBHE#和BALE信號可以不用。
LAD〔15:0〕是16位的數據總線(xiàn)。LA〔23:2〕和ISAA〔1:0〕共同組成ISA的地址總線(xiàn),對于8位的數據總線(xiàn),ISAA〔1:0〕相當于LA〔1:0〕,它們一起進(jìn)行地址譯碼。而對于16位的數據線(xiàn),每次讀寫(xiě)兩個(gè)字節,這時(shí)ISAA〔0〕不用,ISAA〔1〕和LA〔23:2〕一起進(jìn)行地址譯碼。需要注意的是,并不是所有的地址線(xiàn)都要進(jìn)行地址譯碼,這里要根據板卡上實(shí)際I/O口空間的大小選擇譯碼地址線(xiàn)的數目。對于我們的板卡,LA〔3:2〕和ISAA〔1〕地址譯碼是必需的(ISAA〔1〕為低位),當然,所有的地址線(xiàn)都參加地址譯碼也是可以的。
IOWR#和IOWD#是局部端口讀寫(xiě)信號。LCLK是ISA端時(shí)鐘信號,按芯片要求外接8MHz的時(shí)鐘。LRESET#是9052芯片上電時(shí)PCI端復位后所發(fā)出的對ISA端進(jìn)行復位的信號。在ISA模式下,該信號輸出高有效。
LINTi1和LINTi2是局部總線(xiàn)中斷輸入信號,這里,我們只
用到LINTi1信號,由于9052內部沒(méi)有對這兩個(gè)信號進(jìn)行上拉或下拉處理,因此,在外部將LINTi2上拉或下拉到一個(gè)確定的狀態(tài)。
NOWS#是無(wú)等待標志信號,此引腳上拉或接地可以減少等待的時(shí)鐘數。LRDY#是局部準備就緒信號,如果局部芯片沒(méi)有提供該信號,一般對它進(jìn)行下拉或接地處理。CHRDY是局部通道準備好信號,一般要進(jìn)行上拉處理。LHOLD是局部總線(xiàn)請求信號,應該進(jìn)行下拉或接地處理。MODE是模式選擇信號,由于我們使用的是ISA非復用模式,因此該引腳接地。
在設計電路板時(shí),要嚴格遵循PCI規范。電源和地線(xiàn)要盡可能寬且電源濾波要良好,在芯片的每個(gè)電源引腳最好接0.1μF的濾波電容。由于PCI時(shí)鐘信號的一半要靠反射波來(lái)提升,因此,時(shí)鐘信號CLK走線(xiàn)長(cháng)度近似為2500 mil。prstn1和prstn2兩者必須有一個(gè)接地,主板就是靠這兩個(gè)信號來(lái)判斷這個(gè)插槽上是否有卡的。用作上拉或下拉的電阻一般取值2.2 k歐姆即可。一般來(lái)說(shuō),PCI板卡推薦做4層板,其實(shí)只要布線(xiàn)合理做兩層板也是可以的。
串行EEPROM端信號有以下幾種:時(shí)鐘信號(EECK)、讀數據信號(EEDO)、寫(xiě)數據信號(EEDI)和片選信號(EESC),分別和EEPROM相應管腳相連即可。
評論