《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PCI Express總線的高速數(shù)據(jù)傳輸卡設(shè)計(jì)與實(shí)現(xiàn)
基于PCI Express總線的高速數(shù)據(jù)傳輸卡設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2010年第8期
潘玉霞1,2, 馬游春1,2,3, 熊繼軍1,2
1. 中北大學(xué) 電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 山西 太原030051;2. 中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室, 山西 太原030051;3. 北京航空航天大學(xué) 光電技術(shù)研究所, 北京100083
摘要: 通過設(shè)計(jì)PCI Express高速數(shù)據(jù)傳輸卡實(shí)現(xiàn)了地面控制臺與計(jì)算機(jī)之間的高速數(shù)據(jù)傳輸。高速數(shù)據(jù)傳輸卡采用PLX公司的接口芯片PEX8311來實(shí)現(xiàn)PCI Express總線的接口邏輯,數(shù)據(jù)傳輸采用DMA方式,通過對信號源的自檢驗(yàn)證了傳輸卡能夠?qū)崟r(shí)無誤地傳輸數(shù)據(jù)。在硬件設(shè)計(jì)部分,主要對差分傳輸、PCI Express接口電路和FPGA邏輯控制模塊進(jìn)行了描述和設(shè)計(jì)。
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)08-0092-04
Design and implementation of a high-speed data transfer card based on PCI Express
PAN Yu Xia1,2, MA You Chun1,2,3, XIONG Ji Jun1,2
1. National Key Laboratory for Electronic Measurement Technology, North University of China, Taiyuan 030051, China;2. Key Laboratory of Instrumentation Science & Dynamic Measurement of Ministry of Education,North University of China, Taiyuan 030051, China;3. Institute of Opt-electronics, Beihang University, Beijing 100083, China
Abstract: A high-speed data transfer card based on PCI Express which realized high-speed data transfer between ground controller and computer was designed. Interface chip PEX8311 of PLX Co. was used to implemented interface logic, and the data transfer mode was DMA. Self-testing of data source can testify the function of the card. At the part of hardware implementation, the paper mostly presented LVDS transition、PCI Express interface circuit and FPGA logic control module.
Key words : PCI Express; PEX8311; FPGA; interface

   地面測控系統(tǒng)由上位機(jī)軟件、工業(yè)控制計(jì)算機(jī)、地面控制臺及相應(yīng)電纜網(wǎng)組成。在系統(tǒng)聯(lián)試前它可以和采編器、存儲器構(gòu)成閉環(huán)反饋,對采編器、存儲器實(shí)施自檢。地面控制臺在上位機(jī)軟件的控制下,真實(shí)模擬機(jī)上接口信號,為采編器提供不同的數(shù)字量信號,并對回收后的存儲器進(jìn)行數(shù)據(jù)的讀取分析。以前地面測試系統(tǒng)中的上位機(jī)軟件系統(tǒng)和地面控制臺之間的通信是由USB接口來完成的,傳輸速率較低。為了解決大容量數(shù)據(jù)高速讀取的瓶頸問題,采用PCI Express總線來讀取數(shù)據(jù)。PCI Express 采用了目前業(yè)內(nèi)流行的點(diǎn)對點(diǎn)串行連接, 每個設(shè)備都有自己的專用連接, 不需要向整個總線請求帶寬, 而且可以把數(shù)據(jù)傳輸率提高到一個很高的頻率, 達(dá)到 USB 所不能提供的高帶寬。本文設(shè)計(jì)并實(shí)現(xiàn)的數(shù)據(jù)傳輸卡基于PCI Express總線,提高了系統(tǒng)的讀寫速度,滿足了目前大容量高速實(shí)時(shí)傳輸記錄的要求。
1 系統(tǒng)結(jié)構(gòu)
 地面控制臺是模擬機(jī)上信號源功能,信號源由上位機(jī)生成,然后下載到地面控制臺的RAM中。為了正確地發(fā)送信號源數(shù)據(jù)需要對下載的信號源數(shù)據(jù)進(jìn)行自檢,即將地面控制臺RAM中的數(shù)據(jù)讀入上位機(jī)來驗(yàn)證控制臺中信號源是否正確。本系統(tǒng)通過PCI Express傳輸卡實(shí)現(xiàn)了信號源自檢功能。
    如圖1所示,上位機(jī)通過PCI Express接口將信號源的數(shù)據(jù)下載到FIFO1存儲器當(dāng)中,同時(shí)將相應(yīng)的控制命令發(fā)送給FPGA。FPGA檢測到相應(yīng)控制命令后,開始讀取FIFO1中的數(shù)據(jù),并將該數(shù)據(jù)經(jīng)過串并轉(zhuǎn)換寫到地面控制臺RAM中。為了保證上位機(jī)下載到靜態(tài)存儲器中的數(shù)據(jù)的正確性,上位機(jī)可以通過PCI Express接口將地面控制臺RAM中的數(shù)據(jù)寫到FIFO2存儲器當(dāng)中,讀取其中的數(shù)據(jù)并進(jìn)而對該數(shù)據(jù)進(jìn)行判讀以驗(yàn)證信號源數(shù)據(jù)的正確性。

