摘 要: 基于NI公司的智能FPGA板卡以及圖形化編程軟件LabVIEW設計并實現了一種通用數據采集系統。該系統與傳統的數據采集系統相比結構簡單、開發周期短、可靠性高、實時性好,并且對于不同應用場合,在FPGA邏輯單元足夠多的情況下可以很簡便地依據實際情況對其做相應調整,具有較強的通用性。
關鍵詞: FPGA; 數據采集; 通用性; LabVIEW
中圖分類號: TN919.5?34 文獻標識碼: A 文章編號: 1004?373X(2013)23?0147?04
Design of universal data acquisition system based on intelligent FPGA board of NI
LIU Mai?jun, DONG Min?zhou, YU Yun?feng
(School of Astronautics, Northwestern Polytechnical University, Xi’an 710072, China)
Abstract: A universal data acquisition system is designed and achieved based on NI intelligent FPGA board and LabVIEW graphical programming software. Compared with traditional data acquisition systems,The designed system is simple, highly reliable, better real?time and has a short development cycle. For different applications, it could be modulated easily according to the actual situation in the condition of enough logical gates of FPGA, and it has strong universality.
Keywords: FPGA; data acquisition; universality; LabVIEW
0 引 言
數據采集是信號分析和處理的重要環節,在導彈半實物仿真過程中快速可靠的實驗數據為提高仿真精度發揮著重要的作用。傳統的數據采集系統各種數字、模擬信號相互交織,相應的外圍電路龐大,接口復雜,要占用較大的電路板空間,無法滿足系統的小型化要求,同時硬件成本也很高。當系統性能指標發生變化時,相應的功能電路和與之對應的隔離、濾波等電路以及相關程序都要改變。這種牽一發而動全身的結構導致系統的可擴展性比較低,系統的通用性比較差。另一方面,早期數據采集系統多是基于復雜可編程邏輯器件(CPLD)設計的,數據的采樣速度和精度都不是很高。
隨著集成電路技術的發展,NI公司的FPGA板卡以其IO引腳多、片內資源豐富、結構靈活、具有嵌入式控制器的特點獲得了越來越多的應用,其納秒級的速度可以較大地提高數據采樣的速度和精度。因此,基于NI公司FPGA板卡的數據采集系統和傳統的數據采集系統相比更能實時、快速地監測信號量的變化。而且該系統結構簡單、開發周期短、可靠性高、實時性好,能夠完成導彈半實物仿真的數據采集任務,具有較強的通用性。
1 系統方案設計
設計該數據采集系統的主要目的是在導彈半實物仿真系統中采集導彈的舵信號,將其傳給上位機進行運算和仿真。該系統的可擴展性比較好,可以靈活地適應不同的應用場合,具有較強的通用性。
系統結構圖如圖1所示,系統實物圖如圖2所示,將具有數據采集功能和數據通信功能的前端接口電路板卡集成在一個機箱里面,連接在同一塊背板上由獨立電源統一供電。背板上的四個接口通過NI公司專用數據線和安裝在工控機里面的FPGA板卡相連接。通過FPGA板卡與LabVIEW圖形化編程開發平臺,實現工控機與半實物硬件系統之間的數據采集和控制信號的傳輸。NI公司FPGA板卡的I/O端口從C0~C3共分為四個接口,每個接口40個端口。通過LabVIEW平臺進行設置可以方便地自由支配、定義任何一個端口的read/write功能,很好地解決了高速數據采集系統的控制問題。也可以由FPGA板卡向前端接口電路提供統一的時鐘信號和命令字,使不同功能的電路板卡同步進行數據操作。
由碼盤、旋轉變壓器/自整角機等傳感器測量到的舵偏角信息輸入系統之后,按照相應的功能需要接入不同的前端接口板卡進行光耦隔離或者經過濾波、放大等處理,經由機箱背板電路到達FPGA端口。通過FPGA分析和處理的信號之后再被傳入上位機中進行存儲、分析、計算、顯示等處理。
圖1 基于NI智能FPGA板卡的數據采集系統結構
圖2 基于NI智能FPGA板卡的數據采集系統實物
在FPGA的邏輯單元足夠的情況下,對于不同的應用場合可以很簡便地通過增刪不同功能的前端接口電路板實現相應的使用要求,從而不會對系統的其他部分產生影響。因此,該系統的可擴展性比較好,可以靈活地適應不同的應用場合,具有較強的通用性。
2 硬件設計
以前端接口板a的實現為例,其主要構成為16位的D/A轉換器DAC7731模塊、14位A/D轉換器TLC3574模塊及其他輔助電路。
2.1 D/A轉換電路
DAC7731為16位的數字模擬轉換芯片,其內部提供+10 V的參考電壓。將其模擬量輸出通過引腳設置為-10~+10 V的電壓范圍。DAC7731具有帶雙緩沖的標準三線SPI串行接口,允許模擬輸出的異步更新。如圖3所示,它還有一個串行數據輸出線以實現多片DAC7731的鏈接。系統工作時由LabVIEW圖形化編程開發平臺通過FPGA生成和發送DAC7731芯片的SPI接口和時序控制信號,通過SDI信號依次將需要轉換的數據以從最后一片到第一片的順序發送給每片DAC7731,之后通過[CS]和LADC信號實現多片DAC7731的同步轉換輸出。
圖3 D/A轉換電路
2.2 A/D轉換電路
綜合考慮系統的分辨率、通道數、采樣率、采樣范圍和接口等要求,系統的ADC選用TI公司的14位8通道高性能逐次逼近型模數轉換器TLC3574。該器件工作頻率高達25 MHz,采用偽差分的模擬輸入電路,將采樣信號的動態范圍擴展為[±10 V,]其內含的采樣和保持功能使得外圍電路大為簡化。在輸出接口上,該器件采用SPI/DSP兼容的串行接口方式,從而極大地減少了接口的連線數量。A/D轉換電路原理如圖4所示,由FPGA生成TLC3574的SPI接口和時序信號,控制其將外部的模擬信號轉換后輸入到FPGA,進行相應的計算和處理。由于TLC3574片內沒有電壓基準,可選用TI公司的三端可調分流基準源TL431組成外圍電路為其提供一個高精度的4 V電壓基準。
圖4 A/D轉換電路
考慮到信號的阻抗匹配需要,ADC的輸入前端需要有一個緩沖運放,其性能必須與ADC的性能相匹配,否則會影響和限制ADC的性能。在數據采集過程中如果信號的變化幅度比較大,則需要根據信號的變化相應調整放大器的增益。否則,單一的增益放大會使得放大后的信號幅值很有可能超過ADC的轉換量程。這里所采集的信號其變化幅度不是很大,采用TI公司高轉換率的輸入端運算放大器TL084就可以滿足系統的使用要求。
2.3 數字量輸入/輸出設計
直接將通用背板的FPGA端口引到前端接口板,根據測試對象的接口電路,如27 V/開、地/開等形式,選擇繼電器、OC門、光耦隔離等方式,實現數字量的輸入和輸出。
2.4 串口電路設計
由于FPGA板卡具有便利的輸入輸出控制功能,利用FPGA板卡可以很方便的通過連接不同的接口芯片選擇相應的串口模式。MAX490是低功耗收發器,用于RS 485與RS 422通信。它具有一個驅動器和一個接收器,驅動器擺率不受限制,可以實現最高2.5 Mb/s的傳輸速率。驅動器具有短路電流限制,并可以通過熱關斷電路將驅動器輸出置為高阻狀態,防止過度的功率損耗。接收器輸入具有失效保護特性,當輸入開路時,可以確保邏輯高電平輸出。如圖5所示,通過連接低功耗收發器MAX490可以實現RS 422通信,而改接SP3223芯片后就可以實現RS 232通信,區別只是在于FPGA中建立的UART邏輯模塊有所不同,進一步顯示了系統良好的通用性。
圖5 串口電路
2.5 電氣隔離設計
由于該系統為模擬/數字混合信號系統,電路中的噪聲會對數模和模數轉換精度造成影響,因此在電路的實現上應該對板卡芯片進行降噪和隔離保護,這樣既避免了不同信號之間的相互影響,提高了系統的共模抑制能力,也使得一些比較昂貴的芯片不會因為外部信號的不穩定而燒毀。
傳統的隔離方式是對每個通道都使用電容耦合模擬隔離芯片ISO124等進行隔離。這類隔離方式其輸入和輸出分別由兩組直流電源供電,而且存在較大的漂移,輸出信號通常存在紋波,尤其當信號比較小時,輸出的相對誤差會增大。因此,還需要對輸出信號進行濾波、調零等調理措施,使得系統電路比較復雜。
光電耦合器性能優越,具有良好的抗干擾能力,因而被廣泛地應用于輸入和輸出信號的電氣隔離。使用HCPL2630等高速光耦進行光耦隔離,只需要一組直流供電電源,電路十分簡單。其良好的電絕緣能力和抗干擾能力使得模擬地和數字地分開,消除了共模電壓影響。系統選用串行而非并行的ADC和DAC,只需要隔離三路的SPI總線數字信號,這樣進一步簡化了電路設計。
3 軟件設計
3.1 FPGA邏輯
FPGA智能板卡是整個數據采集系統的核心,由其產生和發送DAC與ADC的SPI接口和工作時序。其內部的邏輯單元主要包括:DAC控制器、ADC控制器、接口單元等。DAC和ADC控制器是FPGA內部的主要執行單元,它按照DAC和ADC工作時序進行相應的工作。
DAC控制器:對于發送過程,在建立周期,DAC控制器初始化控制信號CS(置“1”);在命令周期,使能CS信號(置“0”),同時按照時鐘節拍,將16 b命令字以串行方式發送至DAC;在采樣周期,對CS信號進行保持;轉換周期,置位CS信號(置“1”);對于接收過程,在建立周期LDAC處于鎖定狀態(置“1”);在接收周期,以串行方式接收上次轉換的16 b數據;在存儲周期,控制器將LADC置“0”,改變寄存器內容;在空閑周期,復位LADC(置“1”)恢復寄存器的鎖定狀態。
ADC控制器:對于發送過程,在建立周期,ADC控制器初始化控制信號CS(置“l”);在命令周期,使能CS信號(置“0”),同時按照時鐘節拍,將16 b命令字以串行方式發送至ADC;在采樣周期,對CS信號進行保持;在轉換周期,置位CS信號(置“1”),并載入下一通道的命令字,同時,計算下一次接收數據的存儲地址。對于接收過程,在建立周期,控制器清零各接收寄存器,同時復位內部RAM的寫信號WR(置“0”);在接收周期,控制器按照時鐘節拍,接收ADC上一次轉換的14 b串行數據;在存儲周期,控制器使能WR信號(置“1”),并將接收到的數據寫入ADC通道對應的RAM單元;在空閑周期,控制器復位WR信號(置“0”)。
3.2 LabVIEW程序設計
根據FPGA內部的邏輯單元結構和功能,通過NI公司的LabVIEW圖形化編程開發平臺對上述邏輯進行了設計,并進行了功能仿真。給出ADC控制器LabVIEW程序實現,如圖6所示。
NI公司的LabVIEW圖形化編程開發平臺具有一系列的優點,它不同于VHDL等基于時序的語言,而是一種基于信號流向的語言,程序運行過程和真實硬件電路運行原理相似,用LabVIEW編程的過程就像設計電路圖一樣。另外它有不需要預先編譯就存在語法檢查和調試過程使用的數字探針,其豐富的函數、數值分析、信號處理和設備驅動等功能,都是十分優越的。LabVIEW將廣泛的數據采集、分析與顯示功能集中在了同一個環境中,可以在自己的平臺上無縫地集成一套完整的應用方案。
將由LabVIEW圖形化編程開發平臺通過FPGA生成的正弦信號經D/A電路輸出,經過A/D電路進行采集。分別選定四路不同的D/A通道和A/D通道進行輸出和輸入顯示,圖形一致,程序運轉正常,波形顯示清晰。限于DAC和ADC轉換速度,采集到的波形存在著微小的相位延遲。如圖7所示。
圖7 數據采集結果
4 結 語
基于NI公司FPGA板卡設計和實現的通用數據采集系統原理簡單,易于實現。該系統可靠性、實時性、快速性比較好,使得數據處理能力得到了極大的提高,可完全勝任大容量、高精度數據的高速采集。對于采集到的信號可以進行實時處理或保存,也可通過串行口將其送至上位機進行后續分析處理。對于不同應用場合,在FPGA的邏輯單元足夠的情況下可以很簡便地依據實際情況對其做相應調整,具有較強的通用性,實用價值比較高。
參考文獻
[1] 張貴清,朱磊,顏露新,等.基于FPGA的多路同步實時數據采集方案設計與實現[J].測控技術,2005,24(12):26?29.
[2] 程建鑫,何玉珠,向復生.通用數據采集系統的設計[J].電子測量技術,2008,31(5):100?101.
[3] 崔詣.嵌入式的通用數據采集和控制系統[J].福建電腦,2006(11):173?173.
[4] 萬軍華,張國云,羅榮輝,等.基于FPGA和USB接口的高速高精度通用數據采集卡設計[J].湖南理工學院學報,2010,23(1):45?48.
[5] 沙晶晶,董洪軍,李蒙.多路數據采集系統的設計與實現[J].現代電子技術,2012,35(21):59?61.
[6] 錢科威,許永輝,劉勁松.基于DSP/BIOS的數據采集系統研制[J].現代電子技術,2012,35(20):12?14.
作者簡介:劉麥軍 男,1987年出生,甘肅莊浪人,碩士研究生。主要研究方向為飛行器測控與仿真技術。