王鋼等
摘 要:本設計是基于STC89C52 RC單片機為控制核心的無損探傷儀的高精度超聲波測距系統。本設計的特色在于增加了溫度補償模塊,對超聲波的傳播速度進行校正,進而提高了該測距系統的壞境適應能力與精確度;顯示模塊為TFT觸屏顯示;同時,為了提高系統的智能性在本設計中加入了實時語音播報模塊。該系統在工業控制、機器人定位、車體無損探傷、汽車防撞雷達、水利監測等領域具有廣泛的應用,特別是在實時性要求比較高的領域具有更大的優勢和更廣闊的應用前景。
關鍵詞:STC89C52 RC;超聲波;測距;溫度補償;實時語音
引言
超聲波定位技術是蝙蝠等一些無目視能力的生物作為防御天敵及捕獲獵物的生存手段, 這些生物體可發射超聲波然后借助空氣介質傳播, 根據獵物或障礙物反射回來的回波的時間間隔及強弱, 判斷獵物的質或障礙物的位置。人們根據仿生學原理, 開發了超聲波測距和無損探傷等一系列實用技術。
1 超聲波測距及系統工作原理
1.1 超聲波測距原理
超聲波具有直線傳播特性,頻率越高,反射能力越強。利用超聲波的這種特性,采用時間差值檢測法(常稱渡越時間檢測法)進行距離的測量。其測距原理是超聲波發射器向某一方向發射超聲波,在發射的同時開始計時。超聲波在空氣中傳播,碰到障礙物反射回來,超聲波接收器接收到反射波就立即停止計時,根據計時器記錄的時間,就可以計算出發射點距障礙物的距離。系統根據時間延遲計算出距離,計算公式為:
1.2 系統工作原理
該系統的核心部件為超聲波傳感器和STC89C52RC 單片機。STC89C52RC 用定時器1(T1)定時70ms,每隔70ms P2.6 端口發出一個40kHz 的方波信號驅動超聲波發射器發射出一串超聲波脈沖,同時啟動單片機計時器0(T0)計時測量超聲波傳播的時間。當脈沖到達被測目標時,利用定時器1中斷口監測超聲波接收電路輸出的返回信號。當接收到信號時,定時器1中斷發出指令讓計數器0(T0)停止計數,這樣就能夠得到發射到接收的時間差t。同時溫度補償電路也將由溫度傳感器DS18B20采集到的現場環境溫度送到單片機,提供計算距離時對超聲波傳播速度的修正。最終單片機利用公式(1)、(2)計算出被測距離,在TFT觸屏上顯示出結果,并由語音芯片WT588D讀出實時溫度和距離。
2 系統硬件設計
主控制器主要由單片機STC89C52RC、振蕩器和復位電路三部分組成,它是單片機工作的必要組成部分,又稱為單片機最小系統。它是測距系統的控制中樞,也是整個系統的核心部分。在測距系統中發揮四個作用:(1)實現實時顯示和語音播報;(2)控制超聲波的發射;(3)處理超聲波接收電路和溫度補償電路接收的信號;(4)時間轉化成距離的數據處理。
2.1 超聲波模塊HC-SR04
采用超聲波模塊HC-SR04,該模塊的工作原理如下:
(1)采用IO口TRIG觸發測距,給至少10us的高電平信號。(2)模塊自動發送8個40kHz的方波,自動檢測是否有信號返回。(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速)/2。
2.2 溫度采集DS18B20模塊
溫度對于超聲波測距系統的影響是不可忽略的。為了得到較為精確的測量結果, 必須對波速進行溫度補償。從(2)式中可看出, 要獲得準確的波速值, 必須首先獲取現場溫度T 的大小。文章采用DS18B20 檢測現場溫度, 用以實現實際波速的校準。
2.3 TFT觸屏顯示模塊
TFT屬于有源矩陣液晶顯示器。TFT屏幕,也是中高端彩屏手機中普遍采用的屏幕,分65536 色及26萬色,1600萬色三種,其顯示效果非常出色。
3)控制IC為ILI9325。
2.4 WT588D語音模塊
本設計中采用WT588D-16p(16引腳)芯片作為語音模塊的主芯片并采用其三線串口模式進行連接與控制。三線串口控制模式由三條通信線組成,分別是片選CS,數據DATA,時鐘CLK,時序根據標準SPI通信方式。通過三線串口可以實現語音芯片命令控制、語音播放。時序仿照標準SPI 通信方式,發數據時先發低位,再發高位。發碼完成后DATA、CLK、CS 均要保持高電平。在發送數據時, 無需先發送命令碼再發送指令。D0~D7表示一個地址或者命令數據,數據中的00H~DBH為地址指令,E0H~E7H為音量調節命令, F2H為循環播放命令,FEH為停止播放命令,F5H為進入三線串口控制I/O口擴展輸出命令,F6H為退出三線串口控制I/O口擴展輸出命令。
2.5 蜂鳴器模塊
本次設計通過一只蜂鳴器來提示用戶測距是否在測量范圍,當不在測量范圍時蜂鳴器會報警。蜂鳴器是一塊壓電晶片,在其兩端加上3~5V的直流電壓,就能產生3KHz的蜂鳴聲。
3 系統軟件設計
系統程序結構:
(1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以及讀取子程序等部分;(2)TFT顯示模塊,分為初始化、寫入以及檢測、顯示部分;(3)溫度補償與距離計算模塊,分為超聲波發送控制、接收處理程序、溫度補償程序等;(4)報警模塊,當T0技術溢出或測量距離不在2-400cm的范圍時,則蜂鳴提示;(5)WT588D語音模塊,匯報實時溫度和所測距離;(6)本次設計使用C語言編寫程序,C語言相比匯編有許多的優勢;編譯器使用Keil Version2進行程序編譯,Keil功能強大使用方便;(7)主程序,分為系統初始化以及各個子程序的調度管理等部分。
本超聲波測距系統設計程序的思想如下:
(1)對系統進行溫度補償,以便達到更精確的測量;(2)溫度每隔900ms采樣一次,DS18B20在12位精度下轉換周期為750ms,故900ms滿足該速度要求;(3)超聲波每隔70ms發送一次,以防止發射信號對回響信號的影響;(4)超聲波發送一定時間后才開始啟動檢測,避免直達信號造成誤判。所以系統最小測量約為2cm;(5)沒有使用看門狗功能;(6)本設計中需注意當距離過遠或者沒有返回信號時候,定時器T0的溢出,報警提示;(7)溫度為四位顯示,單位為℃,距離為四位顯示,單位為cm;(8)TFT觸屏啟動及返回觸鍵;(9)系統采用STC89C52的內時鐘:24MHz。
4 實驗數據
一般情況下,應測量幾次數據取其平均值,目的是為減少由于測量過程中的系統抖動引起的誤差。表2 的數據都是在測距系統固定的情況下測量的。由于本設計沒有考慮其他環境因素(如:氣壓、濕度…)的影響,只考慮了溫度補償的影響,所以在測量的時候給測量結果帶來了一定的誤差。由表2 可見測量精度達到設計要求。
5 結束語
為了驗證系統的測量精度,進行了實地測量。利用本系統對2~400cm范圍進行了多次測試,經補償后在1-150cm內最大誤差不超過3mm,在150-400cm內誤差在3-6mm內,線性度、穩定性和重復性都比較好。系統具有結構簡單、體積小、實時TFT顯示和報警、帶溫度補償、實時語音播報、抗干擾性能好等優點。系統的誤差主要來自于環境因素、角度補償和時間誤差,此外電子元器件自身的時延、干擾等也造成一定影響。可以根據具體場合,選擇合適功率的探頭,在程序中為變量選擇合適的數據類型以及調整程序中脈沖的頻率、寬度和個數等提高精度,擴大系統的應用范圍。
參考文獻
[1]杜功煥,朱哲民,龔秀芬.聲學基礎[M].南京:南京大學出版社,2001.
[2]求實科技.單片機典型外圍器件及應用實例[M].北京:人民郵電出版社,2001.
[3]居榮,郭怡倩.DS18B20在溫控系統中的應用[J].農機化研究,2005,20(1):224-226.
摘 要:本設計是基于STC89C52 RC單片機為控制核心的無損探傷儀的高精度超聲波測距系統。本設計的特色在于增加了溫度補償模塊,對超聲波的傳播速度進行校正,進而提高了該測距系統的壞境適應能力與精確度;顯示模塊為TFT觸屏顯示;同時,為了提高系統的智能性在本設計中加入了實時語音播報模塊。該系統在工業控制、機器人定位、車體無損探傷、汽車防撞雷達、水利監測等領域具有廣泛的應用,特別是在實時性要求比較高的領域具有更大的優勢和更廣闊的應用前景。
關鍵詞:STC89C52 RC;超聲波;測距;溫度補償;實時語音
引言
超聲波定位技術是蝙蝠等一些無目視能力的生物作為防御天敵及捕獲獵物的生存手段, 這些生物體可發射超聲波然后借助空氣介質傳播, 根據獵物或障礙物反射回來的回波的時間間隔及強弱, 判斷獵物的質或障礙物的位置。人們根據仿生學原理, 開發了超聲波測距和無損探傷等一系列實用技術。
1 超聲波測距及系統工作原理
1.1 超聲波測距原理
超聲波具有直線傳播特性,頻率越高,反射能力越強。利用超聲波的這種特性,采用時間差值檢測法(常稱渡越時間檢測法)進行距離的測量。其測距原理是超聲波發射器向某一方向發射超聲波,在發射的同時開始計時。超聲波在空氣中傳播,碰到障礙物反射回來,超聲波接收器接收到反射波就立即停止計時,根據計時器記錄的時間,就可以計算出發射點距障礙物的距離。系統根據時間延遲計算出距離,計算公式為:
1.2 系統工作原理
該系統的核心部件為超聲波傳感器和STC89C52RC 單片機。STC89C52RC 用定時器1(T1)定時70ms,每隔70ms P2.6 端口發出一個40kHz 的方波信號驅動超聲波發射器發射出一串超聲波脈沖,同時啟動單片機計時器0(T0)計時測量超聲波傳播的時間。當脈沖到達被測目標時,利用定時器1中斷口監測超聲波接收電路輸出的返回信號。當接收到信號時,定時器1中斷發出指令讓計數器0(T0)停止計數,這樣就能夠得到發射到接收的時間差t。同時溫度補償電路也將由溫度傳感器DS18B20采集到的現場環境溫度送到單片機,提供計算距離時對超聲波傳播速度的修正。最終單片機利用公式(1)、(2)計算出被測距離,在TFT觸屏上顯示出結果,并由語音芯片WT588D讀出實時溫度和距離。
2 系統硬件設計
主控制器主要由單片機STC89C52RC、振蕩器和復位電路三部分組成,它是單片機工作的必要組成部分,又稱為單片機最小系統。它是測距系統的控制中樞,也是整個系統的核心部分。在測距系統中發揮四個作用:(1)實現實時顯示和語音播報;(2)控制超聲波的發射;(3)處理超聲波接收電路和溫度補償電路接收的信號;(4)時間轉化成距離的數據處理。
2.1 超聲波模塊HC-SR04
采用超聲波模塊HC-SR04,該模塊的工作原理如下:
(1)采用IO口TRIG觸發測距,給至少10us的高電平信號。(2)模塊自動發送8個40kHz的方波,自動檢測是否有信號返回。(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速)/2。
2.2 溫度采集DS18B20模塊
溫度對于超聲波測距系統的影響是不可忽略的。為了得到較為精確的測量結果, 必須對波速進行溫度補償。從(2)式中可看出, 要獲得準確的波速值, 必須首先獲取現場溫度T 的大小。文章采用DS18B20 檢測現場溫度, 用以實現實際波速的校準。
2.3 TFT觸屏顯示模塊
TFT屬于有源矩陣液晶顯示器。TFT屏幕,也是中高端彩屏手機中普遍采用的屏幕,分65536 色及26萬色,1600萬色三種,其顯示效果非常出色。
3)控制IC為ILI9325。
2.4 WT588D語音模塊
本設計中采用WT588D-16p(16引腳)芯片作為語音模塊的主芯片并采用其三線串口模式進行連接與控制。三線串口控制模式由三條通信線組成,分別是片選CS,數據DATA,時鐘CLK,時序根據標準SPI通信方式。通過三線串口可以實現語音芯片命令控制、語音播放。時序仿照標準SPI 通信方式,發數據時先發低位,再發高位。發碼完成后DATA、CLK、CS 均要保持高電平。在發送數據時, 無需先發送命令碼再發送指令。D0~D7表示一個地址或者命令數據,數據中的00H~DBH為地址指令,E0H~E7H為音量調節命令, F2H為循環播放命令,FEH為停止播放命令,F5H為進入三線串口控制I/O口擴展輸出命令,F6H為退出三線串口控制I/O口擴展輸出命令。
2.5 蜂鳴器模塊
本次設計通過一只蜂鳴器來提示用戶測距是否在測量范圍,當不在測量范圍時蜂鳴器會報警。蜂鳴器是一塊壓電晶片,在其兩端加上3~5V的直流電壓,就能產生3KHz的蜂鳴聲。
3 系統軟件設計
系統程序結構:
(1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以及讀取子程序等部分;(2)TFT顯示模塊,分為初始化、寫入以及檢測、顯示部分;(3)溫度補償與距離計算模塊,分為超聲波發送控制、接收處理程序、溫度補償程序等;(4)報警模塊,當T0技術溢出或測量距離不在2-400cm的范圍時,則蜂鳴提示;(5)WT588D語音模塊,匯報實時溫度和所測距離;(6)本次設計使用C語言編寫程序,C語言相比匯編有許多的優勢;編譯器使用Keil Version2進行程序編譯,Keil功能強大使用方便;(7)主程序,分為系統初始化以及各個子程序的調度管理等部分。
本超聲波測距系統設計程序的思想如下:
(1)對系統進行溫度補償,以便達到更精確的測量;(2)溫度每隔900ms采樣一次,DS18B20在12位精度下轉換周期為750ms,故900ms滿足該速度要求;(3)超聲波每隔70ms發送一次,以防止發射信號對回響信號的影響;(4)超聲波發送一定時間后才開始啟動檢測,避免直達信號造成誤判。所以系統最小測量約為2cm;(5)沒有使用看門狗功能;(6)本設計中需注意當距離過遠或者沒有返回信號時候,定時器T0的溢出,報警提示;(7)溫度為四位顯示,單位為℃,距離為四位顯示,單位為cm;(8)TFT觸屏啟動及返回觸鍵;(9)系統采用STC89C52的內時鐘:24MHz。
4 實驗數據
一般情況下,應測量幾次數據取其平均值,目的是為減少由于測量過程中的系統抖動引起的誤差。表2 的數據都是在測距系統固定的情況下測量的。由于本設計沒有考慮其他環境因素(如:氣壓、濕度…)的影響,只考慮了溫度補償的影響,所以在測量的時候給測量結果帶來了一定的誤差。由表2 可見測量精度達到設計要求。
5 結束語
為了驗證系統的測量精度,進行了實地測量。利用本系統對2~400cm范圍進行了多次測試,經補償后在1-150cm內最大誤差不超過3mm,在150-400cm內誤差在3-6mm內,線性度、穩定性和重復性都比較好。系統具有結構簡單、體積小、實時TFT顯示和報警、帶溫度補償、實時語音播報、抗干擾性能好等優點。系統的誤差主要來自于環境因素、角度補償和時間誤差,此外電子元器件自身的時延、干擾等也造成一定影響。可以根據具體場合,選擇合適功率的探頭,在程序中為變量選擇合適的數據類型以及調整程序中脈沖的頻率、寬度和個數等提高精度,擴大系統的應用范圍。
參考文獻
[1]杜功煥,朱哲民,龔秀芬.聲學基礎[M].南京:南京大學出版社,2001.
[2]求實科技.單片機典型外圍器件及應用實例[M].北京:人民郵電出版社,2001.
[3]居榮,郭怡倩.DS18B20在溫控系統中的應用[J].農機化研究,2005,20(1):224-226.
摘 要:本設計是基于STC89C52 RC單片機為控制核心的無損探傷儀的高精度超聲波測距系統。本設計的特色在于增加了溫度補償模塊,對超聲波的傳播速度進行校正,進而提高了該測距系統的壞境適應能力與精確度;顯示模塊為TFT觸屏顯示;同時,為了提高系統的智能性在本設計中加入了實時語音播報模塊。該系統在工業控制、機器人定位、車體無損探傷、汽車防撞雷達、水利監測等領域具有廣泛的應用,特別是在實時性要求比較高的領域具有更大的優勢和更廣闊的應用前景。
關鍵詞:STC89C52 RC;超聲波;測距;溫度補償;實時語音
引言
超聲波定位技術是蝙蝠等一些無目視能力的生物作為防御天敵及捕獲獵物的生存手段, 這些生物體可發射超聲波然后借助空氣介質傳播, 根據獵物或障礙物反射回來的回波的時間間隔及強弱, 判斷獵物的質或障礙物的位置。人們根據仿生學原理, 開發了超聲波測距和無損探傷等一系列實用技術。
1 超聲波測距及系統工作原理
1.1 超聲波測距原理
超聲波具有直線傳播特性,頻率越高,反射能力越強。利用超聲波的這種特性,采用時間差值檢測法(常稱渡越時間檢測法)進行距離的測量。其測距原理是超聲波發射器向某一方向發射超聲波,在發射的同時開始計時。超聲波在空氣中傳播,碰到障礙物反射回來,超聲波接收器接收到反射波就立即停止計時,根據計時器記錄的時間,就可以計算出發射點距障礙物的距離。系統根據時間延遲計算出距離,計算公式為:
1.2 系統工作原理
該系統的核心部件為超聲波傳感器和STC89C52RC 單片機。STC89C52RC 用定時器1(T1)定時70ms,每隔70ms P2.6 端口發出一個40kHz 的方波信號驅動超聲波發射器發射出一串超聲波脈沖,同時啟動單片機計時器0(T0)計時測量超聲波傳播的時間。當脈沖到達被測目標時,利用定時器1中斷口監測超聲波接收電路輸出的返回信號。當接收到信號時,定時器1中斷發出指令讓計數器0(T0)停止計數,這樣就能夠得到發射到接收的時間差t。同時溫度補償電路也將由溫度傳感器DS18B20采集到的現場環境溫度送到單片機,提供計算距離時對超聲波傳播速度的修正。最終單片機利用公式(1)、(2)計算出被測距離,在TFT觸屏上顯示出結果,并由語音芯片WT588D讀出實時溫度和距離。
2 系統硬件設計
主控制器主要由單片機STC89C52RC、振蕩器和復位電路三部分組成,它是單片機工作的必要組成部分,又稱為單片機最小系統。它是測距系統的控制中樞,也是整個系統的核心部分。在測距系統中發揮四個作用:(1)實現實時顯示和語音播報;(2)控制超聲波的發射;(3)處理超聲波接收電路和溫度補償電路接收的信號;(4)時間轉化成距離的數據處理。
2.1 超聲波模塊HC-SR04
采用超聲波模塊HC-SR04,該模塊的工作原理如下:
(1)采用IO口TRIG觸發測距,給至少10us的高電平信號。(2)模塊自動發送8個40kHz的方波,自動檢測是否有信號返回。(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速)/2。
2.2 溫度采集DS18B20模塊
溫度對于超聲波測距系統的影響是不可忽略的。為了得到較為精確的測量結果, 必須對波速進行溫度補償。從(2)式中可看出, 要獲得準確的波速值, 必須首先獲取現場溫度T 的大小。文章采用DS18B20 檢測現場溫度, 用以實現實際波速的校準。
2.3 TFT觸屏顯示模塊
TFT屬于有源矩陣液晶顯示器。TFT屏幕,也是中高端彩屏手機中普遍采用的屏幕,分65536 色及26萬色,1600萬色三種,其顯示效果非常出色。
3)控制IC為ILI9325。
2.4 WT588D語音模塊
本設計中采用WT588D-16p(16引腳)芯片作為語音模塊的主芯片并采用其三線串口模式進行連接與控制。三線串口控制模式由三條通信線組成,分別是片選CS,數據DATA,時鐘CLK,時序根據標準SPI通信方式。通過三線串口可以實現語音芯片命令控制、語音播放。時序仿照標準SPI 通信方式,發數據時先發低位,再發高位。發碼完成后DATA、CLK、CS 均要保持高電平。在發送數據時, 無需先發送命令碼再發送指令。D0~D7表示一個地址或者命令數據,數據中的00H~DBH為地址指令,E0H~E7H為音量調節命令, F2H為循環播放命令,FEH為停止播放命令,F5H為進入三線串口控制I/O口擴展輸出命令,F6H為退出三線串口控制I/O口擴展輸出命令。
2.5 蜂鳴器模塊
本次設計通過一只蜂鳴器來提示用戶測距是否在測量范圍,當不在測量范圍時蜂鳴器會報警。蜂鳴器是一塊壓電晶片,在其兩端加上3~5V的直流電壓,就能產生3KHz的蜂鳴聲。
3 系統軟件設計
系統程序結構:
(1)DS18B20溫度傳感器接口模塊,分為初始化程序、寫入命令以及讀取子程序等部分;(2)TFT顯示模塊,分為初始化、寫入以及檢測、顯示部分;(3)溫度補償與距離計算模塊,分為超聲波發送控制、接收處理程序、溫度補償程序等;(4)報警模塊,當T0技術溢出或測量距離不在2-400cm的范圍時,則蜂鳴提示;(5)WT588D語音模塊,匯報實時溫度和所測距離;(6)本次設計使用C語言編寫程序,C語言相比匯編有許多的優勢;編譯器使用Keil Version2進行程序編譯,Keil功能強大使用方便;(7)主程序,分為系統初始化以及各個子程序的調度管理等部分。
本超聲波測距系統設計程序的思想如下:
(1)對系統進行溫度補償,以便達到更精確的測量;(2)溫度每隔900ms采樣一次,DS18B20在12位精度下轉換周期為750ms,故900ms滿足該速度要求;(3)超聲波每隔70ms發送一次,以防止發射信號對回響信號的影響;(4)超聲波發送一定時間后才開始啟動檢測,避免直達信號造成誤判。所以系統最小測量約為2cm;(5)沒有使用看門狗功能;(6)本設計中需注意當距離過遠或者沒有返回信號時候,定時器T0的溢出,報警提示;(7)溫度為四位顯示,單位為℃,距離為四位顯示,單位為cm;(8)TFT觸屏啟動及返回觸鍵;(9)系統采用STC89C52的內時鐘:24MHz。
4 實驗數據
一般情況下,應測量幾次數據取其平均值,目的是為減少由于測量過程中的系統抖動引起的誤差。表2 的數據都是在測距系統固定的情況下測量的。由于本設計沒有考慮其他環境因素(如:氣壓、濕度…)的影響,只考慮了溫度補償的影響,所以在測量的時候給測量結果帶來了一定的誤差。由表2 可見測量精度達到設計要求。
5 結束語
為了驗證系統的測量精度,進行了實地測量。利用本系統對2~400cm范圍進行了多次測試,經補償后在1-150cm內最大誤差不超過3mm,在150-400cm內誤差在3-6mm內,線性度、穩定性和重復性都比較好。系統具有結構簡單、體積小、實時TFT顯示和報警、帶溫度補償、實時語音播報、抗干擾性能好等優點。系統的誤差主要來自于環境因素、角度補償和時間誤差,此外電子元器件自身的時延、干擾等也造成一定影響。可以根據具體場合,選擇合適功率的探頭,在程序中為變量選擇合適的數據類型以及調整程序中脈沖的頻率、寬度和個數等提高精度,擴大系統的應用范圍。
參考文獻
[1]杜功煥,朱哲民,龔秀芬.聲學基礎[M].南京:南京大學出版社,2001.
[2]求實科技.單片機典型外圍器件及應用實例[M].北京:人民郵電出版社,2001.
[3]居榮,郭怡倩.DS18B20在溫控系統中的應用[J].農機化研究,2005,20(1):224-226.