新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PCI Express總線的高速數(shù)據(jù)傳輸卡設(shè)計(jì)

基于PCI Express總線的高速數(shù)據(jù)傳輸卡設(shè)計(jì)

作者: 時(shí)間:2010-12-04 來源:網(wǎng)絡(luò) 收藏

地面測(cè)控系統(tǒng)由上位機(jī)軟件、工業(yè)控制計(jì)算機(jī)、地面控制臺(tái)及相應(yīng)電纜網(wǎng)組成。在系統(tǒng)聯(lián)試前它可以和采編器、存儲(chǔ)器構(gòu)成閉環(huán)反饋,對(duì)采編器、存儲(chǔ)器實(shí)施自檢。地面控制臺(tái)在上位機(jī)軟件的控制下,真實(shí)模擬機(jī)上信號(hào),為采編器提供不同的數(shù)字量信號(hào),并對(duì)回收后的存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀取分析。以前地面測(cè)試系統(tǒng)中的上位機(jī)軟件系統(tǒng)和地面控制臺(tái)之間的通信是由USB來完成的,傳輸速率較低。為了解決大容量數(shù)據(jù)高速讀取的瓶頸問題,采用 總線來讀取數(shù)據(jù)。 采用了目前業(yè)內(nèi)流行的點(diǎn)對(duì)點(diǎn)串行連接, 每個(gè)設(shè)備都有自己的專用連接, 不需要向整個(gè)總線請(qǐng)求帶寬, 而且可以把數(shù)據(jù)傳輸率提高到一個(gè)很高的頻率, 達(dá)到 USB 所不能提供的高帶寬。本文設(shè)計(jì)并實(shí)現(xiàn)的數(shù)據(jù)傳輸卡基于 總線,提高了系統(tǒng)的讀寫速度,滿足了目前大容量高速實(shí)時(shí)傳輸記錄的要求。

1 系統(tǒng)結(jié)構(gòu)

 地面控制臺(tái)是模擬機(jī)上信號(hào)源功能,信號(hào)源由上位機(jī)生成,然后下載到地面控制臺(tái)的RAM中。為了正確地發(fā)送信號(hào)源數(shù)據(jù)需要對(duì)下載的信號(hào)源數(shù)據(jù)進(jìn)行自檢,即將地面控制臺(tái)RAM中的數(shù)據(jù)讀入上位機(jī)來驗(yàn)證控制臺(tái)中信號(hào)源是否正確。本系統(tǒng)通過PCI Express傳輸卡實(shí)現(xiàn)了信號(hào)源自檢功能。

如圖1所示,上位機(jī)通過PCI Express將信號(hào)源的數(shù)據(jù)下載到FIFO1存儲(chǔ)器當(dāng)中,同時(shí)將相應(yīng)的控制命令發(fā)送給檢測(cè)到相應(yīng)控制命令后,開始讀取FIFO1中的數(shù)據(jù),并將該數(shù)據(jù)經(jīng)過串并轉(zhuǎn)換寫到地面控制臺(tái)RAM中。為了保證上位機(jī)下載到靜態(tài)存儲(chǔ)器中的數(shù)據(jù)的正確性,上位機(jī)可以通過PCI Express接口將地面控制臺(tái)RAM中的數(shù)據(jù)寫到FIFO2存儲(chǔ)器當(dāng)中,讀取其中的數(shù)據(jù)并進(jìn)而對(duì)該數(shù)據(jù)進(jìn)行判讀以驗(yàn)證信號(hào)源數(shù)據(jù)的正確性。

2 硬件設(shè)計(jì)

2.1 差分傳輸

 低壓差分傳送技術(shù)是基于低壓差分信號(hào)LVDS的傳送技術(shù),其主要特點(diǎn)是抗干擾能力強(qiáng)、傳輸速率高、低功耗、噪聲性能好。

 傳輸卡接收LVDS數(shù)據(jù)時(shí),考慮到在遠(yuǎn)距離的數(shù)據(jù)傳輸過程中會(huì)遇到一系列的干擾而導(dǎo)致信號(hào)的衰減,在接收端設(shè)計(jì)了CLC014驅(qū)動(dòng)芯片,發(fā)送端設(shè)計(jì)了CLC001驅(qū)動(dòng)芯片,其作用是把傳輸來的信號(hào)增強(qiáng)。CLC001與CLC014是配芯片,在設(shè)計(jì)中要一起使用才能夠起到對(duì)長(zhǎng)距離傳輸時(shí)信號(hào)衰減的恢復(fù)。串并/并串轉(zhuǎn)換電路中采用LVDS DS92LV1801芯片,它是一款18位的串并/并串轉(zhuǎn)換芯片,實(shí)現(xiàn)16位數(shù)據(jù)傳輸。

