基于NI智能FPGA板卡的通用數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:基于NI公司的智能FPGA板卡以及圖形化編程軟件LabVIEW設(shè)計(jì)并實(shí)現(xiàn)了一種通用數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)與傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)相比結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)周期短、可靠性高、實(shí)時(shí)性好,并且對(duì)于不同應(yīng)用場(chǎng)合,在FPGA邏輯單元足夠多的情況下可以很簡(jiǎn)便地依據(jù)實(shí)際情況對(duì)其做相應(yīng)調(diào)整,具有較強(qiáng)的通用性。
0 引言
數(shù)據(jù)采集是信號(hào)分析和處理的重要環(huán)節(jié),在導(dǎo)彈半實(shí)物仿真過(guò)程中快速可靠的實(shí)驗(yàn)數(shù)據(jù)為提高仿真精度發(fā)揮著重要的作用。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)各種數(shù)字、模擬信號(hào)相互交織,相應(yīng)的外圍電路龐大,接口復(fù)雜,要占用較大的電路板空間,無(wú)法滿(mǎn)足系統(tǒng)的小型化要求,同時(shí)硬件成本也很高。當(dāng)系統(tǒng)性能指標(biāo)發(fā)生變化時(shí),相應(yīng)的功能電路和與之對(duì)應(yīng)的隔離、濾波等電路以及相關(guān)程序都要改變。這種牽一發(fā)而動(dòng)全身的結(jié)構(gòu)導(dǎo)致系統(tǒng)的可擴(kuò)展性比較低,系統(tǒng)的通用性比較差。另一方面,早期數(shù)據(jù)采集系統(tǒng)多是基于復(fù)雜可編程邏輯器件(CPLD)設(shè)計(jì)的,數(shù)據(jù)的采樣速度和精度都不是很高。
隨著集成電路技術(shù)的發(fā)展,NI公司的FPGA板卡以其IO引腳多、片內(nèi)資源豐富、結(jié)構(gòu)靈活、具有嵌入式控制器的特點(diǎn)獲得了越來(lái)越多的應(yīng)用,其納秒級(jí)的速度可以較大地提高數(shù)據(jù)采樣的速度和精度。因此,基于NI公司FPGA板卡的數(shù)據(jù)采集系統(tǒng)和傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)相比更能實(shí)時(shí)、快速地監(jiān)測(cè)信號(hào)量的變化。而且該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)周期短、可靠性高、實(shí)時(shí)性好,能夠完成導(dǎo)彈半實(shí)物仿真的數(shù)據(jù)采集任務(wù),具有較強(qiáng)的通用性。
1 系統(tǒng)方案設(shè)計(jì)
設(shè)計(jì)該數(shù)據(jù)采集系統(tǒng)的主要目的是在導(dǎo)彈半實(shí)物仿真系統(tǒng)中采集導(dǎo)彈的舵信號(hào),將其傳給上位機(jī)進(jìn)行運(yùn)算和仿真。該系統(tǒng)的可擴(kuò)展性比較好,可以靈活地適應(yīng)不同的應(yīng)用場(chǎng)合,具有較強(qiáng)的通用性。
系統(tǒng)結(jié)構(gòu)圖如圖1所示,系統(tǒng)實(shí)物圖如圖2所示,將具有數(shù)據(jù)采集功能和數(shù)據(jù)通信功能的前端接口電路板卡集成在一個(gè)機(jī)箱里面,連接在同一塊背板上由獨(dú)立電源統(tǒng)一供電。背板上的四個(gè)接口通過(guò)NI公司專(zhuān)用數(shù)據(jù)線和安裝在工控機(jī)里面的FPGA板卡相連接。通過(guò)FPGA板卡與LabV IEW圖形化編程開(kāi)發(fā)平臺(tái),實(shí)現(xiàn)工控機(jī)與半實(shí)物硬件系統(tǒng)之間的數(shù)據(jù)采集和控制信號(hào)的傳輸。NI公司FPGA板卡的I/O端口從C0~C3共分為四個(gè)接口,每個(gè)接口40個(gè)端口。通過(guò)LabVIEW平臺(tái)進(jìn)行設(shè)置可以方便地自由支配、定義任何一個(gè)端口的read/write功能,很好地解決了高速數(shù)據(jù)采集系統(tǒng)的控制問(wèn)題。也可以由FPGA板卡向前端接口電路提供統(tǒng)一的時(shí)鐘信號(hào)和命令字,使不同功能的電路板卡同步進(jìn)行數(shù)據(jù)操作。
由碼盤(pán)、旋轉(zhuǎn)變壓器/自整角機(jī)等傳感器測(cè)量到的舵偏角信息輸入系統(tǒng)之后,按照相應(yīng)的功能需要接入不同的前端接口板卡進(jìn)行光耦隔離或者經(jīng)過(guò)濾波、放大等處理,經(jīng)由機(jī)箱背板電路到達(dá)FPGA端口。通過(guò)FPGA分析和處理的信號(hào)之后再被傳入上位機(jī)中進(jìn)行存儲(chǔ)、分析、計(jì)算、顯示等處理。
在FPGA的邏輯單元足夠的情況下,對(duì)于不同的應(yīng)用場(chǎng)合可以很簡(jiǎn)便地通過(guò)增刪不同功能的前端接口電路板實(shí)現(xiàn)相應(yīng)的使用要求,從而不會(huì)對(duì)系統(tǒng)的其他部分產(chǎn)生影響。因此,該系統(tǒng)的可擴(kuò)展性比較好,可以靈活地適應(yīng)不同的應(yīng)用場(chǎng)合,具有較強(qiáng)的通用性。
2 硬件設(shè)計(jì)
以前端接口板a的實(shí)現(xiàn)為例,其主要構(gòu)成為16位的D/A轉(zhuǎn)換器DAC7731模塊、14位A/D轉(zhuǎn)換器TLC3574模塊及其他輔助電路。
2.1 D/A轉(zhuǎn)換電路
DAC7731為16位的數(shù)字模擬轉(zhuǎn)換芯片,其內(nèi)部提供+10 V的參考電壓。將其模擬量輸出通過(guò)引腳設(shè)置為-10~+10 V的電壓范圍。DAC7731具有帶雙緩沖的標(biāo)準(zhǔn)三線SPI串行接口,允許模擬輸出的異步更新。如圖3所示,它還有一個(gè)串行數(shù)據(jù)輸出線以實(shí)現(xiàn)多片DAC7731的鏈接。系統(tǒng)工作時(shí)由LabVIEW圖形化編程開(kāi)發(fā)平臺(tái)通過(guò)FPGA生成和發(fā)送DAC7731芯片的SPI接口和時(shí)序控制信號(hào),通過(guò)SDI信號(hào)依次將需要轉(zhuǎn)換的數(shù)據(jù)以從最后一片到第一片的順序發(fā)送給每片DAC7731,之后通過(guò)
和LADC信號(hào)實(shí)現(xiàn)多片DAC7731的同步轉(zhuǎn)換輸出。
2.2 A/D轉(zhuǎn)換電路
綜合考慮系統(tǒng)的分辨率、通道數(shù)、采樣率、采樣范圍和接口等要求,系統(tǒng)的ADC選用TI公司的14位8通道高性能逐次逼近型模數(shù)轉(zhuǎn)換器TLC3574。該器件工作頻率高達(dá)25 MHz,采用偽差分的模擬輸入電路,將采樣信號(hào)的動(dòng)態(tài)范圍擴(kuò)展為±10V,其內(nèi)含的采樣和保持功能使得外圍電路大為簡(jiǎn)化。在輸出接口上,該器件采用SPI/DSP兼容的串行接口方式,從而極大地減少了接口的連線數(shù)量。A/D轉(zhuǎn)換電路原理如圖4所示,由FPGA生成TLC3574的SPI接口和時(shí)序信號(hào),控制其將外部的模擬信號(hào)轉(zhuǎn)換后輸入到FPGA,進(jìn)行相應(yīng)的計(jì)算和處理。由于TLC3574片內(nèi)沒(méi)有電壓基準(zhǔn),可選用TI公司的三端可凋分流基準(zhǔn)源TL431組成外圍電路為其提供一個(gè)高精度的4 V電壓基準(zhǔn)。
考慮到信號(hào)的阻抗匹配需要,ADC的輸入前端需要有一個(gè)緩沖運(yùn)放,其性能必須與ADC的性能相匹配,否則會(huì)影響和限制ADC的性能。在數(shù)據(jù)采集過(guò)程中如果信號(hào)的變化幅度比較大,則需要根據(jù)信號(hào)的變化相應(yīng)調(diào)整放大器的增益。否則,單一的增益放大會(huì)使得放大后的信號(hào)幅值很有可能超過(guò)ADC的轉(zhuǎn)換量程。這里所采集的信號(hào)其變化幅度不是很大,采用TI公司高轉(zhuǎn)換率的輸入端運(yùn)算放大器TL084就可以滿(mǎn)足系統(tǒng)的使用要求。
2.3 數(shù)字量輸入/輸出設(shè)計(jì)
直接將通用背板的FPGA端口引到前端接口板,根據(jù)測(cè)試對(duì)象的接口電路,如27 V/開(kāi)、地/開(kāi)等形式,選擇繼電器、OC門(mén)、光耦隔離等方式,實(shí)現(xiàn)數(shù)字量的輸入和輸出。
2.4 串口電路設(shè)計(jì)
由于FPGA板卡具有便利的輸入輸出控制功能,利用FPGA板卡可以很方便的通過(guò)連接不同的接口芯片選擇相應(yīng)的串口模式。MAX490是低功耗收發(fā)器,用于RS 485與RS 422通信。它具有一個(gè)驅(qū)動(dòng)器和一個(gè)接收器,驅(qū)動(dòng)器擺率不受限制,可以實(shí)現(xiàn)最高2.5 Mb/s的傳輸速率。驅(qū)動(dòng)器具有短路電流限制,并可以通過(guò)熱關(guān)斷電路將驅(qū)動(dòng)器輸出置為高阻狀態(tài),防止過(guò)度的功率損耗。接收器輸入具有失效保護(hù)特性,當(dāng)輸入開(kāi)路時(shí),可以確保邏輯高電平輸出。如圖5所示,通過(guò)連接低功耗收發(fā)器MAX490可以實(shí)現(xiàn)RS 422通信,而改接SP3223芯片后就可以實(shí)現(xiàn)RS 232通信,區(qū)別只是在于FPGA中建立的UART邏輯模塊有所不同,進(jìn)一步顯示了系統(tǒng)良好的通用性。
2.5 電氣隔離設(shè)計(jì)
由于該系統(tǒng)為模擬/數(shù)字混合信號(hào)系統(tǒng),電路中的噪聲會(huì)對(duì)數(shù)模和模數(shù)轉(zhuǎn)換精度造成影響,因此在電路的實(shí)現(xiàn)上應(yīng)該對(duì)板卡芯片進(jìn)行降噪和隔離保護(hù),這樣既避免了不同信號(hào)之間的相互影響,提高了系統(tǒng)的共模抑制能力,也使得一些比較昂貴的芯片不會(huì)因?yàn)橥獠啃盘?hào)的不穩(wěn)定而燒毀。
傳統(tǒng)的隔離方式是對(duì)每個(gè)通道都使用電容耦合模擬隔離芯片ISO124等進(jìn)行隔離。這類(lèi)隔離方式其輸入和輸出分別由兩組直流電源供電,而且存在較大的漂移,輸出信號(hào)通常存在紋波,尤其當(dāng)信號(hào)比較小時(shí),輸出的相對(duì)誤差會(huì)增大。因此,還需要對(duì)輸出信號(hào)進(jìn)行濾波、調(diào)零等調(diào)理措施,使得系統(tǒng)電路比較復(fù)雜。
光電耦合器性能優(yōu)越,具有良好的抗干擾能力,因而被廣泛地應(yīng)用于輸入和輸出信號(hào)的電氣隔離。使用HCPL2630等高速光耦進(jìn)行光耦隔離,只需要一組直流供電電源,電路十分簡(jiǎn)單。其良好的電絕緣能力和抗干擾能力使得模擬地和數(shù)字地分開(kāi),消除了共模電壓影響。系統(tǒng)選用串行而非并行的ADC和DAC,只需要隔離三路的SPI總線數(shù)字信號(hào),這樣進(jìn)一步簡(jiǎn)化了電路設(shè)計(jì)。
3 軟件設(shè)計(jì)
3.1 FPGA邏輯
FPGA智能板卡是整個(gè)數(shù)據(jù)采集系統(tǒng)的核心,由其產(chǎn)生和發(fā)送DAC與ADC的SPI接口和工作時(shí)序。其內(nèi)部的邏輯單元主要包括:DAC控制器、ADC控制器、接口單元等。DAC和ADC控制器是FPGA內(nèi)部的主要執(zhí)行單元,它按照DAC和ADC工作時(shí)序進(jìn)行相應(yīng)的工作。
DAC控制器:對(duì)于發(fā)送過(guò)程,在建立周期,DAC控制器初始化控制信號(hào)CS(置“1”);在命令周期,使能CS信號(hào)(置“0”),同時(shí)按照時(shí)鐘節(jié)拍,將16 b命令字以串行方式發(fā)送至DAC;在采樣周期,對(duì)CS信號(hào)進(jìn)行保持;轉(zhuǎn)換周期,置位CS信號(hào)(置“1”);對(duì)于接收過(guò)程,在建立周期LDAC處于鎖定狀態(tài)(置“1”);在接收周期,以串行方式接收上次轉(zhuǎn)換的16 b數(shù)據(jù);在存儲(chǔ)周期,控制器將LADC置“0”,改變寄存器內(nèi)容;在空閑周期,復(fù)位LADC(置“1”)恢復(fù)寄存器的鎖定狀態(tài)。
ADC控制器:對(duì)于發(fā)送過(guò)程,在建立周期,ADC控制器初始化控制信號(hào)CS(置“1”);在命令周期,使能CS信號(hào)(置“0”),同時(shí)按照時(shí)鐘節(jié)拍,將16 b命令字以串行方式發(fā)送至ADC;在采樣周期,對(duì)CS信號(hào)進(jìn)行保持;在轉(zhuǎn)換周期,置位CS信號(hào)(置“1”),并載入下一通道的命令字,同時(shí),計(jì)算下一次接收數(shù)據(jù)的存儲(chǔ)地址。對(duì)于接收過(guò)程,在建立周期,控制器清零各接收寄存器,同時(shí)復(fù)位內(nèi)部RAM的寫(xiě)信號(hào)WR(置“0”);在接收周期,控制器按照時(shí)鐘節(jié)拍,接收ADC上一次轉(zhuǎn)換的14 b串行數(shù)據(jù);在存儲(chǔ)周期,控制器使能WR信號(hào)(置“1”),并將接收到的數(shù)據(jù)寫(xiě)入ADC通道對(duì)應(yīng)的RAM單元;在空閑周期,控制器復(fù)位WR信號(hào)(置“0”)。
3.2 LabVIEW程序設(shè)計(jì)
根據(jù)FPGA內(nèi)部的邏輯單元結(jié)構(gòu)和功能,通過(guò)NI公司的LabVIEW圖形化編程開(kāi)發(fā)平臺(tái)對(duì)上述邏輯進(jìn)行了設(shè)計(jì),并進(jìn)行了功能仿真。給出ADC控制器LabVIEW程序?qū)崿F(xiàn),如圖6所示。
NI公司的LabVIEW圖形化編程開(kāi)發(fā)平臺(tái)具有一系列的優(yōu)點(diǎn),它不同于VHDL等基于時(shí)序的語(yǔ)言,而是一種基于信號(hào)流向的語(yǔ)言,程序運(yùn)行過(guò)程和真實(shí)硬件電路運(yùn)行原理相似,用LabVIEW編程的過(guò)程就像設(shè)計(jì)電路圖一樣。另外它有不需要預(yù)先編譯就存在語(yǔ)法檢查和調(diào)試過(guò)程使用的數(shù)字探針,其豐富的函數(shù)、數(shù)值分析、信號(hào)處理和設(shè)備驅(qū)動(dòng)等功能,都是十分優(yōu)越的。LabVIEW將廣泛的數(shù)據(jù)采集、分析與顯示功能集中在了同一個(gè)環(huán)境中,可以在自己的平臺(tái)上無(wú)縫地集成一套完整的應(yīng)用方案。
將由LabVIEW圖形化編程開(kāi)發(fā)平臺(tái)通過(guò)FPGA生成的正弦信號(hào)經(jīng)D/A電路輸出,經(jīng)過(guò)A/D電路進(jìn)行采集。分別選定四路不同的D/A通道和A/D通道進(jìn)行輸出和輸入顯示,圖形一致,程序運(yùn)轉(zhuǎn)正常,波形顯示清晰。限于DAC和ADC轉(zhuǎn)換速度,采集到的波形存在著微小的相位延遲。如圖7所示。
4 結(jié)語(yǔ)
基于NI公司FPGA板卡設(shè)計(jì)和實(shí)現(xiàn)的通用數(shù)據(jù)采集系統(tǒng)原理簡(jiǎn)單,易于實(shí)現(xiàn)。該系統(tǒng)可靠性、實(shí)時(shí)性、快速性比較好,使得數(shù)據(jù)處理能力得到了極大的提高,可完全勝任大容量、高精度數(shù)據(jù)的高速采集。對(duì)于采集到的信號(hào)可以進(jìn)行實(shí)時(shí)處理或保存,也可通過(guò)串行口將其送至上位機(jī)進(jìn)行后續(xù)分析處理。對(duì)于不同應(yīng)用場(chǎng)合,在FPGA的邏輯單元足夠的情況下可以很簡(jiǎn)便地依據(jù)實(shí)際情況對(duì)其做相應(yīng)調(diào)整,具有較強(qiáng)的通用性,實(shí)用價(jià)值比較高。