遼寧機電職業技術學院,遼寧丹東 118009
汽車給生活帶來便利的同時,也出現一些不安全因素,例如倒車時發生的安全事故占總交通事故的25%。[1]
汽車倒車測距儀(以下簡稱測距儀)由單片機、超聲波傳感器、顯示模塊和語音模塊等組成。通過語音提示和顯示提醒,幫助司機了解車后情況,提高倒車安全性。超聲波測距具有成本低、精度高、可靠,使用方便、應用廣泛、實時性好等優點,完全能滿足泊車時倒車的需要[1]。
超聲波測距采用的是非接觸式測量,具有不受光線、被測對象顏色、材質等因素影響,對環境有一定的適應能力,且操作簡單、測量精度高。
超聲波測距的方法很多,其中渡越時間檢測法實現起來簡單,成本低,可測距離范圍較大。渡越時間法超聲波測距原理圖如圖1所示。利用超聲波發射探頭(T)發出一串超聲波信號,遇到障礙物后反射返回,到達超聲波接收探頭。超聲波探頭與被測物體之間存在以下關系:

其中,s—超聲波探頭與被測物體之間的距離,單位:m;
c—超聲波在空氣中的傳播速度,單位:m/s;
t—超聲波接收時間,單位:s ;
d—被測距離,單位:m;
h—超聲波傳感器發射器與接收器之間的距離,單位:m。
這種測量方法叫渡時間法,經過比較與分析,采用這種方法作為超聲波測距方法,電路容易實現[2]。



超聲波傳感器可以分成兩類,一類是電氣方式,一類是機械方式。壓電式傳感器是利用超聲波的相關特性制作而成的,它是由壓電晶片在交變電壓的作用下而產生的,具有高頻率,短波長,方向性好等特點。
壓電式超聲波發生器的原理就是壓電晶體的諧振效應。它由兩個壓電晶體片和一個共振將板組成。給一定幅值的交變電壓加至壓電晶片的兩級,這兩塊金屬極板就形成電場,有電場就存在電場力。壓電晶片處在電場中,在電場力的作用下發生形變。壓電晶片在交變電場力的作用下,發生往復的變形、振動,這就生成了超聲波,這個過程稱為逆壓電效應,也是發射超聲波的過程。
發射出去的超聲波,一部分在空氣中衰減掉了,一部分沿原路返回。由于超聲波具有一定的能量,當共振板接收到超聲波后,將壓迫于壓電晶體,產生共振,將機械能轉換為電信號,這時就是接收超聲波的過程。這時就可以稱為超聲波接收器。這種超聲波傳感器的外形及內部結構如圖2所示。
超聲波傳感器發射器與接收器有分開設計的,也有一體模塊。當超聲波在空氣中傳播時,衰減的程度跟頻率成正比,短距離測距應該選頻率高的傳感器,長距離距則可以選頻率低的傳感器。本設計應用在倒車報警系統中,屬于短距離測距,所以選取中心頻率為40kHz的超聲波傳感器測距,目標測距量程是2cm~4m,測量精度可以達到3mm。這樣傳感器方向性尖銳,避開了噪聲,提高了信噪比;雖然傳播損失相對低頻有所增加,但不會給發射和接收帶來困難[3]。
測量時對精度影響的因素主要有單片機計數誤差、回波時間誤差、溫度誤差、對射角引起的誤差等。針對這些因素采用高精度的單片機和晶振,增加發射脈沖的方波數量,進行溫度補償。由于倒車測距中,兩者之間的距離遠遠小于測量長度,所以對射角引超的誤差可以忽略。
采用超聲波在空氣中的傳播速度與溫度有很大關系,因此需對其進行溫度補償。而溫度補償在軟件和硬件上也很容易實現。溫度對超聲波速度影響非常大,采用DS18B20進行測溫。DS18B20是一線式數字溫度傳感器,溫度測量范圍是-55℃~+125℃,可編程為9位到12位A/D轉換精度,測溫分辨率可達0.0625℃。聲速隨溫度變化公式為:

