趙德平,韓建平
(1.沈陽建筑大學 理學院,沈陽110168;2.沈陽建筑大學 信息與控制工程學院,沈陽110168)
時差法超聲波流量計[1,2]、磁致伸縮傳感器[3]、高精度脈沖激光測距[4,5]、衛星及導航定位[6~8]等領域要求測量的時間間隔必須精確到納秒(ns)級,準確獲取時間間隔直接決定這些系統的測量精度.目前,時間間隔的測量主要有三種方法:模擬法、數字法和數字插入法[9,10].
模擬法是通過在待測脈沖時間間隔內對積分電容以大電流Ⅰ充電,然后以小電流Ⅰ/k 放電,測出其放電時間k* tm,即可計算出微小時間間隔tm.此方法的優點是精度極高,可達皮秒(ps)級,但電容充放電時間關系存在非線性現象,約為測量范圍的萬分之一,而且充放電性能受溫度影響較大,可達10~30 ps/℃,限制了其測量范圍及測量環境.
數字法是通過計數器記錄被測時間間隔脈沖所經歷的的基準時鐘周期數進而計算出兩信號間的時間差,其優點是線性好,精度與測量范圍無關.但其測量誤差為正負一個脈沖,要使精度達到ns 級,其時鐘頻率就要達到GHz,市場上很少有如此高的振蕩器,且其穩定性也不能得以保證.
數字插入法[11]是通過采用數字法結合不同的插入方法來實現精確的時間測量的,此法將待測的時間間隔分成兩部分:基準時鐘周期的整數部分與小數部分.整數部分通過粗值計數器(即數字法)測出,小數部分通過插值單元讀出,可實現ps 級分辨率的測量,具有測量范圍大,高線性、高精度等優點.

圖1 TDC_GP2 的絕對時間測量架構圖Fig.1 Absolute time measurement architecture diagram of TDC_GP2

圖2 TDC_GP2 時間測量原理Fig.2 Time principal structure of TDC_GP2
德國acam 公司推出的新一代高精度測時芯片TDC_GP2[12]就是采用數字插入法技術,其絕對時間測量架構及測量原理如圖1,2所示.粗值計數器測出開始信號與停止信號之間的基準時鐘個數Cc,高速單元用于測量開始信號到相鄰基準時鐘上升沿的間隔時間Fc1 以及停止信號到相鄰基準時鐘上升沿的間隔時間Fc2,其測量結果為精確測量值和粗略測量值的總和,即:

其單次測量的分辨率可達65 ps.高精度、小尺寸QFN32 封裝、低功耗、小成本等特性使其成為時差測量的理想器件.楊佩[13],姚萬業[14],紀榮祎[15]采用單片機控制TDC_GP2 設計了時差測量系統,張黎明[4]采用32 位ARM 處理器控制TDC_GP2 進行高精度時間間隔測量.但他們都是針對測量范圍1:ns 級的時間間隔進行實驗及測時精度分析,均未對測量范圍2:μs、ms 級的測時精度進行過研究.
本文將TDC_GP2 專用測時芯片與高性能主控芯片FPGA Core3S500E 相結合設計了精密時間間隔測量系統.針對測時芯片的軟硬件設計的關鍵技術,測量范圍1 及測量范圍2 從ns 到ms級不同時間間隔測量的精度進行系列實驗研究及誤差分析,為時差法超聲波流量計順逆流傳播時間μs 級時差測量,激光脈沖測距ns 級時差測量等應用提供一種切實可行的解決方案.
該系統采用Xilinx 的FPGA Core3S500E 作為系統的主控芯片,時間間隔測量模塊的硬件外圍電路如圖3所示,FPGA 通過四線SPI(從機使能信號SSN,時鐘信號SCK,數據輸入SI,數據輸出SO)與TDC_GP2 相連進行數據通信,En_Start、En_Stop1 分別是TDC_GP2 的開始信號Start 和停止信號Stop1 的使能控制端.INTN 為計時芯片的中斷信號輸出端,當計時芯片的ALU 單元處理完時間間隔數據后會將該引腳拉低,此時主控器即可讀取相應寄存器中的測量數據.RSTN 為定時芯片的復位引腳,低電平有效,芯片工作前,必須通過該信號線對芯片進行復位.其中4MHz 的晶振作為TDC_GP2 的高速基準時鐘,采用陶瓷晶振時存在較大的頻率誤差,32.768 kHz 的晶振用于對其進行校準.采用典型的3.3 V 對芯片進行供電,芯片上電后,無源晶振4 MHz 及32.768 kHz正常起振,說明芯片能正常工作.測得的時間間隔數據由FPGA 通過串口232 發送至上位機PC 中,通過MFC 界面進行時間數據的顯示及保存.
系統采用Verilog HDL 語言,基于SPI 協議實現FPGA 與TDC_GP2 之間的數據通信,其程序流程圖如圖4所示.上電后,首先必須向芯片的RSTN 復位引腳發送一個50 ns 以上的低電平信號進行復位,然后再向芯片寫入0x50 對其進行軟復位,否則將導致芯片測量不正常.
TDC_GP2 準確測時的關鍵在于準確配置其內部的六個32 位寄存器reg0~reg5[16],如芯片的測量范圍,待測信號Start 和Stop 的敏感沿,中斷源設置等關鍵參數都需通過設置不同寄存器的相應位.芯片的每個寄存器必須單獨尋址,reg0~reg5 的高8 位分別對應地址操作碼0x80~0x85,后24 位為相應功能的配置值.本文選取Start 及Stop 信號的上升沿作為測時的敏感沿,采用校準模式進行測量,中斷源設置為ALU 中斷觸發,測量通道為Stop1 通道,采樣一個Stop 脈沖,其測量范圍1 及范圍2 的相應寄存器配置如表1所示.需要特別注意的是,在測量范圍2 配置寄存器reg1 中stop1 通道預期接受的脈沖個數時,其HINT1 設置值必須比預期接收脈沖多1 個,因為Start 也被作為一次采樣計數.

