徐成濤 吳冠豪 鄭睿童
(國防科學技術大學電子科學與工程學院1,湖南 長沙 410073;清華大學機械學院2,北京 100084)
脈沖式激光測距儀具有速度快、方向性好、測程遠、抗干擾能力強等優點,在工業、航空航天、大地測量、建筑測量、機器人和軍事等領域均有廣泛應用[1]。脈沖式激光測距機的工作原理是利用脈沖激光器向目標發射單次激光脈沖,計數器測量從激光脈沖射向目標到目標返回到接收機的往返時間,由此得出目標的距離[2]。脈沖式激光測距儀主要由半導體脈沖激光器、電源、硅雪崩探測器及其相關放大處理電路、光學系統以及信號處理電路等部分組成[3]。
脈沖式激光測距系統最重要的一個組成部分是測距計時系統,測距計時的精度與速度直接影響距離測量的精度與速度[4]。目前,時間間隔的測量方法可分為直接法和間接法兩種。直接測量方法有脈沖計數法、延遲時間內插法等;間接測量方法有時間電壓變換(TDC)、游標時間內插法和脈沖寬度壓縮時間內插法等,本文采用的是間接測量方法。
脈沖激光測距計時系統由計時模塊和傳輸模塊兩部分組成。計時模塊用于測量信號的時間間隔計算,實現對距離的測量;傳輸模塊用于將測距數據傳輸到上位機,滿足快速測距應用的需要。
目前,實現高分辨率時間間隔測量的內插法主要有模擬內插法和數字內插法兩種。模擬方法對環境溫度十分敏感,需要比較長的轉換時間,且容易受到外界擾動影響,所以數字方法的使用更加廣泛[5]。為提高測量精度,本文采用基于數字式內插測量方法的高精度時間間隔測量芯片TDC-GP2來實現計時功能。同時,采用一款DSP芯片TMS320F2812作為脈沖激光測距計時部分的主控芯片,負責與TDC-GP2芯片的通信、測量數據的相關處理以及數據的向上傳遞,實現計時功能,提高計時系統的數據處理速度[6]。
在數據的傳輸過程中,選擇USB接口來實現與上位機的通信,并采用集成了USB 2.0接口的EZ-USB FX2LPTM系列芯片CY7C68013A來進行協議處理和數據交換,以支持USB實現高速的數據傳輸[7]。
計時系統功能的基本原理如圖1所示。

圖1 計時系統原理圖Fig.1 Principle schematic of the timing system
計時系統的基本工作流程為:每次上電復位,TMS320F2812首先對芯片內部的相關功能寄存器進行初始化,接著對TDC-GP2進行必要的初始化;然后,TMS320F2812啟動發射模塊,向待測目標發射一個激光脈沖,同時向TDC-GP2發出一個脈沖電信號,TDC-GP2啟動計時;激光脈沖從待測目標散射返回,接收模塊在接收到回波信號的同時向TDC-GP2發出另一個脈沖電信號,則TDC-GP2停止計時,并將兩次脈沖信號之間的時間間隔信號通過SPI接口傳遞給TMS320F2812。TMS320F2812對數據進行處理后,將計時結果通過芯片CY7C68013A傳遞給上位機,以供進一步的處理和應用。計時系統具體工作流程如圖2所示。

圖2 計時系統流程圖Fig.2 Schematic diagram of timing system
計時模塊以DSP芯片作為脈沖激光測距計時的主控芯片。針對測距計時工作的基本要求及TDC-GP2芯片的功能特性[5],本文設計的計時電路主要包括TMS320F2812初始化、TDC初始化和利用DSP實現測時等流程。計時電路軟件程序的總流程圖如圖3所示。

