兩自由度振動(dòng)偏移量實(shí)時(shí)采集設備的設計與實(shí)現
?。?)上位機獲得此IDs,就開(kāi)始加載LoaderDriver,加載后LoaderDriver執行固件的下載。LoaderDriver是用于下載FX2固件的驅動(dòng),此驅動(dòng)在控制面板安裝目錄Driver下可以找到,修改時(shí)需安裝DDK,然后在VC6.0中重新編譯源文件。
?。?)LoaderDriver放開(kāi)并重起FX28051。
?。?)被下載的固件開(kāi)始運行。
?。?)FX28051控制斷開(kāi)USB總線(xiàn)。
?。?)上位機發(fā)現設備斷開(kāi),于是釋放LoaderDriver。
?。?)8051重新連接USB總線(xiàn)。
?。?0)上位機發(fā)現設備插入,并開(kāi)始詢(xún)問(wèn)IDs.。
?。?1)8051固件根據其自身IDs回復VIDPID等。此時(shí)的VIDPID為固件的描述符文件里的VIDPID。
?。?2)上位機得到IDs,并根據其信息加載對應的驅動(dòng)程序。
?。?3)上位機驅動(dòng)程序和EZ-USB固件已經(jīng)正確加載,并可以與應用程序執行數據傳輸和控制了。
至此,應用程序即可調用設備驅動(dòng)程序來(lái)發(fā)送和接收數據。
3 系統軟件設計
3.1 控制面板簡(jiǎn)介
控制面板主要用于FX2設備的開(kāi)發(fā)調試(包括硬件設備測試和軟件功能測試),具體有廠(chǎng)商請求測試(設備請求、配置請求、管道設置請求等)、各種方式數據傳輸測試、固件下載、E2PROM燒寫(xiě)、接口設置、端點(diǎn)設置等。
3.2 燒寫(xiě)E2PROM
記事本編輯好相應的Hex文件后,使用EZUSB控制臺自帶的工具hex2bix把Hex文件轉化為iic文件,然后用EZ-USB控制臺下載。
圖2 固件開(kāi)發(fā)流程圖
3.3 CY7C68013的固件設計
該固件的主要功能是完成該單片機及外圍設備的初始化、設備的重枚舉(ReNumeration)、接受主機的設備請求及完成相應的控制數據傳輸等。
Cypress公司提供的固件開(kāi)發(fā)框架和固件函數庫簡(jiǎn)化并加速了設備固件的開(kāi)發(fā),大大提高了用戶(hù)開(kāi)發(fā)的效率,本設備固件的設計也是采用此方法。
固件開(kāi)發(fā)框架流程圖見(jiàn)下圖2所示。
固件開(kāi)發(fā)完成了USB設備的基本功能需求,設計固件時(shí)只需設計用戶(hù)初始化函數TD_Init()、用戶(hù)函數TD_Poll(),修改描述符表。TD_Init()完成需要用戶(hù)自定義的初始化工作,設計時(shí)在TD_Init()中添加初始化CPU時(shí)鐘頻率、I/O端口模式、USB接口數據傳輸模式、清除所有等待的USB中斷請求等(待確認)的代碼。
用戶(hù)函數TD_Poll()在固件運行期間被循環(huán)調用,本設備主要完成對ADNS-3080的偏移量△x和△y值的連續讀取。因為CY7C68013沒(méi)有帶主SPI接口,實(shí)現時(shí)用單片機固件程序模擬主SPI跟ADNS-3080通信。流程如圖3所示。圖4和圖5是SPI通信的讀寫(xiě)時(shí)序圖。
評論