新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PCI總線技術概論

        PCI總線技術概論

        作者: 時間:2012-12-10 來源:網絡 收藏


        從數據寬度上看,PCI總線有32bit、64bit之分;從上分,有33MHz、66MHz兩種。目前流行的是32bit @ 33MHz,而64bit系統正在普及中。改良的PCI系統,PCI-X,最高可以達到64bit @ 133MHz,這樣就可以得到超過1GB/s的數據傳輸速率。如果沒有特殊說明,以下的討論以32bit @ 33MHz為例。

        一、基本概念

        不同于,PCI總線的地址總線與數據總線是分時復用的。這樣做的好處是,一方面可以節省接插件的管腳數,另一方面便于實現突發數據傳輸。在做數據傳輸時,由一個PCI設備做發起者(主控,Initiator或Master),而另一個PCI設備做目標(從設備,Target或Slave)。總線上的所有時序的產生與控制,都由Master來發起。PCI總線在同一時刻只能供一對設備完成傳輸,這就要求有一個仲裁機構(Arbiter),來決定在誰有權力拿到總線的主控權。

        32bit PCI系統的管腳按功能來分有以下幾類:

        系統控制: CLK,PCI時鐘,上升沿有效
        RST ,Reset信號
        傳輸控制: FRAME#,標志傳輸開始與結束
        IRDY#,Master可以傳輸數據的標志
        DEVSEL#,當Slave發現自己被尋址時置低應答
        TRDY#,Slave可以轉輸數據的標志
        STOP#,Slave主動結束傳輸數據的信號
        IDSEL,在即插即用系統啟動時用于選中板卡的信號
        地址與數據總線: AD[31::0],地址/數據分時復用總線
        C/BE#[3::0],命今/字節使能信號
        PAR,奇偶校驗信號
        仲裁號: REQ#,Master用來請求總線使用權的信號
        GNT#,Arbiter允許Master得到總線使用權的信號
        錯誤報告: PERR#,數據奇偶校驗錯
        SERR#,系統奇偶校驗錯



        當PCI總線進行操作時,發起者(Master)先置REQ#,當得到仲裁器(Arbiter)的許可時(GNT#),會將FRAME#置低,并在AD總線上放置Slave地址,同時C/BE#放置命令信號,說明接下來的傳輸類型。所有PCI總線上設備都需對此地址譯碼,被選中的設備要置DEVSEL#以聲明自己被選中。然后當IRDY#與TRDY#都置低時,可以傳輸數據。當Master數據傳輸結束前,將FRAME#置高以標明只剩最后一組數據要傳輸,并在傳完數據后放開IRDY#以釋放總線控制權。

        這里我們可以看出,PCI總線的傳輸是很高效的,發出一組地址后,理想狀態下可以連續發數據,峰值速率為132MB/s。實際上,目前流行的33M@32bit北橋芯片一般可以做到100MB/s的連續傳輸。

        二、即插即用的實現

        所謂即插即用,是指當板卡插入系統時,系統會自動對板卡所需資源進行分配,如基地址、中斷號等,并自動尋找相應的驅動程序。而不象舊的ISA板卡,需要進行復雜的手動配置。

        實際的實現遠比說起來要復雜。在PCI板卡中,有一組寄存器,叫"配置空間"(Configuration Space),用來存放基地址與內存地址,以及中斷等信息。

        以內存地址為例。當上電時,板卡從ROM里讀取固定的值放到寄存器中,對應內存的地方放置的是需要分配的內存字節數等信息。操作系統要跟據這個信息分配內存,并在分配成功后把相應的寄存器中填入內存的起始地址。這樣就不必手工設置開關來分配內存或基地址了。對于中斷的分配也與此類似。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 马山县| 香河县| 晋江市| 铁力市| 灵璧县| 襄汾县| 潮安县| 于都县| 金平| 江山市| 重庆市| 镇坪县| 文水县| 三门峡市| 朝阳区| 寻乌县| 仙桃市| 随州市| 永春县| 六安市| 昌黎县| 大名县| 诸暨市| 栾城县| 湘西| 瑞丽市| 广宁县| 淮安市| 军事| 大连市| 阿合奇县| 温宿县| 建始县| 营口市| 巧家县| 鄂伦春自治旗| 浮梁县| 霍城县| 大厂| 睢宁县| 宾阳县|