楊雪凱,胡 輝,顧俊杰,郝志陽(yáng),張 婷
(北華航天工業(yè)學(xué)院 電子與控制工程學(xué)院,河北 廊坊 065000)
隨著現(xiàn)代信號(hào)處理技術(shù)和電子集成技術(shù)的發(fā)展,越來(lái)越多的人把想要分析的物理信號(hào)(比如振動(dòng)信號(hào)、聲音信號(hào)等)進(jìn)行數(shù)字量化,然后將數(shù)字信號(hào)進(jìn)行相應(yīng)的計(jì)算,存儲(chǔ)和傳輸至上位機(jī)進(jìn)行計(jì)算分析。
通過(guò)文獻(xiàn)[1]和文獻(xiàn)[2]可知,傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)多采用單片機(jī)(例如STM32)或者DSP來(lái)作為數(shù)據(jù)采集的實(shí)時(shí)性、高采樣率、寬動(dòng)態(tài)范圍的要求。DSP雖然能夠滿足微弱信號(hào)采集對(duì)主控單元的運(yùn)行速度和實(shí)時(shí)性的要求。但是DSP的價(jià)格高昂,研發(fā)周期長(zhǎng),更適用于對(duì)采樣率要求低的數(shù)據(jù)采集系統(tǒng)。從文獻(xiàn)[3]、文獻(xiàn)[4]和文獻(xiàn)[6]中可得到,F(xiàn)PGA具有時(shí)鐘頻率高、內(nèi)部時(shí)延小、運(yùn)行速度快、集成度高、執(zhí)行效率高、功耗低、能完成復(fù)雜的時(shí)序邏輯設(shè)計(jì)、編程靈活方便等特點(diǎn),非常適用于高采樣速率、大數(shù)據(jù)量、處理任務(wù)固定且重復(fù)的多通道微弱信號(hào)采集系統(tǒng)。從文獻(xiàn)[5]和文獻(xiàn)[2]可知,USB接口具有傳輸速率快、接口控制靈活、功耗低、使用方便、易擴(kuò)展等優(yōu)點(diǎn),是數(shù)據(jù)采集系統(tǒng)的理想接口。
噪聲是電子系統(tǒng)中不需要的信號(hào)。噪聲會(huì)對(duì)降低我們采集信號(hào)的質(zhì)量以及增大采集誤差。噪聲包括固有噪聲和外部噪聲,這兩類噪聲均會(huì)影響電子電路的性能。外部噪聲來(lái)自外部噪聲源,例如數(shù)字交換、60Hz噪聲以及電源交換等。固有噪聲由電路元件本身產(chǎn)生,最常見(jiàn)的例子包括寬帶噪聲、熱噪聲以及閃爍噪聲。我們可以通過(guò)計(jì)算來(lái)預(yù)測(cè)電路的固有噪聲。
本系統(tǒng)前級(jí)可以認(rèn)為是包括程控運(yùn)放電路、衰減電路、濾波電路的多級(jí)放大電路。我們對(duì)多級(jí)放大電路的噪聲建模便得到如圖1所示的噪聲模型。
圖1 系統(tǒng)噪聲模型
在多級(jí)放大電路中我們可以將噪聲分為電壓噪聲和電阻熱噪聲。我們可以根據(jù)產(chǎn)品說(shuō)明書(shū)中的頻譜密度曲線來(lái)確定上述噪聲源的大小。其中電阻熱噪聲的計(jì)算公式是:
(1)
k為玻爾茲曼常數(shù),T為開(kāi)氏溫度,Req為等效電阻,Δf為信號(hào)帶寬。
電壓噪聲又分為1/f區(qū)噪聲和寬帶區(qū)噪聲。
1/f區(qū)噪聲公式:
(2)
(3)
efnorm為1Hz的歸一化噪聲。
eat_f為f時(shí)電壓噪聲密度。
f為已知噪聲電壓密度的1/f區(qū)域的頻率。
fH為操作高頻(使用噪聲帶寬BW)。
fL為操作低頻(一般為0.1Hz)。
寬帶區(qū)噪聲公式:
(4)
enBB為寬帶電壓噪聲。
eBB為寬帶電壓噪聲密度。
Kn為濾波器階數(shù)對(duì)應(yīng)的換算系數(shù)。
總電壓噪聲:
(5)
根據(jù)兩個(gè)不同電阻器或者不同運(yùn)算放大器的噪聲彼此不相關(guān),兩個(gè)隨機(jī)不相關(guān)的噪聲信號(hào)相加得到總噪聲為:
(6)
我們可以得到多級(jí)放大電路的總的輸入噪聲為:
(7)
系統(tǒng)結(jié)構(gòu)框圖如圖2所示。
圖2 系統(tǒng)硬件
ICP加速度傳感器采用恒流源供電,內(nèi)置壓電傳感器,用集成電路技術(shù)將電荷放大器置于傳感器中,并以低阻抗電壓方式輸出,輸出的幅值與加速度成正比。
模數(shù)轉(zhuǎn)換模塊選用ADS1271,其采樣率最高達(dá)105KSPS,采樣精度為24位。數(shù)據(jù)傳輸選用單通道USB2.0轉(zhuǎn)FIFO的芯片F(xiàn)T232,數(shù)據(jù)傳輸速率最快為40MB/s。
系統(tǒng)軟件運(yùn)行如圖3所示。系統(tǒng)上電后,用戶通過(guò)上位機(jī)設(shè)置系統(tǒng)的采樣參數(shù),例如系統(tǒng)放大倍數(shù)、系統(tǒng)采樣率、交直流耦合方式和觸發(fā)方式。上位機(jī)設(shè)置的采樣參數(shù)通過(guò)USB2.0芯片傳輸?shù)紽PGA中進(jìn)行解碼。FPGA按照用戶設(shè)置來(lái)控制繼電器,程控增益放大器,數(shù)模轉(zhuǎn)換器,USB2.0通信模塊。12路采集到的模擬信號(hào)經(jīng)過(guò)12片ADS1271數(shù)模轉(zhuǎn)換器后成為數(shù)字信號(hào),再通過(guò)FIFO數(shù)據(jù)緩沖模塊,經(jīng)USB2.0后將采集到的數(shù)據(jù)上傳至上位機(jī)進(jìn)行處理和顯示。
圖3 系統(tǒng)軟件
本系統(tǒng)采用TI公司的ADS1271數(shù)模轉(zhuǎn)換芯片。ADS1271提供了SPI和幀同步兩種通信方式以及高速模式、高精度模式、低功耗三種工作模式。我們?cè)诒鞠到y(tǒng)中應(yīng)用的是SPI通信模式和高速工作模式。不同工作模式下有著不同的輸出采樣率,如表1所示。
表1 ADS1271操作模式性能表
圖4 ADS1271在SPI通信模式下的時(shí)序邏輯
FPGA通過(guò)同步FIFO實(shí)現(xiàn)與FT232的通信數(shù)據(jù)傳輸。RXE#、TXE#是FT232的讀寫(xiě)標(biāo)志信號(hào);OE#為使能控制信號(hào);RD#、WR#是FT232的讀寫(xiě)信號(hào);SIWU#是FPGA命令FT232喚醒PC機(jī)或向上位機(jī)發(fā)送數(shù)據(jù)的控制端口;ADBUS[7:0]是雙向數(shù)據(jù)傳輸端口。CLKOUT是FT232的60MHz的時(shí)鐘驅(qū)動(dòng)引腳,所有信號(hào)應(yīng)該和該時(shí)鐘保持同步;FPGA通過(guò)Verilog編程實(shí)現(xiàn)對(duì)FT232的控制,進(jìn)而實(shí)現(xiàn)與上位機(jī)軟件的雙向數(shù)據(jù)通信。圖5為同步FIFO的讀寫(xiě)控制時(shí)序圖。
圖5 同步FIFO的讀寫(xiě)控制時(shí)序
3.2.1 FPGA讀上位機(jī)數(shù)據(jù)控制進(jìn)程(見(jiàn)圖6)
圖6 同步FIFO讀標(biāo)準(zhǔn)連接
IDLE讀取命令發(fā)生,進(jìn)入狀態(tài)1。
狀態(tài)1:檢測(cè)RXF#引腳狀態(tài),如果RXF#為低電平時(shí),則拉低OE#,進(jìn)入狀態(tài)2。
狀態(tài)2:檢測(cè)RXF#引腳狀態(tài),如果RXF#為低電平時(shí),則拉低RD#引腳,讀取上位機(jī)下發(fā)命令,進(jìn)入狀態(tài)3。
狀態(tài)3:讀取上位機(jī)命令,根據(jù)不同的命令(傳感器類型選擇、增益倍數(shù)選擇、采樣率選擇,觸發(fā)方式選擇、觸發(fā)電平設(shè)置)分別進(jìn)入狀態(tài)4、狀態(tài)5、狀態(tài)6、狀態(tài)7。
狀態(tài)4:根據(jù)上位機(jī)下發(fā)指令,進(jìn)行傳感器類型配置。繼續(xù)讀取則返回狀態(tài)2,否則進(jìn)入IDLE。
狀態(tài)5:根據(jù)上位機(jī)下發(fā)指令,進(jìn)行增益倍數(shù)配置。繼續(xù)讀取則返回狀態(tài)2,否則進(jìn)入IDLE。
狀態(tài)6:根據(jù)上位機(jī)下發(fā)指令,進(jìn)行觸發(fā)方式配置。繼續(xù)讀取則返回狀態(tài)2,否則進(jìn)入IDLE。
狀態(tài)7:根據(jù)上位機(jī)下發(fā)指令,進(jìn)行觸發(fā)電平配置。繼續(xù)讀取則返回狀態(tài)2,否則進(jìn)入IDLE。
3.2.2 FPGA向上位機(jī)寫(xiě)數(shù)據(jù)控制進(jìn)程(見(jiàn)圖7)
圖7 同步FIFO寫(xiě)標(biāo)準(zhǔn)連接
IDLE:讀事件發(fā)生,進(jìn)入狀態(tài)1。
狀態(tài)1:接收上位機(jī)復(fù)位信號(hào),進(jìn)入狀態(tài)2。
狀態(tài)2:檢測(cè)FIFO中是否有數(shù)據(jù),當(dāng)有數(shù)據(jù)時(shí)進(jìn)入狀態(tài)3。
狀態(tài)3:檢測(cè)FIFO半滿或全滿。當(dāng)FIFO全滿時(shí)進(jìn)入狀態(tài)4。
狀態(tài)4:驅(qū)動(dòng)數(shù)據(jù)到數(shù)據(jù)線上,如需繼續(xù)傳輸數(shù)據(jù)進(jìn)入狀態(tài)2,否則進(jìn)入狀態(tài)IDLE。
本數(shù)據(jù)采集系統(tǒng)應(yīng)用LabVIEW來(lái)搭建上位機(jī)軟件通過(guò)上位機(jī)實(shí)現(xiàn)對(duì)采集系統(tǒng)的增益控制、交/直流耦合選擇、采樣率設(shè)置、觸發(fā)方式選擇、觸發(fā)電平選擇等設(shè)置以及FPGA采集數(shù)據(jù)的顯示、處理和儲(chǔ)存。
利用RIGOL的DG1022函數(shù)信號(hào)發(fā)生器產(chǎn)生頻率為1kHz,峰峰值是5mVpp的正弦信號(hào),通過(guò)上位機(jī)來(lái)設(shè)置采樣率為10kHz,增益為1 000倍,直流耦合方式,并顯示實(shí)時(shí)采樣波形圖,如圖8所示。
圖8 實(shí)時(shí)采樣波形
從圖8的實(shí)時(shí)采集波形圖和表2中數(shù)據(jù)可看到,系統(tǒng)采樣結(jié)果與輸入信號(hào)具有較好的一致性,在輸入信號(hào)為5mVpp,頻率為1kHz,1 000倍增益的情況下,誤差僅為0.17mV左右。在輸入短路的情況下,我們從表中數(shù)據(jù)可以知道本系統(tǒng)的短路底噪為0.4mVpp左右,具有比較好的一致性,可以滿足實(shí)際使用需要。該方案搭建的采集系統(tǒng)具有成本低、底噪低、功耗低的特點(diǎn),同時(shí)也具有高速、實(shí)時(shí)、高可靠性等優(yōu)點(diǎn)。
表2 實(shí)時(shí)采集數(shù)據(jù)