<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 分析用EZ-USB實現(xiàn)TMS320C6X與主機的數(shù)據(jù)傳輸

          分析用EZ-USB實現(xiàn)TMS320C6X與主機的數(shù)據(jù)傳輸

          作者: 時間:2013-09-06 來源:網絡 收藏

            2.2 系統(tǒng)總體結構設計

            根據(jù)上述硬件通信模式搭建基于PC、USB、DSP的主從式系統(tǒng),當系統(tǒng)上電完成各模塊固件配置和硬件初始化后,可由PC發(fā)出控制命令,以外部信號觸發(fā)DSP進入相應的中斷處理程序,自動完成數(shù)據(jù)流USB下載、DSB處理和USB回傳的多次循環(huán)過程;PC顯示處理后的結果。系統(tǒng)總體結構框圖如圖3所示。

            DSP芯片通過片中的EMIF為SDRAM,F(xiàn)lash等器件提供接口。SDRAM為同步存儲器件,EMIF有專門的控制線和時鐘與它進行無縫連接。這里SDRAM用做數(shù)據(jù)存儲器。

            復位電路提供系統(tǒng)上電和工作電壓異常時的自動復位及人工控制復位。時鐘電路為DSP處理模塊提供時鐘信號。

            USB的接口電路提供PC與DSP的高速通道,接口芯片通過CPLD與外部處理器DSP相連,置于EMIF的CE2空間(通信模式如前所述)。

            3 通信模塊軟件設計

            3.1 CY7C68013的固件程序規(guī)劃

            固件程序框架通過幾個不同的功能模塊,實現(xiàn)了一個簡單的互操作任務執(zhí)行器,首先,通過調用用戶的初始化函數(shù)TD_Init(),初始化所有內部狀態(tài)變量,之后,程序框架將USB口初始化為未配置狀態(tài),并且使能中斷,以1s為時間間隔開始重新列舉(renumerate)設備,直到端點0收到設置包為止,一旦檢測端點0受多一個設置包,固件框架程序就啟動執(zhí)行一個互操作的任務分配器,按照給定的順序重復執(zhí)行下面的任務:調用函數(shù)TD_Poll(),判斷是否有標準設備請求等待處理,確定USB核是否報告了USB掛起事件。

            主要固件配置如下:

            1)配置異步從FIFO(Asynchronous Slave FIFO)模式,接口驅動采用內部的48M赫茲的時鐘源。

            2)EndPoint4和EndPoint8作為雙向傳輸?shù)墓艿?,分別對應緩沖FIFO4和FIFO8存放USB需要接收與下傳的數(shù)據(jù),它們均采用批量(BULK)傳輸方式。

            3)設置FIFO4、FIFO8為自動方式,即在過程中無需CY7C68013的8051內核參與,以保證持續(xù)、高速、有效的。

             FX2芯片定義了幾個特殊寄存器,以輔助固件程序相應設備請求,并向主機傳送數(shù)據(jù),當設備收到設置包時,USB核會自動將設置數(shù)據(jù)放入8字節(jié)的SETUPBUF緩沖區(qū)中,用戶只須從中讀取設置數(shù)據(jù),進行分析來判斷請求的類型即可。

            方案中部分設備請求代碼如下:

            讀取緩沖區(qū)中第2字節(jié)由PA[0:1]發(fā)送至DSP,作為命令類型標志(00為下傳,01為上傳,10為處理);同時PA3口提供外部中斷觸發(fā)信號的上升沿。

            固件就緒后通過Cypress公司提供的工具Control Panel加載至EEPROM中,當需要修改固件時,就可以在不改動硬件的情況下將主機上修改好的固件重新下載一次。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();