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