• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA與TDC-GP22的連續(xù)脈沖測(cè)距系統(tǒng)研究

      2016-08-09 09:53:35閆德立王偉明靳邵云何亞軒

      閆德立, 王偉明, 靳邵云, 何亞軒

      (石家莊鐵道大學(xué)電氣與電子工程學(xué)院,河北 石家莊 050043)

      ?

      基于FPGA與TDC-GP22的連續(xù)脈沖測(cè)距系統(tǒng)研究

      閆德立,王偉明,靳邵云,何亞軒

      (石家莊鐵道大學(xué)電氣與電子工程學(xué)院,河北 石家莊 050043)

      摘要:針對(duì)傳統(tǒng)的硬件設(shè)計(jì)難以實(shí)現(xiàn)連續(xù)窄脈沖測(cè)距的難題,提出了一種FPGA與TDC-GP22相結(jié)合的連續(xù)脈沖測(cè)距的方案。詳細(xì)介紹了FPGA完成TDC-GP22初始化、工作方式配置以及測(cè)量結(jié)果讀取的具體實(shí)現(xiàn)方法,并根據(jù)TDC-GP22兩種不同的測(cè)量范圍設(shè)計(jì)了切換邏輯,實(shí)現(xiàn)了大動(dòng)態(tài)范圍的連續(xù)脈沖測(cè)距。實(shí)驗(yàn)結(jié)果表明,該方案脈沖間隔測(cè)量精度小于2 ns,滿足了脈沖測(cè)距的要求。

      關(guān)鍵詞:TDC-GP22;FPGA;連續(xù)脈沖測(cè)距

      精確魯棒的連續(xù)脈沖測(cè)距系統(tǒng)在工程、軍事等眾多領(lǐng)域有著重要的應(yīng)用價(jià)值。傳統(tǒng)的脈沖測(cè)距系統(tǒng)大多采用MCU作為主控制器,存在擴(kuò)展性差、實(shí)時(shí)性差等問(wèn)題,且發(fā)射脈沖寬度較大,影響測(cè)量精度。文章設(shè)計(jì)并實(shí)現(xiàn)了一種基于GP22與FPGA相結(jié)合的方法來(lái)實(shí)現(xiàn)脈沖測(cè)距,較好的彌補(bǔ)了MCU系統(tǒng)方面存在的諸多不足。

      TDC-GP22是德國(guó)ACM公司生產(chǎn)的一款高精度的時(shí)間數(shù)字轉(zhuǎn)換芯片,在激光脈沖測(cè)距、超聲波測(cè)距等領(lǐng)域有著廣泛應(yīng)用[1-4]。設(shè)計(jì)采用FPGA為控制計(jì)算單元,利用其內(nèi)部延時(shí)線產(chǎn)生的可調(diào)窄脈沖實(shí)現(xiàn)窄脈沖的發(fā)射。此外,F(xiàn)PGA除了可實(shí)現(xiàn)GP22的初始化、配置和讀取測(cè)量結(jié)果等功能外,還可很方便地在內(nèi)部加入其他并行模塊實(shí)現(xiàn)更復(fù)雜的功能,特別適合于激光雷達(dá)系統(tǒng)中的連續(xù)脈沖測(cè)距和并行測(cè)角等應(yīng)用。文章以Xilinx Virtex-4系列FPGA為核心,設(shè)計(jì)并實(shí)現(xiàn)了基于GP22的連續(xù)脈沖測(cè)距系統(tǒng)。

      1 系統(tǒng)硬件設(shè)計(jì)

      TDC-GP22有兩種工作方式:測(cè)量范圍1和測(cè)量范圍2,二者對(duì)應(yīng)的最小測(cè)量時(shí)間分別是3.5 ns和500 ns,最大測(cè)量時(shí)間分別是2.4 μs和4 ms。測(cè)量范圍1應(yīng)用內(nèi)部邏輯門的延時(shí)來(lái)測(cè)量時(shí)間間隔,精度很高,但是測(cè)量的時(shí)間比較短;測(cè)量范圍2采用精確計(jì)數(shù)器與粗值計(jì)數(shù)器通過(guò)計(jì)時(shí)鐘周期來(lái)測(cè)量時(shí)間,精度較低,但測(cè)量時(shí)間較長(zhǎng)。顯然,測(cè)量范圍1適用于較近的測(cè)量距離,而測(cè)量范圍2適合較遠(yuǎn)的部分。若測(cè)量量程覆蓋兩個(gè)測(cè)量范圍,則在配置GP22時(shí)還需考慮二者的切換問(wèn)題,設(shè)計(jì)的電路原理圖如圖1所示。

      其中,GP22 I/O口電壓為2.5~3.6 V,因此需將FPGA對(duì)應(yīng)的BANK設(shè)置為3.3 V供電。將GP22的各個(gè)功能腳與FPGA連接,控制其使能、對(duì)其進(jìn)行配置,以及接收中斷信號(hào)并進(jìn)行數(shù)據(jù)讀取。GP22的配置與數(shù)據(jù)讀取采用4線制SPI接口,其脈沖測(cè)量腳分別與發(fā)射脈沖輸入和接收脈沖輸入連接,測(cè)量二者的時(shí)間間隔;中斷輸出腳也連接至FPGA用于觸發(fā)數(shù)據(jù)讀取。此外,GP22為高端數(shù)字模擬混合器件,其電源應(yīng)該具有高電容性和低電感性。

      2 配置方法

      系統(tǒng)配置主要包括窄脈沖的產(chǎn)生、下層模塊讀寫配置、上層模塊配置及基于狀態(tài)機(jī)總體配置四部分。首先利用FPGA內(nèi)部窄脈沖發(fā)生電路產(chǎn)生觸發(fā)測(cè)距窄脈沖,然后建立FPGA與GP22的通信。FPGA連續(xù)產(chǎn)生測(cè)距脈沖和測(cè)量結(jié)果讀寫時(shí)序。GP22控制接口采用4線制SPI,需要按照嚴(yán)格時(shí)序,因此采用狀態(tài)機(jī)的方式進(jìn)行配置,其讀寫操作由上層模塊與下層模塊組成。下層模塊分為并列的兩個(gè),分別為讀時(shí)序與寫時(shí)序,來(lái)滿足SPI的時(shí)序要求。上層模塊協(xié)調(diào)SPI的讀寫操作,從而實(shí)現(xiàn)GP22的初始化、工作方式的配置以及測(cè)量結(jié)果的讀取。文章以初始化測(cè)量范圍1,當(dāng)測(cè)量范圍不相符時(shí)進(jìn)行測(cè)量范圍的切換為例,進(jìn)行配置說(shuō)明。整體流程如圖2所示。

      圖1 電路原理圖

      圖2 整體流程

      2.1 窄脈沖的產(chǎn)生

      脈沖測(cè)距系統(tǒng)需要窄脈沖實(shí)現(xiàn)對(duì)激光器的觸發(fā),同時(shí)GP22也以該窄脈沖作為時(shí)間測(cè)量的觸發(fā)信號(hào)。如圖3所示,在FPGA中,采用LUT(Look-Up-Table)模塊,觸發(fā)信號(hào)先通過(guò)內(nèi)部的延時(shí)線,然后將得到的延時(shí)信號(hào)與原信號(hào)相異或,可以方便地產(chǎn)生滿足要求的窄脈沖,窄脈沖的寬度為內(nèi)部延時(shí)線的延時(shí)時(shí)間。

      圖3 窄脈沖產(chǎn)生原理框圖

      2.2 下層模塊讀寫時(shí)序

      FPGA系統(tǒng)時(shí)鐘為25 MHz,SPI的SCK信號(hào)是系統(tǒng)時(shí)鐘的2分頻。由于只有在需要時(shí)才進(jìn)行寫操作,在讀寫模塊中都加入了使能信號(hào),該信號(hào)的上升沿觸發(fā)一次各自的讀或?qū)懖僮?。為滿足讀或?qū)憯?shù)據(jù)長(zhǎng)度可變的要求,在模塊的端口設(shè)置輸入型變量,將寫入的數(shù)據(jù)長(zhǎng)度傳遞到模塊內(nèi)部,實(shí)現(xiàn)讀或?qū)懖煌瑪?shù)據(jù)長(zhǎng)度的控制。讀操作需要向GP22發(fā)出指令,寫入操作碼,因此,在讀模塊中包含了寫入操作碼的功能。無(wú)論是讀時(shí)序還是寫時(shí)序,均采用狀態(tài)機(jī)的方式進(jìn)行描述。讀時(shí)序如圖4所示,寫時(shí)序如圖5所示。

      圖4 GP22讀時(shí)序

      圖5 GP22寫時(shí)序

      2.3 上層模塊整體配置

      對(duì)于GP22的配置先要對(duì)其初始化,再經(jīng)過(guò)延時(shí)10 ms,然后配置其中寄存器的值,從而確定GP22的工作方式,最后等待中斷信號(hào),將測(cè)量的時(shí)間結(jié)果讀出。為了實(shí)現(xiàn)連續(xù)測(cè)距的要求,在結(jié)束后還需再次進(jìn)行初始化,如此循環(huán)進(jìn)行。

      2.4 基于狀態(tài)機(jī)的總體配置流程

      流程圖的整個(gè)過(guò)程用狀態(tài)機(jī)實(shí)現(xiàn)。由于讀寫操作共用SPI中的信號(hào)線,設(shè)置了一個(gè)rd_wr寄存器用于區(qū)分。rd_wr=1為讀操作,rd_wr=0為寫操作。

      步驟1:初始化GP22,將rd_wr置0,確定為寫操作,送8位的數(shù)據(jù)50H到寫入寄存器data_write,寫操作的數(shù)據(jù)長(zhǎng)度寄存器num_write賦值為15,該值由下層寫操作模塊寫入的數(shù)據(jù)位數(shù)決定,對(duì)應(yīng)為8位數(shù)據(jù)。最后把寫操作使能信號(hào)en_ssn_write拉高,使能一次寫操作。以上操作并行執(zhí)行之后,狀態(tài)機(jī)轉(zhuǎn)入下一個(gè)狀態(tài),等待適當(dāng)時(shí)間,保障數(shù)據(jù)寫入完成。跳出等待狀態(tài)時(shí),拉低en_ssn_write,為下一次觸發(fā)寫操作做準(zhǔn)備。

      步驟2:數(shù)據(jù)寫入完成之后,狀態(tài)機(jī)進(jìn)入延時(shí)的狀態(tài),延時(shí)約100 ms,采用FPGA系統(tǒng)時(shí)鐘計(jì)數(shù)的方法確定延時(shí)時(shí)間,延時(shí)結(jié)束后,轉(zhuǎn)入GP22寄存器配置狀態(tài)。

      步驟3:GP22有7個(gè)32位的配置寄存器。高24位是用作配置,只可以寫入。這些寄存器用于設(shè)置GP22的模式。H8X+24位數(shù)據(jù)將會(huì)在GP22兼容模式中寫入配置寄存器X中,用該方法配置相應(yīng)寄存器。由于配置寄存器6對(duì)時(shí)間測(cè)量可有可無(wú),因此,忽略配置寄存器6。首先在配置寄存器0寫入32位數(shù)據(jù)80000420H,寫入方法同步驟1,只是num_write賦值為63,其對(duì)應(yīng)32為數(shù)據(jù)。該寄存器的值確定GP22工作在測(cè)量范圍1,自動(dòng)校準(zhǔn),晶振上電后一直起振。寄存器0配置完之后,狀態(tài)機(jī)進(jìn)入下一個(gè)狀態(tài)配置其他的寄存器。按照相同方法,配置寄存器1到5分別寫入81014100H、82E00000H、83000000H、84200000H、85080000H。

      通過(guò)上述第一次上電配置后,系統(tǒng)初始化為測(cè)量范圍1。按照相同的方法,可以把6個(gè)寄存器分別配置為80008468H、81214200H、82E00000H、83000000H、84200000H和85080000H,使GP22工作在測(cè)量范圍2,自動(dòng)校準(zhǔn)的方式。設(shè)置一個(gè)測(cè)量范圍標(biāo)志位,當(dāng)出現(xiàn)測(cè)量范圍切換請(qǐng)求時(shí),只需將該標(biāo)志位取反,即可實(shí)現(xiàn)二者的切換。

      步驟4:初始化測(cè)量。為實(shí)現(xiàn)連續(xù)測(cè)量,例如每50 ms觸發(fā)一次初始化測(cè)量,F(xiàn)PGA系統(tǒng)時(shí)鐘將分頻產(chǎn)生20 kHz的方波。程序模塊監(jiān)測(cè)該方波的上升沿,檢測(cè)到后,一方面啟動(dòng)計(jì)時(shí),一旦超過(guò)預(yù)定的時(shí)間,就將超時(shí)標(biāo)置位置高;另一方面,轉(zhuǎn)入下一個(gè)狀態(tài),寫入8位初始化數(shù)據(jù)70H,完成初始化。

      步驟5:狀態(tài)機(jī)在初始化測(cè)量之后進(jìn)入等待中斷的狀態(tài),即監(jiān)測(cè)中斷信號(hào)的下降沿。除此之外,還監(jiān)測(cè)超時(shí)標(biāo)置位。若發(fā)現(xiàn)超時(shí)標(biāo)置位置位,說(shuō)明測(cè)量的范圍選擇與實(shí)際的測(cè)量距離不相符,則狀態(tài)機(jī)跳轉(zhuǎn)至步驟3的位置,配置另一種測(cè)量范圍,開始下一次測(cè)量;若在超時(shí)標(biāo)置位未置位的前提下,檢測(cè)到中斷信號(hào)的下降沿,狀態(tài)機(jī)進(jìn)入步驟6。

      步驟6:狀態(tài)機(jī)讀取數(shù)據(jù),先將rd_wr置1,把寫操作改為讀操作。操作碼賦值為B0H,發(fā)讀取信息指令,讀操作使能信號(hào)en_ssn_read拉高,使能一次讀操作。然后在下一個(gè)狀態(tài)延時(shí)適當(dāng)?shù)臅r(shí)間,使數(shù)據(jù)讀出,延時(shí)結(jié)束后將en_ssn_read信號(hào)拉低,便于下次使能讀時(shí)序,最后將測(cè)量結(jié)果讀出,狀態(tài)機(jī)切換到步驟4,進(jìn)行下一次測(cè)量。

      程序流程圖如圖6所示。

      圖6 程序流程圖

      3 實(shí)驗(yàn)結(jié)果及分析

      實(shí)驗(yàn)采用FPGA內(nèi)部的延時(shí)線路來(lái)模擬被測(cè)量的時(shí)間間隔,并用示波器進(jìn)行了捕捉,為時(shí)間測(cè)量的結(jié)果提供依據(jù)。示波器圖像如圖7所示。FPGA將采集到的時(shí)間測(cè)量值通過(guò)串口發(fā)送到PC機(jī),測(cè)量數(shù)據(jù)取平均值后為7 251.8 ps,由公式1得出。

      圖7 示波器圖像

      (1)

      式中:t為測(cè)量時(shí)間;m為測(cè)量數(shù)據(jù)。計(jì)算可得時(shí)間為27 663.9 ps。經(jīng)過(guò)與示波器上波形的時(shí)間差進(jìn)行對(duì)比,二者基本相同。采集的數(shù)據(jù)如表1所示。

      4結(jié)論

      通過(guò)FPGA與TDC-GP22構(gòu)建了連續(xù)脈沖測(cè)距硬件系統(tǒng)。通過(guò)上述配置方法,F(xiàn)PGA可將配置數(shù)據(jù)寫入TDC-GP22,并且還能將測(cè)量結(jié)果讀出,實(shí)現(xiàn)了脈沖測(cè)距中最核心的時(shí)間測(cè)量功能,并且易于擴(kuò)展其他并行功能。通過(guò)超時(shí)檢測(cè)實(shí)現(xiàn)兩種測(cè)量范圍的切換,擴(kuò)大了時(shí)間測(cè)量的動(dòng)態(tài)范圍,減少了盲區(qū),增強(qiáng)了連續(xù)測(cè)距的功能。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)可滿足精確魯棒的脈沖測(cè)距要求。

      表 1 采集數(shù)據(jù)

      參考文獻(xiàn)

      [1]張黎明,張 毅,趙 欣.基于TDC的激光測(cè)距傳感器飛行時(shí)間測(cè)量研究[J].傳感器與微系統(tǒng),2011(12):71-74

      [2]章堅(jiān)武,張數(shù)明.TDC-GP2在激光測(cè)距傳感器中的應(yīng)用[J]. 儀表技術(shù)與傳感器, 2009(8):74-76

      [3]殷秀梅,張仁杰,吳 寧.基于時(shí)差法的高精度脈沖式激光測(cè)距系統(tǒng)[J].信息技術(shù),2013(11):161-163,166

      [4]宋 盛,郭 穎,洪光烈.TDC-GP2芯片在脈沖激光測(cè)距系統(tǒng)中的應(yīng)用[J].紅外, 2014(11):10-14

      收稿日期:2016-04-13

      基金項(xiàng)目:河北省自然科學(xué)基金青年基金(E2016210104)

      作者簡(jiǎn)介:閆德立(1981—),男,博士,講師,主要從事電子信息工程的科研與教學(xué)工作yandl@stdu.edu.cn

      DOI:10.13219/j.gjgyat.2016.04.004

      中圖分類號(hào):TN247

      文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1672-3953(2016)04-0014-04

      A Study of an FPGA-and TGC-GP22-Based Continuous Pulse Ranging System

      Yan Deli,Wang Weiming,Jin Shaoyun,He Yaxuan

      (College of Electrical and Electronic Engineering, Shijiazhuang Tiedao University,Shijiazhuang 050043,China)

      Abstract:Aiming at solving the problem of the traditional hardware being unable to realize the aim of the continuous shallow pulse ranging,a new scheme of a continuous pulse ranging combining the FPGA with the TDC-GP22 is proposed in the paper.Methods of using the FPGA to complete the initialization of the TDC-GP22,the configuration of working modes and the specific methods to acquire the measured results are dealt with in detail in the paper, and the switching logic is also designed according to the two different surveying ranges of the TDC-GP22,with the continuous pulse ranging in the larger dynamic scope realized.The experimental results show that the measuring accuracy of the proposed scheme is less than 2 ns,which meets the requirements for pulse ranging.

      Key words:TDC-GP22;FPGA;continuous pulse ranging

      庄浪县| 运城市| 老河口市| 扶沟县| 浦北县| 玉田县| 桦川县| 桃园市| 锦屏县| 若羌县| 罗江县| 宁城县| 丰原市| 元阳县| 涟水县| 枣强县| 株洲县| 尤溪县| 三台县| 洞口县| 阳江市| 门头沟区| 黄浦区| 凤翔县| 丰县| 甘洛县| 东阳市| 法库县| 通许县| 潢川县| 车致| 准格尔旗| 珲春市| 南宫市| 图们市| 怀化市| 肥西县| 泾阳县| 长岛县| 信宜市| 惠东县|