圖3 計時軟件流程圖Fig.3 Flowchart of the timing software
整個控制程序運行在DSP芯片上。系統上電后,程序首先對TMS320F2812芯片作相關的初始化設置,如關閉看門狗、設置時鐘等。其中,系統參數初始化函數的主要功能是設置鎖相環產生150 MHz的時鐘信號,提供給DSP作為時間基準,產生高速外圍時鐘信號和低速外圍時鐘信號,并使能SCI串口和SPI接口的時鐘功能。SPI初始化函數將SPI時鐘信號設置為2.5 MHz,SCI初始化函數將 RS-232串口波特率設置為19 200 bit/s,GPIO初始化函數設置了I/O管腳的數據傳遞方向和初始值。
在TMS320F2812完成初始化設置后,就可以對TDC芯片進行控制。但在此之前,同樣需要先作一些初始化工作。這些工作主要包括芯片的上電復位和初始化設置、主要芯片間的數據通信功能檢查以及與上位機的串口通信功能檢查[8]。其中,TDC-GP2復位函數通過DSP的I/O口將RSTN管腳置低,實現TDC芯片的復位。數據通信自檢函數向TDC-GP2的寫寄存器1寫入測試字符串,然后從讀寄存器5中讀出相關數據,從而證明TDC-GP2和TMS320F2812均能進行正常的讀寫通信。最后,TDC-GP2初始化函數對TDC-GP2的5個寫寄存器寫入事先設計好的控制字,以實現計時功能的初始化設置。
DSP控制TDC-GP2芯片按預定方式進行測時。整個計時過程由timemeasurement()函數完成,函數體內部嵌套多個子函數。TDC-GP2在接收到一條開始測時的指令后便等待Start信號到來。在GP2_START()函數中,DSP芯片利用I/O口模擬出3個脈沖信號,分別作為Start信號和相應的Stop1、Stop2信號。TDC會根據控制字的要求計算出時間間隔。當計算完成后,TDC-GP2會發出中斷信號。一旦發生中斷,就進入GP2_TMASTAT()函數讀取TDC-GP2的狀態寄存器信息,判斷計時結果是否有效。如果數據有效,則DSP通過SPI接口按最高位到最低位的順序讀取寄存器REG0的內容,即時間間隔,并將結果通過串口傳遞給上位機。這樣就結束了一次時間測量。若要實現多次測量,只需在timemeasurement()函數體外加入循環。
對于掃描成像等應用,在獲得激光測距的計時數據后,需要將數據快速送入上位機(應用程序)作處理。當采樣頻率較高時,單位時間的采樣數據量很大,傳輸信道需要提供較高的傳輸速度,為此,通用串行傳輸協議使用USB來實現數據的高速傳輸。
由于通信過程是由主機控制決定的,因此,當DSP與上位機進行數據傳輸時,需由上位機先發送一個傳輸數據的命令,然后DSP再響應傳遞數據。數據通信程序的流程圖如圖4所示。

圖4 數據通信流程圖Fig.4 Flowchart of data communication
數據通信實現的主要功能有:打開USB設備、發送數據傳輸的指令、DSP發送數據、CY7C68013A芯片傳送數據、主機接收數據、存儲數據、測量USB通信的傳輸速度等[9]。程序中主要模塊簡單說明如下。
①USB設備操作:當需要訪問USB設備時,調用Win32API函數,向設備驅動程序發出特定的IRPs請求,設備驅動程序收到請求后,向更底層的驅動程序傳遞請求,完成對USB設備的控制和訪問[10]。
②DSP發送數據:利用外擴的RAM添加一個64 kB的緩沖區,從寄存器讀取數據,將每次采集到的數據存入緩沖區;達到64 kB后通過指針將緩沖區數據放入CY68013A的端點,CY68013A利用固件程序把緩沖區內容打包向上傳輸。
③數據存儲:利用MFC中的CFile類的成員函數,通過創建一個模態對話框對緩沖區的數據進行文件傳輸,將編輯框控件所顯示的內容保存到用戶指定的數據文件中。
④數據傳輸速度測試:在數據傳輸開始的同時,定時器開啟進行計時。在傳輸結束時,傳輸數據的大小除以傳輸時間就可得到有效數據傳輸速度。本文自行設計了一個能精確到毫秒級的時間測定函數,用來測試傳輸速度。
本文根據上述需求設計了一個試驗系統,其硬件包括:TDC-GP2芯片電路、TMS320F2812芯片電路和上位機(計算機)。TDC-GP2芯片與TMS320F2812芯片通過SPI接口通信,測試所用的時間信號由DSP芯片模擬產生并提供給TDC-GP2,控制信號也由DSP芯片發出;上位機與DSP芯片通過USB交換數據。
測試時,DSP芯片的I/O口產生Start、Stop1信號,作為TDC的輸入信號。采用TDC-GP2和Tektronix TDS 1012B(100 MHz,1 GS/s)示波器同時測量兩者之間的時間間隔,觀察相應的計時結果。DSP信號時間間隔測量結果如表1所示。

