《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > PCI Express總線接口板的設(shè)計(jì)與實(shí)現(xiàn)
PCI Express總線接口板的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 在過(guò)去的十幾年中,PCI總線得到了廣泛的應(yīng)用。但是隨著微處理器、存儲(chǔ)器和互連網(wǎng)絡(luò)的飛速發(fā)展,并行數(shù)據(jù)傳輸?shù)腜CI總線其性能已經(jīng)越來(lái)越不能滿足高性能計(jì)算機(jī)平衡設(shè)計(jì)的要求。隨后出現(xiàn)了許多串行互連技術(shù),并行數(shù)據(jù)傳輸轉(zhuǎn)為串行數(shù)據(jù)傳輸已經(jīng)成為一種趨勢(shì)。串行點(diǎn)對(duì)點(diǎn)的PCI Express總線以其良好的性能得到廣泛應(yīng)用。針對(duì)其應(yīng)用,提出一種基于PCI Ex—press總線的接口板的設(shè)計(jì)與實(shí)現(xiàn)方法。
關(guān)鍵詞: 接口IC PCI Express總線 接口板
Abstract:
Key words :

  在過(guò)去的十幾年中,PCI總線得到了廣泛的應(yīng)用。但是隨著微處理器、存儲(chǔ)器和互連網(wǎng)絡(luò)的飛速發(fā)展,并行數(shù)據(jù)傳輸?shù)腜CI總線其性能已經(jīng)越來(lái)越不能滿足高性能計(jì)算機(jī)平衡設(shè)計(jì)的要求。隨后出現(xiàn)了許多串行互連技術(shù),并行數(shù)據(jù)傳輸轉(zhuǎn)為串行數(shù)據(jù)傳輸已經(jīng)成為一種趨勢(shì)。串行點(diǎn)對(duì)點(diǎn)的PCI Express總線" title="Express總線">Express總線以其良好的性能得到廣泛應(yīng)用。針對(duì)其應(yīng)用,提出一種基于PCI Ex—press總線的接口板" title="接口板">接口板的設(shè)計(jì)與實(shí)現(xiàn)方法。

1 PCI Express總線簡(jiǎn)介   

Intel在2001年首先提出了替代PCI總線的新總線技術(shù)——PCI Express,當(dāng)時(shí)Intel稱之為“3GIO”,意為“第三代l/o標(biāo)準(zhǔn)”。PCI—SIG于2001年、2006年先后提出了PCI Express 1.o/2.0規(guī)范。

PCI—Express總線具有點(diǎn)對(duì)點(diǎn)串行互聯(lián);雙通道、高帶寬、傳輸速度快;靈活的擴(kuò)展性;低電源消耗,電源管理功能;支持設(shè)備熱撥插和熱交換;使用小型連接,節(jié)約空間,減少串?dāng)n;在軟件層保持與PCI兼容等特點(diǎn)。

2 PCI Express總線系統(tǒng)結(jié)構(gòu)   

PCI Express的基本結(jié)構(gòu)包括根組件(Root Com—plex)、交換器(Switch)、橋(Bridge)和終端設(shè)備(End—point)。集成在北橋芯片中的根組件,用于CPU和內(nèi)存子系統(tǒng)于I/O設(shè)備之間的連接。交換器支持在不同終端設(shè)備間進(jìn)行對(duì)等通信。橋是指PCI Express到PCI或PCI—X的橋接設(shè)備,實(shí)現(xiàn)PCI Express—to—PCI和PCI Express—to—PCI—X橋接功能,用來(lái)支持傳統(tǒng)PCI/PCI—X設(shè)備。

終端設(shè)備可以包括多個(gè)功能模塊,可以通過(guò)其有且僅有的一個(gè)上游端El與根設(shè)備或Switch連接。通常,終端設(shè)備指的是系統(tǒng)的外圍設(shè)備,如以太網(wǎng)、USB或圖形設(shè)備。如圖1所示。

PCI Express體系結(jié)構(gòu)采用分層設(shè)計(jì),從下而上分別是:物理層(Physical Layer)、數(shù)據(jù)鏈路層(Data Link Layer)和事務(wù)層(Transaction Layer)。如圖2所示。

3 PCI Express接口板的硬件設(shè)計(jì)   

