国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于USB虛擬技術(shù)的FPGA遠程片內(nèi)調(diào)試方法實現(xiàn)

2016-01-23 18:53翟剛毅王靜嬌姜小祥中國船舶重工集團公司第七二四研究所南京211153
雷達與對抗 2015年2期

翟剛毅,王靜嬌,姜小祥,楊 陽(中國船舶重工集團公司第七二四研究所,南京211153)

?

基于USB虛擬技術(shù)的FPGA遠程片內(nèi)調(diào)試方法實現(xiàn)

翟剛毅,王靜嬌,姜小祥,楊陽
(中國船舶重工集團公司第七二四研究所,南京211153)

摘要:為了方便FPGA調(diào)試,針對Xilinx公司的FPGA提出了一種遠程片內(nèi)調(diào)試方法。該方法主要分調(diào)試計算機端和測試板卡端兩部?分的實現(xiàn)。調(diào)試計算機端開發(fā)上層應(yīng)用軟件,創(chuàng)建虛擬USB設(shè)備;測試板卡端以ARM為核心,具有網(wǎng)絡(luò)和USB主機功能,并完成USB到JTAG轉(zhuǎn)換,最終實現(xiàn)調(diào)試計算機上通過網(wǎng)絡(luò)進行遠程調(diào)試。

關(guān)鍵詞:虛擬USB設(shè)備; FPGA遠程調(diào)試; ARM; USB主機;網(wǎng)絡(luò)傳輸

0 引言

雷達研制中大量使用FPGA進行預(yù)處理,F(xiàn)PGA系統(tǒng)在使用和調(diào)試過程中需要通過USB電纜進行bit流下載、chipscope調(diào)試等。而下載電纜傳輸距離有限,在某些狹小空間和無人值守場所急需實現(xiàn)FPGA的遠程加載和調(diào)試。

本文基于USB虛擬技術(shù)針對Xilinx公司的FPGA開發(fā)了一種遠程調(diào)試方法,利用網(wǎng)絡(luò)接口方便、傳輸距離遠的優(yōu)點,在FPGA板卡上嵌入相應(yīng)電路,直接通過FPGA板卡網(wǎng)口連接到調(diào)試計算機實現(xiàn)遠程加載、調(diào)試功能。

1 總體設(shè)計

如圖1所示,本系統(tǒng)主要包括調(diào)試計算機和測試板卡兩部分。調(diào)試計算機上開發(fā)的應(yīng)用軟件通過網(wǎng)絡(luò)連接板卡,實現(xiàn)FPGA的遠程調(diào)試。上層應(yīng)用軟件基于MFC編寫,并內(nèi)嵌基于DSF架構(gòu)的虛擬USB設(shè)備。板卡電路核心ARM處理器采用TI公司的TM4C129XNCZAD芯片,USB轉(zhuǎn)JTAG電路采用FTDI公司的FT232芯片。

ARM處理器為每一塊板卡分配唯一的IP地址,調(diào)試計算機端的應(yīng)用軟件通過IP地址來選擇不同的板卡。板卡上電后,ARM對USB設(shè)備進行枚舉,USB設(shè)備信息通過網(wǎng)絡(luò)上傳到調(diào)試計算機。應(yīng)用軟件使調(diào)試計算機端的Xilinx軟件(如impact和chipscope)與板卡無縫連接,從而進行FPGA的加載、調(diào)試,就像本地連接了FPGA下載電纜。

圖1 系統(tǒng)總體框架

2 調(diào)試計算機端軟件開發(fā)

調(diào)試計算機端主要開發(fā)上層應(yīng)用軟件,其內(nèi)嵌虛擬USB設(shè)備。在開發(fā)的上層應(yīng)用軟件中,用戶可以增加或刪除相應(yīng)板卡的IP地址,工作時選擇某個IP地址的板卡,與其建立連接,并創(chuàng)建下載電纜的虛擬USB設(shè)備,其在操作系統(tǒng)層面上與實際設(shè)備沒有區(qū)別,可以無縫地和Xilinx軟件交互。

本文的虛擬設(shè)備是基于DSF(Device Simulation Framework)開發(fā)的。DSF提供了通過軟件編程來虛擬USB設(shè)備的架構(gòu)[1]。DSF編程環(huán)境包括一套完成USB虛擬設(shè)備中各種組件的COM對象、運行服務(wù)和USB2.0 EHCI虛擬控制器,具體架構(gòu)如圖2所示。微軟已經(jīng)提供了可用的虛擬USB控制器,本文主要開發(fā)了COM組件。COM組件分為服務(wù)器和客戶端兩部分:服務(wù)器即一個描述設(shè)備功能的動態(tài)鏈接庫,客戶端用于控制虛擬設(shè)備行為。

