??? 摘 要: 設(shè)計(jì)了基于FPGA和USB接口技術(shù)的新型電視跟蹤性能測(cè)試儀。在介紹硬件設(shè)計(jì)方案的基礎(chǔ)上,描述了生成模擬目標(biāo)和判斷跟蹤狀態(tài)的FPGA內(nèi)部軟件結(jié)構(gòu)。選擇LabWindows/CVI" title="LabWindows/CVI">LabWindows/CVI語(yǔ)言搭建測(cè)試儀的軟件平臺(tái),并采用調(diào)用動(dòng)態(tài)鏈接庫(kù)" title="動(dòng)態(tài)鏈接庫(kù)">動(dòng)態(tài)鏈接庫(kù)的方法,完成了上位機(jī)" title="上位機(jī)">上位機(jī)和測(cè)試儀的USB通信軟件設(shè)計(jì)。
??? 關(guān)鍵詞: 跟蹤性能測(cè)試? USB? FPGA? 模擬目標(biāo)? LabWindows/CVI
?
??? 電視跟蹤系統(tǒng)" title="電視跟蹤系統(tǒng)">電視跟蹤系統(tǒng)作為一種被動(dòng)式目標(biāo)探測(cè)跟蹤系統(tǒng),具有分辨率高、圖像可見(jiàn)、抗干擾性能好、成本低等優(yōu)點(diǎn),已成為現(xiàn)代武器系統(tǒng)中不可缺少的目標(biāo)捕獲跟蹤裝置。
??? 電視跟蹤性能的優(yōu)劣直接影響或決定著電視跟蹤系統(tǒng)的跟蹤效果和跟蹤能力。為了正確評(píng)估和判定電視跟蹤系統(tǒng)的跟蹤性能,目前主要是對(duì)電視跟蹤系統(tǒng)的最小跟蹤目標(biāo)、最小跟蹤對(duì)比度、目標(biāo)捕獲時(shí)間、目標(biāo)捕獲概率、跟蹤速度和跟蹤誤差等跟蹤性能指標(biāo)進(jìn)行測(cè)試。以往的電視跟蹤性能測(cè)試裝置具有電路設(shè)計(jì)復(fù)雜、系統(tǒng)體積較大、擴(kuò)展性差等缺點(diǎn)。本文將現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和USB接口技術(shù)應(yīng)用到電視跟蹤性能測(cè)試儀的硬件設(shè)計(jì)中,并且利用LabWindows/CVI語(yǔ)言搭建系統(tǒng)的軟件平臺(tái),使該測(cè)試儀與以前的測(cè)試裝置相比,具有集成度高、即插即用、擴(kuò)展性好以及操作界面友好的優(yōu)點(diǎn)[1-2]。
1 系統(tǒng)硬件組成及工作原理
1.1 系統(tǒng)硬件組成
??? 系統(tǒng)主要由USB接口電路、模擬目標(biāo)生成電路和方位、俯仰誤差電壓采集電路組成,硬件組成如圖1所示。
?