PCI Express總線接口的實(shí)現(xiàn)大體有2類(lèi)方法:一類(lèi)是使用FPGA/CPLD等可編程器件開(kāi)發(fā)邏輯轉(zhuǎn)換電路。根據(jù)實(shí)現(xiàn)功能的多少,所需的等效門(mén)密度約為5 000~15 000門(mén),可自行編程或是購(gòu)買(mǎi)已有IP核的產(chǎn)品實(shí)現(xiàn);另一類(lèi)是使用專用的接口芯片。前者開(kāi)發(fā)成本高、難度大、周期長(zhǎng)、測(cè)試設(shè)備昂貴,但是批量生產(chǎn)成本低,適合大規(guī)模全定制或半定制ASIC:的生產(chǎn)。而后者實(shí)現(xiàn)了PCI Express總線的物理層、數(shù)據(jù)鏈路層和事務(wù)層的控制邏輯,用戶可以專注在其應(yīng)用方面的開(kāi)發(fā),而不必再調(diào)試PCI ExpipeSS接口,開(kāi)發(fā)難度大大降低,是實(shí)現(xiàn).PCI Express接口的有效方法。

該設(shè)計(jì)選用PLX公司的專用接口芯片PEX8311作為橋接芯片來(lái)實(shí)現(xiàn)PCI Express接口設(shè)計(jì)。

3.1 PEX8311芯片簡(jiǎn)介   

PEX8311是PLX公司開(kāi)發(fā)的第一款PCI Express總線到本地總線的接口芯片。它符合PCI Expressl.0a基本規(guī)范,并且其本地端寄存器與PLX公司的PCI系列接口芯片基本兼容。

3.1.1 PEX8311的特點(diǎn)   

(1)集成了單通道、全雙工2.5 Gb/s傳輸?shù)腜CI   Exptress端口;   

(2)本地總線配置支持8位、16位和32位的總線結(jié)構(gòu);   

(3)支持復(fù)合和非復(fù)合的操作模式;   

(4)高性能DMA數(shù)據(jù)傳輸支持塊模式,集散模式,循環(huán)隊(duì)列管理和命令模式;   

(5)支持端點(diǎn)和根組件模式;   

(6)芯片小型封裝,適合緊湊的電路板設(shè)計(jì);   

(7)芯片低功耗設(shè)計(jì);   

(8)3.3 V的I/O并且兼容5 V系統(tǒng);   

(9)串行E。PROM用來(lái)可選擇的導(dǎo)入配置,支持接口和Micr’OWire接口;   

(10)有8 KB的通配共享RAM。

3.1.2 PEX8311的內(nèi)部結(jié)構(gòu)   

PEX8311作為一種橋接芯片,在PCI Express總線和本地總線之間傳遞信息。它可以作為主控設(shè)備去控制2個(gè)總線,也可以作為目標(biāo)設(shè)備去響應(yīng)2個(gè)總線。它通過(guò)內(nèi)部的控制邏輯模塊、內(nèi)部總線狀態(tài)機(jī)模塊和本地總線狀態(tài)機(jī)模塊共同控制芯片的數(shù)據(jù)傳輸。PEX8311的結(jié)構(gòu)如圖3所示。

3.1.3 PEX8311的地址空問(wèn)及數(shù)據(jù)傳輸方式   

PEX8311的地址空間分為PCI Express地址空間和局部地址空間。前者包括配置寄存器、I/O空間、內(nèi)存映射I/O(32位)、可預(yù)取內(nèi)存空間(64位);后者包括空間0、空間1、擴(kuò)展RAM空間。

PEX8311支持3種數(shù)據(jù)傳輸方式。分別是:主模式(Direct Master)、從模式(Direct Slave)、直接存儲(chǔ)器存取模式(DMA)。

3.2 PCI Express接口板的硬件設(shè)計(jì)方案   

采用PEX8311的接口板設(shè)計(jì)在邏輯上可分為3個(gè)功能模塊:PCI Expr。ess接口部分、E2PROM部分和本地總線部分,如圖4所示。

PEX8311提供完備的PCI Express從設(shè)備支持,PCI Express接口部分的信號(hào)線可以直接與PCIExpress連接器(俗稱金手指)連接。其中,REFCLK±是一組差分時(shí)鐘,它由系統(tǒng)主板提供。2個(gè)參考時(shí)鐘都要求保持在正常工作頻率100 MHz的±300 ppm之內(nèi)。PRSNT1/PRSNT2信號(hào)線用于檢查附加卡是否插入連接器。此次設(shè)計(jì)中將PRSNl和PRSNT2相連,這樣當(dāng)接口板插入到PCI Express連接器時(shí)就能進(jìn)行存在檢測(cè)。在此,使用+3.3 V和12 V電源,由于不使用3.3VAUX,將其連一個(gè)電容并接地。PCI Express接口部分電路,如圖5所示。