圖2 DSF架構(gòu)

2.1 COM動態(tài)鏈接庫開發(fā)

COM動態(tài)鏈接庫實際是一個COM實體類(如CJTAGDevice)的實現(xiàn),USB設(shè)備虛擬器主要使用DSF架構(gòu)提供的SoftUSBDevice COM組件直接和控制器通信,并處理標準USB設(shè)備請求和其他事件等。

圖3 SoftUSB對象結(jié)構(gòu)圖

SoftUSBDevice對象結(jié)構(gòu)如圖3所示,其下屬包含了USB設(shè)備的配置信息,其中SoftUSBConfiguration、SoftUSBInterface、SoftUSBEndpoint對象分別包含了配置描述符、接口描述符、端點描述符特性。SoftUSBEndpoint同時控制USB數(shù)據(jù)的輸入和輸出,本文設(shè)置了一個IN端點和一個OUT端點。端點可以使用事件觸發(fā)(event-driven)或輪詢(polled data)模式傳輸,考慮到傳輸數(shù)據(jù)量較大,速度要盡量快,所以選用事件觸發(fā)模式。開始事件處理前,在各個端點的ISoftUSBEndpointEvents連接點上分別安裝事件池,其內(nèi)部定義了數(shù)據(jù)傳輸?shù)氖录?主機向設(shè)備傳輸數(shù)據(jù)時觸發(fā)OnWriteTransfer事件,設(shè)備向主機發(fā)送數(shù)據(jù)時觸發(fā)On-ReadTransfer事件,標準/廠商請求觸發(fā)OnDeviceRequest事件。

所有事件都由主機先發(fā)起,通知設(shè)備,設(shè)備再對其作出響應(yīng)。在事件響應(yīng)函數(shù)中分別添加相應(yīng)的處理代碼,最后返回ACK、NAK、ERR、STALL狀態(tài)信息,告知主機此次傳輸是否成功。在設(shè)備枚舉階段會觸發(fā)OnDeviceRequest事件,向ARM端發(fā)送標準/廠商請求命令,ARM和實際物理設(shè)備通信,從而獲取設(shè)備信息并反饋給電腦端。枚舉成功后,impact/chipscope軟件調(diào)用電腦端的設(shè)備驅(qū)動,由虛擬控制器向設(shè)備發(fā)出讀/寫命令,觸發(fā)數(shù)據(jù)傳輸事件,實際的數(shù)據(jù)傳輸由底層ARM端實現(xiàn)。

2.2 COM控制腳本開發(fā)

COM控制腳本創(chuàng)建虛擬設(shè)備對象實例,調(diào)用動態(tài)鏈接庫中的函數(shù),發(fā)出設(shè)備插拔等各種控制命令[2]。控制腳本可以有多種實現(xiàn)方式,最早使用Wscript的腳本語言,考慮到在應(yīng)用軟件中的內(nèi)嵌以及界面的美觀,改用C + +語言,具體啟動流程為:創(chuàng)建DSF根設(shè)備對象?檢測虛擬控制器是否存在?創(chuàng)建虛擬USB設(shè)備對象?從USB根hub中獲取一個端口?將新創(chuàng)建的虛擬USB設(shè)備對象插入USB根hub中?開始事件處理。

3 基于ARM的測試板卡端開發(fā)

測試板卡的核心是TI公司的TM4C129XNCZAD ARM處理器,連接USB轉(zhuǎn)JTAG的電路。圖4為ARM的外圍電路框圖,圖5為測試板卡實物圖。TM4C129XNCZAD基于ARM Cortex-M4 MCU,是業(yè)界首批具有以太網(wǎng)MAC + PHY的ARM Cortex-M4,支持10個I2C端口、2個12位ADC、2個正交編碼器輸入、3個片上比較器、外部外設(shè)接口以及高級脈寬調(diào)制輸出[3],其豐富的外設(shè)使其在完成本系統(tǒng)設(shè)計外仍能用于板卡上其他輔助功能(故檢、軟件加載等)。

圖4 ARM外設(shè)框圖

圖5 硬件實物圖

