兩自由度振動偏移量實時采集設備的設計與實現(xiàn)
圖3 流程圖
圖4 SPI接口讀操作時序圖
圖5 SPI接口寫操作時序圖
3.4 ADNS-3080的固件下載
DSP固件開發(fā)有兩種方式,一是自行開發(fā)程序,二是使用廠商已提供的固件程序。Agilent公司提供了ADNS-3080的固件adns3080_srom_51.inc(共1986個字節(jié)),從官方網(wǎng)站即可下載。本次設計該固件是通過主機的應用程序下載到設備端點,由單片機控制寫入ADNS-3080SRAM中[7]。寫入時先要對ADNS-3080進行下載前的初始化工作。下載完成以后通過讀ADNS-3080的SROM_ID寄存器來檢驗下載是否成功。
3.5 設備驅動及其Inf文件設計
在設備開發(fā)時可以使用控制面板下載單片機固件,但最終產(chǎn)品需要自動完成固件下載和設備的重枚舉。自動的固件下載和設備的重枚舉兩個功能的完成依賴于兩個驅動,一個用于枚舉設備后下載固件至單片機,叫下載驅動(EZ-LoaderDriver);一個用于設備重枚舉后與主機通信,叫功能驅動。
EZ-LoaderDriver源碼由EZ-USB軟件開發(fā)包提供,結合微軟提供的DDK在VisualC++6.0開發(fā)環(huán)境下把固件和驅動重新編譯即可。具體步驟:①使用EZ-USB軟件開發(fā)包提供的Hex2C工具把單片機固件程序Hex文件轉化為C文件;②用固件程序C代碼中的firmware[]數(shù)據(jù)取替EZ-LoaderDriver中firmware.c文件中的數(shù)組,重新編譯即可生成所需的EZ-LoaderDriver。
功能驅動的設計可以使用Cypress公司提供的GPD(通用設備驅動程序),也可以自行開發(fā)。目前自行開發(fā)的方式有三種,使用微軟提供的DDK、使用Windriver、使用DriveWorks,其中DriveWorks開發(fā)帶有現(xiàn)成的驅動生成向導,開發(fā)較為容易,但沒有前兩種方式設計的驅動靈活。GPD目前有EZ-USB.sys和CyUSB.sys兩個,它們提供了USB標準設備請求和數(shù)據(jù)傳輸連接,后者自帶應用程序API函數(shù),開發(fā)應用程序較為容易,因此本設備選擇了CyUSB.sys。
設備驅動的Inf文件是在設備第一次連接主機時為主機安裝設備驅動提供相應的信息。Inf文件的內(nèi)容主要包括驅動提供商名稱、廠商標識符(VID)、設備標識符(PID)、驅動安裝目錄、添加的注冊表信息等,設計時找一樣本修改上述內(nèi)容即可。
4 結束語
4.1 硬件電路設計注意事項
在硬件電路設計時為了便于測試,采用了模塊化的思想,分為供電模塊、CY7C68013模塊、ADNS-3080模塊三塊,且每一塊都引出了相應測試管腳。
板級設計中有兩個高頻電路塊要注意的地方,說明如下:(1)保持D+和D-等間距布線,布線長度要小于75mm,且兩線長度相差要在1.25mm以內(nèi),最好用地線包裹,避免通過過孔;(2)USB連接線使用屏蔽線,長度要小于5m;(3)晶振到CY7C68013的走線要盡可能短且遠離D+和D-,使用陶瓷電容作為晶振電路電容。
4.2 性能探討與展望
該設備具備軟配置特性,即在E2PROM中燒寫不同的VID、PID,可加載不同的一套固件、驅動和應用程序,而且可以無限次的加載,設備功能的修改、升級特別容易;再加之該設備可以對在速度≤1m/s,加速度≤160m/s2范圍內(nèi)振動的物體實現(xiàn)所有運動學參數(shù)2mm精度的實時采集分析。其開發(fā)難度小、使用范圍廣、升級便捷、設備接口人性化、數(shù)據(jù)采集實時精確等優(yōu)點使得該設備具有了非常大的應用前景。
評論