邢占春,曹芳菊,黃進燕,黃 凱
(1.中國電子科技集團公司第五十四研究所,河北石家莊050081;2.邢臺職業(yè)技術學院,河北邢臺054000)
CPCI是國際工業(yè)計算機制造者聯(lián)合會(PCI Industrial Computer Manufacturer’s Group,PICMG)組織于1994年提出的高性能工作計算機總線標準。CPCI總線在電氣方面兼容PCI總線,CPCI架構的設備電氣連接性能好、可靠性高、散熱好、兼容性強,并且維護使用非常方便,允許有多個外圍CPCI插卡需要與CPCI主板進行通信,通過分時復用共享CPCI總線帶寬。這些特點允許我們設計更為復雜、靈活的信號采集平臺[1,2]。
8路采集板卡主要由變壓器匹配電路、A/D變換器、FPGA(A/D控制邏輯、數據濾波及處理)、時鐘分配模塊、9054 橋芯片、FIFO 和電源等組成[3-5]。8路采集處理單元原理框圖如圖1所示。
圖1 8路采集處理單元原理
設計中選用Analog Devices的AD9252主要基于幾方面考慮:
①單通道最高采樣率滿足信號采集平臺采樣率的需求。奈奎斯特采樣定理指出了在模數轉換過程中,當采集頻率fs.max大于信號中最高頻率fmax的2倍時(fs.max≥2fmax),采樣后的數字信號完整保留了原始信號中的信息。一般講采集頻率為信號最高頻率的3~4倍。本系統(tǒng)要求中頻信號帶寬為0~2 MHz,則采樣率最高為8 MSPS,而AD9252最高采樣率為50 MSPS,可以保證頻譜不會發(fā)性混疊。
②SFDR和SNR指標。AD9252無雜散動態(tài)范圍SFDR為84 dBc(to Nyquist);信噪比(SNR)為73 dB(to Nyquist),滿足系統(tǒng)要求。
③多通道之間同步問題。單個板卡上實現8路信號采集必然涉及到采集同步問題,如果使用多個芯片實現,還需要考慮芯片間的時鐘同步問題,增加了PCB設計的難度,因此選擇單芯片設計是最佳選擇。AD9252就是一款8通道的采集芯片,每個通道采用Serial LVDS傳輸數據,實現簡單且抗干擾性強,并且減小了實現通道間同步采集的難度,只需要保證各模擬輸入接口到芯片相應通道管腳的鏈路間信號延遲接近即可,不用專門設計同步時鐘電路[7,8]。
在設計中選用FPGA完成對ADC芯片控制和數據交互,對采集數據進行數字濾波處理,實現與PCI9054橋芯片及FIFO的信息交互等功能,根據設計需要可在FPGA內實現更多的數據處理和算法功能。
基于以上考慮,選用XILINX公司的Virtex5系列芯片(XC5VSX50T-2FFG665I),該芯片具有8 160個Virtex-5 Slices、4 752 Kb的 RAM、288 個DSP48E Slices(其中每一個DSP48E Slices包含一個25×18的乘法器、一個加法器及一個累加器)以及其他大量資源,設計中的8路數字濾波器耗用資源最多的,基本占用了接近一半的資源。該芯片可以很好地支持多種電平標準,方便與其他芯片互聯(lián),硬件上設計簡單??煽啃愿?、功耗低及環(huán)境適應性等方面都滿足設計要求[9]。
步話機里傳來前方斷斷續(xù)續(xù)的聲音:“報告師長,抓住五連一個逃兵,其余弟兄全部陣亡。全部陣亡。逃兵怎么處置,請師長指示?!?/p>
在橋芯片選擇上主要基于以下考慮:
CPCI規(guī)范中規(guī)定 CPCI系統(tǒng)有 33 MHz和66 MHz兩種,數據位寬有32 bit和64 bit兩種。4個采集卡需要同時工作,通過分時復用共享CPCI總線帶寬,所以需要選擇合適的總線頻率和總線位寬才能滿足需求。
為了使8路AD采集卡有更強的適應性,設計中增加了CPCI接口中的J2作為自定義接口,這樣模擬信號既可以從前面板輸入,也可以通過自定義底板傳輸到8路AD采集卡中,因此CPCI總線只能選擇32位總線。
根據系統(tǒng)要求估算每個采集通道每秒傳輸2 MB數據,32個通道每秒傳輸64 MB數據,因此需要總線帶寬大于64 MB即可。在總線帶寬理論上的簡單計算公式是:帶寬=(總線頻率×數據位寬)/8,單位是MB/s,因此 33 MHz、32位的總線帶寬極值為132 MB/s,66 MHz、64位的總線帶寬極值為528 MB/s,根據最終設計的單個采集卡測試,采用DMA傳輸方式,在保證不丟失數據的前提下,可實現最高90 MB/s的數據傳輸率,所以總線選擇32 bit,33 MHz可滿足信號采集平臺總線數據吞吐率的要求。
該平臺主要由一個CPCI主板和4塊采集卡構成。之所以采用多塊采集實現32路采集,基于以下幾點考慮:設計單塊采集卡實現8路信號采集功能比設計單卡直接實現32路信號采集功能更容易,尤其是器件選型方面優(yōu)勢明顯,能夠將單卡設計的指標更高,總體性能指標很好保證,而且由于板卡尺寸的限制,前檔板空間有限,模擬信號的接插件更容易選擇方便操作和維護的型號。并且這種設計使得平臺適應性很強,通過增加或減少采集卡個數滿足模擬通道路數不同采集應用需求,在可靠性和維修等方面優(yōu)勢也很明顯。
該平臺主要由4塊8路采集卡、1塊CPCI主板(即單板計算機)及4U CPCI機箱組成,可以對32路模擬信號同時進行采集和處理,并能通過CPCI總線傳給主板進行相關處理,其原理框圖如圖2所示。
圖2 32路采集平臺原理
2.2.1 驅動
板卡上采用了PCI9054,同時PLX提供了PLXMON 軟件(V3.5),9054 的驅動(Pci9054.sys),inf文件(PciSdk.inf),還有庫函數。將 PCI9054配制文件導入PLXMON軟件中,根據需求進行修改,設置LocalDesAdrr為不同值,分別對應于卡1到卡4,并且需要在PciSdk文件中Driver information一項中添加相應信息,安裝完成后可以在設備管理器中看到4個板卡設備。
2.2.2 采集軟件設計
采集軟件主要是將4塊采集卡的數據進行錄取、解包、存儲和數據分析。PLX公司在提供驅動的同時還提供了相應的庫函數,通過“封裝”、調用這些函數可以實現與板卡的PCI接口通信,進而實現采集控制和錄取數據等功能。通過PCI方式進行參數設置,簡單信息交互;通過DMA方式可以進行大量數據傳輸,實現錄取數據功能。
2.2.3 8路采集卡CPCI接口程序設計
FPGA數據傳輸程序原理:接收主板計算機采集軟件發(fā)送的控制指令,包括選擇采集方式(通過同步脈沖信號觸發(fā)開始采集或軟件通過上發(fā)指令主動開始采集),然后等待外部角觸發(fā)信號(同步脈沖信號脈沖或主板發(fā)送的主動采集控制命令),信號到來后,首先發(fā)送低脈沖信號(MRS_FIFO)清空FIFO,然后將8路采集數據按規(guī)則打包,并發(fā)送給FIFO,當FIFO半滿時半滿標志(HF_FIFO)被置低,同時產生DMA中斷信號(INT),FPGA控制產生DMA讀時序,主板計算機DMA控制器響應中斷,產生 LHOLD、ADS#、LW/R#和 LA[31..2]等信號,FPGA控制FIFO將存儲容量一半(即256 KB)的數據通過9054傳給主板計算機采集軟件。采用同步脈沖信號觸發(fā)方式的數據傳輸控制邏輯時序圖如圖3所示。采集軟件通過PCI方式下發(fā)控制指令,可隨時結束采集過程[10-12]。
圖3 同步脈沖觸發(fā)模式下數據傳輸控制邏輯時序
2.2.4 采集數據檢驗
為了防止采集數據丟失、錯誤以及板卡間數據錯亂,在對采集數據打包過程中加入了標志字和校驗數據,與8個通道采集數據組一幀,每幀數據內容依次是標志字、8通道采集數據和幀校驗數據。標志字包括板卡代號信息和簡單計數信息,例如:“A000”表示卡1第1組數據,“CFFF”表示卡3第4 096組數據;幀檢驗字即對幀內前9個數據按位異或得到的結果。通過板卡代號信息可以判別采集軟件采集到的數據分別來自哪個板卡,防止板卡間數據錯亂;通過計數信息可以知道有無丟幀,保證數據完整性;通過校驗字可以確保數據傳輸正確。上述判別功能在采集軟件中實現。
經工程應用檢驗,該方法能很好的確保數據正確傳輸,使用過程中沒有卡間錯亂和丟幀等問題。
詳細介紹了32路采集平臺的設計與實現,對軟硬件設計中的若干問題作了說明和分析,并提出了實現方案,通過平臺采集軟件可實現對采集平臺具體工作模式的配制,滿足不同的應用需求,因此該采集平臺有較好的適應能力,并體現了系統(tǒng)可重構的思想,應用面廣,較好地滿足了工程應用中對較多路信號采集的需求。同時通過Matlab對錄取的數據進行綜合分析,該平臺很好地滿足了工程技術需求,具有較高噪比,低誤碼率,采集通道間同步性好等特點,這些特點在工程應用中已經得到了體現。
[1] PICMG2.0D3.0 CompactPCI Specification[S],1999.
[2] 孫國良.基于FPGA的CPCI接口數據采集系統(tǒng)設計[D].北京:北京郵電大學,2009:17 -33.
[3] 張 奕,余海龍,譚劍美.四通道高速數據采集系統(tǒng)設計[J].現代電子技術,2012(9):10-12.
[4] 楊林楠,李紅剛,張麗蓮,等.基于FPGA的高速多路數據采集系統(tǒng)的設計[J].計算機工程 ,2007(7):35-37.
[5] 張 博,段哲民.基于 FPGA的數據采集系統(tǒng)設計[J].電子設計工程,2012(7):86 -88.
[6] 白同云.高速PCB電源完整性研究[J].中國電子科學研究院學報,2006(1):22-30.
[7] 杜建和.基于FPGA的高速信號采集與處理系統(tǒng)[D].云南:云南大學,2010:16 -17.
[8] 唐玉蓉.基于FPGA的高速數據采集系統(tǒng)的設計與實現[D].北京:北京郵電大學,2012:9-12.
[9] 郭金鵬,王蘊珠.大容量FPGA設計方法探討[J].無線電工程,2008,38(1):51 -54.
[10]梁九鵬,李永亮,鄭 佳.FPGA器件中PLL的設計應用[J].無線電工程,2007,37(9):62 -64.
[11]周銀祥.基于U盤和單片機的FPGA安全配置的設計與實現[D].成都:電子科技大學,2010:1-4.
[12]齊懷龍.基于多 FPGA邏輯仿真系統(tǒng)的研究[D].重慶:重慶大學,2010:6-8.