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

?

基于USB-HID接口的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

2020-04-08 04:47朱正鵬徐玉嬌朱旭鋒
激光與紅外 2020年3期
關(guān)鍵詞:固件端點(diǎn)油門

熊 焱,朱正鵬,徐玉嬌,劉 鑫,朱旭鋒

(北京航天自動(dòng)控制研究所,北京 100854)

1 引 言

高速數(shù)據(jù)的傳輸和采集在自動(dòng)控制和航空航天領(lǐng)域有著廣泛的應(yīng)用,通用串行總線(USB)是連接PC機(jī)與外設(shè)的一種通用接口總線,和傳統(tǒng)的串口、并口相比,USB-HID接口具有速率高、高帶寬、靈活性好等優(yōu)點(diǎn),適用于大批量數(shù)據(jù)和紅外圖像采集與傳輸。本文結(jié)合USB HID(Human Interface Device,人機(jī)接口設(shè)備)的優(yōu)勢(shì),選用EZ-USB FX2芯片CY7C68013作為USB接口,通過配置HID描述符,利用大容量FIFO,實(shí)現(xiàn)了PC機(jī)與DSP芯片TMS320F2812進(jìn)行高速數(shù)據(jù)傳輸和可視化設(shè)計(jì)。

2 系統(tǒng)原理及組成

本系統(tǒng)基于HID接口設(shè)計(jì),主要由計(jì)算機(jī)主機(jī)的核心處理器、USB接口芯片、程序存儲(chǔ)器EEPROM、晶振等組成。核心處理器選用TMS320F2812,該芯片是TI公司的一款高性能的32位定點(diǎn)數(shù)字信號(hào)處理器,工作主頻最高可達(dá)150 MHz[1],系統(tǒng)組成框圖如圖1所示。

圖1 系統(tǒng)組成原理框圖

FX2芯片采用USB接口芯片CY7C68013,主要實(shí)現(xiàn)數(shù)據(jù)傳輸,CY7C68013芯片是Cypress公司的EZ-USB FX2系列中一種滿足USB2.0協(xié)議的接口芯片,最高傳輸速率可達(dá)480 Mbps[2-3]。集成了1個(gè)8051處理器、1個(gè)串行接口引擎(SIE)和1個(gè)USB2.0收發(fā)器,具有16位外部數(shù)據(jù)接口、8.5 KB片上RAM、4個(gè)可編程端點(diǎn)、4個(gè)集成的FIFO存儲(chǔ)器以及40個(gè)通用GPIO口。CY7C68013芯片結(jié)構(gòu)框圖如圖2所示。

圖2 EZ-USB FX2(CY7C68013)結(jié)構(gòu)框圖[4]

3 硬件電路設(shè)計(jì)

DSP作為主控制器,USB2.0接口協(xié)議芯片CY7C68013選用SLAVE FIFO方式,異步讀寫,從機(jī)工作方式。

圖1中的DSP控制器中IOB1、IOB2、IOB3、IOB4為通用端口,XWE為寫入啟用,低電平有效寫入選通脈沖;XRD為讀取啟用,低電平有效讀取選通脈沖;CS為片選引腳;XD[15:0]為16位數(shù)據(jù)總線;XA[18:0]為19位地址總線。

CY7C68013中,FLAGA、FLAGB、FLAGC位FIFO標(biāo)志引腳,表示FIFO的空滿狀態(tài),DSP向FIFO進(jìn)行數(shù)據(jù)寫入和讀取時(shí),應(yīng)先判斷所使用的端點(diǎn)對(duì)應(yīng)的FLAG標(biāo)志位狀態(tài),只有FIFO為空時(shí)進(jìn)行數(shù)據(jù)寫入,FIFO為非空時(shí)進(jìn)行數(shù)據(jù)讀取。SLCS、SLRD、SLOE和SLWR分別為片選信號(hào)、讀信號(hào)、輸出使能信號(hào)和寫信號(hào),CY7C68013具有16位雙向數(shù)據(jù)總線和兩位用于選擇端點(diǎn)緩沖區(qū)的引腳。SCL和SDA用于連接EEPROM,用于存儲(chǔ)固件程序。DSP和68013之間數(shù)據(jù)線通過SN74ALVC164245緩沖器隔離,外部使用24 MHz晶振。USB通信模塊主要硬件電路圖如圖3所示。