1.2 工作原理
??? 測(cè)試者通過(guò)上位機(jī)的主界面程序選擇測(cè)試項(xiàng)目,然后上位機(jī)通過(guò)USB總線將模擬目標(biāo)的基本信息(大小、速度等)傳送給模擬目標(biāo)生成電路,由它來(lái)產(chǎn)生模擬目標(biāo)的視頻信號(hào)。被測(cè)電視跟蹤系統(tǒng)接收到目標(biāo)視頻信號(hào)后,輸出目標(biāo)的方位和俯仰誤差電壓。測(cè)試儀的誤差電壓采集電路采集這兩路電壓,并送入模擬目標(biāo)生成電路中,由該電路中的FPGA 來(lái)計(jì)算當(dāng)前目標(biāo)在視場(chǎng)中的位置,并與輸出目標(biāo)的位置相比較,從而確定當(dāng)前電視跟蹤系統(tǒng)搜索或跟蹤的工作狀態(tài)。根據(jù)工作狀態(tài)的變化確定被測(cè)指標(biāo),F(xiàn)PGA通過(guò)USB總線將測(cè)試結(jié)果傳送給上位機(jī),最后完成整個(gè)測(cè)試。
2 核心電路的設(shè)計(jì)
2.1模擬目標(biāo)生成電路設(shè)計(jì)
??? 該部分電路輸出的是模擬目標(biāo)視頻信號(hào),而且是CCIR制式的標(biāo)準(zhǔn)視頻信號(hào)。在以前的測(cè)試裝置中,模擬目標(biāo)電路是由許多模擬分立元件設(shè)計(jì)而成,對(duì)于視頻信號(hào)這樣時(shí)序要求嚴(yán)格的模擬信號(hào)來(lái)說(shuō),設(shè)計(jì)過(guò)程復(fù)雜,硬件體積較大。FPGA具有高集成度、時(shí)序功能強(qiáng)以及設(shè)計(jì)周期短等特點(diǎn),因此將FPGA引入到該硬件部分的設(shè)計(jì)中。模擬目標(biāo)生成電路主要由FPGA及其外圍電路和視頻D/A電路兩部分組成,原理圖如圖2所示。
?

FPGA選用Xilinx公司的Spartan Ⅲ系列FPGA器件xc3s400,它有40萬(wàn)門(mén)和8 064個(gè)邏輯單元[3]。
??? D/A芯片選擇AD公司的ADV7123芯片,該芯片在像素時(shí)鐘(CLK)、消隱信號(hào)(CBLK)和同步信號(hào)(CSYN)的共同作用下,將10位圖像灰度信號(hào)轉(zhuǎn)換成標(biāo)準(zhǔn)的模擬視頻信號(hào)。
??? 配置電路包括兩部分,一是JTAG下載電路,二是使用PROM的FPGA配置電路。前者是為了便于調(diào)試,可以使用下載線將上位機(jī)中的*.BIT文件下載到FPGA中運(yùn)行調(diào)試;后者是在系統(tǒng)設(shè)計(jì)完成后,將上位機(jī)的*.MCS文件下載到PROM中,系統(tǒng)每次加電時(shí),PROM會(huì)自動(dòng)將程序配置到FPGA中。
??? 本系統(tǒng)主要輸出標(biāo)準(zhǔn)CCIR視頻信號(hào),它的行有效像素是768,行有效時(shí)間52μs,所以在晶振電路中采用了14.75MHz的有源晶振。
??? 此外,模擬目標(biāo)生成電路還與上位機(jī)通過(guò)USB總線進(jìn)行數(shù)據(jù)傳輸,并接收誤差采集電路發(fā)送來(lái)的方位和俯仰誤差電壓值。
2.2 誤差電壓采集電路設(shè)計(jì)
??? 誤差電壓采集電路原理圖如圖3所示。
?