式中,T—溫度。
硬件電路主要分為單片機控制電路、LCD顯示電路、超聲波發射電路、超聲波檢測接收電路、按鍵電路、語音電路、電源電路等部分。系統起動后,進行測溫,然后開始測距,輸出信號驅動超聲波發射電路發射超聲波,超聲波接收電路接收反射回來的超聲波信號,再經單片機系統溫度補償計算距離,將結果送至顯示電路和語音電路[4]。系統框圖如3所示。
在進行硬件設計時,超聲波發射和接收電路可以用HC-SR04模塊實現,該模塊可以提供2~400cm的非接觸式測距功能,精度可達3mm,模塊包括發射器、接收器、控制電路。本文使用該模塊進行測距。超聲波測距傳模塊的實物如圖4所示, 4個引腳分別是VCC,TRIG(觸發控制信號輸入),ECHO(回響信號輸出)、GND。當接收端Echo接收到回波信號時,拉高電平信號,表示測距成功,同時,Echo引腳接到單片機的P3.2引腳,
模塊基本工作原理是使用單片機引腳10μs的高電平信號觸發模塊的TRIG,開始測量,模塊自動發出8個40kHz的方波,自動檢測是否有信號返回。有信號返回時,ECHL引腳輸出一個高電平 ,通過反向器接到單片機的中斷口,高電平的時間就是從信號發射到信號返回的總時間。如果可以使用該模塊,產品可以更加小型化。
LCD12864液晶分辨率是128×64,顯示直觀、美觀,內部有中文字庫,可以直接其寫入中文顯示,避免了字符之間的互相轉換;通信方式有并行和串行,含有簡體中文字庫,有8192個16×16漢字和128個16×8點陣ASCII字符。接口方式簡單、操作指令方便。可以顯示8×4行16×16點陣的漢字,同時可完成圖形顯示。該液晶顯示器與同類型的圖形點陣液晶顯示模塊相比,不論硬件結構還是顯示程序都簡潔得多,而且價格略低于相同點陣的圖形液晶模塊。使用8位并聯方式,通過單片機的P1口和P2口連接LCD。
溫度采用DALLAS公司生間的智能溫度傳感器DS8B20作檢測元件,測溫范圍在-55-+125℃,最高分辨率可達0.0625℃,采用單總線與單片機相連。
XFS5051CE是科大訊飛推出的一款功能及集成度最高的語音合成模塊。模塊有中文或英文語言,還支持6種方言。集成了語音編解碼功能,能錄音和播放。具有編碼高效率壓縮、音效高質量、編碼低延遲等特點。語音編碼解碼速率可以選8K或16K。因此選擇它作為語音模塊。模塊通訊接口支持UART、I2C、SPI三種通訊方式。單片機通過控制語音模塊的7、8引腳,以I2C方式通信[5],其中DAC連接語音模塊的17引腳。


MSP430系列單片機是美國德州儀器公司推出的汽車類16位超低功耗混合信號微控制器;執行速度快、高精確度,集成度高,開發方便等優點。
單片機的電源電壓在1.8V~3.6V,2.2V/1MHz時的電流只有270μA。單片機工作頻率最高可達16MHz,指令周期只有62.5ns,也可使用內部數字振蕩器(DCO)或外接32768Hz低速晶體,可以在高性能和低功耗之間選擇。片上1個10位的A/D轉換器,2個16位定時器,4個8位I/O端口,其中P1,P2口有中斷能力。有多種SPI,串行口、I2C總線接口。擁有32KB閃存,1KB內存,支持JTAG編程和仿真調試[2]。
軟件設計主要由主程序、超聲波發射子程序、超聲波接收子程序、顯示子程序、報警程序、鍵盤程序及語音程序組成。
超聲波主程序流程圖如圖5所示。主程序用于設置定時器的初值和工作方式等之后,調用超聲波發生子程序發出多個超聲波脈沖。一旦接收到返回超聲波信號,立即進入超聲波接收子程序,取出時間值。然后在主程序中,判斷是否溢出,沒有溢出并調用顯示和語音子程序,如果達到報警值還會觸發聲光報警。
超聲波發射子程序的作用是通過單片機MSP430引腳發送20μs的高電平觸發信號,然后HC-SR04模塊開始發射8個40kHz的超聲波信號,檢測到有返回信號后停止發射返回。
利用外部中斷0檢測返回的超聲波信號是否結束。當ECHO引腳為同高變低時,說明從到發射信號到返回信號一個過程結束。馬上引起外部中斷0,在中斷中讀取時間t中斷返回。
主程序中開始測溫度,進行溫度補償計算,并計算出相應距離。如果超過報警值,啟動聲光報警。然后開始LCD顯示和語音播放。再一次循環測量,直到用戶關閉測距儀。
在測量過程中,通過對MSP430單片機的設置,使用看門狗程序,當出現程序跑飛和死機的現象時,馬上重啟測距儀。
在室溫下,分別在距2cm,3cm,5cm,20cm,30cm,50cm,1m,2m,2.5m,3.5m,4m,5m 處 放置超聲波反射擋板,每一位置連續測量10組數據。利用測量的數據,檢驗波測距的盲區及最大測量距離。實驗結果表明,本系統對于小于2cm的測量距離,由于會造成超聲波的多次反射,無法測量,2cm以下為測距儀的盲區。4m內精度為3mm。在距離5m左右的位置,由于超聲波回波信號微弱,系統檢測精度不夠,實際值與測量值之間的偏差在2cm左右。
整個測距儀的硬件以MSP430單片機為核心,超聲波發射和收發部分用了一體化的模塊HC-SR04實現,抗干擾性極強,可靠性高。使用了溫度補償,提高了測量精度。測距儀能在司機泊車倒車時,能以語音、顯示方式或聲光報警多種方式,提示后方障礙物的存在,可作為泊車時的倒車雷達使用。系統精度高,體積小,結構簡單,使用方便,滿足了倒車測距的準確性和應用性,減少了倒車事故的發生,提高了安全性。作為單片機實訓項目,讓學生真正看到單片機在現實生活的實際應用,提高學生的實踐能力、分析問題能力和創新能力。