USB讀數裝置及上位機的設計
SETUPDAT[1]中存儲著USB發(fā)出的請求碼。在固件程序中使用switch-case語句對不同的請求碼進行分析,分別進行相應的響應。
對于標準USB請求,在CY3684開發(fā)包內已有完善的函數框架,本設計在保持其默認狀態(tài)下,修改其中的處理函數,使其符合本設計的要求。在Fw.c文件中,最主要的兩個函數為Main( )函數和SetupCommand( ),其中Main( )函數控制整個68013A的程序流程,SetupCommmad( )則對不同的設備請求進行分析,并調用響應的執(zhí)行程序。
在本設計需要使用自定義請求來介紹上位機的FLASH操作命令,因此需要在USB固件程序中聲明自定義請求。自定義請求和標準USB請求放在一起,但不能和已有的請求號相沖突。同時還需要編寫自定義請求對應的處理函數。程序框架如下:
此請求包處理放在SetupCommand(vdd)函數內。
對于對應的處理函數則在Pefiph.c文件中進行定義。所有的USB設備請求響應函數,中斷函數都在此文件中定義。同時設備初始化函數TD_Init( ),用戶功能函數TD_Poll( ),掛起函數TD_Suspend( )和USB復位函數( )也都在此文件中定義。
本設計采用在上位機發(fā)送自定義請求A1,并在自定義請求中包含對FLASH操作的命令字,68013A在分析得到自定義請求A1后,在自定義請求A1中把命令字保存入一個全局變量,在用戶功能函數TD_Poll( )中執(zhí)行對命令字的分析并調用相應的FLASH操作函數。對于傳輸到上位機上的數據通過自定義請求A2、A3來執(zhí)行。
3 結論
本設計根據USB總線技術、FPGA技術及面向對象程序設計方法,對電路的組成原理、接口電路設計、系統(tǒng)控制信號的設計及USB上位機程序的設計做出詳細的說明,設計出基本符合課題要求的USB讀數裝置及上位機程序,基本完成了工作要求。當然本設計在USB接口的速度方面還需考慮更完善的方案。希望在以后的學習工作中能夠改進。本文引用地址:http://www.biyoush.com/article/202345.htm
評論