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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于USB2.0的高性能移動存儲設備的設計

          基于USB2.0的高性能移動存儲設備的設計

          作者: 時間:2010-03-02 來源:網絡 收藏

           ?。簩懯鼓苄盘枴T谄渖仙貢r,命令、地址和數據鎖存到相應的寄存器中。該信號與AT89C5131芯片的P3.6 信號連接。

           ?。鹤x使能信號。在其下降沿時,輸出數據到I/O總線,同時,它還可以對內部數據地址進行累加。該信號與AT89C5131芯片的P3.7 信號連接。

            CLE:命令鎖存使能信號。當CLE為高電平時,命令在 上升沿通過I/O端口送入命令寄存器。該信號與AT89C5131芯片的P1.0引腳連接。

            ALE:地址鎖存使能信號。當ALE為高電平時,地址在 上升沿送入地址寄存器。該信號與AT89C5131芯片的P1.1引腳連接。

           ?。浩x信號。用于控制設備的選擇。當設備忙時 為高電平而被忽略,當處于編程和擦除操作時設備不能回到備用狀態(tài)。該信號與AT89C5131芯片的P1.2引腳連接。

            R/ :準備好/忙輸出。當它為低電平時,表示編程、擦除和隨機讀操作正在進行,在操作完成后返回高電平;當芯片沒被選中或輸出禁止時,其為高電平時。該信號與AT89C5131芯片的P1.3引腳連接。

            3.固件設計實現

            本文設計的采用Bulk-Only傳輸方式,遵循UFI命令規(guī)范。固件的主要功能是響應總線的各種標準請求,向主機返回設備的狀態(tài)信息;同時,解析接收到的SCSI命令,進行相應的命令處理和數據讀寫操作。固件設計采用中斷驅動,當AT89C5131從總線上接收到請求包時,通過調用相應的中斷事件處理函數來實現,后臺處理傳輸,從而保證了閃存的快速讀寫速率。主要中斷事件有:

            (1)主循環(huán)等待USB中斷,設置相應標志位。插入主機后,主機向移動閃存的控制斷點0發(fā)出標準請求,固件進入標準請求處理函數,設備回送給主機所要求的相應描述符,調用相關驅動程序。

            (2)當USB主機通過Bulk-In端口讀取閃存數據后,產生Bulk-In端口中斷。

            (3)當AT89C5131通過Bulk-Out端口接收到主機發(fā)送的命令字CBW后,觸發(fā)Bulk-Out端口中斷。

            3.1 響應USB總線標準請求

            當USB移動存儲設備接入主機后,USB主機控制器對設備進行總線枚舉過程,首先向設備發(fā)送標準USB請求GET_DESCRIPTOR來獲得最大數據包長度;接著發(fā)出SET ADDRESS請求,為設備分配地址;使用新分配的地址再次發(fā)出GET_DESCRIPTOR請求,讀取設備的配置信息[4],如設備描述符、配置描述符、接口描述符、端口描述符和字符串描述符等,并選擇合適的驅動程序;最后,發(fā)出SET CONFIGURATION請求配置端口屬性。



          評論


          相關推薦

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