PCI總線(xiàn)概述
經(jīng)過(guò)幾年的發(fā)展,PCI總線(xiàn)以其優(yōu)越的電性能獲得了業(yè)界的一致認可。同時(shí)利用PCI總線(xiàn)的電性能,結合不同的機械結構,產(chǎn)生了各種各樣的總線(xiàn)。在此做一簡(jiǎn)要介紹:
CPCI總線(xiàn):將PCI總線(xiàn)與歐規卡的機械結構相結合,具有抗振性能好、高可用性等優(yōu)點(diǎn),而且可以支持熱插拔(Hot Swap)、后走線(xiàn)(Rear IO),目前在電信、軍工、交通等領(lǐng)域正在得到廣泛的應用。
PXI總線(xiàn):在CPCI基礎上加入同步時(shí)鐘、觸發(fā)等量測專(zhuān)用總線(xiàn),在測量、控制領(lǐng)域正得到越來(lái)越多的應用。
PC104 Plus總線(xiàn):將PCI總線(xiàn)與PC104板的機械結構相結合,具有效率高、維護量少、體積小型等特點(diǎn),在各種嵌入式應用中很受歡迎。
另外還有筆記本電腦常用的PCMCIA總線(xiàn)、電信行業(yè)中最近配合CPCI使用的PMC等等,電特性都是PCI總線(xiàn)。
從1992年創(chuàng )立規范到如今,PCI總線(xiàn)已成為了事實(shí)上計算機的標準總線(xiàn)。由PCI總線(xiàn)構成的標準系統結構如圖一所示。

PCI總線(xiàn)漸漸地取代了ISA總線(xiàn)。它有許多優(yōu)點(diǎn),比如即插即用(Plug and Play)、中斷共享等。在這里我們對PCI總線(xiàn)做一個(gè)深入的介紹。
從數據寬度上看,PCI總線(xiàn)有32bit、64bit之分;從總線(xiàn)速度上分,有33MHz、66MHz兩種。目前流行的是32bit @ 33MHz,而64bit系統正在普及中。改良的PCI系統,PCI-X,最高可以達到64bit @ 133MHz,這樣就可以得到超過(guò)1GB/s的數據傳輸速率。如果沒(méi)有特殊說(shuō)明,以下的討論以32bit @ 33MHz為例。
一、基本概念
不同于ISA總線(xiàn),PCI總線(xiàn)的地址總線(xiàn)與數據總線(xiàn)是分時(shí)復用的。這樣做的好處是,一方面可以節省接插件的管腳數,另一方面便于實(shí)現突發(fā)數據傳輸。在做數據傳輸時(shí),由一個(gè)PCI設備做發(fā)起者(主控,Initiator或Master),而另一個(gè)PCI設備做目標(從設備,Target或Slave)??偩€(xiàn)上的所有時(shí)序的產(chǎn)生與控制,都由Master來(lái)發(fā)起。PCI總線(xiàn)在同一時(shí)刻只能供一對設備完成傳輸,這就要求有一個(gè)仲裁機構(Arbiter),來(lái)決定在誰(shuí)有權力拿到總線(xiàn)的主控權。
32bit PCI系統的管腳按功能來(lái)分有以下幾類(lèi):
系統控制: CLK,PCI時(shí)鐘,上升沿有效
RST ,Reset信號
傳輸控制: FRAME#,標志傳輸開(kāi)始與結束
IRDY#,Master可以傳輸數據的標志
DEVSEL#,當Slave發(fā)現自己被尋址時(shí)置低應答
TRDY#,Slave可以轉輸數據的標志
STOP#,Slave主動(dòng)結束傳輸數據的信號
IDSEL,在即插即用系統啟動(dòng)時(shí)用于選中板卡的信號
地址與數據總線(xiàn): AD[31::0],地址/數據分時(shí)復用總線(xiàn)
C/BE#[3::0],命今/字節使能信號
PAR,奇偶校驗信號
仲裁號: REQ#,Master用來(lái)請求總線(xiàn)使用權的信號
GNT#,Arbiter允許Master得到總線(xiàn)使用權的信號
錯誤報告: PERR#,數據奇偶校驗錯
SERR#,系統奇偶校驗錯

