吳 楊(陜西工業職業技術學院 信息工程學院,陜西 咸陽 712000)
基于ZigBee的無線高精度超聲波測距儀的設計
吳 楊
(陜西工業職業技術學院 信息工程學院,陜西 咸陽 712000)
本系統使用超聲波來檢測到障礙物的距離,并將檢測結果通過ZigBee無線傳感網傳送到控制中心并顯示處理。該裝置由超聲波測距模塊和控制中心兩部分組成。超聲波測距模塊包括超聲波發射模塊、超聲波接受模塊、溫度補償模塊、ZigBee收發模塊、LCD顯示模塊幾部分組成;控制中心包括ZigBee收發模塊、RS232串口通信模塊等。為了提高測量精度,測距模塊使用DS18B20溫度傳感器對溫度進行實時測量并校正超聲波的聲速。
CC2530;超聲波測距;ZigBee
超聲波測距是一種傳統而實用的非接觸測量方法,經常用于距離的測量,在工程實踐中,超聲波由于指向性強、不受外界光及電磁場等因素的影響,且結構簡單,成本低,因此在工業控制等方面得到了廣泛的應用。但由于溫度對超聲波聲速的影響等原因,使得超聲波測距的精度受到了很大的影響,限制了超聲測距系統在測量精度要求更高的場合下的應用。為了提高測量精度,我們使用溫度補償電路,通過測量環境溫度,實時修改超聲波的聲速,從而使測量精度更高。此外,由于采用了無線數據傳輸模式,大大方便了測距模塊的使用便利性。
本系統硬件電路由CC2530無線單片機模塊、ZigBee無線收發模塊、溫度補償電路、超聲波發射電路、超聲波接收電路、液晶顯示電路構成,如圖1所示。

圖1 系統框圖
系統具體工作過程如下,測量開始時,由CC2530產生一個控制信號,控制外圍電路產生40kHz的超聲波,經整形、功率放大后加到超聲波發射器,使其發射頻率為40kHz的超聲波脈沖,與此同時,CC2530啟動定時/計數器T0開始計數。超聲波碰到障礙物返回,由超聲波接收器接收,并經過信號放大、濾波、整形,產生一個脈沖信號,觸發CC2530定時/計數器T0輸入捕獲功能,根據捕獲計數值就可以換算出超聲波發射到返回所經歷的時間t。同時,由溫度傳感器DS18B20測得當前的環境溫度T,CC2530單片機根據當前溫度T得到超聲波的實際速度v,再根據測得的時間t得到 測距模塊和障礙物的距離d。最后,將距離d和當前溫度T顯示在測距模塊的液晶顯示屏上,同時,利用CC2530內置的ZigBee模塊,將d和T無線發送到控制中心的ZigBee接收模塊中,再由控制中心ZigBee接收模塊通過RS232串口通信將d和T傳遞給控制中心的PC機,控制中心的PC發送的控制命令也是通過這種方式發送給超聲波測距模塊的。
2.1 超聲波發射電路設計
本文中的超聲波模塊使用的是壓電式超聲波傳感器,發射頭型號為TCT40-16T,接收頭型號為TCT40-16R。超聲波發射電路由40kHz的超音頻振蕩器、功率放大電路和超聲波發射頭TCT40-16T等組成,組成的超聲波發射電路見圖2所示。
圖2中,與非門74LS00的U1、U2、U3構成反饋式多諧振蕩器,通過調節電位器VR1,可產生40kHz的方波,單片機的控制信號由U4輸入,當單片機控制端輸出為“高”時,U4輸出40kHz的脈沖。為增大超聲波的發射功率,我們使用MAX232集成電路作為脈沖功率放大器來進一步提升發射功率,被放大的脈沖信號從MAX232的T2輸出端輸出,驅動超聲波發射器TCT40-16T,將超聲波發射到空氣中。經測試,本發射電路有效發射距離可達4.5米。
2.2 超聲波接收電路設計
超聲波接收電路由超聲波接收頭TCT40-16R、濾波放大電路、整形電路等組成,其電路原理圖如圖3所示。

圖2 超聲波發射電路

圖3 超聲波接收電路
接收頭采用與發射頭配對的超聲波接收器TCT40-16R,將反射的超聲波調制脈沖變為交變電壓信號,并對此電信號進行放大、濾波、整形等處理后得到一個負脈沖送給單片機的外計數捕獲輸入端,以產生一個捕獲中斷。為了減少電路的復雜程度,我們采用了紅外線檢波接收的專用集成電路CX20106A,這是一款常用于電視機紅外遙控接收器的接收芯片。由于紅外遙控常用的載波頻率38KHz與測距超聲波頻率40KHz非常接近,因此可以利用它作為超聲波檢測電路。當沒有接收到超聲波時,CX20106A第7腳輸出高電平,當接收到超聲波信號時,CX20106A第7腳跳變為低電平。實驗證明,此電路具有很高的靈敏度和較強的抗干擾能力。
系統以CC2530單片機為核心,實現對各部分的控制和響應。測距軟件的基本流程:首先控制端口產生一個200us的正脈沖,使超聲波發射端產生8個周期40 KHz 的脈沖方波,同時計數/定時器T0計數器開始計數。如果在400us內有回波信號,則待回波進入接收電路,經放大、整形等處理后,進入單片機,由輸入捕獲模塊捕捉到回波的觸發信號,并記錄捕獲值;同時,DS18B20溫度傳感器測量環境溫度,通過查找事先建立好的聲速-溫度對照表得到當前聲速;并計算出障礙物的精確距離,并將結果通過ZigBee模塊發送給控制中心,然后進入低功耗的休眠模式。如果400us內沒有收到回波信號,則直接進入低功耗休眠模式。并由定時器每隔100ms喚醒重復一次上述測量過程。
由于CC2530的定時器時鐘源頻率高達32MHz,因此大大提高了時間測量的分辨率。此外,使用輸入捕獲通道精準的記錄了超聲波回波到達的時刻,而不是等到進入中斷后才開始讀取當前計時器的值,從而大大的提高了計時的準確性。再加上通過測量環境溫度校正測量結果,從而獲得了滿意的測量精度。
[1]韋穗林,數字式超聲波測距儀的研制[J].電子設計工程,2009,17(10):39-41.
[2]趙連玉,趙小強.超聲波測距系統中的溫度補償[J].組合機床與自動化加工技術,2008(12):62-64.
[3]杜律,陳裕隆.遠程監護系統中ZigBee網關的設計[J].微計算機信息,2010(02):87-88.

圖4 主程序流程