《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于μC/OS-II的便攜式次聲檢測儀設(shè)計
基于μC/OS-II的便攜式次聲檢測儀設(shè)計
2014年電子技術(shù)應(yīng)用第11期
胡方明,李 娟,任愛鋒
西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安710071
摘要: 考慮次聲波檢測的廣泛應(yīng)用前景及目前國內(nèi)相關(guān)研究的相對匱乏,設(shè)計了以STM32F103為控制核心的便攜式次聲檢測儀。結(jié)合實時操作系統(tǒng)?滋C/OS-II的多任務(wù)調(diào)度特性和ucgui圖形用戶界面簡易繪圖的特點,通過快速傅里葉變換(FFT)實現(xiàn)了對環(huán)境中次聲波的檢測與分析。軟件部分均由C語言編程實現(xiàn),易于系統(tǒng)移植和功能擴展。該系統(tǒng)具有成本低、操作簡單、準(zhǔn)確度和穩(wěn)定性高等優(yōu)點。
關(guān)鍵詞: 次聲波檢測 STM32 多任務(wù) FFT
中圖分類號: TP302
文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)11-0078-03
Design of portable infrasound detector based on μC/OS-II
Hu Fangming,Li Juan,Ren Aifeng
School of Electronic Engineering, Xidian University, Xi′an 710071,China
Abstract: Considering the broad application prospects and lack of relevant research of infrasound detection, a portable infrasound detector was designed using STM32F103 as the control center. Combined with the multi-task scheduling feature of ?滋C/OS-II OS and graphical user interface support of ucgui, it presented the realization of the detection and analysis of infrasound by FFT algorithm. The software was accomplished by C programming, and it was easy to transplant and expand. The whole system performs the characteristic of low cost, easy operation, high accuracy and stability.
Key words : infrasound detection;STM32;μC/OS-II;multitask;FFT

0 引言

  次聲波是由機器振動產(chǎn)生的,通過介質(zhì)向周圍傳播頻率低于20 Hz的聲波[1]。它具有頻率低、波長長的特點,在傳播中不易損失,傳播距離長。人耳能夠識別的聲波頻率范圍是20 Hz~20 kHz,因此人耳無法感知次聲波的存在及其強度大小。然而次聲波的強大穿透力對人體健康有著很大的威脅,高強度次聲波甚至?xí)<吧?。除此之外,次聲波的研究對于預(yù)測自然災(zāi)害和監(jiān)測工程環(huán)境也有著重要價值[2]。目前國內(nèi)尚缺乏對于次聲波檢測的研究,具體完善的次聲檢測系統(tǒng)的實現(xiàn)更是參考甚少。

  為有效檢測次聲波的存在,本文設(shè)計了基于C/OS-II[3-4]的便攜式次聲檢測儀,準(zhǔn)確穩(wěn)定地實現(xiàn)了對次聲波的檢測與分析。系統(tǒng)選用嵌入式處理器STM32作為控制核心;采用多任務(wù)機制,充分地利用硬件資源實現(xiàn)實時處理與動態(tài)呈現(xiàn);TFT觸摸屏作為人機界面接收用戶參數(shù)設(shè)置與功能選擇,實現(xiàn)對檢測結(jié)果的時域及頻域分析。它可廣泛應(yīng)用于地震、臺風(fēng)等自然次聲環(huán)境及發(fā)電站、飛行器發(fā)射基地等人工次聲環(huán)境中。

1 整體方案設(shè)計


001.jpg

  系統(tǒng)的整體框圖如圖1所示,總體設(shè)計可分為信號采集與預(yù)處理、A/D變換、電源與核心處理器和輸出顯示四部分。系統(tǒng)初始化后,聲波傳感器開始采集環(huán)境中次聲波信號。由于信號微弱并且混雜噪聲,必須進行放大和濾波等預(yù)處理。經(jīng)過預(yù)處理后的次聲波信號進入STM32的ADC進行A/D轉(zhuǎn)換。然后,由處理器STM32對采集的數(shù)據(jù)進行快速傅里葉變換(FFT),求出信號的頻率及幅度信息,其中幅度信號代表著次聲波信號的功率強度。最后,檢測結(jié)果的顯示采用觸摸TFT彩屏,對信號的時域波形、頻率譜及功率信息等進行實時動態(tài)呈現(xiàn)。

2 硬件電路設(shè)計

  2.1 次聲波信號預(yù)處理

  次聲波信號的預(yù)處理是影響整個系統(tǒng)檢測性能的重要因素,因此電路設(shè)計必須充分考慮提高次聲信號的質(zhì)量,并將信號調(diào)整為適合ADC處理的幅度范圍。由于次聲波傳感器采集的次聲信號微弱,這里首先選用高精度、低功耗的精密儀表放大器INA118P對預(yù)處理信號進行放大。之后對信號進行低通濾波。低通濾波器的選擇采用TI公司的UAF42Au芯片,該濾波器的3 dB截止頻率滾降陡峭,可以很好地濾掉環(huán)境中高頻噪聲,提高信噪比。