數(shù)據(jù)傳輸中核心器件是CY7C68013和TMS-320F2812。在SLAVE FIFO模式下,上位機(jī)和USB硬件電路之間的數(shù)據(jù)通信通過DSP和FX2芯片中的FIFO進(jìn)行交互,根據(jù)USB中斷請(qǐng)求進(jìn)行數(shù)據(jù)的發(fā)送和讀取。

圖3 USB硬件電路圖

4 軟件設(shè)計(jì)

4.1 FX2固件設(shè)計(jì)

CY68013芯片需要按照HID設(shè)備類的規(guī)范(《HID Usage Tables》)編寫設(shè)備的驅(qū)動(dòng)程序,設(shè)置對(duì)應(yīng)的HID設(shè)備描述符,從而使Windows系統(tǒng)自動(dòng)識(shí)別設(shè)備,實(shí)現(xiàn)了設(shè)備的即插即用[5]。

FX2固件程序通過Keil軟件開發(fā)和編譯,編譯生成.hex文件后使用Cypress的EZ-USB-FX2仿真系統(tǒng)提供的開發(fā)工具Control Panel將程序下載到配套的EEPROM中。固件程序的主要作用是通過編寫報(bào)告描述符,將本產(chǎn)品配置成HID設(shè)備中的游戲桿類設(shè)備,使之能被Windows系統(tǒng)自動(dòng)識(shí)別。本設(shè)計(jì)采用了Cypress公司提供的固件框架,在此基礎(chǔ)上進(jìn)行了二次開發(fā)[6-7]。

主機(jī)與USB設(shè)備的數(shù)據(jù)接口模式為SLAVE FIFO模式,本設(shè)計(jì)中,在程序中設(shè)置CPU與芯片接口時(shí)鐘都為48 MHZ,設(shè)置EP4為塊傳輸端點(diǎn),2倍緩沖深度,傳輸方向?yàn)镮N;設(shè)置EP8為塊傳輸端點(diǎn),2倍緩沖深度,傳輸方向?yàn)镺UT,自動(dòng)輸入方式,外部DSP處理器可以直接和FIFO通信[8]。

本設(shè)計(jì)是在固件框架基礎(chǔ)上進(jìn)行的,采用C語言實(shí)現(xiàn),Cypress公司提供了固件開發(fā)框架[4]。

二次開發(fā)時(shí)主要對(duì)端點(diǎn)的數(shù)目和大小進(jìn)行設(shè)置。同時(shí)還需要對(duì)端點(diǎn)的深度設(shè)置、自動(dòng)傳輸包大小等進(jìn)行設(shè)置[9]。TD Init{ }函數(shù)部分代碼如下所示:

void TD_Init(void)

{

CPUCS &=~bmCLKOE;

IFCONFIG &=~bmIFCFG1;//SLAVE FIFO接口,內(nèi)部時(shí)鐘,異步傳輸

IFCONFIG|=0xCB;

EP8CFG = 0xF2;//OUT端點(diǎn),BULK傳輸,512字節(jié),2倍緩沖

SYNCDELAY;

EP4CFG = 0xE2;//IN端點(diǎn),BULK傳輸,512字節(jié),2倍緩沖

PINFLAGSAB=0x00;//FLAGB為EP4的滿標(biāo)志

SYNCDELAY;

PINFLAGSCD=0x00;//FLAGC為EP8的空標(biāo)志

SYNCDELAY;

FIFORESET=0x08;//復(fù)位EP4和EP8 FIFO

SYNCDELAY;

FIFORESET=0x00;

EP8FIFOCFG=0x0D;//設(shè)置EP8的SLAVE FIFO為自動(dòng)輸入模式,數(shù)據(jù)總線16位

SYNCDELAY;

EP8AUTOINLENH=0x00;//自動(dòng)提交1字節(jié)包,包長(zhǎng)度高3位000

SYNCDELAY;

EP8AUTOINLENL=0x03;//包長(zhǎng)度低8位00000011

PORTACFG=0x43;//設(shè)置PA7為SLCS

FIFOPINPOLAR=0x00;//設(shè)置控制信號(hào)

PKTEND,SLOE,SLRD,SLWR,EF,FF為低有效

AUTOPTRSETUP |= 0x01;

}