2.2 PCI Express接口設(shè)計(jì)

 PCI Express總線接口的設(shè)計(jì)方法大體有兩種:使用可實(shí)現(xiàn)PCI Express物理接口的可編程邏輯器件或使用專用接口芯片。前者的優(yōu)點(diǎn)是其靈活的可編程性,缺點(diǎn)是開發(fā)難度比較大,開發(fā)周期比較長(zhǎng);而專用接口芯片實(shí)現(xiàn)了PCI Express的物理層和數(shù)據(jù)鏈路層、事務(wù)層的控制邏輯,這使用戶可以專心于其應(yīng)用方面的開發(fā),而不必費(fèi)力再調(diào)試PCI Express接口,降低了開發(fā)的難度,是一般用戶實(shí)現(xiàn)PCI Express接口的有效方法。該設(shè)計(jì)采用美國(guó)PLX公司推出的作為本地總線與PCI Express總線的接口。

2.2.1 的性能簡(jiǎn)介

 是一款x1的PCI Express接口芯片,本地端總線頻率最高可達(dá)66 MHz,數(shù)據(jù)位寬32 bit。PEX8311有主模式、從模式和DMA三種數(shù)據(jù)傳輸模式。主模式是由 Local總線主設(shè)備通過PEX8311訪問PCI Express總線存儲(chǔ)空間和I/O空間;從模式是由PCI Express總線主設(shè)備通過PEX8311訪問Local總線存儲(chǔ)空間和I/O空間;DMA傳輸模式由PEX8311作為兩總線的主設(shè)備,能在PCI Express總線存儲(chǔ)空間和Local總線存儲(chǔ)空間之間互傳數(shù)據(jù)。這三種數(shù)據(jù)傳輸方式中,從模式的優(yōu)先級(jí)最高,主模式次之,DMA方式最低。PEX8311橋高速數(shù)據(jù)傳輸?shù)膬?nèi)部塊圖解如圖2所示。

PEX8311有6個(gè)內(nèi)部FIFO,分別作為主模式、從模式、DMA這三種數(shù)據(jù)傳輸模式的讀寫數(shù)據(jù)通道,這些FIFO用于使兩條總線的操作相對(duì)獨(dú)立,從而保證高性能的數(shù)據(jù)突發(fā)傳輸。

2.2.2 電路設(shè)計(jì)

 從圖2可看出,采用PEX8311的接口設(shè)計(jì)在邏輯上可分為3個(gè)功能模塊:PCI Express接口部分、EEPROM部分和本地總線部分。

 (1) EEPROM部分

 PEX8311提供兩個(gè)串行EEPROM接口,在系統(tǒng)上電后讀取配置信息。SPI串行EEPROM是PCI-Express的配置EEPROM,它主要用來控制PCI Express的性能。SPI串行EEPROM可以用來預(yù)配置片上8 KB共享緩存,用1、2或3字節(jié)地址PEX8311可支持容量達(dá)到16 MB的SPI串行EEPROM。本設(shè)計(jì)中使用容量為64 KB的AT25640器件。MicroWire串行EEPROM是本地配置EEPROM,它用來控制本地總線行為,并分配合適的地址范圍。配置器件可直接與PEX831l相連。

 (2) PCI Express接口部分

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

(3) 本地總線部分

 LOCAL端具有32位數(shù)據(jù)總線寬度和66 MHz時(shí)鐘頻率,PEX8311支持三種LOCAL總線接口模式: C模式、J模式和M模式, 可方便與多種微處理器連接。接口模式由MODE0和MODE1兩管腳確定。實(shí)際中常用的還是時(shí)序邏輯相對(duì)簡(jiǎn)單的C模式, 即非復(fù)用的地址/數(shù)據(jù)總線模式。PEX8311支持三種局部總線數(shù)據(jù)傳輸模式:單周期模式、四周期突發(fā)模式、連續(xù)突發(fā)模式。

 DMA傳輸數(shù)據(jù)使傳輸任務(wù)從主控設(shè)備中解脫出來,由短且有效的傳輸描述符來承擔(dān),讓主控設(shè)備可以有時(shí)間去處理其他事件。PEX8311有兩個(gè)DMA通道,可以同時(shí)處理兩側(cè)總線上要求的傳輸,免去外部設(shè)備的等待。另外,DMA傳輸可以與主模式和從模式傳輸同步操作,但后兩者比DMA傳輸優(yōu)先級(jí)高??紤]到DMA傳輸有以上優(yōu)點(diǎn),本設(shè)計(jì)中PCI Express接口部分采用四周期突發(fā)模式DMA塊傳輸模式,LOCAL總線接口采用C模式。

