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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AN2131QC芯片USB總線通信的開發(fā)

          AN2131QC芯片USB總線通信的開發(fā)

          作者: 時間:2012-03-31 來源:網(wǎng)絡 收藏

          2]

            6 的固件程序開發(fā)

            從CYPRESS公司網(wǎng)站,可以下載到“控制面板程序”和驅(qū)動程序,也可以得到開發(fā)例程。通過開發(fā)例程,我們可以總結(jié)出開發(fā)自己固件程序的框架,從而可以輕松完成USB外圍設備的開發(fā)。

            在建立固件程序框架后,根據(jù)地址分配,在KEILC51 編譯器內(nèi)設置編譯連接地址,如果選用內(nèi)部RAM,CODE地址設置為0x100,XDATA地址設置為0x1200。

            (1)在DSCR.A51文件中設置外圍設備配置信息和管道

            在此文件內(nèi)包含有USB外設的定義信息和管道,其中需要自己修改的東西是設備描述和管道。

            StringDscr1和StringDscr2用于描述USB外設的種類和功能。

            EpInDscr用于定義的輸出端點,包括端點號(作為輸入的端點號字節(jié)的最高位為“1”)、傳輸方式、數(shù)據(jù)包最大長度等。

            EpOutDscr用于定義的輸入端點,格式與EpInDscr相同,但端點號字節(jié)的最高位為“0”。

             (2)通信管道的初始化

            在DSCR.A51文件內(nèi)定義了端點號后,需要在初始化定義里使能相應的通信端點,下面的例子為輸入端點2和輸出端點2的初始化例程:

          3

            其中需要注意的是USBPAIR寄存器的初始化值,他用于設定相應端點的雙輸入輸出緩沖區(qū)。在一些控制設備中需要實時獲取USB外設的狀態(tài),但在使用雙緩沖功能后,主機需要發(fā)送3個IN令牌,才能從外設取得最新的狀態(tài)數(shù)據(jù),因此在實時性要求比較高的情況下,應避免使用輸入輸出雙緩沖功能。

            (3)數(shù)據(jù)收發(fā)

            USB外設向主機發(fā)送信息和獲取信息都是以一個數(shù)據(jù)包為單位,數(shù)據(jù)包的長度可以隨機改變,但不能超過前面端點定義的最大數(shù)據(jù)包長度。以輸入端點2和輸出端點3為例說明數(shù)據(jù)的收發(fā)過程。

            向主機發(fā)送數(shù)據(jù):輸入端點2

          4

            if((IN2CS&0x02)!=0x02))
                          ?。瘷z查輸出緩沖是否為空
            
            7 結(jié)語

            在有些設備中,可能用AN2131QC作為USB通信,用其他功能強大的微處理器作數(shù)據(jù)處理,這樣的配置有一個瓶頸就是AN2131QC與微處理器的輸入輸出數(shù)據(jù)交換問題,可以用雙口RAM來解決,但這將使系統(tǒng)復雜,所以最好使用帶有標準并行總線接口的USB控制器。在USB設備的開發(fā)過程中,驅(qū)動程序的開發(fā)也是同等重要。

          參考文獻

          [1]AN2131QCDATABOOK.Cypress公司.
          [2]EZ-USB_TRM. Cypress公司
          [3]張弘.USB接口設計[M].西安:西安電子科技大學出版社,1999.


          上一頁 1 2 下一頁

          關(guān)鍵詞: AN2131QC 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); })();