圖3 TDC_GP2 測時的硬件電路圖Fig.3 Time measuring hardware schematics of TDC_GP2

圖4 TDC_GP2 測時程序流程圖Fig.4 Time measuring program flow-chart of TDC_GP2

表1 寄存器配置Table 1 Register settings
寄存器配置完之后,需向TDC 發送0x03 進行校準,0x70 初始化,選通Start 及Stop 通道后,TDC 進入測量狀態,等待Start 及Stop 信號,其ALU 單元根據設置的采樣通道及采樣脈沖個數進行數據計算,計算完成將產生中斷信號,此時FPGA 向TDC 發送0xb0 操作碼讀取其寄存器reg0 中的數據,并將數據通過串口發送至上位機.采用校準模式測量,其數據格式為32 位固定浮點數,前16 位為整數部分,后16 位為小數部分;上位機MFC 將串口接收的32 位數據進行換算,轉換成十進制的浮點數數據,并進行數據的顯示及保存.
本文對TDC_GP2 的測量范圍1 及測量范圍2 分別進行時間間隔實驗,采用的基準時鐘為4MHz,內部分頻器數值設置為1,由于測量范圍1只有在2* Tref大于被測時間間隔時,ALU 才能正常工作,否則ALU 輸出值為0xFFFFFFFF,并且芯片要求Start 脈沖觸發沿與Stop 脈沖觸發沿的時間間隔至少3.5 ns,ALU 單元才能精確計算并產生中斷信號,因此,測量范圍1 可實現3.5~500 ns 的時間間隔測量,測量范圍2 可實現500 ns(2* Tref)~4 ms 的時間間隔測量.為測試該時間間隔測量系統的測時精度,選取Start 及Stop 時間間隔為20 ns~4 ms 之間的共計17 組數據進行測量,每組測量500 次,其中20 ns,200 ns,20 μs,200 μs 四組實驗數據的分布圖如圖5所示.
為準確評估系統的測時精度,對每組的500個測量數據分別進行統計分析,分別將各組測量數據代入均值計算公式及標準差公式求取不同信號時差對應的系統均值及總體標準差,其測量及計算結果如表2 和表3所示.

圖5 時間間隔為20ns,200 ns,20 μs,200 μs 的測量結果Fig.5 Measurement results of time interval 20 ns,200 ns,20 μs,200 μs

表2 測量范圍1 測時數據Table 2 Time measuring results of measurement range 1

表3 測量范圍2 測時數據Table 3 Time measuring results of measurement range 2
對于測量范圍1,表2 中測量誤差與信號時差的關系曲線如圖6所示,其測量誤差(Δ=μ-t)為ps 級,隨信號時差上下波動,且測量均值都小于理論的信號時差,最小測量誤差為-13ps,最小標準差66ps 與芯片的最小分辨率65ps 幾乎一致.
對于測量范圍2,測量均值都大于理論的信號時差,隨被測信號時差的增大,誤差從ps 增加到了ns 級,對表3 中測量誤差(Δ=μ-t)與信號時差之間的關系進行最小二乘擬合,如圖7所示.擬合的直線方程為y=19.59×10-5x+8.879×10-5,其斜率為19.59 ×10-5,即系統在量程2 的整個測量范圍內的誤差曲線保持較好的線性度,在實際應用中,若被測的信號時間間隔較大,可根據該誤差擬合直線對測量數據進行實時校正,以提高測量精度.

圖6 測量范圍1 測量誤差與信號時差關系曲線Fig.6 Relation between measurement error and signal time internal of measurement range 1

