分析用EZ-USB實(shí)現(xiàn)TMS320C6X與主機(jī)的數(shù)據(jù)傳輸
3.2 上位機(jī)流程
主機(jī)應(yīng)用程序與操作系統(tǒng)相互作用,利用PC豐富的資源,實(shí)現(xiàn)顯示驗(yàn)證,提高系統(tǒng)的可操作性,當(dāng)操作系統(tǒng)認(rèn)為有新設(shè)備接入時(shí),就會(huì)自動(dòng)調(diào)用相應(yīng)的設(shè)備驅(qū)動(dòng)。另外,該軟件需要一個(gè)圖形用戶界面來控制所用的函數(shù),這里采用VC++6.0來編制應(yīng)用程序,首先調(diào)用CreateFile()打開USB接口設(shè)備,獲得設(shè)備的句柄hDevice,然后計(jì)算機(jī)通過調(diào)用DeviceIoControl()函數(shù)向外設(shè)發(fā)出。部分程序如下:
myRequest的8個(gè)成員變量對(duì)應(yīng)固件配置SETUPBUF緩沖區(qū)中8字節(jié)的(SETUPDAT)數(shù)據(jù),其中value的值表示了主機(jī)向DSP發(fā)送的命令類型(00/01/10),使DSP配合完成接收,處理及上傳的系統(tǒng)過程。
每次調(diào)用DeviceIoControl函數(shù)傳輸?shù)臄?shù)據(jù)量?jī)H為1KB。為了滿足大數(shù)據(jù)量或者整幀圖像數(shù)據(jù)傳輸的要求,需要循環(huán)調(diào)用DeviceIoControl()函數(shù),以下載數(shù)據(jù)流的過程為例,循環(huán)體中的代碼如下:
buffer是主機(jī)發(fā)出數(shù)據(jù)塊的頭指針;pBy為每次下傳數(shù)據(jù)塊的首地址,是隨著循環(huán)變量i遞增的值。同樣,上傳數(shù)據(jù)的過程中也有類似的存儲(chǔ)操作。
4 系統(tǒng)測(cè)試
利用圖像序列對(duì)此主從式聯(lián)機(jī)系統(tǒng)進(jìn)行測(cè)試。
觸發(fā)PC機(jī)上的界面控件(PA(0:1)=00),下載10幅經(jīng)不同程序噪聲污染的同一內(nèi)容的圖像,DSP檢測(cè)到通用外部中斷口EXT_INT6的信號(hào)(對(duì)應(yīng)USB芯片的PA3)讀入數(shù)據(jù)讀取命令類型,將10幀圖像數(shù)據(jù)存入SDRAM空間,之后,上位機(jī)繼續(xù)發(fā)出處理命令,DSP檢測(cè)到PA[0:1]=10對(duì)存儲(chǔ)的多幀圖像數(shù)據(jù)進(jìn)行累加平均,從而提高圖像的信噪比,在收到上傳命令(PA[0:1]=01)時(shí),DSP將處理完成的圖像回送至PC機(jī)顯示。
5 結(jié)語
本文詳細(xì)介紹了通過TMS32C6713的EMIF擴(kuò)展USB接口的硬件連接、USB2.0固件程序和應(yīng)用程序的開發(fā)以及基于這種通信模式的小型聯(lián)機(jī)系統(tǒng)的構(gòu)成。經(jīng)實(shí)際驗(yàn)證,系統(tǒng)運(yùn)行可靠,是一種比較好的高速數(shù)據(jù)傳輸與處理的解決方案。
評(píng)論