[USB-COLUMN]: 1台のUSB機器で複数の機能を可能にする技術

<Home> → <[USB]: USB 総合窓口> → <[USB-COLUMN]: 1台のUSB機器で複数の機能を可能にする技術>

HUB 接続型デバイス (Compound device、コンパウンド デバイス)

各機能の持った USB 機器を USB-HUB で束ねることで多機能な USB 機器を実現しています。USB-HUB を介して接続されているため、実際の制御は個々に行われることになります。

HUB 接続型デバイスは、複数の機能を制御するための仕組みを新たに開発することが殆ど無いので簡易なハードウェア開発が行える半面、USB-HUB のコストが余計に掛かってしまう欠点があります。最近では FS/LS の場合は、チップ単価が下がっているため大きな問題にならない場合が多いですが、Hi-Speed USB の場合は、未だにチップ単価は高いので考慮しなければならないことが多いでしょう。

私は今の所、Hi-Speed USB での HUB 接続型デバイスを見たことがありません。トロハブや Hub 内蔵型キーボードのような「Hub + α」の組み合わせならば出荷されるかもしれません。

※「HUB 接続型デバイス」は Compound device と区別したいがために作った造語です。
※Compound device も「複合デバイス」として扱われることもあります。

Resource


複合デバイス (Composite device、コンポジットデバイス)

通常、単機能の USB 機器の場合、 Configulation descriptor と Interface descriptor が一つずつ割り当てられますが、USB の仕様では 1 つの Device descriptor に対し、複数の Configulation descriptor または Interface descriptor をサポートすることで、複数の機能同時に動作させることも可能です。このような機器のことを一般的に「複合デバイス(Composite device)」と言います。

複合デバイスは USB HUB を使用せずとも複数の機能をサポート出来るため、低価格で複数の機能をサポートすることが出来ます。反面、1 つの Control pipe を共用して動作させるため、既存の USB 機器を繋ぎ合わせてツギハギするような開発はやりにくくなります。排他やリセット処理も複数の機器に対して行うのか、区別しなければならず複雑になりやすいです。

以下は複合デバイスである KP-C50 のデバイスマネージャ情報です。

Windows 2000 SP4 での Device Manager 情報 (KP-C50)

上記では、HID デバイスの他に、テープを印刷するためのベンダー独自の Interface が認識されています。当然、Mouse も使いながらテープも印刷出来なければならないので複合デバイスとして認識されているようです。

Mouse 部分は MS 標準 Driver を使用したいがための複合デバイスなのでしょう。

Resource


複数 LUN (Multiple Logical Unit Number)

複数 LUN は、その名の通り SCSI の LUN を意識しています。複数 LUN の設定は USB Storage class の Bulk-Only Transport のみ有効です。

SCSI の LUN と使用目的は同じで、LUN を割り振ることで 1 つの USB 機器で複数のメディアをサポートします。最近だと USB Memory card Reader に用いられることが多いです。

利点の多い 複数 LUN ですが、OS のサポートが良くありません。Linux distributor の殆どは 複数 LUN を意図的にサポートしないよう設定されており、複数 LUN をサポートさせるには Kernel の再構築を余儀なくされます。Windows も Windows 2000 SP3 以前では複数 LUN をサポートしていません。


<Home> → <[USB]: USB 総合窓口> → <[USB-COLUMN]: 1台のUSB機器で複数の機能を可能にする技術>
Copyright (c) 2004-2005 Makoto NARA (Mc.N), All rights reserved.
<Terms of Use>

Valid CSS! Valid HTML 4.01!