<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的PCI Express應用平臺設計

基于FPGA的PCI Express應用平臺設計

作者: 時(shí)間:2016-10-16 來(lái)源:網(wǎng)絡(luò ) 收藏

傳統的數據傳輸應用平臺是基于PCI總線(xiàn)設計實(shí)現的。PCI總線(xiàn)是并行共享總線(xiàn),具有數據傳輸速率慢等缺點(diǎn)。隨著(zhù)點(diǎn)對點(diǎn)高速串行PCI Express(Peripheral Component Int erconnect Express,PCI—E)總線(xiàn)的發(fā)展,基于PCI—E總線(xiàn)的新型數據傳輸應用平臺已逐漸取代了傳統的基于PCI總線(xiàn)數據傳輸應用平臺。PCI-E總線(xiàn)不僅在系統軟件級與PCI總線(xiàn)兼容,且與PCI等傳統總線(xiàn)相比具有更高的帶寬和靈活的可配置通道數。

本文引用地址:http://dyxdggzs.com/article/201610/308362.htm

以FPGA為核心設計數據傳輸應用平臺,具有硬件電路設計簡(jiǎn)單、可重構性、提供片上PCI—E IP硬核、并可實(shí)現SOPC功能等特點(diǎn)。所以在計算機、通信等領(lǐng)域獲得了廣泛應用,更使得高速系統設計不必過(guò)多地關(guān)注PCI—E總線(xiàn)的復雜設計,大幅提高了設計的可靠性,縮短了設計的研發(fā)周期。本文設計實(shí)現了基于FPGA的PCI Express應用平臺。

1 方案實(shí)施基礎

1.1 PCI-E協(xié)議規范

PCI—E作為第三代I/O技術(shù)由Intel公布,并隨后被PCI—SIG (Peripheral Component Interconne—ct Special Interest Group)正式命名為“PCI Expres—s。作為串行連接方式的總線(xiàn),PCI—E協(xié)議規范定義了一種分層的設備體系結構,包括事務(wù)層(Transaction Layer)、數據鏈路層(Data Link Layer)和物理層(PhysicalLayer),所有數據的接收和發(fā)送過(guò)程中均以包的形式在各層之間傳輸。PCI—E總線(xiàn)的層次結構如圖1所示。

基于FPGA的PCI Express應用平臺設計

(1)事務(wù)層是PCI—E中的最上層,負責事務(wù)層包(Transaction Layer Packet,TLP)的封裝與分解,并進(jìn)行流速控制管理、數據包隊列管理以及利用多虛擬通道提供服務(wù)質(zhì)量(Quality of Service)。

(2)數據鏈路層是PCI—E的中間層,主要負責完成數據完整性檢查、錯誤檢測與糾正。數據鏈路層實(shí)現了包的應答和重傳機制,每個(gè)包用一個(gè)唯一的標識來(lái)確保應答可正確地定位請求,若出錯則重傳出錯標識的所有后續包,以此保證數據的可靠性。

(3)物理層分為邏輯物理子層和電氣物理子層。邏輯物理子層完成與數據鏈路層的數據交換、8b/10b編解碼、并串和串并轉換。電氣物理子層負責對每路串行數據進(jìn)行差分驅動(dòng)傳輸。

(4)設備核心層并不屬于PCI—E協(xié)議規范。其主要向事務(wù)層提供封裝TLP所需的數據,或接收事務(wù)層拆包后的數據。

1.2 FPGA器件選型

選用Altera公司的Cyclone IV GX系列FPGA為核心實(shí)現PCI—E數據傳輸應用平臺。該系列FPGA器件包含多達8個(gè)3.125 Gbit·s-1速率的全雙工高速收發(fā)器,并支持物理編碼子層(PCS)、物理介質(zhì)附加子層(PMA)和PCI—E IP硬核,可完全實(shí)現PCI—E基本規范所需的2.5 Gbit·s-1速率、8b/10b編解碼和PCI—E分層協(xié)議棧,并可減少應用平臺設計的難度,且加快了研發(fā)周期。

2 應用平臺設計

基于PCI—E總線(xiàn)設計了一種Windows XP操作系統下的數據傳輸及處理應用平臺,滿(mǎn)足PCI—E基本規范所需的總線(xiàn)傳輸速率和分層體系結構,并可通過(guò)多種數據傳輸模式來(lái)適用于不同的應用場(chǎng)合,如數據采集、數據下發(fā)和數據處理等。應用平臺設計包括軟件和硬件兩部分組成,硬件部分包括FPGA內部邏輯電路,PCI—E IP硬核等;軟件部分包括上位機控制程序和應用平臺在Windows操作系統下的驅動(dòng)程序。

2.1 硬件設計

硬件設計主要包括PCI—E IP硬核接口、控制模塊、DMA模塊和數據處理/接口電路,應用平臺的硬件結構如圖2所示。

基于FPGA的PCI Express應用平臺設計

