DSP主要應用于實(shí)時(shí)和大數據量的信號處理系統,當它與主機進(jìn)行通信時(shí),數據交換速度和接口的復雜度是系統的一個(gè)關(guān)鍵性能指標,因此迫切需要一種能滿(mǎn)足高速、簡(jiǎn)潔要求的通信方式,通用串行總線(xiàn)USB以其高速和內置電源兩個(gè)特性,對提高設備的性能、降低成本和系統小型化具有很大的實(shí)際意義,本系統采用高速DSP(TMS320C6713),配合嵌入USB2.0協(xié)議的芯片CY7C68013,實(shí)現小規模主從式系統中主機與DSP間的高速通信。經(jīng)實(shí)際驗證,系統運行可靠,是一種比較好的高速數據傳輸與處理的解決方案。 1 USB控制芯片 Cypress公司的EZ-USB FX2系列芯片是最早符合USB2.0協(xié)議的微控制器之一。它集成了收發(fā)器(transceiver)、串行接口引擎(SIE),增強型的8051內核以及可編程的外圍接口(GPIF),FX2系列芯片獨特的結構使數據傳輸速度最高可達到56Mbps,最大程度地滿(mǎn)足了USB2.0的帶寬。 CY7C68013的結構框圖如圖1所示。 FX2的端點(diǎn)緩沖區分為大小兩組:EP0、EP1(IN)、EP1(OUT)是小端點(diǎn),大小為64字節,只能由CPU來(lái)存取,不能由外部邏輯連接;EP2、EP4、EP6、EP8是大的可配置的端點(diǎn),EP2和EP4默認為OUT端點(diǎn),EP6和EP8默認為IN端點(diǎn)。FX2為其大端點(diǎn)提供多種緩沖方式,滿(mǎn)足了傳輸中高帶寬的要求,傳輸過(guò)程中EZ-USB FX2從IN緩沖區中讀取上傳到主機的數據,在OUT緩沖區中寫(xiě)入供外部處理器讀取的數據。它具備全速(12Mbps)和高速(480Mbps)兩種傳輸速率,并具有USB協(xié)議所規定的4種傳輸模式,即控制傳輸(control mode)、中斷傳輸(interrupt mode)、塊傳輸(bulk mode)和等時(shí)傳輸(isochronous mode)。 2 系統硬件構架 2.1 USB與DSP的硬件連接 系統中選用的數字信號處理器是TI公司發(fā)布的C6000浮點(diǎn)系列中的TMS320C6713,其峰值處理速度能達到1350MFLOPS(百萬(wàn)次浮點(diǎn)操作/s)。外設資源包括直接存儲器訪(fǎng)問(wèn)控制器(DMA),外部存儲器接口(EMIF)、串行口、擴展總線(xiàn)或主機口、定時(shí)器等。系統中利用其EMIF口,連接可編程邏輯芯片CPLD來(lái)擴展USB控制接口。CY7C68013能非常靈活地實(shí)現與DSP或MCU的接口。當其作為主設備時(shí),通用可編程接口(GPIF)具有可編程的波形描述符和配置寄存器,能夠輕易地兼容絕大多數總線(xiàn)標準,當其作為從設備時(shí),4KB的大容量FIFO用于數據緩沖,簡(jiǎn)化了接口的外部硬件設計,可采用同步或異步方式與主設備(如ASIC,DSP等)連接。 在本方案中,使其作為從設備,選用了Slave FIFOs,異步讀/寫(xiě),在這種模式下,DSP可以像讀/寫(xiě)普通FIFO一樣對CY7C68013內部的多層緩沖FIFO進(jìn)行讀/寫(xiě)。主要信號連接如圖2所示。主機(PC)發(fā)出命令的同時(shí)也由PA3提供中斷觸發(fā)信號給DSP的外部中斷引腳6(EXT_INT6)。其上升沿被檢測到以后,DSP就進(jìn)入相應中斷服務(wù)程序,開(kāi)始處理USB的傳輸,DSP通過(guò)CPLD對CY7C68013進(jìn)行讀寫(xiě)及使能控制,“或”組合邏輯滿(mǎn)足嚴格的時(shí)序要求,FLAGB和FLAGC是CY7C68013內部FIFO的空、滿(mǎn)狀態(tài)標志,PA[0:1]表示PC發(fā)送的命令類(lèi)型。這些信息在CPLD內部整合到數據總線(xiàn)ED[0:15],DSP開(kāi)始傳輸數據包前對其提取判斷,TMS320C6713對CY7C68013內部端點(diǎn)(EP)的選擇,是通過(guò)地址線(xiàn)TEA[2:3]來(lái)實(shí)現。 2.2 系統總體結構設計 根據上述硬件通信模式搭建基于PC、USB、DSP的主從式系統,當系統上電完成各模塊固件配置和硬件初始化后,可由PC發(fā)出控制命令,以外部信號觸發(fā)DSP進(jìn)入相應的中斷處理程序,自動(dòng)完成數據流USB下載、DSB處理和USB回傳的多次循環(huán)過(guò)程;PC顯示處理后的結果。系統總體結構框圖如圖3所示。 DSP芯片通過(guò)片中的EMIF(包括4個(gè)存儲空間CE[0:3])為SDRAM,Flash等器件提供接口。SDRAM為同步存儲器件,EMIF有專(zhuān)門(mén)的控制線(xiàn)和時(shí)鐘與它進(jìn)行無(wú)縫連接(CE0空間)。這里SDRAM用做數據存儲器。 對于C6000系列DSP,調試好的應用程序需要固化,以便系統上電時(shí)能自動(dòng)加載運行。方案中采用Flash啟動(dòng)引導模式,位于EMIF異步接口CE1空間。 復位電路提供系統上電和工作電壓異常時(shí)的自動(dòng)復位及人工控制復位。時(shí)鐘電路為DSP處理模塊提供時(shí)鐘信號。 USB的接口電路提供PC與DSP的高速數據傳輸通道,接口芯片通過(guò)CPLD與外部處理器DSP相連,置于EMIF的CE2空間(通信模式如前所述)。 3 通信模塊軟件設計 Cypress公司為了簡(jiǎn)化和加速用戶(hù)使用EZ-USB FX2芯片進(jìn)行USB外設的開(kāi)發(fā)過(guò)程,特別設計了CY7C68013的開(kāi)發(fā)板,并帶有一個(gè)開(kāi)發(fā)包,內含一個(gè)USB外設所必需的驅動(dòng)程序、應用程序以及一個(gè)完整的固件程序的框架,這個(gè)框架可以執行EZ-USB芯片的初始化,USB標準設備請求的處理和USB掛起電源管理服務(wù);用戶(hù)只需要提供一個(gè)USB描述符表,添加其他端點(diǎn)接受和發(fā)送數據的通信代碼,以及控制外圍電路的程序代碼即可。 3.1 CY7C68013的固件程序規劃 固件程序框架通過(guò)幾個(gè)不同的功能模塊,實(shí)現了一個(gè)簡(jiǎn)單的互操作任務(wù)執行器,首先,通過(guò)調用用戶(hù)的初始化函數TD_Init(),初始化所有內部狀態(tài)變量,之后,程序框架將USB口初始化為未配置狀態(tài),并且使能中斷,以1s為時(shí)間間隔開(kāi)始重新列舉(renumerate)設備,直到端點(diǎn)0收到設置包為止,一旦檢測端點(diǎn)0受多一個(gè)設置包,固件框架程序就啟動(dòng)執行一個(gè)互操作的任務(wù)分配器,按照給定的順序重復執行下面的任務(wù):調用函數TD_Poll(),判斷是否有標準設備請求等待處理,確定USB核是否報告了USB掛起事件。 主要固件配置如下: 1)配置異步從FIFO(Asynchronous Slave FIFO)模式,接口驅動(dòng)采用內部的48M赫茲的時(shí)鐘源。 2)EndPoint4和EndPoint8作為雙向傳輸的管道,分別對應緩沖FIFO4和FIFO8存放USB需要接收與下傳的數據,它們均采用批量(BULK)傳輸方式,相對于其他USB2.0定義的傳輸方式具有數據可靠、傳輸速率高等特點(diǎn),是最常用的傳輸方式。 3)設置FIFO4、FIFO8為自動(dòng)方式,即在數據傳輸過(guò)程中無(wú)需CY7C68013的8051內核參與,以保證持續、高速、有效的數據傳輸。 EZ-USB FX2芯片定義了幾個(gè)特殊寄存器,以輔助固件程序相應設備請求,并向主機傳送數據,當設備收到設置包時(shí),USB核會(huì )自動(dòng)將設置數據放入8字節的SETUPBUF緩沖區中,用戶(hù)只須從中讀取設置數據,進(jìn)行分析來(lái)判斷請求的類(lèi)型即可。 方案中部分設備請求代碼如下: 讀取緩沖區中第2字節由PA[0:1]發(fā)送至DSP,作為命令類(lèi)型標志(00為下傳,01為上傳,10為處理);同時(shí)PA3口提供外部中斷觸發(fā)信號的上升沿。 固件就緒后通過(guò)Cypress公司提供的工具Control Panel加載至EEPROM中,當需要修改固件時(shí),就可以在不改動(dòng)硬件的情況下將主機上修改好的固件重新下載一次。 3.2 上位機流程 主機應用程序與操作系統相互作用,利用PC豐富的資源,實(shí)現顯示驗證,提高系統的可操作性,當操作系統認為有新設備接入時(shí),就會(huì )自動(dòng)調用相應的設備驅動(dòng)。另外,該軟件需要一個(gè)圖形用戶(hù)界面來(lái)控制所用的函數,這里采用VC++6.0來(lái)編制應用程序,首先調用CreateFile()打開(kāi)USB接口設備,獲得設備的句柄hDevice,然后計算機通過(guò)調用DeviceIoControl()函數向外設發(fā)出。部分程序如下: myRequest的8個(gè)成員變量對應固件配置SETUPBUF緩沖區中8字節的(SETUPDAT)數據,其中value的值表示了主機向DSP發(fā)送的命令類(lèi)型(00/01/10),使DSP配合完成接收,處理及上傳的系統過(guò)程。 每次調用DeviceIoControl函數傳輸的數據量?jì)H為1KB。為了滿(mǎn)足大數據量或者整幀圖像數據傳輸的要求,需要循環(huán)調用DeviceIoControl()函數,以下載數據流的過(guò)程為例,循環(huán)體中的代碼如下: buffer是主機發(fā)出數據塊的頭指針;pBy為每次下傳數據塊的首地址,是隨著(zhù)循環(huán)變量i遞增的值。同樣,上傳數據的過(guò)程中也有類(lèi)似的存儲操作。 4 系統測試 利用圖像序列對此主從式聯(lián)機系統進(jìn)行測試。 觸發(fā)PC機上的界面控件(PA(0:1)=00),下載10幅經(jīng)不同程序噪聲污染的同一內容的圖像,DSP檢測到通用外部中斷口EXT_INT6的信號(對應USB芯片的PA3)讀入數據讀取命令類(lèi)型,將10幀圖像數據存入SDRAM空間,之后,上位機繼續發(fā)出處理命令,DSP檢測到PA[0:1]=10對存儲的多幀圖像數據進(jìn)行累加平均,從而提高圖像的信噪比,在收到上傳命令(PA[0:1]=01)時(shí),DSP將處理完成的圖像回送至PC機顯示。 結語(yǔ) 本文詳細介紹了通過(guò)TMS32C6713的EMIF擴展USB接口的硬件連接、USB2.0固件程序和應用程序的開(kāi)發(fā)以及基于這種通信模式的小型聯(lián)機系統的構成。經(jīng)實(shí)際驗證,系統運行可靠,是一種比較好的高速數據傳輸與處理的解決方案。 |