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