王義
隨著超聲波傳感器制作成本的降低,超聲波技術已被揭開神秘的面紗,并緊貼人們生活而得到廣泛的應用。超聲波技術目前主要應用于功率超聲、檢測超聲及超聲通訊等方面,例如超聲焊接、超聲清洗、超聲醫療、回聲測深、金屬探傷等[1]。在檢測超聲技術中,其中有一部分就是通過發射接收超聲波時差計算來確定目標的位置。
近年來數字電子技術高速發展,數字可編程邏輯器件因其具有靈活配置與高速反應的特性而在很多應用中替代了傳統的單個邏輯門器件與時鐘發生電路,簡化電路的設計與縮小電路空間的同時也大大節省了成本。結合可編程邏輯器件與單片機的靈活性,超聲檢測技術的數字化設計將得到更廣泛的認同。
時差法超聲波檢測的原理即是通過定時器對發射與首次接收之間的時差進行定時以求得超聲波往返時間t,在超聲波速度v已知的情況下,超聲波往返的距離可以通過該公式求得,進而在檢測過程中進行目標物、障礙物、反射面等的探測。如公式(1)所示:

公式(1)中因子1/2的增加是為了求得單程距離,超聲波作為聲波的一種,它的速度v主要由介質決定,例如在空氣中超聲波的速度是340米/秒,但隨著溫度的變化,v會有細微的變化,因此實際應用過程中一般以聲速儀的實測值為參考,或者添加溫度傳感器進行實時校正而達到更高的精度,參數d表示設計中各種因素引起的綜合系統誤差。
時差法超聲檢測系統分為微處理單元、發射驅動、超聲波換能器、接收濾波放大處理電路、接口電路五個部分,其系統框圖如圖1所示。

圖1 超聲檢測系統框圖
超聲發射波的處理是由發射電路的拓撲結構決定的,近幾年隨著 MOSFET頻率范圍的擴大,用MOSFET來實現超聲波驅動已成為可能,在大部分超聲檢測中,超聲發射電路并不需要功放驅動喇叭那樣追求高保真和高線性,因此本文選擇以雙 MOSFET管組成的推挽驅動方式來驅動超聲波換能器,其拓撲結構如圖2所示。
時差法超聲檢測系統中超聲信號的發射是斷續式的,也就是說在某一段時間內連續發射多個波,當激發驅動超聲波換能器后就停止發射,直到接收電路收到回波。
圖3表示了兩個發射管的驅動波形,由于超聲波頻率較高,低則幾十千赫茲,高則達到數兆赫茲,因此要用MCU直接合成高頻率超聲波驅動信號存在難度,且穩定性也較差。圖3中超聲波是斷續式發射的,由信號CN進行控制,CN的周期比較長,因此可以用MCU進行控制,許多微處理芯片都具有PWM波形發生功能,且其占空比可在0%~100%內靈活調整。因此本設計中選擇具有PWM發生功能的C8051系列單片機作為處理單元,采用PWM中斷方式產生CN波形,通過調整占空比而達到調整發射持續時間[2]。

圖2 發射驅動電路

圖3 發射驅動波形
對于超聲波頻率的產生,可以利用CPLD對MCU的主頻與CN控制進行數字合成而不需要添加額外電路。下面就是用VHDL語言編寫的一個產生Tr_A和Tr_B兩個發射信號的進程。
P1:PROCESS(SYSCLK,CN)
BEGIN
IF CN='0' THEN
COUNTPW<=(OTHERS=> '0');
TR_A<= '0';
TR_B <= '0';
ELSIF SYSCLK'EVENT AND SYSCLK='1'
THEN
IF COUNTPW=COUNT_ON THEN
TR_A <= '0';
TR_B <= '0';
COUNTPW <=COUNTPW+1;
ELSIF COUNTPW=(COUNT_ON+1) THEN
TR_A <= '0';
TR_B <= '1';
COUNTPW <=COUNTPW+1;
ELSIF COUNTPW=(COUNT_ALL-1)
THEN
TR_A <= '0';
TR_B <= '0';
COUNTPW <=COUNTPW+1;
ELSIF COUNTPW=COUNT_ALL THEN
TR_A <= '1';
TR_B<= '0';
COUNTPW<=(OTHERS => '0');
ELSE
COUNTPW<=COUNTPW+1;
END IF;
END IF;
END PROCESS P1;
進程中SYSCLK是晶振頻率,COUNT_ALL是分頻常數,而COUNT_ON是用來微調占空比以避免兩管同時導通出現短路。
因此,在該發射電路中發射波形的產生直接利用CPLD對MCU的主頻及PWM產生的控制信號數字合成即可,電路相對簡化了許多,也對死區作了有效的控制。
超聲波接收電路要經過多重放大和濾波才能達到高增益高信噪比,在此不作詳述。在時差法超聲檢測電路中,模擬回波需進行數字轉換才能被MCU檢測,在要求高的情況下,可以對回波進行包絡檢波再用高速ADC進行采樣,輔以復雜的算法以求得精確時差及波形幅度信息;許多情況下,只需要時差信息而不需要波形信息,這時就可以對接收模擬回波進行比較數字轉換后送入MCU的外部中斷中,從而終止MCU內部的定時器。
圖4表示了時差法超聲接收回路中模擬波形及數字化需求的目標波形,只要對第一次回波的前沿進行準確檢測就可以達到精確計時的目標,因此需對接收波進行數字化處理進而得到圖中Pulse波形。

圖4 接收波形
這里可以不經過包絡檢測而直接把模擬信號放入高速比較器進行低閾值比較,然后輸出數字波形Rx到 CPLD進行處理,再根據回波判斷產生 Pulse觸發MCU中斷。下面是CPLD進行的回波處理進程:
P2:PROCESS(CN,Rx)
BEGIN
IF CN = '1' THEN
COUNTF<=( OTHERS=>'0');
PULSE<='0';
ELSIF RX'EVENT AND RX='0' THEN
COUNTF<=COUNTF+1;
IF COUNTF = CNFIL THEN
PULSE<='1';
ELSIF COUNTF>=CNOUT THEN
PULSE<= '0';
END IF;
END IF;
END PROCESS P2;
程序中用 CNFIL這個常量進行了簡單的毛刺剔除,以防止小干擾影響檢測的穩定性。
在接收回路中,還是以簡化電路為主要設計思想,利用高速比較器完成從模擬到數字的轉變,再經CPLD進行回波的處理,由于數字電路的靈活性,對回波的判斷中添加了一些智能判斷的程序以提高檢測的準確性與穩定性。
時差法超聲檢測手段在各檢測領域的應用日趨廣泛,怎樣結合當今高速發展的數字電路和微機技術,簡化電路設計,降低系統成本,提高系統穩定性能成為檢測行業追求的目標,本文根據超聲波的特性,以CPLD為基礎,對發射與接收波形進行了數字化處理,并且可以聯合MCU進行一些智能控制以提高系統穩定性,該處理方案已在實際應用中得以實現并取得了良好的效果。
[1] 袁易全,陳思忠.近代超聲原理與應用[M].南京:南京大學出版社,1996:1,195-198.
[2] 李剛,林凌.與8051兼容的高性能、高速單片機[M].北京:北京航空航天大學出版社,2002:140-145.