PEX831l提供兩個(gè)串行E2PROM接口,在系統(tǒng)上電后讀取配置信息。SPI串行E2PROM是PCI Ex—press的配置E2PROM。它主要用來(lái)控制PCI Express的性能。SPI串行E2PROM可以用來(lái)預(yù)配置片上8 KB共享緩存。MicrOWire串行E2PROM是本地配置E2PROM,它用來(lái)控制本地總線行為,并分配合適的地址范圍。

本地總線部分是此次設(shè)計(jì)中的重點(diǎn)。PEX8311與CPLD相連的部分包括LA地址總線、LAD數(shù)據(jù)總線、LBE字節(jié)使能信號(hào)、Lw/R讀寫(xiě)信號(hào)等。

本地總線端的數(shù)據(jù)使用的是8位數(shù)據(jù),在這種模式下LBE1和LBE0提供地址線線[1:O]。CPLD用來(lái)控制PEX8311的讀寫(xiě)操作和數(shù)據(jù)傳送。

SRAM用于存放用戶的數(shù)據(jù)和代碼,為程序的運(yùn)行和保存臨時(shí)文件提供空間。SRAM的數(shù)據(jù)/地址線與PEX8311相連,SRAM的管理由CPLI實(shí)現(xiàn)。XRl6C854.是一款通用的串口通信控制器。它帶有128位的FIFOs和獨(dú)立的接收/發(fā)送FIFO計(jì)數(shù)器,完成最基本的串行通信功能。其數(shù)據(jù)/地址由PEX8311提供,讀/寫(xiě)/片選由CPLD控制。RS 422收發(fā)器要求傳輸速率高達(dá)10 Mb/s,選擇MAXII公司的M_AXl3087ECPLD如何設(shè)計(jì)實(shí)現(xiàn)PEX8311本地總線控制對(duì)整個(gè)功能的實(shí)現(xiàn)起著至關(guān)重要的作用。PEX8311通過(guò)本地總線與本地設(shè)備進(jìn)行通信。它支持3種本地總線數(shù)據(jù)傳輸方式:?jiǎn)沃芷谀J健?周期突發(fā)模式、連續(xù)突發(fā)模式。下面簡(jiǎn)要介紹如何用CPLD實(shí)現(xiàn)單周期模式。

圖6為PEX8311的單周期讀寫(xiě)的VHDL語(yǔ)言時(shí)序控制狀態(tài)機(jī)設(shè)計(jì)。狀態(tài)O為空閑狀態(tài),如本地總線請(qǐng)求信號(hào)LHOLD被置為1,則轉(zhuǎn)到狀態(tài)1,否則停留在狀態(tài)O。狀態(tài)1為總線保持狀態(tài),在此狀態(tài)下應(yīng)將本地總線響應(yīng)信號(hào)LHOLDA置為1。如ADS信號(hào)為O且LW/R為1轉(zhuǎn)到狀態(tài)2;如ADS信號(hào)為l且Lw/R和BLAST都為0轉(zhuǎn)到狀態(tài)3,這次操作為單周期讀。狀態(tài)2為單周期寫(xiě)狀態(tài),在此狀態(tài)下要置READY信號(hào)為0,以表示寫(xiě)數(shù)據(jù)有效,在BLAST為O時(shí)轉(zhuǎn)到狀態(tài)3。狀態(tài)3為讀寫(xiě)完成操作狀態(tài),當(dāng)LHOLD被置為O時(shí),表明PEX831l不再請(qǐng)求本地總線,轉(zhuǎn)到狀態(tài)O,當(dāng)BLAST為0且LHOLD為1時(shí),表明PEX8311還要進(jìn)行讀寫(xiě)數(shù)據(jù),則轉(zhuǎn)到狀態(tài)1繼續(xù)。

3.3 PCI Express接口板的PCB設(shè)計(jì)   

