天天看點

淺談USB裝置的VID和PID

 根據USB規範的規定,所有的USB裝置都有供應商ID(VID)和産品識别碼(PID),主機通過不同的VID和PID來差別不同的裝置,VID和PID都是兩個位元組長,其中,供應商ID(VID)由供應商向USB執行論壇申請,每個供應商的VID是唯一的,PID由供應商自行決定,理論上來說,不同的産品、相同産品的不同型号、相同型号的不同設計的産品最好采用不同的PID,以便差別相同廠家的不同裝置。

      VID和PID通常情況下有兩種存儲方式,第一種是主要生産商的VID和PID,存儲在主要的bootcode中;第二種是裝置生産商的VID和PID,該VID和PID存儲在主要外部的非易失性儲存設備中(EEPROM或Flash)的裝置固件中,當USB裝置連接配接主機時,如果固件中有裝置生産商的VID和PID,會将該VID和PID報告給主機,而忽略主要生産商的VID和PID。是以理論上一個USB儲存設備的VID應該是裝置生産商的VID,而不是主要生産商的VID,這兩個VID應該是不同的(主要生産商自己生産的裝置除外)。

      由于VID和PID重複并不會對産品的使用帶來嚴重影響,很多USB裝置生産商(山寨廠居多)為了友善,并不會向USB執行論壇申請自己的VID,而是依然沿用主要生産商的VID或随便向産品寫入VID和PID;同時,正規廠家隻需要申請VID,PID由廠家自行确定,是以存在相同型号的産品,可能采用了不同的主要(商業需要,很正常),而他們的PID是一樣的,基于上述原因通過VID和PID就不能準确識别USB裝置的主要型号,這個問題大家在使用USB裝置的過程中需要注意。