孫金林,王國余,胡方圓
(1.江蘇大學 理學院,江蘇 鎮江212013;2.江蘇大學 電氣信息工程學院,江蘇 鎮江212013)
聲波是一種在彈性介質中傳播的機械縱波。可聞聲波的頻率范圍是20 ~20 Hz,低于20Hz 的聲波稱為次聲波,高于20 kHz 的聲波稱為超聲波。聲速是描述聲波在彈性介質中傳播特性的一個基本物理量。超聲波具有波長短、可定向的優點,因此,常被用作測量聲速。聲速測量物理實驗中常用共振干涉法、相位比較法和時差法三種實驗方法來測定超聲波的聲速[1]。
傳統聲速測量實驗中的相位比較法過程繁瑣,且存在較大誤差與測量滯后性。為改進傳統測量方式的不足,一些學者對測量儀器進行了改造,一定程度上實現了聲速的自動測量。同時,電子電路技術[2]、單片機技術[3]以及鎖相環技術[4]也越來越多地被學者們運用到自動聲速測量裝置的研制中。但改進后的裝置仍然存在測量精度低、易受環境干擾的問題,亟待解決。
為解決聲速測量實驗過程繁雜、耗時長、易出錯、測量精度低的問題,本文提出一種基于MSP430F169 單片機的數字處理聲速測量系統,依據相位比較法的原理設計裝置,數據采集與處理過程全部由數字系統自動完成,簡化了實驗操作,同時大大提高實驗的測量精度。
針對傳統聲速測量過程易受人為因素影響,實驗結果精度低的特點,利用單片機高速處理數字信號的能力,基于相位法設計了實現數字化聲速測量的系統。實驗過程中自動記錄、處理實驗數據,液晶實時顯示,并且實驗結束后自動生成實驗結果后分析報表。該裝置設計的難點主要在于精確測量記錄發射端信號與接收端信號之間的相位差。為此,設計了一整套信號調理電路和邏輯分析程序。整個實驗裝置由信號測量部分與處理部分組成,以MSP430F169單片機為核心,包括信號發射驅動模塊、接收模塊、信號調理模塊、波形整形模塊、相差比較模塊、位移測量模塊、溫度檢測模塊、按鍵與液晶模塊、上位機通信模塊。裝置的整體設計框圖如圖1 所示。

圖1 裝置系統框圖Fig 1 Block diagram of device system
發射模塊將單片機產生的脈寬調制(pulse width modulation,PWM)信號放大后驅動超聲波發生器發射超聲波。由信號測量部分檢測發射與接收兩個信號,并送至信號處理部分,信號處理部分包括信號調理、波形整形以及相差比較,最終得到兩信號的相位差輸出到控制器。控制器MSP430 將接收到的數據轉換處理得到聲速數據,顯示在液晶上。同時,溫度檢測模塊檢測環境溫度后送至單片機以計算聲速理論值。本裝置帶有人機交互設計,實驗者通過按鍵設定實驗的開始與結束,液晶實時顯示環境溫度、波長、聲速等數據。同時,本測量系統通過RS—485 總線將數據傳送至上位機生成測量報表。
圖2 為裝置的機械結構示意圖。裝置主體結構與傳統聲速測量儀類似,為了實現智能化增加了位置檢測模塊。該模塊主要由齒輪1、齒輪2 和編碼器組成。齒輪1 和絲杠末端周向固定,與齒輪2 起到傳動和變速作用。
超聲波發射驅動模塊主要用于產生超聲波信號,作為實驗裝置的測量聲波。使用MSP430 單片機的PWM 功能,在單片機IO 口上產生頻率為f1(35 ~45 Hz)的可調方波信號[5],經由信號放大電路驅動超聲波發射器T 發射頻率為f1的超聲波。

圖2 機械結構圖Fig 2 Mechanical structure diagram
為了使接收到的信號波形滿足本裝置的應用,需要在超聲波接收器R 接收到波形后加上濾波電路,多次調試后最終選用多路反饋型有源帶通巴特沃茲濾波器[6],中心頻率設為40 Hz,轉角頻率衰減為-3 dB。二階帶通濾波器的傳遞函數為