2 硬件設(shè)計(jì)
2.1 差分傳輸

 低壓差分傳送技術(shù)是基于低壓差分信號LVDS的傳送技術(shù),其主要特點(diǎn)是抗干擾能力強(qiáng)、傳輸速率高、低功耗、噪聲性能好。
 傳輸卡接收LVDS數(shù)據(jù)時(shí),考慮到在遠(yuǎn)距離的數(shù)據(jù)傳輸過程中會遇到一系列的干擾而導(dǎo)致信號的衰減,在接收端設(shè)計(jì)了CLC014驅(qū)動芯片,發(fā)送端設(shè)計(jì)了CLC001驅(qū)動芯片,其作用是把傳輸來的信號增強(qiáng)。CLC001與CLC014是配芯片,在設(shè)計(jì)中要一起使用才能夠起到對長距離傳輸時(shí)信號衰減的恢復(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物理接口的可編程邏輯器件FPGA或使用專用接口芯片。前者的優(yōu)點(diǎn)是其靈活的可編程性,缺點(diǎn)是開發(fā)難度比較大,開發(fā)周期比較長;而專用接口芯片實(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ì)采用美國PLX公司推出的PEX8311作為本地總線與PCI Express總線的接口。
2.2.1 PEX8311的性能簡介
 PEX8311是一款x1的PCI Express接口芯片,本地端總線頻率最高可達(dá)66 MHz,數(shù)據(jù)位寬32 bit。PEX8311有主模式、從模式和DMA三種數(shù)據(jù)傳輸模式。主模式是由 Local總線主設(shè)備通過PEX8311訪問PCI Express總線存儲空間和I/O空間;從模式是由PCI Express總線主設(shè)備通過PEX8311訪問Local總線存儲空間和I/O空間;DMA傳輸模式由PEX8311作為兩總線的主設(shè)備,能在PCI Express總線存儲空間和Local總線存儲空間之間互傳數(shù)據(jù)。這三種數(shù)據(jù)傳輸方式中,從模式的優(yōu)先級最高,主模式次之,DMA方式最低。PEX8311橋高速數(shù)據(jù)傳輸?shù)膬?nèi)部塊圖解如圖2所示。

   PEX8311有6個內(nèi)部FIFO,分別作為主模式、從模式、DMA這三種數(shù)據(jù)傳輸模式的讀寫數(shù)據(jù)通道,這些FIFO用于使兩條總線的操作相對獨(dú)立,從而保證高性能的數(shù)據(jù)突發(fā)傳輸。
2.2.2 電路設(shè)計(jì)
 從圖2可看出,采用PEX8311的接口設(shè)計(jì)在邏輯上可分為3個功能模塊:PCI Express接口部分、EEPROM部分和本地總線部分。
 (1) EEPROM部分
 PEX8311提供兩個串行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接口部分的信號線可以直接與PCI Express連接器(俗稱金手指)連接。其中,REFCLK±是一組差分時(shí)鐘,它由系統(tǒng)主板提供。兩個參考時(shí)鐘都要求保持在正常工作頻率100 MHz ±300 Hz之內(nèi)。PRSNT1/PRSNT2信號線用于檢查附加卡是否插入連接器。此次設(shè)計(jì)中將PRSNT1和PRSNT2相連,這樣當(dāng)接口板插入到PCI Express連接器時(shí)就能進(jìn)行存在檢測。原理圖如圖3所示。

   (3) 本地總線部分
 LOCAL端具有32位數(shù)據(jù)總線寬度和66 MHz時(shí)鐘頻率,PEX8311支持三種LOCAL總線接口模式: C模式、J模式和M模式, 可方便與多種微處理器連接。接口模式由MODE0和MODE1兩管腳確定。實(shí)際中常用的還是時(shí)序邏輯相對簡單的C模式, 即非復(fù)用的地址/數(shù)據(jù)總線模式。PEX8311支持三種局部總線數(shù)據(jù)傳輸模式:單周期模式、四周期突發(fā)模式、連續(xù)突發(fā)模式。
 DMA傳輸數(shù)據(jù)使傳輸任務(wù)從主控設(shè)備中解脫出來,由短且有效的傳輸描述符來承擔(dān),讓主控設(shè)備可以有時(shí)間去處理其他事件。PEX8311有兩個DMA通道,可以同時(shí)處理兩側(cè)總線上要求的傳輸,免去外部設(shè)備的等待。另外,DMA傳輸可以與主模式和從模式傳輸同步操作,但后兩者比DMA傳輸優(yōu)先級高??紤]到DMA傳輸有以上優(yōu)點(diǎn),本設(shè)計(jì)中PCI Express接口部分采用四周期突發(fā)模式DMA塊傳輸模式,LOCAL總線接口采用C模式。