當PCI總線(xiàn)進(jìn)行操作時(shí),發(fā)起者(Master)先置REQ#,當得到仲裁器(Arbiter)的許可時(shí)(GNT#),會(huì )將FRAME#置低,并在A(yíng)D總線(xiàn)上放置Slave地址,同時(shí)C/BE#放置命令信號,說(shuō)明接下來(lái)的傳輸類(lèi)型。所有PCI總線(xiàn)上設備都需對此地址譯碼,被選中的設備要置DEVSEL#以聲明自己被選中。然后當IRDY#與TRDY#都置低時(shí),可以傳輸數據。當Master數據傳輸結束前,將FRAME#置高以標明只剩最后一組數據要傳輸,并在傳完數據后放開(kāi)IRDY#以釋放總線(xiàn)控制權。
這里我們可以看出,PCI總線(xiàn)的傳輸是很高效的,發(fā)出一組地址后,理想狀態(tài)下可以連續發(fā)數據,峰值速率為132MB/s。實(shí)際上,目前流行的33M@32bit北橋芯片一般可以做到100MB/s的連續傳輸。
二、即插即用的實(shí)現
所謂即插即用,是指當板卡插入系統時(shí),系統會(huì )自動(dòng)對板卡所需資源進(jìn)行分配,如基地址、中斷號等,并自動(dòng)尋找相應的驅動(dòng)程序。而不象舊的ISA板卡,需要進(jìn)行復雜的手動(dòng)配置。
實(shí)際的實(shí)現遠比說(shuō)起來(lái)要復雜。在PCI板卡中,有一組寄存器,叫"配置空間"(Configuration Space),用來(lái)存放基地址與內存地址,以及中斷等信息。
以?xún)却娴刂窞槔?。當上電時(shí),板卡從ROM里讀取固定的值放到寄存器中,對應內存的地方放置的是需要分配的內存字節數等信息。操作系統要跟據這個(gè)信息分配內存,并在分配成功后把相應的寄存器中填入內存的起始地址。這樣就不必手工設置開(kāi)關(guān)來(lái)分配內存或基地址了。對于中斷的分配也與此類(lèi)似。

三、中斷共享的實(shí)現
ISA卡的一個(gè)重要局限在于中斷是獨占的,而我們知道計算機的中斷號只有16個(gè),系統又用掉了一些,這樣當有多塊ISA卡要用中斷時(shí)就會(huì )有問(wèn)題了。
PCI總線(xiàn)的中斷共享由硬件與軟件兩部分組成。
硬件上,采用電平觸發(fā)的辦法:中斷信號在系統一側用電阻接高,而要產(chǎn)生中斷的板卡上利用三極管的集電極將信號拉低。這樣不管有幾塊板產(chǎn)生中斷,中斷信號都是低;而只有當所有板卡的中斷都得到處理后,中斷信號才會(huì )回復高電平。(請參考圖四所示電路)

軟件上,采用中斷鏈的方法:假設系統啟動(dòng)時(shí),發(fā)現板卡A用了中斷7,就會(huì )將中斷7對應的內存區指向A卡對應的中斷服務(wù)程序入口ISR_A;然后系統發(fā)現板卡B也用中斷7,這時(shí)就會(huì )將中斷7對應的內存區指向ISR_B,同時(shí)將ISR_B的結束指向ISR_A。以此類(lèi)推,就會(huì )形成一個(gè)中斷鏈。而當有中斷發(fā)生時(shí),系統跳轉到中斷7對應的內存,也就是ISR_B。ISR_B就要檢查是不是B卡的中斷,如果是,要處理,并將板卡上的拉低電路放開(kāi);如果不是,則呼叫ISR_A。這樣就完成了中斷的共享。

通過(guò)以上討論,我們不難看出,PCI總線(xiàn)有著(zhù)極大的的優(yōu)勢。而近年來(lái)的市場(chǎng)情況也證實(shí)了這一點(diǎn)。凌華公司推出了從高端到低端全系統PCI總線(xiàn)數據采集卡,充分利用了PCI總線(xiàn)的這些優(yōu)點(diǎn),必將給您的工作帶來(lái)很大的便利。

評論