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