摘 要:提出了一種基于AT89S51單片機的超聲波測距系統的設計方案。詳細分析了影響測距系統精度的主要因素,設計出了各單元電路和整體電路,重點介紹了提高測量精度的方案和具體實現電路,采用單片機技術進行控制,并給出了控制流程圖。設計出的超聲波測距系統精度可達毫米數量級,電路具有結構簡單、 操作方便、精度高、應用廣泛的特點。
關鍵詞:測距系統;AT89S51;誤差分析;硬件設計;流程圖
中圖分類號:TP302.1 文獻標識碼:B 文章編號:1004373X(2008)1513703
Design of High Precision Ultrasonic Distance Measurement System
SONG Yongdong,ZHOU Meili,BAI Zongwen
(College of Physics and Electronic Information,Yan′an University,Yan′an,716000,China)
Abstract:A plan of ultrasonic distance measurement system based on AT89S51 is derived in this paper, the main factors impact of precision are analyzed in detail and the unit circuit and complete circuit are given.The plan of improving the accuracy and specific circuit is introduced.The system′s accuracy is reached millimeters orders of magnitude.All of the component is controlle by AT89S51,and the control program flow is presented.Circuit have many advantages such as simply structure,easy to use,high accuracy and wide application.
Keywords:distance measurement system;AT89S51;error analysis hardware design;program flow
1 引 言
利用超聲波測量距離的原理可簡單描述為:超聲波定期發送超聲波,遭遇障礙物時發生反射,發射波經由接收器接收并轉化為電信號,這樣測距技術只要測出發送和接收的時間差,然后按照下式計算,即可求出距離:S=CΔt/2(1) 由于超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業實用的要求,因此,廣泛應用于倒車提醒、建筑工地、工業現場等的距離測量。目前的測距量程上能達到百米數量級,測量的精度往往能達到厘米數量級。 本文在分析現有超聲波測距技術基礎之上,給出了一種改進方案,測量精度可達毫米級。
2 系統方案分析與論證
2.1 影響精度的因素分析
根據超聲波測距式(1)可知測距的誤差主要是由超聲波的傳播速度誤差和測量距離傳播的時間誤差引起的。
對于時間誤差主要由發送計時點和接收計時點準確性確定,為了能夠提高計時點選擇的準確性,本文提出了對發射信號和加收信號通過校正的方式來實現準確計時。此外,當要求測距誤差小于1 mm時,假定超聲波速度C=344 m/s (20 ℃室溫),忽略聲速的傳播誤差。則測距誤差sΔt<0.000 002 907 s,即2.907 ms。根據以上過計算可知,在超聲波的傳播速度是準確的前提下,測量距離的傳播時間差值精度只要在達到微秒級,就能保證測距誤差小于1 mm的誤差。使用的12 MHz晶體作時鐘基準的89C51單片機定時器能方便的計數到1 μs的精度,因此系統采用AT89S51的定時器能保證時間誤差在1 mm的測量范圍內。
超聲波的傳播速度主要受空氣密度所的影響,空氣的密度越高則超聲波的傳播速度就越快,而空氣的密度又與溫度有著密切的關系。溫度與超聲波的速度之間的近似公式為:C=CO+0.607×T ℃(2)式中:CO為零度時的聲波速度332 m/s; T為實際溫度(℃)。 由此可見,測量精度與溫度有著直接的關系,本文采用DS18B20溫度傳感器,對外界溫度進行測量,并在軟件中實現溫度補償。
2.2 整體方案設計
本文主要采用單片機控制技術,實現精確的超聲波測距方案,整個系統由超聲波收發單元、波形校準單元、溫度測量單元、顯示單元和控制單元5個單元組成。其中,超聲波收發單元主要實現超聲波的接發送和接收;信號處理單元主要實現去除干擾、波形整形、鎖相環等功能,便于實現準確計時;溫度測量單元主要測量外界溫度,實現溫度補償;顯示單元實現測量數據的顯示;單片機為控制單元,完成指令發送,接收數據,進行計算等任務。

3 系統硬件設計
3.1 超聲波發射部分
本文中脈沖發射采用軟件方式,利用AT89S51的P1.0口發射40 kHz的方波信號,經過74HC04放大后輸出到超聲波換能器,產生超聲波。74HC04是一個高速CMOS六反相器,具有放大作用,具有對稱的傳輸延遲和轉換時間,而相對于LSTTL邏輯IC,它的功耗減少很多。對于HC 類型,其工作電壓為2~6 V,它具有高抗擾度,可以兼容直接輸入LSTTL邏輯信號和CMOS邏輯輸入等特點。
本系統將40 kHz方波信號分成兩路,分別由74HC04經兩次和一次反向放大,從而構成推拉式反向放大。電路圖如圖2所示。

