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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA和VHDL的USB2.0控制器設(shè)計(jì)

          基于FPGA和VHDL的USB2.0控制器設(shè)計(jì)

          作者: 時(shí)間:2010-05-21 來(lái)源:網(wǎng)絡(luò) 收藏

            2 控制器實(shí)現(xiàn)

            控制器接口的信號(hào)框圖如圖3所示。存儲(chǔ)器采用標(biāo)準(zhǔn)的單口SRAM,其信號(hào)接口由32位數(shù)據(jù)線SRAM_DATA、15位地址線SRAM_ADDR及讀寫信號(hào)(SRAM_WE和SRAM_RD)組成,系統(tǒng)所需SRAM的容量為2 15×32bit=128KB。

          控制器接口的信號(hào)框圖

            而與微控制器之間的接口信號(hào)包括32位數(shù)據(jù)線DATA、18位地址線ADDR以及DMA請(qǐng)求和響應(yīng)信號(hào)(DMA_REQ和DMA_ACK)。由于要支持到128KB,需要17位地址線,另外還需要一根地址線來(lái)選通SSRAM和USB控制器內(nèi)部的寄存器,總共需要18根地址線addr[17:0]。定義如下:

            USB_RF_SEL = !addr[17];

            USB_MEM_SEL =addr[17];

            第18位地址addr[17]為高時(shí)選擇緩沖存儲(chǔ)器,否則選擇內(nèi)部寄存器。地址addr[16:2]直接用于存儲(chǔ)器SSRAM的地址。

            2.1 UTMI接口

            UTMI接口信號(hào)包括:與發(fā)送數(shù)據(jù)相關(guān)的信號(hào)(TxValid、TxReady等),與接收數(shù)據(jù)相關(guān)的信號(hào)(RxActive、RxValid、RxError等)以及16位雙向數(shù)據(jù)線。

            在物理層,該控制器需要一個(gè)外部的USB收發(fā)器(Transceiver),本文采用的是Philips公司的ISP1501芯片。該芯片用作USB2.0的模擬前端,從USB電纜來(lái)的差分信號(hào)進(jìn)行反轉(zhuǎn)不歸零碼(NRZI)解碼和位解填充轉(zhuǎn)換成16位并行數(shù)據(jù);反之,16位并行數(shù)據(jù)通過(guò)一個(gè)差分驅(qū)動(dòng)電路經(jīng)過(guò)串行化、位填充和NRZI編碼輸出到USB電纜上。ISP1501通過(guò)管腳MODE0和MODE1決定收發(fā)器的工作模式,共有4種工作模式:MODE[1:0]為“00”時(shí),收發(fā)器處于斷開狀態(tài);為“01”時(shí)處于全速(Full Speed)模式(此時(shí)USB帶寬為12Mb/s);為“10”時(shí)是高速(High Speed)模式(此時(shí)USB最大帶寬是480Mb/s);為“11”時(shí)是HS chirp模式。

            UTMI接口通過(guò)譯碼MODE[1:0]來(lái)控制ISP1501在HS和FS之間轉(zhuǎn)變。

            If mode_hs='1'then

            MODE='10'

            Elsif mode_hs='0'then

            MODE='01'

            End if;



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();