1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于TMS320VC54X的USB2.0硬件接口設(shè)計

      更新時間: 2008-08-11 13:58:18來源: 粵嵌教育瀏覽量:1117

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

      1 USB測控系統(tǒng)框圖

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


                       

                       
      2 CY7C68001的主要特點

        CY7C68001符合USB2.0規(guī)范;支持高速(480Mbps)或全速(12Mbps)USB數(shù)據(jù)傳輸;4個可編程端點共享4KB的FIFO,每個端點對應(yīng)的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相關(guān)引腳說明如下::表明CY7C68001有中斷事件發(fā)生,或反映對于CY7C68001的讀操作結(jié)束;READY:通知TMS320VC54X可以對CY7C68001讀寫;FLAGA、FLAGB、FLAGC:報告由FIFOADR[2:0]選擇的FIFO狀態(tài),默認(rèn)分別對應(yīng)為FIFO自定義、滿、空狀態(tài);FLAGD/:FIFO狀態(tài)/片選可選,默認(rèn)為片選信號;SLOE:CY7C68001驅(qū)動并行數(shù)據(jù)總線,常與SLRD短接;SLRD:并口讀有效信號,在SLRD有效且同步通信時,F(xiàn)IFO指針在每個IFCLK的上升沿遞增;SLWR:并口寫有效信號,在SLRD有效且同步通信時,F(xiàn)IFO指針在每個IFCLK的上升沿遞增;PKTEND:總是高電平,將當(dāng)前的緩沖區(qū)提交給上位機(jī)USB;FD[15:0]:數(shù)據(jù)總線;FIFOADR[2:0]:提供給與TMS320VC54X接口的FIFO地址選擇。

      4 CY7C68001主要寄存器說明

      命令接口寄存器:命令字的格式如表1所示:
                     
       

        A/D對應(yīng)地址/數(shù)據(jù),0 表示本次操作為數(shù)據(jù)讀或?qū)懀? 表示本次操作為地址寫。R/W表讀/寫操作選擇,0 寫操作,1 讀操作。A[5:0] 地址/數(shù)據(jù),當(dāng)A/D=0時,A[3:0]為數(shù)據(jù)半字節(jié),A[5:4]未用。命令字為8位,命令字?jǐn)?shù)據(jù)分兩次讀出或?qū)懭耄瑢τ诿總€字節(jié)而言,先讀寫高4位,后低4位。當(dāng)A/D=1時,A[5:0]為將要尋址的命令寄存器地址。

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

      5 CY7C68001提供給DSP兩種軟件接口

        (1)FIFO接口:CY7C68001內(nèi)部4Kbyte的RAM(8個512byte塊)通過編程,分配給EP2、EP4、EP6和EP8直接作為FIFO。
        (2)命令接口:用于設(shè)置CY7C68001、讀狀態(tài)、加載描述符和訪問端點0 。

        DSP通過對CY7C68001地址線FIFOADR[2:0]的訪問完成上述兩種接口,地址分配如表2:


                        
      6 DSP與CY7C68001的通信

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

        CY7C68001的初始化:CY7C68001的初始化是通過對它的一系列寄存器進(jìn)行設(shè)置完成的。CY7C68001的地址FIFOADR[2:0]為100時,選中CY7C68001的命令接口。通過CY7C68001的命令接口,可以訪問37個寄存器、端點零緩沖器(64個字節(jié)FIFO)和描述表(500bytes的FIFO)。對于這些寄存器、緩沖器和描述表的讀寫操作,根據(jù)上面的論述要分兩步進(jìn)行,即在READY有效時,先向命令口寫入要尋址寄存器的子地址和操作類型(讀或?qū)懀螅赗EADY再次有效時分兩次讀寫命令口,即可讀寫一個字節(jié)的數(shù)據(jù)。相應(yīng)讀寫時序(圖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標(biāo)志的獲取:FLAGA-FLAGC的高低電平反映由FIFOADR[2:0]所選取的FIFO狀態(tài),F(xiàn)IFO標(biāo)志所代表的信息可以通過對FLAGSAB/FLAGSCD寄存器進(jìn)行編程配置,對FLAGX的獲取可以通過硬件中斷裁決,也可以通過對相應(yīng)狀態(tài)寄存器的查詢裁決,本文對FLAGA、FLAGB通過硬件中斷裁決,對FLAGC通過狀態(tài)寄存器的軟件查詢裁決。

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

      7 USB固件程序的組織

      本設(shè)計主程序流程如圖5所示:



                           圖5 固件主程序流程圖

      8 結(jié)束語

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

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

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 精品99国产视频 | 亚洲欧洲日产韩国夜夜高潮 | 久久伊人精品青青草原日本 | 在线欧美天码中文字幕 | 亚洲香蕉国产福利在线播放 | 亚洲国产一二三区欧美日韩 |