摘 要:PCI總線由主橋管理整個總線,目前基于對現有的PCI總線的繼承和發展衍生出PCI-X總線和PCI-E總線規范,其中PCI總線控制器已應用于多種嵌入式系統。采用PCI9056的PCI總線設計,可以實現基本的PCI總線設計要求,其寄存器初始化可以通過局部總線一側的CPU進行,也可由存入E2PROM的內部參數自動裝入。
關鍵詞:PCI總線;PCI-X總線;PCI-E總線;主橋;適配器;寄存器;主設備
中圖分類號:TP336 文獻標識碼:A
文章編號:1004-373X(2008)10-085-03
Application Design and Study of PCI Bus
JIA Zhen,LIN Qing
(Aeronautical Computing Technique Research Institute,Xi′an,710068,China)
Abstract:PCI bus is managed by host/PCI bridge,PCI-X and PCI-E are derived from it.PCI system has popular application in many embedded systems.Basic functions can be met with the PCI9056.The registers initialization can be done by CPU,or it can be loaded from E2PROM automatically.
Keywords:PCI bus;PCI-X bus;PCI-E bus;host bridge;adapter;register;master device
1 引 言
最早提出的PCI總線起源于微型計算機,現在已經成為計算機總線標準,其工作頻率為33 MHz,傳輸帶寬達到133 Mb/s(33 MHz×32 b/8),比ISA總線有了極大的改善,基本上滿足當時處理器的發展需要。隨著對更高性能的要求,1993年提出了64 b的PCI總線,后來又提出把PCI總線的頻率提升到66 MHz。目前廣泛采用的是32 b,33 MHz的PCI總線。PCI總線系統框圖見圖1。
圖1 PCI總線系統框圖
PCI局部總線設計的器件是針對PCI而不是針對特定的CPU處理器,獨立于處理器的升級。實現電流盡可能小、功耗低的系統。軟件透明,在和PCI設備之間通訊時,軟件驅動之間使用相同的命令集和狀態定義。介紹在嵌入式系統中設計實現PCI總線控制功能。
2 總線信號
PCI總線(Peripheral Component Interconnect) ,即外設部件互聯總線。圖2是PCI總線信號匯總:
圖2 PCI總線信號匯總
系統信號包括復位信號RST#和時鐘信號CLK。仲裁信號有總線申請REQ#和總線授權信號GNT#。接口控制信號包括主設備啟動PCI的FRAME#信號,主設備數據有效信號IRDY#和目標完成數據傳輸信號TRDY# 等。PCI沒有一般數據周期的讀寫信號,而是采用命令編碼形式定義PCI周期的讀寫屬性。每個PCI周期由主設備啟動,在第一個時鐘周期,AD[31..0]信號傳輸地址信息,C/BE#[3..0]形成控制命令,定義PCI周期。第二個時鐘后,AD[31..0]進行數據傳輸,C/BE#[3..0]標識字節有效信息。詳細情況可參閱PCI規范。
3 應用設計
目前有眾多的能支持PCI總線的控制芯片。在嵌入式系統中多采用美國PLX公司的PCI9056,該芯片使用簡單、功能完備。采用PCI9056實現總線控制功能的電路已應用于某型號戰術態勢處理機。在設計中通過PCI總線實現主機與外部I/O設備的高速數據傳輸,解決了信號的實時傳輸與處理的問題。其中,主機通過PCI總線與I/O控制單元進行數據傳輸,雙口RAM一端作為DSP目標存儲器,一端作為PCI總線接口的本地存儲器;DSP對數據進行處理后通過雙口RAM和PCI總線接口完成主機與DSP的數據握手;CPLD完成PCI總線對局部總線的訪問及控制。圖3為處理機系統硬件設計框圖。該態勢處理機經過長期的使用驗證,滿足系統要求,工作穩定可靠。
圖3 系統硬件設計
3.1 系統時鐘
PCI總線時鐘信號對各設備采樣時刻的偏差要求很高,即時鐘的偏斜(Skew)應盡可能小,最大的時鐘偏斜小于等于2 ns。最好整個PCI系統各設備采用同一時鐘。但同一時鐘的驅動能力有限,不可能同步驅動所有PCI設備。IDT公司的時鐘驅動器IDT74FCT3807可以將一個時鐘源轉換為10個等同的時鐘,各時鐘之間的偏斜小于等于350 ps。圖4是PCI時鐘解決方案。
圖4 時鐘信號設計
在PCI底板上,要求PCI各設備時鐘信號采用等長線進行PCB設計。
3.2 中央資源和PCI適配器
在PCI系統總線中,必須存在一個PCI主橋(Host)管理整個總線。主橋提供系統信號和進行PCI總線仲裁。PCI9056可以工作在HOST方式下,也可以作為普通PCI適配器,圖5是2種工作模式原理圖。
圖5 兩種工作模式原理圖
當HOSTEN# 管腳接地時,PCI9056工作在HOST模式,即成為系統的中央資源。在HOST模式時,PCI9056的局部復位LRESET#是輸入,接收來自局部CPU等的復位,然后在RST# 產生PCI總線復位,復位整個PCI總線上的設備。工作在適配器模式下的PCI9056剛好相反,RST# 接收來自PCI總線的復位,然后通過LRESET# 復位PCI設備內的其他器件。通常,把主橋的PCI9056設置為總線仲裁器。注意二者仲裁信號REQ# 和GNT[TX-]# 互換連接。
PCI9056作為適配器情況下,仲裁信號只使用 REQ# 和GNT# 。作為總線仲裁器時,還有其他的請求應答信號對可以使用。
3.3 加電初始化
PCI總線的地址可以根據系統動態調整。各個模塊在PCI空間所占的地址和長度取決于內部配置寄存器。系統程序一般在加電時就檢測整個系統所需的空間,分配各PCI設備的基址和所需存儲器空間,I/O空間。這個初始化過程可以有3個辦法完成。圖6是支持系統軟件初始化的對應硬件電路。其本質是PCI9056內部寄存器的設置。
圖6 內部寄存器初始化
如果PCI9056設計為系統的北橋,亦即中央資源(Host),在他的局部總線一側都存在CPU,寄存器的初始化可以由CPU進行,也可以由存入E2PROM的內部參數自動裝入。如果PCI9056作為一般PCI設備的適配器,一般沒有CPU,可以由初始化過的主橋通過PCI配置周期來設置內部寄存器,也可以由E2PROM在加電時自動載入。圖6中的E2PROM采用FM95C56或FM95CS56皆可。由局部CPU可設置內部所有寄存器,控制邏輯應產生CCS#片選。若不采用E2PROM加電自動載入初始化參數時,應該在圖5中的DI/DO管腳下拉1 kΩ的電阻。除由局部CPU初始化和E2PROM加電自動初始化外,更多的PCI設備由主橋通過PCI總線來動態初始化。系統軟件要保證各個設備的PCI空間不重疊。
4 PCI-X與PCI-E總線技術
PCI局部總線規范在不斷更新,向更快更強更小邁進。在技術上有進一步的提高,形成了PCI-X和PCI-E規范。
PCI-X v1.0版本是1999年正式發表的,是對已有的PCI總線的繼承和發展,他將PCI的性能推向頂峰。PCI-X總線操作采用分離事務處理方式,消除了等待狀態,大幅度地提高了總線的利用率。PCI-X總線帶寬最高達1.066 Gb/s(133 MHz/64 b)。PCI-X是共事總線結構式向交換式總線結構過渡的產物。在高性能服務產品中為提高I/O吞吐率已采用PCI-X總線結構。
PCI和PCI-X都是基于32位以及64位的并行總線,而PCI-E則使用高速串行總線。PCI Express(PCI-E)的引入是用來克服以前PCI總線的限制。PCI總線工作在33 MHz和32位環境下,理論帶寬峰值是每秒132 Mb。他使用共享總線拓撲結構-總線帶寬在多個設備間共享[CD2]從而實現總線上不同設備間的通信。隨著設備的發展,新的占用大量帶寬的設備開始吞噬同一共享總線上的其他設備的帶寬。例如,1 Gb網卡可獨占95%的PCI總線帶寬。相對于PCI,PCI-E總線最引人注目的進步是采用了點到點的傳輸技術,交換器替代了原先的主控器,當一個設備與另一個設備進行數據交換的時候,他們的通信是相對獨立的,多個通信連接之間并不影響,允許并發形式傳輸。圖7中所示的每一個PCI-E插槽擁有專用的帶寬,而不同于PCI的共享帶寬。
PCI-E總線提供給每一個設備他自己專用的數據流水線。每個信道具有單方向250 Mb/s的速度。多個信道可以組合在一起形成x1,x2,x4,x8,x12,x16和x32的信道帶寬從而提高插槽的帶寬。圖8所示的是現今計算機上標準PCI-E插槽,其大小是x1,x4,x8和x16的信道帶寬。3種總線性能對比見表1。
5 結 語
本文詳細介紹基于PCI9056的PCI總線的通用設計
圖7 PCI-E總線點到點的拓撲結構
圖8 標準PCI-E插槽
表1 總線性能對比表
方法及應用,并對PCI-X和PCI-E總線技術進行了詳細的分析與對比。通過實際應用在系統性能測試中比原采用ISA總線設計的系統性能有明顯提高,特別是在大數據量傳輸測試中,為硬件的發展提供一種高性能的總線平臺,充分發揮各硬件子系統的性能,并為這些子系統今后的性能提升開辟更廣闊的空間。
參 考 文 獻
[1]http://www.pcisig.com.PCI Local Bus Specification.Revision 2.2 December 18,1998.
[2]PLX Technology,Inc.PCI 9056 Data Book.Version 1.0,2003.
[3]Fairchild Semiconductor International:FM93C56Serial CMOS EEPROM,2000.
[4]李貴山.PCI局部總線及其應用[M].西安:西安電子科技大學出版社,2003.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。