メディア
特集
» 2006年02月01日 00時00分 公開

―EDN編集部が接続性を実験:USB機器をLANでつなぐ (1/3)

USBは2点間を結ぶ優れたインターフェースだが、USB over IPの実装には課題が多い。

[Robert Cravotta,EDN]

 2005年に始めたUSBoIP(universal serial bus over internet protocol)実践プロジェクトでは、ネットワークを経由してUSBで接続された機器(以下USBデバイス)を操作するために何が必要なのかを調査している。このプロジェクトは、USBデバイスの機能を拡張する新しい用途への関心と認識を高めることを目指す。一般的な実践プロジェクトと同様、このプロジェクトでも調査、計画立案、実施に数カ月という期間を要した。ワイヤレスUSB規格が発表されたのはつい最近であり、今回のプロジェクトでは深く考慮していない。

 1995年、コンピュータ・通信関連企業7社からなるコンソーシアムがUSB規格を発表した。USBは当初、コンピュータと電気通信機器との接続用に設計されたものだったが、現在ではデスクトップ、周辺機器、および多くのコンスーマ電子機器向けの汎用インターフェースとなった。USB Implementers Forumによると、現在世界では20億を超える有線USB接続が利用されているという。USBは、USB‐シルアルインターフェース間、USB‐イーサネット間およびUSB‐802.11アダプタ間などのさまざまな通信技術を実装した機器にコンピュータを接続する「プラグアンドプレイ」の接続ツールとしても優れている。

 EDN誌では、任天堂Gameboy ColorのゲームリンクインターフェースをUSBにつないでみた*1)。このプロジェクトの目的は、市販されている機器をいかに画期的な方法で使用できるかを実証することだ。この場合には、ゲーム用に設計されたハンドヘルド機器をビジネスやエンジニアリング用に活用できるようにすることも考えられる。読者からは低価格の医療機器向けポータブルプラットフォームとしてGameboyを使用する構想について意見が寄せられていた。

図1 USBサーバーはUSBデバイスのホストコントローラとして動作し、各ホスト/クライアントとの調整を行って、各ホストコンピュータ上でUSBデバイスのエニュメレーションを実行する。 図1 USBサーバーはUSBデバイスのホストコントローラとして動作し、各ホスト/クライアントとの調整を行って、各ホストコンピュータ上でUSBデバイスのエニュメレーションを実行する。 

 この実践プロジェクトの本来の目的は、USBホストを従来のUSBデバイスにワイヤレスネットワーク経由で接続したときに、「USBデバイスは正常に動作するが、ネットワーク接続は認識しない」という状態を実証することだった(別掲記事「USB用語」を参照)。USBデバイスをネットワーク経由で接続するには、ローカルホストおよびネットワークアダプタとして動作し、ネットワーク経由でホストコンピュータとのトランザクションを管理する小さなボックスにUSBデバイスを接続しなくてはならない(図1)。ホストコンピュータ上では、USBシステムソフトウエアを拡張して、既定のPCIバスではなくネットワーク経由でUSBトランザクションの送受信を行えるようにする。その変更をUSBクラスドライバが認識せずに、そのままで動作できるようにシステムソフトウエアを拡張する。既存のUSBデバイスをサポートするには、この最後の部分が重要である。

図2 ホストコンピュータのインターフェース機能を拡張するUSBインターフェースアダプタ。他のUSBデバイスのインターフェース機能は拡張しない。 図2 ホストコンピュータのインターフェース機能を拡張するUSBインターフェースアダプタ。他のUSBデバイスのインターフェース機能は拡張しない。 

 この方法は、USBデバイスを通じてホストシステムへのワイヤレスネットワーク接続を可能にするUSB‐802.11ユニットなどのアダプタとは異なる。このプロジェクトでは、ホストコントローラのみに接続できるUSBデバイスをアダプタとする(図2)。これらの機器を他のUSBデバイスではなくホストコントローラに接続する方法としてはUSBポートを使用する。

 EDN誌では、ワイヤレスUSBを1つのプロジェクトとして扱うのは難しいと判断し、プロジェクトの範囲を縮小して有線ネットワーク経由のUSB接続を目指した。複雑なワイヤレス接続に挑む前に、有線ネットワークによるUSB接続を実験することにした我々の判断は、妥当なものであった。

図3 USB/PCIドライバに代わる新しいバスドライバは、ホストコンピュータおよびUSBサーバー上のUSBシステムソフトウエアにUSB/ネットワーク機能を提供する。 図3 USB/PCIドライバに代わる新しいバスドライバは、ホストコンピュータおよびUSBサーバー上のUSBシステムソフトウエアにUSB/ネットワーク機能を提供する。 

 プロジェクトをできるだけ簡単にするため、ネットワーク経由で正常なUSBセッションを確立することをプロジェクトの目標とした。通常業務の合間を縫っての作業だったので、時間的な余裕はあまりなかった。そのため、一般に発表できるようなデモを行うことや、最高のパフォーマンスを達成するといったことは考えなかった。時間を節約するため、物理的な部品をつくるようなこともせず、プロジェクトの目的に合った市販のプロセッサとボードを使用することにした。

 ボードは、少なくとも1台のUSB 2.0準拠デバイスの接続をサポートするハードウエアとソフトウエアを備えていることを要件とし、EDN編集部のオフィス内のネットワークに接続して操作できるものとした。この要件を決めたことで、このプロジェクトのコンセプトを実証する、ホストコンピュータ上とUSBサーバー上のUSBシステムソフトウエアに使用する新しいバスドライバの開発に専念できた(図3)。既に最初に選んだプロセッサとボードで時間を無駄にしてしまった後ではあったが、最終的にはARM9プロセッサを搭載したAT91RM9200-EK評価ボードを米Atmel社が提供してくれた。


脚注

※1…Cravotta, Robert, "Gaming as serious business," EDN, Feb 7, 2002, pg 48.


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.