2.3 FPGA邏輯控制

 在本設(shè)計(jì)中FPGA采用了Altera公司的CycloneII系列的 EP2C20F484芯片,這款芯片具有484個(gè)IO引腳,其中可用IO引腳315個(gè),具有68 416個(gè)邏輯單元,有1.1 Mbit的RAM可利用,可變的端口RAM配置×1,×2,×4,×8,×9,×16,×18,×32和×36。對(duì)EP2C20F484芯片配置可以使用EPCS4、EPCS16。在本設(shè)計(jì)中采用EPCS4對(duì)EP2C20F484芯片配置。其配置原理圖如圖4所示。

 在上面的配置原理圖中有兩個(gè)下載口:一個(gè)是JTAG下載口,一個(gè)是AS下載口。其中JTAG下載口是用來下載.sof文件的,下載.sof文件后可以使用quartus II 6.0的邏輯分析儀進(jìn)行在線調(diào)試;另一個(gè)下載口是下載.pof文件的,其作用是把程序燒寫進(jìn)EPCS4配置芯片,在FPGA每次加電開始工作之后,把程序?qū)б紽PGA的內(nèi)部RAM中,使器件實(shí)現(xiàn)設(shè)計(jì)者要求的邏輯功能。

 FPGA作為本地總線的邏輯控制器,負(fù)責(zé)協(xié)調(diào)好與FIFO和PEX8311之間的時(shí)序關(guān)系。系統(tǒng)接收數(shù)據(jù)時(shí), 首先由驅(qū)動(dòng)程序向PEX8311發(fā)送復(fù)位信號(hào),通過LRESET復(fù)位本地端的FPGA和FIFO,清空FIFO內(nèi)部數(shù)據(jù),并將HF和FF標(biāo)志置為無效,然后等待數(shù)據(jù)的輸入。數(shù)據(jù)和時(shí)鐘進(jìn)入FPGA后, 首先將外界傳入到FPGA中的16位并行數(shù)據(jù)在兩個(gè)CLK周期下合并為32位并行數(shù)據(jù), 并在每一個(gè)寫時(shí)鐘WCLK的上升沿寫入FIFO2。當(dāng) FIFO2中的數(shù)據(jù)達(dá)到半滿狀態(tài)時(shí), HF標(biāo)志位有效,通過FPGA向PEX8311發(fā)出DMA中斷請(qǐng)求。PC機(jī)響應(yīng)中斷后, 設(shè)置 DMA傳輸模式, 傳輸字節(jié)數(shù)及地址信號(hào)等。PEX8311通過LHOLD申請(qǐng)控制本地總線, 待收到FPGA發(fā)出的 LHOLDA響應(yīng)信號(hào)后獲得本地總線的控制權(quán), 并立即啟動(dòng)4字節(jié)突發(fā)模式的Block DMA周期。FPGA在收到有效的LW/R讀信號(hào)和ADS地址選通信號(hào)后, 發(fā)出Ready本地準(zhǔn)備好應(yīng)答信號(hào), 同時(shí)使能FIFO2的讀允許 REN和輸出允許OE。在傳輸最后一個(gè)數(shù)據(jù)時(shí), PEX8311發(fā)出BLAST信號(hào), FPGA置FIFO讀使能和輸出使能無效, 并取消Ready從而結(jié)束DMA周期。系統(tǒng)發(fā)送數(shù)據(jù)時(shí),F(xiàn)PGA將計(jì)算機(jī)寫入FIFO1中的32位數(shù)據(jù)拆分成兩個(gè)16位數(shù)據(jù)送入并串轉(zhuǎn)換芯片再經(jīng)過驅(qū)動(dòng)芯片發(fā)送到測(cè)試臺(tái)。

3 軟件設(shè)計(jì)

 本系統(tǒng)軟件設(shè)計(jì)包括驅(qū)動(dòng)程序和應(yīng)用程序兩部分。為了降低開發(fā)難度、縮短時(shí)間,又不使所開發(fā)的驅(qū)動(dòng)程序效率太低,本文選用DriverStudio來開發(fā)PCI-E的功能驅(qū)動(dòng)程序。應(yīng)用層軟件采用VC++6.0編寫,按用戶要求運(yùn)行于Windows2000/WindowsXP平臺(tái)。通過和人機(jī)交互界面接收用戶的設(shè)置,然后把這些設(shè)置傳遞至驅(qū)動(dòng)程序中,由驅(qū)動(dòng)程序?qū)τ布M(jìn)行初始化和配置,最后應(yīng)用程序從驅(qū)動(dòng)程序中讀寫數(shù)據(jù)。本應(yīng)用程序采用了多線程的方式與驅(qū)動(dòng)程序進(jìn)行交互通信。

4 性能測(cè)試

 信號(hào)源的數(shù)據(jù)格式可以根據(jù)需要設(shè)置,軟件默認(rèn)設(shè)置為遞增數(shù)據(jù)。圖5為自檢信號(hào)源數(shù)據(jù),該數(shù)據(jù)為00-FF遞增數(shù)據(jù)。將信號(hào)源數(shù)據(jù)下載到地面控制臺(tái)RAM中。

下載信號(hào)源成功后,將地面控制臺(tái)RAM中的數(shù)據(jù)讀入上位機(jī)來驗(yàn)證是否信號(hào)源正確。通過圖6所示的數(shù)據(jù)分析軟件可以詳細(xì)地檢驗(yàn)從RAM中讀回的數(shù)據(jù)是否準(zhǔn)確。

此數(shù)據(jù)波形驗(yàn)證了PCI Express傳輸卡能夠?qū)崟r(shí)無誤地傳輸數(shù)據(jù)。通過功能測(cè)試及數(shù)據(jù)分析可知,系統(tǒng)實(shí)現(xiàn)了任務(wù)中提出的功能要求,達(dá)到了技術(shù)指標(biāo)。



關(guān)鍵詞: PCI Express PEX8311 FPGA 接口

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