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