梁志勛,閉呂慶
(1.河池學院計算機與信息工程學院,廣西河池546300;2.玉林師范學院電子與通信工程學院,廣西玉林537000)
目前市場上銷售的中、高檔汽車均配有可視化倒車影像裝備,這種裝備具有直觀、方便的特點,但價格昂貴,因此一些低檔的橋車及大型卡車并未安裝倒車雷達裝置[1],存在較大的安全隱患。
超聲波測距是利用超聲波測量距離的一種非接觸式距離測量方法[2]。文獻[2-5]中均采用了單片機作為測距信號的處理器件,其測量原理均采用了觸發定時器啟停計數的方法進行測量,并且由于受單片機本身時鐘頻率和無法精確估算執行若干指令時間長短的限制,因此很難保證測距結果的準確性。文獻[6-7]中利用FPGA作為測距信號處理器件,利用DS18B20作為溫度測量器件,并在測距過程中進行了溫度補償,其測距精度達到了要求,但FPGA的成本明顯較高,不利于應用推廣。本系統采用價格較為低廉的CPLD為測距信號處理器件,對常用的周期法原理進行改進,利用STC12C5A60S2作為核心處理器完成顯示、聲光報警和語音播報等功能,使所設計的系統具有集成度高、可靠性高、精度高、響應速度快和成本低廉等特點。
系統主要由STC12C5A60S2單片機作為主控制器組成的硬件平臺,其系統組成如圖1所示,主要有CPLD信號處理模塊、超聲波模塊、顯示模塊、語音播報模塊、聲光報警模塊和溫度傳感器模塊。CPLD信號處理模塊在接收到單片機發測距指令后進入測距狀態,并將測得的數據報送給單片機處理。單片機收到CPLD發來的數據處理后,將數據發到語音播報模塊,由語音播報模塊實時播報汽車尾部和障礙物的距離,同時啟動聲光報警模塊,對設定的距離,利用聲光報警模塊產生聲光報警信號。超聲波傳輸介質的密度、溫度及氣體分子成份等對超聲波的傳播速度影響很大[8-9],因此超聲波測距在精確度高要求的情況下,必須要將超聲波傳輸介質的溫度因素考慮進系統,作為超聲波測距的修正參數。溫度傳感器模塊采用LM35C作為溫度傳感器件,采集環境溫度。

圖1 倒車防撞系統組成框圖
40 kHz的超聲波經過空氣介質經過T1時間的傳播后遇到障礙物后,又經過T2時間回到接收器,已知超聲波的傳播速度為v,那么發射端和障礙物的距離:

考慮超聲波在空中介質中傳播的溫度因素,傳播的速度為:

式中v0=334m/s為0℃時候的超聲波傳播速度,T為當前環境溫度,由溫度傳感器測量獲得,因此v為加入環境溫度因素后的修正超聲波傳播速度。
圖2為測距時序圖,利用發射8個周期40 kHz的脈沖波,經過一段時間間隔t后收到回波,該時間間隔可通過CPLD的計數功能獲得。波形的好壞將直接影響時間間隔t的準確性,因此在軟硬件設計時務必能夠消除干擾,以準確獲得時間間隔t。

圖2 測距時序圖
文獻[10-13]中使用專用芯片或者NE555等分立元件設計超聲波模塊電路,這些電路設計具有集成度高,設計簡單的優點,皆采用外部LC/RC分立元件震蕩來獲得40 kHz脈沖,但其起振時間無法預測,時延部分無法估算,影響超聲波測距準確度,因此本設計采用CPLD的時鐘分頻產生40 kHz脈沖,經外部簡單的功率三極管驅動即可得到滿足要求的超聲發射波。如圖3所示為超聲波電路的具體設計,40 kHz脈沖波經Q1幅度放大再經Q2的功率放大,由變壓器T1升壓后推動超聲波發射模塊即可發射超聲波信號。
接收部分由具有增益功能的巴特沃斯濾波器和施密特觸發器構成。兩級放大器將經由超聲波接收頭收到并轉換的微弱電信號進行幅度放大,由負反饋放大電路原理可知,圖中每級放大倍數為20倍,兩級串聯,放大倍數為400倍,滿足設計要求。為了濾除40 kHz以外的干擾信號,本設計的濾波器為帶通濾波器,其中心頻率為40 kHz,-3 dB帶寬為30 kHz。
語音播報芯片為ISD2560,該芯片具有錄音、播放和直接驅動喇叭的功能,其最長的語音播放時長為60秒,具有十位尋址能力,最多分段能力為600段。使用其進行電路設計時,無需外接AD、DA和存儲芯片,具有簡單可靠,放音清晰等優點[14],具體設計如圖4所示,僅需簡單的電阻電容進行外圍電路設計。

