文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)11-0078-03
0 引言
次聲波是由機(jī)器振動產(chǎn)生的,通過介質(zhì)向周圍傳播頻率低于20 Hz的聲波[1]。它具有頻率低、波長長的特點(diǎn),在傳播中不易損失,傳播距離長。人耳能夠識別的聲波頻率范圍是20 Hz~20 kHz,因此人耳無法感知次聲波的存在及其強(qiáng)度大小。然而次聲波的強(qiáng)大穿透力對人體健康有著很大的威脅,高強(qiáng)度次聲波甚至?xí)<吧?。除此之外,次聲波的研究對于預(yù)測自然災(zāi)害和監(jiān)測工程環(huán)境也有著重要價(jià)值[2]。目前國內(nèi)尚缺乏對于次聲波檢測的研究,具體完善的次聲檢測系統(tǒng)的實(shí)現(xiàn)更是參考甚少。
為有效檢測次聲波的存在,本文設(shè)計(jì)了基于C/OS-II[3-4]的便攜式次聲檢測儀,準(zhǔn)確穩(wěn)定地實(shí)現(xiàn)了對次聲波的檢測與分析。系統(tǒng)選用嵌入式處理器STM32作為控制核心;采用多任務(wù)機(jī)制,充分地利用硬件資源實(shí)現(xiàn)實(shí)時(shí)處理與動態(tài)呈現(xiàn);TFT觸摸屏作為人機(jī)界面接收用戶參數(shù)設(shè)置與功能選擇,實(shí)現(xiàn)對檢測結(jié)果的時(shí)域及頻域分析。它可廣泛應(yīng)用于地震、臺風(fēng)等自然次聲環(huán)境及發(fā)電站、飛行器發(fā)射基地等人工次聲環(huán)境中。
1 整體方案設(shè)計(jì)
系統(tǒng)的整體框圖如圖1所示,總體設(shè)計(jì)可分為信號采集與預(yù)處理、A/D變換、電源與核心處理器和輸出顯示四部分。系統(tǒng)初始化后,聲波傳感器開始采集環(huán)境中次聲波信號。由于信號微弱并且混雜噪聲,必須進(jìn)行放大和濾波等預(yù)處理。經(jīng)過預(yù)處理后的次聲波信號進(jìn)入STM32的ADC進(jìn)行A/D轉(zhuǎn)換。然后,由處理器STM32對采集的數(shù)據(jù)進(jìn)行快速傅里葉變換(FFT),求出信號的頻率及幅度信息,其中幅度信號代表著次聲波信號的功率強(qiáng)度。最后,檢測結(jié)果的顯示采用觸摸TFT彩屏,對信號的時(shí)域波形、頻率譜及功率信息等進(jìn)行實(shí)時(shí)動態(tài)呈現(xiàn)。
2 硬件電路設(shè)計(jì)
2.1 次聲波信號預(yù)處理
次聲波信號的預(yù)處理是影響整個(gè)系統(tǒng)檢測性能的重要因素,因此電路設(shè)計(jì)必須充分考慮提高次聲信號的質(zhì)量,并將信號調(diào)整為適合ADC處理的幅度范圍。由于次聲波傳感器采集的次聲信號微弱,這里首先選用高精度、低功耗的精密儀表放大器INA118P對預(yù)處理信號進(jìn)行放大。之后對信號進(jìn)行低通濾波。低通濾波器的選擇采用TI公司的UAF42Au芯片,該濾波器的3 dB截止頻率滾降陡峭,可以很好地濾掉環(huán)境中高頻噪聲,提高信噪比。
濾波后的信號依次通過信號衰減電路和程控增益放大器PGA203進(jìn)行幅度調(diào)整,程控放大器部分電路如圖2所示。對于不同強(qiáng)度的次聲波信號,可以通過軟件程序靈活調(diào)節(jié)該放大器的放大倍數(shù),從而擴(kuò)大對次聲波信號檢測的量程。經(jīng)過上述處理后的信號仍為正負(fù)輸出信號,而系統(tǒng)的信號處理部分為單電源供電。因此需要對正負(fù)信號加直流偏置,將信號抬高到0 V以上。最后,信號通過直流偏置電路調(diào)整幅度進(jìn)入ADC。該直流偏置電路利用運(yùn)算放大器OP27CJ8實(shí)現(xiàn)。
2.2 核心處理器及電源設(shè)計(jì)
本次聲波檢測系統(tǒng)采用STM32F103處理器,其中STM32F103xx增強(qiáng)型系列使用高性能的ARM Cortex-M3,具有32位的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲器(高達(dá)128 KB閃存和20 KB SRAM),還有豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件都包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和一個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C和SPI、3個(gè)USART、1個(gè)USB和1個(gè)CAN。STM32F103xx增強(qiáng)型系列工作于-40 ℃~+105 ℃的溫度范圍,供電電壓為2.0 V~3.6 V,一系列的省電模式保證低功耗應(yīng)用的要求[4]。通過復(fù)雜的實(shí)驗(yàn)驗(yàn)證在惡劣的外界環(huán)境下該處理器依然表現(xiàn)出了很好地穩(wěn)定性,因此可以很好地滿足系統(tǒng)穩(wěn)定性的要求。
系統(tǒng)選擇3.3 V供電,外輸入電壓為9 V。經(jīng)過電壓轉(zhuǎn)換芯片LT1745-3.3V可以把電壓穩(wěn)定在3.3 V,該電壓用于給處理器及板上其他模擬數(shù)字芯片供電。
2.3 液晶TFT顯示及觸摸屏的驅(qū)動
本系統(tǒng)采用4.3英寸液晶顯示屏,該顯示屏基于顯示驅(qū)動芯片SSD1963而開發(fā)。顯示屏與STM32處理器通過一個(gè)40芯的2.54間距的雙排母座連接。 顯示屏板上貼有一塊4.3英寸觸摸屏。觸摸芯片控制為SPI方式,觸摸芯片采用XPT2046N。該液晶顯示分辨率為480×272像素,色彩為64K色。
通過STM32的接口以及FSMC總線可以直接驅(qū)動該液晶屏及顯示。關(guān)于液晶屏及觸摸屏的驅(qū)動各種資料很多,本文在此不做贅述。
3 軟件設(shè)計(jì)及實(shí)現(xiàn)
3.1 軟件整體設(shè)計(jì)
軟件整體流程圖如圖3所示,軟件整體可分三部分:STM32的ADC采集次聲波信號;對采集數(shù)據(jù)作FFT求出次聲波信號的頻率和幅度,該部分通過調(diào)用ST公司基于STM32的FFT庫函數(shù)完成;觸摸屏的驅(qū)動和用戶界面控制部分,共分為5個(gè)用戶交互界面,如圖4所示,包括1個(gè)主界面和4個(gè)從界面。
主界面主要是用于設(shè)置STM32的A/D采樣率Fs和FFT點(diǎn)數(shù)Fn,本系統(tǒng)現(xiàn)可支持128、256、512、1 024、2 048、4 096的采樣率Fs和128、256、512、1 024的FFT點(diǎn)數(shù)Fn。Fs和Fn的自由設(shè)置大大提高了系統(tǒng)檢測和分析次聲波的靈活性。從主界面通過4個(gè)按鈕控件可分別進(jìn)入到從界面查看次聲波檢測與分析信息。
從界面1實(shí)時(shí)顯示出當(dāng)前環(huán)境中次聲波的時(shí)域波形;從界面2給出次聲波實(shí)時(shí)頻譜圖,可通過返回主界面重新設(shè)置合適的Fs與Fn來調(diào)整波形,方便用戶更準(zhǔn)確地通過頻域圖中坐標(biāo)系讀出次聲波中頻率成分及功率分布;從界面3則對環(huán)境次聲波中所含的各個(gè)頻率信號的功率比例以柱形圖的形式列出,用戶由此界面可直觀地觀察到環(huán)境中各個(gè)頻率成分的次聲波在環(huán)境中含量高低,使用戶對次聲波的成分組成一目了然;從界面4則是對各頻率成分的平均功率由高到低以列表形式給出,用戶可由此得到各頻率次聲波功率的具體數(shù)值。
3.2 系統(tǒng)任務(wù)創(chuàng)建
作為環(huán)境中次聲波采集系統(tǒng),必須確保其良好的實(shí)時(shí)性,因此系統(tǒng)軟件的設(shè)計(jì)便充分利用了?滋C/OS-II實(shí)時(shí)操作系統(tǒng)的多任務(wù)機(jī)制[5]。本系統(tǒng)軟件程序中用OSTaskCreate函數(shù)創(chuàng)建了4個(gè)系統(tǒng)任務(wù),優(yōu)先級由高到低分別是:
(1)主任務(wù)
用于建立其他任務(wù)。主任務(wù)的建立便于系統(tǒng)任務(wù)的擴(kuò)展與裁剪,同時(shí)使得代碼可移植性大大提高。
(2)觸摸屏坐標(biāo)獲取任務(wù)
每隔10 ms獲取一次觸摸坐標(biāo),即用于捕獲用戶在觸摸屏上的動作,以實(shí)時(shí)響應(yīng)用戶的輸入。
(3)FFT任務(wù)
用于執(zhí)行FFT算法,因?yàn)楸鞠到y(tǒng)支持高達(dá)2 048點(diǎn)FFT,算法執(zhí)行占用較多系統(tǒng)資源,此處將FFT單獨(dú)作為一個(gè)任務(wù)可以大大提高系統(tǒng)實(shí)時(shí)響應(yīng)。
(4)用戶界面任務(wù)
用于創(chuàng)建用戶界面,包括觸摸屏各個(gè)顯示界面上對話框、按鈕、列表框、文本等資源的創(chuàng)建,同時(shí)執(zhí)行各界面的畫圖操作和屏幕刷新。
3.3 多任務(wù)調(diào)度[6]
本系統(tǒng)不同任務(wù)間的通信與同步是通過信號量來實(shí)現(xiàn)的,?滋C/OS-II中的信號量由信號量的計(jì)數(shù)值和等待該信號量的任務(wù)列表組成。在App_TaskCreate函數(shù)里創(chuàng)建系統(tǒng)任務(wù)的同時(shí),也通過OSSemCreate函數(shù)創(chuàng)建了一個(gè)信號量,該信號量主要用于用戶界面任務(wù)與FFT任務(wù)之間的通信與同步。
C/OS-II中的多任務(wù)切換機(jī)制是:在每一個(gè)時(shí)鐘節(jié)拍開始,執(zhí)行目前處于就緒狀態(tài)的最高優(yōu)先級的任務(wù)。這樣系統(tǒng)中4個(gè)任務(wù)優(yōu)先級的設(shè)置將導(dǎo)致:一方面,F(xiàn)FT任務(wù)的優(yōu)先級高于用戶界面任務(wù),導(dǎo)致每個(gè)時(shí)鐘周期內(nèi)CPU都在執(zhí)行優(yōu)先級較高的FFT任務(wù),而用戶界面任務(wù)得不到執(zhí)行;另一方面,F(xiàn)FT任務(wù)只有在用戶選擇查看頻域信息時(shí)才會用到,但它涉及大量迭代運(yùn)算,耗費(fèi)系統(tǒng)資源。因此,在軟件程序設(shè)計(jì)中,可充分利用信號量的設(shè)置來調(diào)度各任務(wù)的有序執(zhí)行:用戶界面任務(wù)在用戶選擇查看頻域信息操作時(shí)才會發(fā)送一次信號量(通過OSSemPost函數(shù)),這使得等待信號量的較高優(yōu)先級FFT任務(wù)被執(zhí)行,執(zhí)行一次循環(huán)后FFT任務(wù)掛起,繼續(xù)等待信號量(通過OSSemPend函數(shù)),用戶界面任務(wù)再次得到CPU控制權(quán),周而復(fù)始。
任務(wù)調(diào)度時(shí)鐘示意圖如圖5所示。在第2個(gè)時(shí)鐘節(jié)拍內(nèi),由于用戶進(jìn)入從界面2、3或4查看頻域信息,用戶界面任務(wù)發(fā)出信號量,使等待信號量的FFT任務(wù)被執(zhí)行。接下來的時(shí)鐘節(jié)拍內(nèi),F(xiàn)FT任務(wù)依然會被調(diào)用,直到用戶返回主界面或從界面1時(shí),F(xiàn)FT任務(wù)再次被掛起。多任務(wù)調(diào)度節(jié)省了系統(tǒng)資源,使得整個(gè)系統(tǒng)能夠?qū)崟r(shí)地采集與處理數(shù)據(jù)、響應(yīng)用戶的觸摸屏輸入,并呈現(xiàn)連續(xù)動態(tài)變化的時(shí)域與頻域波形、柱形分析圖和次聲波功率等數(shù)據(jù)。
3.4 調(diào)試結(jié)果
將編寫的程序下載到STM32F103中,連接好硬件電路,通過觸摸屏設(shè)置采樣率和FFT點(diǎn)數(shù)。設(shè)定完畢后ADC開始按所設(shè)采樣率Fs采集數(shù)據(jù)。當(dāng)采集緩存區(qū)數(shù)據(jù)準(zhǔn)備好后開始對采樣數(shù)據(jù)作快速傅里葉變換,并把頻域信息顯示在TFT彩屏上。經(jīng)過測試,數(shù)據(jù)采集的誤差在允許范圍內(nèi),系統(tǒng)各部分能夠協(xié)調(diào)穩(wěn)定地運(yùn)行。
系統(tǒng)輸入10 Hz測試方波后的柱形圖及各頻率信號的功率信息分別如圖6所示
4 結(jié)論
本文設(shè)計(jì)的基于嵌入式處理器STM32的便攜式次聲檢測儀通過軟硬件的協(xié)同處理,實(shí)現(xiàn)了對環(huán)境次聲波的檢測與分析。通過TFT觸摸屏作為人機(jī)交互界面,接收用戶的輸入完成相關(guān)參數(shù)的設(shè)置及不同功能界面的顯示。本系統(tǒng)具有體積小、操作簡單、準(zhǔn)確性以及穩(wěn)定度高等優(yōu)點(diǎn),可以作為便攜式次聲檢測裝置相關(guān)研究的參考,現(xiàn)已能夠穩(wěn)定運(yùn)行于次聲檢測環(huán)境中。
參考文獻(xiàn)
[1] 肖俊,楊良信,沈文彬.簡易次聲檢測裝置的研制[J].傳感器世界,2010(8):34-36.
[2] 闞玲玲,梁洪衛(wèi),高丙坤,等.基于次聲波的天然氣管道泄漏檢測系統(tǒng)設(shè)計(jì)[J].化工自動化及儀表,2011,38(6):653-655.
[3] 劉淼,王田苗,魏洪興,等.基于?滋COS-II的嵌入式數(shù)控系統(tǒng)實(shí)時(shí)性分析[J].計(jì)算機(jī)工程,2006,22(11):222-224.
[4] 李寧.基于MDK的STM32處理器應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.
[5] 任順航,呂鵬鵬,王立鵬,等.基于STM32的電能手抄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2014,40(1):75-78.
[6] 任哲,潘樹林,房紅征.嵌入式操作系統(tǒng)基礎(chǔ)C/OS-II和Linux[M].北京:北京航天航空大學(xué)出版社,2006.