基于CPCI和光纖接口的數(shù)據(jù)采集卡設(shè)計與實現(xiàn)
摘要:設(shè)計了一套基于CPCI總線,PCI9054橋接芯片和可編程邏輯器件(FPGA)的高速數(shù)據(jù)采集卡。FPGA作為本地主控芯片,根據(jù)工控機經(jīng)PCI9054轉(zhuǎn)發(fā)的采集命令,通過光纖接口實現(xiàn)與雷達接收機的通信。采用高速RAM緩存數(shù)據(jù),采集的接收機測試數(shù)據(jù)的分析結(jié)果可在工控機上顯示,從而實現(xiàn)了對雷達接收機性能的快速測試。該采集卡具有較強的通用性和可擴展性,詳細介紹了高速數(shù)據(jù)采集卡的組成和工作原理、硬件設(shè)計。
關(guān)鍵詞:光纖接口;CPCI總線;PCI9054;FPGA;雷達接收機測試
隨著雷達技術(shù)的發(fā)展和雷達型號的增多,現(xiàn)代雷達接收機數(shù)據(jù)處理速度顯著提高。因此,在雷達接收機的測試和維護中,對接收機測試系統(tǒng)的數(shù)據(jù)處理能力、可擴展性等性能要求也在不斷提高。傳統(tǒng)的雷達接收機測試系統(tǒng)由于專用性強、兼容性差、擴展能力不足,而CPCI總線的通用性、高可靠性和抗震動性使其在雷達信號處理板中得到廣泛的應(yīng)用。同時,由于傳輸高速雷達信號的需求,光纖在雷達系統(tǒng)中得到了廣泛的應(yīng)用?;谝陨戏治?,本文設(shè)計并實現(xiàn)了一種基于光纖接口,使用CPCI總線通信的高速、通用性強的高速數(shù)據(jù)采集卡。通過實際測試,該采集卡可以很好地完成數(shù)據(jù)采集等雷達接收機測試的功能,并具有較好的通用性和可擴展性。
1 系統(tǒng)設(shè)計
高速數(shù)據(jù)采集卡主要由StratixⅡGX FPGA、光纖接口、SRAM、PCI9054橋接芯片等構(gòu)成。本系統(tǒng)設(shè)計的目的是應(yīng)用于雷達數(shù)據(jù)的采集和分析,為了高速、可靠地傳輸雷達信號,決定采用光纖作為傳輸媒介,充分利用光纖傳輸損耗小、抗干擾能力強、傳輸速率高等優(yōu)點。
采用FPGA作為信號采集系統(tǒng)的核心,這種方式最大的優(yōu)點就是結(jié)構(gòu)靈活,有較強的通用性,適合模塊化設(shè)計,能夠提高效率,同時其開發(fā)周期較短,系統(tǒng)容易維護和擴展。圖1是該系統(tǒng)的硬件框圖。
其工作流程如下:PC機通過CPCI接口將采集命令等送入FPGA,F(xiàn)PGA對命令進行譯碼,通過光纖接口向雷達接收機發(fā)出參數(shù)設(shè)置命令,然后通過光纖接口接收采集的雷達接收機數(shù)據(jù)。光纖接口將光信號轉(zhuǎn)換成串行電信號送入FPGA,F(xiàn)PGA對數(shù)據(jù)進行串/并轉(zhuǎn)換、數(shù)據(jù)緩沖等所必須的信號處理過程,然后存儲到高速RAM中。當(dāng)計算機發(fā)出數(shù)據(jù)傳輸命令后,再將數(shù)據(jù)通過CPCI總線送入計算機進行存儲、分析處理和顯示等。同時系統(tǒng)還保留了一部分電信號的接口,便于和現(xiàn)有的系統(tǒng)兼容。
2 系統(tǒng)硬件設(shè)計
2.1 時鐘設(shè)計
系統(tǒng)中FPGA的時鐘信號由一個125 MHz晶振直接提供,PCI9054的時鐘由一個40 MHz晶振提供。高速RAM和光纖接口的時鐘信號則是由FPGA通過內(nèi)部的PLL提供。因為時鐘信號是非常敏感的信號,所以要盡量減少反射和串?dāng)_等一些問題。在時鐘信號線上串接適當(dāng)?shù)钠ヅ潆娮杩梢杂行У販p少反射,減少串?dāng)_則需要在時鐘走線周圍留出額外的空間。在本設(shè)計中,將時鐘線單獨放在兩個地平面層中間的一層,保證了時鐘信號的完整性。
2.2 CPCI接口設(shè)計
目前,PCI接口的設(shè)計有兩種方法,一種為使用專用的PCI接口芯片來設(shè)計,這種方法相對來說較為簡單;另一種方法是利用FPGA進行設(shè)計,這種方法比較復(fù)雜,開發(fā)難度較大。本設(shè)計采用第一種方法,即采用PCI9054接口芯片實現(xiàn)PCI總線。
PCI9054芯片適用于通用的32位、33 MHz的局部總線設(shè)計。它的本地總線可為三種模式:M模式,C模式和J模式,可利用模式選擇引腳加以選擇。本設(shè)計選用C模式,即32位的地址/數(shù)據(jù)總線非復(fù)用。
PCI9054提供了三種物理總線接口:PCI總線接口、LOCAL總線接口、串行EPROM接口。CPCI接口設(shè)計思路是:FPGA通過PCI9054與PCI總線相連,在FPGA內(nèi)部實現(xiàn)PCI本地端的時序控制。PCI9054芯片內(nèi)部2個獨立DMA通道,可以實現(xiàn)系統(tǒng)數(shù)據(jù)在PC機內(nèi)存與數(shù)據(jù)采集卡之間的高速傳輸。PCI9054接口電路如圖2所示。
[!--empirenews.page--]
CPCI數(shù)據(jù)采集卡的上電工作流程是:將PCI卡插到工控機插槽中后系統(tǒng)上電自檢,此時PCI9054的RST#復(fù)位,PCI9054芯片檢測E2PROM是否存在,如果存在,PCI9054會根據(jù)E2PROM的配置信息初始化其內(nèi)部寄存器,BIOS根據(jù)PCI9054配置寄存器的內(nèi)容進行系統(tǒng)資源分配,進入系統(tǒng)后安裝PCI9054驅(qū)動。由以上進程可以看出,E2PROM的配置對于CPCI的正常工作起著重要的作用。
E2PROM配置信息主要包括以下兩部分:PCI配置寄存器填寫生產(chǎn)商ID號、器件ID號、類碼子系統(tǒng)ID號和子系統(tǒng)生產(chǎn)商ID號;本地配置寄存器的配置,即對本地地址空間及其本地總線屬性的配置。
2.3 光纖接口設(shè)計
光電轉(zhuǎn)換驅(qū)動器選用LTP-ST11MB。這款芯片數(shù)據(jù)速率高達2.5 GHz,兼容光纖通道協(xié)議,具有良好的EMI性能。由于該芯片差分輸出信號的電平是LVPECL或PECL的,所以要采用AC耦合電路來完成兩種電平的轉(zhuǎn)換。耦合電容如果選的太大,將嚴(yán)重減緩信號的傳輸速度,且由于充放電時問過長,對高速信號的響應(yīng)將變得很壞;如果太小,將改變線路的阻抗特性,增大衰減。綜合考慮,耦合電容的容值在0.01μF比較適當(dāng)。光纖接口的供電部分要注意的是,發(fā)送器和接收器最好采用獨立的電源。光纖接口的外圍電路配置如圖3所示。
[!--empirenews.page--]
2.4 SRAM讀寫設(shè)計
RAM有多種寫的模式,可以按位擦寫也可以按區(qū)塊擦寫。本系統(tǒng)選用相對簡單快速的連續(xù)寫的模式,此種模式需要一開始就向RAM依次寫入控制字,然后每個時鐘信號寫入一個字。讀操作只要各控制線置位正確讀取相應(yīng)地址位的數(shù)據(jù),不需輸入控制序列脈沖通過CE的變化來判斷讀。
RAM的讀操作時序如圖4所示。
2.5 FPGA控制程序的設(shè)計
如前面所述,F(xiàn)PGA主要完成時序協(xié)調(diào)和傳輸控制以及數(shù)據(jù)流的串/并轉(zhuǎn)換和緩存,如圖5所示。
FPGA選用Altera公司的StratixⅡGX系列,內(nèi)部帶有高速收發(fā)通道,可支持高速串行數(shù)據(jù)的傳輸;有多達20個嵌入3.125 Gb/s收發(fā)器和45個差分I/O,適合于高吞吐量的數(shù)據(jù)通道,包括高速背板和芯片間通信。該系列器件的嵌入收發(fā)器模塊采用通用技術(shù)和一些需要時鐘數(shù)據(jù)恢復(fù)(CDR)技術(shù)的新興接口之間接收和發(fā)送數(shù)據(jù)。每個收發(fā)器模塊具有四個全雙工通道串行編碼和同步數(shù)據(jù),在外部環(huán)境和StratixⅡGX器件
通道之間傳送。StratixⅡGX器件支持多種協(xié)議,包括10 Gb以太網(wǎng)XAUI,InfiniBand和SONET/SDH。同時內(nèi)置高速DSP模塊,可實現(xiàn)快速的乘法操作及FIR濾波器等功能,便于進行數(shù)據(jù)的快速處理。
根據(jù)系統(tǒng)主要的功能,F(xiàn)PGA控制程序主要包括時鐘模塊、數(shù)據(jù)處理模塊、RAM讀寫控制模塊、CPCI總線控制模塊、光纖接口模塊和其他接口控制等。
時鐘模塊主要將輸入的時鐘信號進行整形,并利用FPGA內(nèi)部的PLL,配置全局和局部時鐘,為各個模塊提供所需的時鐘信號。StratixⅡ GX FPGA系列具有8個鎖相環(huán)(PLL)和16個全局時鐘網(wǎng)絡(luò),提供含有多級時鐘結(jié)構(gòu)的完整時鐘管理解決方案。在本設(shè)計中,使用了Quartus軟件中內(nèi)置的PLL模塊,以簡化設(shè)計。圖6為PLL模塊部分。
數(shù)據(jù)處理模塊將各部分送來的數(shù)據(jù)進行相應(yīng)的處理操作,包括指令譯碼、數(shù)據(jù)格式轉(zhuǎn)換等,是整個控制程序的核心。
RAM讀寫模塊負責(zé)數(shù)據(jù)的存儲,根據(jù)數(shù)據(jù)處理模塊的命令,向RAM中寫入數(shù)據(jù)或者將RAM中的數(shù)據(jù)讀出并送往其他模塊。
CPCI總線控制模塊負責(zé)FPGA和PCI9054接口芯片的通信,實現(xiàn)PCI本地端的時序控制,完成接收機測試數(shù)據(jù)和設(shè)置命令的傳輸?shù)取?br />
光纖接口模塊使用StratixⅡGX內(nèi)部的嵌入式千兆位收發(fā)器功能模塊,接收光纖接口傳來的高速串行信號,同時在FPGA內(nèi)部實現(xiàn)自定義的收發(fā)協(xié)議,完成解包頭、解波門、分IQ路等功能。程序中使用了Quartus軟件中的ALTGXB模塊,部分設(shè)計如圖7所示。
除此之外,因為保留了一部分電接口,F(xiàn)PGA程序還有一個接口控制模塊,以實現(xiàn)原有的電接口相關(guān)功能,保證數(shù)據(jù)采集卡可以和較早型號的接收機測試系統(tǒng)保持兼容。[!--empirenews.page--]
3 CPCI驅(qū)動的開發(fā)
開發(fā)基于PCI的數(shù)據(jù)采集卡的驅(qū)動程序,主要有三個方面的問題:硬件訪問、中斷處理和DMA傳輸。
結(jié)合實際要求,從開發(fā)效率和驅(qū)動程序的執(zhí)行效率兩方面考慮,這里選擇使用DriverStudio進行驅(qū)動程序的開發(fā)。DriverStudio是一整套開發(fā)、調(diào)試和檢測Windows平臺下設(shè)備驅(qū)動程序的工具軟件包。它提供了一套完整的調(diào)試和性能測試工具,例如Driver Works,Drivet Monitor和SoftICE等。DriverWorks把微軟的DDK用類的形式進行封裝,簡化了WDM驅(qū)動程序的開發(fā),使用非常方便;SoftICE用來調(diào)試內(nèi)核模式的驅(qū)動程序;DriverMonitor可以很方便地觀察驅(qū)動程序的調(diào)試信息。DriverStudio所具備的高性能工具和對現(xiàn)代軟件工程的實踐,很大程度上方便了設(shè)備驅(qū)動程序的編寫。所以選擇DriverStudio開發(fā)設(shè)備驅(qū)動程序。
下面以DMA傳輸為例,介紹CPCI驅(qū)動程序的開發(fā):
編寫WDM驅(qū)動程序的DMA傳輸有特定的機制。DriverStudio中DMA整體的流程大致如下:當(dāng)應(yīng)用程序發(fā)出IRP_M J_READ的Irp后,驅(qū)動程序調(diào)用Irp的處理函數(shù)Handler,在這個Handler中初始化KDMATransfer,初始化完畢就調(diào)用DMAReady()函數(shù),在DMAReady()函數(shù)中啟動首次DMA傳輸即StartDMA,傳輸完后發(fā)生中斷,在中斷里調(diào)用Continue()啟動下次傳輸,直到全部數(shù)據(jù)完成。DMA過程的流程圖如圖8所示。
4 結(jié)語
文中設(shè)計的基于CPCI總線的通用雷達接收機測試系統(tǒng),采用了光纖作為雷達數(shù)據(jù)傳輸?shù)耐ǖ?,具有較好的數(shù)據(jù)處理能力。實驗證明該系統(tǒng)的軟硬件設(shè)計是成功的,可對多型雷達的性能進行快速的測試。該設(shè)計對于數(shù)據(jù)處理要求高、實時性強、數(shù)據(jù)量大、處理算法復(fù)雜多變的雷達信號處理系統(tǒng),有著重要的實際意義,具有廣闊的應(yīng)用前景。