張金,王伯雄,崔園園,柳建楠,張力新
(1.清華大學(xué) 精密測試技術(shù)及儀器國家重點(diǎn)實(shí)驗(yàn)室,北京100084;2.炮兵學(xué)院 電子工程教研室,安徽 合肥230031;3.唐山匯中儀表有限公司,河北 唐山063000)
飛行時(shí)間是指信號或者物體從發(fā)射端通過介質(zhì)到達(dá)接收端所經(jīng)歷的時(shí)間間隔長度,高精度的時(shí)間間隔測量在脈沖激光測距、精密聲學(xué)定位、高能物理等現(xiàn)代軍事、航空航天及科學(xué)實(shí)驗(yàn)領(lǐng)域有著廣泛應(yīng)用[1-2]。脈沖計(jì)數(shù)法具有測量范圍大、線性好等優(yōu)點(diǎn),是高分辨測時(shí)最簡單、最有效的方法,但是測時(shí)分辨率較低[3]。模擬內(nèi)插法理論上可以實(shí)現(xiàn)高分辨率,但測量過程耗時(shí)較長,易受干擾噪聲、溫度和非線性的影響[3]。Bowman[4]等設(shè)計(jì)了一種類似于千分尺微差測量原理的測時(shí)系統(tǒng),測時(shí)分辨率能夠達(dá)到50 ps.但該算法獲得兩個高穩(wěn)定度的脈沖對相當(dāng)困難。延遲內(nèi)插技術(shù)利用電子器件單元固定的延時(shí)作為標(biāo)尺來實(shí)現(xiàn)對飛行時(shí)間的測量。Szplet[6]等基于0.65 μm 的CMOS 工藝在現(xiàn)場可編程邏輯門陣?yán)?FPGA)的內(nèi)部,構(gòu)建差分延遲線,得到了LSB為100~200 ps 的測時(shí)系統(tǒng)。Zielinski[7]等采用Xilinx 公司Virtex 系列FPGA 芯片XCV300 實(shí)現(xiàn)的抽頭延遲線,最小分辨率為100 ps.延遲線法可以實(shí)現(xiàn)對微小時(shí)間間隔的測量,適用于連續(xù)測量,缺點(diǎn)是隨著測量分辨率的提高,要求延遲線長度越來越短,當(dāng)測量較大時(shí)間間隔時(shí),延遲線數(shù)量將大大增加[8]。多相采樣技術(shù)利用n 路同頻率,相位均勻分布的時(shí)鐘信號作為計(jì)數(shù)時(shí)鐘,能夠?qū)y量分辨率提高到參考時(shí)鐘Tclk的1/n,但該方法在FPGA 中實(shí)現(xiàn)較高倍頻時(shí)會導(dǎo)致相移分辨率的降低,高精度測量較困難[2]。
針對以上幾種方法的優(yōu)缺點(diǎn),本文提出了一種將脈沖計(jì)數(shù)法、相位延遲內(nèi)插技術(shù)相結(jié)合的回波飛行時(shí)間測量方法,并在Xilinx Virtex 5 平臺上實(shí)現(xiàn)了以該方法為核心的飛行時(shí)間測量系統(tǒng),具有動態(tài)測量范圍大,測量過程耗時(shí)短,測時(shí)精度較高等優(yōu)點(diǎn)。
工程上為實(shí)現(xiàn)飛行時(shí)間測量,通常將其轉(zhuǎn)換成兩個脈沖信號邊沿之間的時(shí)間間隔來完成,其測量原理[8]如圖1所示。被測時(shí)間由3 個部分組成,1)脈沖計(jì)數(shù)法得到的參考時(shí)鐘整數(shù)倍部分NTP,2)Start 信號上升沿與緊接著的參考時(shí)鐘上升沿之間的時(shí)間間隔Δt1,3)Stop 信號上升沿與緊接著的參考時(shí)鐘上升沿之間的時(shí)間間隔Δt2,設(shè)被測時(shí)間為t,有:
式中:TP為參考時(shí)鐘周期;t 為精確的待測回波飛行時(shí)間;NTP為脈沖計(jì)數(shù)法實(shí)際測得的飛行時(shí)間。Δt2-Δt1為計(jì)數(shù)量化誤差。
為提高時(shí)間測量精度,首先需要盡可能提高參考時(shí)鐘頻率,減小計(jì)數(shù)量化誤差TP;其次是采取用一定的時(shí)間插值算法精確測量非整數(shù)部分Δt1和Δt2的大小。
圖1 回波飛行時(shí)間測量原理示意圖Fig.1 Schematic diagram of echo time of flight measurement
基于FPGA 的高精度回波飛行時(shí)間測量系統(tǒng)以脈沖計(jì)數(shù)法為基礎(chǔ),通過相位延遲技術(shù)實(shí)現(xiàn)時(shí)間插值,提高時(shí)間測量精度,系統(tǒng)總體框圖如圖2所示。
圖2 基于FPGA 的高精度飛行時(shí)間測量系統(tǒng)框圖Fig.2 System block diagram of high precision time of flight measurement based on FPGA
脈沖計(jì)數(shù)法量化誤差TP取決于系統(tǒng)能提供的參考時(shí)鐘頻率,通過提高計(jì)數(shù)器時(shí)鐘頻率能直接提高測量精度。充分利用Xilinx FPGA 時(shí)鐘資源,借助數(shù)字時(shí)鐘管理/鎖相環(huán)技術(shù)(DCM/PLL)將33 MHz外時(shí)鐘轉(zhuǎn)換成594 MHz 的高頻、高穩(wěn)定度、低抖動時(shí)鐘,作為時(shí)間測量基準(zhǔn)參考時(shí)鐘,使得計(jì)數(shù)量化誤差減小到1.683 5 ns.但是要想實(shí)現(xiàn)百ps 級的分辨率,其計(jì)數(shù)頻率要高達(dá)GHz,信號進(jìn)入微波段,不僅難以產(chǎn)生,準(zhǔn)確性也無法保證,而且由于分布參數(shù)效應(yīng),GHz 的高頻計(jì)數(shù)器在普通電路中不易實(shí)現(xiàn)。為此設(shè)計(jì)雙邊沿計(jì)數(shù)器,能夠在不提高時(shí)鐘頻率的情況下將測時(shí)精度減小到計(jì)數(shù)量化誤差的一半TP/2.
單一的脈沖計(jì)數(shù)法無論采取何種措施,計(jì)數(shù)量化誤差總是存在。引入延遲單元對參考時(shí)鐘周期做相位內(nèi)插,得到n 路同頻不同相的參考時(shí)鐘分別驅(qū)動雙邊沿計(jì)數(shù)器,對含相位關(guān)系的n 路計(jì)數(shù)器輸出進(jìn)行數(shù)據(jù)處理,能夠進(jìn)一步提高測時(shí)精度。
傳統(tǒng)計(jì)數(shù)器僅對時(shí)鐘信號的上升沿或下降沿敏感,表現(xiàn)為單邊沿觸發(fā)計(jì)數(shù)。對于上升沿觸發(fā)的同步計(jì)數(shù)器而言,當(dāng)時(shí)鐘信號clk=1 時(shí),計(jì)數(shù)器處于計(jì)數(shù)狀態(tài);當(dāng)clk=0 時(shí),計(jì)數(shù)器處于保持狀態(tài),而下降沿觸發(fā)同步計(jì)數(shù)器情況剛好相反。如果將單邊沿觸發(fā)的計(jì)數(shù)器分別設(shè)計(jì)成上升沿觸發(fā)的偶數(shù)計(jì)數(shù)器和下降沿觸發(fā)的奇數(shù)計(jì)數(shù)器,并把兩個計(jì)數(shù)器并聯(lián),則兩個計(jì)數(shù)器在時(shí)鐘clk 的作用下交替處于計(jì)數(shù)狀態(tài)和保持狀態(tài)。最后,將奇、偶計(jì)數(shù)器的輸出端連接至數(shù)據(jù)選擇器,用clk 作為選通控制信號。這樣,當(dāng)clk=0 時(shí),奇計(jì)數(shù)器處于計(jì)數(shù)狀態(tài),偶計(jì)數(shù)器處于保持狀態(tài),數(shù)據(jù)選擇器輸出偶計(jì)數(shù)器數(shù)據(jù);當(dāng)clk=1時(shí),偶計(jì)數(shù)器處于計(jì)數(shù)狀態(tài),奇計(jì)數(shù)器處于保持狀態(tài),數(shù)據(jù)選擇器輸出奇計(jì)數(shù)器數(shù)據(jù)。于是,在clk 的控制下,輸出端得到完整的計(jì)數(shù)數(shù)據(jù)。這種并聯(lián)結(jié)構(gòu)的計(jì)數(shù)器在clk=0、1 時(shí)都能實(shí)現(xiàn)計(jì)數(shù),計(jì)數(shù)器的狀態(tài)在時(shí)鐘脈沖的上升沿和下降沿均可以改變,從而實(shí)現(xiàn)了雙邊沿觸發(fā)計(jì)數(shù)器的功能[9]。
根據(jù)上述雙邊觸發(fā)計(jì)數(shù)器的設(shè)計(jì)思想,在Xilinx 公司的FPGA 器件XC5VLX110T 上進(jìn)行了硬件實(shí)現(xiàn)。仿真與硬件驗(yàn)證結(jié)果表明,設(shè)計(jì)的雙邊沿觸發(fā)計(jì)數(shù)器具有正確的邏輯功能和實(shí)用價(jià)值。圖3是單邊沿觸發(fā)同步計(jì)數(shù)器與雙邊沿觸發(fā)同步計(jì)數(shù)器的仿真波形,圖中CLK_33M 為33 MHz 時(shí)鐘、CLK_594為經(jīng)鎖相、倍頻、去抖動之后的高頻時(shí)鐘,Start、Stop分別為待測飛行時(shí)間的起始和終止信號,Count_S、Count_D 分別表示單邊沿計(jì)數(shù)器與雙邊沿計(jì)數(shù)器的輸出。
由圖3可見,在相同時(shí)鐘頻率條件下,雙邊沿觸發(fā)計(jì)數(shù)器將計(jì)數(shù)量化誤差減小了一半。在594 MHz參考時(shí)鐘頻率下,理論測時(shí)精度達(dá)到842 ps.
圖3 單邊沿計(jì)數(shù)器與雙邊沿計(jì)數(shù)器時(shí)序仿真圖Fig3 Time sequence simulation diagram of single edge counter and double edge counter
相位延遲內(nèi)插技術(shù)就是利用一組由延遲單元構(gòu)成的延遲鏈,將參考時(shí)鐘作為基準(zhǔn)時(shí)鐘順序延遲n-1 次,得到規(guī)律性相位順延的n 個參考時(shí)鐘集{Clk_Refi|1≤i <n},n 次延遲之后,參考頻率信號剛好延遲了一個周期。于是n-1 延遲后形成的n-1 個參考頻率信號和原來基準(zhǔn)頻率信號形成了在一個周期內(nèi)的均勻移相信號。由此可見為了滿足均勻移相的要求,延遲單元的延遲時(shí)間τ要求滿足
圖4所示為參考時(shí)鐘信號延遲16 次時(shí)的相位分布圖。
(2)式是對n 個延遲單元延遲時(shí)間一致性的約束,使得每一路計(jì)數(shù)器的輸出均含有參考時(shí)鐘的相位信息,是減少測量誤差的關(guān)鍵。
采用n 個雙邊沿計(jì)數(shù)器在相同計(jì)數(shù)控制信號(Start/Stop)作用下對參考時(shí)鐘集{Clk_Refi|1≤i <n}分別計(jì)數(shù),得到n 個計(jì)數(shù)值Ni,以其算術(shù)平均值作為參考頻率計(jì)數(shù)值。測得飛行時(shí)間為
圖4 參考時(shí)鐘信號延遲16 次時(shí)的相位分布Fig.4 Phase distribution of reference clock for sixteen delay
設(shè)Δt2i,Δt1i是服從在[0,Tp)上均勻分布的隨機(jī)變量,由此可得測量誤差為
式中,Δτi為第i-1 延遲參考頻率的量化誤差,設(shè)已知Δt21,Δt11,由(2)式可得
式中,fmod(x,y)是實(shí)數(shù)求余運(yùn)算,返回x/y 的余數(shù)。x,y 和返回值均為零或正實(shí)數(shù)。
將Δt1i(i=1,…,n)按從小到大順序排列,這n個數(shù)構(gòu)成公差為τ 的等差數(shù)列,數(shù)列的第1 項(xiàng)記為Δt11一定滿足0≤Δt11<τ,于是
將(5)式和(6)式代入(4)式,可以求得雙邊沿脈沖計(jì)數(shù)與相位延遲內(nèi)插相結(jié)合的測時(shí)方法測量誤差為
值得提出的是,雙邊沿脈沖計(jì)數(shù)與相位延遲內(nèi)插相結(jié)合的測時(shí)方法雖然將n 次測量的計(jì)數(shù)值進(jìn)行平均,但并不等同于一般的計(jì)數(shù)平均法。計(jì)數(shù)平均法連續(xù)或隨機(jī)取n 個計(jì)數(shù)值后平均,因?yàn)閚 次計(jì)數(shù)過程沒有任何相關(guān)性,所以計(jì)算得到的飛行時(shí)間值不會有任何測量精度上的提高。
Xilinx 公司FPGA 器件XC5VLX110T 為相位延遲內(nèi)插技術(shù)的實(shí)現(xiàn)提供了豐富的DCM 和PLL 資源,對前文得到的594 MHz 參考時(shí)鐘進(jìn)行16 次相位內(nèi)插,即可得到一組參考時(shí)鐘集{Clk_Refi|1≤i <16},在Start/Stop 信號上升沿控制下同時(shí)驅(qū)動雙邊沿計(jì)數(shù)器計(jì)數(shù),由(3)式即得到待測飛行時(shí)間。
16 路相位延遲內(nèi)插時(shí)序仿真結(jié)果如圖5所示。圖中CLK_33M、Start、Stop 信號含義與圖4所示相同。本設(shè)計(jì)16 路相位延遲內(nèi)插技術(shù)理論測時(shí)精度達(dá)到TP/32=53 ps.
圖5 16 路相位延遲內(nèi)插時(shí)序仿真圖Fig.5 Time sequence simulation diagram of sixteen phase delay interpolation
以脈沖計(jì)數(shù)與相位延遲內(nèi)插相結(jié)合的高精度回波飛行時(shí)間測量方法為核心,在Xilinx 公司XC5VLX110T 器件上實(shí)現(xiàn)了回波飛行時(shí)間測量系統(tǒng)。33 MHz 外時(shí)鐘條件下,以高精度數(shù)字時(shí)間調(diào)整器DG535(時(shí)間分辨率5 ps)提供標(biāo)準(zhǔn)時(shí)間間隔,進(jìn)行了測試實(shí)驗(yàn),實(shí)驗(yàn)數(shù)據(jù)摘錄如表1所示。
實(shí)驗(yàn)結(jié)果誤差分布如圖6所示,設(shè)計(jì)的雙邊沿計(jì)數(shù)器能夠準(zhǔn)確記錄待測時(shí)間間隔內(nèi)高頻脈沖數(shù),脈沖計(jì)數(shù)法在33 MHz 時(shí)鐘條件下,能夠?qū)崿F(xiàn)優(yōu)于842 ps 的時(shí)間測量精度,被測飛行時(shí)間值越靠近計(jì)數(shù)周期Tp整數(shù)倍時(shí)測量誤差越小。16 路相位延遲內(nèi)插配合雙邊沿脈沖計(jì)數(shù)器能夠?qū)崿F(xiàn)優(yōu)于55 ps 精度的時(shí)間測量。
本文提出并實(shí)現(xiàn)了一種基于雙邊沿計(jì)數(shù)器的脈沖計(jì)數(shù)與相位延遲內(nèi)插相結(jié)合的高精度飛行時(shí)間測量方法,測量精度優(yōu)于55 ps.提高參考時(shí)鐘頻率(1/TP)以及相位延遲內(nèi)插數(shù)n 均可進(jìn)一步提高測量精度。
與傳統(tǒng)飛行時(shí)間測量方法相比,該方法易于在FPGA 中實(shí)現(xiàn),擴(kuò)展靈活,集成度高,穩(wěn)定性好,能夠有效克服溫度、頻率穩(wěn)定度等隨機(jī)噪聲的干擾??蓮V泛應(yīng)用于脈沖激光或雷達(dá)測距、精密定位、導(dǎo)航等需要高精度測量時(shí)間間隔的領(lǐng)域。
表1 高精度飛行時(shí)間測量系統(tǒng)實(shí)驗(yàn)測試數(shù)據(jù)摘錄Tab.1 Test data extract for high precision time of flight measurement system experiment
圖6 測量結(jié)果誤差分布Fig.6 Measurement error distribution of test result
References)
[1] 董明榮,許學(xué)忠,張彤,等.空中炸點(diǎn)三基陣聲學(xué)定位技術(shù)研究[J].兵工學(xué)報(bào),2010,31(3):343-349.DONG Ming-rong,XU Xue-zhong,ZHANG Tong,et al.Research on three-array acoustic localization technology for the aerial blast points[J].Acta Armamentarii,2010,31(3):343-349.(in Chinses)
[2] 宋建輝,袁峰,丁振良.脈沖激光測距中高精度時(shí)間間隔的測量[J].光學(xué)精密工程,2009,17(5):1046-1050.SONG Jian-hui,YUAN Feng,DING Zhen-liang.High precision time interval measurement in pulsed laser ranging[J].Optics and Precision Engineering,2009,17(5):1046-1050.(in Chinses)
[3] 孫杰,潘繼飛.高精度時(shí)間間隔測量方法綜述[J].計(jì)算機(jī)測量與控制,2007,15(2):145-148.SUN Jie,PAN Ji-fei.Methods of high precision time-interval measurement[J].Computer Measurement & Control,2007,15(2):145-148.(in Chinses)
[4] Bowman M J,Whitehead D G.A picosecond timing system[J].IEEE Transactions on Instrumentation and Measurement,2007,26(2):153-157.
[5] Chande P K,Sharma P C.Ultrasonic flow velocity sensor based on picosecond timing system[J].IEEE Transactions on Industrial Electronics,1986,33(2):162-165.
[6] Szplet R,Kalisz J,Szymanowski R.Interpolating time counter with 100 ps resolution on a single FPGA device[J].IEEE Transactions on Instrumentation and Measurement,2000,49(4):879-883.
[7] Zieliński M,Chbaerski D,Grzelak S.Time-interval measuring module with short dead-time[J].Metrology and Measurements Systems,2003,X(3):241-251.
[8] Zieliński M.Review of single-state time-interval measurement modules implemented in FPGA devices[J].Metrology and Measurement Systems,2009,XVI(4):641-648.
[9] 謝建華,葉衛(wèi)東,韓躍峰.雙邊沿觸發(fā)計(jì)數(shù)器的設(shè)計(jì)和應(yīng)用[J].兵工自動化,2006,25(4):71-72.XIE Jian-hua,YE Wei-dong,HAN Yue-feng.Design and application of double edge trigger counter[J].Ordnance Industry Automation,2006,25(4):71-72.(in Chinese)