在過去的十幾年中,,PCI總線得到了廣泛的應用。但是隨著微處理器,、存儲器和互連網(wǎng)絡的飛速發(fā)展,,并行數(shù)據(jù)傳輸?shù)腜CI總線其性能已經(jīng)越來越不能滿足高性能計算機平衡設計的要求。隨后出現(xiàn)了許多串行互連技術,,并行數(shù)據(jù)傳輸轉為串行數(shù)據(jù)傳輸已經(jīng)成為一種趨勢,。串行點對點的PCI Express總線" title="Express總線">Express總線以其良好的性能得到廣泛應用。針對其應用,,提出一種基于PCI Ex—press總線的接口板" title="接口板">接口板的設計與實現(xiàn)方法,。
1 PCI Express總線簡介
Intel在2001年首先提出了替代PCI總線的新總線技術——PCI Express,當時Intel稱之為“3GIO”,,意為“第三代l/o標準”,。PCI—SIG于2001年、2006年先后提出了PCI Express 1.o/2.0規(guī)范,。
PCI—Express總線具有點對點串行互聯(lián),;雙通道、高帶寬,、傳輸速度快,;靈活的擴展性;低電源消耗,,電源管理功能,;支持設備熱撥插和熱交換;使用小型連接,,節(jié)約空間,,減少串攏;在軟件層保持與PCI兼容等特點,。
2 PCI Express總線系統(tǒng)結構
PCI Express的基本結構包括根組件(Root Com—plex)、交換器(Switch),、橋(Bridge)和終端設備(End—point),。集成在北橋芯片中的根組件,用于CPU和內存子系統(tǒng)于I/O設備之間的連接。交換器支持在不同終端設備間進行對等通信,。橋是指PCI Express到PCI或PCI—X的橋接設備,,實現(xiàn)PCI Express—to—PCI和PCI Express—to—PCI—X橋接功能,用來支持傳統(tǒng)PCI/PCI—X設備,。
終端設備可以包括多個功能模塊,,可以通過其有且僅有的一個上游端El與根設備或Switch連接。通常,,終端設備指的是系統(tǒng)的外圍設備,,如以太網(wǎng)、USB或圖形設備,。如圖1所示,。
PCI Express體系結構采用分層設計,從下而上分別是:物理層(Physical Layer),、數(shù)據(jù)鏈路層(Data Link Layer)和事務層(Transaction Layer),。如圖2所示。
3 PCI Express接口板的硬件設計
PCI Express總線接口的實現(xiàn)大體有2類方法:一類是使用FPGA/CPLD等可編程器件開發(fā)邏輯轉換電路,。根據(jù)實現(xiàn)功能的多少,,所需的等效門密度約為5 000~15 000門,可自行編程或是購買已有IP核的產(chǎn)品實現(xiàn),;另一類是使用專用的接口芯片,。前者開發(fā)成本高、難度大,、周期長,、測試設備昂貴,但是批量生產(chǎn)成本低,,適合大規(guī)模全定制或半定制ASIC:的生產(chǎn),。而后者實現(xiàn)了PCI Express總線的物理層、數(shù)據(jù)鏈路層和事務層的控制邏輯,,用戶可以專注在其應用方面的開發(fā),,而不必再調試PCI ExpipeSS接口,開發(fā)難度大大降低,,是實現(xiàn).PCI Express接口的有效方法,。
該設計選用PLX公司的專用接口芯片PEX8311作為橋接芯片來實現(xiàn)PCI Express接口設計。
3.1 PEX8311芯片簡介
PEX8311是PLX公司開發(fā)的第一款PCI Express總線到本地總線的接口芯片,。它符合PCI Expressl.0a基本規(guī)范,,并且其本地端寄存器與PLX公司的PCI系列接口芯片基本兼容。
3.1.1 PEX8311的特點
(1)集成了單通道,、全雙工2.5 Gb/s傳輸?shù)腜CI Exptress端口,;
(2)本地總線配置支持8位,、16位和32位的總線結構;
(3)支持復合和非復合的操作模式,;
(4)高性能DMA數(shù)據(jù)傳輸支持塊模式,,集散模式,循環(huán)隊列管理和命令模式,;
(5)支持端點和根組件模式,;
(6)芯片小型封裝,適合緊湊的電路板設計,;
(7)芯片低功耗設計,;
(8)3.3 V的I/O并且兼容5 V系統(tǒng);
(9)串行E,。PROM用來可選擇的導入配置,,支持接口和Micr’OWire接口;
(10)有8 KB的通配共享RAM,。
3.1.2 PEX8311的內部結構
PEX8311作為一種橋接芯片,,在PCI Express總線和本地總線之間傳遞信息。它可以作為主控設備去控制2個總線,,也可以作為目標設備去響應2個總線,。它通過內部的控制邏輯模塊、內部總線狀態(tài)機模塊和本地總線狀態(tài)機模塊共同控制芯片的數(shù)據(jù)傳輸,。PEX8311的結構如圖3所示,。
3.1.3 PEX8311的地址空問及數(shù)據(jù)傳輸方式
PEX8311的地址空間分為PCI Express地址空間和局部地址空間。前者包括配置寄存器,、I/O空間,、內存映射I/O(32位)、可預取內存空間(64位),;后者包括空間0,、空間1、擴展RAM空間,。
PEX8311支持3種數(shù)據(jù)傳輸方式,。分別是:主模式(Direct Master)、從模式(Direct Slave),、直接存儲器存取模式(DMA),。
3.2 PCI Express接口板的硬件設計方案
采用PEX8311的接口板設計在邏輯上可分為3個功能模塊:PCI Expr。ess接口部分,、E2PROM部分和本地總線部分,,如圖4所示。
PEX8311提供完備的PCI Express從設備支持,,PCI Express接口部分的信號線可以直接與PCIExpress連接器(俗稱金手指)連接,。其中,,REFCLK±是一組差分時鐘,,它由系統(tǒng)主板提供,。2個參考時鐘都要求保持在正常工作頻率100 MHz的±300 ppm之內。PRSNT1/PRSNT2信號線用于檢查附加卡是否插入連接器,。此次設計中將PRSNl和PRSNT2相連,,這樣當接口板插入到PCI Express連接器時就能進行存在檢測。在此,,使用+3.3 V和12 V電源,,由于不使用3.3VAUX,將其連一個電容并接地,。PCI Express接口部分電路,,如圖5所示。
PEX831l提供兩個串行E2PROM接口,,在系統(tǒng)上電后讀取配置信息,。SPI串行E2PROM是PCI Ex—press的配置E2PROM。它主要用來控制PCI Express的性能,。SPI串行E2PROM可以用來預配置片上8 KB共享緩存,。MicrOWire串行E2PROM是本地配置E2PROM,它用來控制本地總線行為,,并分配合適的地址范圍,。
本地總線部分是此次設計中的重點。PEX8311與CPLD相連的部分包括LA地址總線,、LAD數(shù)據(jù)總線,、LBE字節(jié)使能信號、Lw/R讀寫信號等,。
本地總線端的數(shù)據(jù)使用的是8位數(shù)據(jù),,在這種模式下LBE1和LBE0提供地址線線[1:O]。CPLD用來控制PEX8311的讀寫操作和數(shù)據(jù)傳送,。
SRAM用于存放用戶的數(shù)據(jù)和代碼,,為程序的運行和保存臨時文件提供空間。SRAM的數(shù)據(jù)/地址線與PEX8311相連,,SRAM的管理由CPLI實現(xiàn),。XRl6C854.是一款通用的串口通信控制器。它帶有128位的FIFOs和獨立的接收/發(fā)送FIFO計數(shù)器,,完成最基本的串行通信功能,。其數(shù)據(jù)/地址由PEX8311提供,讀/寫/片選由CPLD控制,。RS 422收發(fā)器要求傳輸速率高達10 Mb/s,,選擇MAXII公司的M_AXl3087ECPLD如何設計實現(xiàn)PEX8311本地總線控制對整個功能的實現(xiàn)起著至關重要的作用,。PEX8311通過本地總線與本地設備進行通信。它支持3種本地總線數(shù)據(jù)傳輸方式:單周期模式,、4周期突發(fā)模式,、連續(xù)突發(fā)模式。下面簡要介紹如何用CPLD實現(xiàn)單周期模式,。
圖6為PEX8311的單周期讀寫的VHDL語言時序控制狀態(tài)機設計,。狀態(tài)O為空閑狀態(tài),如本地總線請求信號LHOLD被置為1,,則轉到狀態(tài)1,,否則停留在狀態(tài)O。狀態(tài)1為總線保持狀態(tài),,在此狀態(tài)下應將本地總線響應信號LHOLDA置為1,。如ADS信號為O且LW/R為1轉到狀態(tài)2;如ADS信號為l且Lw/R和BLAST都為0轉到狀態(tài)3,,這次操作為單周期讀,。狀態(tài)2為單周期寫狀態(tài),在此狀態(tài)下要置READY信號為0,,以表示寫數(shù)據(jù)有效,,在BLAST為O時轉到狀態(tài)3。狀態(tài)3為讀寫完成操作狀態(tài),,當LHOLD被置為O時,,表明PEX831l不再請求本地總線,轉到狀態(tài)O,當BLAST為0且LHOLD為1時,,表明PEX8311還要進行讀寫數(shù)據(jù),,則轉到狀態(tài)1繼續(xù)。
3.3 PCI Express接口板的PCB設計
PCI Express接口板的PCB設計應遵循高速信號布線設計的要求,。每個信號面都應有一個完整的地平面作為參考面,,這樣的設計使信號走線都有最佳的電流回流途徑,有效地控制串擾,、EMC和信號線的阻抗,,保證信號質量。PCB板上差分阻抗為100 Q±10 Q,,符合PCI Express規(guī)范的要求,。單端阻抗為50 Q±10 Q。PCI Express接口的物理連接由2對差分線對組成,,信號線的數(shù)據(jù)傳輸率位2.5 Gb/s,。所以必須對信號的走線進行嚴格的控制。從PEX8311的輸出信號引腳到PCI Express接口的金手指的走線長度不能超過25.4 mm,。差分線對內的2條信號線最好嚴格等長,,公差不能超過土0.127 mm,,走線途徑基本相同。SRAM的頻率較高,,所以要注意布線的長度和路徑,,以保證信號的完整性。實驗證明這樣的PCB設計充分滿足PCIExpr,。ess接口信號的傳輸要求,。
4 PCI Express接口板驅動程序及軟件開發(fā)
PCI Express總線與PCI總線在軟件層是完全兼容的,,因此PCI Explress接口板驅動程序的開發(fā)過程與.PCI設備驅動程序的開發(fā)過程是相同的,。
在Windows操作系統(tǒng)下,微軟公司提供了DDK開發(fā)工具,,同時其他公司也提供了開發(fā)工具,,如VtoolsD,Driverworks,,WinDriver等,。用DDK進行開發(fā),需要了解操作系統(tǒng)內核知識,,開發(fā)難度大,,周期比較長。用其他公司的開發(fā)軟件,,不用了解DDK的核心知識,,開發(fā)驅動相對要快。其中JUNGO公司的WinDriver開發(fā)工具,,在用戶級(ring 3)進行核心驅動開發(fā),,時間短,并且產(chǎn)生的驅動程序穩(wěn)定高效,,支持不同的操作系統(tǒng),,可移植性強。用戶接口函數(shù)可采用Microsoft Visual C++6.0進行開發(fā),,提供標準的動態(tài)庫函數(shù),,可供VB,Vc,,Delphi等工具開發(fā)的應用程序調用,。用戶通過用戶接口函數(shù)對板卡上的資源進行調度和訪問。該設計采用驅動程序開發(fā)工具WinDriver,,進行相應模塊的驅動程序開發(fā),,實現(xiàn)在 Win—dows操作系統(tǒng)下的安裝和配置。
5 結 語
經(jīng)測試,,該接口板在單字讀寫模式下,,執(zhí)行程序死循環(huán),,CPU占用率80%以上,數(shù)據(jù)傳送速率6 Mb/s,;在突發(fā)讀寫模式下,,執(zhí)行內存塊復制,CPU占用率80%以上,,數(shù)據(jù)傳送速率60 Mb/s,;在DMA突發(fā)讀寫模式下,執(zhí)行直接存儲,,CPU占用率10%,,數(shù)據(jù)傳送速率240 Mb/s。通過與普通PCI19054接口板的對比,,PCIE,。xpreSS接口板具有明顯優(yōu)勢。這里介紹了PCI Ex-press接口板的軟硬件設計,。提供了PCI Express接口板設計模板,,為日后軍用CPCI總線功能模板向PCI-ExpreSS總線的過渡提供設計參考。