圖7 測量范圍2 測量誤差與信號時差擬合曲線Fig.7 Fitting curve between measurement error and signal time internal of measurement range 2
而不論測量范圍1 還是范圍2,其測量的標準差均為ps 級,且對于500 μs 以下的時間間隔測量,標準差隨信號時差上下波動,取TDC_GP2的最小分辨率65 ps 為一個標準偏差σ,500 μs 以下測量數據均落在±3σ 之間,因此,測時芯片更加適合于超短時間間隔的測量.
本文通過對TDC_GP2 測量范圍1 及范圍2進行大量實驗及測量誤差分析,發現TDC_GP2 對于ns 級時間間隔的測量,其測量精度均在皮秒級,而500 μs 以上的時間間隔測量,其測量誤差達到幾百ns.因此,測時芯片更加適合于納微級時間間隔的測量,其精度足以滿足時差法超聲波流量計順逆流傳播時間幾十μs 的時差測量,激光脈沖測距納秒級時差測量,對于較大500 μs 以上的時間間隔測量,其測量誤差為ns 級,但其測量誤差與被測時間間隔成明顯的線性關系,通過誤差擬合直線方程進行實時校準,可更大地發揮TDC_GP2 的性能.
[1]楊劍.基于FPGA 超聲波流量計的設計[D].武漢:武漢理工大學,2012.
(Yang J.Design of ultrasonic flowmeter based on FPGA[D].Wuhan:Wuhan University of Technology,2012.)
[2]姚濱濱,張宏建,唐曉宇,等.基于時差法和TDC-GP2的超聲波流量測量方法[J].自動化與儀表,2011,26(8):17-20.
(Yao B B,Zhang H J,Tang X Y,et al.Method of ultrasonic flow rate measure based on delta-T and TDC-GP 2[J].Automation &Instrumentation,2011,26(8):17-20.)
[3]高濤,朱蘊璞,吳蕊,等.TDC-GP2 在磁致伸縮傳感器中的應用[J].自動化儀表,2010,31(12):68-71.
(Gao Tao,Zhu Yunpu,Wu Rui,et al.Application of TDC-GP2 in magnetostrictive sensor[J].Process Automation Instrumentation,2010,31(12):68-71.)
[4]張黎明,張毅,趙欣.基于TDC 的激光測距傳感器飛行時間測量研究[J].傳感器與微系統,2012,30(12):71-74.
(Zhang L M,Zhang Y,Zhao X.Study on flight time measurement laser ranging sensor based on TDC[J].Transducer and Microsystem Technologies,2012,30(12):71-74.)
[5]楊佩.基于TDC-GP2 的高精度脈沖激光測距系統研究[D].西安:西安電子科技大學,2010.
(Yang P.Research on high-precision pulsed laser ranging system based on TDC _ GP2[D].Xian: Xidian University,2010.)
[6]方明東.基于加法器的全數字守時系統研究[D].武漢:華中科技大學,2008.
(Fang M D.Research on digital hold-over system based on adder based clock[D].Wuhan:Huazhong University of Science and Technology,2008.)
[7]宣宗強,孫小莉,劉晨,等.衛星同步時鐘的設計[J].西安電子科技大學學報,2013,40(4):125-129.
(Xuan Z Q,Sun X L,Liu C et al.Design of the satellite synchronized clock[J].Journal of Xidian University,2013,40(4):125-129.)
[8]田鳴.GPS 校準的數字式守時鐘研究[D].武漢:華中科技大學,2011.
(Tian M.Research of GPS disciplined digital timekeeping clock[D].Wuhan:Huazhong University of Science and Technology,2011.)
[9]張延,黃佩誠.高精度時間間隔測量技術與方法[J].天文學進展,2006,24(1):1-15.
(Zhang Y,Huang P C.High-precision time-interval measurement technique and methods[J].Progress in Astronomy,2006,24(1):1-15.)
[10]孫杰,潘繼飛.高精度時間間隔測量方法綜述[J].計算機測量與控制,2007,15(2):145-148.
(Sun J,Pan J F.Methods of high precision time-interval measurement[J].Computer Measurement & Control 2007,15(2):145-148.)
[11]吳剛,李春來,劉銀年,等.脈沖激光測距系統中高精度時間間隔測量模塊的研究[J].紅外與毫米波學報,2007,26(3):213.
(Wu G,Li C L,Liu Y N,et al.Study on high resolution time interval measurement module in pulsed laser ranging system[J].Journal of Infrared and Millimeter Waves,2007,26(3):213.)
[12]ACAM Corporation.TDC-GP2 datasheet[M].Germany:ACAM Corporation,2006.
[13]楊佩,徐軍,王菲.基于TDC-GP2 的高精度時差測量系統設計[J].電子科技,2010,23(7).
(Yang P,Xu J,Wang F.Design of the high-precision time difference measurement system based on TDC-GP2[J].Electronic Science and Technology,2010,23(7).)
[14]姚萬業,龍洋,張東峰,等.基于TDC-GP2 的激光測距飛行時間測量系統[J].工礦自動化,2008(6):47-49.
(Yao W Y,Long Y,Zhang D F,et al.Flight time measurement system of laser ranging based on TDC-GP2[J].Industry and Mine Automation,2008(6):47-49.)
[15]紀榮祎,趙長明,任學成,等.脈沖激光測距高精度計時系統的設計[J].工礦自動化,2010(8):18-22.
(Ji R Y,Zhao C M,Ren X C,et al.Design of high precision time measurement system for laser ranging[J].Industry and Mine Automation,2010(8):18-22.)
[16]Xian Y,Tang Z,Li B.Application of TDC-GP2 in laser range sensor[C]//Future Information Technology Springer Berlin Heidelberg,2014:325-330.