圖3 超聲波發射接收電路

圖4 語音播報及其他模塊電路圖
使用該芯片播放語音,事先將要播放的語音錄入其中,單片機只要給出錄音地址,即可播放該段語音,如圖4所示,單片機的P0.0~P0.5控制ISD2560的錄、放音地址A0~A5,P1.0~P1.4控制著ISD2560的工作狀態。事先要將語音素材0~9、米、厘米等錄入分配的地址,具體地址和時間長度分配如表1所示,語音素材的分配地址由00 H至4 AH。

表1 語音地址分配表
溫度補償的傳感器件采用LM35C,其最大線性誤差為±0.5℃,輸出覆蓋-40℃~110℃,輸出為電壓范圍為6 V至-1.0 V,溫度和輸出電壓的關系為[15-16]:

由式(3)可知,傳感器的電壓輸出與被測溫度成線性關系,單片機通過AD轉換并換算后即可獲得被測溫度值,本系統采用STC12C5A60S2單片機內部集成的10位AD作為模數轉換器件,簡潔設計,提高了系統的穩定性,電路設計如圖4所示,分別為溫度傳感器電路、顯示電路和聲光報警電路的設計。
超聲波測距控制器是系統的核心模塊,直接影響著測距的精度,其設計如圖5所示,主要由外部SPI接口單元、狀態寄存器、啟停寄存器、計數器、計數寄存器和狀態機等部分組成。單片機通過SPI接口和CPLD外部接口進行通信,單片機通過該接口單元,完成對超聲波測距控制器的啟停控制和測距的數據信息的讀取任務。超聲波測距控制器的工作流程為:1)接到單片機發來測距指令,存儲在狀態寄存器里面,狀態機進入start模式,經50 MHz分頻得到40 kHz方波驅動超聲波發射模塊;2)發射出40 kHz脈沖后,狀態機進入counter模式;3)直到回波觸發信號FTRIG后,進入save模式,將計數的最后數據存儲在計數寄存器里面;4)保存好數據后,進入clear狀態,將計數器清理;5)將計數器清理后,進入Idle模式,等待下一次測量;在整個過程中,狀態寄存器都存放著狀態機的狀態標志。

圖5 超聲波測距控制器與狀態轉移圖
系統程序采用C語言進行軟件設計,利用Keil c51作為開發環境。如圖6所示,系統完成初始化后,讀取是否有倒車信號送來,如果有,則進入測距模式,先讀取當前環境溫度值,然后單片機通過SPI通信協議向發送啟動測距信號,由CPLD完成測距任務,單片機則等待CPLD返回測距的計數值。單片機收到測距的計數值后,利用當前溫度值和計數值,根據公式(2),可計算出修正后的測距值,將測距值進行顯示并通過語音模塊播報出來并根據設定的障礙物距離的閾值判斷是否需要進行聲光報警。

圖6 系統程序流程圖
如圖7所示,利用Multisim仿真軟件對接收電路進行仿真測試,所設計的帶通濾波器的中心頻率為40.491 kHz,±3 dB帶寬的截止頻率在25.6 kHz和55.8 kHz,對40 kHz以外的干擾信號具有較強的抑制能力。
利用altera的CPLD集成開發環境Quartus II,進行超聲波測距控制器的時序仿真分析,圖8位發射接收時序圖,其中圖(a)為超聲波發射時序圖,在start信號的觸發下,50 MHz經分頻獲得40 kHz的8個脈沖。圖(b)為超聲波接收時序圖,TRIG信號觸發計數開始,并被FTRIG信號觸發停止計數,讀取的計數值經計算,數值完全正確。

圖7 接收信號處理濾波器特性

圖8 超聲波發射和接收時序仿真圖
為了進一步驗證所設計倒車防撞系統的測距精度,將設計好的樣機系統進行實測,數據如表2所示,經計算,系統測距平均相對誤差僅為2.4%,完全滿足倒車防撞的精度要求。

表2 系統測距數據表
在綜合分析現存的超聲波測量系統的基礎上,提出了一種由單片機和CPLD結合為核心的超聲測距系統,分別對超聲波發射和接收電路進行了詳細設計,利用Verilog HDL硬件描述語言進行測距超聲波測距控制器詳細設計,最后通過仿真測試得出結論,該系統完全滿足汽車防撞系統的設計要求,由于采用CPLD作為獨立的測距控制器,可以完成多路超聲波信號的發射和處理,避免倒車時,出現測量盲區,所設計的硬件架構具有很好的性價比,具有一定的實用推廣價值。