濾波器設計中運算放大器選用OP07 集成運放,濾波效果顯著。濾波后的信號較微弱,故再加上一級放大電路。同時,將濾波電路與放大電路分離,放大電路通過調節可調電位器R5 的阻值來調整放大倍數,如圖3 所示。放大電路的放大倍率為


圖3 濾波放大與AGC 電路Fig 3 Filtering,amplification and automatic gain control(AGC)circuit
當接收器與發射器之間距離不同時,接收到的信號強度有較大差異,設計在濾波放大之后加上自動增益控制(automatic gain control,AGC)模塊使輸出信號幅值穩定。選用ADI 公司的AD603 自動增益控制芯片[7]設計了如圖3所示的電路,AGC 電路由增益受控放大部分和控制電壓形成兩部分組成。將輸出信號經反饋回路連接到增益控制輸入端,整個模塊構成一個閉環電路系統。在輸入信號變化范圍內,輸出信號的幅值恒定。
為將濾波放大與自動增益控制電路處理后輸出的正弦波信號轉換為單片機可以處理的矩形波信號,需要進行波形整形。對該實驗而言,只需知道接收信號與發射信號之間的相位關系就能計算出發射超聲波的波長。波形整形電路選用電壓比較器LM393,將濾波后的輸出信號V+接到LM393 的陽極輸入端,LM393 的陰極接地,當V+大于0 V時,輸出高電平;反之,輸出低電平,即可實現波形整形變換。
由于超聲波發射器的驅動信號與超聲波接收器的信號均為等寬方波,可使用異或門鑒相器進行相差比較,實現簡單,可靠性高。單片機產生的PWM 信號經放大電路后即驅動裝置發射超聲波,將該信號與整形電路的輸出信號接入異或門鑒相器。OUT=IN1 ⊕IN2,鑒相器的輸出經MSP430F169 單片機輸入捕獲[5]即可得到兩信號的相位差,如圖4 所示。

圖4 相差比較原理圖Fig 4 Principle diagram of phase difference comparison
使用DS18B20 數字溫度傳感器[8]檢測環境實時溫度。按照其總線時序編寫程序依次讀取總線數據,即可得到準確的溫度值。DS18B20 具有體積小、精度高、抗干擾能力強的特點。
同時,為了得到聲速測量結果,首先應檢測出聲源的波長數據。當相位差為2π 整數倍時,接收頭與發射頭之間的距離即為波長的整數倍,為了測量的準確與便利,選用編碼器與兩個齒輪構成的變速結構配合來測量位移。
絲杠導程p=2 mm,齒輪1 和齒輪2 的分度圓直徑比n=4︰1,編碼器的分辨率為1 024p/R,則本裝置的位移檢測模塊精確度為。為了減小測量誤差,可在實驗前進行校準:搖動手柄,使標尺位于0 刻度線處,按下按鍵后搖至滿刻度線處,再按下按鍵,即可對檢測模塊校準位置。
超聲波發射器由PWM 波形放大后驅動,而PWM 由MSP430 單片機的定時器A 產生,選擇MSP430 輸出模式中的“復位/置位”模式產生PWM[9]信號。設一個電壓變化周期為T,一個周期內高電平時間為t0,則占空比
程序中設置定時器寄存器CCR0 改變PWM 周期,設置CCR1 改變占空比,在本裝置中需要產生占空比為50%的方波。
相差比較模塊的輸出為調理整形后的接收信號與單片機產生PWM 邏輯異或后得到的信號,將該信號輸至MSP430 的輸入捕獲端P4.0,對定時器B 初始化為上升沿捕獲,當捕獲發生后進入中斷。在中斷函數中進行邏輯判斷,若捕捉到上升沿,將定時器B 改為下降沿捕獲,同時開始計數,跳出中斷。若再次發生捕獲進入中斷,判斷捕捉到下降沿,將定時器B 改為上升沿捕獲,終止計數,跳出中斷,則上升沿與下降沿之間的脈沖寬度可以由寄存器TBCCR0 的值換算后得到。根據脈沖寬度即可判斷相位差,當相位差為2π 整數倍時,脈沖寬度應當為0。
使用NI 公司的LabVIEW 軟件設計上位機,將接收到的串口數據進行處理,寫入電子表格,并生成測量數據Excel文件報表供實驗分析。上位機整體程序框圖如圖5所示。單片機計算得出聲速數據后即通過串口發送聲速數據與溫度數據到上位機,上位機將數據寫入Excel 文件。待實驗結束后,得到完整的數據報表,可利用此報表完成實驗數據的分析工作,提高效率。

