<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.3 端點(diǎn)操作

            數(shù)據(jù)的傳輸實(shí)際上通過(guò)端點(diǎn)(Endpoint)進(jìn)行,控制器通過(guò)寫(xiě)端點(diǎn)的寄存器來(lái)配置端點(diǎn),該控制器最多可有16個(gè)端點(diǎn),每個(gè)端點(diǎn)有相應(yīng)的4個(gè)寄存器:Epn_CSR、Epn_INT、Epn_BUF0和Epn_BUF1(這里n=0、1、2或3),其格式如圖6所示。本文使用addr[8:2]7根據(jù)地址線來(lái)訪問(wèn)這些寄存器,addr[8:4]用來(lái)選擇端點(diǎn)號(hào),其值(16進(jìn)制)從4到19分別表Epn(n=0...15)。addr[3:2]指定寄存器類(lèi)型:“00”代表CSR(Control Status Register);“01”代表中斷寄存器;“10”指向Buffer0;“11”代表Buffer1。這兩個(gè)Buffer用來(lái)作臨時(shí)數(shù)據(jù)存儲(chǔ),Buffer0和Buffer1分別作為專(zhuān)用的輸入/輸出緩沖器來(lái)提高USB的數(shù)據(jù)吞吐能力。雙Buffer能夠減少微控制器和驅(qū)動(dòng)軟件之間的延遲。其中端點(diǎn)的CSR寄存器指定端點(diǎn)的工作模式并且向控制器報(bào)告指定端點(diǎn)的狀態(tài)。Ep_CSR[31:30]必須初始化為“00”(最初使用Buffer0),通過(guò)讀這2位可以知道下次所要處理的緩沖器;為“01”時(shí),指定Buffer1。Ep_CSR[27:26]和Ep_CSR[25:24]分別指定端點(diǎn)類(lèi)型和傳輸類(lèi)型,其類(lèi)型編碼參見(jiàn)表1。Ep_CSR[21:18]指定端點(diǎn)號(hào),總共可以有16個(gè)端點(diǎn)。Ep_CSR[15]時(shí)DMA使能位,為“1”時(shí)允許外部DMA操作,否則不允許DMA操作。

          表1 類(lèi)型編碼表

          類(lèi)型編碼表

            當(dāng)控制器收到中斷時(shí),讀中斷源寄存器(Ep_INT[6:0])來(lái)判斷中斷源和產(chǎn)生的原因??勺远x中斷源,如Ep_INT[2]定義為該控制器接收到不支持的PID而產(chǎn)生的中斷:Ep_INT[2]=Pid_ERROR。Ep_INT[4]和Ep_INT[3]分別表示Buffer1和Buffer0的滿或空的狀態(tài)位。

            Ep_BUF[31](標(biāo)記緩沖器是否被使用過(guò))在使用后被控制器置“1”,在清空或重填充該緩沖器后,控制器清除該位。該閏初始化時(shí)為“0”。Ep_BUF[30:17]指定緩沖器能容納的字節(jié)數(shù)。Ep_BUF[16:0]緩沖器的指針,裝載存儲(chǔ)器SRAM中數(shù)據(jù)的地址。

            控制端點(diǎn)(Endpoint0)比較特殊,由于它既要接收也要發(fā)送數(shù)據(jù),因此對(duì)于控制端點(diǎn),Buffer0用于OUT緩沖器,Buffer1則是IN緩沖器。從SETUP和OUT分組來(lái)的數(shù)據(jù),寫(xiě)入Buffer0,IN分組的數(shù)據(jù)則是從Buffer1中獲取。

          端點(diǎn)寄存器

            2.4 DMA操作

            DMA操作允許控制器與功能接口之間數(shù)據(jù)的透明傳輸。一旦設(shè)置了DMA操作,則不需要微控制器的干預(yù)。每個(gè)端點(diǎn)有一對(duì)DMA_REQ和DMA_ACK信號(hào)。當(dāng)CSR寄存器中DMA使能信號(hào)位(Ep_CSR[15])被置位時(shí),USB控制器使用DMA_REQ和DMA_ACK這兩個(gè)信號(hào)來(lái)進(jìn)行DMA的流控制。當(dāng)緩沖區(qū)有數(shù)據(jù)或?yàn)榭招枰畛鋾r(shí)發(fā)送DMA請(qǐng)求信號(hào)DMA_REQ,每傳輸4字節(jié),響應(yīng)一個(gè)DMA_ACK信號(hào)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();