1. 程式人生 > >淺談USB裝置的VID和PID

淺談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;同時,正規廠家只需要申請VIDPID由廠家自行確定 ,所以存在相同型號的產品,可能採用了不同的主控(商業需要,很正常),而他們的PID是一樣的,基於上述原因通過VID和PID就不能準確識別USB裝置的主控型號,這個問題大家在使用USB裝置的過程中需要注意。