《電子技術(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)具有成本低、操作簡單,、準確度和穩(wěn)定性高等優(yōu)點,。
關(guān)鍵詞: 次聲波檢測 STM32 多任務(wù) FFT
中圖分類號: TP302
文獻標識碼: 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]的便攜式次聲檢測儀,,準確穩(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定時器,還包含標準和先進的通信接口:多達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實時顯示出當前環(huán)境中次聲波的時域波形,;從界面2給出次聲波實時頻譜圖,,可通過返回主界面重新設(shè)置合適的Fs與Fn來調(dià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)觸摸屏坐標獲取任務(wù)

  每隔10 ms獲取一次觸摸坐標,,即用于捕獲用戶在觸摸屏上的動作,以實時響應(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ù),。當采集緩存區(qū)數(shù)據(jù)準備好后開始對采樣數(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)具有體積小,、操作簡單、準確性以及穩(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)載。