USB讀數(shù)裝置及上位機(jī)的設(shè)計(jì)
SETUPDAT[1]中存儲(chǔ)著USB發(fā)出的請(qǐng)求碼。在固件程序中使用switch-case語(yǔ)句對(duì)不同的請(qǐng)求碼進(jìn)行分析,分別進(jìn)行相應(yīng)的響應(yīng)。
對(duì)于標(biāo)準(zhǔn)USB請(qǐng)求,在CY3684開發(fā)包內(nèi)已有完善的函數(shù)框架,本設(shè)計(jì)在保持其默認(rèn)狀態(tài)下,修改其中的處理函數(shù),使其符合本設(shè)計(jì)的要求。在Fw.c文件中,最主要的兩個(gè)函數(shù)為Main( )函數(shù)和SetupCommand( ),其中Main( )函數(shù)控制整個(gè)68013A的程序流程,SetupCommmad( )則對(duì)不同的設(shè)備請(qǐng)求進(jìn)行分析,并調(diào)用響應(yīng)的執(zhí)行程序。


在本設(shè)計(jì)需要使用自定義請(qǐng)求來(lái)介紹上位機(jī)的FLASH操作命令,因此需要在USB固件程序中聲明自定義請(qǐng)求。自定義請(qǐng)求和標(biāo)準(zhǔn)USB請(qǐng)求放在一起,但不能和已有的請(qǐng)求號(hào)相沖突。同時(shí)還需要編寫自定義請(qǐng)求對(duì)應(yīng)的處理函數(shù)。程序框架如下:

此請(qǐng)求包處理放在SetupCommand(vdd)函數(shù)內(nèi)。
對(duì)于對(duì)應(yīng)的處理函數(shù)則在Pefiph.c文件中進(jìn)行定義。所有的USB設(shè)備請(qǐng)求響應(yīng)函數(shù),中斷函數(shù)都在此文件中定義。同時(shí)設(shè)備初始化函數(shù)TD_Init( ),用戶功能函數(shù)TD_Poll( ),掛起函數(shù)TD_Suspend( )和USB復(fù)位函數(shù)( )也都在此文件中定義。
本設(shè)計(jì)采用在上位機(jī)發(fā)送自定義請(qǐng)求A1,并在自定義請(qǐng)求中包含對(duì)FLASH操作的命令字,68013A在分析得到自定義請(qǐng)求A1后,在自定義請(qǐng)求A1中把命令字保存入一個(gè)全局變量,在用戶功能函數(shù)TD_Poll( )中執(zhí)行對(duì)命令字的分析并調(diào)用相應(yīng)的FLASH操作函數(shù)。對(duì)于傳輸?shù)?a class="contentlabel" href="http://www.2s4d.com/news/listbylabel/label/上位機(jī)">上位機(jī)上的數(shù)據(jù)通過(guò)自定義請(qǐng)求A2、A3來(lái)執(zhí)行。
3 結(jié)論
本設(shè)計(jì)根據(jù)USB總線技術(shù)、FPGA技術(shù)及面向?qū)ο蟪绦蛟O(shè)計(jì)方法,對(duì)電路的組成原理、接口電路設(shè)計(jì)、系統(tǒng)控制信號(hào)的設(shè)計(jì)及USB上位機(jī)程序的設(shè)計(jì)做出詳細(xì)的說(shuō)明,設(shè)計(jì)出基本符合課題要求的USB讀數(shù)裝置及上位機(jī)程序,基本完成了工作要求。當(dāng)然本設(shè)計(jì)在USB接口的速度方面還需考慮更完善的方案。希望在以后的學(xué)習(xí)工作中能夠改進(jìn)。本文引用地址:http://www.2s4d.com/article/202345.htm
評(píng)論