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