002.jpg

  濾波后的信號依次通過信號衰減電路和程控增益放大器PGA203進行幅度調(diào)整,程控放大器部分電路如圖2所示。對于不同強度的次聲波信號,可以通過軟件程序靈活調(diào)節(jié)該放大器的放大倍數(shù),從而擴大對次聲波信號檢測的量程。經(jīng)過上述處理后的信號仍為正負輸出信號,而系統(tǒng)的信號處理部分為單電源供電。因此需要對正負信號加直流偏置,將信號抬高到0 V以上。最后,信號通過直流偏置電路調(diào)整幅度進入ADC。該直流偏置電路利用運算放大器OP27CJ8實現(xiàn)。

  2.2 核心處理器及電源設(shè)計

  本次聲波檢測系統(tǒng)采用STM32F103處理器,其中STM32F103xx增強型系列使用高性能的ARM Cortex-M3,具有32位的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲器(高達128 KB閃存和20 KB SRAM),還有豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件都包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含標(biāo)準(zhǔn)和先進的通信接口:多達2個I2C和SPI、3個USART、1個USB和1個CAN。STM32F103xx增強型系列工作于-40 ℃~+105 ℃的溫度范圍,供電電壓為2.0 V~3.6 V,一系列的省電模式保證低功耗應(yīng)用的要求[4]。通過復(fù)雜的實驗驗證在惡劣的外界環(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處理器通過一個40芯的2.54間距的雙排母座連接。 顯示屏板上貼有一塊4.3英寸觸摸屏。觸摸芯片控制為SPI方式,觸摸芯片采用XPT2046N。該液晶顯示分辨率為480×272像素,色彩為64K色。

  通過STM32的接口以及FSMC總線可以直接驅(qū)動該液晶屏及顯示。關(guān)于液晶屏及觸摸屏的驅(qū)動各種資料很多,本文在此不做贅述。

3 軟件設(shè)計及實現(xiàn)

  3.1 軟件整體設(shè)計

003.jpg

  軟件整體流程圖如圖3所示,軟件整體可分三部分:STM32的ADC采集次聲波信號;對采集數(shù)據(jù)作FFT求出次聲波信號的頻率和幅度,該部分通過調(diào)用ST公司基于STM32的FFT庫函數(shù)完成;觸摸屏的驅(qū)動和用戶界面控制部分,共分為5個用戶交互界面,如圖4所示,包括1個主界面和4個從界面。

  主界面主要是用于設(shè)置STM32的A/D采樣率Fs和FFT點數(shù)Fn,本系統(tǒng)現(xiàn)可支持128、256、512、1 024、2 048、4 096的采樣率Fs和128、256、512、1 024的FFT點數(shù)Fn。Fs和Fn的自由設(shè)置大大提高了系統(tǒng)檢測和分析次聲波的靈活性。從主界面通過4個按鈕控件可分別進入到從界面查看次聲波檢測與分析信息。

  從界面1實時顯示出當(dāng)前環(huán)境中次聲波的時域波形;從界面2給出次聲波實時頻譜圖,可通過返回主界面重新設(shè)置合適的Fs與Fn來調(diào)整波形,方便用戶更準(zhǔn)確地通過頻域圖中坐標(biāo)系讀出次聲波中頻率成分及功率分布;從界面3則對環(huán)境次聲波中所含的各個頻率信號的功率比例以柱形圖的形式列出,用戶由此界面可直觀地觀察到環(huán)境中各個頻率成分的次聲波在環(huán)境中含量高低,使用戶對次聲波的成分組成一目了然;從界面4則是對各頻率成分的平均功率由高到低以列表形式給出,用戶可由此得到各頻率次聲波功率的具體數(shù)值。

  3.2 系統(tǒng)任務(wù)創(chuàng)建

  作為環(huán)境中次聲波采集系統(tǒng),必須確保其良好的實時性,因此系統(tǒng)軟件的設(shè)計便充分利用了?滋C/OS-II實時操作系統(tǒng)的多任務(wù)機制[5]。本系統(tǒng)軟件程序中用OSTaskCreate函數(shù)創(chuàng)建了4個系統(tǒng)任務(wù),優(yōu)先級由高到低分別是:

  (1)主任務(wù)

  用于建立其他任務(wù)。主任務(wù)的建立便于系統(tǒng)任務(wù)的擴展與裁剪,同時使得代碼可移植性大大提高。

  (2)觸摸屏坐標(biāo)獲取任務(wù)

  每隔10 ms獲取一次觸摸坐標(biāo),即用于捕獲用戶在觸摸屏上的動作,以實時響應(yīng)用戶的輸入。

  (3)FFT任務(wù)

  用于執(zhí)行FFT算法,因為本系統(tǒng)支持高達2 048點FFT,算法執(zhí)行占用較多系統(tǒng)資源,此處將FFT單獨作為一個任務(wù)可以大大提高系統(tǒng)實時響應(yīng)。

  (4)用戶界面任務(wù)

  用于創(chuàng)建用戶界面,包括觸摸屏各個顯示界面上對話框、按鈕、列表框、文本等資源的創(chuàng)建,同時執(zhí)行各界面的畫圖操作和屏幕刷新。

  3.3 多任務(wù)調(diào)度[6]

  本系統(tǒng)不同任務(wù)間的通信與同步是通過信號量來實現(xiàn)的,?滋C/OS-II中的信號量由信號量的計數(shù)值和等待該信號量的任務(wù)列表組成。在App_TaskCreate函數(shù)里創(chuàng)建系統(tǒng)任務(wù)的同時,也通過OSSemCreate函數(shù)創(chuàng)建了一個信號量,該信號量主要用于用戶界面任務(wù)與FFT任務(wù)之間的通信與同步。

  C/OS-II中的多任務(wù)切換機制是:在每一個時鐘節(jié)拍開始,執(zhí)行目前處于就緒狀態(tài)的最高優(yōu)先級的任務(wù)。這樣系統(tǒng)中4個任務(wù)優(yōu)先級的設(shè)置將導(dǎo)致:一方面,F(xiàn)FT任務(wù)的優(yōu)先級高于用戶界面任務(wù),導(dǎo)致每個時鐘周期內(nèi)CPU都在執(zhí)行優(yōu)先級較高的FFT任務(wù),而用戶界面任務(wù)得不到執(zhí)行;另一方面,F(xiàn)FT任務(wù)只有在用戶選擇查看頻域信息時才會用到,但它涉及大量迭代運算,耗費系統(tǒng)資源。因此,在軟件程序設(shè)計中,可充分利用信號量的設(shè)置來調(diào)度各任務(wù)的有序執(zhí)行:用戶界面任務(wù)在用戶選擇查看頻域信息操作時才會發(fā)送一次信號量(通過OSSemPost函數(shù)),這使得等待信號量的較高優(yōu)先級FFT任務(wù)被執(zhí)行,執(zhí)行一次循環(huán)后FFT任務(wù)掛起,繼續(xù)等待信號量(通過OSSemPend函數(shù)),用戶界面任務(wù)再次得到CPU控制權(quán),周而復(fù)始。

004.jpg

  任務(wù)調(diào)度時鐘示意圖如圖5所示。在第2個時鐘節(jié)拍內(nèi),由于用戶進入從界面2、3或4查看頻域信息,用戶界面任務(wù)發(fā)出信號量,使等待信號量的FFT任務(wù)被執(zhí)行。接下來的時鐘節(jié)拍內(nèi),F(xiàn)FT任務(wù)依然會被調(diào)用,直到用戶返回主界面或從界面1時,F(xiàn)FT任務(wù)再次被掛起。多任務(wù)調(diào)度節(jié)省了系統(tǒng)資源,使得整個系統(tǒng)能夠?qū)崟r地采集與處理數(shù)據(jù)、響應(yīng)用戶的觸摸屏輸入,并呈現(xiàn)連續(xù)動態(tài)變化的時域與頻域波形、柱形分析圖和次聲波功率等數(shù)據(jù)。

  3.4 調(diào)試結(jié)果

  將編寫的程序下載到STM32F103中,連接好硬件電路,通過觸摸屏設(shè)置采樣率和FFT點數(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)定地運行。

  系統(tǒng)輸入10 Hz測試方波后的柱形圖及各頻率信號的功率信息分別如圖6所示

