基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設計與實現(xiàn)
在整個固件程序中,EZ-USB FX2設備上電或復位后,首先初始化所有內(nèi)部狀態(tài)變量,隨后調(diào)用任務初始化函數(shù)TD_Init(),開啟中斷,此時固件程序不斷檢測控制端口0是否收到SETUP包。一旦收到,固件程序就開始調(diào)用用戶函數(shù)TD_Poll(),其中用戶需要完成的功能代碼在TD_Poll()函數(shù)中。調(diào)用完成后,重復檢測端口O是否收到SETUP包,若有,繼續(xù)執(zhí)行設備請求,調(diào)用TD_Poll()函數(shù);否則檢測USB核是否有USB掛起信號。若有則調(diào)用用戶函數(shù)TD_Suspend(),其返回值為真時,檢測USB核是否有重新開始事件,沒有時,設備進入掛起狀態(tài),反之,調(diào)用TD_Resume()進行下一次循環(huán);當。TD_Suspend()函數(shù)返回值為假時,直接轉入下次循環(huán)。
此外,固件程序框架中還定義許多中斷處理函數(shù),當用到時可在相應的位置加入用戶編寫的代碼,這樣既清晰又便于理解,就可在無需改變整個程序的前提下,僅通過改變相應的模塊,來實現(xiàn)用戶設置的功能,本系統(tǒng)采用串口中斷處理函數(shù)實現(xiàn)紅外傳輸數(shù)據(jù)的接收。
3.2 驅動程序設計
USB系統(tǒng)驅動程序采用分層結構模型(WDM),該模型定義分層的驅動程序,USB設備驅動程序不直接與硬件對話,而是通過USB驅動程序接口將USB請求快速提交到總線驅動程序進而完成硬件操作。從系統(tǒng)的角度來說,在USB設備插入主機后,主機檢測到USB設備,讀取設備描述符,然后主機根據(jù)設備描述符中提供的廠商ID和產(chǎn)品ID等,啟用相應USB設備驅動程序,讀取USB設備中的配置描述符、接口描述符和端點描述符,根據(jù)需要選擇恰當?shù)呐渲谩⒔涌诤投它c,確定傳輸方式。這一過程完成后,PC機與USB設備之間就可傳輸數(shù)據(jù)。
3. 3 應用程序設計
應用程序是測試系統(tǒng)軟件的核心,其對USB設備的操作功能為:開啟或關閉USB設備,檢測USB設備,設置USB數(shù)據(jù)傳輸管道。設置數(shù)據(jù)端口的初始狀態(tài),通過USB接口回傳數(shù)據(jù)、存儲、顯示并分析數(shù)據(jù)。
4 結論
本文設計的數(shù)據(jù)傳輸系統(tǒng)具有低功耗、控制簡單、實施方便等特點,系統(tǒng)將USB2.O接口技術與紅外傳輸技術結合,實現(xiàn)了測試儀與PC機之間的無線數(shù)據(jù)傳輸,達到了設計應用要求。
為了保證傳輸數(shù)據(jù)的正確性,避免其他光波對傳輸數(shù)據(jù)的干擾,系統(tǒng)殼體安裝紅外濾光片:一方面,消除或減少散射輻射或背景輻射的有害影響:另一方面,分出具有特定波長區(qū)的紅外波長。經(jīng)多次試驗證明,該系統(tǒng)能夠可靠穩(wěn)定傳輸數(shù)據(jù),具有很好的實用性。
評論