孟慶浩,邊旭東,扈佳林,曾 明
(天津大學(xué),電氣與自動(dòng)化工程學(xué)院,機(jī)器人與自主系統(tǒng)研究所,天津300072)
超聲換能器因具有尺寸小、價(jià)格低,且硬件電路容易實(shí)現(xiàn)等優(yōu)點(diǎn),在工業(yè)測(cè)量和移動(dòng)機(jī)器人導(dǎo)航等領(lǐng)域得到了廣泛應(yīng)用。目前用于移動(dòng)機(jī)器人的超聲測(cè)距系統(tǒng)至少存在兩方面的問題,一是測(cè)距精度偏低,二是多個(gè)超聲換能器同時(shí)工作時(shí)存在相互干擾,即串?dāng)_[1]?;诙稍綍r(shí)間法測(cè)距的關(guān)鍵是回聲時(shí)間的準(zhǔn)確獲取,但在測(cè)距過程中,由于噪聲等其他信號(hào)的干擾和回聲信號(hào)在空氣中幅值的衰減和變形等原因,導(dǎo)致渡越時(shí)間難以準(zhǔn)確捕獲。由于超聲換能器的波束角有限,為了提供360°范圍的環(huán)境信息,需要將多個(gè)超聲換能器組成環(huán)狀。但多個(gè)換能器同時(shí)工作,就可能產(chǎn)生串?dāng)_現(xiàn)象,即某個(gè)換能器接收到其他換能器發(fā)射的超聲,從而導(dǎo)致測(cè)距錯(cuò)誤。
為了提高渡越時(shí)間捕獲的準(zhǔn)確性,國內(nèi)外一些學(xué)者提出了測(cè)量或估計(jì)渡越時(shí)間的方法。最簡單的渡越時(shí)間捕獲方法為閾值法(Threshold Method)[2],但由于回聲幅值的變動(dòng)很難預(yù)測(cè),且回聲信號(hào)到達(dá)閾值的時(shí)刻遲于實(shí)際回聲信號(hào)的起始時(shí)刻,所以這種方法準(zhǔn)確度不高。Huang等[3]提出了基于二值頻移鍵控(BFSK)的相移法測(cè)距,該方法的測(cè)距精度較高,但實(shí)時(shí)性較差,且硬件實(shí)現(xiàn)成本高。姚振靜等[4-5]基于平方根無跡卡爾曼濾波估計(jì)了單脈沖超聲測(cè)距系統(tǒng)的渡越時(shí)間??紤]到卡爾曼濾波的收斂速度與初始狀態(tài)有關(guān),該文提出了多初始狀態(tài)的平方根無跡卡爾曼濾波算法用于渡越時(shí)間估計(jì),并通過計(jì)算機(jī)仿真驗(yàn)證了所提算法的可行性和準(zhǔn)確性。但這種算法計(jì)算復(fù)雜程度高,不能滿足實(shí)時(shí)性要求。在計(jì)算自相關(guān)函數(shù)時(shí),黃增榮等[6]采用數(shù)字相關(guān)方法確定渡越時(shí)間,并用并行數(shù)字相關(guān)技術(shù)代替傅里葉變換算法,減少了數(shù)據(jù)處理時(shí)間和FPGA資源,通過仿真進(jìn)行了驗(yàn)證。葛萬成等[7]采用兩步相關(guān)法計(jì)算渡越時(shí)間,減少了處理時(shí)間。潘仲明等[7]提出了一種粗、精兩步相關(guān)法計(jì)算互相關(guān)函數(shù),并由此確定超聲波的射程時(shí)間,顯著地減少了超聲測(cè)距系統(tǒng)的數(shù)據(jù)處理時(shí)間,因此采用普通單片機(jī)可實(shí)現(xiàn)大量程超聲測(cè)距。文獻(xiàn)[9-10]設(shè)計(jì)了結(jié)構(gòu)緊湊、功耗較低且具有超聲收發(fā)一體功能的硬件系統(tǒng),為超聲測(cè)距提供了穩(wěn)定、可靠的硬件平臺(tái),并建立了該測(cè)距系統(tǒng)基于自回歸滑動(dòng)平均(ARMA)的數(shù)學(xué)模型,為仿真研究提供了模型支撐。文獻(xiàn)[11]采用極性相關(guān)算法并利用FPGA實(shí)現(xiàn)了實(shí)時(shí)距離信息的測(cè)量,測(cè)距效果良好,但FPGA中占用資源較多。
為了消除多個(gè)超聲換能器同時(shí)工作帶來的串?dāng)_問題,J?rg等[1]通過脈沖壓縮的方法賦予每個(gè)超聲換能器唯一的標(biāo)識(shí),并挑選合適的偽隨機(jī)碼,在接收端采用相關(guān)匹配法分辨回波信號(hào)是否為自身發(fā)出的超聲波。Fortuna等[12]基于混沌脈沖位置調(diào)制方法研究了超聲串?dāng)_消除問題。文獻(xiàn)[13]和[14]分別采用巴克碼和格雷碼消除超聲串?dāng)_現(xiàn)象。但巴克碼的有限長度和格雷碼實(shí)現(xiàn)的復(fù)雜性在某種程度上限制了這兩種編碼在超聲擴(kuò)頻領(lǐng)域的實(shí)際應(yīng)用。為減小回聲相關(guān)的計(jì)算量,Nakahira等[15]采用數(shù)字極性相關(guān)方法,把連續(xù)模擬信號(hào)的乘法運(yùn)算轉(zhuǎn)換為簡單的數(shù)字運(yùn)算,大大簡化了運(yùn)算量和硬件開銷。程曉暢等[16]采用m序列結(jié)合幅移鍵控的調(diào)制方式研究了超聲擴(kuò)頻測(cè)距系統(tǒng),提出了一種基于快速傅里葉變換的偽隨機(jī)碼包絡(luò)相關(guān)快速時(shí)延估計(jì)算法,降低了運(yùn)算量。楊斌虎[17]采用m序列結(jié)合數(shù)字信號(hào)處理器研究了超聲測(cè)距方法。孟慶浩等[18-19]采用遺傳算法優(yōu)化偽隨機(jī)脈沖位置調(diào)制和混沌脈沖位置調(diào)制序列,有效地抑制了超聲串?dāng)_現(xiàn)象。楊雪[20]將4種模擬調(diào)制方法(即混沌脈沖位置調(diào)制、混沌脈沖寬度調(diào)制、線性調(diào)頻及非線性調(diào)頻)和3種數(shù)字調(diào)制方法(即二值幅移鍵控、二值頻移鍵控和二值相移鍵控)與多種偽隨機(jī)編碼方式結(jié)合構(gòu)造出了脈沖序列激勵(lì)超聲換能器,并用回聲相關(guān)度、能量效率等性能指標(biāo)進(jìn)行了比較,找出了適合擴(kuò)頻超聲測(cè)距系統(tǒng)的編碼和調(diào)制方式,有效地避免了超聲串?dāng)_,提高了有效測(cè)距范圍。但該文并未將結(jié)果應(yīng)用于實(shí)際超聲測(cè)距系統(tǒng)中。
本文在前期的超聲編碼與收發(fā)電路設(shè)計(jì)的工作基礎(chǔ)上,給出了一個(gè)基于FPGA的六路無串?dāng)_超聲測(cè)距系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方案。FPGA作為整個(gè)系統(tǒng)核心,用于完成超聲激勵(lì)編碼的存儲(chǔ)與發(fā)射、回聲信號(hào)極化相關(guān)、計(jì)算/顯示距離及向上位機(jī)發(fā)送數(shù)據(jù)等任務(wù)。實(shí)驗(yàn)表明,本文給出的設(shè)計(jì)方案可保證六路超聲測(cè)距單元實(shí)時(shí)地工作,相互之間的串?dāng)_可有效地消除,在35 cm~420 cm的范圍內(nèi),可實(shí)現(xiàn)10 mm的測(cè)距精度。
無串?dāng)_超聲測(cè)距的關(guān)鍵包括超聲編碼/調(diào)制及渡越時(shí)間捕獲。在得到渡越時(shí)間t后,可采用式(1)計(jì)算距離。
式中,D為超聲換能器與障礙物之間的距離;C為超聲波在空氣中的傳播速度。在常溫常壓下,空氣近似為理想氣體。超聲波在理想氣體中的傳播速度可用式(2)計(jì)算。
式中,r為定壓分子熱容量與定容分子熱容量的比值,R為氣體常數(shù),T為絕對(duì)溫度,u為氣體的分子量。對(duì)于一定的氣體,r和u為定值;當(dāng)溫度恒定時(shí)候,可以認(rèn)為超聲波在空氣中傳播的速度C為一個(gè)定值。這樣,渡越時(shí)間的準(zhǔn)確性決定了測(cè)距的準(zhǔn)確性。
為了有效抑制超聲串?dāng)_并擴(kuò)大有效測(cè)距范圍,本測(cè)距系統(tǒng)引入了擴(kuò)頻和編碼思想,給每路超聲換能器激勵(lì)序列賦予獨(dú)特的編碼。同時(shí),為了簡化硬件電路,降低程序復(fù)雜度,保證系統(tǒng)實(shí)時(shí)性,測(cè)距系統(tǒng)采用脈沖序列激勵(lì)超聲換能器。
基于超聲擴(kuò)頻脈沖編碼測(cè)距原理,本文總結(jié)了楊雪[20]研究的數(shù)字調(diào)制激勵(lì)序列構(gòu)造方法,即將6種偽隨機(jī)編碼和3種數(shù)字調(diào)制方式兩兩結(jié)合,從而得到18種擴(kuò)頻脈沖編碼激勵(lì)序列。6種偽隨機(jī)編碼序列包括m序列,混沌序列,Gold序列,Balanced Gold序列,Legendre序列和Hall序列;3種數(shù)字調(diào)制方式包括二值幅移鍵控(BASK)、二值頻移鍵控(BFSK)和二值相移鍵控(BPSK)。為了從中挑選出一種最適合超聲測(cè)距應(yīng)用的激勵(lì)序列,本文從回聲序列相關(guān)特性、激勵(lì)序列與回聲序列的能量特性兩個(gè)方面對(duì)這18種數(shù)字激勵(lì)序列進(jìn)行了評(píng)價(jià)。
本文用相關(guān)度評(píng)價(jià)回聲序列的相關(guān)特性。相關(guān)度R定義為:P路超聲換能器的回聲序列集中,所有序列兩兩互相關(guān)的函數(shù)峰值中的最大值和各序列自相關(guān)的函數(shù)旁瓣值中的最大值,二者中較大的值為回聲序列的相關(guān)度。其表達(dá)式為:
其中,Ra-max為P個(gè)超聲換能器的回聲序列自相關(guān)函數(shù)的最大旁瓣值,Rc-max是所有超聲換能器的回聲序列互相關(guān)函數(shù)峰值的最大值;Rii(mx)為第i路超聲換能器回聲序列的自相關(guān)函數(shù),Rij(mxy)為第i路超聲換能器的回聲序列與第j路超聲換能器的回聲序列的互相關(guān)函數(shù);P為多路超聲測(cè)距系統(tǒng)中包含的超聲換能器的個(gè)數(shù)(本文中P=6),δ是回聲序列自相關(guān)函數(shù)主瓣寬度的一半,N為回聲序列的采樣點(diǎn)數(shù);為第i路超聲換能器的回聲序列中第nx個(gè)采樣點(diǎn)取值為第j路超聲換能器的回聲序列中第nxy個(gè)采樣點(diǎn)取值。
在測(cè)距過程中,同一類編碼調(diào)制方式組合生成的激勵(lì)序列所產(chǎn)生的回波自相關(guān)函數(shù)的旁瓣值越小,互相關(guān)函數(shù)的最大峰值越小,即回聲序列相關(guān)度越小,相關(guān)特性越優(yōu)良,則通過相關(guān)法越容易識(shí)別出與自身匹配的回聲序列,也越能準(zhǔn)確地捕捉到主瓣峰值對(duì)應(yīng)的渡越時(shí)間點(diǎn),從而防止串?dāng)_現(xiàn)象和錯(cuò)誤測(cè)距信息的產(chǎn)生。
能量特性的評(píng)價(jià)指標(biāo)為激勵(lì)序列能量值及能量效率。超聲測(cè)距系統(tǒng)的激勵(lì)序列所攜帶的能量越大,可測(cè)量的距離范圍越大;回聲序列的能量越高就越容易被接收端檢測(cè)到;能量效率越高,測(cè)距系統(tǒng)的能量利用率越高。
定義信號(hào)v的能量為
其中,vi(i=1,2,…,N)為信號(hào) v的第 i個(gè)采樣點(diǎn)取值,N為采樣點(diǎn)數(shù),RE為等效電阻。
將能量效率η定義為回聲序列與激勵(lì)序列的能量之比,即
其中,ER為回聲序列能量值,ET為激勵(lì)序列能量值。在測(cè)距過程中,激勵(lì)序列能量越高,且能量效率越高,才能保證系統(tǒng)的有效測(cè)距范圍越大。
綜合考慮回聲序列相關(guān)度,激勵(lì)序列與回聲序列的能量/能量效率的性能分析比較結(jié)果,從中可以得出Gold序列與BFSK調(diào)制方式的組合在各方面的綜合性能最好。所以本文設(shè)計(jì)的超聲測(cè)距系統(tǒng)中選用Gold序列與BFSK調(diào)制結(jié)合的脈沖編碼數(shù)字調(diào)制序列激勵(lì)六路超聲換能器。圖1和圖2分別為Gold編碼BFSK脈沖激勵(lì)序列與其回波序列。
圖1 Gold編碼BFSK脈沖激勵(lì)序列
圖2 Gold編碼BFSK回聲序列
超聲測(cè)距中獲取渡越時(shí)間的關(guān)鍵在于準(zhǔn)確地估計(jì)回聲信號(hào)起始位置。本文采用相關(guān)檢測(cè)法估計(jì)渡越時(shí)間。該方法是指超聲測(cè)距系統(tǒng)接收端的回聲信號(hào)與預(yù)先存儲(chǔ)的標(biāo)準(zhǔn)回波信號(hào)進(jìn)行匹配濾波,進(jìn)而確定渡越時(shí)間。假設(shè)參考信號(hào)為x(t),回聲信號(hào)為y(t),那么它們之間的互相關(guān)函數(shù)定義為:
當(dāng)互相關(guān)函數(shù)取得最大值的時(shí)候,τ的取值即為渡越時(shí)間。但是由于相關(guān)算法計(jì)算量大,計(jì)算時(shí)間較長,導(dǎo)致超聲測(cè)距系統(tǒng)的實(shí)時(shí)性差。
為了簡化在FPGA中計(jì)算的復(fù)雜度,加快測(cè)距系統(tǒng)實(shí)時(shí)性,應(yīng)用了過零極化相關(guān)算法[11]。該算法先將模擬回波極化為二值序列,這樣就將普通相關(guān)算法轉(zhuǎn)化為極化相關(guān)算法,即用同或、加法運(yùn)算代替模擬相關(guān)復(fù)雜的卷積運(yùn)算。
對(duì)于兩個(gè)離散時(shí)間序列f1(k),f2(k),它們之間的互相關(guān)函數(shù)可以定義為如下:
而f1(k)的自相關(guān)函數(shù)可以定義為:
為了進(jìn)一步簡化計(jì)算量,該算法提出針對(duì)數(shù)據(jù)段進(jìn)行運(yùn)算的思想,而不是針對(duì)數(shù)據(jù)位進(jìn)行運(yùn)算。首先對(duì)數(shù)據(jù)塊進(jìn)行劃分,其塊之間的邊界點(diǎn)就是本地碼(標(biāo)準(zhǔn)回波信號(hào))數(shù)據(jù)突變時(shí)刻點(diǎn),由1變0或0變1的時(shí)刻點(diǎn),因此把此數(shù)據(jù)突變時(shí)刻稱為過零時(shí)刻。假設(shè)x0表示本地碼數(shù)據(jù),y(k)表示k時(shí)刻與本地碼進(jìn)行相關(guān)運(yùn)算的數(shù)據(jù),整個(gè)本地碼x0中按照上述定義劃為M段,則在k時(shí)刻x0和y(k)的相關(guān)結(jié)果和在(k-1)時(shí)刻x0和y(k-1)的相關(guān)結(jié)果的關(guān)系可表示為:
其中,Rxy(k)表示 k時(shí)刻 x0和y(k)的相關(guān)結(jié)果;表示k時(shí)刻第i個(gè)數(shù)據(jù)段最左端的數(shù)據(jù)位和y(k)最左端的數(shù)據(jù)位作同或運(yùn)算;表示(k-1)時(shí)刻第M個(gè)數(shù)據(jù)段最右端的數(shù)據(jù)位和y(k-1)最右端的數(shù)據(jù)位作同或運(yùn)算。從上式中可以看出,如果已知(k-1)時(shí)刻的相關(guān)結(jié)果,只需在k時(shí)刻對(duì)本地碼x0的第一位數(shù)據(jù)、最后一位數(shù)據(jù)和過零時(shí)刻點(diǎn)的數(shù)據(jù)與待相關(guān)信號(hào)y的對(duì)應(yīng)位數(shù)據(jù)作同或運(yùn)算,即可求出k時(shí)刻的相關(guān)結(jié)果。通過理論與實(shí)驗(yàn)驗(yàn)證,過零極化相關(guān)算法與直接相關(guān)算法相比計(jì)算結(jié)果幾乎相同[9],但過零極化相關(guān)只需在過零時(shí)刻,本地碼的最左端以及最右端進(jìn)行運(yùn)算,運(yùn)算量減少了90%,大大減少FPGA的計(jì)算量。
本測(cè)距系統(tǒng)中回波信號(hào)時(shí)間長度為2 ms,采樣頻率為1 MHz,采樣后得到2 000個(gè)回波數(shù)據(jù),這2 000個(gè)數(shù)據(jù)存儲(chǔ)在FPGA中。如果采用一般極性相關(guān)算法,那么需要對(duì)這2 000個(gè)采樣數(shù)據(jù)逐位進(jìn)行計(jì)算,這要占用FPGA中大量的邏輯模塊資源。而采用過零極化相關(guān)算法,只需要找出過零時(shí)刻,采樣數(shù)據(jù)最左端和最右端的數(shù)據(jù)(約為200個(gè))進(jìn)行計(jì)算,運(yùn)算量大大減少,并且極大減少FPGA中存儲(chǔ)器資源和邏輯模塊資源的使用。
本文設(shè)計(jì)的無串?dāng)_超聲測(cè)距系統(tǒng)由六路相互獨(dú)立的測(cè)距單元組成,原理如圖3所示。每一路測(cè)距單元?jiǎng)t由FPGA數(shù)字處理模塊和超聲收發(fā)電路及信號(hào)調(diào)理電路兩大部分組成。其中FPGA數(shù)字處理模塊控制超聲收發(fā)電路發(fā)射與接收超聲波,信號(hào)調(diào)理電路則對(duì)超聲回波進(jìn)行濾波、放大、幅值調(diào)節(jié),最后將其轉(zhuǎn)換為數(shù)字信號(hào)送入FPGA數(shù)字處理模塊中與參考信號(hào)進(jìn)行過零極化相關(guān)運(yùn)算,識(shí)別回波并捕獲渡越時(shí)間,進(jìn)而計(jì)算出超聲換能器到障礙物的距離。
FPGA把每路測(cè)距單元計(jì)算得到的障礙物距離信息通過RS-232接口,傳輸?shù)缴衔粰C(jī),然后障礙物距離信息顯示在用戶使用界面。
圖3 無串?dāng)_超聲測(cè)距系統(tǒng)整體示意圖
圖4 單路超聲收發(fā)電路及調(diào)理電路框圖
超聲收發(fā)電路及信號(hào)調(diào)理電路是由發(fā)射/接收一體電路、濾波電路、自增益電路與極化電平轉(zhuǎn)換電路組成,如圖4所示。本系統(tǒng)設(shè)計(jì)采用SensComp公司生產(chǎn)的600系列靜電超聲換能器。由于從FPGA發(fā)射出來的激勵(lì)信號(hào)功率太小,無法直接激勵(lì)超聲換能器。激勵(lì)信號(hào)需通過以變壓器為核心的功率放大電路進(jìn)行放大,得到由200 V直流偏置和200 V交流電壓疊加而成的驅(qū)動(dòng)電壓,從而激勵(lì)超聲換能器發(fā)出超聲波。為了使硬件結(jié)構(gòu)緊湊,系統(tǒng)采用超聲收/發(fā)一體結(jié)構(gòu),通過 FPGA控制光電開關(guān)AQW216切換超聲換能器的發(fā)射與接收狀態(tài)。
超聲回波在接收過程中不可避免地引入外部環(huán)境噪聲,因此首先對(duì)其進(jìn)行濾波處理。由于系統(tǒng)采用的超聲換能器工作頻帶在40 kHz~70 kHz,所以采用MAX275設(shè)計(jì)了該頻帶范圍的帶通濾波電路。
眾所周知,超聲波在介質(zhì)傳輸過程中會(huì)呈指數(shù)形式衰減,且傳播距離越長衰減越大,為此,本文使用了基于PID的自增益電路[9],它的作用是根據(jù)回波幅值的大小,自適應(yīng)地調(diào)節(jié)放大倍數(shù),使來自不同距離的回波信號(hào)能夠與參考信號(hào)在波形上盡可能相似。這樣回波信號(hào)在FPGA中與參考信號(hào)進(jìn)行過零極化相關(guān)計(jì)算得到的結(jié)果更準(zhǔn)確。超聲收發(fā)電路及信號(hào)調(diào)理電路的細(xì)節(jié)可參考文獻(xiàn)[9-10]。
回波信號(hào)經(jīng)自增益電路之后仍然是模擬信號(hào)。為了滿足過零極化相關(guān)算法對(duì)過零點(diǎn)數(shù)據(jù)的需要,系統(tǒng)采用遲滯比較器和開關(guān)管電路對(duì)其進(jìn)行極化處理和電平轉(zhuǎn)換,從而得到滿足FPGA電平標(biāo)準(zhǔn)的數(shù)字信號(hào),用于FPGA的后續(xù)處理和計(jì)算。
本測(cè)距系統(tǒng)中的FPGA主要完成3個(gè)工作,一是儲(chǔ)存并發(fā)送六路含有獨(dú)特標(biāo)識(shí)的脈沖編碼數(shù)字調(diào)制激勵(lì)序列;二是對(duì)六路經(jīng)硬件系統(tǒng)處理后的回波信號(hào)與本地碼進(jìn)行相關(guān)運(yùn)算,得到距離信息;三是在計(jì)算距離信息的同時(shí)將其通過RS-232接口傳輸?shù)缴衔粰C(jī),在用戶使用界面顯示。為了協(xié)調(diào)好六路測(cè)距單元正常工作,使其得到正確測(cè)距結(jié)果,采用有限狀態(tài)機(jī)的設(shè)計(jì)思想對(duì)其進(jìn)行管理。將FPGA內(nèi)部所要完成的任務(wù)分為4個(gè)狀態(tài),分別為State1,State2,State3和State4。其中State1為空狀態(tài)。具體工作分配為:
(1)State2狀態(tài)的工作是系統(tǒng)初始化。
(2)State3狀態(tài)的工作是發(fā)送脈沖編碼數(shù)字調(diào)制激勵(lì)序列。
(3)State4狀態(tài)的工作是回波識(shí)別,計(jì)算距離信息并將其傳送到用戶使用界面上。
在編程中,單獨(dú)設(shè)置3個(gè)完成標(biāo)志位State2_Ready、State3_Ready和 State4_Ready。當(dāng)且僅當(dāng)全部六路測(cè)距單元都完成初始化的工作之后,State2_Ready變?yōu)榈碗娖?,State3_Ready處于高電平狀態(tài),用于觸發(fā)State3工作;當(dāng)且僅當(dāng)全部六路測(cè)距單元都完成發(fā)送各自脈沖編碼數(shù)字調(diào)制激勵(lì)序列的工作之后,State4_Ready處于高電平狀態(tài),用于觸發(fā)State4工作。以此來保證FPGA內(nèi)部工作正常、有序地執(zhí)行。
系統(tǒng)具體的工作流程如下:
程序編譯成功之后,將程序下載到FPGA芯片中(芯片選用的是Altera公司的EP2C35F484C8),系統(tǒng)自動(dòng)進(jìn)入初始化環(huán)節(jié)。FPGA中的管腳Sign_Control輸出高電平,開關(guān)控制電路接收到高電平控制信號(hào),則控制發(fā)射/接收一體電路處于超聲波發(fā)射狀態(tài)。這時(shí),F(xiàn)PGA中的管腳Sign_Transmit輸出脈沖編碼數(shù)字調(diào)制激勵(lì)序列,超聲換能器開始發(fā)射超聲波。超聲波發(fā)射結(jié)束后,F(xiàn)PGA中的管腳Sign_Control輸出低電平,開關(guān)控制電路接到這個(gè)低電平控制信號(hào)后,將控制發(fā)射/接收一體電路處于回聲接收狀態(tài),等待回波信號(hào)的到來。
超聲換能器接收回聲信號(hào)后,通過信號(hào)調(diào)理電路的處理,從而得到數(shù)字信號(hào)。這個(gè)信號(hào)通過管腳InData進(jìn)入回波識(shí)別模塊進(jìn)行匹配處理。基于相關(guān)判別法判斷本地碼與接收的回波信號(hào)是否相關(guān),從而確定回波信號(hào)是否為自身回波。這種方法也稱為回波識(shí)別算法,具體步驟為:
第1步 將回波信號(hào)送入FPGA的移位寄存器中;
第2步 將回波信號(hào)與預(yù)存在ROM中的本地碼進(jìn)行過零極化相關(guān)運(yùn)算;
第3步 將此計(jì)算結(jié)果與預(yù)設(shè)的閾值比較。如果計(jì)算結(jié)果大于閾值,那么說明此回波信號(hào)為自身換能器發(fā)射超聲波的回波;否則,不是自身回波。其中閾值的選取是通過大量的實(shí)驗(yàn)研究而得到的。
第4步 捕獲相關(guān)運(yùn)算峰值對(duì)應(yīng)的時(shí)間點(diǎn),計(jì)算渡越時(shí)間,得出距離值。
在系統(tǒng)計(jì)算距離信息的同時(shí),還將已得到的距離信息通過RS-232接口,傳輸?shù)缴衔粰C(jī),在用戶使用界面顯示。這樣用戶可以在使用界面上實(shí)時(shí)地得到距離信息。圖5給出了FPGA的工作流程圖。
當(dāng)以上內(nèi)容完成后,系統(tǒng)會(huì)自動(dòng)進(jìn)入State3狀態(tài),繼續(xù)發(fā)射超聲波,一直循環(huán)下去。如果外部系統(tǒng)指示信號(hào)突然變?yōu)闊o效,或者由于不可預(yù)測(cè)的原因狀態(tài)機(jī)轉(zhuǎn)入了不確定狀態(tài),那么FPGA系統(tǒng)會(huì)在內(nèi)部時(shí)鐘的下一時(shí)刻到來后,自動(dòng)進(jìn)入State1狀態(tài)。這樣設(shè)計(jì)可以使系統(tǒng)工作更為穩(wěn)定,容錯(cuò)性更好。
圖5 FPGA工作流程圖
圖6給出了本文設(shè)計(jì)的六路無串?dāng)_超聲測(cè)距儀原型樣機(jī)圖?;诖嗽蜆訖C(jī),開展了無串?dāng)_及有串?dāng)_兩種情況下的測(cè)距實(shí)驗(yàn)。
圖6 六路無串?dāng)_超聲測(cè)距儀原型樣機(jī)
當(dāng)六路超聲測(cè)距系統(tǒng)的各個(gè)測(cè)距單元相互獨(dú)立時(shí),如圖7所示,即測(cè)距時(shí)只有一路超聲測(cè)距單元向障礙物發(fā)射超聲波。圖7中障礙物采用的是表面平整光滑的有機(jī)玻璃,對(duì)聲音的反射能力強(qiáng)。
圖7 超聲換能器與障礙物相對(duì)位置圖
實(shí)驗(yàn)的具體實(shí)施方法如下:超聲換能器發(fā)射面始終垂直于障礙物,然后不斷改變障礙物與超聲換能器之間的距離,并從用戶使用界面上讀取每次距離變化后的數(shù)據(jù)結(jié)果。由于六路測(cè)距數(shù)據(jù)量較大,我們?cè)谶@里取的是六路測(cè)距結(jié)果的平均值,如圖8所示;測(cè)距結(jié)果的絕對(duì)誤差和相對(duì)誤差如圖9所示。
圖8 實(shí)際值與被測(cè)距離的關(guān)系圖(無串?dāng)_)
圖9 誤差與被測(cè)距離的關(guān)系圖(無串?dāng)_)
從圖8和圖9中可以看出,在相互獨(dú)立的超聲測(cè)距實(shí)驗(yàn)中,測(cè)量的范圍為350 mm~4200 mm,測(cè)量的絕對(duì)誤差小于10 mm,相對(duì)誤差在2%之內(nèi)。當(dāng)距離在350 mm~500 mm之間,由于接近超聲換能器的測(cè)量盲區(qū),測(cè)量的誤差反而比距離在500 mm~2 000 mm的誤差大。距離在500 mm~3 000 mm之內(nèi)的測(cè)量精度很高,在測(cè)量距離超過2500 mm后,測(cè)量誤差隨著距離的增加而增加。這說明本文的超聲測(cè)距系統(tǒng)的最佳測(cè)量范圍是500 mm到3 000 mm之間,能夠滿足移動(dòng)機(jī)器人避障需要。
本文中產(chǎn)生串?dāng)_的方法是目前發(fā)生串?dāng)_現(xiàn)象中最極端的一種方式:將六路超聲測(cè)距單元分為3組,每組由2路超聲測(cè)距單元組成。在每組實(shí)驗(yàn)中,將2個(gè)超聲換能器相對(duì)放置,固定其中一個(gè)超聲換能器,而移動(dòng)另外一個(gè),并且在移動(dòng)過程中始終保持2個(gè)換能器之間位置不變且中心在同一個(gè)水平面內(nèi),如圖10所示。3組測(cè)距結(jié)果的平均值如圖11所示,測(cè)距結(jié)果的絕對(duì)誤差和相對(duì)誤差如圖12所示。
從圖11和圖12中可以看出,在相互串?dāng)_的超聲測(cè)距實(shí)驗(yàn)中,測(cè)量的絕對(duì)誤差小于10 mm,相對(duì)誤差在2.5%之內(nèi)。通過圖11、圖12與圖8、圖9對(duì)比,可以發(fā)現(xiàn)在有串?dāng)_發(fā)生的情況下測(cè)距結(jié)果與無串?dāng)_情況的結(jié)果幾乎相同。這說明本測(cè)距系統(tǒng)能很好保證測(cè)距時(shí)候不受串?dāng)_信號(hào)的干擾。
圖10 同組超聲換能器之間相對(duì)位置圖
圖11 實(shí)際值與被測(cè)距離的關(guān)系圖(有串?dāng)_)
圖12 誤差與被測(cè)距離的關(guān)系圖(有串?dāng)_)
另外,在以上兩組實(shí)驗(yàn)中,測(cè)距系統(tǒng)發(fā)射激勵(lì)信號(hào)需要2 ms。當(dāng)測(cè)量最遠(yuǎn)距離420 cm時(shí),超聲波從發(fā)射到返回超聲換能器需要大約25 ms(其中假設(shè)聲速為340 m/s);從回波信號(hào)進(jìn)入FPGA中進(jìn)行處理到得出正確距離信息值最多需要53 ms(根據(jù)FPGA內(nèi)部時(shí)鐘信號(hào)測(cè)算得出的結(jié)果),所以從測(cè)距系統(tǒng)發(fā)射激勵(lì)信號(hào)到得到距離信息值的最多需要80 ms。說明此測(cè)距系統(tǒng)具有很好的實(shí)時(shí)性,在距離改變之后馬上能捕捉到新的距離信息值,能夠輔助機(jī)器人導(dǎo)航、識(shí)別周圍環(huán)境信息。綜合以上兩組數(shù)據(jù)的分析,說明本文的六路無串?dāng)_超聲測(cè)距系統(tǒng)具有可行性和實(shí)用性。
針對(duì)移動(dòng)機(jī)器人超聲測(cè)距系統(tǒng)中存在的測(cè)量精度低和串?dāng)_問題,本文在前期有關(guān)超聲硬件電路設(shè)計(jì)及編碼激勵(lì)研究的基礎(chǔ)上,給出了一個(gè)基于FPGA的六路無串?dāng)_超聲測(cè)距系統(tǒng)的設(shè)計(jì)與實(shí)施方案,并研制了原型實(shí)驗(yàn)樣機(jī)?;谠蜆訖C(jī),進(jìn)行了無串?dāng)_及有串?dāng)_兩種情況的測(cè)距實(shí)驗(yàn),結(jié)果表明即使在串?dāng)_發(fā)生的情況下,所設(shè)計(jì)的測(cè)距系統(tǒng)也可在35 cm~420 cm的范圍內(nèi)實(shí)現(xiàn)10 mm的測(cè)距精度。本文所設(shè)計(jì)的系統(tǒng)可用于多個(gè)超聲換能器同時(shí)工作的場合,在滿足測(cè)距精度的前提下可有效提高工作效率。
致謝
此課題從立項(xiàng)到結(jié)題歷時(shí)8年,期間多位碩士生及博士生參與了此課題的研究并做出了自己的貢獻(xiàn),他們是張躍、梁瓊、姚鳳娟、郝強(qiáng)、蘭少瑩、李根旺、彭涵陽、姚振靜、宋宇龍、楊雪、張姣姣,在此一并表示感謝。
[1] J?rg K W,Berg M.Sophisticated Mobile Robot Sonar Sensing with Pseudo-Random Codes[J].Robotics and Autonomous Systems,1998,25(3-4):241-251.
[2] Parrilla M,Anaya J,F(xiàn)risch C.Digital Signal Processing Techniques for High Accuracy Ultrasonic Range Measurements[J].IEEE Transactions on Instrumentation and Measurement,1991,40(4):759-763.
[3] Huang S S,Huang C F,Huang K N,et al.A High Accuracy Ultrasonic Distance Measurement System Using Binary Frequency Shift-Keyed Signal and Phase Detection[J].Review of Scientific Instruments,2002,73(10):3671-3677.
[4] 姚振靜.超聲擴(kuò)頻測(cè)距脈沖編碼激勵(lì)與渡越時(shí)間估計(jì)[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2010.
[5] Yao Z J,Meng Q H,Zeng M.Improvement in the Accuracy of Estimating the Time of Flight in an Ultrasonic Ranging System Using Multiple Square-Root Unscented Kalman Filters[J].Review of Scientific Instruments,2010,81(10):1-7.
[6] 黃增榮,秦會(huì)斌,黃博志,等.超聲測(cè)距中的偽隨機(jī)碼渡越時(shí)間的捕獲[J].傳感技術(shù)學(xué)報(bào),2006,19(3):843-846.
[7] 葛萬成,吳鳳萍.兩步相關(guān)法高抗干擾超聲波距離測(cè)量技術(shù)的研究[J].儀器儀表學(xué)報(bào),2002,23(3):253-256.
[8] 潘仲明,簡盈,王躍科.基于兩步相關(guān)法的大量程超聲波測(cè)距技術(shù).電子測(cè)量與儀器學(xué)報(bào),2006,20(5):73-76.
[9] 林圃.無串?dāng)_超聲測(cè)距系統(tǒng)硬件電路設(shè)計(jì)與建模[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2008.
[10]李根旺.無串?dāng)_超聲測(cè)距系統(tǒng)硬件設(shè)計(jì)與激勵(lì)方法[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2009.
[11]彭涵陽.無串?dāng)_超聲測(cè)距系統(tǒng)的激勵(lì)方法及基于FPGA的設(shè)計(jì)與實(shí)現(xiàn)[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2010.
[12] Fortuna L,F(xiàn)rasca M,Rizzo A.Chaotic Pulse Position Modulation to Improve the Efficiency of Sonar Sensors[J].IEEE Transactions on Instrumentation and Measurement,2003,52(6):1809-1814.
[13] Ure?n J,Mazo M,García J J,et al.Correlation Detector Based on a FPGA for Ultrasonic Sensors[J].Microprocessors and Microsystems,1999,23(1):25-33.
[14] Hernández A,Ure?na J,GARCíA J J.Ultrasonic Ranging Sensor Using Simultaneous Emissions from Different Transducers[J].IEEE Transactions on Ultrasonic,F(xiàn)erroelectrics and Frequency Control,2004,51(12):1660-1670.
[15] Nakahira K,Kodama T,F(xiàn)uruhashi T,et al.Design of Digital Polarity Correlators in a Multiple-User Sonar Ranging System[J].IEEE Transactions on Instrumentation and Measurement,2005,54(1):305-310.
[16]程曉暢,蘇紹景,王躍科,等.偽隨機(jī)碼超聲擴(kuò)頻測(cè)距系統(tǒng)設(shè)計(jì)與算法[J].測(cè)試技術(shù)學(xué)報(bào),2007,21(1):79-83.
[17]楊斌虎.偽隨機(jī)序列相關(guān)的超聲波測(cè)距系統(tǒng)研究[D].太原:太原理工大學(xué),2004.
[18]孟慶浩,蘭少瑩,姚振靜,等.優(yōu)化偽隨機(jī)脈沖位置調(diào)制序列激勵(lì)的無串?dāng)_超聲測(cè)距系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2008,21(9):1645-1649.
[19] Meng Q H,Lan S Y,Yao Z J,et al.Real-Time Noncrosstalk Sonar System by Short Optimized Pulse Position Modulation Sequences[J].IEEE Transactions on Instrumentation and Measurement,2009,58(10):3442-3449.
[20]楊雪.脈沖編碼激勵(lì)超聲擴(kuò)頻測(cè)距系統(tǒng)性能分析[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院,2011.