005.jpg

4 結(jié)論

  本文設(shè)計的基于嵌入式處理器STM32的便攜式次聲檢測儀通過軟硬件的協(xié)同處理,實現(xiàn)了對環(huán)境次聲波的檢測與分析。通過TFT觸摸屏作為人機交互界面,接收用戶的輸入完成相關(guān)參數(shù)的設(shè)置及不同功能界面的顯示。本系統(tǒng)具有體積小、操作簡單、準(zhǔn)確性以及穩(wěn)定度高等優(yōu)點,可以作為便攜式次聲檢測裝置相關(guān)研究的參考,現(xiàn)已能夠穩(wěn)定運行于次聲檢測環(huán)境中。

參考文獻

  [1] 肖俊,楊良信,沈文彬.簡易次聲檢測裝置的研制[J].傳感器世界,2010(8):34-36.

  [2] 闞玲玲,梁洪衛(wèi),高丙坤,等.基于次聲波的天然氣管道泄漏檢測系統(tǒng)設(shè)計[J].化工自動化及儀表,2011,38(6):653-655.

  [3] 劉淼,王田苗,魏洪興,等.基于?滋COS-II的嵌入式數(shù)控系統(tǒng)實時性分析[J].計算機工程,2006,22(11):222-224.

  [4] 李寧.基于MDK的STM32處理器應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.

  [5] 任順航,呂鵬鵬,王立鵬,等.基于STM32的電能手抄系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2014,40(1):75-78.

  [6] 任哲,潘樹林,房紅征.嵌入式操作系統(tǒng)基礎(chǔ)C/OS-II和Linux[M].北京:北京航天航空大學(xué)出版社,2006.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。