PCI總線(xiàn)接口芯片PCI 9052及其應用
引言
pci(peripheral compornent interconnect,即外圍部件互連)總線(xiàn)是一種先進(jìn)的高性能32/64位地址數據復用局部總線(xiàn),該總線(xiàn)是以intel為首的多家集團設計的,pci總線(xiàn)可以同時(shí)支持多組外圍設備,且處理器和時(shí)鐘頻率無(wú)關(guān),可以提供高達132mb/s的數據傳送速率,pci總線(xiàn)具有嚴格的規范,只要符合pci規范的擴展卡,那么,插入任何pci系統就能可靠地工作,是當今pc領(lǐng)域中流行的總線(xiàn)。
本文引用地址:http://dyxdggzs.com/article/21374.htmpci總線(xiàn)協(xié)議非常復雜,目前實(shí)現pci接口的有效方案分為兩種:即使用可編程邏輯器件和使用專(zhuān)用總線(xiàn)接口的器件,可編程邏輯器件實(shí)現pci接口比較靈活,可以利用的器件比較多,現在有許多生產(chǎn)可編程邏輯器件的廠(chǎng)商(如xilinx的logicore和alerra的ampp)都提供經(jīng)過(guò)嚴格測試的pci接口功能模塊,用戶(hù)只要進(jìn)行組合設計即可,但這種方法難度較大,設計周期較長(cháng)。而采用專(zhuān)用接口器件實(shí)現完整的pci主控模塊和目標模塊的功能,則可將復雜的pci總線(xiàn)接口轉換為相對簡(jiǎn)單的用戶(hù)接口,用戶(hù)只要設計轉換后的總線(xiàn)接口即可。但這種方法難度較大,設計周期較長(cháng),而采用專(zhuān)用接口器件實(shí)現完整的pci主控模塊和目標模塊的功能,則可將復雜的pci總線(xiàn)接口轉換為相對簡(jiǎn)單的用戶(hù)接口,用戶(hù)只要設計轉換后的總線(xiàn)接口即可。雖然這種方式不夠靈活,但由于其對pci協(xié)議的良好支持,以及提供給設計者的良好接口,都大大減少了設計開(kāi)發(fā)的難度和周期,現有的pci接口芯片主要有amc公司的amccs59xx系列和plx公司的pci9805x系列。plx公司的pci9052就是一款較常用的總線(xiàn)接口芯片。
pci9052芯片介紹
pci9052是plx技術(shù)公司繼pci9050之后推出的低成本、低功耗、高性能總線(xiàn)接口芯片,通過(guò)該芯片可以使多種局部總線(xiàn)快速轉換到pci總線(xiàn)上。
◇ 主要特點(diǎn)
(1)兼容pci v2.1協(xié)議特性。pci9052芯片與pci協(xié)議v2.1版兼容,可支持低成本的從模式適配設備,也支持從isa適配卡向pci適配卡的轉換。
(2)采用直接從(目標)模式傳送數據。支持突發(fā)存儲器映射和i/o映射方式,可從pci總線(xiàn)到局部總線(xiàn)上存取數據。讀寫(xiě)fifo(先入先出)寄存器使得局部總線(xiàn)和pci總線(xiàn)具有高性能的突發(fā)方式,pci總線(xiàn)總是工作在突發(fā)方式,但是局部總線(xiàn)可以設置成突發(fā)方式或者連續單周期方式。
(3)帶有中斷發(fā)生器,可以從兩個(gè)局部總線(xiàn)中斷輸入中生成一個(gè)pci中斷。
(4)pci9052局部總線(xiàn)接口運行于ttl時(shí)鐘,并可生成必要的內部時(shí)鐘,局部ttl時(shí)鐘與pci時(shí)鐘異步工作,并允許局部總線(xiàn)獨立于pci時(shí)鐘工作,其緩沖pci總線(xiàn)時(shí)鐘(bclko)可與局部總線(xiàn)時(shí)鐘(lclk)相連。
(5)pci9052局部總線(xiàn)配置可編程。支持復用或非復用的8/16/32bit局部總線(xiàn),芯片有4字節使能(lbe [3:0]#)、26根地址線(xiàn)(la[27:2])和32/16/8bit數據線(xiàn)(lad[31:0])。
(6)支持先讀模式、即預取數據可從pci9052內部的fifo寄存器讀取,用以代替局部總線(xiàn),但地址必須是前一條地址的后續地址,且應為32位寬度(下一地址=當前地址+4)。
(7)所有控制、地址和數據信號都可由pci9052直接生成,用于驅動(dòng)pci和局部總線(xiàn),而無(wú)需額外驅動(dòng)電路。
(8)帶有串行eeprom接口,可用于加載配置信息,這對于裝載一個(gè)特定的適配設備信息(網(wǎng)絡(luò )節點(diǎn)號、廠(chǎng)商類(lèi)型碼和片選等)是很有用的。特別是將pci9052轉換為isa接口模式時(shí),串行eeprom是必需的。
(9)提供了四個(gè)局部片選信號,其基地址和每一個(gè)片選的范圍可由串行eeprom配置,也可由主控制器在線(xiàn)編程。
(10)具有五個(gè)局部地址空間,基地址和每一個(gè)局部地址空間的范圍可由串行eeprom配置或由主控制器在線(xiàn)編程。
(11)支持big endian和little endian字節間的轉換。當局部總線(xiàn)是16位寬度或8位寬度時(shí),pci9052同時(shí)支持big endian字節模式轉換為字或字節寬度。
(12)為了匹配以前的接口讀/寫(xiě)(rd#/wr#)信號,可以從時(shí)鐘周期的開(kāi)始延時(shí)(例如isa總線(xiàn)接口)。
(13)附加的lrdyi#(local ready input)握手信號可用于產(chǎn)生各種等待狀態(tài),pci9052內有等待狀態(tài)發(fā)生器(讀/寫(xiě)地址到數據、數據到數據和數據到地址之間)。
(14)局部總線(xiàn)預鎖存計數器可以編程為(無(wú)預鎖存)4、8、16或連續值(預鎖存計數器關(guān)閉)模式,如果使用了連續地址(必須是32位),則預鎖存數據可以作為緩沖數據來(lái)使用。
(15)pci9052兼容pci v2.1協(xié)議延時(shí)讀的4種模式,即pci讀和寫(xiě)刷新模式、pci讀無(wú)刷新模式、pci讀無(wú)寫(xiě)模式和pci寫(xiě)模式。
(16)帶有一個(gè)可編程pci讀寫(xiě)重試延遲計時(shí)器,可以為pci總線(xiàn)產(chǎn)生一個(gè)重試信號。
(17)帶有isa邏輯接口模式,支持pci總線(xiàn)到isa總線(xiàn)的單周期存儲器(8位或16位)讀寫(xiě)和i/o訪(fǎng)問(wèn)。
(18)支持pci目標鎖定機制,pci主控設備可以通過(guò)鎖定信號獨占對pci9052的訪(fǎng)問(wèn)。
(19)pci總線(xiàn)傳輸速率達132mb/s。
◇ 結構組成
圖1所示是由pci總線(xiàn)接口芯片、局部總線(xiàn)接口和串行總線(xiàn)接口組成的接口電路。

◇ 器件功能
pci9052作為總線(xiàn)目標接口芯片,可為非pci設備與pci總線(xiàn)提供數據通道,pci9052的主要功能如下:
(1)初始化
上電時(shí),pci9052的內部寄存器將由pci總線(xiàn)的rst信號復位成默認值,并在局部總線(xiàn)上輸出lreset信號,以檢驗串行eeprom,如果安裝了串行eeprom且第一個(gè)16位字不全為1,則pci9052用串行eeprom中的值來(lái)配置片內寄存器,否則使用缺省值。
(2)復位
當pci總線(xiàn)輸入復位信號時(shí),pci總線(xiàn)全部輸出呈高阻態(tài),此時(shí)pci9052整體復位并輸出lreset信號,pci總線(xiàn)上的主控設備也可以通過(guò)軟件設置雜項控制寄存器(cntrl:50h)的第30位為1,來(lái)使pci9052復位并輸出lreset信號,此時(shí)pci和局部配置寄存器的值不變,pci9052將一直保持復位狀態(tài),而且此時(shí)主設備只能訪(fǎng)問(wèn)配置寄存器,而不能訪(fǎng)問(wèn)局部總線(xiàn)。當cntrl[30]=0時(shí),系統將清除pci9052的復位狀態(tài)。
(3)串行eeprom
復位后,pci9052將檢查串行eeprom是否存在,一個(gè)有效的低電平start位表示串行eeprom存在,start位為1表示串行eeprom不存在,串行eeprom的第一個(gè)字如不全為“1”,pci9052便可用它進(jìn)行配置,而如果串行eeprom不存在或為空,pci9052則采用缺省值配置,pci9052總線(xiàn)上的主機可以對串行eeprom進(jìn)行讀寫(xiě),雜項控制寄存器(cntrl:50h)的[29:24]位控制著(zhù)pci9052對串行eeprom的位進(jìn)行讀寫(xiě),將雜項控制寄存器位cntrl[29]置1可以用串行eeprom重新配置pci9052。
(4)內部寄存器訪(fǎng)問(wèn)
pci9052的內部寄存器為總線(xiàn)接口的設計與實(shí)現提供了最大的靈活性,這些寄存器可以分為兩類(lèi):pci配置寄存器和局部配置寄存器,兩類(lèi)都可以通過(guò)pci總線(xiàn)或串行eeprom來(lái)配置。
(5)直接數據傳輸模式
pci總線(xiàn)上的主設備能直接訪(fǎng)問(wèn)局部總線(xiàn)上的從設備。pci9052內部的配置寄存器可譯碼和映射這些要訪(fǎng)問(wèn)的局部地址空間,讀寫(xiě)先入先出寄存器可支持pci和局部總線(xiàn)之間的高性能突發(fā)傳輸方式。
(6)pci中斷(inta)
通過(guò)局部中斷輸入(lintil和linti2)或軟件中斷(cntrl寄存器30位)可以產(chǎn)生一個(gè)pci中斷(inta)通過(guò)pci9052中斷控制/狀態(tài)寄存器可以禁止或使能某種中斷,pci9052中斷控制/狀態(tài)寄存器同時(shí)可提供各個(gè)中斷的狀態(tài)指示。
(7)局部中斷(linti[2:1])
pci9052提供有2個(gè)局部中斷輸入(linti[2:1],通過(guò)寄存器int[2:1]),通過(guò)寄存器intcsr;4ch可將局部中斷設置成沿觸發(fā)或電平觸發(fā)方式,局部中斷能產(chǎn)生pci中斷。
(8)系統出錯
如果pci命令寄存器中的使能奇偶校驗位,檢測到一個(gè)地址奇偶校驗出錯時(shí),pci9052將產(chǎn)生一個(gè)serr信號。
pci9052的應用
pci9052接口芯片作為通用pci接口,其應用場(chǎng)合和范圍是非常廣泛的。隨著(zhù)pc機的發(fā)展,pci擴展槽已成為pc機主板的基本配置,而帶isa擴展槽的pc機已經(jīng)越來(lái)越少,isa擴展槽在pc機中徹底地消失的日子即將到來(lái),在作者所在公司設計生產(chǎn)的火災報警控制系統中原有的actnet網(wǎng)絡(luò )接口卡是基于isa總線(xiàn)的插件,現在則要利用pci9052芯片的isa模式來(lái)對原來(lái)的板卡進(jìn)行升級改造,以使原來(lái)的板卡在做少量改動(dòng)的情況下可以插在pci總線(xiàn)插槽中正常工作。
這種pci插卡的借口示意圖如圖2所示,它主要由一片pci9052、arcnet網(wǎng)絡(luò )控制器以及一些外圍器件構成。

pci9052的內部結構中包含了一個(gè)獨立的isa邏輯接口,用于為isa總線(xiàn)到pci總線(xiàn)提供一種簡(jiǎn)單的轉換。它支持8位和16位數據寬度的isa從設備,也可以是內存映射或i/o映射。同時(shí)可直接從先讀模式來(lái)提高讀取數據的吞吐量,一旦isa接口模式被使能,pci9052將只執行單個(gè)周期操作,應當特別注意的是,isa接口模式下,串行eeprom是必需的。
具體設計時(shí),可以使用兩種方法配置pci9052以用于isa接口模式:一是燒寫(xiě)串行eeprom方法,即使用燒寫(xiě)器將數據寫(xiě)入串行eeprom;二是熱配置方法,也就是從pci總線(xiàn)通過(guò)pci9052芯片來(lái)燒寫(xiě)串行eeprom。
配置注意事項
當為isa接口模式進(jìn)行配置時(shí),必須注意以下幾點(diǎn):
(1)存取isa接口引腳時(shí),要參照pci9052引腳的c/isa模式引腳圖來(lái)連線(xiàn)。
(2)空間0分配給isa接口的內存存取。
(3)空間1分配給isa接口的i/o存取。
(4)無(wú)論在空間0還是在空間1,isa訪(fǎng)問(wèn)都是有效的。
(5)標準從周期能夠用于訪(fǎng)問(wèn)空間2、空間3和串行eeprom。
在設計電路板時(shí),要嚴格遵循pci規范,電源和地線(xiàn)要盡可能寬且電源濾波要良好,在芯片的每個(gè)電源引腳,最好接0.01-0.1μf的濾波電容,一般來(lái)說(shuō),pci編碼推薦做4層板,其實(shí)只要布線(xiàn)合理,做兩層板也是可以的,在連線(xiàn)時(shí),要注意pci規范中提到的反射波信號,由于驅動(dòng)信號的一半要靠反射波來(lái)提升,所以對信號線(xiàn)的長(cháng)度要求為:64位卡的32位信號具備的最大連線(xiàn)長(cháng)度是1500mil,64位擴展信號的附加信號的連線(xiàn)長(cháng)度為2000mil,pci的clk長(cháng)度2500mil±100mil,這些條件一定要嚴格遵守,尤其是clk信號線(xiàn)長(cháng)度的要保證在要求的范圍內,否則,pci插件工作將不正常,并會(huì )出一些怪現象,另外,pci卡上最好在從槽上引的電源上多加幾個(gè)電容,所有電源都必須退藕。用作上拉或下拉的電阻一般取值2.2kω即可。
還有一個(gè)要注意的是,pci信號中prsnt1和prsnt2必須至少有一個(gè)接地,否則,系統肯定找不到卡,主板就是靠這兩個(gè)信號來(lái)判斷這個(gè)插槽上是否有卡,而其接法同pci卡使用的功率有關(guān),具體的含義如下(open表示懸空,ground表示接地):
prsnt1 prsnt2 含義
open open no card
ground open 25w
oben ground 15w
ground ground 7.5w
最后,由于pci9052沒(méi)有提供符合工業(yè)標準ieee 1149.1邊界掃描接口,pci規范中涉及到的5個(gè)邊界掃描信號中的trst、tck、tms要懸空、tdi和tdo在板上要短接,以免掃描鏈被打斷。
結束語(yǔ)
實(shí)踐證明,pci9052是一款優(yōu)秀的pci接口芯片,該芯片對基于isa總線(xiàn)的接口向pci的轉換提供了極大的方便,設計者用它可避免直接面對復雜的pci總線(xiàn)協(xié)議。因為,用pci9052開(kāi)發(fā)的產(chǎn)品,可減少外圍器件,降低了開(kāi)發(fā)難度,同時(shí)也縮短了開(kāi)發(fā)周期,延長(cháng)了產(chǎn)品的生命期。
評論