宋 丹,任勇峰,姚 宗
(中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,太原030051)
隨著科學(xué)研究深度的日益提高,要求采集存儲裝置在能滿足各種信號采集調(diào)理的同時,可實現(xiàn)低功耗、高可靠性、高集成度以及能適應(yīng)復(fù)雜多變的環(huán)境。
該數(shù)據(jù)采集系統(tǒng)主要由信號調(diào)理電路、A/D轉(zhuǎn)換器、FPGA控制器,F(xiàn)LASH存儲器、USB單片機(jī)、電源管理電路、時統(tǒng)信號接口電路等構(gòu)成。其中,F(xiàn)PGA作為內(nèi)部控制器,控制整個系統(tǒng)完成信號采集存儲、讀數(shù)、擦除等操作。
系統(tǒng)由外部啟動觸點啟動上電,F(xiàn)PGA配置完成后進(jìn)行系統(tǒng)狀態(tài)檢測,即USB硬件接口檢測。
狀態(tài)檢測結(jié)束后,若確認(rèn)USB電纜未與上位機(jī)連接,在FPGA的控制下,系統(tǒng)通過鋰電池負(fù)責(zé)給壓力傳感器和慣性組合傳感器供電,并對10路壓力信號和6路姿態(tài)信號分別進(jìn)行調(diào)理后送入一組16選1模擬開關(guān),選通輸出模擬信號,并經(jīng)過跟隨、分壓、跟隨電路調(diào)理后,送入A/D轉(zhuǎn)換器轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字量由FLASH進(jìn)行存儲。
狀態(tài)檢測結(jié)束后,若確認(rèn)USB電纜與上位機(jī)連接,此時可對系統(tǒng)進(jìn)行讀數(shù)/擦除操作。上位機(jī)發(fā)出讀數(shù)/擦除指令后,通過USB接口芯片處理相應(yīng)指令后,F(xiàn)PGA啟動讀FLASH模塊并將數(shù)據(jù)送往上位機(jī)進(jìn)行存盤和處理或啟動擦除FLASH模塊對FLASH進(jìn)行擦除操作。系統(tǒng)框圖如圖1所示。
圖1 采集系統(tǒng)框圖
系統(tǒng)選用的10路壓力傳感器要求采用1.5 mA恒流源激勵,傳感器內(nèi)部采用惠斯通電橋結(jié)構(gòu),差分輸出,輸入輸出阻抗典型值為3.5 kΩ,最大值為4 kΩ。根據(jù)傳感器供電要求,本設(shè)計采用LM134構(gòu)成1.5 mA恒流源激勵給傳感器供電,考慮到傳感器最大輸出阻抗為4 kΩ,產(chǎn)生的共模電壓達(dá)6 V,根據(jù)LM134最小供電壓差2.5 V要求,此處采用9 V電源作為LM134的供電輸入[1]。
本設(shè)計采用單電源(+3 V~+12 V)供電的儀表放大器AD623,其可通過改變增益可調(diào)電阻實現(xiàn)增益編程,最高增益設(shè)置達(dá)到1 000倍。其中增益可調(diào)電阻計算公式為 Rg=100 kΩ/(G-1)[2]。
根據(jù)傳感器信號輸出范圍-10 mV~145 mV,要將其調(diào)理到0~5 V送給采集電路,AD623設(shè)計放大倍數(shù)為30.4倍,可得信號的輸出范圍-0.304 V~+4.408 V,再加上+0.5 V的參考電壓,則最終信號調(diào)理輸出范圍為+0.196 V~+4.908 V。壓力傳感器供電及調(diào)理電路如圖2所示。
圖2 壓力傳感器供電及信號調(diào)理電路
在6路姿態(tài)輸出信號中,3路加速度輸出信號范圍為0~5 V,采用電壓跟隨電路設(shè)計,如圖3所示。跟隨電路作用:提高輸入阻抗,降低輸出阻抗,提高其驅(qū)動負(fù)載的能力,使抗干擾能力大大提高。
三軸向角速度輸出共模電壓為2.5 V,差模電壓峰峰為3.3 V,該信號由AD623進(jìn)行放大調(diào)理,其中AD623為差分輸入,設(shè)計差分正端輸入角速度信號,差分負(fù)端輸入2.5 V參考電壓,進(jìn)行1.42倍放大到0~5 V范圍,儀表放大電路如圖4所示。
圖3 電壓跟隨電路
圖4 姿態(tài)信號儀表放大電路
啟動信號為無源觸點,啟動信號閉合后系統(tǒng)上電,并具有自保持功能。當(dāng)啟動觸點閉合后,電池電源對電容C1~C3充電以建立電壓,起到上電延時的作用,有效地防止了誤啟動。當(dāng)電壓達(dá)到電源芯片使能端有效閾值時,電源芯片輸出工作電源系統(tǒng)上電,之后內(nèi)部控制系統(tǒng)產(chǎn)生有效使能信號ENAVDD完成供電自保持,如圖5所示。
針對系統(tǒng)浸入水中工作的情況,我們對系統(tǒng)進(jìn)行了防止水中誤啟動的電路設(shè)計,并進(jìn)行了水中工作測試試驗。
測試水域阻抗為8 kΩ,若系統(tǒng)內(nèi)部的串行啟動電阻太小,會導(dǎo)致啟動線通過水介質(zhì)構(gòu)成通路,啟動上電,且在記錄完畢后不能掉電。按冗余設(shè)計考慮,水域阻抗為3 kΩ,最終啟動觸點接口電路如圖5所示。
圖5 啟動觸點接口電路
此次設(shè)計選用的電源模塊MIC29302的閾值電壓為1.4 V,整個系統(tǒng)采用兩節(jié)鋰電池供電,正常工作電壓(電池供電輸入)在7 V~8.4 V之間,經(jīng)過二極管后電壓(BATVCC)保持在6.3 V~7.7 V之間,設(shè)計應(yīng)保證:(1)兩根啟動信號線未浸入水中時,啟動觸點閉合后,在最低的電壓6.3 V仍可以正常使能啟動。(2)兩根啟動信號線浸入水中時,系統(tǒng)在最高的電壓7.7 V仍不發(fā)生自行使能啟動。經(jīng)計算可知,在第一種情況下,電源的使能電壓為1.44 V,高于電源模塊的閾值電壓,系統(tǒng)正常工作。在第2種情況下,水的阻抗按照3 kΩ進(jìn)行計算,電源的使能電壓為1.34 V,低于電源模塊的閾值電壓,防止了水中誤啟動。
經(jīng)過實際測試,當(dāng)水的阻抗大于3 kΩ時,系統(tǒng)啟動線浸入水中后,不會自行啟動上電。
系統(tǒng)設(shè)計時選用低功耗器件,自身功耗相對較小。同時設(shè)計保證:當(dāng)系統(tǒng)檢測到與上位機(jī)連接后,可進(jìn)行讀/擦除等操作,此時由USB接口對系統(tǒng)供電(USB總線可提供5 V電壓、500 mA電流,對于功耗較小的設(shè)備來說這是非常有效的[3-4])。工作流程為:內(nèi)部控制系統(tǒng)有效使能信號ENAVDD,通過電源管理模塊給系統(tǒng)掉電,此時恒壓源和恒流源不給傳感器供電且采集電路也未工作。整個系統(tǒng)采用USB接口供電,有效地降低了電池的功耗。如圖6所示。
圖6 USB接口給系統(tǒng)供電電路
時統(tǒng)信號是整個系統(tǒng)的時間基準(zhǔn),其到來時刻作為系統(tǒng)的時間零點,因此有效接收時統(tǒng)信號對系統(tǒng)至關(guān)重要[5]。
FPGA端的初始狀態(tài)由上拉電阻R3保持高,外部時統(tǒng)觸點閉合后,驅(qū)動光耦給FPGA輸出時統(tǒng)信號,此時FPGA端為低,表明時統(tǒng)信號到來。
圖7 時統(tǒng)觸點接口電路
在實際使用過程中,系統(tǒng)往往受到復(fù)雜的電磁干擾,時統(tǒng)信號在閉合過程中伴隨著信號抖動,這就導(dǎo)致時統(tǒng)信號可能在低有效的情況中出現(xiàn)高電平的尖峰脈沖干擾,我們在時統(tǒng)信號接收邏輯中采取了有效消抖方式,確保時統(tǒng)信號接收的及時可靠[6]。
常用的消抖方式為信號延時消抖,原理是對外部信號進(jìn)行高頻采樣,當(dāng)連續(xù)采到N個點發(fā)生跳變,消抖后的內(nèi)部信號隨之改變[7]。該種方式的缺陷是:若出現(xiàn)均等時間的干擾脈沖,且干擾信號周期小于采樣信號周期,那么消抖后的內(nèi)部信號始終不會發(fā)生跳變。如圖8所示。
圖8 延時消抖缺陷示意圖
時統(tǒng)信號屬于電平信號,本設(shè)計選用抽樣判決法對時統(tǒng)信號進(jìn)行消抖。該消抖算法是基于概率統(tǒng)計方法的。系統(tǒng)每隔時間τ對時統(tǒng)信號進(jìn)行一次采集,在FPGA內(nèi)部調(diào)用15 bit的內(nèi)部寄存器,將第1次采集的信號放在寄存器的第1位,然后每采集一次,內(nèi)部寄存器移位一次,相當(dāng)于對時統(tǒng)信號進(jìn)行加窗判斷,并滾動執(zhí)行。直到判斷出15 bit的寄存器中有10 bit的低有效,那么便認(rèn)為是有效的時統(tǒng)信號。如圖9所示。
圖9 抽樣判決消抖示意圖
設(shè)寄存器的位數(shù)為m,寄存器中低電平的個數(shù)設(shè)為n,且
該實例中:當(dāng)η≥66.7%,認(rèn)為輸入狀態(tài)發(fā)生了由高到低的變化,真正的時統(tǒng)信號到來。當(dāng)η<66.7%,認(rèn)為出現(xiàn)了干擾信號。為了使系統(tǒng)運(yùn)行可靠,可根據(jù)實際觸點的抖動情況對寄存器的位數(shù)以及百分比例進(jìn)行調(diào)整,從來對干擾信號進(jìn)行有效的剔除。
階段時刻標(biāo)記S1~S7內(nèi)容如下:
S1 啟動觸點閉合;
S2 采集裝置上電復(fù)位待機(jī);
S3 采集裝置通過USB接口與上位機(jī)連接,由外部USB電源供電,并進(jìn)入上電復(fù)位待機(jī)狀態(tài);
S4 判斷USB在線指令USB_ONLINE,若USB不在線USB_ONLINE=“1”,則FPGA下發(fā)供電自保持指令有效ENAVDD=“1”,系統(tǒng)由內(nèi)部電池供電工作,同時啟動采集裝置進(jìn)入采編存儲狀態(tài)。在該狀態(tài)下,先從前向后依次判斷存儲器16個分區(qū)是否記滿,若有空區(qū)域,則將本次上電采編數(shù)據(jù)存入該空著的存儲分區(qū)中,并啟動30s采編存儲計時器計時;若判斷到16個存儲分區(qū)已記滿,則直接跳入S7,系統(tǒng)掉電。
若USB在線USB_ONLINE=“0”,則FPGA下發(fā)供電自保持指令無效ENAVDD=“0”,系統(tǒng)由上位機(jī)USB電源供電工作,采集裝置進(jìn)入暫停讀數(shù)的待機(jī)狀態(tài),此時可由上位機(jī)軟件控制進(jìn)行采集裝置分區(qū)讀數(shù)與擦除操作。
S5:接收到采集裝置時統(tǒng)信號;
S6:采集裝置時統(tǒng)信號經(jīng)過30ms消抖判斷有效時,采編幀計數(shù)清零;
S7:停止采集,F(xiàn)PGA下發(fā)供電自保持無效指令ENAVDD=“0”,系統(tǒng)掉電。
S8:上位機(jī)操作完畢,USB電源斷開后,采集裝置掉電。
圖10 工作時序設(shè)計
根據(jù)技術(shù)指標(biāo)要求以及上電時間、采樣率和幀格式要求,經(jīng)計算知:系統(tǒng)一次上電記錄數(shù)據(jù)量約為12 Mbytes,為保證冗余設(shè)計,將系統(tǒng)分為16區(qū),每區(qū)均為16 Mbytes的容量設(shè)計。
系統(tǒng)上電后,每次都從第1區(qū)開始順序檢測是否有數(shù)據(jù),如果第1區(qū)沒有數(shù)據(jù),則把該次啟動采集的數(shù)據(jù)寫入第1區(qū),系統(tǒng)每次上電工作30 s后自動掉電完成此次記錄;若第1區(qū)有數(shù)據(jù),則依次檢測剩下各區(qū)的記錄情況,直到檢測到某區(qū)無數(shù)據(jù)才把該次啟動采集的數(shù)據(jù)寫入該區(qū)。若16區(qū)都已記滿,再次啟動采集后,系統(tǒng)上電后自動掉電,不論怎樣啟動采集也不會把數(shù)據(jù)覆蓋后再寫入,除非執(zhí)行擦除操作把存儲器中的數(shù)據(jù)清空[8]。
數(shù)據(jù)的分區(qū)存儲設(shè)計,保證了系統(tǒng)在不擦除的情況下實現(xiàn)多次啟動存儲操作,若發(fā)生誤啟動狀況,確保數(shù)據(jù)的及時有效存儲,提高了系統(tǒng)的冗余性和可靠性。
經(jīng)過多次試驗,系統(tǒng)能有效接收上位機(jī)命令并執(zhí)行相應(yīng)操作、能采集數(shù)據(jù)并進(jìn)行多次啟動后分區(qū)存儲。在水中測試過程中未出現(xiàn)誤啟動狀況,系統(tǒng)運(yùn)行穩(wěn)定可靠。該設(shè)計方案已在某試驗中得到應(yīng)用。
[1]LM134.Data Sheet[EB/OL].http://www.national.com,2000,3.1-14.
[2]AD623.Data Sheet[EB/OL].http://www.analog.com,1997 ~2008,16.1-24.
[3]蕭世文.USB 2.0硬件設(shè)計[M].北京:清華大學(xué)出版社,2002:8-10.
[4]范延濱.微型計算機(jī)系統(tǒng)原理、接口與EDA設(shè)計技術(shù)[M].北京:北京郵電大學(xué)出版社,2006:389-392.
[5]李玉峰,韓曉紅,劉洋,等.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的實現(xiàn)與性能分析[J].電子器件,2012,35(6):709-712.
[6]姚宗.某型固態(tài)數(shù)據(jù)記錄器的研制[D].中北大學(xué),2010.
[7]常高嘉,馮全源.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)[J].電子器件,2012,35(5):615-618.
[8]文豐,趙艷利,甄國涌.基于FPGA的高速數(shù)據(jù)采集存儲系統(tǒng)設(shè)計[J].電子科技,2009,25(5):235-238.