胡永兵,周云飛,楊 欽
(華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,湖北 武漢 430074)
在巨型或大型測(cè)控系統(tǒng)中,往往需要對(duì)大量測(cè)試點(diǎn)進(jìn)行數(shù)據(jù)采集,并要求數(shù)據(jù)采集系統(tǒng)能夠更快、更準(zhǔn)、更穩(wěn)定。這些測(cè)試點(diǎn)需要監(jiān)控不同的模擬信號(hào),例如:溫度、濕度、壓力、速度等。
因基于單片機(jī)的數(shù)據(jù)采集系統(tǒng)處理速度低下,而基于DSP的數(shù)據(jù)采集系統(tǒng)會(huì)產(chǎn)生過(guò)于頻繁的中斷,所以考慮采用基于可編程邏輯器件 (FPGA)的數(shù)據(jù)采集系統(tǒng)?;贔PGA數(shù)據(jù)采集系統(tǒng)有著開發(fā)周期短、集成度高、功耗低、工作頻率高、設(shè)計(jì)費(fèi)用低、編程配置靈活等一系列優(yōu)點(diǎn)[1]。本文介紹了一種基于FPGA的高速高精度多通道的數(shù)據(jù)采集系統(tǒng),并對(duì)此系統(tǒng)的精度性能進(jìn)行了一定的分析。
基于FPGA的高速高精度多通道采集系統(tǒng)由如下幾個(gè)模塊組成:電流與電壓輸入信號(hào)可選模塊、差分信號(hào)轉(zhuǎn)單端信號(hào)模塊、模/數(shù)轉(zhuǎn)換模塊、數(shù)/模轉(zhuǎn)化模塊和信號(hào)處理控制模塊,如圖1所示。不論是4 mA~20 mA的電流信號(hào),還是-10 V~+10 V的電壓信號(hào),都可以被采集。這些模擬信號(hào)經(jīng)由電流信號(hào)與電壓信號(hào)可選模塊,經(jīng)過(guò)選擇后,再通過(guò)差分信號(hào)轉(zhuǎn)單端信號(hào)模塊進(jìn)行差分轉(zhuǎn)單端處理(單端信號(hào)也適用),然后再進(jìn)入到高速精密模/數(shù)轉(zhuǎn)換器進(jìn)行數(shù)據(jù)轉(zhuǎn)換。在這整個(gè)過(guò)程中,F(xiàn)PGA對(duì)模/數(shù)轉(zhuǎn)換器進(jìn)行時(shí)序控制,同時(shí)將轉(zhuǎn)換后的數(shù)字信號(hào)傳輸給處理模塊。為了驗(yàn)證數(shù)據(jù)采集系統(tǒng)的精度性能,在本文中特意加入了數(shù)/模轉(zhuǎn)換電路,其主要作用就是與模/數(shù)轉(zhuǎn)換模塊進(jìn)行聯(lián)調(diào)。
在工業(yè)應(yīng)用中,常見的模擬信號(hào)都是以電流或電壓形式被采集,其范圍一般為4 mA~20 mA電流或者-10 V~+10 V電壓[2]。為了使數(shù)據(jù)采集系統(tǒng)既能采集電流信號(hào)又能采集電壓信號(hào),在模擬信號(hào)進(jìn)入的前端設(shè)計(jì)了一個(gè)可選的電流信號(hào)轉(zhuǎn)電壓信號(hào)的轉(zhuǎn)換電路。
當(dāng)采集的信號(hào)是電流信號(hào)時(shí),需要將電流信號(hào)轉(zhuǎn)換成電壓信號(hào)。在圖2中使用250 Ω的精密電阻作為I/V轉(zhuǎn)換的取樣電阻,將輸入的電流信號(hào)轉(zhuǎn)換為電壓信號(hào),采用公式:
其中,Vin為轉(zhuǎn)換后電壓信號(hào),Iin為采集的電流信號(hào),R為采樣電阻。電流信號(hào)從P0和N0口輸入,其中P0端接信號(hào)端,N0端接地。4 mA~20 mA的電流信號(hào)通過(guò)式(1)可轉(zhuǎn)化成1 V~5 V電壓信號(hào)。
圖2 電流、電壓輸入信號(hào)可選電路圖
當(dāng)采集的信號(hào)是電壓信號(hào)時(shí),只需不焊接圖2中電阻R185。而且此時(shí)輸入的信號(hào)既可以是差分信號(hào),也可以是單端信號(hào)。
INA2134是采用片上精密電阻和高性能運(yùn)算放大器組成的差分線路接收器,具有卓越的AC性能,包括低失真(1 kHz時(shí)的 0.000 5%)和高壓擺率(14 V/μs),保證良好的動(dòng)態(tài)響應(yīng)。此外,寬輸出電壓擺幅和高輸出驅(qū)動(dòng)能力,適用于多種要求苛刻的應(yīng)用環(huán)境。雙通道含有完全獨(dú)立的電路,可以防止交互串?dāng)_,即便過(guò)載或超載也能保證不相互影響[3]。
如圖3所示,差分信號(hào)分別接在引腳3、引腳2和引腳5、引腳 6,連接到輸入源阻抗必須是幾乎相等,以保證良好的共模抑制。一個(gè)10 Ω的源阻抗不匹配,會(huì)降低近74 dB的共模抑制比[3]。
INA2134采用±15 V電源供電,且每個(gè)電源引腳上加上去耦電容,這些電容要充分靠近芯片引腳。輸入的差分信號(hào),經(jīng)INA2134轉(zhuǎn)換成單端信號(hào),VAIN0=VAIN_P0-VAIN_N0,然后從AIN0輸出。
AD7606是16 bit 8通道同步采樣的模數(shù)數(shù)據(jù)采集系統(tǒng),其內(nèi)置模擬輸入箝位保護(hù)、二階抗混疊濾波器、跟蹤保持放大器、16 bit電荷再分配逐次逼近模/數(shù)轉(zhuǎn)換器(ADC)、靈活的數(shù)字濾波器、2.5 V基準(zhǔn)電壓源、基準(zhǔn)電壓緩沖以及高速串行和并行接口。AD7606采用5 V單電源供電,可以處理±10 V和±5 V真雙極性輸入信號(hào),同時(shí)所有通道均能以高達(dá)200 kS/s的吞吐速率采樣[4]。
從INA2134輸出的模擬信號(hào),進(jìn)入 AD7606。圖4顯示了AD7606的電路圖,4個(gè)AVCC電源引腳需要各使用1個(gè)100 nF和1個(gè)10 μF去耦電容。VDRIVE電源連接到與處理器(FPGA)供電的同一電源。
引腳 CONVST A、CONVST B、RESET、BUSY、nRD/SCLK和引腳nCS分別連接到FPGA的普通I/O端。其中引腳CONVST A、CONVST B可以互連后再連接到FPGA;引腳nBUSY的信號(hào)流向是從AD7606到FPGA,其余的則是通過(guò)FPGA控制AD7606的。V1和V1GND為單端信號(hào)輸入引腳對(duì),DB0~DB15為轉(zhuǎn)換輸出的數(shù)字信號(hào)。
DAC8822是雙路、2.7 V~5.5 V單電源供電的乘法數(shù)模轉(zhuǎn)換器,具有低噪聲、低功耗、低穩(wěn)定時(shí)間等優(yōu)良特性[5],它與OPA4277硬件連線如圖5所示。
引腳D0~D15為 DAC8822的數(shù)字?jǐn)?shù)據(jù)輸入端,引腳nWR、A0、A1、nRS、LDAC 和 RSTSEL 分別連接在處理器(FPGA)上。FPGA通過(guò)對(duì)A0、A1寫邏輯選擇輸出通道。采用與處理器一樣的3.3 V電源供電,采取外部高精密參考。為了保證輸出的模擬信號(hào)盡可能少地受到影響,在模擬輸出端連接了一個(gè)高精密放大器OPA4277作為電壓跟隨器,采用雙極性電源±15 V供電。
控制器采用Altera公司的Cyclone III系列的FPGA,其具有低功耗、低成本和高性能,體系結(jié)構(gòu)包括高達(dá)120 K的垂直排列邏輯單元(LE)、以 9 KB(M9K)模塊構(gòu)成的4 Mb/s嵌入式存儲(chǔ)器、200個(gè)18×18的嵌入式乘法器,且含有非常高效的互聯(lián)和低偏移時(shí)鐘網(wǎng)絡(luò),為時(shí)鐘和數(shù)據(jù)信號(hào)結(jié)構(gòu)提供鏈接;采用3.3 V、2.5 V、1.2 V分別給不同模塊進(jìn)行供電;靈活的I/O控制使得電路設(shè)計(jì)方便、編程簡(jiǎn)化等[6]。在本研究中采用的是EP3C25F324。采用AS和JTAG配置模式,配置芯片為 EPCS16SI8N[7]。器件的時(shí)鐘配置為50 MHz。
程序的編寫采用硬件描述語(yǔ)言Verilog HDL,編寫軟件為 Altera Quartus II9.0。
控制器FPGA通過(guò)對(duì)模數(shù)轉(zhuǎn)換器AD7606寫邏輯實(shí)現(xiàn)對(duì)模/數(shù)轉(zhuǎn)換器的控制。圖6是并行模式下轉(zhuǎn)換時(shí)讀取數(shù)據(jù)時(shí)序圖。首先將轉(zhuǎn)換器件復(fù)位,然后檢測(cè)BUSY和RD的狀態(tài),并將CON_A、CON_B寫為高電平;當(dāng)BUSY為低電平、RD為高電平時(shí),通過(guò)對(duì)CON_A、CON_B進(jìn)行寫低操作,并維持 t2,然后再寫為高。在CON_A、CON_B變?yōu)楦唠娖街蟮膖3時(shí)間段后,BUSY將會(huì)自動(dòng)轉(zhuǎn)變成為高電平,表示此時(shí)采樣結(jié)束,開始進(jìn)行數(shù)據(jù)轉(zhuǎn)換。在轉(zhuǎn)換過(guò)程中,同時(shí)對(duì)上一次的轉(zhuǎn)換進(jìn)行數(shù)據(jù)讀取,即在BUSY為高電平后的t4時(shí)間段,將CS寫為低電平;在經(jīng)過(guò)t5時(shí)間段后,將RD進(jìn)行寫8個(gè)脈沖,在每個(gè)下降沿時(shí)讀取并行數(shù)據(jù)總線上的數(shù)據(jù)。
控制器FPGA通過(guò)對(duì)數(shù)模轉(zhuǎn)化器DAC8822的寫邏輯實(shí)現(xiàn)數(shù)/模轉(zhuǎn)換操作,圖7為數(shù)/模轉(zhuǎn)換器偏程時(shí)序圖。
WR為寫寄存器使能信號(hào),低電平有效;LDAC是DAC寄存器數(shù)據(jù)傳輸使能。RS為復(fù)位信號(hào),低電平有效。A0和A1為地址編碼信號(hào),其高低電平的不同,則輸出通道不同,如表1所示。
表1 DAC8822輸出通道選擇情況
為了驗(yàn)證本數(shù)據(jù)采集系統(tǒng)精度性能,在研究中將模/數(shù)轉(zhuǎn)換器的輸出直接作為模/數(shù)轉(zhuǎn)換器的輸入,即將DAC8822的輸出端直接接在電流、電壓輸入信號(hào)可選電路的輸入,作為AD7606的輸入信號(hào);然后將AD7606輸出的數(shù)字量與DAC8822設(shè)定數(shù)字量進(jìn)行比較。采用最小二乘標(biāo)定將實(shí)測(cè)結(jié)果進(jìn)行標(biāo)定,分析實(shí)際轉(zhuǎn)換結(jié)果與理論結(jié)果的差值。采集系統(tǒng)的采集值如表2所示。利用MATLAB分別繪得圖8和圖9,其中圖8為未標(biāo)定的AD輸出值與理論值的十六進(jìn)制比較;圖9為標(biāo)定的AD輸出值與理論值的十六進(jìn)制比較,從圖9中可見,標(biāo)定后數(shù)據(jù)采集系統(tǒng)具有良好的精度性能,可以達(dá)到14 bit精度以上。
表2 17個(gè)數(shù)據(jù)采集值
本設(shè)計(jì)中,簡(jiǎn)單且可選的電流轉(zhuǎn)電壓信號(hào)的轉(zhuǎn)換電路設(shè)計(jì)保證了輸入的模擬電流或電壓信號(hào)都能被采集;差分轉(zhuǎn)單端的電路設(shè)計(jì)讓差分和單端的模擬信號(hào)都能被采集;高速高精的模/數(shù)轉(zhuǎn)換模塊既保證了轉(zhuǎn)換速度,又確保了轉(zhuǎn)換精度;靈活多變的I/O使得FPGA的電路設(shè)計(jì)和編程都趨于簡(jiǎn)單。在通過(guò)數(shù)/模轉(zhuǎn)換器與模/數(shù)轉(zhuǎn)換器之間相互聯(lián)調(diào),得出此信號(hào)采集系統(tǒng)能夠保證精度在14 bit以上,是一種精度性能良好的高精度多通道采集系統(tǒng)。
[1]李蘭英.Nios II嵌入式軟核SOPC設(shè)計(jì)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[2]BAKER B.嵌入式系統(tǒng)中的模擬設(shè)計(jì)[M].李喻奎,譯.北京:北京航空航天大學(xué)出版社,2006.
[3]TI.Inc.INA134/INA2134 audio differential line reseivers[Z].1997.
[4]ADI.Inc.8-/6-/4-Channel DAS with 16-bit,bipolar input,simultaneous sampling ADC[Z].2010.
[5]TI.Inc.DAC8822 16-bit,dual,parallel input,multiplying digital-to-analog converter[Z].2007.
[6]Altera,Inc.Cyclone III FPGA family datasheet[Z].2003.
[7]Altera,Inc.Cyclone III configuration interface guidelines with EPCS devices[Z].Version 1.0.2008.