??? 本系統(tǒng)對(duì)A/D轉(zhuǎn)換芯片的分辨率要求十分嚴(yán)格。如果分辨率選擇不當(dāng),當(dāng)模擬目標(biāo)移動(dòng)較小的像素?cái)?shù)時(shí),A/D轉(zhuǎn)換后的方位和俯仰誤差電壓值不能分辨出該目標(biāo)位置的變化,這將對(duì)測(cè)試結(jié)果產(chǎn)生影響。所以選擇12位的A/D轉(zhuǎn)換器AD574,根據(jù)計(jì)算電壓分辨率的公式:
??? 
??? 因此在10V的電壓范圍內(nèi),芯片的電壓分辨率達(dá)到2.44mV,能夠滿(mǎn)足系統(tǒng)的指標(biāo)要求。
??? FPGA的I/O引腳輸出高低電平控制AD574工作,包括轉(zhuǎn)換位數(shù)選擇、芯片允許線、讀結(jié)果/啟動(dòng)轉(zhuǎn)換線等。同時(shí), FPGA控制多通道信號(hào)選擇芯片分時(shí)將方位和俯仰誤差電壓信號(hào)接入AD574進(jìn)行轉(zhuǎn)換,并且讀取轉(zhuǎn)換后的數(shù)字結(jié)果。
2.3 USB接口電路設(shè)計(jì)
??? USB芯片選用的是Cypress公司的EZ-USB FX2芯片CY7C68013A,該芯片支持USB2.0,又向下兼容USB1.1,既負(fù)責(zé)USB事務(wù)處理也兼具微處理器的控制功能。CY7C68013A的CPU采用增強(qiáng)8051,提高了運(yùn)算速度,增強(qiáng)了功能,同時(shí)該芯片采用內(nèi)部RAM用于程序和數(shù)據(jù)的存取。將該芯片置于Slave FIFO模式下,由FPGA控制USB接口芯片中FIFO的讀和寫(xiě),最后完成PC機(jī)與FPGA數(shù)據(jù)傳輸?shù)墓ぷ?SUP>[4]。
??? 為了引導(dǎo)加載正確的驅(qū)動(dòng)程序,還設(shè)計(jì)了EEPROM加載電路,當(dāng)該部分電路加電時(shí),CY7C68013A會(huì)自動(dòng)復(fù)制存儲(chǔ)在EEPROM中的制造商ID(VID)、產(chǎn)品ID(PID)和設(shè)備ID(DID)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 FPGA內(nèi)部的軟件設(shè)計(jì)
??? FPGA內(nèi)部軟件設(shè)計(jì)主要包括三部分:
??? (1)模擬目標(biāo)生成的程序設(shè)計(jì)" title="程序設(shè)計(jì)">程序設(shè)計(jì);
??? (2)判斷跟蹤狀態(tài)的程序設(shè)計(jì);
??? (3)與上位機(jī)進(jìn)行通信的程序設(shè)計(jì)。
??? 設(shè)計(jì)過(guò)程中采用了自底向上的設(shè)計(jì)方法。在FPGA設(shè)計(jì)軟件ISE的開(kāi)發(fā)環(huán)境下,首先利用Verilog語(yǔ)言設(shè)計(jì)這三個(gè)程序子模塊,然后將這些模塊在原理圖設(shè)計(jì)環(huán)境中進(jìn)行頂層的連接。軟件結(jié)構(gòu)框圖如圖4所示。
?

?
3.2 基于LabWindows/CVI的主機(jī)應(yīng)用程序設(shè)計(jì)
??? LabWindows/CVI將源碼編程、32位ANSI C編譯、連接、調(diào)試及標(biāo)準(zhǔn)ANSI C庫(kù)等集成在一個(gè)交互式開(kāi)發(fā)平臺(tái)中,采用簡(jiǎn)單直觀的圖形用戶(hù)界面設(shè)計(jì),利用函數(shù)面板輸入函數(shù)的參數(shù),采用事件驅(qū)動(dòng)方式和回調(diào)函數(shù)方式的編程技術(shù),有效提高了工程設(shè)計(jì)的效率和可靠性[5]。
??? 本系統(tǒng)的測(cè)試主程序是在LabWindows/CVI環(huán)境下設(shè)計(jì)的,部分測(cè)試界面如圖5所示。
?

