??? 摘 要: 介紹了利用USB2.0技術(shù)設(shè)計(jì)雷達(dá)目標(biāo)和數(shù)據(jù)采集系統(tǒng)" title="數(shù)據(jù)采集系統(tǒng)">數(shù)據(jù)采集系統(tǒng)接口的方案,給出了雷達(dá)目標(biāo)檢測(cè)" title="目標(biāo)檢測(cè)">目標(biāo)檢測(cè)和數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)圖、USB固件" title="固件">固件程序、驅(qū)動(dòng)程序及應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序的設(shè)計(jì)方法。
?? 關(guān)鍵詞: 目標(biāo)檢測(cè)和數(shù)據(jù)采集系統(tǒng)? USB2.0? 固件程序" title="固件程序">固件程序? 驅(qū)動(dòng)程序
?
??? 數(shù)據(jù)采集系統(tǒng)是雷達(dá)目標(biāo)識(shí)別系統(tǒng)的前端部分,也是整個(gè)雷達(dá)目標(biāo)識(shí)別系統(tǒng)中的關(guān)鍵部分之一。雷達(dá)觀(guān)測(cè)目標(biāo)時(shí)取得的用于分析、識(shí)別目標(biāo)的測(cè)量數(shù)據(jù)子集就是通過(guò)數(shù)據(jù)采集獲得的。雷達(dá)目標(biāo)識(shí)別系統(tǒng)為了提高系統(tǒng)的性能,要求獲得的測(cè)量數(shù)據(jù)更加準(zhǔn)確、精度更高。性能完善的數(shù)據(jù)采集手段將使得雷達(dá)目標(biāo)特性分析、特征提取和目標(biāo)識(shí)別方法更加靈活多樣、特征信息更加完整,最終使得整個(gè)識(shí)別系統(tǒng)的性能得到提高。
??? 自20世紀(jì)60年代以來(lái),由于雷達(dá)目標(biāo)識(shí)別技術(shù)具有重要的軍事應(yīng)用價(jià)值,學(xué)術(shù)界和應(yīng)用部門(mén)越來(lái)越重視對(duì)它的研究和應(yīng)用。在雷達(dá)數(shù)據(jù)信息的現(xiàn)場(chǎng)處理中,往往要求能迅速、可靠地完成設(shè)備之間的連接。同時(shí),在芯片集成度越來(lái)越高、功能越來(lái)越強(qiáng)大的技術(shù)背景下,設(shè)備的體積小型化、功能集成、使用方便已成為產(chǎn)品設(shè)計(jì)中的重要思想之一。正是基于這一思想,本文將致力于雷達(dá)目標(biāo)檢測(cè)與數(shù)據(jù)采集系統(tǒng)的USB接口的研究。該系統(tǒng)具有速度快、處理能力強(qiáng)、體積小、擴(kuò)展方便等優(yōu)點(diǎn)。
1 系統(tǒng)硬件設(shè)計(jì)
1.1系統(tǒng)結(jié)構(gòu)
??? 本文開(kāi)發(fā)的基于USB接口的雷達(dá)目標(biāo)檢測(cè)和數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。信號(hào)由兩路輸入:第一路從檢測(cè)AD轉(zhuǎn)換模塊輸入,經(jīng)DSP進(jìn)行算法檢測(cè)后,進(jìn)行數(shù)據(jù)處理,其結(jié)果保存在FIFO內(nèi);第二路由采集AD轉(zhuǎn)換模塊輸入,采樣后的數(shù)據(jù)保存在兩路乒乓存儲(chǔ)器內(nèi)。主機(jī)通過(guò)USB接口可以從FIFO或兩路乒乓存儲(chǔ)器內(nèi)取出所需數(shù)據(jù)。
??????????????????????????????
??? 數(shù)字信號(hào)處理芯片選用TMS320C31-80。TMS320C31是TI公司生產(chǎn)的第一代浮點(diǎn)DSP芯片,具有32位的浮點(diǎn)精度,60ns的單周期指令執(zhí)行時(shí)間,能進(jìn)行整數(shù)、浮點(diǎn)及邏輯運(yùn)算,它是一個(gè)性?xún)r(jià)比較高的浮點(diǎn)處理器,是目前國(guó)內(nèi)應(yīng)用比較廣泛的DSP芯片之一。DSP在系統(tǒng)中主要完成雷達(dá)目標(biāo)檢測(cè)算法。目標(biāo)檢測(cè)算法的基本思想是雙門(mén)限比較方法。第一門(mén)限檢測(cè)用來(lái)判斷目標(biāo)是否存在;第二門(mén)限的檢測(cè)則判斷連續(xù)存在的目標(biāo)的寬度,從而確定檢測(cè)目標(biāo)的大小,這是基于對(duì)第一門(mén)限檢測(cè)后所檢測(cè)到的連續(xù)目標(biāo)個(gè)數(shù)進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)的。“點(diǎn)跡凝聚” 是DSP用于判斷目標(biāo)連續(xù)存在時(shí)采用的基本方法。在目標(biāo)檢測(cè)過(guò)程中,由于天線(xiàn)的發(fā)射波束形狀的影響,可能對(duì)同一目標(biāo)在一段時(shí)間內(nèi)都會(huì)檢測(cè)到, DSP處理算法規(guī)定,在某一段時(shí)間內(nèi)出現(xiàn)的相關(guān)性目標(biāo)為同一目標(biāo),計(jì)算這段時(shí)間該目標(biāo)航跡的中心點(diǎn),從而凝聚得到一個(gè)點(diǎn),將這個(gè)點(diǎn)所在的方位和距離確定為目標(biāo)的方位和距離,稱(chēng)為“點(diǎn)跡凝聚”。
??? 在該系統(tǒng)中,共使用了兩片F(xiàn)PGA芯片,分別是Xilinx公司生產(chǎn)的xcs10和xcs30。它們主要完成以下工作:(1)從主機(jī)發(fā)送方位信息和距離信息到FPGA內(nèi)部的方位寄存器和距離寄存器;(2)對(duì)當(dāng)前方位、當(dāng)前距離進(jìn)行記錄;(3)波門(mén)的產(chǎn)生和終止;(4)給數(shù)據(jù)幀加頭。
??? USB接口芯片CY7C68013的供電電壓為3.3V,可以通過(guò)USB連接電纜上的5V電壓得到供電電流,但是本系統(tǒng)功耗超出了USB協(xié)議中規(guī)定的“對(duì)于總線(xiàn)供電設(shè)備最大輸出電流500mA”的標(biāo)準(zhǔn),所以采取了外供電源的方式。本系統(tǒng)為3.3V/5V電壓混合系統(tǒng),使用一塊CPLD(XCS95144)完成了不同電平之間的轉(zhuǎn)換。
1.2 FX2芯片
??? Cypress公司推出的EZ-USB FX2芯片也叫做CY7C68013,它是業(yè)界第一個(gè)支持USB2.0同時(shí)向下兼容USB1.1規(guī)范的單片機(jī),其數(shù)據(jù)傳輸率可達(dá)到480Mbps。該芯片把USB2.0收發(fā)器、串行接口引擎SIE、增強(qiáng)的8051內(nèi)核、I2C總線(xiàn)接口以及GPIF集成于一體。因其具有速度快、體積小、擴(kuò)展方便、供電方式靈活、支持熱插撥和即插即用方式等特點(diǎn),所以在海量存儲(chǔ)器、打印機(jī)、掃描儀和PCMCIA等各種USB設(shè)備上得到了廣泛的應(yīng)用。同時(shí)Cypress公司提供了相應(yīng)的開(kāi)發(fā)工具,降低了開(kāi)發(fā)難度。
1.3 CY7C68013與FPGA接口
??? 在本課題研究中,確定需要通過(guò)該接口芯片完成的功能有:(1)主機(jī)發(fā)送控制命令給DSP;(2)發(fā)送存儲(chǔ)在FIFO的檢測(cè)結(jié)果給主機(jī);(3)發(fā)送波門(mén)信息以便形成采集波門(mén)得到精細(xì)采集數(shù)據(jù);(4)發(fā)送由主機(jī)傳送來(lái)的通道控制命令;(5)發(fā)送存儲(chǔ)在RAM中的精細(xì)采集數(shù)據(jù)到主機(jī)。根據(jù)上述所必須完成的功能,確定USB接口芯片CY7C68013與外部的FPGA的連接方式,如圖2所示。
???????????????????????????
2 軟件設(shè)計(jì)
??? 首先,USB芯片要完成與PC主機(jī)的通信。因而,USB芯片必須開(kāi)發(fā)有內(nèi)部的固件程序,以提供必要的設(shè)備描述符信息,響應(yīng)主機(jī)的通信請(qǐng)求,并完成與FPGA的數(shù)據(jù)傳輸。而在主機(jī)端,則必須有能夠支持USB協(xié)議并控制傳輸?shù)腢SB驅(qū)動(dòng)程序,在驅(qū)動(dòng)程序的上端,還要有實(shí)現(xiàn)與驅(qū)動(dòng)程序接口的應(yīng)用程序。
2.1 固件程序設(shè)計(jì)
??? 固件程序完成的工作主要有處理設(shè)備請(qǐng)求和數(shù)據(jù)傳輸兩個(gè)方面。設(shè)備請(qǐng)求的處理通過(guò)一個(gè)死循環(huán)完成,數(shù)據(jù)傳輸則利用中斷服務(wù)程序?qū)崿F(xiàn)。整個(gè)固件工作流程如圖3所示。
???????????????????????????
??? 固件主程序主要完成對(duì)設(shè)備請(qǐng)求的處理。具體過(guò)程如下:先初始化狀態(tài)變量,再調(diào)用一個(gè)初始化函數(shù)TD_init(),在該函數(shù)中完成設(shè)置中斷寄存器、設(shè)置讀寫(xiě)脈沖輸出使能、設(shè)置PB口輸出使能等功能,然后進(jìn)入一個(gè)死循環(huán)。在死循環(huán)中先調(diào)用用戶(hù)定義的TD_POLL()函數(shù),該函數(shù)在設(shè)備功能單一情況下可以直接處理數(shù)據(jù)傳輸而無(wú)需使用中斷的方法,本設(shè)備因?yàn)橛玫蕉鄠€(gè)端點(diǎn),需要完成對(duì)外部模塊的多路控制,所以沒(méi)有采用通過(guò)TD_POLL()完成數(shù)據(jù)傳輸?shù)姆椒?,而是在接到SETUP令牌的情況下調(diào)用設(shè)備請(qǐng)求處理函數(shù)完成設(shè)備請(qǐng)求的處理。
??? 中斷服務(wù)程序主要用來(lái)完成數(shù)據(jù)傳輸,每一個(gè)端點(diǎn)的數(shù)據(jù)傳輸請(qǐng)求通過(guò)相應(yīng)的中斷處理程序完成,在中斷服務(wù)程序中,必須注意在完成相應(yīng)的功能后都必須進(jìn)行中斷標(biāo)志的清除。
??? 對(duì)于本USB接口芯片,中斷位的設(shè)置由硬件完成,由軟件清除。在清除過(guò)程中,除了對(duì)該端點(diǎn)中斷標(biāo)志位清除外,還必須清除USB中斷標(biāo)志位,否則,將出現(xiàn)中斷丟失的錯(cuò)誤。
2.2 驅(qū)動(dòng)程序的設(shè)計(jì)
??? 驅(qū)動(dòng)程序開(kāi)發(fā)需較長(zhǎng)的周期,這里使用的是Cypress公司提供的EZUSB FX2通用驅(qū)動(dòng)程序,實(shí)驗(yàn)結(jié)果表明,系統(tǒng)能正常工作。
2.3 主機(jī)應(yīng)用程序
??? 主機(jī)應(yīng)用程序工作流程如圖4所示。
??????????????????????????????
??? 最上層的應(yīng)用程序是用VC6.0開(kāi)發(fā)的,主要完成與驅(qū)動(dòng)程序的通信并接收用戶(hù)應(yīng)用軟件的各種操作請(qǐng)求。應(yīng)用程序的總體結(jié)構(gòu)由一個(gè)對(duì)話(huà)框窗口處理函數(shù)和一個(gè)對(duì)話(huà)框主程序組成,在消息處理函數(shù)中完成對(duì)各種消息的處理。主機(jī)應(yīng)用程序主要完成3項(xiàng)功能:控制設(shè)備狀態(tài)、發(fā)送DSP工作參數(shù)、接收采集結(jié)果。另外,還完成固件下載、波形顯示,形成數(shù)據(jù)文件等功能。在實(shí)際的開(kāi)發(fā)過(guò)程中,可以根據(jù)用戶(hù)需求添加函數(shù)完成相應(yīng)的功能,如建立數(shù)據(jù)庫(kù)、動(dòng)態(tài)顯示等。
2.4 應(yīng)用程序和驅(qū)動(dòng)程序的通信
??? 在Windows中,應(yīng)用程序?qū)崿F(xiàn)與WDM通信的過(guò)程是:應(yīng)用程序先用CreateFile函數(shù)打開(kāi)設(shè)備,然后用DeviceIoControl與WDM進(jìn)行通信,包括從WDM中讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)給WDM兩種情況,也可以用ReadFile從WDM中讀數(shù)據(jù)或用WriteFile寫(xiě)數(shù)據(jù)給WDM。當(dāng)應(yīng)用程序退出時(shí),用Closehandle關(guān)閉設(shè)備。這將產(chǎn)生對(duì)應(yīng)于此設(shè)備的相應(yīng)IRP。下面給出了應(yīng)用程序與驅(qū)動(dòng)程序進(jìn)行通信的函數(shù):
??? DeviceIoControl (handle,
????????? IOCTL_EZUSB_BULK_WRITE,
??????&bulkControl,?
????????? sizeof(BULK_TRANSFER_CONTROL)?????????
????????? &outBuffer,??????????
????????? OutPacketSize,???????????
????? &nBytes,
????? NULL );?????????? // 本設(shè)計(jì)中采用bulk傳輸方式。
??? 基于雷達(dá)目標(biāo)檢測(cè)和數(shù)據(jù)采集系統(tǒng)的USB接口具有傳輸速度快、通用性強(qiáng)、性?xún)r(jià)比高等特點(diǎn),能夠滿(mǎn)足雷達(dá)數(shù)據(jù)實(shí)時(shí)傳輸?shù)男枰?BR>參考文獻(xiàn)
[1]?邊海龍. USB2.0設(shè)備的設(shè)計(jì)與開(kāi)發(fā)[M]. 北京: 人民郵電出版社,2004.
[2] 武安河. Windows 2000/XP WDM設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[M].北京:電子工業(yè)出版社, 2003.
[3] ?王書(shū)宏,姜衛(wèi)東,邱兆坤,等.雷達(dá)自動(dòng)目標(biāo)識(shí)別系統(tǒng)中目標(biāo)檢測(cè)模塊的DSP實(shí)現(xiàn)[J].國(guó)防科學(xué)技術(shù)大學(xué)學(xué)報(bào),
?2002,24(3):60-63.