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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機USB設備登錄編輯器

          單片機USB設備登錄編輯器

          作者: 時間:2013-10-12 來源:網(wǎng)絡 收藏
          在前幾章中,用戶已經(jīng)知道如何在設各管理器中看到所有已經(jīng)接上的設備的類型與格式。當然,用戶也知道當這些設各被拔離,再重新接上后,不用再重新安裝其驅動程序。那么PC主機為什么知道其已安裝過,且了解其驅動程序是什么呢?

            這個答案是因為這些設各已經(jīng)完成了設各列舉的步驟,PC主機已經(jīng)知道其VID/PID碼,且能依此找到相對的驅動程序,并已下載完畢。這個VID/PiD碼即放在設各所含有的設各描述符中。也稱為操作系統(tǒng)中的機碼。

            在Windows 98與Windows ME操作系統(tǒng)中,這些VID/PID碼放置于HKEY_LOCAL_MACHINE\Enum\與HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\。而在Windows XP或2000的操作系統(tǒng)下,放的位置則為:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB。 因此,可以稍微做個區(qū)分,在Windows 98與Windows ME以及Windows XP與2000的操作系統(tǒng)版本對登錄編輯器的處理方式是有若干不同的。

            至于如何去查詢這些VID/PID碼呢?可由下列的步驟來取得(請在Windows 98與Windows ME的操作系統(tǒng)下操作)。

           ?、偃鐖D1所示,執(zhí)行Windows應用程序“執(zhí)行”,并輸入regedit.exe命令或在Windows的目錄下,直接執(zhí)行regedit.exe執(zhí)行文件,進人“登錄編輯器”窗口。

            圖1 執(zhí)行登錄編輯器的應用程序

           ?、谌缓笠缊D2所示,進人USB的項目中,如箭頭指示的方式。

           ?、蹐D3顯示了除根集線(ROOT_HUB)外,也顯示了所有曾經(jīng)安裝過驅動程序的設備的VID/PID碼。如圖中說明了此PC主機已經(jīng)設各列舉了多少類型的USB外圍設備。而用戶是否發(fā)覺到每一個VID/PID碼都是不同的呢?

            這些不同的VID/PID碼即決定了哪些驅動程序將會被加載。

            除非用戶已注冊的項目刪除掉,Windows都會記得哪些驅動程序已加載過,且此設備再一次插人PC時,就不會再檢測到有新的設備插入。也就是說,不論用戶插拔這些外圍設備多少次,都無須再重新安裝其驅動程序了。

            而每一個設備中,如圖4所示,顯示了一些相關的信息。

            若要達到與完成這種登錄的工作,用戶就必須在設各一接上PC主機時,執(zhí)行設備列舉的工作。換句話說,當USB設各第一次連接到USB總線時,USB主機就會對此設各做出列舉檢測的動作。此時,主機會負責檢測與設置所有連接至根集線器的設備,而識別與設置一個USB外圍設各的程序,稱之為設備列舉,也就是將所有的外圍設備一一識別并列舉出來。

            圖2 “登錄編輯器”窗口

          圖3 在PC主機下曾經(jīng)安裝過的各種VID/PID碼


          上一頁 1 2 下一頁

          評論


          相關推薦

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