單片機(jī)USB設(shè)備登錄編輯器
這個(gè)答案是因?yàn)檫@些設(shè)各已經(jīng)完成了設(shè)各列舉的步驟,PC主機(jī)已經(jīng)知道其VID/PID碼,且能依此找到相對(duì)的驅(qū)動(dòng)程序,并已下載完畢。這個(gè)VID/PiD碼即放在設(shè)各所含有的設(shè)各描述符中。也稱為操作系統(tǒng)中的機(jī)碼。
在Windows 98與Windows ME操作系統(tǒng)中,這些VID/PID碼放置于HKEY_LOCAL_MACHINE\Enum\USB與HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\USB。而在Windows XP或2000的操作系統(tǒng)下,放的位置則為:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB。 因此,可以稍微做個(gè)區(qū)分,在Windows 98與Windows ME以及Windows XP與2000的操作系統(tǒng)版本對(duì)登錄編輯器的處理方式是有若干不同的。
至于如何去查詢這些VID/PID碼呢?可由下列的步驟來(lái)取得(請(qǐng)?jiān)赪indows 98與Windows ME的操作系統(tǒng)下操作)。
?、偃鐖D1所示,執(zhí)行Windows應(yīng)用程序“執(zhí)行”,并輸入regedit.exe命令或在Windows的目錄下,直接執(zhí)行regedit.exe執(zhí)行文件,進(jìn)人“登錄編輯器”窗口。
圖1 執(zhí)行登錄編輯器的應(yīng)用程序
?、谌缓笠缊D2所示,進(jìn)人USB的項(xiàng)目中,如箭頭指示的方式。
?、蹐D3顯示了除根集線(ROOT_HUB)外,也顯示了所有曾經(jīng)安裝過(guò)驅(qū)動(dòng)程序的設(shè)備的VID/PID碼。如圖中說(shuō)明了此PC主機(jī)已經(jīng)設(shè)各列舉了多少類型的USB外圍設(shè)備。而用戶是否發(fā)覺(jué)到每一個(gè)VID/PID碼都是不同的呢?
這些不同的VID/PID碼即決定了哪些驅(qū)動(dòng)程序?qū)?huì)被加載。
除非用戶已注冊(cè)的項(xiàng)目刪除掉,Windows都會(huì)記得哪些驅(qū)動(dòng)程序已加載過(guò),且此設(shè)備再一次插人PC時(shí),就不會(huì)再檢測(cè)到有新的設(shè)備插入。也就是說(shuō),不論用戶插拔這些外圍設(shè)備多少次,都無(wú)須再重新安裝其驅(qū)動(dòng)程序了。
而每一個(gè)設(shè)備中,如圖4所示,顯示了一些相關(guān)的信息。
若要達(dá)到與完成這種登錄的工作,用戶就必須在設(shè)各一接上PC主機(jī)時(shí),執(zhí)行設(shè)備列舉的工作。換句話說(shuō),當(dāng)USB設(shè)各第一次連接到USB總線時(shí),USB主機(jī)就會(huì)對(duì)此設(shè)各做出列舉檢測(cè)的動(dòng)作。此時(shí),主機(jī)會(huì)負(fù)責(zé)檢測(cè)與設(shè)置所有連接至根集線器的設(shè)備,而識(shí)別與設(shè)置一個(gè)USB外圍設(shè)各的程序,稱之為設(shè)備列舉,也就是將所有的外圍設(shè)備一一識(shí)別并列舉出來(lái)。
圖2 “登錄編輯器”窗口
圖3 在PC主機(jī)下曾經(jīng)安裝過(guò)的各種VID/PID碼
評(píng)論