文/謝鵬輝 岳全勝 余世賢 王鏈琿 王洋
超聲波測距作為一種典型的非接觸測量方法,其系統核心部分通常包括測距方法和單片機。當前超聲波測距方法主要有三種:相位檢測法、聲波幅值檢測法和渡越時間法。相位檢測法測量精度最高,但測量范圍具有一定局限性且電路復雜;聲波幅值檢測法操作最簡單、成本相對較低,但易受到反射介質的影響;渡越時間法總體來看是相對居中的,不太復雜,且測量距離、精度也較高。
目前常見的單片機有51系列、STC系列和MSP430系列等。51系列應用廣泛、功能完備,但抗干擾能力不強;而STC系列抗干擾能力較強、功耗較低,但故障率較高、集成資源較少。與上述相比,MSP430系列具有功能強大、功耗低、集成度高、抗干擾能力強等特點。
綜上所述,本文將基于MSP430單片機采用渡越時間法進行超聲波測距系統的設計。
渡越時間法測距的基本思想是利用超聲波在介質中傳播時間和速度來確定距離。本文以MSP430單片機作為處理器,聯同超聲波接發、溫度測量及電子顯示等單元一起構成了超聲波測距系統。系統結構圖如圖1所示。

圖1:超聲波測距結構圖

圖2:超聲波時序圖
本文超聲波測距系統的硬件設計主要包括單片機選擇與超聲波測距模塊、電源電路和復位電路等設計。
MSP430系列單片機是美國德州儀器1996年開始推向市場的一種16位超低功耗、具有精簡指令集的混合信號處理器,其主要特點:
(1)低電源電壓范圍,1.8~3.6V;
(2)超低功耗,擁有5種低功耗模式;(3)靈活的時鐘使用模式;
(4)高速的運算能力,16位RISC架構,125ns指令周期;
(5)豐富的功能模塊。
本文測距系統采用XKC-ME007Y50HV2型超聲波測距模塊。該超聲波測距模塊有三個輸出口,分別是UART串行輸出、RS485輸出和PWM輸出。本文系統選擇PWM輸出方式,通過對應的指令或觸發方式來啟動模塊工作,完成測距后,模塊以對應的形式輸出距離值或者溫度值。本文測距系統PWM接口對應有VCC、Trigger、Echo、GND四個管腳,其分別對應于:VCC,電源輸入(模塊默認為5V供電);Trigger,觸發引腳,高電平觸發,高電平寬度不能小于50 毫秒;Echo,PWM輸出引腳;GND,電源接地端。

圖3:超聲波測距主程序
當觸發管腳(Trigger)接受到一個高電平觸發脈沖后,模塊內部自動發出8個50kHz的超聲波,并檢測回波信號的時間長短,然后管腳(Echo)輸出對應的PWM脈寬電平。本文系統采用MCU判斷高電平的時間計算得到距離值。如果沒有檢測到物體,管腳(Echo)將輸出約60ms的固定脈寬,其對應的超聲波時序圖如圖2所示。
從圖2可以看出,XKC-ME007Y50H V2超聲波傳感器模塊的測距主要包含以下3個過程:
(1)采用I/0觸發測距,給至少50ms的高電平信號;
(2)模塊自動發送8個50KHz的方波,自動檢測是否有信號返回;
(3)一旦有信號返回,則可以檢測到通過I/0輸出的高電平,而高電平持續的時間就是超聲波從發射到返回的總時間。
本文測距系統采用+5V電源,該電源是由220V交流電源經過 8V變壓器降壓后,經過橋式整流電路和電容濾波,再通過三端穩壓器 LM7805 輸出 +5V 電壓。
本文測距系統采用手動按鈕復位,在RST 端和正電源 VCC之間接一個按鈕。當按下按鈕時,VCC的+5V 電平直接加到 RST 端,使得單片機復位。
本文系統軟件設計選用IAR軟件,采用C語言進行程序編寫。系統軟件包括主程序、溫度采集子程序、數碼顯示子程序、發射子程序、計算子程序、定時器中斷子程序和外部中斷子程序。其中,主程序是整個系統控制的核心,完成設備的初始化和其余各子程序的調用;發射子程序進行產生和發射超聲波信號;溫度采集子程序完成對環境溫度信息的采集;計算子程序負責對測量的數據進行運算和處理并發送到數碼顯示子程序顯示測量結果。
當系統完成初始化后調用發射子程序發送超聲波時,啟動計數器開始計數;當接收到回波信號時,響應外部中斷INTO,轉向中斷服務程序。中斷服務程序讀取計數結果,由主程序調用子程序進行數據運算和數據處理,最后將結果送顯示屏顯示。具體的主程序流程圖如圖3所示。
在超聲波測距系統的設計方案中,超聲波換能器發射探頭和接收探頭距離相對較近。在發射探頭發射超聲波后,有部分超聲波未經過障礙物反射便繞射到接收探頭上。這部分信號是無用的,當出現此種情況時將會自動引發系統誤差處理系統工作。本文采用延時技術來解決這個問題,并設定延時時間為0.8ms,即在發射極發射超聲波0.8ms內,通過軟件關閉所有中斷,接收電路對在此期間接收到的任何信號不予理睬;而在0.8ms后立即啟動T0,自此接收到的信號被視為有效。并在接收到回波信號的同時,TO停。此時 TO所記錄的CPU發送脈沖信號的前沿到回波脈沖信號之間的時間才是需要的,因此系統存在測量盲區。
本文基于MSP430單片機設計了一種簡易超聲波測距系統。整個系統同傳統的測距設備相比,其結構簡單、體積較小、價格便宜,且能耗低、適合長時間工作。在本文作者現階段的研究工作中,將此測距系統用于高速公路應急車道占用檢測系統,主要用于判定車輛是否占用了應急車道,從而記錄下車輛信息供高速公路監管部門參考,使監管部門能夠更有效更大范圍的對應急車道的使用實施嚴格監管。
參考文獻
[1]張紅蓮.基于單片機的超聲波測距系統的設計[J].可編程控制器與工廠自動化,2008(09):89-91.
[2]苑潔.基于STM32單片機的高精度超聲波測距系統的設計[D].華北電力大學(北京)華北電力大學,2012.
[3]徐江維,李菲.基于單片機的的超聲波測距儀[J].電子世界,2017(09):108-108.
[4]趙欣哲,楊培培,劉文凱.超聲波小車自動測距變速系統[J].大學物理實驗,2014,v.27;No.107(04):73-76.
[5]張波,王朋亮.基于STC89C51單片機超聲波測距系統的設計[J].機床與液壓,2010,38(18):56-58.