數(shù)字合成掃頻儀USB2.0接口設(shè)計(jì)
作為外設(shè)控制器(DC)時(shí),ISP1362支持兩個(gè)控制端點(diǎn),還能以全速12 Mbit·s-1和低速1.5 Mbit·s-1將多達(dá)14個(gè)端點(diǎn)編程為任何4種傳輸類型,并為每個(gè)端點(diǎn)分配片上緩沖RAM空間,緩沖存儲器獨(dú)立于主機(jī)控制器緩沖存儲器,當(dāng)緩沖存儲器溢出,DC將數(shù)據(jù)傳輸?shù)経SB總線上,當(dāng)緩沖存儲器是空的,產(chǎn)生一個(gè)中斷通知微處理器提供數(shù)據(jù)。這里提到的微處理器和DC之間數(shù)據(jù)的傳輸可以是PIO(Programming Input/Out put)模式或者DMA(Direct Memory Access)模式。設(shè)計(jì)中ISP1362與ADSP-BF532之間采用中斷方式進(jìn)行通信,設(shè)計(jì)中所需傳輸數(shù)據(jù)量大,且對傳輸時(shí)間和速率均無具體要求,因此采用塊傳輸(ATL)方式傳輸數(shù)據(jù),ISP1362的設(shè)備控制器內(nèi)置了一個(gè)2 462 Byte的緩沖存儲器,這里將端點(diǎn)1配置成雙緩沖,每個(gè)緩沖大小為256 Byte。當(dāng)傳輸準(zhǔn)備就緒時(shí),DSP將數(shù)據(jù)寫入其中一個(gè)緩存,當(dāng)緩存被寫滿時(shí),數(shù)據(jù)通過SIE傳輸給計(jì)算機(jī),傳輸同時(shí)DSP向另一個(gè)緩存寫數(shù)據(jù)。當(dāng)緩存中的數(shù)據(jù)被完全讀取后,DSP會繼續(xù)向緩存中寫數(shù)據(jù)寫滿為止。圖3給出ISP1362外圍電路設(shè)計(jì),前面提到為方便后續(xù)升級,硬件上配置為OTG模式,OTG規(guī)范是對USB2.0規(guī)范的補(bǔ)充,允許便攜式設(shè)備成為受限的USB主機(jī),以代替特定功能的PC。
2 軟件設(shè)計(jì)
USB接口的軟件設(shè)計(jì)主要包括USB接口的固件程序、USB驅(qū)動程序以及用戶應(yīng)用程序3部分,底層固件程序控制整個(gè)硬件系統(tǒng)的運(yùn)行,并負(fù)責(zé)處理PC機(jī)發(fā)來的各種USB請求,以完成數(shù)據(jù)傳輸;驅(qū)動程序包含WDM(Windows Driver Mode)驅(qū)動程序所需的入口例程、即插即用例程、分發(fā)例程、電源管理例程和卸載例程;應(yīng)用程序?yàn)橛脩籼峁┡c軟面板的接口,并對接收到的數(shù)據(jù)進(jìn)行處理和分析。
2.1 底層固件程序設(shè)計(jì)
設(shè)計(jì)中采用VisualDSP++5.0平臺設(shè)計(jì)底層同件程序。該固件程序包含cpu.c,文件實(shí)現(xiàn)了ADSP-BF532一些常用的初始化函數(shù);usb_bfi nit.c實(shí)現(xiàn)了USB工作下ADSP_BF532的一些常用初始化函數(shù);usb_isp1362.c實(shí)現(xiàn)了USB的通信功能;main.c實(shí)現(xiàn)了具體的傳輸功能,當(dāng)DSP檢測到ISP1362產(chǎn)生的中斷時(shí),根據(jù)計(jì)算機(jī)發(fā)送的命令進(jìn)入相應(yīng)的傳輸程序,控制isp1362的設(shè)備功能向計(jì)算機(jī)傳輸數(shù)據(jù)。頭文件實(shí)現(xiàn)對isp 1362的寄存器和各種控制命令進(jìn)行定義。
評論