汽車倒車?yán)走_系統(tǒng)的設(shè)計與實現(xiàn)
隨著中國經(jīng)濟的持續(xù)增長和汽車價格的持續(xù)下降,越來越多的家庭擁有了私家車。在享受汽車給人們帶來便利的同時,由于倒車而產(chǎn)生的問題也日益突出。據(jù)初步調(diào)查統(tǒng)計,15%的汽車事故是由汽車倒車“后視”不良造成的。早期的倒車防撞儀可以測試車后一定距離范圍的障礙物從而發(fā)出警報,后來發(fā)展到根據(jù)距離分段報警。隨著人們對汽車駕駛輔助系統(tǒng)易用性要求的提高,對汽車倒車?yán)走_的要求也越來越高。本文設(shè)計的基于單片機AT89C51的倒車?yán)走_,采用美國DAL-LAS半導(dǎo)體公司生產(chǎn)的DS18B20單總線型數(shù)字溫度傳感器進行溫度補償提高了測距精度,采用OC-MJ12232C_3液晶顯示模塊對車距進行實時顯示和ISD4004語音芯片實現(xiàn)了倒車?yán)走_語音報警的功能,并可以根據(jù)距離的不同做出不同的語音提示。由于采用了超聲波專用集成電路芯片LM1812,有效地提高了系統(tǒng)的可靠性和穩(wěn)定性。
1 超聲波測距原理
超聲傳感器是一種將其他形式的能轉(zhuǎn)變?yōu)樗桀l率的超聲能或是把超聲能轉(zhuǎn)變?yōu)橥l率的其他形式的能的器件。超聲波測距原理是利用單片機在超聲波傳感器發(fā)射超聲波的同時單片機的T0計數(shù)器開始計數(shù),當(dāng)檢測到回波信號后單片機的T0計數(shù)器停止計數(shù)。測得的時間和聲速相乘就可以得到超聲波往返過程中走過的路程,所以所測距離S為聲波傳輸距離的一半:
S=Ct/2
式中:S為超聲波發(fā)射點與被測障礙物之間的距離;C為聲波在介質(zhì)中的傳輸速率;t為超聲波發(fā)射到超聲波返回的時間間隔。聲波在空氣中傳輸速率為:
式中:T為絕對溫度;C0=331.45 m/s。
采用單片機脈沖計數(shù)的方法,可精確測出t的值。假設(shè)單片機的機器周期為T機,則有t=NT機,則測得的距離為:
2 系統(tǒng)硬件電路設(shè)計
2.1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)框圖如圖1所示。該系統(tǒng)由單片機控制電路、超聲波發(fā)射與接收電路、溫度補償電路、LCD顯示電路以及語音報警電路等幾部分組成。單片機AT89C51是整個系統(tǒng)的核心部件,協(xié)調(diào)各部分電路的工作。單片機在超聲波信號發(fā)射的同時開始計時,超聲波信號在空氣中傳播遇到障礙物后發(fā)生反射,反射的回波信號經(jīng)過處理后輸入到單片機的INTO端產(chǎn)生中斷,計數(shù)器停止計數(shù)。通過計數(shù)器測得的脈沖數(shù)可得到超聲波信號往返所需要的時間,從而達到測距的目的。超聲波探頭選用TCF40-25TR1型收發(fā)一體式超聲波傳感器,諧振頻率為40 kHz;超聲發(fā)射與接收電路采用LM1812專業(yè)集成電路,不僅外圍元件較少,電路簡單,而且有更好的穩(wěn)定性及可靠性;溫度補償電路采用一線制數(shù)字溫度傳感器DS18B20,利用聲速和溫度之間的關(guān)系對聲速進行校正,從而消除溫度對聲速的影響;語音報警電路采用ISD4004,可實現(xiàn)汽車倒車過程中的語音報警。
2.2 單片機控制電路
系統(tǒng)控制部分的核心是ATMEL公司生產(chǎn)的AT89C51。AT89C51采用40引腳的雙列直插式封裝(DIP)形式,內(nèi)部由CPU,4 KB的ROM,256 B的RAM,2個16位的定時/計數(shù)器T0和T1,4個8位的I/O端口和一個全雙工串行通信口等部分組成。AT89C51單片機具有系統(tǒng)結(jié)構(gòu)簡單,成本低,可靠性高,低功耗等特點。特別是內(nèi)部集成了4 KB的FLASH程序存儲器,使單片機系統(tǒng)的結(jié)構(gòu)更加簡單,也使其得到了廣泛的應(yīng)用。同時,它還具有高級語言編程的特點,指令豐富,軟件開發(fā)簡單。AT89C51單片機是整個系統(tǒng)的核心部件,其作用是控制超聲波專用集成芯片LM1812的發(fā)射和接收,對計時器的計數(shù)結(jié)果進行數(shù)據(jù)處理后送入LCD顯示以及控制語音報警電路工作。
2.3 超聲波發(fā)射和接收電路
本系統(tǒng)采用超聲波專用集成電路LM1812作為超聲波發(fā)射和接收電路的主控芯片。LM1812是一種通用型超聲波收發(fā)器,主要用在各種各樣的測距、定向和通信中。芯片包括一個脈沖調(diào)制C類發(fā)射器,一個高增益接收器,一個脈沖調(diào)制檢測器及噪音抑制電路。LM1812第1腳外接L1,C1決定了電路發(fā)送或接收的工作頻率,其工作頻率為:
改變電感L1,電容C1的值可以改變振蕩頻率(本系統(tǒng)中f0為40 kHz),最高可達325 kHz。
超聲波發(fā)射和接收電路如圖2所示。當(dāng)LM1812的8腳為高電平時,LM1812處于發(fā)射模式;當(dāng)8腳為低電平時,LM1812處于接收模式。值得注意的是,單片機到LM1812的連接要進行5~12 V的電平轉(zhuǎn)換。當(dāng)LM1812處于發(fā)射模式時,L1,C1振蕩槽路被切換為振蕩模式,振蕩信號經(jīng)驅(qū)動放大后,由13腳及6腳輸出。6,13腳之間所接變壓器線圈的匝數(shù)比是根據(jù)TCF40-25TR1型收發(fā)一體式超聲波傳感器的阻抗來確定的。實驗證明,變壓器線圈的匝數(shù)比大約為4:1時可實現(xiàn)與超聲波發(fā)送器阻抗相匹配。超聲波接收器接收到的超聲波信號經(jīng)電容耦合由4腳輸入,再經(jīng)內(nèi)部兩級放大后同由1腳的諧振回路取出的信號一起送到檢測器。當(dāng)檢測到超聲波回波信號時,LM1812的14腳(與單片機的INT0端相連)變?yōu)榈碗娖?,使單片機的T0計數(shù)器停止計數(shù)。
2.4 溫度補償電路
溫度補償電路采用了美國DALLAS半導(dǎo)體公司的DS18B20單總線型數(shù)字溫度傳感器。單總線即只用一根信號線來傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,單總線具有“線與”功能,連接方便,便于擴展。DS18B20集溫度測量、A/D轉(zhuǎn)換于一體,具有體積小、動態(tài)范圍寬、測量精度高等優(yōu)點。DS18B20和單片機接口電路如圖3所示。
DS18B20采用單總線方式和AT89C51單片機相連,即DS18B20的1腳接地,3腳接地,2腳接至AT89C51的P11引腳,同時將P11引腳采用一只4.7 kΩ的電阻上拉至VCC。測得的溫度值以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節(jié),單片機通過單總線接口讀到該數(shù)據(jù)后,即可通過計算得到實時環(huán)境溫度值。
2.5 LCD顯示電路
本系統(tǒng)顯示電路采用金鵬電子的OCMJ12232C_3液晶顯示模塊,此液晶模塊內(nèi)含字庫,能非常方便地顯示漢字。OCMJ12232C_3液晶和單片機AT89C51的接口電路如圖3所示,其中OCMJ12232C_3液晶的15腳接地,即采用串口通信方式。顯示內(nèi)容包括倒車距離和車外溫度兩部分,分兩行顯示:第一行顯示倒車距離,第二行顯示車外溫度。倒車距離以cm為單位,精確到0.1 cm;溫度以℃為單位,精確到O.1℃。
2.6 語音報警電路
本系統(tǒng)的語音報警電路采用ISD4004語音芯片。ISD4004與單片機接口電路如圖3所示。從圖中可以看出,ISD4004和單片機AT89C51之間的連接較少。單片機的P00接ISD4004的片選引腳SS,控制ISD4004是否選通;P0l接ISD4004的串行輸入引腳MOSI,從該引腳讀入放音的地址;P02接ISD4004的串行輸出引腳MISO;P03接ISD4004的串行時鐘引腳SLCK;P04接撥動開關(guān),用于選擇錄音或者放音;P05接STOP按鈕,用來對ISD4004進行復(fù)位;P06接AN按鈕,按下時ISD4004開始工作;P33(INT1)接ISD4004的中斷引腳INT。ISD4004芯片所需要的連接還有音頻信號輸出引腳AUD OUT,該引腳通過一個濾波電容,經(jīng)功率放大電路LM386后與揚聲器連接;MIC接入ISD4004:的錄音信號輸入端(ANA IN-、ANA IN+);AMCAP為自動靜音端,使用時通過一電容接地。此外,由于ISD4004的工作電壓為3 V,而單片機所需供電電壓為5 V,因此需要采用LM317變壓電路得到3 V電壓供ISD4004使用。
當(dāng)?shù)管嚲嚯x大于3 m時,語音提示為“倒車安全”;當(dāng)?shù)管嚲嚯x在2~3 m之間時,語音提示為“倒車”;當(dāng)?shù)管嚲嚯x在1~2 m之間時,語音提示為“倒車小心”;當(dāng)?shù)管嚲嚯x在0.5~1 m之間時,語音提示為“倒車危險”;當(dāng)?shù)管嚲嚯x小于0.5 m時,語音提示為“非常危險,緊急停車”。
3 軟件設(shè)計部分
軟件設(shè)計采用模塊化設(shè)計,由主程序、測溫及聲速修正子程序、T0中斷子程序、距離計算子程序、LCD顯示子程序和語音報警子程序等模塊組成。主程序流程圖如圖4所示。
程序初始化后,先調(diào)用測溫及聲速修正子程序?qū)β曀龠M行修正。當(dāng)進行超聲波測距時,單片機發(fā)出一個寬為125μs的脈沖信號,此脈沖信號控制超聲波集成電路LM1812發(fā)射5個40 kHz的超聲波脈沖串。T0定時器定時30 ms,即每隔30 ms發(fā)射5個40 kHz的超聲波脈沖串。發(fā)射脈沖串的同時單片機的T0計數(shù)器開始計數(shù),一旦接收到回波信號立刻停止計數(shù)。利用距離計算子程序?qū)y得的時間和修正后的聲速進行數(shù)據(jù)處理后,將結(jié)果送入LCD顯示和進行語音報警。
4 實驗結(jié)果
通過對平面物體做了多次測量發(fā)現(xiàn),30~500 cm范圍內(nèi)可實現(xiàn)準(zhǔn)確測距,能滿足司機的倒車要求。測距結(jié)果如表1所示。
5 結(jié) 語
本文設(shè)計的倒車?yán)走_系統(tǒng)采用AT89C51作為主控芯片,可以實現(xiàn)實時的超聲波測距,并將所測距離在LCD上顯示出來,同時通過語音報警電路對不同距離段進行不同的語音提示,實驗驗證了本系統(tǒng)的可行性及可靠性。該系統(tǒng)具有集成度高、測量范圍廣、成本低和使用方便等特點,能滿足司機在倒車中的需要,可得到廣泛的應(yīng)用。