毛有明,岱 欽,吳凱旋,耿 岳,李業(yè)秋
(沈陽理工大學 理學院,遼寧 沈陽 110159)
脈沖激光測距中基于多層嵌套狀態(tài)機的控制系統(tǒng)
毛有明,岱 欽,吳凱旋,耿 岳,李業(yè)秋
(沈陽理工大學 理學院,遼寧 沈陽 110159)
設(shè)計了基于FPGA與TDC-GP21的高精度、高重頻的激光飛行時間測量系統(tǒng)。采用多層嵌套狀態(tài)機作為控制系統(tǒng),構(gòu)建SPI通信接口實現(xiàn)對TDC-GP21的配置、控制以及讀取測量結(jié)果。使用TimeQuest時序分析工具對系統(tǒng)進行時序約束分析。實驗結(jié)果表明,系統(tǒng)重復測量頻率達40KHz,測量精度達±100ps,可以在高頻條件下穩(wěn)定工作。
激光測距;FPGA;TDC-GP21;有限同步狀態(tài)機;Verilog HDL
脈沖激光測距技術(shù)廣泛應用于現(xiàn)代軍工、工業(yè)、航天等領(lǐng)域[1],隨著集成電路的飛速發(fā)展,數(shù)字法插入法測量時間間隔已取得突破性進展,并廣泛應用于激光測距系統(tǒng)中,可以使用專用測量芯片或精密延遲線完成高精度時間間隔測量[2]。論文設(shè)計實現(xiàn)了基于FPGA和TDC-GP21的高速激光飛行時間測量系統(tǒng),通過多層嵌套狀態(tài)機構(gòu)成控制系統(tǒng),提高了測量頻率和精度。
激光測距系統(tǒng)主要由以下幾個部分組成:激光發(fā)射模塊、接收模塊、跨阻放大模塊、時刻鑒別模塊、時間間隔測量模塊以及核心控制元件FPGA,各個模塊之間的聯(lián)系如圖1所示。
激光二極管發(fā)射脈沖寬度為40ns的激光脈沖,通過分光將其中一小部分進行光電轉(zhuǎn)換后作為開始信號,剩余激光經(jīng)過光學準直系統(tǒng)后發(fā)射;當激光到達被測目標表面后部分能量被反射,經(jīng)過APD接收、跨阻放大和時刻鑒別電路后,作為結(jié)束信號送到時間間隔測量單元;根據(jù)測量光脈沖從發(fā)射到返回接收機的時間t,可以計算出測距機與待測目標之間的距離。
圖1 激光測距系統(tǒng)原理框圖
激光測距精度主要取決于時間間隔測量精確度、接收電路的帶寬、激光脈沖的上升沿和探測器的信噪比[3],其中時間間隔測量精度對激光測距精度的影響至關(guān)重要。
高精度時間間隔測量技術(shù)的種類可以分成模擬法和數(shù)字法。數(shù)字插入法是在數(shù)字法的基礎(chǔ)上,通過插入法提高測量精度,包括延遲線插入法、時幅轉(zhuǎn)換插入法和時間放大插入法。數(shù)字插入法繼承了數(shù)字法的測量范圍大和線性好的優(yōu)點,又提高了時間間隔測量的精度,因此數(shù)字插入法成為目前主要的高精度時間間隔測量方法[4]。
時間間隔測量原理[5]如圖2所示,時間間隔可以表示成Tc=Ts+nTd-Te,其中nTd為參考時鐘CLK的周期數(shù),Ts和Te分別為觸發(fā)信號和參考信號CLK的上升沿之間的時間差。
設(shè)計使用TDC-GP21,采用延遲線插入法技術(shù),以信號通過內(nèi)部延遲單元來測量時間間隔,如圖3所示。
TDC-GP21內(nèi)部延遲單元的單通道測量精度為45ps,由Start信號觸發(fā),Stop信號截止,由環(huán)形振蕩器的位置可得Ts和Te,由粗值計數(shù)器的計數(shù)值可得nTd,從而計算出Start信號和Stop信號之間時間間隔。
圖2 TDC-GP21時間間隔測量單元
圖3 TDC-GP21時間間隔測量單元
TDC-GP21通過內(nèi)部校準測量來補償由溫度和電壓變化而引起的誤差,適用于高精度時間間隔測量。
圖4 TDC-GP21校準測量原理圖
如圖4所示:由FPGA配置TDC-GP21進行校準測量,首先TDC-GP21通過內(nèi)部延遲單元測量時間間隔;然后測量一個和兩個外部基準時鐘信號Cal1和Cal2;最后ALU單元通過Cal1和Cal2對測量結(jié)果進行校準,補償由溫度和電壓變化而引起的誤差,并將校準結(jié)果存到結(jié)果寄存器中。此時測量結(jié)果是外部時鐘的倍數(shù),即相對時間。校準結(jié)果和待測時間間隔可表示為如下公式:
(1)
Time=RES_X×Tref×2CLKHSDIV
(2)
TDC-GP21提供4線SPI串行接口,支持時鐘相位(Clock Phase Bit)=1,時鐘極性(Clock Polarity Bit)=0的傳輸模式,TDC-GP21的讀寫時序如圖5和圖6所示。
圖5 TDC-GP21寫時序
圖6 TDC-GP21讀時序
其中SSN為讀寫使能信號,低電平有效,SCK為串口通信時鐘,MOSI端口接收主機的配置信息和操作指令,MISO端口發(fā)送從機的狀態(tài)信息和測量結(jié)果。在通信過程中,由主機產(chǎn)生SSN使能信號和SCK時鐘信號,MOSI和MISO在SCK時鐘的下降沿發(fā)送指令或接收數(shù)據(jù)。由于TDC-GP21不能連續(xù)進行寫操作,每個寄存器必須單獨尋址,這也就意味著在每次讀寫操作時必須先由主機發(fā)送操作碼,并且讀寫操作之間的最小時間間隔大于16ns。
由TDC-GP21的時序要求可知,系統(tǒng)可以通過SPI接口讀取TDC的測量結(jié)果,但TDC-GP21規(guī)定了特定的讀寫時序和配置代碼,F(xiàn)PGA內(nèi)置的SPI接口不能靈活處理TDC的讀寫時序。通過以上分析,論文設(shè)計了基于多級嵌套狀態(tài)機的SPI通信接口,可以快速處理TDC的讀寫時序要求。
實驗使用Altera公司的cyclone II系列器件EP2C5T114C6和TDC-GP21構(gòu)建測量系統(tǒng),如圖7所示。
圖7 FPGA與TDC-GP21硬件電路圖
系統(tǒng)工作時鐘為50MHz,通過FPGA模擬SPI接口,對TDC-GP21進行配置和初始化;并發(fā)射觸發(fā)脈沖,觸發(fā)半導體激光二極管產(chǎn)生脈寬為40ns的激光脈沖,同時觸發(fā)TDC-GP21工作;FPGA通過SPI的主收從發(fā)端口(MISO)讀取測量結(jié)果進行后續(xù)數(shù)據(jù)處理和傳輸;TDC-GP21通過測量4MHz外部基準時鐘進行數(shù)據(jù)校準。
系統(tǒng)以FPGA作為核心控制器件,以TDC-GP21的測量流程為基礎(chǔ)構(gòu)建系統(tǒng),系統(tǒng)的工作流程如圖8所示。
圖8 系統(tǒng)流程圖
當系統(tǒng)上電后,首先由FPGA通過SPI模塊對TDC-GP21進行配置及初始化,然后系統(tǒng)進入測量階段,當TDC-GP21收到停止信號后對測量值進行校準測量和ALU校準,最后將測量結(jié)果存到結(jié)果寄存器中,并產(chǎn)生中斷。
FPGA接收到TDC的中斷標志后,系統(tǒng)讀取TDC的狀態(tài)寄存器并判斷TDC的狀態(tài),當TDC溢出時,終端顯示TDC溢出信息,程序返回初始化階段;當滿足系統(tǒng)測量范圍時,F(xiàn)PGA通過SPI模塊讀取結(jié)果寄存器,然后返回初始化階段,準備進入下一次測量,同時將數(shù)據(jù)送到高速乘法器進行計算并將結(jié)果通過RS485接口傳送給上位機,在終端上顯示測量結(jié)果;當接收到上位機的停止命令時,F(xiàn)PGA控制TDC完成當前測量后結(jié)束程序。
為了實現(xiàn)簡潔有效的SPI通信時序,充分利用FPGA的內(nèi)部資源,實驗采用Verilog HDL硬件描述語言設(shè)計有限同步狀態(tài)機(FSM)控制TDC-GP21進行時間間隔測量,并在系統(tǒng)中嵌套了3個從狀態(tài)機,分別實現(xiàn)收發(fā)8、16和32位的數(shù)據(jù)指令,主從狀態(tài)機轉(zhuǎn)換圖如圖9和圖10所示。
圖9 主狀態(tài)機的時序圖
圖10 多層嵌套狀態(tài)機的邏輯圖
如圖10所示,En為系統(tǒng)使能信號,F(xiàn)為通信標志位,當F=1時主狀態(tài)機控制從機進行通信,當通信結(jié)束后標志位置0,I為TDC-GP21的中斷端口,低電平有效。主狀態(tài)機輸出控制字及控制信號啟動從狀態(tài)機進入工作狀態(tài),操作完成后從機發(fā)出相應狀態(tài)信號至主機進行下一步操作。主從狀態(tài)機之間通過收發(fā)結(jié)束標志位和收發(fā)數(shù)據(jù)位寬完成相互嵌套,同時為了避免SPI接口進行雙全工通信時要同時捕捉時鐘的上升沿和下降沿,可能由于時鐘漂移導致狀態(tài)機工作不可靠[6]。實驗采用時鐘上升沿的工作方式,增強了狀態(tài)機的可靠性[7]。
實驗基于QuartusII軟件平臺進行開發(fā)調(diào)試,使用TimeQuest時序分析工具對系統(tǒng)的時序進行約束,時序約束是FPGA開發(fā)過程中不可忽視的一個步驟,可以指導綜合和布局布線階段的優(yōu)化算法[8],獲得最優(yōu)的器件性能,使設(shè)計代碼最大可能反映設(shè)計意圖。實驗通過TimeQuest時序分析工具,對全局時鐘、寄存器建立和保持時間分別進行約束,確保系統(tǒng)的時序收斂。通過JTAG將程序下載到FPGA最小系統(tǒng)板中,使用示波器觀察系統(tǒng)通信波形,如圖10所示。
圖11 激光測距系統(tǒng)的波形圖
在圖11中,CH1通道為SCK通信時鐘信號,CH2通道為SSN使能信號,CH3通道為MISO端口信號。由圖可知系統(tǒng)通信波形良好,狀態(tài)機正常運轉(zhuǎn),模擬SPI接口時序清晰,無明顯毛刺,系統(tǒng)在高頻測量情況下能夠保持穩(wěn)定的工作狀態(tài),系統(tǒng)重復測量頻率達40kHz。
實驗采用FPGA脈沖信號模擬激光回波信號進行時間間隔測量。在10~100ns范圍內(nèi)進行重復測量,測量結(jié)果如表1所示。
表1 系統(tǒng)測量結(jié)果 ns
通過軟件修正,分析測量結(jié)果,并進行線性誤差補償,減小電路延遲和光學接收系統(tǒng)的非線性因素對系統(tǒng)的影響,系統(tǒng)測量精度可達±100ps。
設(shè)計了基于FPGA和TDC-GP21的激光測距系統(tǒng)。構(gòu)建多層嵌套有限狀態(tài)機,實現(xiàn)高速SPI通信接口,完成對TDC-GP21的配置和控制。使用TimeQuest時序分析工具對系統(tǒng)進行時序約束,提高了系統(tǒng)的高頻穩(wěn)定性。系統(tǒng)重復測量頻率為40KHz,測量精度為±100ps,可以滿足快速精密的測距要求。
[1]張黎明,張毅,趙欣.基于TDC的激光測距傳感器飛行時間測量研究[J].傳感器與微系統(tǒng),2011,30(12):71-74.
[2]馮志輝,劉恩海,岳永堅.基于FPGA延遲線插入法的半導體激光測距[J].光電工程,2010,37(4):53-59.
[3]陳千頌,楊成偉,潘志文,等.激光飛行時間測距關(guān)鍵技術(shù)進展[J].激光與紅外,2002,32(1):7-10.
[4]吳剛,李春來,劉銀年.脈沖激光測距系統(tǒng)中高精度時間間隔測量模塊的研究[J].紅外與毫米波學報,2007,26(3):214-216.
[5]張延,黃佩誠.高精度時間間隔測量技術(shù)與方法[J].天文學進展,2006,24(1):3-4.
[6]黃新財,佃松宜,汪道輝.基于FPGA的高速連續(xù)數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].微計算機信息,2005,21(2):58-59.
[7]傘景輝,常青.基于FPGA的乘法器實現(xiàn)結(jié)構(gòu)分析與仿真[J].微處理機,2004,(3):6-7.
[8]周海斌.靜態(tài)時序分析在高速FPGA設(shè)計中的應用[J].電子工程師,2005,31(11):4-5.
AControlSystemBasedonMultiple-levelFSMofLaserDistanceMeasurement
MAO Youming,DAI Qin,WU Kaixuan,GENG Yue,LI Yeqiu
(Shenyang Ligong University,Shenyang 110159,China)
A high speed and high precision laser time of flight (TOF) distance measurement system based on FPGA and TDC-GP21 was introduced.Multiple-level FSM was used as control system,and SPI interface was established to configure and control TDC-GP21 and receive result of measurement.Timing constraints was analyzed by TimeQuest.The experiment results showed that measurement repetition rate of is 40 KHz,the ranging precision of is ±100ps and high frequency stability can be achieved.
laser distance measurement;FPGA;TDC-GP21;FSM;Verilog HDL
2013-11-01
國家自然科學基金(61378075,61378042);遼寧省高校杰出青年學者成長計劃(LJQ2013022);遼寧省教育廳科技項目(L2012070)
毛有明(1988—),男,碩士研究生;通信作者:岱欽(1977—),男,副教授,博士,研究方向:固體激光技術(shù).
1003-1251(2014)05-0001-05
TN247
A
馬金發(fā))