(1)PCI—E IP硬核接口完成PCI—E IP硬核與設備核心層之間的數據橋接功能。PCI—E IP硬核實(shí)現了PCI—E的協(xié)議規范,還提供了與設備核心層的接口。Cyclone IV GX系列器件提供的PCI—E IP硬核與設備核心層的接口為一組內存映射(Avalon Memory Map)接口,其中包括TX接口、RX接口和CRA接口。

TX接口是指由設備核心層發(fā)起的數據傳輸接口,映射了事務(wù)層存儲器的讀和寫(xiě)請求事務(wù)。TX接口支持突發(fā)數據傳輸,實(shí)現設備核心層與PCI—E硬核接口的高速數據傳輸。

RX接口是指由上位機發(fā)起的數據傳輸接口,是對事務(wù)層存儲器讀和寫(xiě)事務(wù)的映射。用作上位機發(fā)送控制命令的接口。

CRA接口是PCI—E IP硬核配置空間訪(fǎng)問(wèn)接口,通過(guò)此接口可訪(fǎng)問(wèn)PCI—E IP硬核的配置寄存器,并完成對PCI—E IP硬核的初始化和配置。此接口可由設備核心層直接訪(fǎng)問(wèn)或上位機通過(guò)RX接口訪(fǎng)問(wèn)。

(2)控制模塊主要完成設備核心層數據傳輸和數據處理控制。上位機通過(guò)RX接口向控制寄存器寫(xiě)入命令字,控制模塊則通過(guò)解析命令字,啟動(dòng)相應的模塊完成命令。根據應用的不同,控制模塊可由CPU或電路實(shí)現。CPU可通過(guò)編寫(xiě)不同的應用軟件來(lái)完成相對復雜的控制,但運行速率有限。雖然電路的運行速率較高,但復雜的控制命令將使電路的設計變得復雜。

(3)DMA模塊實(shí)現上位機與應用平臺之間高速數據傳輸。該模塊包含兩個(gè)獨立的DMA通道,通道1控制數據從上位機到應用平臺的數據下發(fā)傳輸;通道2控制數據從應用平臺到上位機的數據上傳。上位機通過(guò)RX接口控制應用平臺上的DMA模塊實(shí)現數據下發(fā)和上傳操作。應用平臺上包含下發(fā)和上傳緩存,分別緩存來(lái)自上位機的下發(fā)數據和來(lái)自外設輸入的上傳數據。每個(gè)緩存均由兩塊獨立的8 kB RAM組成,兩塊8 kB RAM采用乒乓工作方式,實(shí)現不間斷的高速數據傳輸。

(4)數據處王里/接口電路是PCI—E設備的功能模塊,實(shí)現PCI—E應用平臺的數據處理或接口電路功能,如數據采集中實(shí)現采集設備的接口電路,或在圖像處理中完成對圖像信號的處理算法等。

2.2 傳輸模式一

適用于高速數據上傳,這種模式主要是將外設采集到的數據通過(guò)PCI—E總線(xiàn)數據傳輸應用平臺高速上傳至上位機。其工作流程如下:

(1)將平臺配置為上傳模式。

(2)由上位機通過(guò)RX接口向控制模塊寫(xiě)入數據上傳命令,而控制模塊在接到命令后啟動(dòng)外設開(kāi)始采集數據,外設將采集的數據通過(guò)數據處理/接口電路送入FPGA內部?jì)蓧K8 kB的緩存RAM中。

(3)控制模塊同時(shí)啟動(dòng)DMA模塊,將FPGA內部?jì)蓧K8 kB RAM緩存的輸入數據采用乒乓工作方式上傳到上位機。

(4)當DMA數據傳輸完成時(shí),通過(guò)RX接口通知上位機數據傳輸完成,上位機采用查詢(xún)方式進(jìn)行數據提取等項操作,至此一次傳輸任務(wù)完成。

2.3 傳輸模式二

傳輸模式二適用于高速數據下發(fā),這種模式主要是將上位機數據通過(guò)PCI—E總線(xiàn)數據傳輸應用平臺高速下發(fā)至外設。其工作流程如下:

(1)將平臺配置為下發(fā)模式。

(2)由上位機通過(guò)RX接口向控制模塊寫(xiě)入數據下發(fā)命令,控制模塊在接到命令后啟動(dòng)DMA模塊從上位機中讀出數據,并寫(xiě)入到8 kB RAM中。

(3)同時(shí)數據處理/接口電路采用乒乓工作方式從8 kB RAM中讀出數據,并輸出到外設。

(4)當DMA數據傳輸完成時(shí),通過(guò)RX接口通知上位機數據傳輸完成,上位機采用查詢(xún)方式獲取DMA數據傳輸狀態(tài),至此一次傳輸任務(wù)完成。

2.4 傳輸模式三

