新聞中心

        PCI總線概述

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

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

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

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

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

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



        關(guān)鍵詞: PCI總線概

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 固镇县| 宣化县| 杭锦旗| 洛隆县| 凌海市| 那坡县| 开封县| 新绛县| 荔波县| 平湖市| 普洱| 日喀则市| 长沙县| 西丰县| 剑河县| 成安县| 信宜市| 和政县| 南陵县| 彭山县| 平罗县| 成安县| 旌德县| 汝州市| 远安县| 遂宁市| 大方县| 札达县| 西昌市| 万盛区| 岑巩县| 韶山市| 双牌县| 平湖市| 富裕县| 临泽县| 靖西县| 桦甸市| 定边县| 南通市| 陇南市|