3.2 超聲波接收部分
超聲波接收部分采用集成芯片CX20106A,這是一款紅外線檢波接收的專用芯片。內部電路由前置放大器、自動偏置電平控制電路、限幅放大器、帶通濾波器、峰值檢波器和整形輸出電路組成。可以利用它作為超聲波檢測電路。
接收的回波信號先經過前置放大器和限幅放大器,將信號調整到合適的幅值;再經過帶通濾波器濾波得到有用信號,濾除干擾信號;最后由峰值檢波器和整形電路輸出到鎖相環路,實現準確的計時。CX20106A的外部接線圖如圖3所示。

圖3中1腳是接收信號輸入端,2腳是調節接收信號靈敏度,電阻越小,靈敏度越高。電容越大,靈敏度越高。電容一般取1 μF,電阻50~300 Ω的,在干擾較大的場合增加電阻阻值可將靈敏度調低,干擾小的場合減小阻值將靈敏度調高。5腳主要用來調節中心頻率,這里取200 kΩ,7腳接上拉電阻,這里取1 kΩ左右。3.3 顯示部分
顯示部分采用共陰極數碼管,由單片機實現控制,單片機的P0口輸出段碼,P2口用作位碼,用PNP型三極管驅動(本設計采用9018),由于單片機I/O口的驅動能力非常小,P0口需外接上拉電阻來增加驅動能力,應用時要注意,在低電平時,可能由于電流直接經電阻流進I/O的灌流太大而燒毀單片機,所以提升電阻一般取600~1 000 Ω。實驗證明,數碼管亮度合適。其原理圖如圖4所示。

3.4 溫度測量部分
DS18B20數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,將其數據線與單片機的P1.3相連,就可以實現溫度測量。測量的溫度精度可以達到0.1 ℃,測量的溫度的范圍在-20~+100 ℃。電路如圖5所示。
4 系統軟件設計
測距系統軟件采用匯編語言,由發射脈沖子程序、用中斷實現回波接收子程序、計算距離子程序、數碼管顯示子程序和計時單元延時子程序幾部分組成,采用模塊化編程。其軟件流程圖如圖6所示。

程序首先初始化需要用到的寄存器,內存單元,設置中斷觸發方式,并初始化DS18B20,然后控制P1.0口輸出12 μs的高電平,再輸出13 μs的低電平,循環10次便可發射10個頻率為40 kHz的脈沖信號。經過一段延時后,CPU開放中斷,開始計數,將計數器初值設為延時所經過的距離,計數器每過一個計時單元加一。中斷產生,停止計數,最后將計數器中的值數據處理后顯示到數碼管上。如果計數器中的值小于預定值就由軟件產生一定頻率的信號到蜂鳴器報警,并啟動報警燈。當需要所存數據時,由外部中斷判斷鍵盤是否按下,通過不斷顯示上次測量數據來鎖定數據。當檢測到鍵盤再一次按下時,按取消鎖存,并繼續測量距離。
5 結 語
應用本系統3 mm~20 m內的目標做了多次測量,測量結果為,其最大誤差為1.5 mm,且重復性好。可見基于單片機設計的超聲波測距系統具有硬件結構簡單、工作可靠、測量誤差小等特點。因此,它可用于許多對測量要求精度高,測量范圍適當的設備和各種檢測系統中。
參 考 文 獻
[1]應崇福.超聲學[M].北京:科學出版社,1990.
[2]阮成功,藍兆輝,陳碩.基于單片機的超聲波測距系統[J].應用科技,2004,31(7):22-24.
[3]羅慶生,韓寶玲.一種基于超聲波與紅外線探測技術的測距定位系統[J].計算機測量與控制, 2005,13(4):304-305.
[4]莫樹彬.湘江航道工程勘測方法綜述[J].湖南交通科技,1994,20(3):41-46.
[5]李麗霞.單片機在超聲波測距中的應用[J].電子技術,2002,29(6):7-9.
[6]張珂,劉剛海.提高超聲波測距精度方法的研究[J].現代電子技術,2007,30(15):139-141.
[7]姜道連,寧延一,袁世良. 用AT89C2051設計超聲波測距儀[J].國外電子元器件,2000(12):31-34.
[8]宋學坤,陳迎春,趙進創.一種具有雙重輸出功能的超聲波測距系統[J].微計算機信息,2007,23(16):168-170,167.
[9]劉成安,孫濤.智能超聲波測距儀的研制[J].微計算機信息,2007,23(17):101-102,107.
作者簡介 宋永東 男,1957年出生,陜西戶縣人,延安大學信息學院副教授,學士。研究方向為數字圖像處理。
周美麗 女,1981年出生,陜西橫山人,延安大學信息學院信號與信息處理碩士研究生。研究方向為雷達信號處理。
白宗文 男,1979年出生,陜西鎮安人,延安大學信號與信息處理專業研究生。主要從事信號傳輸與處理研究。