分析用EZ-USB實現(xiàn)TMS320C6X與主機的數(shù)據(jù)傳輸
2.2 系統(tǒng)總體結(jié)構(gòu)設(shè)計
根據(jù)上述硬件通信模式搭建基于PC、USB、DSP的主從式系統(tǒng),當(dāng)系統(tǒng)上電完成各模塊固件配置和硬件初始化后,可由PC發(fā)出控制命令,以外部信號觸發(fā)DSP進入相應(yīng)的中斷處理程序,自動完成數(shù)據(jù)流USB下載、DSB處理和USB回傳的多次循環(huán)過程;PC顯示處理后的結(jié)果。系統(tǒng)總體結(jié)構(gòu)框圖如圖3所示。
DSP芯片通過片中的EMIF為SDRAM,F(xiàn)lash等器件提供接口。SDRAM為同步存儲器件,EMIF有專門的控制線和時鐘與它進行無縫連接。這里SDRAM用做數(shù)據(jù)存儲器。
復(fù)位電路提供系統(tǒng)上電和工作電壓異常時的自動復(fù)位及人工控制復(fù)位。時鐘電路為DSP處理模塊提供時鐘信號。
USB的接口電路提供PC與DSP的高速數(shù)據(jù)傳輸通道,接口芯片通過CPLD與外部處理器DSP相連,置于EMIF的CE2空間(通信模式如前所述)。
3 通信模塊軟件設(shè)計
3.1 CY7C68013的固件程序規(guī)劃
固件程序框架通過幾個不同的功能模塊,實現(xiàn)了一個簡單的互操作任務(wù)執(zhí)行器,首先,通過調(diào)用用戶的初始化函數(shù)TD_Init(),初始化所有內(nèi)部狀態(tài)變量,之后,程序框架將USB口初始化為未配置狀態(tài),并且使能中斷,以1s為時間間隔開始重新列舉(renumerate)設(shè)備,直到端點0收到設(shè)置包為止,一旦檢測端點0受多一個設(shè)置包,固件框架程序就啟動執(zhí)行一個互操作的任務(wù)分配器,按照給定的順序重復(fù)執(zhí)行下面的任務(wù):調(diào)用函數(shù)TD_Poll(),判斷是否有標(biāo)準(zhǔn)設(shè)備請求等待處理,確定USB核是否報告了USB掛起事件。
主要固件配置如下:
1)配置異步從FIFO(Asynchronous Slave FIFO)模式,接口驅(qū)動采用內(nèi)部的48M赫茲的時鐘源。
2)EndPoint4和EndPoint8作為雙向傳輸?shù)墓艿?,分別對應(yīng)緩沖FIFO4和FIFO8存放USB需要接收與下傳的數(shù)據(jù),它們均采用批量(BULK)傳輸方式。
3)設(shè)置FIFO4、FIFO8為自動方式,即在數(shù)據(jù)傳輸過程中無需CY7C68013的8051內(nèi)核參與,以保證持續(xù)、高速、有效的數(shù)據(jù)傳輸。
EZ-USB FX2芯片定義了幾個特殊寄存器,以輔助固件程序相應(yīng)設(shè)備請求,并向主機傳送數(shù)據(jù),當(dāng)設(shè)備收到設(shè)置包時,USB核會自動將設(shè)置數(shù)據(jù)放入8字節(jié)的SETUPBUF緩沖區(qū)中,用戶只須從中讀取設(shè)置數(shù)據(jù),進行分析來判斷請求的類型即可。
方案中部分設(shè)備請求代碼如下:
讀取緩沖區(qū)中第2字節(jié)由PA[0:1]發(fā)送至DSP,作為命令類型標(biāo)志(00為下傳,01為上傳,10為處理);同時PA3口提供外部中斷觸發(fā)信號的上升沿。
固件就緒后通過Cypress公司提供的工具Control Panel加載至EEPROM中,當(dāng)需要修改固件時,就可以在不改動硬件的情況下將主機上修改好的固件重新下載一次。
評論