固件程序經(jīng)過Keil軟件編譯生成的.hex文件可通過Hex2Bix.exe轉(zhuǎn)化成.iic文件,通過Control Panel工具可以下載到EEPROM中,如圖4所示。系統(tǒng)上電時(shí)程序自動(dòng)啟動(dòng),可以自動(dòng)被識(shí)別為相應(yīng)的HID設(shè)備進(jìn)行工作。

圖4 HID系統(tǒng)按鍵和位置界面

4.2 DSP應(yīng)用軟件設(shè)計(jì)

TMS320F2812作為核心處理器實(shí)現(xiàn)對(duì)USB接口芯片的數(shù)據(jù)讀寫控制,系統(tǒng)的DSP軟件使用CCS3.3進(jìn)行設(shè)計(jì),主要包括DSP初始化、數(shù)據(jù)采集處理和USB通信接口部分,下面是DSP讀寫FX2數(shù)據(jù)的部分代碼:

void WriteFIFO(unsigned int i)

{

EALLOW;

GpioDataRegs.GPACLEAR.bit.GPIOA4=1;//164245片選:XUSB_OE低電平

GpioDataRegs.GPACLEAR.bit.GPIOA10=1;//164245方向:B data to A bus

GpioDataRegs.GPASET.bit.GPIOA5=1;

//SLOE高電平

GpioDataRegs.GPACLEAR.bit.GPIOA7=1;

//PKTEND低電平

EDIS;

if(GpioDataRegs.GPADAT.bit.GPIOA9==1) //FLAGB:EP6不滿,執(zhí)行寫操作

{

for(i=0;i<512;i++)

{

* EP6=i;

for(i= 0;i< 5000;i++)

}

}

EALLOW;

GpioDataRegs.GPADAT.bit.GPIOA4=1;

//164245片選:XUSB_OE高電平

EDIS;

}

5 HID高速數(shù)據(jù)采集系統(tǒng)的應(yīng)用

通過上述硬件電路和軟件系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了兩套基于USB HID接口的高速數(shù)據(jù)采集系統(tǒng)的實(shí)際應(yīng)用。

應(yīng)用一為一套航空領(lǐng)域航電系統(tǒng)中地面控制臺(tái)用的油門臺(tái),操作桿上有多個(gè)按鈕,并且可以手動(dòng)推動(dòng)油門臺(tái)操作桿移動(dòng)。油門臺(tái)對(duì)外提供USB2.0接口與地面計(jì)算機(jī)連接,USB接口符合標(biāo)準(zhǔn)的Direct X即插即用接口,可通過計(jì)算機(jī)可視化界面實(shí)時(shí)顯示當(dāng)前按鈕狀態(tài)和油門操作桿位置信息。同時(shí)該地面油門操作桿還可以隨空中自動(dòng)油門臺(tái)聯(lián)動(dòng),即空中油門臺(tái)動(dòng)作的同時(shí)帶動(dòng)地面油門臺(tái)動(dòng)作,因此,該設(shè)備對(duì)通信速率和實(shí)時(shí)性有較高要求,同時(shí)還要求具有可視化界面,便于地面人員檢測(cè)數(shù)據(jù)。

