基于USB接口的探地雷達數據采集系統
1 引 言
本文引用地址:http://dyxdggzs.com/article/187532.htm探地雷達( ground penetrating radar,GPR)是一種新型的電磁探測設備,它具有快速、簡(jiǎn)便的對淺層目標和結構進(jìn)行無(wú)損探測的特點(diǎn),也是目前分辨率、效率最高的地下目標探測設備之一,因此被廣泛的應用于城建、交通、地質(zhì)、考古、國防等部門(mén)。在探地雷達的應用中,能否準確、高效地采集數據是探地雷達系統實(shí)用性和可靠性的判據之一。數據采集的準確性直接關(guān)系到探測目標的準確性和雷達數據的進(jìn)一步處理工作;采集數據的速度關(guān)系到系統能否實(shí)現實(shí)時(shí)顯示。所以,當雷達設備將采集數據傳回主機時(shí),就需要選擇一種接口來(lái)實(shí)現數據準確、高速的傳輸。
傳統的數據采集系統的數據傳輸接口在低速時(shí)常采用標準串行口或并行口,高速時(shí)一般采用PCI總線(xiàn)接口。它們存在如下缺點(diǎn):雖然標準串行口或并行口應用開(kāi)發(fā)比較簡(jiǎn)單,但是數據傳輸速率較低;PCI總線(xiàn)盡管數據傳輸速率比較快,但是硬件設計和驅動(dòng)開(kāi)發(fā)難度較大,PC I卡的尺寸面積限制了I/O接口的擴展;同時(shí),這三者都不支持即插即用的功能。而USB接口規范1. 1中的12Mbp s的傳輸速率已經(jīng)可以滿(mǎn)足探地雷達數據采集系統的使用需求,其接口簡(jiǎn)單、便攜,支持即插即用的優(yōu)點(diǎn)又在很大程度上簡(jiǎn)化了系統的硬件設備,提高了雷達設備的可移動(dòng)性。正是基于USB接口的這些優(yōu)點(diǎn),設計了基于USB接口的探地雷達數據采集系統,并開(kāi)發(fā)了配套的應用軟件,實(shí)現了探地雷達數據的采集、傳輸和實(shí)時(shí)顯示。
2 系統組成與工作原理
2. 1 系統組成
探地雷達數據采集系統由兩部分組成:計算機和數據采集卡。計算機作為采集系統的主控設備,實(shí)現對系統的控制和數據處理等功能;數據采集卡由模擬信號放大器、數控濾波器、時(shí)控增益放大器、高精度AD變換電路、F IFO、FT245 USB接口電路和時(shí)序控制電路組成,主要完成對取樣電路輸出信號的放大、濾波、采集等任務(wù),并將采集數據通過(guò)USB接口傳輸到計算機內存中,供計算機處理和實(shí)時(shí)顯示。系統組成框圖如圖1所示。
數據采集系統采用F IFO 設計數據傳送通道,大大簡(jiǎn)化了系統的硬件電路和控制時(shí)序。在進(jìn)行數據采集的同時(shí),控制邏輯還將存儲在RAM中的增益曲線(xiàn)數據周期性的送入DAC中,以實(shí)現時(shí)控增益放大。在數據采集卡中還設計了一個(gè)RS - 232 控制器,用于接收外部定位裝置發(fā)送的定位信息。在探地雷達進(jìn)行移動(dòng)探測時(shí),這個(gè)定位信息用于標示目標的地理位置。
圖1 探地雷達數據采集系統組成框圖
2. 2 工作原理
探地雷達數據采集系統在工作時(shí),首先通過(guò)打開(kāi)計算機應用軟件將雷達設備啟動(dòng),然后將工作參數傳送給數據采集卡,完成對雷達各項參數的控制。
命令被響應后,雷達開(kāi)始正常工作。采集卡將采集到的數據經(jīng)過(guò)采集控制和傳輸控制后傳送給計算機。
數據采集控制:數據采集卡根據主機設置的參數采集雷達信號。首先將模擬信號進(jìn)行預處理,預處理包括濾波處理和增益控制等,以去除模擬信號中的噪聲,使模擬信號的幅度適于進(jìn)行AD 轉換。
然后進(jìn)行AD 轉換,對模擬信號采樣,得到數字信號。數據采集卡在接收探地雷達傳來(lái)的模擬視頻信號的同時(shí),還接收幀同步信號。數據采集卡將轉換得到的A - scan (A - scan:探地雷達在一個(gè)測量位置探測獲取的一維時(shí)域波形圖)數據與幀同步數據混合,然后存入FIFO。
數據傳輸控制:計算機通過(guò)USB接口對數據采集卡進(jìn)行訪(fǎng)問(wèn),并讀取F IFO 中的數據。計算機對數據采集卡的訪(fǎng)問(wèn)是通過(guò)查詢(xún)方式完成的。數據采集卡內置的F IFO容量設計為32K ×9bit,如果計算機沒(méi)有及時(shí)讀走FIFO內的數據,F IFO就會(huì )出現溢出錯誤。所以查詢(xún)的時(shí)間間隔要滿(mǎn)足在該間隔內采集的數據不能大于F IFO的容量;另一方面,查詢(xún)間隔太短,會(huì )加大計算機系統的負擔,影響計算機進(jìn)行數據處理的速度,所以要選取適當的查詢(xún)間隔。以數據采集卡的最快采集速度為例進(jìn)行計算: 每個(gè)scan的采樣點(diǎn)數為1024,采樣速率為512 scan / s,每一點(diǎn)的數據長(cháng)度為2字節。這樣在1 s內采集數據的大小為1024 ×2B ×512 = 1MB。在這樣的采樣率下,經(jīng)32ms采集的數據就可將F IFO 裝滿(mǎn),考慮到計算機系統的其它因素可能導致數據傳輸的阻礙,將查詢(xún)間隔設為20ms。此時(shí)既可以滿(mǎn)足數據傳輸的可靠性,又可節約計算機系統的資源。
3 系統的設計與實(shí)現
3. 1 硬件設計
與一般的通用數據采集卡不同,探地雷達數據采集系統的數據采集卡不僅要完成數據的采集,還需要根據探地雷達信號的特點(diǎn),對模擬信號進(jìn)行相應的預處理工作。
由于探測越深的目標,探地雷達接收的回波信號越小。為了提高對深層目標的分辨率,要采用時(shí)控增益放大器對取樣電路輸出的信號進(jìn)行放大。對淺層目標反射的較強的回波信號,放大器具有較小的增益;對深層目標反射的較弱的回波信號,放大器具有較大的增益。由于探地雷達對地下目標進(jìn)行重復掃描,所以放大器的增益曲線(xiàn)是與掃描頻率同步的周期信號,也就是時(shí)間的函數,所以稱(chēng)為時(shí)控增益放大器。時(shí)控增益放大器的增益曲線(xiàn)通過(guò)計算機軟件進(jìn)行調節,可以為任意的曲線(xiàn)。這樣就給使用者帶來(lái)了很大的靈活性,實(shí)驗中可以對感興趣回波區域的放大增益進(jìn)行調節以使目標更加明顯。時(shí)控增益放大器由壓控增益放大器、DAC和FPGA內部的RAM及控制電路組成。
由于不同的采樣點(diǎn)數和掃描速度使得探地雷達接收機輸出信號的有效帶寬不同,為了提高信噪比,設計了模擬可控低通濾波以實(shí)現對不同帶寬信號的低通濾波。該部分采用集成的開(kāi)關(guān)電容濾波器設計,同時(shí)在FPGA中設計控制電路對該濾波器進(jìn)行控制。最終實(shí)現了一個(gè)截止頻率為0. 1 - 50KHz可變、8階巴特沃思低通濾波器。
在USB芯片的選取上,選擇了FTD I公司推出的FT245BM芯片。該芯片功能強大,傳輸速率快,能夠實(shí)現USB協(xié)議與并行I/O協(xié)議之間的轉換,并支持USB1. 1 及USB2. 0 規范,數據傳輸速率可達1MB /S。不論從芯片本身的功能,還是從系統開(kāi)發(fā)的角度出發(fā),該芯片都是探地雷達數據采集系統USB接口設計的理想選擇。FT245BM片內128 字節的接收F IFO和384字節的發(fā)送F IFO使得芯片可以實(shí)現高速數據吞吐。當USB 外設向主機傳輸數據時(shí),只需在芯片發(fā)送器的狀態(tài)位為空時(shí)向設備寫(xiě)入一個(gè)字節寬度即可。如果發(fā)送FIFO 已滿(mǎn),設備將發(fā)送器的狀態(tài)位設置為滿(mǎn)以禁止數據寫(xiě)入,直到F IFO中有部分數據通過(guò)USB接口傳輸出去。當主機通過(guò)USB向外設傳輸數據時(shí),設備將首先判斷芯片接收器的狀態(tài)位是否為滿(mǎn)以確定是否可以接收數據,然后外設從主機讀取數據直到接收器的狀態(tài)位為滿(mǎn),表明已沒(méi)有可以讀取的數據。
3. 2 驅動(dòng)程序設計
W indows系統下的USB驅動(dòng)包括三層,從高到低依次是:USB客戶(hù)端設備驅動(dòng)(USB Client DeviceDriver) 、USB總線(xiàn)驅動(dòng)(USB Hub (Bus) Driver) 、主機控制器驅動(dòng)(Host ControllerDriver)。后兩者由Windows系統提供,用戶(hù)只需要開(kāi)發(fā)USB 客戶(hù)端設備驅動(dòng)程序,FTD I公司提供了一個(gè)通用的驅動(dòng)程序(General Purpose Driver) ,即FTD2XX. SYS。為了增強系統的通用性和可移植性,可以將設備驅動(dòng)程序( FTD2XX. SYS)進(jìn)行動(dòng)態(tài)鏈接庫函數封裝,得到動(dòng)態(tài)鏈接庫FTD2XX. DLL,從而可以通過(guò)動(dòng)態(tài)鏈接庫直接訪(fǎng)問(wèn)驅動(dòng)程序。驅動(dòng)程序的結構如圖2所示。
實(shí)現動(dòng)態(tài)鏈接庫對驅動(dòng)程序的訪(fǎng)問(wèn),首先調用FTD I公司提供的接口函數FT_Open ( )打開(kāi)設備并獲得驅動(dòng)程序的句柄,然后調用FT_GetStatus ( )獲得設備接收數據的長(cháng)度、傳輸數據的長(cháng)度和設備的當前狀態(tài),從而通過(guò)驅動(dòng)程序得到設備輸出緩沖區的信息。進(jìn)而調用函數FT_Read ( )和FT_W rite ( )實(shí)現對設備的讀寫(xiě)。當應用軟件退出時(shí),用FT_Close ( )關(guān)閉設備。
評論