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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于TMS320VC54X的USB2.0硬件接口設計

          基于TMS320VC54X的USB2.0硬件接口設計

          作者: 時間:2007-06-22 來源:網絡 收藏
          摘要:本文在分析CY7C68001通用USB器件主要特征的基礎上,闡述了一種VC與CY7C68001接口的方案,并針對VC擴展USB接口進行了論述,給出了具體接口框圖和關鍵代碼。該方案對于使用其它微處理器開發(fā)基于CY7C68001的USB功能也有良好的借鑒作用。
          關鍵詞:端點;枚舉;先進先出

          USB總線具有傳輸速度高、熱插拔、即插即用等特點,深受廣大用戶青睞,但由于USB通信協(xié)議和開發(fā)手段的復雜性,給研究人員的開發(fā)應用增加了一定的難度。CYPRESS公司生產的CY7C68001通用USB2.0接口控制器是基于應用層編程的接口器件,相對于其它基于鏈路層編程的接口器件,使用簡單,開發(fā)方便。因此我們在深入研究CY7C68001的特點的基礎上,對VC進行USB功能接口設計。

          1  USB測控系統(tǒng)框圖
          測控系統(tǒng)的框圖如圖1所示。


          2 CY7C68001的主要特點
          CY7C68001符合USB2.0規(guī)范;支持高速(480Mbps)或全速(12Mbps)USB數(shù)據(jù)傳輸;4個可編程端點共享4KB的FIFO,每個端點對應的FIFO空間大小及FIFO狀態(tài)可編程;8/16位雙向命令接口、配置靈活(同步/異步可配置,狀態(tài)引腳、讀寫引腳以及極性可編程),數(shù)據(jù)I/O口可與DSP、FPGA或其它ASIC同步/異步通信;智能SIE功能(可在不借助微處理器中斷的前提下完成枚舉);集成的鎖相環(huán)功能;I/O口為3.3VTTL電平,可承受5V電壓。

          3 TMS320VC54X與CY7C68001的異步接口
          接口框圖如圖2所示,CY7C68001相關引腳說明如下: :表明CY7C68001有中斷事件發(fā)生,或反映對于CY7C68001的讀操作結束;READY:通知TMS320VC54X可以對CY7C68001讀寫;FLAGA、FLAGB、FLAGC:報告由FIFOADR[2:0]選擇的FIFO狀態(tài),默認分別對應為FIFO自定義、滿、空狀態(tài);FLAGD/ :FIFO狀態(tài)/片選可選,默認為片選信號;SLOE:CY7C68001驅動并行數(shù)據(jù)總線,常與SLRD短接;SLRD:并口讀有效信號,在SLRD有效且同步通信時,F(xiàn)IFO指針在每個IFCLK的上升沿遞增;SLWR:并口寫有效信號,在SLRD有效且同步通信時,F(xiàn)IFO指針在每個IFCLK的上升沿遞增;PKTEND:總是高電平,將當前的緩沖區(qū)提交給上位機USB;FD[15:0]:數(shù)據(jù)總線;FIFOADR[2:0]:提供給與TMS320VC54X接口的FIFO地址選擇。

          4 CY7C68001主要寄存器說明
          命令接口寄存器:命令字的格式如表1所示:

          表1 命令字的格式

          A/D對應地址/數(shù)據(jù),0 表示本次操作為數(shù)據(jù)讀或寫,1 表示本次操作為地址寫 。 R/W表讀/寫操作選擇,0 寫操作,1 讀操作。A[5:0] 地址/數(shù)據(jù),當A/D=0時,A[3:0]為數(shù)據(jù)半字節(jié),A[5:4]未用。命令字為8位,命令字數(shù)據(jù)分兩次讀出或寫入 ,對于每個字節(jié)而言,先讀寫高4位,后低4位。當A/D=1時,A[5:0]為將要尋址的命令寄存器地址。

          端點配置寄存器(EPXCFG):對USB端點類型、方向和大小進行配置。端點2、4、6和8共享8X512byte的RAM,通過配置,端點2、6分別享有2、3或4個512byte大小的緩沖區(qū),端點4、8最大只能配置成兩個緩沖區(qū)。本文使用默認端點配置(每個端點對應512B*2緩沖的Bulk配置)。EPXPKTLENH/L:端點緩沖區(qū)大小寄存器。FLAGSAB/FLAGSCD:FIFO引腳標志分配寄存器。EPXPFH/L:確定每一端點對應FIFO標志大小的寄存器。

          5 CY7C68001提供給DSP兩種軟件接口
          (1)FIFO接口:CY7C68001內部4Kbyte的RAM(8個512byte塊)通過編程,分配給EP2、EP4、EP6和EP8直接作為FIFO。

          (2)命令接口:用于設置CY7C68001、讀狀態(tài)、加載描述符和訪問端點0 。
          DSP通過對CY7C68001地址線FIFOADR[2:0]的訪問完成上述兩種接口,地址分配如表2:
          表2 DSP對CY7C68001尋址

          6 DSP與CY7C68001的通信
          本部分包括DSP自身初始化、DSP對CY7C768001初始化、DSP協(xié)助HOST計算機枚舉CY7C68001、中斷處理以及對CY7C68001的各狀態(tài)監(jiān)控。由于本文使用CY7C68001默認的描述符信息,所以在枚舉時只要提供廠商、產品及設備代碼(VD、PD、DD)即可,如果把這部分代碼燒寫到符合I2總線接口的EEPROM,并連接到CY7C68001的SCL、SDA引腳,USB枚舉時,在SIE作用下,可以自動完成枚舉。在DSP初始化中對I/O口等待狀態(tài)寄存器設置為7,以適應同CY7C68001的數(shù)據(jù)交換。

          CY7C68001的初始化:CY7C68001的初始化是通過對它的一系列寄存器進行設置完成的。CY7C68001的地址FIFOADR[2:0]為100時,選中CY7C68001的命令接口。通過CY7C68001的命令接口,可以訪問37個寄存器、端點零緩沖器(64個字節(jié)FIFO)和描述表(500bytes的FIFO)。對于這些寄存器、緩沖器和描述表的讀寫操作,根據(jù)上面的論述要分兩步進行,即在READY有效時,先向命令口寫入要尋址寄存器的子地址和操作類型(讀或寫),之后,在READY再次有效時分兩次讀寫命令口,即可讀寫一個字節(jié)的數(shù)據(jù)。相應讀寫時序(圖3、圖4)及代碼如下:
          void WriteRegister (BYTE r, BYTE d) //寄存器號r,要寫入的數(shù)據(jù)d
          {
          low_level_command_write (0x04, (r | 0x80)); // bit7 = 1, bit6 = 0,寫請求
          low_level_command_write (0x04, (d 0xF0) >> 4); //寫數(shù)據(jù)的高四位
          low_level_command_write (0x04, (d 0x0F)); //寫數(shù)據(jù)的低四位
          }
          BYTE ReadRegister (BYTE r) //寄存器號r
          {
          BYTE d; //臨時變量d
          read_interrupt = TRUE;
          low_level_command_write (0x04, (r | 0x80 |
          0x40));  //讀請求, bit7 = 1, bit6 = 1
          while (read_interrupt) //等待 SX2 有數(shù)據(jù)
          d = low_level_command_read (0x04);//讀數(shù)據(jù)
          return (d);
          }

          FIFO標志的獲?。篎LAGA-FLAGC的高低電平反映由FIFOADR[2:0]所選取的FIFO狀態(tài),F(xiàn)IFO標志所代表的信息可以通過對FLAGSAB/FLAGSCD寄存器進行編程配置,對FLAGX的獲取可以通過硬件中斷裁決,也可以通過對相應狀態(tài)寄存器的查詢裁決,本文對FLAGA、FLAGB通過硬件中斷裁決,對FLAGC通過狀態(tài)寄存器的軟件查詢裁決。

          有關中斷:CY7C68001有6個中斷源,可以分別通過對中斷使能寄存器的各位進行設置,一旦中斷事件發(fā)生,CY7C68001的 引腳就被置低,并且置中斷使能寄存器的相應位(即中斷使能寄存器同時充當中斷標志寄存器,中斷使能寄存器具有讀寫屬性)。當中斷發(fā)生時,中斷標志寄存器的狀態(tài)字映射到FD[7:0],所以中斷發(fā)生后,DSP對CY7C68001簡單的一次讀操作即可獲取中斷信息,識別中斷源并進行相應處理。相對于中斷標志寄存器的讀操作,其它對CY7C68001寄存器的讀操作通常要先發(fā)送一次讀請求,并且收到READY響應后,才可以讀取數(shù)據(jù)。

          7 USB固件程序的組織
          本設計主程序流程如圖5所示:

          圖5 固件主程序流程圖

          8結束語
          在設計開發(fā)中,DSP固件程序的組織應綜合考慮以中斷方式工作的USB通信部分和以查詢方式工作的DSP數(shù)據(jù)采集、控制部分。由于以中斷方式工作的USB通信程序隨時都可能打斷以查詢方式工作的DSP數(shù)據(jù)采集、控制程序,造成數(shù)據(jù)丟失,相位紊亂,我們采用CPLD進行AD、DA邏輯控制,并運用FIFO數(shù)據(jù)緩沖機制,減小了DSP壓力,取得了良好的效果。

          本設計中,TMS320VC5402與CY7C68001接口之間采用異步信息交換。該方案對于使用其它微處理器開發(fā)基于CY7C68001的USB2.0接口,或在微處理器與CY7C68001之間采用同步信息交換也有良好的借鑒作用。

          參考文獻
          [1] EZ-USB SX2 High-Speed USB Interface Device CYPRESS JULY 13,2004
          [2] TMS320C6000 EMIF to USB Interfacing Using Cypress EZ-USB SX2 TEXAS INSTRUMENTS MARCH 2004
          [3] CY3682 Design Notes CYPRESS AUGUST 1,2002



          關鍵詞: TMS 320 2.0 54X

          評論


          相關推薦

          技術專區(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); })();