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