尚君瑩,田學民,陳潔萌
(河北工業(yè)大學 天津 300400)
隨著科技的迅速發(fā)展,激光因為其單色性高,方向性高,相干性好,在測距方面得到了很好的發(fā)展。激光測距技術(shù)綜合了激光、光學、電子學、光電子學、精密測量儀器以及計算機等知識[6],因為它具有測量精度高、范圍廣,能都實驗非接觸測量,不易受電磁干擾等優(yōu)點而被廣泛應用于各領(lǐng)域[7]。本文主要研究基于FPGA的脈沖式激光測距系統(tǒng)[8],既適長距離測量也適用于短距離測量,并且有較高的測量精度,并研究了脈沖激光測距提高測量精度的主要算法。
脈沖激光測距利用了激光脈沖持續(xù)時間短、瞬時功率大的特點,通過接收被測目標的反射信號,進行距離測量[4-5]。由脈沖激光器向目標發(fā)射一持續(xù)時間很短的單次激光脈沖或激光脈沖串,有一部分能量會被反射回來,被反射回來的脈沖激光稱為回波,回波返回由光電探測器接收,計數(shù)器測量激光脈沖到達目標并由目標返回到接收器的往返時間,由此計算目標的距離。
設C為光在空氣中的傳播速度,T為激光脈沖往返飛行時間,L為待測的單程距離,則結(jié)果可用下面的式子表示:L=1/2CT,由于光速很大,所以要求T的精度要很高才能提高結(jié)果的精度。
根據(jù)激光脈沖測距的原理,脈沖激光測距系統(tǒng)主要分為3部分:激光發(fā)射模塊、激光接收模塊、回波檢測定時模塊和時間間隔測量模塊。如圖1所示的激光脈沖測距距系統(tǒng)的原理框圖,主要的測距流程為:由外部晶振向FPGA內(nèi)提供外部輸入時鐘,通過FPGA內(nèi)部的鎖相環(huán)倍頻后產(chǎn)生全局時鐘頻率,達到200~300 MHz,并將全局時鐘頻率作為計數(shù)模塊時鐘頻率。系統(tǒng)上電后開始測距,由FPGA內(nèi)部的脈沖信號發(fā)生器產(chǎn)生激勵脈沖信號,驅(qū)動激光發(fā)射模塊發(fā)射出一串脈沖激光,利用分光鏡將脈沖信號分為兩路,一路被取回進入回波檢測定時模塊,進行檢測,計數(shù)器開始計數(shù)定時,作為開始時刻,另一路射向目標物,反射回來形成回波信號再進入回波檢測定時模塊,進行檢測,計數(shù)器停止計數(shù),作為結(jié)束時刻,然后時間間隔測量模塊測量出開始時刻與結(jié)束時刻的差值,作為脈沖信號的飛行時間,利用公式計算出目標距離。
當觸發(fā)信號脈沖與回波信號脈沖的上升沿或者下降沿的時間間隔小于幾個納米,傳統(tǒng)的測量脈沖的方法不能適用,脈沖越窄所需的計數(shù)器時鐘頻率越高,對芯片的性能要求也越高,為了達到較高的精度,設計時采用了FPGA芯片來實現(xiàn)回波信號的高速采集與數(shù)據(jù)處理,有效地提高了飛行時間的測量精度。
圖1 激光脈沖測距系統(tǒng)原理框圖Fig.1 Principle diagram of laser pulse ranging
FPGA(Field Programmable Gate Arra),即現(xiàn)場可編程門陣列,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。
隨著FPGA芯片的的不斷發(fā)展,系統(tǒng)時鐘頻率也在不斷提高,在一定程度上幫助了激光測距系統(tǒng)精度的提高,本文的脈沖激光測距系統(tǒng)使用的是ALTERA公司的Cyclone系列de EP1C12Q240I7作為主控芯片,它具有豐富的可編程邏輯單元,采用240腳的 PQFP封裝,裝有173個IO接口,提供12 060個 LEs,52個 M4K RAM Block,一共可以提供239616BIT的RAM,另外芯片內(nèi)還帶有2個鎖相環(huán),可以提供穩(wěn)定可靠的時鐘信號。
激光脈沖定距算法直接影響著定距系統(tǒng)的精度,本文系統(tǒng)研究了激光脈沖測距系統(tǒng)的相關(guān)算法,結(jié)合 FPGA開發(fā)的特點,分模塊對算法進行設計。主要研究的難點主要分為兩點,一是回波檢測定時模塊的研究,激光脈沖信號從目標物反射回來,夾雜著很多噪音,脈沖激光測距系統(tǒng)在工作時會受到很多噪聲的影響,如果信號較弱,很容易夾雜在噪聲中分辨不出來,嚴重影響回波信號的信噪比,導致激光測距的精度受到影響。二是時間間隔的測量,開始信號與回波信號到達的時間間隔也是影響脈沖激光測距系統(tǒng)精度的重要的一方面,采用合適的算法,最大限度的提高測量精度。
在回波檢測中主要的噪聲有背景噪聲、熱噪聲和散粒噪聲。背景噪聲主要是指太陽光,當太陽光可以直接進入接收模塊式,會對回波信號產(chǎn)生很大的影響,因此,為了正常的進行測量工作,利用激光的單色性好,在接收模塊加入濾光片,將脈沖激光波長以外的所有光波進行濾除。熱噪聲主要是指放大電路和光電探測器等帶來的噪聲。散粒噪聲是由光電子不規(guī)則發(fā)射引起的噪聲。因此為了提高測量精度,需要對回波信號進行精確檢測?;夭z測的方法很多,國內(nèi)常規(guī)的回波檢測方法為固定閾值檢測法,本課題只要檢測出回波信號對其定時,確定起止時刻,所以這個方法很適用,將回波信號與設定的閾值進行比較,低于閾值的回波信號被淘汰,高于閾值的回波信號被保留,然而收到各種因素的影響,如果閾值設定的太低,在環(huán)境不好的情況下不能正常測量,因此閾值不能設定太低,本文將回波信號的脈沖幅度的二分之一作為閾值。當連續(xù)的10個回波采樣點超過閾值,認為回波信號到達,再進行定時。
前面主要研究的回波檢測的算法,接著就是時間間隔的測量也就是數(shù)字脈沖寬度的測量,時間間隔測量主要是開始信號的脈沖激光的上升沿或下降沿與回波信號的上升沿與下降沿的時間間隔。最傳統(tǒng)最簡單的方法就是計數(shù)法,但是會存在著很大的誤差,脈沖激光測距的時序圖如圖2所示。
圖2 脈沖激光測距的時序圖Fig.2 Schematic diagram of pulsed laser randing
設脈沖激光測距系統(tǒng)的始終周期為T0,計數(shù)器測定的脈沖個數(shù)為N,T為待測的時間間隔,T1、T2分別是開始時刻和結(jié)束時刻的誤差,簡單的計數(shù)法會忽略T1、T2的值,產(chǎn)生一個Δ=T1-T2的誤差,因此得到的時間間隔為:
產(chǎn)生這種誤差的原因主要是技術(shù)脈沖的上升沿或下降沿與待測脈沖的上升沿或下降沿不一致,造成這種量化誤差。為了提高測量精度,解決量化誤差的問題,本文主要討論幾種解決方法,一是提高系統(tǒng)的時鐘頻率;二是對T1、T2兩個誤差進行量化。
提高系統(tǒng)的時鐘頻率,主要是利用FPGA內(nèi)部的PLL,對原始晶振頻率進行倍頻,由原來的50 MHz提高到200~300 MHz,大大的提高了系統(tǒng)的時鐘頻率,測量精度也會得到提高。因此,系統(tǒng)的時鐘頻率率與時間間隔測量精度成正比,頻率越低,精度越低。
對T1、T2進行量化,本文主要采用的是數(shù)字插值法,數(shù)字插值法主要是將時間間隔的測量分為粗測量和細測量兩個部分。如圖2所示,由于待測脈沖飛行時間和系統(tǒng)時鐘是異步的,首先采用粗測量的時鐘計數(shù)的方法求出N,然后將待測脈沖起始和結(jié)束端的隨機量分離出來,采用細測量算法進行測量,最后把結(jié)果插入到粗測量結(jié)果中進行補償,粗測量決定了測量系統(tǒng)的量程,精測量決定了測量的精度。精測量所采用的差值補償法主要有模擬內(nèi)插法、Vernier法、時間數(shù)字轉(zhuǎn)換法。
模擬內(nèi)插法主要是利用對電容充放電對T1、T2進行放大,再進行時鐘計數(shù),但也由于電容的充放電不穩(wěn)定,非線性因素影響大,導致實際的測量不穩(wěn)定。
Vernier法也叫游標法,主要是利用游標卡尺的原理對T1、T2進行測量。設游標振蕩器周期為TS,且TS比系統(tǒng)時鐘周期T0稍低,開始信號到達,游標振蕩器開始計數(shù),經(jīng)過n個脈沖后,與粗測量的脈沖上升沿同步,那么得到 T1=n×(TS-T0),同理,結(jié)束信號到達,與粗測量的脈沖信號同步時,經(jīng)過m個脈沖,得到 T2=m×(TS-T0)。
Vernier法雖然也能提高測量精度,分辨率為TS-T0,顯然降低了,但是它對系統(tǒng)的時鐘頻率要求很高,又有很高的精準度和穩(wěn)定性,實際應用性差。
時間數(shù)字轉(zhuǎn)換法又名為延遲線內(nèi)插法,也是將T1、T2重新測量,為全數(shù)字化測量,在FPGA中很容易實現(xiàn),隨著數(shù)字電路中延遲線的發(fā)展,時間數(shù)字轉(zhuǎn)換法在高精度測量中開始廣泛應用。一連串的輸出邏輯狀態(tài)隨輸入改變的邏輯緩沖門作為基本元件,延遲器件一般采用非門,與下面的D觸發(fā)器構(gòu)成一個延遲單元,理想狀態(tài)下每個延遲單元都有相同的延遲Tb,當脈沖信號到達時啟動緩沖門,當時鐘信號到達時,輸出D觸發(fā)器記錄的通過的緩沖門的個數(shù)n,得到:T1=n×Tb,同理通過記錄緩沖門 m,得到:T2=m×Tb。
圖3為時間數(shù)字轉(zhuǎn)換原理圖,每個緩沖門的輸出端都連接著D觸發(fā)器的一個輸入端,以便記錄邏輯緩沖門的輸出狀態(tài)。所有的D觸發(fā)器的C輸入端都并聯(lián)在一起,接收同一個結(jié)束信號。當結(jié)束信號到達時,D觸發(fā)器立即鎖存此時的輸出結(jié)果。測量結(jié)束,編碼電路接收了所有D觸發(fā)器的輸出信息,通過編碼電路得到測量結(jié)果。
圖3 延遲線法的原理框圖Fig.3 Principle diagram of relay puls method
目前時間數(shù)字轉(zhuǎn)換法主要是利用德國ACAM公司生產(chǎn)的時間數(shù)字轉(zhuǎn)換芯片TDC-GP2,單次測量分辨率為典型65ps,功耗超低,集成度高,測量靈活性高,是脈沖式激光測距非常理想的選擇。
文中簡單介紹了脈沖激光測距的原理,利用FPGA模塊化的原理,提出了改進方案,并研究了時間間隔測量的幾種算法,找到最有效的時間數(shù)字轉(zhuǎn)換法,充分利用FPGA的平臺,提高了測量的精度,這種方法不但適用于脈沖激光測距,也適合于其他高精度時間間隔測量系統(tǒng)。
[1]宋建輝,袁峰.脈沖激光測距中高精度時間間隔的測量[J].光學精密工程,2009,17(5):1046-1049.SONG Jian-hui,YUAN Feng.High precision time interval measurement in pulse laser ranging[J].Optics and Precision Engineering,2009,17(5):1046-1049.
[2]許沖.激光脈沖定距算法研究與FPGA實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2011.
[3]蔡紅霞,劉繼勇.基于FPGA脈沖激光測距高精度時間間隔的測量[J].計算機與數(shù)字工程,2013,41(11):1843-1845.CAI Hong-xia,LIU Ji-yong.Based on the FPGA pulse laser ranging precision time interval measurement[J].Computer&Digital Engineering,2013,41(11):1843-1845.
[4]馮志輝,劉恩海.基于FPGA延遲線插入法的半導體激光測距[J].光電工程,2010,37(4):54-59.FENG Zhi-hui,LIU En-hai.Semiconductor laser ranging based on FPGA delay line insertion method[J].Optoelectronic?Component,2010,37(4):54-59.
[5]馮國旭,常寶成.高精度激光測距技術(shù)研究[J].激光與紅外,2007,37(11):1138-1140.FENG Guo-xu,CHANG Bao-cheng.High precision laser ranging technology research[J].Laser&Infrared,2007,37(11):1138-1140.
[6]戴永江.激光雷達技術(shù)[M].北京:電子工業(yè)出版社,2010.
[7]楊坤濤.激光測試原理與技術(shù)[M].武漢:華中科技大學出版社,1999.
[8]沈娜,張祥金.基于FPGA的激光定距系統(tǒng)信號處理方案設計[J].激光雜志,2009,30(2):64-65.SHEN Na,ZHANG Xiang-jin.Design of signal processing scheme for laser fixed distance system based on FPGA[J].Lsaer Journal,2009,30(2):64-65.