ARM處理器上移植了TI公司面向MCU平臺、基于搶占式多線程內(nèi)核的完整實時操作系統(tǒng)RTOS,其組件包括了普及型SYS/BIOS實時內(nèi)核,網(wǎng)絡(luò)開發(fā)套件NDK TCP/IP協(xié)議棧,USB、EMAC、MMC/SD主機及器件協(xié)議棧以及類驅(qū)動器等?;谠揟I-RTOS操作系統(tǒng)設(shè)計開發(fā)了多線程下的網(wǎng)絡(luò)、USB傳輸通信。

在系統(tǒng)中FPGA下載器為USB設(shè)備,ARM作為USB主機,需要進行ARM的USB主機開發(fā)。

上電后ARM首先進行USB驅(qū)動初始化,將其配置為USB Host CDC類,即主機類型,然后周期性地輪詢監(jiān)聽USB設(shè)備的狀態(tài)。當(dāng)有新設(shè)備連接時,通過中斷傳輸通知主機,然后調(diào)用枚舉驅(qū)動對USB設(shè)備進行枚舉。具體枚舉過程如圖6所示。

圖6 USB枚舉流程

枚舉成功后,一旦接收到USB傳輸命令即開始數(shù)據(jù)傳輸。USB有控制傳輸、同步傳輸、中斷傳輸和批量傳輸[4]4種傳輸方式,這里主要涉及控制傳輸和批量傳輸。ARM通過解析網(wǎng)絡(luò)命令,從而區(qū)分不同的傳輸類型。具體網(wǎng)絡(luò)命令協(xié)議如圖7所示。

圖7 網(wǎng)絡(luò)數(shù)據(jù)協(xié)議

4 結(jié)束語

本文介紹了一種基于USB虛擬技術(shù)實現(xiàn)FPGA遠程調(diào)試的方法,主要包括調(diào)試計算機端的控制軟件

和虛擬USB設(shè)備的開發(fā),以及板卡上的ARM和USB 轉(zhuǎn)JTAG電路的設(shè)計,最后直接通過板卡上的網(wǎng)絡(luò)連接到電腦上,即可實現(xiàn)FPGA的加載和調(diào)試。

該方法只需利用FPGA板卡上的ARM處理器,并增加USB轉(zhuǎn)JTAG部分電路,具有成本低、占用空間小的特點,可以全面替代目前使用的FPGA下載電纜實現(xiàn)其功能,在方便調(diào)試的同時節(jié)約了開銷。目前該方法已經(jīng)應(yīng)用到數(shù)字T/R組件中,大大方便了組件的調(diào)試工作,即將廣泛應(yīng)用于雷達FPGA信號處理板卡。

參考文獻:

[1]張帆,史彩成,等.Windows驅(qū)動開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

[2]陳林虎.基于DSF架構(gòu)的USB設(shè)備虛擬[J].計算機系統(tǒng)應(yīng)用,2011(2),221-222.

[3]Texas Instruments Incorporated.Tiva TM4C129 XNCZAD Microcontroller Data Sheet.2013,58-61.

[4]Jan Axelson.USB開發(fā)大全[M].李鴻鵬,等譯.北京:人民郵電出版社,2011.

Realization of a FPGA remote on-chip debugging method based on USB virtual technology

ZHAI Gang-yi,WANG Jing-jiao,JIANG Xiao-xiang,YANG Yang
(No.724 Research Institute of CSIC,Nanjing 211153)

Abstract:A remote on-chip debugging method for the FPGA of Xilinx is proposed to facilitate the FPGA debugging.This method mainly consists of the PC and the test board.The high-level application software is developed on the PC with the USB virtual device created.The test board with the ARM as its core has the functions of the network and the USB host,and completes the USB-to-JTAG conversion.Finally,the remote debugging is realized via the Ethernet.

Keywords:USB virtual device; FPGA remote debugging; ARM; USB host; network transmission

作者簡介:翟剛毅(1978-),男,高級工程師,碩士,研究方向:雷達信息處理;王靜嬌(1990-),女,助理工程師,碩士,研究方向:雷達信息處理;姜小祥(1984-),男,工程師,碩士,研究方向:雷達信息處理;楊陽(1989-),男,助理工程師,碩士,研究方向:雷達信息處理。

收稿日期:2015-03-15;修回日期:2015-04-02

文章編號:1009-0401(2015)02-0042-03

文獻標志碼:A

中圖分類號:TP31