原文地址:http://www.xqlab.com/html/y2009/319.html
根據(jù)
USB規(guī)范的規(guī)定,所有的USB設(shè)備都有供應(yīng)商ID(
VID)和產(chǎn)品識(shí)別碼(
PID),主機(jī)通過不同的VID和PID來區(qū)別不同的設(shè)備,VID和PID都是兩個(gè)字節(jié)長,其中,供應(yīng)商ID(VID)由供應(yīng)商向USB執(zhí)行論壇申請(qǐng),每個(gè)供應(yīng)商的VID是唯一的,PID由供應(yīng)商自行決定,理論上來說,不同的產(chǎn)品、相同產(chǎn)品的不同型號(hào)、相同型號(hào)的不同設(shè)計(jì)的產(chǎn)品最好采用不同的PID,以便區(qū)別相同廠家的不同設(shè)備。
VID和PID通常情況下有兩種存儲(chǔ)方式,第一種是主控生產(chǎn)商的VID和PID,存儲(chǔ)在主控的bootcode中;第二種是設(shè)備生產(chǎn)商的VID和PID,該VID和PID存儲(chǔ)在主控外部的非易失性存儲(chǔ)設(shè)備中(EEPROM或Flash)的設(shè)備固件中,當(dāng)USB設(shè)備連接主機(jī)時(shí),如果固件中有設(shè)備生產(chǎn)商的VID和PID,會(huì)將該VID和PID報(bào)告給主機(jī),而忽略主控生產(chǎn)商的VID和PID。所以理論上一個(gè)USB存儲(chǔ)設(shè)備的VID應(yīng)該是設(shè)備生產(chǎn)商的VID,而不是主控生產(chǎn)商的VID,這兩個(gè)VID應(yīng)該是不同的(主控生產(chǎn)商自己生產(chǎn)的設(shè)備除外)。
由于VID和PID重復(fù)并不會(huì)對(duì)產(chǎn)品的使用帶來嚴(yán)重影響,很多USB設(shè)備生產(chǎn)商(山寨廠居多)為了方便,并不會(huì)向USB執(zhí)行論壇申請(qǐng)自己的VID,而是依然沿用主控生產(chǎn)商的VID或隨便向產(chǎn)品寫入VID和PID;同時(shí),正規(guī)廠家只需要申請(qǐng)VID,PID由廠家自行確定,所以存在相同型號(hào)的產(chǎn)品,可能采用了不同的主控(商業(yè)需要,很正常),而他們的PID是一樣的,基于上述原因通過VID和PID就不能準(zhǔn)確識(shí)別USB設(shè)備的主控型號(hào),這個(gè)問題大家在使用USB設(shè)備的過程中需要注意。
posted on 2010-09-16 14:48
漂漂 閱讀(1854)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
c#開發(fā)