??? 主機(jī)程序需要和下位機(jī)進(jìn)行USB通信,所以編制了一套USB通信的動(dòng)態(tài)鏈接庫(kù)供主程序調(diào)用。該動(dòng)態(tài)鏈接庫(kù)是在VC環(huán)境下編譯的,它封裝了幾個(gè)常用的USB功能函數(shù)(讀函數(shù)、寫(xiě)函數(shù)、手動(dòng)下載固件函數(shù)和讀取描述符函數(shù)等)。在LabWindows/CVI語(yǔ)言中,調(diào)用了該動(dòng)態(tài)鏈接庫(kù)之后,只需要寫(xiě)出功能函數(shù)名及其參數(shù),就可以實(shí)現(xiàn)USB通信,十分有利于測(cè)試者對(duì)軟件進(jìn)行升級(jí)和二次開(kāi)發(fā)。
3.3 USB固件設(shè)計(jì)以及驅(qū)動(dòng)程序的開(kāi)發(fā)
??? USB固件程序是在Keil C環(huán)境下設(shè)計(jì)的。Cypress公司提供的軟件開(kāi)發(fā)包中已經(jīng)提供了固件框架,只需要開(kāi)發(fā)者對(duì)其中的部分程序段進(jìn)行修改就可以使用。
??? 為了便于用戶(hù)操作,將固件程序和自動(dòng)下載驅(qū)動(dòng)程序進(jìn)行綁定。首先將固件的十六進(jìn)制文件轉(zhuǎn)換為C文件,然后用其中的數(shù)組替換ezloader模板中firm.c文件的數(shù)組,最后在DDK開(kāi)發(fā)環(huán)境中編譯出自動(dòng)下載驅(qū)動(dòng)程序tvfirmloader.sys,并在DriverWorks環(huán)境下設(shè)計(jì)了結(jié)合本系統(tǒng)硬件的驅(qū)動(dòng)程序tvtest.sys。為使驅(qū)動(dòng)程序正常工作,還為它編寫(xiě)了安裝信息文件tvtest.inf[6]。
4 實(shí)驗(yàn)結(jié)果
??? 對(duì)某型電視跟蹤系統(tǒng)的電視跟蹤性能指標(biāo)進(jìn)行了測(cè)試。在測(cè)試過(guò)程中,分出一路視頻信號(hào)進(jìn)入圖像采集卡采集模擬目標(biāo)圖像,另一路進(jìn)入示波器觀察視頻信號(hào)的波形。圖6是模擬目標(biāo)的單幀圖像;圖7是在示波器中顯示的模擬目標(biāo)視頻信號(hào)波形。
?

?

??? 圖6中顯示的是12×12像素靜止黑色目標(biāo),主操作界面設(shè)置的對(duì)比度是55%。從圖7的波形中可以觀察到信號(hào)周期為64μs,像素有效時(shí)間為52μs,完全符合CCIR標(biāo)準(zhǔn)視頻信號(hào)的制式要求。從圖7中還可以觀察到每場(chǎng)有6行出現(xiàn)黑目標(biāo)的電平值,每幀出現(xiàn)了12行這樣的電平值,從而驗(yàn)證了目標(biāo)垂直大小為12像素的正確性。
??? 使用該檢測(cè)儀對(duì)多種電視跟蹤系統(tǒng)進(jìn)行了測(cè)試,在使用過(guò)程中發(fā)現(xiàn)該儀器具有通用性好、擴(kuò)展性強(qiáng)、可靠性高以及攜帶方便等特點(diǎn)。因此,該測(cè)試儀在電視跟蹤系統(tǒng)測(cè)試中將會(huì)有很好的應(yīng)用前景。
參考文獻(xiàn)
[1] ?GJB 1830-93,電視跟蹤器通用規(guī)范[S].
[2] ?胡文剛,汪岳峰,牛燕雄,等.電視跟蹤箱跟蹤性能檢測(cè)儀設(shè)計(jì)[J].光電子技術(shù)與信息,2005,18(1):61-64.
[3] Spartan 3 FPGA Family Complete Data Sheet.2005.
[4] ?錢(qián)峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006:22-23.
[5] ?孫曉云,郭立煒,孫會(huì)琴.基于LabWindows/CVI的虛擬儀器設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005:5.
[6] ?宋杰,何友,唐小明.基于USB2.0的雷達(dá)視頻信號(hào)高速采集和實(shí)時(shí)采集系統(tǒng)[J]. 電子技術(shù)應(yīng)用,2006,32(10):12-14.
