USB : Plug and Play 機能 †Vendor ID †Vendor ID は、USB-IF より各ベンダー毎に割り当ててもらいます。 Vendor ID は USB の仕様を満たすためには必ず必要な番号なので、商品化する場合には前もって USB-IF とコンタクトを取る必要があります。残念ながらテスト用の Vendor ID は存在しません。個人で USB 開発する場合にネックになりがちです。 Vendor ID は Get Descriptor のタイミングで返却されます。
#ちなみに Intel の Vendor ID は「0x8086」。オシャレですね =)。 Product ID †Product ID は、各ベンダー毎に管理します。 何を割り当てるかは自由ですが、PnP のキーとして重要な番号ですので製品ごとに割り振った方がよいでしょう。OS は、見知りの Class が無い場合には、Vendor ID と Product ID をキーとして Driver を Load します。 通常、Vendor ID と Product ID の組み合わせで、USB 機器を特定することが可能になります。 Enumlation †USB では、USB 機器が Plug-in された時に機器の情報を取得し、正しく設定を行う機能を持っています。Plug-in 時の USB 機器情報取得する動作のことを Enumeration(列挙, enum)と言います。Vendor ID/Product ID, Device Class 等の機器情報は、Plug-in 時に行われる Enumeration で入手するのが一般的です。 以下は、書籍「USB コンプリート」の「5-1 エニュメレーションの過程」からの引用です。
OS は 8. 〜 12. を主に担当しています。 ちなみに「ハブ」は必ずどの USB システムでも用意されており、大本の Hub (システム内部)のことを「Root Hub」と呼びます。 |