楊佳敏,張丕狀
(中北大學(xué) 信息探測與處理技術(shù)研究所,山西 太原 030051)
伴隨著激光技術(shù)的不斷成熟和發(fā)展,激光測距技術(shù)由于其準確度高、 失真度小的優(yōu)點而得到了較為廣泛的應(yīng)用[1].為了提高測距系統(tǒng)的測距精度,降低噪聲的影響,本文設(shè)計了一種數(shù)字邏輯電路以實現(xiàn)相關(guān)鑒相法測距; 在采集過程中受外界因素的影響,能否采集存儲完整的有效信號一直是一個難題,對此本文采用一種新的觸發(fā)技術(shù)獲取可靠的信息.
將測距系統(tǒng)集成到采集卡上,既可以實時地測量距離,也可以將采集到的數(shù)據(jù)傳到計算機上進行分析,完善了系統(tǒng)功能,提高了采集卡的性價比[2].
本采集系統(tǒng)是為了實現(xiàn)位移的實時測量,數(shù)據(jù)的采集速率至少為20 Mb/s,經(jīng)過二次采樣將數(shù)據(jù)送入到FPGA進行位移的實時測量,同時對于高速海量的數(shù)據(jù)一般還需要將數(shù)據(jù)先進行本地存儲,然后將數(shù)據(jù)傳到上位機進行處理,如圖 1 所示.
圖 1 系統(tǒng)的硬件框圖Fig.1 System hardware block diagram
該系統(tǒng)為了滿足高速海量數(shù)據(jù)的存儲,采用DDR3 DRAM, 型號為MT4J64M16LA-187E, 容量為128 MByte, 16 bit總線Sparatan6 FPGA內(nèi)部帶有DDR3的硬核控制器MCB,根據(jù)需要通過MCB即可完成存儲器DDR3的控制; 此外,在上位機和采集卡之間通過PXI總線,由于PXI總線控制時序復(fù)雜,增加了整個系統(tǒng)的難度,所以采用PCI9052橋接芯片將PXI總線轉(zhuǎn)化為局部總線.
采用相位測距法實現(xiàn)測距.相位測距法采用激光調(diào)制的方法,通過測量載波調(diào)制頻率的相位,達到測量距離的目的,適用于中遠距離測距(一般在300 m~1 km),其測距精度受激光調(diào)制的相位測試精度和相位的調(diào)制頻率的限制,同時光電接收器的信號起伏和噪聲也嚴重影響測距的精度,要達到距離的高精度測量,必須提高系統(tǒng)的激光調(diào)制頻率和相位測量精度,增加系統(tǒng)對設(shè)備的性能要求,增加了系統(tǒng)的成本造價,增加了系統(tǒng)的成本造價修改[3].由于采用調(diào)制和差頻測相等技術(shù),相位測距法具有測量精度高的優(yōu)點,己經(jīng)廣泛應(yīng)用于精密測距場合.
相位測距利用發(fā)射的調(diào)制光和被目標反射的接收光之間光強的相位差包含的距離信息來實現(xiàn)對被測距離的測量[4].相位式測距的核心是測量反饋回路和接收回路兩路信號的相位差,然后利用相位差測距[5],如圖 2 所示.
圖 2 相位測距原理圖Fig.2 Phase ranging schematic
A點發(fā)射信號為
fT=ATcos(2πft0+φ0).
(1)
A1點接收時刻調(diào)制信號為
fL(t)=ALcos(2πft+2πft0+φ0).
(2)
接收信號與發(fā)射信號的相位差為
ψ=2πft+2πft0+φ0-(2πft0+φ0)=2πft.
(3)
被測距離L為
(4)
式中:f為信號頻率,光速c=3×108m/s.
測量相位差本質(zhì)上就是鑒相.鑒相器包括模擬鑒相器和數(shù)字鑒相器,由于數(shù)字鑒相器具有高精確度,實時性好的特點,所以采用數(shù)字鑒相電路,一般采用的數(shù)字鑒相法有: 相關(guān)分析鑒相法、 向量內(nèi)積鑒相法、 基于FFT數(shù)字鑒相法.采用相關(guān)鑒相法可以降低噪聲的影響,從而提高精度.本文對傳統(tǒng)的相關(guān)法做了一些改進.
設(shè)發(fā)射信號為
f1(t)=Asin(ωt+θ)+N1(t),
(5)
接收信號為
f2(t)=Bsin(ωt+θ+ψ)+N2(t).
(6)
令
(7)
則
f1(t+T/4)=Asin(ω(t+T/4)+θ)+N1(t)=
Acos(ωt+θ)+N1(t),
(8)
式中:ψ為相位差,N1(t)和N2(t)為噪聲信號.兩信號的相關(guān)函數(shù)為
(9)
(10)
(11)
(12)
鑒相信號和噪聲信號是不相關(guān)的,且不同噪聲信號也互不相關(guān),因此可以得到
(13)
(14)
則兩信號的相位差為
(15)
該算法將會用于后面的數(shù)字硬件進行實現(xiàn),所以需要轉(zhuǎn)化離散時間序列,相關(guān)分析鑒相法的離散時間序列可表示為
(16)
(17)
(18)
式中:N為n個周期的采集點數(shù),T為采樣周期,Ts為信號周期.
通過對相關(guān)分析法的研究,設(shè)計了FPGA可實現(xiàn)的硬件框圖,見圖 3.從圖中可以看出其主要由4部分構(gòu)成: 控制單元模塊,存儲器模塊,DSP(Digital Signal Process)運算模塊, 相位計算模塊.
通過控制單元提供的時鐘和使能信號,各部分協(xié)同工作.首先輸入的發(fā)射信號先經(jīng)過一個延時存儲器1對輸入信號進行延時,當延時存儲器延時了四分之周期個點時,控制單元使能延時存儲器1的讀動作,并且啟動DSP運算模塊1工作,同時使延時存儲器2的寫使能有效,在延時計數(shù)器延時N個周期的點時,使能延時存儲器的讀動作,并且啟動DSP運算模塊2,此時通過求算相位模塊就可以求得相位差.
FPGA內(nèi)部有DSP硬核資源,數(shù)據(jù)處理充分使用這些資源.DSP運算模塊對輸入發(fā)射信號和輸入接受信號求這兩個信號的相關(guān)函數(shù),然后將數(shù)據(jù)以并行的方式輸入到相位計算模塊.
圖 3 測距系統(tǒng)的硬件框圖Fig.3 Hardware block diagram of the ranging system
相位計算模塊是用來計算接受信號與發(fā)射信號的相位差的.采用CORDIC迭代算法[5],設(shè)計CORDIC迭代單元,采用的時鐘是系統(tǒng)時鐘的16倍頻,在該時鐘的驅(qū)動下,將前一級輸出,并作為下次本級的輸入,通過16次迭代實現(xiàn)相位的計算.
目前基于PXI的數(shù)據(jù)采集技術(shù)被廣泛應(yīng)用于工業(yè)控制中,所以數(shù)據(jù)采集相對來說較成熟.但是在以往的數(shù)據(jù)采集中大多都是對數(shù)據(jù)進行不斷地采集存儲[6],即使該系統(tǒng)中采用的是DDR3存儲芯片,但是存儲空間是有限的,并且在實驗過程中,外在因素會影響數(shù)據(jù)的有效性,于是提出一種觸發(fā)技術(shù)來解決上訴問題.
根據(jù)被采集信號的特點,在本系統(tǒng)中有3種觸發(fā)源: 外部觸發(fā),軟件觸發(fā),閾值觸發(fā).外部觸發(fā)是通過采集板上的觸發(fā)裝置產(chǎn)生觸發(fā)信號,觸發(fā)數(shù)據(jù)采集; 軟件觸發(fā)是由上位機產(chǎn)生的軟件觸發(fā)命令,開啟采集數(shù)據(jù)達到設(shè)置的采集長度時,停止采集; 閾值觸發(fā)則是根據(jù)FPGA實時測距的結(jié)果與設(shè)定的距離比較產(chǎn)生觸發(fā)信號[7].根據(jù)這幾種觸發(fā)方式的特點設(shè)計了如圖 4 所示的觸發(fā)模式的結(jié)構(gòu)框圖.這樣設(shè)計可以根據(jù)實際的需要采集信號,提高板卡系統(tǒng)性能的可靠性.
圖 4 觸發(fā)模式結(jié)構(gòu)圖Fig.4 Trigger mode structure
在實際的采集過程過,觸發(fā)信號并不能準確地在有效信號到來前就產(chǎn)生,在觸發(fā)信號與采集數(shù)據(jù)開始之間就會有一定的時間差,根據(jù)這個時間差可以分為: 負延遲,零延遲,正延遲觸發(fā),如圖 5~圖 7 所示.
圖 5 負延遲Fig.5 Negative delay
圖 6 零延遲Fig.6 Zero delay
圖 7 正延遲Fig.7 Positive delay
利用觸發(fā)信號控制被采集信號的采集開始時間,在閾值觸發(fā)中極容易發(fā)生,在觸發(fā)信號之前的數(shù)據(jù)丟失.為了解決存儲空間的有限性,保證采集有效數(shù)據(jù)的完整性,則采用負延遲觸發(fā).
當FPGA接收到上位機發(fā)送的啟動信號時,采集系統(tǒng)就開始工作,采集數(shù)據(jù)被存儲于DDR3存儲空間中,由于開始采集后,采集系統(tǒng)會一直采集數(shù)據(jù),但觸發(fā)信號的產(chǎn)生是不定時的,存儲空間是有限的,系統(tǒng)不能無限地存儲數(shù)據(jù),于是負延遲觸發(fā)需要采用循環(huán)存儲的方式來達到負延遲的目的,即數(shù)據(jù)量大于存儲容量時,存儲器重新從初始位置存儲,新的數(shù)據(jù)覆蓋掉原來的數(shù)據(jù)[8].
在觸發(fā)信號到來時,觸發(fā)控制模塊記錄觸發(fā)后的M個數(shù)據(jù),保留觸發(fā)之前的N個數(shù)據(jù).采樣完成后,將采樣結(jié)束地址傳給上位機,上位機根據(jù)采樣結(jié)束地址和采樣深度計算出采樣起始地址,根據(jù)該地址讀取存儲器中完整的數(shù)據(jù),將這些數(shù)據(jù)進行后處理[9].
通過多次實驗,從相位差實驗結(jié)果可以看出,平均誤差為0.373 4°.
測距平均誤差,即測距精度為
(19)
(20)
表 1 相位差實驗結(jié)果
在觸發(fā)模式測試中,通過上位機選擇不同的觸發(fā)模式,采樣深度,負延遲深度,測試方法同樣是Chipscope工具,抓取觸發(fā)有關(guān)信號,驗證這3種觸發(fā)方式是否能正確完成觸發(fā)[10].
在軟件觸發(fā)模塊測試中,首先通過上位機選擇軟件觸發(fā)模式,啟動采集卡; 然后軟件使能產(chǎn)生觸發(fā)信號.由圖 8 可以看出在FPGA接收到上位機發(fā)出的觸發(fā)信號,tri信號產(chǎn)生一個脈沖,觸發(fā)有效,在觸發(fā)事件發(fā)生后(如圖中黑色框所示),負延時計數(shù)器記到設(shè)定的延遲深度后停止計數(shù),此時,觸發(fā)結(jié)束標志信號overflow產(chǎn)生一個小的脈沖信號,說明軟件觸發(fā)控制模式可以有效觸發(fā).
圖 8 相位差為5°時的結(jié)果Fig.8 Results when the phase difference is 5°
在硬件觸發(fā)模塊測試中,首先通過上位機選擇硬件觸發(fā)模式,啟動采集卡; 然后采集卡外部產(chǎn)生一個觸發(fā)信號.由圖 9 可以看出在FPGA接收到采集卡發(fā)出的觸發(fā)信號,tri信號產(chǎn)生一個脈沖,觸發(fā)有效,在觸發(fā)事件發(fā)生后(如圖中黑色框所示),負延時計數(shù)器記到設(shè)定的延遲深度后停止計數(shù),此時,觸發(fā)結(jié)束標志信號overflow產(chǎn)生一個高電平信號,說明硬件觸發(fā)控制模式可以有效觸發(fā).
在閾值觸發(fā)模塊測試中,首先通過上位機選擇閾值觸發(fā)模式,啟動采集卡然后設(shè)定閾值,產(chǎn)生觸發(fā)信號.由圖 10 可以看出當實時測距的結(jié)果大于設(shè)定的距離閾值結(jié)果時,tri信號產(chǎn)生一個脈沖,觸發(fā)有效,說明閾值觸發(fā)控制模式可以有效觸發(fā).
圖 9 軟件觸發(fā)控制模塊測試Fig.9 Software trigger control module test
圖 10 外部觸發(fā)控制模塊測試Fig.10 External trigger control module test
圖 11 閾值觸發(fā)控制模塊測試Fig.11 Threshold trigger control module test
通過對測距精度分析和三種觸發(fā)模式進行反復(fù)試驗之后,可以看出該系統(tǒng)的測距精度可以達到厘米級別,三種觸發(fā)模式可以有效觸發(fā),增強了整個系統(tǒng)的可靠性,達到預(yù)期效果,對于實際的工業(yè)控制具有價值的意義.