將油門臺(tái)和地面測(cè)控計(jì)算機(jī)連接,油門臺(tái)可自動(dòng)被識(shí)別為外部USB設(shè)備,自動(dòng)安裝設(shè)備驅(qū)動(dòng)后,依次點(diǎn)擊桌面“開始”、“控制面板”按鈕,在“控制面板”界面下雙擊“游戲控制器”按鈕,彈出“游戲控制器”界面,該界面上共有24個(gè)顯示點(diǎn),依次按壓油門操作桿上的各個(gè)按鈕,每個(gè)按鈕接通時(shí),在油門臺(tái)按鍵USB測(cè)試界面中,“按鈕”界面的1、2、3、4、5順序點(diǎn)亮。當(dāng)推動(dòng)油門臺(tái)操作桿從零位向90度方向運(yùn)動(dòng)時(shí),界面上的“+”在Y軸方向從下向上線性的變化位置,反之,若推動(dòng)油門臺(tái)操作桿從90度向零位方向運(yùn)動(dòng)時(shí),界面上的“+”在Y軸方向從上向下線性的變化位置,并實(shí)時(shí)顯示當(dāng)前角度位置值,如圖5所示。

圖5 HID系統(tǒng)按鍵和位置界面

應(yīng)用二為一套高速紅外圖像采集系統(tǒng)。編寫相應(yīng)的測(cè)試程序,通過與該系統(tǒng)的接口可實(shí)現(xiàn)查找設(shè)備、獲取設(shè)備、發(fā)送和接收?qǐng)?bào)表等功能,測(cè)試界面如圖6所示。

圖6 HID紅外圖像采集系統(tǒng)測(cè)試界面

在將該系統(tǒng)連接到計(jì)算機(jī),通過配置相應(yīng)的描述符,系統(tǒng)將被自動(dòng)識(shí)別為HID設(shè)備。通過工具軟件Bus Hound可以獲取計(jì)算機(jī)和紅外圖像采集系統(tǒng)的通信數(shù)據(jù),可實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的傳輸速率、相應(yīng)速度等參數(shù)。軟件測(cè)試結(jié)果如圖7所示,實(shí)時(shí)獲取的系統(tǒng)傳輸速度最大為40 MB/s,響應(yīng)速度可達(dá)10 ms,滿足紅外圖像數(shù)據(jù)傳輸要求。

圖7 Bus Hound軟件測(cè)試平臺(tái)

6 結(jié) 論

本文通過EZ-USB FX2設(shè)計(jì)了一種TMS320-2812與計(jì)算機(jī)之間數(shù)據(jù)高速傳輸方法,實(shí)現(xiàn)了基于USB HID接口的高速數(shù)據(jù)和紅外圖像采集系統(tǒng)的應(yīng)用,該系統(tǒng)具有傳輸速度快、結(jié)構(gòu)簡(jiǎn)單、實(shí)時(shí)性和可靠性高等優(yōu)點(diǎn),適用于大批量數(shù)據(jù)和圖像采集系統(tǒng)。利用HID設(shè)備驅(qū)動(dòng)程序和固件框架,可以生成不同描述符,開發(fā)出不同的嵌入式設(shè)備,使用方便,靈活性好。

猜你喜歡
固件端點(diǎn)油門
非特征端點(diǎn)條件下PM函數(shù)的迭代根
駕哥
不等式求解過程中端點(diǎn)的確定
汽車改裝車上裝油門的幾種控制方法
基于SHA1的SCADA系統(tǒng)PLC固件完整性驗(yàn)證方法
基于UEFI固件的攻擊驗(yàn)證技術(shù)研究*
基于固件的遠(yuǎn)程身份認(rèn)證
坐診專家
基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
提取ROM固件中的APP
昭苏县| 广丰县| 醴陵市| 陇西县| 炉霍县| 社旗县| 股票| 宜章县| 扶风县| 安福县| 正宁县| 肥西县| 四会市| 洱源县| 玉树县| 苏尼特右旗| 庄浪县| 台南县| 贵南县| 左贡县| 陆良县| 邻水| 射洪县| 黄冈市| 宣武区| 亚东县| 庆元县| 井陉县| 佛山市| 抚宁县| 修文县| 桦南县| 钟山县| 阿克陶县| 遂川县| 长顺县| 呼伦贝尔市| 南昌市| 灌南县| 灌云县| 阳城县|