PCI Express接口板的PCB設(shè)計(jì)應(yīng)遵循高速信號(hào)布線設(shè)計(jì)的要求。每個(gè)信號(hào)面都應(yīng)有一個(gè)完整的地平面作為參考面,這樣的設(shè)計(jì)使信號(hào)走線都有最佳的電流回流途徑,有效地控制串?dāng)_、EMC和信號(hào)線的阻抗,保證信號(hào)質(zhì)量。PCB板上差分阻抗為100 Q±10 Q,符合PCI Express規(guī)范的要求。單端阻抗為50 Q±10 Q。PCI Express接口的物理連接由2對(duì)差分線對(duì)組成,信號(hào)線的數(shù)據(jù)傳輸率位2.5 Gb/s。所以必須對(duì)信號(hào)的走線進(jìn)行嚴(yán)格的控制。從PEX8311的輸出信號(hào)引腳到PCI Express接口的金手指的走線長(zhǎng)度不能超過(guò)25.4 mm。差分線對(duì)內(nèi)的2條信號(hào)線最好嚴(yán)格等長(zhǎng),公差不能超過(guò)土0.127 mm,走線途徑基本相同。SRAM的頻率較高,所以要注意布線的長(zhǎng)度和路徑,以保證信號(hào)的完整性。實(shí)驗(yàn)證明這樣的PCB設(shè)計(jì)充分滿足PCIExpr。ess接口信號(hào)的傳輸要求。

4 PCI Express接口板驅(qū)動(dòng)程序及軟件開(kāi)發(fā)   

PCI Express總線與PCI總線在軟件層是完全兼容的,因此PCI Explress接口板驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程與.PCI設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)過(guò)程是相同的。

在Windows操作系統(tǒng)下,微軟公司提供了DDK開(kāi)發(fā)工具,同時(shí)其他公司也提供了開(kāi)發(fā)工具,如VtoolsD,Driverworks,WinDriver等。用DDK進(jìn)行開(kāi)發(fā),需要了解操作系統(tǒng)內(nèi)核知識(shí),開(kāi)發(fā)難度大,周期比較長(zhǎng)。用其他公司的開(kāi)發(fā)軟件,不用了解DDK的核心知識(shí),開(kāi)發(fā)驅(qū)動(dòng)相對(duì)要快。其中JUNGO公司的WinDriver開(kāi)發(fā)工具,在用戶級(jí)(ring 3)進(jìn)行核心驅(qū)動(dòng)開(kāi)發(fā),時(shí)間短,并且產(chǎn)生的驅(qū)動(dòng)程序穩(wěn)定高效,支持不同的操作系統(tǒng),可移植性強(qiáng)。用戶接口函數(shù)可采用Microsoft Visual C++6.0進(jìn)行開(kāi)發(fā),提供標(biāo)準(zhǔn)的動(dòng)態(tài)庫(kù)函數(shù),可供VB,Vc,Delphi等工具開(kāi)發(fā)的應(yīng)用程序調(diào)用。用戶通過(guò)用戶接口函數(shù)對(duì)板卡上的資源進(jìn)行調(diào)度和訪問(wèn)。該設(shè)計(jì)采用驅(qū)動(dòng)程序開(kāi)發(fā)工具WinDriver,進(jìn)行相應(yīng)模塊的驅(qū)動(dòng)程序開(kāi)發(fā),實(shí)現(xiàn)在 Win—dows操作系統(tǒng)下的安裝和配置。

5 結(jié) 語(yǔ)   

經(jīng)測(cè)試,該接口板在單字讀寫(xiě)模式下,執(zhí)行程序死循環(huán),CPU占用率80%以上,數(shù)據(jù)傳送速率6 Mb/s;在突發(fā)讀寫(xiě)模式下,執(zhí)行內(nèi)存塊復(fù)制,CPU占用率80%以上,數(shù)據(jù)傳送速率60 Mb/s;在DMA突發(fā)讀寫(xiě)模式下,執(zhí)行直接存儲(chǔ),CPU占用率10%,數(shù)據(jù)傳送速率240 Mb/s。通過(guò)與普通PCI19054接口板的對(duì)比,PCIE。xpreSS接口板具有明顯優(yōu)勢(shì)。這里介紹了PCI Ex-press接口板的軟硬件設(shè)計(jì)。提供了PCI Express接口板設(shè)計(jì)模板,為日后軍用CPCI總線功能模板向PCI-ExpreSS總線的過(guò)渡提供設(shè)計(jì)參考。

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。