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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FT245BM與FPGA的USB接口電路設(shè)計

          FT245BM與FPGA的USB接口電路設(shè)計

          作者: 時間:2017-10-28 來源:網(wǎng)絡(luò) 收藏

            總線因其傳輸速度快、占用資源少以及真正的即插即用等諸多優(yōu)點,受到了廣大開發(fā)者的青睞,已經(jīng)成為很多計算機設(shè)備的一種基本配置。目前被廣泛采用的設(shè)備開發(fā)方案主要有以下兩種(1)利用設(shè)備端接口芯片加微控制器結(jié)構(gòu)。如國內(nèi)用的比較多的Philips公司的PDIUSBD12/ISP1581等。(2)采用USB單片機。采用這兩種方案要求開發(fā)者徹底理解USB協(xié)議的細節(jié),并編寫出固件程序。固件的運行要占用微控制器的時間和空間資源,實際通信效率不會很高。也有人用實現(xiàn)固件的功能,但這種方案開發(fā)和調(diào)試的難度很大。本人在實際工作中用外部直接連接一片USB協(xié)議芯片F(xiàn)T245BM,實現(xiàn)了與PC機的USB通信,該方法不用微控制器,減少了元器件的個數(shù),并且占用FPGA資源很少,F(xiàn)PGA仍然可以實現(xiàn)其他邏輯功能,系統(tǒng)設(shè)計的靈活性很大。

          本文引用地址:http://www.ex-cimer.com/article/201710/369302.htm

            關(guān)于FT245BM的內(nèi)部結(jié)構(gòu)及詳細地引腳介紹讀者可以參考其他相關(guān)資料,在此僅對與本設(shè)計相關(guān)的內(nèi)容作一個介紹。FT245BM內(nèi)含兩個FIFO數(shù)據(jù)緩沖區(qū),一個是128字節(jié)的接收緩沖區(qū),另一個是384字節(jié)的發(fā)送緩沖區(qū)。它們用作USB 數(shù)據(jù)與并行I/O口數(shù)據(jù)的交換緩沖區(qū)。FIFO實現(xiàn)與外界(微控制器、FPGA或其它器件)的接口,主要通過8根數(shù)據(jù)線D0~D7、讀寫控制線RD#和 WR#以及FIFO發(fā)送緩沖區(qū)空標(biāo)志TXE#和FIFO接收緩沖區(qū)非空標(biāo)志RXF來完成數(shù)據(jù)交互。TXE#為低表示當(dāng)前FIFO發(fā)送緩沖區(qū)為空,為高表示當(dāng)前FIFO發(fā)送緩沖區(qū)滿或者正在存儲前一個字節(jié),禁止向緩沖區(qū)中寫數(shù)據(jù)。RXF#為低表示當(dāng)前FIFO的接收緩沖區(qū)非空。RD#信號由低變高將從 FIFO緩沖區(qū)中讀取數(shù)據(jù)。當(dāng)RD#變低時將數(shù)據(jù)送到數(shù)據(jù)總線。RXF#為高不能從FIFO讀數(shù)據(jù)。讀寫時序見圖1和圖2。

            

            圖2 寫數(shù)據(jù)時序

            FT245BM與FPGA的設(shè)計

            硬件電路設(shè)計

            圖3是FT245BM的USB與FPGA的,F(xiàn)PGA選用ALTERA EPF1K50TC-144,其中D0~D7是FT245BM與FPGA交換數(shù)據(jù)的數(shù)據(jù)總線,USB_RD#、USB_WR、USB_TXE#、USB_RXF#是相關(guān)的控制總線。

            

            圖3 FT245BM與FPGA的



          關(guān)鍵詞: FPGA USB 接口電路

          評論


          相關(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); })();