1引言
隨著科學技術的快速發展,超聲波將在測距儀中的應用越來越廣。但就目前技術水平來說,人們可以具體利用的測距技術還十分有限,因此,這是一個正在蓬勃發展而又有無限前景的技術及產業領域。展望未來,超聲波測距儀作為一種新型的非常重要有用的工具在各方面都將有很大的發展空間,它將朝著更加高定位高精度的方向發展,以滿足日益發展的社會需求,如聲納的發展趨勢基本為:研制具有更高定位精度的被動測距聲納,以滿足水中武器實施全隱蔽攻擊的需要;繼續發展采用低頻線譜檢測的潛艇拖曳線列陣聲納,實現超遠程的被動探測和識別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標識別問題;大力降低潛艇自噪聲,改善潛艇聲納的工作環境。無庸置疑,未來的超聲波測距儀將與自動化智能化接軌,與其他的測距儀集成和融合,形成多測距儀。隨著測距儀的技術進步,測距儀將從具有單純判斷功能發展到具有學習功能,zui終發展到具有創造力。在新的世紀里,面貌一新的測距儀將發揮更大的作用。
隨著科技的發展,人們生活水平的提高,城市發展建設加快,城市給排水系統也有較大發展,其狀況不斷改善。但是,由于歷史原因合成時間住的許多不可預見因素,城市給排水系統,特別是排水系統往往落后于城市建設。因此,經常出現開挖已經建設好的建筑設施來改造排水系統的現象。城市污水給人們帶來了困擾,因此箱涵的排污疏通對大城市給排水系統污水處理,人們生活舒適顯得非常重要。而設計研制箱涵排水疏通移動機器人的自動控制系統,保證機器人在箱涵中自由排污疏通,是箱涵排污疏通機器人的設計研制的核心部分。控制系統核心部分就是超聲波測距儀的研制。因此,設計好的超聲波測距儀就顯得非常重要了。這就是我設計
超聲波測距儀的意義。
2總體設計方案
2.1設計思路
2.1.1超聲波測距儀的設計思路
超聲波是指頻率高于20KHz的機械波。為了以超聲波作為檢測手段,必須產生超生波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發送器和接收器,但一個超聲波傳感器也可具有發送和接收聲波的雙重作用。超聲波傳感器是利用壓電效應的原理將電能和超聲波相互轉化,即在發射超聲波的時候,將電能轉換,發射超聲波;而在收到回波的時候,則將超聲振動轉換成電信號。
超聲波測距的原理一般采用渡越時間法TOF(timeofflight)。首先測出超聲波從發射到遇到障礙物返回所經歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離
測量距離的方法有很多種,短距離的可以用尺,遠距離的有激光測距等,超聲波測距適用于高精度的中長距離測量。因為超聲波在標準空氣中的傳播速度為331.45米/秒,由單片機負責計時,單片機使用12.0MHZ晶振,所以此系統的測量精度理論上可以達到毫米級。
由于超聲波指向性強,能量消耗緩慢,在介質中傳播距離遠,因而超聲波可以用于距離的測量。利用超聲波檢測距離,設計比較方便,計算處理也較簡單,并且在測量精度方面也能達到要求。
超聲波發生器可以分為兩類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。本課題屬于近距離測量,可以采用常用的壓電式超聲波換能器來實現。
2.12超聲波測距原理
發射器發出的超聲波以速度υ在空氣中傳播,在到達被測物體時被反射返回,由接收器接收,其往返時間為t,由s=vt/2即可算出被測物體的距離。由于超聲波也是一種聲波,其聲速v與溫度有關,下表列出了幾種不同溫度下的聲速。在使用時,如果溫度變化不大,則可認為聲速是基本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。
表1超聲波波速與溫度的關系表
2.2超聲波測距儀原理框圖
根據設計要求并綜合各方面因素,可以采用AT89S51單片機作為主控制器,用動態掃描法實現LED數字顯示,超聲波驅動信號用單片機的定時器完成,超聲波測距器的系統框圖如圖1.
3.設計原理分析
3.1系統組成
3.1.1硬件部分
主要由單片機系統及顯示電路、超聲波發射電路和超聲波檢測接收電路三部分組成。采用AT89S51來實現對超聲波發射和接受處理模塊的控制。單片機通過P1.0引腳經反相器來控制超聲波的發送,然后單片機不停的檢測INT0引腳,當INT0引腳的電平由高電平變為低電平時就認為超聲波已經返回。計數器所計的數據就是超聲波所經歷的時間,通過換算就可以得到傳感器與障礙物之間的距離。
3.1.2軟件部分
主要由主程序、超聲波發生子程序、超聲波接收中斷程序及顯示子程序等部分。
3.2系統硬件電路設計
3.2.1單片機zui小系統
其作用主要是為了保證單片機系統能正常工作。如圖2所示,單片機zui小系統主要由AT89S51單片機、外部振蕩電路、復位電路和+5V電源組成。在外部振蕩電路中,單片機的XTAL1和XTAL2管腳分別接至由12MHZ晶振和兩個30PF電容構成的振蕩電路兩側,為電路提供正常的時鐘脈沖。在復位電路中,單片機RESET管腳一方面經20F的電容接至電源正極,實現上電自動復位,另一方面經開關s接電源。其主要功能是把PC初始化為0000H,是單片機從0000H單元開始執行程序,除了進入系統的初始化之外,當由于程序出錯或者操作錯誤使系統處于死鎖狀態時,為了擺脫困境,也需要按復位鍵重新啟動,因此,復位電路是單片機系統中*的一部分。
3.2.2單片機測距原理
單片機發出超聲波測距是通過不斷檢測超聲波發射后遇到障礙物所反射的回波,從而測出發射和接收回波的時間差tr,然后求出距離S=Ct/2,式中的C為超聲波波速。限制該系統的zui大可測距離存在4個因素:超聲波的幅度、反射的質地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定zui小的可測距離。為了增加所測量的覆蓋范圍、減小測量誤差,可采用多個超聲波換能器分別作為多路超聲波發射/接收的設計方法,限于實際需要,本電路只采用單路超聲波發射接收。由于超聲波屬于聲波范圍,其波速C與溫度有關。
3.2.3超聲波發射電路
壓電超聲波轉換器的功能:利用壓電晶體諧振工作。內部結構上圖所示,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生共振,并帶動共振板振動產生超聲波,這時它就是一超聲波發生器;如沒加電壓,當共振板接受到超聲波時,將壓迫壓電振蕩器作振動,將機械能轉換為電信號,這時它就成為超聲波接受轉換器。超聲波發射轉換器與接受轉換器其結構稍有不同。
壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內部有兩個壓電晶片和一個換能板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片會發生共振,并帶動共振板振動產生超聲波,這時它就是一個超聲波發生器;反之,如果兩電極問未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收換能器。超聲波發射換能器與接收換能器在結構上稍有不同,使用時應分清器件上的標志。本設計中發射器電路采用集成電路模塊不需考慮這些問題,主要是采用4069反相器在換能器兩端提供脈沖信號。其原理圖如圖3所示。
3.2.4超聲波檢測接收電路
集成電路CX20106A是一款紅外線檢波接收的芯片,常用于電視機紅外遙控接收器。考慮到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路(如圖2-3)。實驗證明用CX20106A接收超聲波(無信號時輸出高電平),具有很好的靈敏度和較強的抗*力。適當更改電容CS的大小,可以改變接收電路的靈敏度和抗*力。此部分電路在集成芯片上。
3.2.5LED顯示電路
根據設計要求并綜合各方面因素,可以采用AT89S51單片機作為主控制器,用動態掃描法實現LED數字顯示,超聲波驅動信號用單片機的定時器完成,顯示電路如下圖5
3.3系統軟件的設計
本設計基于匯編語言編程,其軟件設計思路如下:
3.3.1超聲波測距儀的算法設計
超聲波測距的原理為超聲波發生器T在某一時刻發出一個超聲波信號,當這個超聲波遇到被測物體后反射回來,就被超聲波接收器R所接收到。這樣只要計算出從發出超聲波信號到接收到返回信號所用的時間,就可算出超聲波發生器與反射物體的距離。距離的計算公式為:
d=s/2=(c×t)/2(1)
其中,d為被測物與測距儀的距離,s為聲波的來回的路程,c為聲速,t為聲波來回所用的時間。在啟動發射電路的同時啟動單片機內部的定時器T0,利用定時器的計數功能記錄超聲波發射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生一個負跳變,在INT0或INT1端產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務子程序,讀取時間差,計算距離。其部分源程序如下:
3.3.2主程序流程圖
軟件分為兩部分,主程序和中斷服務程序,如圖3-1(a)(b)(c)所示。主程序完成初始化工作、各路超聲波發射和接收順序的控制。
定時中斷服務子程序完成三方向超聲波的輪流發射,外部中斷服務子程序主要完成時間值的讀取、距離計算、結果的輸出等工作。
主程序首先是對系統環境初始化,設置定時器T0工作模式為16位定時計數器模式。置位總中斷允許位EA并給顯示端口P0和P1清0。然后調用超聲波發生子程序送出一個超聲波脈沖,為了避免超聲波從發射器直接傳送到接收器引起的直射波觸發,需要延時約0.1ms(這也就是超聲波測距儀會有一個zui小可測距離的原因)后,才打開外中斷0接收返回的超聲波信號。由于采用的是12MHz的晶振,計數器每計一個數就是1μs,當主程序檢測到接收成功的標志位后,將計數器T0中的數(即超聲波來回所用的時間)按式(2)計算,即可得被測物體與測距儀之間的距離,設計時取20℃時的聲速為344m/s則有:
d=(c×t)/2=172T0/10000cm(2)
其中,T0為計數器T0的計算值。
測出距離后結果將以十進制BCD碼方式送往LED顯示約0.5s,然后再發超聲波脈沖重復測量過程。為了有利于程序結構化和容易計算出距離。
3.3.3超聲波發生子程序和超聲波接收中斷程序
超聲波發生子程序的作用是通過P1.0端口發送2個左右超聲波脈沖信號(頻率約40kHz的方波),脈沖寬度為12μs左右,同時把計數器T0打開進行計時。超聲波發生子程序較簡單,但要求程序運行準確,所以采用匯編語言編程。
超聲波測距儀主程序利用外中斷0檢測返回超聲波信號,一旦接收到返回超聲波信號(即INT0引腳出現低電平),立即進入中斷程序。進入中斷后就立即關閉計時器T0停止計時,并將測距成功標志字賦值1。如果當計時器溢出時還未檢測到超聲波返回信號,則定時器T0溢出中斷將外中斷0關閉,并將測距成功標志字賦值2以表示此次測距不成功。前方測距電路的輸出端接單片機INT0端口,中斷優先級zui高,左、右測距電路的輸出通過與門IC3A的輸出接單片機INT1端口,同時單片機P1.3和P1.4接到IC3A的輸入端,中斷源的識別由程序查詢來處理,中斷優先級為先右后左。部分源程序如下:
INTT0:CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0
SETBTR1
OUT:RET;T1中斷,發超聲波用:
INTT1:CPLVOUT
DJNZR4,RETIOUT
CLRTR1
CLRET1
MOVR4,#04H
SETBEX0
RETIOUT:RETI;外中斷0,收到回波時進入
PINT0:CLRTR0
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0
MOV45H,TH0
SETB00H
RETI
3.3.4系統的軟硬件的調試
超聲波測距儀的制作和調試都比較簡單,其中超聲波發射和接收采用模塊直接實現。
硬件電路制作完成并調試好后,便可將程序編譯好下載到單片機試運行。根據實際情況可以修改超聲波發生子程序每次發送的脈沖寬度和兩次測量的間隔時間,以適應不同距離的測量需要。根據所設計的電路參數和程序,測距儀能測的范圍為0.07~5.5m,測距儀zui大誤差不超過1cm。系統調試完后應對測量誤差和重復一致性進行多次實驗分析,不斷優化系統使其達到實際使用的測量要求。
軟件的調試程序見附錄三.
4總結和體會
由于時間和其它客觀上的原因,此次設計沒有成功做出實物。但是對設計有一個很好的理論基礎。設計的zui終結果是使超聲波測距儀能夠產生超聲波,實現超聲波的發送與接收,從而實現利用超聲波方法測量物體間的距離。以數字的形式顯示測量距離。
超聲波測距的原理是利用超聲波的發射和接受,根據超聲波傳播的時間來計算出傳播距離。實用的測距方法有兩種,一種是在被測距離的兩端,一端發射,另一端接收的直接波方式,適用于身高計;一種是發射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設計采用反射波方式。
超聲波測距儀硬件電路的設計主要包括單片機系統及顯示電路、超聲波發射電路和超聲波檢測接收電路三部分。單片機采用AT89S51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩定時鐘頻率,減小測量誤差。單片機用P1.0端口輸出超聲波換能器所需的40kHz的方波信號,利用外中斷0口監測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用的4個七段共陽數碼管組成動態掃描電路。
超聲波發射電路主要由反相器4069和超聲波發射換能器FSQ構成,單片機P1.0端口輸出的40kHz的方波信號一路經一級反向器后送到超聲波換能器的一個電極,另一路經兩級反向器后送到超聲波換能器的另一個電極,用這種推換形式將方波信號加到超聲波換能器的兩端,可以提高超聲波的發射強度。輸出端采兩個反向器并聯,用以提高驅動能力。超聲波換能器內部有兩個壓電晶片和一個換能板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片會發生共振,并帶動共振板振動產生超聲波,這時它就是一個超聲波發生器;反之,如果兩電極問未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收換能器。超聲波發射換能器與接收換能器在結構上稍有不同,使用時應分清器件上的標志。
超聲波檢測接收電路主要是由集成電路CX20106A組成,它是一款紅外線檢波接收的芯片,常用于電視機紅外遙控接收器。考慮到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實驗證明用CX20106A接收超聲波(無信號時輸出高電平),具有很好的靈敏度和較強的抗*力。適當更改電容Cs的大小,可以改變接收電路的靈敏度和抗*力。
在元件及調制方面,由于采用的電路使用了很多集成電路。外圍元件不是很多,所以調試不會太難。一般只要電路焊接無誤,稍加調試應該會正常工作。電路中除集成電路外,對各電子元件也無特別要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗*力。
我要感謝孔老師,邵老師和陳老師在設計中對我給予的悉心指導和嚴格要求,同時也感謝本班同學在設計期間所給予我的幫助。在我論文寫作期間,各位同學給我提供了種種專業知識上的指導,使我能夠這么順利的完成設計與制作,借此機會,向您們表示由衷的感激。同時還要感謝系實驗室在設計期間提供給我們*的實驗條件。
附錄一:電氣原理圖
附錄二:程序調試
VOUTEQUP1.0
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG000BH
LJMPINTT0
ORG0013H
RETI
ORG001BH
LJMPINTT1
ORG0023H
RETI
ORG002BH
RETI
;***********主程序**************
START:MOVSP,#4FH
MOVR0,#40H
MOVR7,#0BH
CLEARDISP:MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOVTMOD,21H
MOVTH0,#00H
MOVTL0,00H
MOVTH1,0F2H
MOVTL1,0F2H
MOVP0,0FFH
MOVP1,0FFH
MOVP2,0FFH
MOVP3,0FFH
MOVR4,04H
SETBPX0
SETBET0
SETBEA
SETBTR0
START1:LCALLDISPLAY
JNB00H,START1
CLREA
LCALLWORK
SETBEA
CLR00H
SETBTR0
MOVR2,#64H
LOOP:LCALLDISPLAY
DJNZR2,LOOP
SJMPSTART1
INTT0:CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0
SETBTR1
OUT:RET
;T1中斷,發超聲波用:
INTT1:CPLVOUT
DJNZR4,RETIOUT
CLRTR1
CLRET1
MOVR4,#04H
SETBEX0
RETIOUT:RETI
;外中斷0,收到回波時進入
PINT0:CLRTR0
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0
MOV45H,TH0
SETB00H
RETI
;*****顯示程序:**********
DISPLAY:MOVR1,#40H;G
MOVR5,#0F7H;G
PLAY:MOVA,R5
MOVP0,#0FFH
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.0,ENDOUT;G
RRA
MOVR5,A
AJMPPLAY
ENDOUT:MOVR2,#0FFH
MOVP0,#0FFH
RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共陽段碼管"0","1","2","3","4","5","6","7","8","9","不亮","A","-"
;延時程序:
DL1MS:MOVR6,#14H
DL1:MOVR7,#19H
DL2:DJNZR7,DL2
DJNZR6,DL1
RET
;*******距離計算程序**********
WORK:PUSHACC
PUSHPSW
PUSHB
MOVPSW,#18H
MOVR3,45H
MOVR2,44H
MOVR1,00D
MOVR0,17D
LCALLMUL2BY2
MOVR3,#03H
MOVR2,0E8H
LCALLDIV4BY2
LCALLDIV4BY2
MOV40H,R4
MOVA,40H
JNZJJ0
MOV40H,#0AH
JJ0:MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,00D
MOVR2,#100D
LCALLDIV4BY2
MOV41H,R4
MOVA,41H
JNZJJ1
MOVA,40H
SUBBA,#0AH
JNZJJ1
MOV41H,#0AH
JJ1:MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,10D
LCALLDIV4BY2
MOV42H,R4
JNZJJ2
MOVA,41H
SUBBA,#0AH
JNZJJ2
MOV42H,#0AH
JJ2:MOV43H,R0
POPB
POPPSW
POPACC
RET
MUL2BY2:CLRA
MOVR7,A
MOVR6,A
MOVR5,A
MOVR4,A
MOV46H,#10H
MULLOOP1:CLRC
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
JNCMULLOOP2
MOVA,R4
ADDA,R2
MOVR4,A
MOVA,R5
ADDCA,R3
MOVR5,A
MOVA,R6
ADDCA,#00H
MOVR6,A
MOVA,R7
ADDCA,#00H
MOVR7,A
MULLOOP2:DJNZ46H,MULLOOP1
RET
DIV4BY2:MOV46H,#20H
MOVR0,#00H
MOVR1,#00H
DIVLOOP1:MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R0
RLCA
MOVR0,A
MOVA,R1
RLCA
MOVR1,A
CLRC
MOVA,R0
SUBBA,R3
JCDIVLOOP2
MOVR0,B
MOVR1,A
DIVLOOP2:CPLC
DJNZ46H,DIVLOOP1
MOVA,R4
RLCA
MOVR4,A
MOVA,R5
RLCA
MOVR5,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
RET
END