圖5 上位機程序框圖Fig 5 Program block diagram of upper PC
當聲源wavel 和接收到的信號wave2 之間的相位差為2π 的整數倍時,單片機自動記錄此時超聲波接收器R 的位置。整個實驗過程就是在搖動機械手柄的同時觀測液晶顯示,單片機可直接輸出實驗結果。實驗者也可以通過游標卡尺人工讀取位置信息并記錄和處理數據進行實驗操作。兩次實驗結果對比,可得出原實驗操作結果與本裝置的單片機輸出結果之間的誤差。
在測得n+1 個相差2π 整數倍位置的坐標后,單片機利用逐差法原理計算出聲波的波長λ,再利用v=λ·f 求得聲速。
已知在室溫t ℃下,干燥空氣中的聲速為[1]

溫度檢測模塊實時檢測實驗環境溫度,單片機根據式(3)求出理論聲速值并計算本次實驗結果與理論值之間的誤差。
實驗過程中,慢慢搖動機械手柄,兩信號之間的相位差逐漸變大,直到相位差為2π 整數倍,即信號重合,單片機自動記錄本次測得的聲速數據。繼續搖動機械手柄,會多次出現信號重合的情況,單片機自動記錄多組數據。實驗結束,按確認結束鍵,單片機根據多組數據計算得到最后的聲速數據。為優化系統軟件程序設計,整個系統的軟件結構選用模塊化結構,采用自上而下的方法,程序流程圖如圖6所示。

圖6 主程序流程圖Fig 6 Flow chart of main program

圖7 儀器測試波形Fig 7 Test waveforms of instrument
裝置設計完畢后進行測試實驗,驗證測量儀的可靠性。圖7(a),(b)為超聲波發射器驅動信號與接收器接收信號的波形;7(c),(d)為超聲波接收器接收到的信號經信號調理和整形之后的輸出波形;7(e),(f)為兩信號相位差分別為2π 和π 時異或門鑒相器的輸出波形圖。由圖中可以看出,本測量儀能夠準確地判斷出相位差2π 的位置,信號送至單片機后記錄有效數據。
在不同時間段多次進行實驗測試,實驗結果數據如表1所示。

表1 聲速測量儀測試結果Tab 1 Test result of sound velocity gauge
作出測量結果誤差折線圖,如圖8 所示。結果表明:最大誤差為0.304 m/s,最小誤差為0.104 m/s,平均誤差為0.232 m/s,誤差滿足測量精度要求。

圖8 測量結果誤差折線圖Fig 8 Error line chart of measurement result
經過前期的調試與改良,成功開發了基于MSP430F169單片機的智能聲速測量系統。測試結果表明:裝置的測量值與理論值之間的相對誤差僅為0.08%,說明本裝置的精度較高。同時,由于使用單片機作為儀器的處理器,并且信號檢測與處理部分均使用電子電路,使得測量裝置體積小,抗干擾能力強,具有很好的應用前景。
[1] 許伯強,王紀俊,曹國榮,等.大學物理實驗[M].鎮江:江蘇大學出版社,2011.
[2] 朱方璽,曹偉然.聲速測量實驗儀的改進[J].物理實驗,2011(10):40-43.
[3] 童建平,隋成華,魏高堯,等.時差法聲速測量儀的研制[J].傳感器技術,2004,23(1):28-29.
[4] 彭 丹,徐可欣,杜振輝,等.基于鎖相環技術的超聲測速系統研究[J].傳感器與微系統,2007,26(10):63-65.
[5] 魏小龍.MSP430 系列單片機接口技術及系統設計實例[M].北京:北京航空航天大學出版社,2002.
[6] Schaumann R.Design of analog filters[M].Oxford:Oxford University Press,2001.
[7] Devices A.AD603:Low noise,90MHz variable gain amplifier[Z].2004.
[8] 周月霞,孫傳友.DS18B20 硬件連接及軟件編程[J].傳感器世界,2001,7(12):25-29.
[9] 李天博,陳 玲,陳坤華,等.基于MSP430 的肌電假手系統設計[J].傳感器與微系統,2012,31(4):75-78.