表1 時間間隔測量結果Tab.1 Measuring results of signal time interval
TDC-GP2的測量結果與示波器測量的試驗數據表明,隨著觸發信號的間隔時間按等差數列增加,所得到的時間測量結果也隨之成等差數列增加。這就表明TDC-GP2的時間測量結果具有較好的線性關系,且每組值的標準差均在65 ps之內。
接著,DSP芯片的 I/O口又被用來發送 Start、Stop1和Stop2信號。將Start信號作為觸發信號,觸發TDC芯片測量Stop1和Stop2信號。Stop1信號是Start信號經過一對反門之后的信號,Stop2信號是Stop1信號再經過一對反門之后的信號,二者之間間隔為反門典型延時的兩倍。結果表明TDC測量具有較好的穩定性。
數據通過USB接口發送給上位機,傳輸速率大于3 Mbit/s。試驗中一次采樣數據用20 B進行存儲,每次采樣平均數據傳輸耗時7 μs,而程序用時約96 μs,一次采樣過程共需要103 μs。由于DSP芯片的SPI速率仍可提高(本文采用的是2.5 MHz,最多可達9.375 MHz),且USB數據傳輸速率可超過3 Mbit/s,因此,采樣時間完全可以小于100 μs,采樣率可達10 kHz。測試結果表明,系統對時間間隔的測量精度可達65 ps,量程可達0~16 ms;系統運行穩定,也沒有引入新的誤差。
為滿足激光測距的掃描成像、模式識別等應用需要,對脈沖式激光測距的高速計時技術進行了研究。通過采用基于數字式內插測量方法的高精度時間間隔測量芯片和數據處理芯片,設計實現了激光測距儀的計時模塊與數據的傳輸模塊,并構建了一個試驗系統。試驗表明,計時系統利用TDC-GP2芯片測量可實現高精度(65 ps)、性能穩定的測距計時,以滿足脈沖式激光測距的應用需求。
[1]王秀芳.脈沖半導體激光測距的研究[D].成都:四川大學,2006.
[2]劉坤,陳芳.激光測距方法及激光器的發展[J].科技信息,2008(30):387-388.
[3]李黎明.半導體激光測距機中的信號處理方案[D].成都:電子科技大學,2008.
[4]黃震.脈沖激光測距接收電路與計時方法研究[D].杭州:浙江大學,2004.
[5]曾凡.用于脈沖式激光測距的計時電路研制[D].北京:清華大學,2009.
[6]孫麗明.TMS320F2812原理及其C語言程序開發[M].北京:淸華大學出版社,2008:20-22.
[7]程玉龍.采用USB2.0接口的圖像采集系統設計[D].重慶:重慶大學,2007.
[8]宋建輝,袁峰,丁振良.脈沖激光測距中高精度時間間隔的測量[J].光學精密工程,2009,17(5):1047-1049.
[9]吳剛,李春來,劉銀年,等.脈沖激光測距系統中高精度時間間隔測量模塊的研究[J].紅外與毫米波學報,2007,26(3):214-216.
[10]孟升衛.高速精密時間間隔測量及應用研究[D].哈爾濱:哈爾濱工業大學,2007.