引 言
由于DSP芯片的不斷發(fā)展,以及它處理數(shù)據(jù)速度快、處理數(shù)據(jù)量大的優(yōu)勢(shì),已經(jīng)廣泛應(yīng)用到數(shù)字信號(hào)處理的許多領(lǐng)域。在CT圖像重建系統(tǒng)中,DSP處理的數(shù)據(jù)需要上傳到PC機(jī)進(jìn)行存儲(chǔ)、顯示或進(jìn)行數(shù)據(jù)分析等,這就產(chǎn)生了PC機(jī)和DSP的數(shù)據(jù)傳輸問(wèn)題。USB總線(xiàn)具有傳輸速度高,以及即插即用等特點(diǎn),得到越來(lái)越廣泛的應(yīng)用,利用USB總線(xiàn)實(shí)現(xiàn)DSP和PC機(jī)的通信,從而解決圖像信號(hào)的實(shí)時(shí)傳輸問(wèn)題。Cypress公司生產(chǎn)的CY7C68001通用USB 2.0接口控制器是基于應(yīng)用層編程的接口器件,使用簡(jiǎn)單,開(kāi)發(fā)方便。
在此,以TMS320C6416為例,討論如何使用CY7C68001對(duì)TMS32OC6416進(jìn)行USB接口設(shè)計(jì),實(shí)現(xiàn)DSP和PC機(jī)通信,將DSP處理過(guò)的圖像信號(hào)實(shí)時(shí)傳到計(jì)算機(jī)中。
1 DSP與USB接口的硬件設(shè)計(jì)
TMS320C6416是TI的高性能32位定點(diǎn)DSP,內(nèi)核采用超長(zhǎng)指令字(VLIW)體系結(jié)構(gòu),有8個(gè)功能單元、64個(gè)32 b通用寄存器。一個(gè)時(shí)鐘周期同時(shí)執(zhí)行8條指令,主頻可達(dá)1 GHz,處理性能高達(dá)8 000 MIPS,支持8/16/32/64 b的數(shù)據(jù)類(lèi)型。
CY7C68001用來(lái)連接微處理器或DSP的DMA從裝置,內(nèi)部不含微處理器;支持高速(480 Mb/s)或全速(12 Mb/s)USB數(shù)據(jù)傳輸;提供USB 2.0協(xié)議要求的全部4種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可以滿(mǎn)足用戶(hù)對(duì)各種類(lèi)型數(shù)據(jù)傳輸?shù)男枨蟆?/p>
1.1 接口的硬件設(shè)計(jì)
在該設(shè)計(jì)方案中,CY7C68001通過(guò)EMIFB與TMS320C6416進(jìn)行異步通信,各個(gè)引腳的連接如圖1所示。DSP控制CY7C68001完成DSP與PC之間的異步通信。CY7C68001的相關(guān)引腳在接口中的作用:INT:表明CY7C68001有數(shù)據(jù)將要被讀出,或者有中斷事件發(fā)生;READY:通知TMS320C6416可以對(duì)CY7C68001進(jìn)行讀寫(xiě);FLAGA,F(xiàn)LAGB,F(xiàn)LAGC:反應(yīng)由FAIFOADR[2:0]選擇的FIFO的狀態(tài);FLAGD:為片選信號(hào);SLOE為CY7C68001驅(qū)動(dòng)數(shù)據(jù)總線(xiàn);SLRD:并口讀有效信號(hào),在SLRD有效且同步通信時(shí),F(xiàn)IFO指針在每個(gè)IFCLK的上升沿遞增;PKTEND:總是高電平,將當(dāng)前的緩沖區(qū)提交給USB;FD[15:0]:數(shù)據(jù)總線(xiàn);FIFO[2:0]:提供與TMS320C6416接口的FIFO地址選擇。
1.2 接口的訪問(wèn)
CY7C68001提供給DSP兩種軟件接口:
(1)命令接口:用來(lái)訪問(wèn)CY7C68001寄存器、End-point0緩沖器及描述表;
(2)FIFO數(shù)據(jù)接口:用來(lái)訪問(wèn)4個(gè)1 KB的FIFO中的數(shù)據(jù)。通過(guò)編程直接作為FIFO分配給。EP2,EP4,EP6,EP8。這兩個(gè)外部接口均可以通過(guò)同步或異步方式進(jìn)行訪問(wèn)。在此均采用異步的方式進(jìn)行訪問(wèn),命令口的命令字如下:
在表1中,A/D用于地址/數(shù)據(jù)的選擇,當(dāng)其為0時(shí),表示本操作為數(shù)據(jù)讀或?qū);?dāng)其為1時(shí),表示本操作為地址寫(xiě)。R/W用于讀/寫(xiě)操作的選擇,當(dāng)其為0時(shí),進(jìn)行寫(xiě),當(dāng)其為1時(shí),進(jìn)行讀。A[5:0]用于地址/數(shù)據(jù)的選擇,當(dāng)Bit7=0時(shí),D[3:0]為數(shù)據(jù)半字節(jié);D[5:4]為未用,命令字為8位,故命令字?jǐn)?shù)據(jù)分二次讀出或?qū)懭;?dāng)Bit7=1時(shí),D[5:0]包含將要尋址的命令寄存器地址。
2 USB軟件設(shè)計(jì)
USB的軟件設(shè)計(jì)包括三方面:固件設(shè)計(jì)、驅(qū)動(dòng)程序設(shè)計(jì)和主機(jī)端應(yīng)用程序設(shè)計(jì)。
2.1 固件設(shè)計(jì)
所有基于微控制器及外圍電路功能設(shè)備的正常工作都離不開(kāi)固件的參與,固件的作用就是輔助硬件工作。沒(méi)有固件的參與和控制,硬件設(shè)備無(wú)法實(shí)現(xiàn)預(yù)期的功能。USB設(shè)備也不例外,必須編寫(xiě)固件程序來(lái)輔助硬件完成USB的通信任務(wù)。由于采用不帶MCU內(nèi)核的USB接口芯片,USB的應(yīng)用層協(xié)議應(yīng)該通過(guò)對(duì)TMS320C6416的編程來(lái)實(shí)現(xiàn),USB固件的加載必須靠DSP的控制CY7C68001來(lái)完成。在CCS中用C語(yǔ)言完成固件程序的編寫(xiě),程序流程圖如圖2所示。
作者:丁瑞卿,孫毅剛,張紅穎 來(lái)源:現(xiàn)代電子技術(shù)