2.3 FPGA邏輯控制
 在本設(shè)計(jì)中FPGA采用了Altera公司的CycloneII系列的 EP2C20F484芯片,這款芯片具有484個IO引腳,其中可用IO引腳315個,具有68 416個邏輯單元,有1.1 Mbit的RAM可利用,可變的端口RAM配置×1,×2,×4,×8,×9,×16,×18,×32和×36。對EP2C20F484芯片配置可以使用EPCS4、EPCS16。在本設(shè)計(jì)中采用EPCS4對EP2C20F484芯片配置。其配置原理圖如圖4所示。

 在上面的配置原理圖中有兩個下載口:一個是JTAG下載口,一個是AS下載口。其中JTAG下載口是用來下載.sof文件的,下載.sof文件后可以使用quartus II 6.0的邏輯分析儀進(jìn)行在線調(diào)試;另一個下載口是下載.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ū)動程序向PEX8311發(fā)送復(fù)位信號,通過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ù)在兩個CLK周期下合并為32位并行數(shù)據(jù), 并在每一個寫時(shí)鐘WCLK的上升沿寫入FIFO2。當(dāng) FIFO2中的數(shù)據(jù)達(dá)到半滿狀態(tài)時(shí), HF標(biāo)志位有效,通過FPGA向PEX8311發(fā)出DMA中斷請求。PC機(jī)響應(yīng)中斷后, 設(shè)置 DMA傳輸模式, 傳輸字節(jié)數(shù)及地址信號等。PEX8311通過LHOLD申請控制本地總線, 待收到FPGA發(fā)出的 LHOLDA響應(yīng)信號后獲得本地總線的控制權(quán), 并立即啟動4字節(jié)突發(fā)模式的Block DMA周期。FPGA在收到有效的LW/R讀信號和ADS地址選通信號后, 發(fā)出Ready本地準(zhǔn)備好應(yīng)答信號, 同時(shí)使能FIFO2的讀允許 REN和輸出允許OE。在傳輸最后一個數(shù)據(jù)時(shí), PEX8311發(fā)出BLAST信號, FPGA置FIFO讀使能和輸出使能無效, 并取消Ready從而結(jié)束DMA周期。系統(tǒng)發(fā)送數(shù)據(jù)時(shí),F(xiàn)PGA將計(jì)算機(jī)寫入FIFO1中的32位數(shù)據(jù)拆分成兩個16位數(shù)據(jù)送入并串轉(zhuǎn)換芯片再經(jīng)過驅(qū)動芯片發(fā)送到測試臺。
3 軟件設(shè)計(jì)
 本系統(tǒng)軟件設(shè)計(jì)包括驅(qū)動程序和應(yīng)用程序兩部分。為了降低開發(fā)難度、縮短時(shí)間,又不使所開發(fā)的驅(qū)動程序效率太低,本文選用DriverStudio來開發(fā)PCI-E的功能驅(qū)動程序。應(yīng)用層軟件采用VC++6.0編寫,按用戶要求運(yùn)行于Windows2000/WindowsXP平臺。通過和人機(jī)交互界面接收用戶的設(shè)置,然后把這些設(shè)置傳遞至驅(qū)動程序中,由驅(qū)動程序?qū)τ布M(jìn)行初始化和配置,最后應(yīng)用程序從驅(qū)動程序中讀寫數(shù)據(jù)。本應(yīng)用程序采用了多線程的方式與驅(qū)動程序進(jìn)行交互通信。
4 性能測試
 信號源的數(shù)據(jù)格式可以根據(jù)需要設(shè)置,軟件默認(rèn)設(shè)置為遞增數(shù)據(jù)。圖5為自檢信號源數(shù)據(jù),該數(shù)據(jù)為00-FF遞增數(shù)據(jù)。將信號源數(shù)據(jù)下載到地面控制臺RAM中。

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

    此數(shù)據(jù)波形驗(yàn)證了PCI Express傳輸卡能夠?qū)崟r(shí)無誤地傳輸數(shù)據(jù)。通過功能測試及數(shù)據(jù)分析可知,系統(tǒng)實(shí)現(xiàn)了任務(wù)中提出的功能要求,達(dá)到了技術(shù)指標(biāo)。
參考文獻(xiàn)
[1]  黃小紅,李峰, 倪衛(wèi)芳. PEX8311芯片數(shù)據(jù)傳輸研究[J]. 電子工程師,2007,33(10):64-67.
[2]  PLX Technology,Inc.PEX 8311 PCI Express-to-Generic  Local Bus Bridge Data Book[Z].2005.
[3]  PLX Technology,Inc.PEX 8311RDK Hardware Reference Manual,Version 0.90[Z].2005.
[4]  WU Qiang, XU Jia Mou, LI Xu Wen. The research and  implementation of interfacing based on PCI express. The Ninth International Conference on Electronic Measurement  & Instruments. ICEMI,2009.
[5]  YU Peng, LI Bo, LIU Da Tong. A high speed DMA transaction method for PCI express devices[C].2009 IEEE Circuits and Systems International Conference on 2009.
[6]  許軍,李玉山,賀占莊,等. PCI Express總線技術(shù)研究[J].計(jì)算機(jī)工程與科學(xué),2006,28(5).

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