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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PDIUSBD12的USB控制器的設(shè)計

          基于PDIUSBD12的USB控制器的設(shè)計

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

            因此,可以將每種命令做成函數(shù),用函數(shù)實現(xiàn)各個命令,直接調(diào)用函數(shù)即可。

            固件程序流程圖如圖2所示。

          其中:

          TD_Init():此函數(shù)用于初始化全局狀態(tài)變量。

          TD_Poll():此函數(shù)在操作外設(shè)時反復(fù)調(diào)用,用于外設(shè)功能程序代碼的執(zhí)行。

          TD Suspend():此函數(shù)使外設(shè)進入低功耗掛起狀態(tài)。

            TD_Resume():次函數(shù)用于對外部恢復(fù)事件作出反應(yīng),并恢復(fù)處理器的正常工作狀態(tài)。

          3.2 驅(qū)動程序設(shè)計

            驅(qū)動程序介于硬件與上層應(yīng)用軟件之間,為它們之間的通信提供橋梁。應(yīng)用程序可以不必知道它想要或者正在與之通信的硬件設(shè)備的屬性,包括電氣連接,物理地址,信號種類。通信協(xié)議等,甚至應(yīng)用程序可以不知道與之通信的是何種接口。這些工作全部是由各個層次的驅(qū)動程序來完成的,應(yīng)用程序只需要知道設(shè)備的名稱,或是功能就可以了。在Windows中,應(yīng)用程序可以通過驅(qū)動程序像操作一般文件一樣來訪問硬件設(shè)備,以實現(xiàn)應(yīng)用層與設(shè)備的交互。與傳統(tǒng)PC總線(如PCI總線)設(shè)備的驅(qū)動程序相比,USB設(shè)備驅(qū)動程序從不直接與硬件對話。相反,它僅靠創(chuàng)建URB(USB請求塊)并把URB提交到總線驅(qū)動程序就可完成硬件操作。

            USB驅(qū)動程序現(xiàn)在已經(jīng)具有工業(yè)標(biāo)準(zhǔn)化,一般生產(chǎn)USB芯片的廠家已經(jīng)設(shè)計好其驅(qū)動程序,在本設(shè)計中,使用了由PHILIPS公司提供的通用驅(qū)動程序D12usb.sys,即功能驅(qū)動程序。

          4 結(jié)束語

            PHILIPS公司的芯片及其開發(fā)環(huán)境提供了一個快速有效的開發(fā)手段,本文對USB設(shè)備端的固件和硬件設(shè)計過程以及在主機端的驅(qū)動程序和應(yīng)用程序開發(fā)都作了全面詳細的介紹。給出了一個快速實現(xiàn)的方法與技術(shù),也是開發(fā)其他類似設(shè)備的參考范例。

          參考文獻:

          [1].datasheethttp://www.dzsc.com/datasheet/PDIUSBD12.html.
          [2].AT89C52datasheethttp://www.dzsc.com/datasheet/AT89C52_1064535.html.
          [3].PCIdatasheethttp://www.dzsc.com/datasheet/PCI_1201469.html.


          上一頁 1 2 下一頁

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