PCI總線接口芯片PCI 9052及其應(yīng)用
引言
pci(peripheral compornent interconnect,即外圍部件互連)總線是一種先進(jìn)的高性能32/64位地址數(shù)據(jù)復(fù)用局部總線,該總線是以intel為首的多家集團(tuán)設(shè)計(jì)的,pci總線可以同時(shí)支持多組外圍設(shè)備,且處理器和時(shí)鐘頻率無(wú)關(guān),可以提供高達(dá)132mb/s的數(shù)據(jù)傳送速率,pci總線具有嚴(yán)格的規(guī)范,只要符合pci規(guī)范的擴(kuò)展卡,那么,插入任何pci系統(tǒng)就能可靠地工作,是當(dāng)今pc領(lǐng)域中流行的總線。
本文引用地址:http://m.butianyuan.cn/article/21374.htmpci總線協(xié)議非常復(fù)雜,目前實(shí)現(xiàn)pci接口的有效方案分為兩種:即使用可編程邏輯器件和使用專(zhuān)用總線接口的器件,可編程邏輯器件實(shí)現(xiàn)pci接口比較靈活,可以利用的器件比較多,現(xiàn)在有許多生產(chǎn)可編程邏輯器件的廠商(如xilinx的logicore和alerra的ampp)都提供經(jīng)過(guò)嚴(yán)格測(cè)試的pci接口功能模塊,用戶只要進(jìn)行組合設(shè)計(jì)即可,但這種方法難度較大,設(shè)計(jì)周期較長(zhǎng)。而采用專(zhuān)用接口器件實(shí)現(xiàn)完整的pci主控模塊和目標(biāo)模塊的功能,則可將復(fù)雜的pci總線接口轉(zhuǎn)換為相對(duì)簡(jiǎn)單的用戶接口,用戶只要設(shè)計(jì)轉(zhuǎn)換后的總線接口即可。但這種方法難度較大,設(shè)計(jì)周期較長(zhǎng),而采用專(zhuān)用接口器件實(shí)現(xiàn)完整的pci主控模塊和目標(biāo)模塊的功能,則可將復(fù)雜的pci總線接口轉(zhuǎn)換為相對(duì)簡(jiǎn)單的用戶接口,用戶只要設(shè)計(jì)轉(zhuǎn)換后的總線接口即可。雖然這種方式不夠靈活,但由于其對(duì)pci協(xié)議的良好支持,以及提供給設(shè)計(jì)者的良好接口,都大大減少了設(shè)計(jì)開(kāi)發(fā)的難度和周期,現(xiàn)有的pci接口芯片主要有amc公司的amccs59xx系列和plx公司的pci9805x系列。plx公司的pci9052就是一款較常用的總線接口芯片。
pci9052芯片介紹
pci9052是plx技術(shù)公司繼pci9050之后推出的低成本、低功耗、高性能總線接口芯片,通過(guò)該芯片可以使多種局部總線快速轉(zhuǎn)換到pci總線上。
◇ 主要特點(diǎn)
(1)兼容pci v2.1協(xié)議特性。pci9052芯片與pci協(xié)議v2.1版兼容,可支持低成本的從模式適配設(shè)備,也支持從isa適配卡向pci適配卡的轉(zhuǎn)換。
(2)采用直接從(目標(biāo))模式傳送數(shù)據(jù)。支持突發(fā)存儲(chǔ)器映射和i/o映射方式,可從pci總線到局部總線上存取數(shù)據(jù)。讀寫(xiě)fifo(先入先出)寄存器使得局部總線和pci總線具有高性能的突發(fā)方式,pci總線總是工作在突發(fā)方式,但是局部總線可以設(shè)置成突發(fā)方式或者連續(xù)單周期方式。
(3)帶有中斷發(fā)生器,可以從兩個(gè)局部總線中斷輸入中生成一個(gè)pci中斷。
(4)pci9052局部總線接口運(yùn)行于ttl時(shí)鐘,并可生成必要的內(nèi)部時(shí)鐘,局部ttl時(shí)鐘與pci時(shí)鐘異步工作,并允許局部總線獨(dú)立于pci時(shí)鐘工作,其緩沖pci總線時(shí)鐘(bclko)可與局部總線時(shí)鐘(lclk)相連。
(5)pci9052局部總線配置可編程。支持復(fù)用或非復(fù)用的8/16/32bit局部總線,芯片有4字節(jié)使能(lbe [3:0]#)、26根地址線(la[27:2])和32/16/8bit數(shù)據(jù)線(lad[31:0])。
(6)支持先讀模式、即預(yù)取數(shù)據(jù)可從pci9052內(nèi)部的fifo寄存器讀取,用以代替局部總線,但地址必須是前一條地址的后續(xù)地址,且應(yīng)為32位寬度(下一地址=當(dāng)前地址+4)。
(7)所有控制、地址和數(shù)據(jù)信號(hào)都可由pci9052直接生成,用于驅(qū)動(dòng)pci和局部總線,而無(wú)需額外驅(qū)動(dòng)電路。
(8)帶有串行eeprom接口,可用于加載配置信息,這對(duì)于裝載一個(gè)特定的適配設(shè)備信息(網(wǎng)絡(luò)節(jié)點(diǎn)號(hào)、廠商類(lèi)型碼和片選等)是很有用的。特別是將pci9052轉(zhuǎn)換為isa接口模式時(shí),串行eeprom是必需的。
(9)提供了四個(gè)局部片選信號(hào),其基地址和每一個(gè)片選的范圍可由串行eeprom配置,也可由主控制器在線編程。
(10)具有五個(gè)局部地址空間,基地址和每一個(gè)局部地址空間的范圍可由串行eeprom配置或由主控制器在線編程。
(11)支持big endian和little endian字節(jié)間的轉(zhuǎn)換。當(dāng)局部總線是16位寬度或8位寬度時(shí),pci9052同時(shí)支持big endian字節(jié)模式轉(zhuǎn)換為字或字節(jié)寬度。
(12)為了匹配以前的接口讀/寫(xiě)(rd#/wr#)信號(hào),可以從時(shí)鐘周期的開(kāi)始延時(shí)(例如isa總線接口)。
(13)附加的lrdyi#(local ready input)握手信號(hào)可用于產(chǎn)生各種等待狀態(tài),pci9052內(nèi)有等待狀態(tài)發(fā)生器(讀/寫(xiě)地址到數(shù)據(jù)、數(shù)據(jù)到數(shù)據(jù)和數(shù)據(jù)到地址之間)。
(14)局部總線預(yù)鎖存計(jì)數(shù)器可以編程為(無(wú)預(yù)鎖存)4、8、16或連續(xù)值(預(yù)鎖存計(jì)數(shù)器關(guān)閉)模式,如果使用了連續(xù)地址(必須是32位),則預(yù)鎖存數(shù)據(jù)可以作為緩沖數(shù)據(jù)來(lái)使用。
(15)pci9052兼容pci v2.1協(xié)議延時(shí)讀的4種模式,即pci讀和寫(xiě)刷新模式、pci讀無(wú)刷新模式、pci讀無(wú)寫(xiě)模式和pci寫(xiě)模式。
(16)帶有一個(gè)可編程pci讀寫(xiě)重試延遲計(jì)時(shí)器,可以為pci總線產(chǎn)生一個(gè)重試信號(hào)。
(17)帶有isa邏輯接口模式,支持pci總線到isa總線的單周期存儲(chǔ)器(8位或16位)讀寫(xiě)和i/o訪問(wèn)。
(18)支持pci目標(biāo)鎖定機(jī)制,pci主控設(shè)備可以通過(guò)鎖定信號(hào)獨(dú)占對(duì)pci9052的訪問(wèn)。
(19)pci總線傳輸速率達(dá)132mb/s。
◇ 結(jié)構(gòu)組成
圖1所示是由pci總線接口芯片、局部總線接口和串行總線接口組成的接口電路。
◇ 器件功能
pci9052作為總線目標(biāo)接口芯片,可為非pci設(shè)備與pci總線提供數(shù)據(jù)通道,pci9052的主要功能如下:
(1)初始化
上電時(shí),pci9052的內(nèi)部寄存器將由pci總線的rst信號(hào)復(fù)位成默認(rèn)值,并在局部總線上輸出lreset信號(hào),以檢驗(yàn)串行eeprom,如果安裝了串行eeprom且第一個(gè)16位字不全為1,則pci9052用串行eeprom中的值來(lái)配置片內(nèi)寄存器,否則使用缺省值。
(2)復(fù)位
當(dāng)pci總線輸入復(fù)位信號(hào)時(shí),pci總線全部輸出呈高阻態(tài),此時(shí)pci9052整體復(fù)位并輸出lreset信號(hào),pci總線上的主控設(shè)備也可以通過(guò)軟件設(shè)置雜項(xiàng)控制寄存器(cntrl:50h)的第30位為1,來(lái)使pci9052復(fù)位并輸出lreset信號(hào),此時(shí)pci和局部配置寄存器的值不變,pci9052將一直保持復(fù)位狀態(tài),而且此時(shí)主設(shè)備只能訪問(wèn)配置寄存器,而不能訪問(wèn)局部總線。當(dāng)cntrl[30]=0時(shí),系統(tǒng)將清除pci9052的復(fù)位狀態(tài)。
(3)串行eeprom
復(fù)位后,pci9052將檢查串行eeprom是否存在,一個(gè)有效的低電平start位表示串行eeprom存在,start位為1表示串行eeprom不存在,串行eeprom的第一個(gè)字如不全為“1”,pci9052便可用它進(jìn)行配置,而如果串行eeprom不存在或?yàn)榭眨琾ci9052則采用缺省值配置,pci9052總線上的主機(jī)可以對(duì)串行eeprom進(jìn)行讀寫(xiě),雜項(xiàng)控制寄存器(cntrl:50h)的[29:24]位控制著pci9052對(duì)串行eeprom的位進(jìn)行讀寫(xiě),將雜項(xiàng)控制寄存器位cntrl[29]置1可以用串行eeprom重新配置pci9052。
(4)內(nèi)部寄存器訪問(wèn)
pci9052的內(nèi)部寄存器為總線接口的設(shè)計(jì)與實(shí)現(xiàn)提供了最大的靈活性,這些寄存器可以分為兩類(lèi):pci配置寄存器和局部配置寄存器,兩類(lèi)都可以通過(guò)pci總線或串行eeprom來(lái)配置。
(5)直接數(shù)據(jù)傳輸模式
pci總線上的主設(shè)備能直接訪問(wèn)局部總線上的從設(shè)備。pci9052內(nèi)部的配置寄存器可譯碼和映射這些要訪問(wèn)的局部地址空間,讀寫(xiě)先入先出寄存器可支持pci和局部總線之間的高性能突發(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可將局部中斷設(shè)置成沿觸發(fā)或電平觸發(fā)方式,局部中斷能產(chǎn)生pci中斷。
(8)系統(tǒng)出錯(cuò)
如果pci命令寄存器中的使能奇偶校驗(yàn)位,檢測(cè)到一個(gè)地址奇偶校驗(yàn)出錯(cuò)時(shí),pci9052將產(chǎn)生一個(gè)serr信號(hào)。
pci9052的應(yīng)用
pci9052接口芯片作為通用pci接口,其應(yīng)用場(chǎng)合和范圍是非常廣泛的。隨著pc機(jī)的發(fā)展,pci擴(kuò)展槽已成為pc機(jī)主板的基本配置,而帶isa擴(kuò)展槽的pc機(jī)已經(jīng)越來(lái)越少,isa擴(kuò)展槽在pc機(jī)中徹底地消失的日子即將到來(lái),在作者所在公司設(shè)計(jì)生產(chǎn)的火災(zāi)報(bào)警控制系統(tǒng)中原有的actnet網(wǎng)絡(luò)接口卡是基于isa總線的插件,現(xiàn)在則要利用pci9052芯片的isa模式來(lái)對(duì)原來(lái)的板卡進(jìn)行升級(jí)改造,以使原來(lái)的板卡在做少量改動(dòng)的情況下可以插在pci總線插槽中正常工作。
這種pci插卡的借口示意圖如圖2所示,它主要由一片pci9052、arcnet網(wǎng)絡(luò)控制器以及一些外圍器件構(gòu)成。
pci9052的內(nèi)部結(jié)構(gòu)中包含了一個(gè)獨(dú)立的isa邏輯接口,用于為isa總線到pci總線提供一種簡(jiǎn)單的轉(zhuǎn)換。它支持8位和16位數(shù)據(jù)寬度的isa從設(shè)備,也可以是內(nèi)存映射或i/o映射。同時(shí)可直接從先讀模式來(lái)提高讀取數(shù)據(jù)的吞吐量,一旦isa接口模式被使能,pci9052將只執(zhí)行單個(gè)周期操作,應(yīng)當(dāng)特別注意的是,isa接口模式下,串行eeprom是必需的。
具體設(shè)計(jì)時(shí),可以使用兩種方法配置pci9052以用于isa接口模式:一是燒寫(xiě)串行eeprom方法,即使用燒寫(xiě)器將數(shù)據(jù)寫(xiě)入串行eeprom;二是熱配置方法,也就是從pci總線通過(guò)pci9052芯片來(lái)燒寫(xiě)串行eeprom。
配置注意事項(xiàng)
當(dāng)為isa接口模式進(jìn)行配置時(shí),必須注意以下幾點(diǎn):
(1)存取isa接口引腳時(shí),要參照pci9052引腳的c/isa模式引腳圖來(lái)連線。
(2)空間0分配給isa接口的內(nèi)存存取。
(3)空間1分配給isa接口的i/o存取。
(4)無(wú)論在空間0還是在空間1,isa訪問(wèn)都是有效的。
(5)標(biāo)準(zhǔn)從周期能夠用于訪問(wèn)空間2、空間3和串行eeprom。
在設(shè)計(jì)電路板時(shí),要嚴(yán)格遵循pci規(guī)范,電源和地線要盡可能寬且電源濾波要良好,在芯片的每個(gè)電源引腳,最好接0.01-0.1μf的濾波電容,一般來(lái)說(shuō),pci編碼推薦做4層板,其實(shí)只要布線合理,做兩層板也是可以的,在連線時(shí),要注意pci規(guī)范中提到的反射波信號(hào),由于驅(qū)動(dòng)信號(hào)的一半要靠反射波來(lái)提升,所以對(duì)信號(hào)線的長(zhǎng)度要求為:64位卡的32位信號(hào)具備的最大連線長(zhǎng)度是1500mil,64位擴(kuò)展信號(hào)的附加信號(hào)的連線長(zhǎng)度為2000mil,pci的clk長(zhǎng)度2500mil±100mil,這些條件一定要嚴(yán)格遵守,尤其是clk信號(hào)線長(zhǎng)度的要保證在要求的范圍內(nèi),否則,pci插件工作將不正常,并會(huì)出一些怪現(xiàn)象,另外,pci卡上最好在從槽上引的電源上多加幾個(gè)電容,所有電源都必須退藕。用作上拉或下拉的電阻一般取值2.2kω即可。
還有一個(gè)要注意的是,pci信號(hào)中prsnt1和prsnt2必須至少有一個(gè)接地,否則,系統(tǒng)肯定找不到卡,主板就是靠這兩個(gè)信號(hào)來(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è)標(biāo)準(zhǔn)ieee 1149.1邊界掃描接口,pci規(guī)范中涉及到的5個(gè)邊界掃描信號(hào)中的trst、tck、tms要懸空、tdi和tdo在板上要短接,以免掃描鏈被打斷。
結(jié)束語(yǔ)
實(shí)踐證明,pci9052是一款優(yōu)秀的pci接口芯片,該芯片對(duì)基于isa總線的接口向pci的轉(zhuǎn)換提供了極大的方便,設(shè)計(jì)者用它可避免直接面對(duì)復(fù)雜的pci總線協(xié)議。因?yàn)?,用pci9052開(kāi)發(fā)的產(chǎn)品,可減少外圍器件,降低了開(kāi)發(fā)難度,同時(shí)也縮短了開(kāi)發(fā)周期,延長(zhǎng)了產(chǎn)品的生命期。
評(píng)論