基于單片機的倒車防撞預警系統(tǒng)設計和實現(xiàn)
0 引 言
??? 汽車倒車防撞預警系統(tǒng)即是俗稱的倒車雷達,是汽車泊車輔助裝置。在汽車倒車時,倒車雷達采用超聲波測距原理探測汽車尾部離障礙物的距離,當汽車尾部離障礙物的距離達到探測范圍時,倒車雷達通過數(shù)碼管實時動態(tài)顯示距離。當汽車尾部離障礙物的距離達到設定的安全警告值時,倒車雷達發(fā)出報警聲,以警示駕駛員,輔助駕駛員安全倒車。現(xiàn)在生產(chǎn)的中高檔小轎車大多數(shù)都配置有倒車雷達,而出于節(jié)省成本等方面的考慮,經(jīng)濟型小轎車、大客車等其他車輛都沒有配置倒車雷達。有市場需求的產(chǎn)品,必然會帶動產(chǎn)品的開發(fā)設計。倒車雷達電路種類較多,本文介紹基于單片機控制的倒車雷達系統(tǒng),該系統(tǒng)采用通用型單片機作為控制電路,方便系統(tǒng)功能擴展。系統(tǒng)電路主要采用集成器件構(gòu)成,外圍元件少,電路簡潔、調(diào)試方便、成本低,利于商品化生產(chǎn)。
1 系統(tǒng)組成及工作原理
??? 倒車防撞預警系統(tǒng)由四路收發(fā)一體封閉(防水)型超聲波傳感器及其超聲波發(fā)射與回波接收電路、超聲波電信號放大電路、單片機控制電路、LED數(shù)碼管顯示電路和蜂鳴器聲音報警電路組成。系統(tǒng)組成框圖如圖1所示。
??? 當汽車倒車時由倒車換擋裝置自動接通系統(tǒng)電源,系統(tǒng)上電復位,進入工作狀態(tài)。單片機編程產(chǎn)生一串40 kHz的矩形脈沖電壓,經(jīng)四選一模擬開關加到超聲波發(fā)射與回波接收電路,經(jīng)放大驅(qū)動超聲波傳感器發(fā)射出超聲波,同時單片機開始計時。發(fā)射出的超聲波碰到障礙物后形成反射波,部分反射波返回作用于超聲波傳感器,經(jīng)超聲波傳感器的聲/電轉(zhuǎn)換,變成微弱的電信號,該微弱的電信號經(jīng)放大、整形產(chǎn)生負跳變電壓,向單片機發(fā)出中斷申請。單片機收到中斷申請的信號后,立即響應中斷,執(zhí)行外部中斷服務程序,停止計時,得到超聲波發(fā)送和返回的時間T,計算出發(fā)射點離障礙物的距離S,即:S=(C·T)/2。C是超聲波在空氣中的傳播速度,在常溫25℃時,C約為346 m/s。若發(fā)射出的超聲波在測距范圍內(nèi)未遇到障礙物,直到單片機定時中斷產(chǎn)生,執(zhí)行定時中斷服務程序,選擇下一路,依次按后左路、后左中路、后右中路、后右路的順序繼續(xù)發(fā)射和接收超聲波,并經(jīng)過計算處理。四路探測處理完畢,選擇四路中測出的最小距離值通過LED數(shù)碼管顯示出來。當最小距離值小于預先設定的報警距離時,單片機接通蜂鳴器的電源,蜂鳴器發(fā)出報警聲。若四路探測無回波中斷申請,則顯示“-.--”,表明在安全距離內(nèi)沒有障礙物,再繼續(xù)下一輪的循環(huán)探測處理。
2 系統(tǒng)硬件電路的設計
2.1 超聲波發(fā)射與回波接收電路
??? 超聲波發(fā)射與回波接收電路的主要作用是提高驅(qū)動超聲波傳感器的脈沖電壓幅值,有效地進行電/聲轉(zhuǎn)換,增大超聲波的發(fā)射距離,并通過收發(fā)一體的超聲波傳感器將返回的超聲波轉(zhuǎn)變成微弱的電信號。超聲波發(fā)射與回波接收電路如圖2所示(畫出一路,其他三路與該路一樣)。
??? EFR40RS是收發(fā)一體封閉(防水)型超聲波傳感器,其中心頻率f0=(40.0±1.0)kHz,-3 dB帶寬1 kHz。驅(qū)動電壓峰一峰值要求60~150 V。CD4052是雙路四選一模擬開關,單片機的P3.4和P3.5端口輸出選通信號,單片機的P3.3端口輸出一串40 kHz的脈沖電壓,通過CD4052的X路加到選通的開關三極管Q1基極,經(jīng)脈沖變壓器T1升壓至100 VP-P左右,驅(qū)動超聲波傳感器EFR40RS發(fā)射超聲波。發(fā)射時的脈沖電壓幅值大小直接影響測距的遠近,應采用超聲波專用的脈沖變壓器。反射回的超聲波經(jīng)原收發(fā)一體封閉型超聲波傳感器變成毫伏級的一串脈沖電信號。由于回波電信號的幅值小,VD3和VD4二極管截止,該信號不會通過T1變壓器副邊線圈形成短路。VD1和VD2二極管也截止,所以回波電信號經(jīng)R1和C1,通過CD4052的Y路送到超聲波電信號放大與整形電路。R1和VD1,VD2組成雙向限幅電路,避免發(fā)射時的大信號造成超聲波放大與整形電路阻塞,甚至損壞電路。
2.2 超聲波電信號放大電路
??? 超聲波電信號放大電路采用集成電路CX20106A構(gòu)成。CX20106A是日本索尼公司生產(chǎn)的紅外遙控信號接收集成電路。通過外部所接電阻,將其內(nèi)部帶通濾波電路的中心頻率f0設置為40 kHz,就可以接收放大超聲波電信號,并整形輸出負脈沖電壓。
??? 應用電路如圖3所示。1腳是超聲波電信號輸入端,2腳與地之間連接RC串聯(lián)網(wǎng)絡,是內(nèi)部前置放大電路負反饋網(wǎng)絡的組成部分。電阻R5的數(shù)值確定前置放大電路的增益。R5電阻值減小,負反饋減弱,放大倍數(shù)增大;反之,則放大倍數(shù)減小。3腳與地之間連接檢波電容C3,適當改變電容C3的大小,可以改變超聲波電信號放大和整形電路的靈敏度和抗干擾能力。C3電容量大,靈敏度低,抗干擾能力強;C3容量小,靈敏度高,抗干擾能力弱,易造成誤動作。5腳與電源間接入一個電阻,用以設置內(nèi)部帶通濾波電路的中心頻率f0。
??? 當R6=200 kΩ時,f0=40 kHz。6腳與地之間接一個積分電容,標準值為330 pF。如果該電容值取得太大,會使探測距離變短。7腳是電路集電極開路輸出端,R7是該引腳的上拉電阻。集成電路CX20106A無信號輸入時,7腳輸出高電平,當輸入的超聲波電信號經(jīng)放大、整形后,7腳輸出一個負脈沖電壓。
2.3 單片機控制電路和顯示、報警電路
??? 電路如圖4所示。由于系統(tǒng)用到單片機的輸入/輸出端口不多,在不考慮功能擴展時,從功能夠用和低成本的角度考慮,采用AT89C2051單片機作為控制電路的核心器件。AT89C2051單片機共有20個引腳,其中有15個I/O端口(P3.6無引出腳)。兩個16位定時器/計數(shù)器,其體積小、價格低。采用12 MHz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。單片機的P3.3端口周期性的輸出一串40 kHz的矩形脈沖,通過雙路四選一模擬開關CD4052周期性地加到四路超聲波發(fā)射與回波接收電路。單片機的P3.4和P3.5端口輸出雙路四選一模擬開關CD4052的選通信號。單片機的P3.2端口為外部中斷0中斷申請信號輸入端。三位LED數(shù)碼管采用動態(tài)掃描顯示。U4的小數(shù)點常亮,U4的單位為m,U5的單位為dm,U6的單位為cm。采用有源蜂鳴器作為報警發(fā)音器件,一是器件成本低,二是便于動態(tài)掃描顯示的軟件編程。
3 系統(tǒng)軟件的設計
??? 系統(tǒng)軟件采用模塊化設計,方便擴展移植。采用匯編語言編程。主要有主程序、T0中斷服務程序、外部中斷0服務程序、超聲波發(fā)生子程序。
3.1 主程序
??? 本系統(tǒng)有四路測距通道,采用分時工作,按后左一后左中一后右中一后右順序循環(huán)測距。每一路發(fā)射超聲波后的等待外部中斷時間應大于超聲波在最大有效探測距離內(nèi)往返時間。所以按最大有效探測距離可以估算出最短的循環(huán)間隔時間。因為超聲波在空氣中傳播能量會不斷衰減,所以超聲波測距存在最大有效探測距離。這最大有效探測距離與多種因數(shù)有關:
??? 與超聲波傳感器性能的好壞、與驅(qū)動超聲波傳感器的脈沖電壓幅值(功率)的大小、障礙物大小和形狀、障礙物吸波特性以及反射波與入射波之間的夾角、與超聲波放大和整形電路的靈敏度等有關。設定最大有效探測距離為8 m(收發(fā)一體封閉型超聲波傳感器比較難達到,實際上也沒有必要探測很遠的障礙物,只是設計留有裕量。由于顯示位數(shù)有限,也必須對最大探測距離做限制),則循環(huán)工作的間隔時間Tm=2S/C=2×8/346A46 ms,加上避免接收超聲波傳感器余振的延時和程序執(zhí)行時間,留足裕量,設定Tm△56 ms。
??? 主程序流程圖如圖5所示。首先是對系統(tǒng)初始化。端口p1.0、P3.3置0;設置堆棧,中斷允許總控制位EA允許中斷(EA=1);允許外部中斷0中斷(EX0=1),采用邊沿觸發(fā)方式(IT0=1);設置定時器T0允許中斷(ET0=1),以16位工作方式定時約56 ms;設置定時器T1以16位工作方式定時/計數(shù),計數(shù)初值0000H,然后啟動T0定時。設置顯示數(shù)據(jù)初值為三位BCD碼999(cm),對應字形段碼顯示“---”。四路探測處理完畢后,將四組數(shù)據(jù)中的最小值送入顯示緩沖區(qū),通過LED數(shù)碼管顯示。同時該值與設定的100 cm值比較,若四組數(shù)據(jù)中的最小值小于100 cm,P3.7端口置0,Q2三極管導通,有源蜂鳴器得電發(fā)出報警聲。
??? 由于單片機采用12 MHz的晶振,1個機器周期為1μs,所以計數(shù)器每計一個數(shù)就是1μs,定時器T1工作模式設置為16位定時/計數(shù)器模式,則其最大定時65.536 ms。由于定時器T0每56 ms產(chǎn)生中斷,執(zhí)行T0中斷服務程序時停止T1計時,所以T1計時不會產(chǎn)生溢出中斷。一輪四路探測處理完畢所用時間大約是56 ms×4=224 ms,用時很短,而倒車速度又比較慢,所以可以做到實時動態(tài)顯示。
3.2 T0中斷服務程序
??? T0中斷服務程序流程圖如圖6所示。每隔56 ms分別按后左→后左中→后右中→后右順序選通下一路超聲波發(fā)射與回波接收電路,調(diào)用超聲波發(fā)生子程序,送出16個40 kHz的超聲波脈沖電壓,定時器T1開始計時,定時器T0開始定時56 ms,使每路工作56 ms。
? 為了避免接收到超聲波傳感器余振的直射波產(chǎn)生的中斷申請,延時2.8 ms后,才允許外部中斷0中斷,等待接收返回的超聲波信號。所以,最小探測距離(盲區(qū))Smin=Ct/2=346×0.002 8/2△0.48 m。四路探測處理完畢,將四路中最小值送入顯示緩沖區(qū)。若在四路探測中有些路在有效探測范圍內(nèi)發(fā)射的超聲波未遇障礙物,無返回波,外部中斷0不產(chǎn)生中斷申請信號,或者是進入探測盲區(qū),外部中斷0產(chǎn)生的中斷申請不被受理,則定時器T1計時到定時器T0產(chǎn)生中斷,在T0中斷服務程序中,用三位BCD碼999(三位十進制數(shù)最大值999 cm)置夠四組數(shù)據(jù)。若顯示緩沖區(qū)的四組數(shù)據(jù)都是999時,則對應字形段碼顯示“---”。倒車伊始,LED數(shù)碼顯示器就顯示“-.--”,表明在安全距離內(nèi)沒有障礙物;若發(fā)出報警聲后,又顯示“-.--”,表明進入了探測盲區(qū)。
3.3 外部中斷0服務程序
??? 外部中斷O服務程序流程圖如圖7所示。單片機一旦接收到返回超聲波信號(即INT0引腳由高電平跳變?yōu)榈碗娖?,立即進入外部中斷0服務程序。首先停止定時器T1計時,禁止外部中斷0中斷。然后將定時器T1中的數(shù)N,也即將超聲波往返所用的時間N(單位:μs),按式S=CT/2=(346 x N×10-6)/2=173×N÷10 000計算,即得被測物的距離(單位:cm),將計算結(jié)果以百位、十位、個位BCD碼方式送入比較大小的緩沖區(qū),以備比較大小使用。然后等待定時器T0定時56 ms中斷的產(chǎn)生,繼續(xù)下一路的探測處理。
3.4 超聲波發(fā)生子程序
??? 超聲波發(fā)生子程序通過P3.3端口發(fā)送16個周期是25μs(即頻率40 kHz,1個周期內(nèi)高電平持續(xù)13μs、低電平持續(xù)12 μs)的矩形脈沖電壓。脈沖串個數(shù)在10~20個比較合適。脈沖個數(shù)太少,發(fā)射強度小,探測距離短;脈沖個數(shù)太多,發(fā)射持續(xù)時間長,在離障礙物距離近時,脈沖串尚未發(fā)射完畢,先發(fā)射出去的脈沖產(chǎn)生的回波就到達接收端,影響測距結(jié)果,造成測距盲區(qū)增大。
4 實現(xiàn)應用分析
??? 本系統(tǒng)在實驗室條件下進行了可行性的研究設計,要實際應用中就必須考慮測量精度和工作穩(wěn)定性的問題。因此,本系統(tǒng)可采取幾項措施來提高測量精度和工作穩(wěn)定性。
??? (1)超聲波的傳播速度與溫度有關。為了適應不同環(huán)境溫度下的測距需要,提高測量精度,硬件電路上可增加檢測車外環(huán)境溫度的環(huán)節(jié)。單片機根據(jù)實測的溫度值,再計算確定超聲波的傳播速度,即C=331.4+0.6lt。t是環(huán)境溫度?;蛘咴诓辉黾佑布杀厩闆r下,可考慮通過實驗數(shù)據(jù)分析,找到測量值與實際值偏差特點和規(guī)律,通過軟件編程對測量數(shù)據(jù)進行校正處理。
??? (2)軟件設計中采用數(shù)字濾波中的算術平均濾波程序?qū)γ總€測距點進行連續(xù)多次測量,取平均值作為該測距點的測量數(shù)據(jù),以提高數(shù)據(jù)采樣的可靠性。要盡量減小探測盲區(qū),所設定的延時時間可根據(jù)實際所用超聲波傳感器余振時間而定,可在實際調(diào)試中確定最小延時時間。
??? (3)倒車雷達安裝在車上,倒車雷達的工作環(huán)境非常惡劣,汽車倒車工作時,高壓點火產(chǎn)生很強的電磁輻射,會影響電路正常工作。所以在硬件及軟件方面要考慮采取抗干擾措施,提高系統(tǒng)工作的可靠性。如用金屬殼屏蔽電路,采用屏蔽線連接超聲波傳感器;在滿足測量距離的情況下,可適當調(diào)大超聲波電信號放大和整形電路中檢波電容C3的容量。硬件上可增加“看門狗”電路,軟件設計添加指令冗余、軟件陷阱、或設置軟件“看門狗”,防止程序“跑飛”或者進入死循環(huán)。對于駕駛員來說,倒車時主要關心的是車后方有無障礙物、以及障礙物離車大約有多遠等問題。由于車子制動時存在慣性,倒車遇到障礙物時,駕駛員總要提前制動。考慮性價比,倒車雷達測量精度不必很高。但從倒車安全考慮,此時的測量顯示值寧大勿小。
5 結(jié) 語
??? 本系統(tǒng)充分利用了單片機的內(nèi)部資源,用軟件編程產(chǎn)生超聲波矩形脈沖,代替硬件的超聲波發(fā)生電路,節(jié)省了硬件成本。采用一塊集成器件實現(xiàn)超聲波接收放大和整形,避免了采用多級集成運放組成高增益放大電路易產(chǎn)生自激等問題。實驗表明設計可行。在不增加硬件成本時,通過完善軟件設計,可提高系統(tǒng)測量精度和工作的可靠性,能夠滿足使用要求。在考慮功能擴展時,可以采用帶“看門狗”的AT89S52單片機,以增加擴展端口。在超聲波測距的基礎上,如可增加防盜報警功能、車載蓄電池電壓檢測功能等,若增加微型攝像頭和小型液晶顯示器,便成為可直接觀察車后方的可視倒車雷達。本系統(tǒng)實用性強,性價比高。
評論
查看更多