傳輸模式三適用于高速數據上傳或下發(fā),這種模式中PCI—E應用平臺先完成對上位機中待處理數據的下發(fā),然后將FPGA處理后的數據再上傳到上位機。傳輸模式三可看作模式一與模式二的混合應用。其不同之處在于,模式三執行模式一操作,或執行模式二操作,不能兩種同時(shí)執行。模式三適用于高速數據靈活收發(fā)的工作方式。相對于模式一或模式二來(lái)說(shuō),模式三收發(fā)速率較低。

2.5 軟件設計

軟件設計包括應用平臺的設備驅動(dòng)和不同傳輸模式下的控制軟件設計。傳輸模式一的控制軟件流程如圖3所示。

基于FPGA的PCI Express應用平臺設計

傳輸模式二的控制軟件流程如圖4所示。

基于FPGA的PCI Express應用平臺設計

傳輸模式三的控制軟件流程如圖5所示。

基于FPGA的PCI Express應用平臺設計

設備驅動(dòng)是計算機系統中軟硬件的交互接口,此應用平臺的設備驅動(dòng)基于Windows下的(Windows Driver Foundation)框架完成。為提高驅動(dòng)效率及通用性,此設計的設備驅動(dòng)將內核態(tài)的硬件資源全部映射到了應用空間,具體控制由各模式控制軟件完成。

3 驗證與實(shí)現

應用平臺采用Altera公司型號為EP4CGX50CF23C6的FPGA器件為核心,研發(fā)設計出PCI—E X4通道PCB板卡,使用Verilog HDL語(yǔ)言設計FPGA內部硬件電路,并在Qusrtus II 12.0開(kāi)發(fā)環(huán)境下進(jìn)行設計實(shí)現?;赪indows XP操作系統編寫(xiě)PCI—E應用平臺驅動(dòng),進(jìn)行驗證測試。受所選FPGA器件的PCI—EIP硬核限制,僅以PCI—E基礎規范1.1版本進(jìn)行驗證。在傳輸模式一中,由應用平臺上的FPGA電路模擬外設生成的隨機數作為測試數據包;在傳輸模式二中,由上位機軟件產(chǎn)生隨機數作為測試數據包。測試數據包采用連續生成方式,生成速率>8Gbit·s-1。測試結果采用統計平均方式,即從一次連續10 s的數據傳輸量中,計算出數據的傳輸速率。

傳輸模式三下Signal Tap II邏輯分析儀捕獲的作業(yè)包長(cháng)為2 kB時(shí)的TX接口寫(xiě)和讀操作時(shí)序圖如圖6和圖7所示。

基于FPGA的PCI Express應用平臺設計
基于FPGA的PCI Express應用平臺設計

圖6中txs_addr表示輸出緩沖區地址,0x800表示輸出緩沖區起始地址;txs_wdata表示寫(xiě)數據;txs_wen為高電平有效寫(xiě)使能;txs_byteen表示字節使能;burstcont表示TX接口一次寫(xiě)突發(fā)的數據長(cháng)度,0x40表示此次突發(fā)長(cháng)度為512字節;txs_waitreq表示TX接口等待請求,為低電平時(shí)方可進(jìn)行TX接口寫(xiě)操作。對于2 kB的包,TX接口需進(jìn)行4次寫(xiě)操作,每次寫(xiě)512字節才可將FPGA內的上傳緩存RAM中的數據包寫(xiě)到上位機內存中。

圖7中txs_addr表示輸入緩沖區地址,0x000表示輸入緩沖區起始地址。txs_rdvalid為高電平時(shí)txs_rdata讀數據才為有效數據。對于2 kB的包,TX接口讀操作需進(jìn)行4次,每次讀512 Byte才能將上位機內存中的數據包讀到FPCA內的下發(fā)緩存RAM中。

驗證測試結果如表1~表3所示。傳輸模式一和傳輸模式二的測試速率低于PCI—E理論速率。因實(shí)際進(jìn)行DMA傳輸時(shí),需耗費一定時(shí)間,同時(shí)數據在PCI—E IP硬核傳輸過(guò)程中也不可避免的會(huì )產(chǎn)生一定的時(shí)間損耗,這些降低了數據的傳輸速率。傳輸模式三包括有上傳和下發(fā)兩種工作方式,此模式下上傳和下發(fā)不能同時(shí)工作,實(shí)際傳輸速率明顯降低,此外還包含傳輸模式一和二所提及的原因。

基于FPGA的PCI Express應用平臺設計

4 結束語(yǔ)

介紹了一種基于FPGA的PCI—E應用平臺設計,且描述了3種不同的數據傳輸模式,以Windows XP操作系統為驗證平臺,分別對3種傳輸模式進(jìn)行了實(shí)現及驗證,系統工作穩定,資源利用率較高,最高傳輸速率可達7.12 Gbit·s-1。此應用平臺的設計與實(shí)現,為需要構建各種高速數據傳輸系統的設計師提供了參考。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>