[Back!][MAIN][Title][NEWS][Link][YAMAHA XG普及の会][MuToPiA LABEL]


GSK's Home Page-MAIN Page-
雑記

更新日:1999.11.24

USBの互換性及び気が付いたことについて

 今回は、USBについて互換性と僕がさわってきて気が付いたことに関して書いていきます。

 まず、USBとはなんでしょうか?
 Universal Serial Busの単語の頭文字を取ってUSBと読んでいるわけです。USBは、高速な転送速度を必要としない、低速な転送速度で十分なデバイスを接続するための規格です。製品としては、低速なストレージデバイス、マウス、キーボード、プリンタ、モデムなど、シリアルやパラレルポートなどのレガシーデバイス※1に代わる物として使われています。実際、転送速度は12MBit/secと、十分な物があります。ちなみに、マウスやキーボードは低速モード(1.5MBite/sec)で動作しています。そして、ハブを使うことにより、127個のデバイスを接続可能です。
 まぁ、ここまでは一般的なことで、どこからでも手に入れられる情報です。

 雑誌等ではあまり触れられていないと思うのですが、USBの互換性問題は結構大きな問題だと思います。低速なデバイスはいいのですが、高速モードを使用するデバイスの中には相性の出る物が多いです。例えば、USBスピーカー、MIDIインターフェース、などなど・・・。
 なぜこのような相性が起きるのか、ということを調べれば原因が分かりそれを解決することが可能になるかも知れません。そういうわけで、僕が調べたことを書いてみます。

 これまであまり知られていなかったと思うのですが、USBコントローラーのインターフェースの規格には二つの物があります。すなわち、UHCI(Universal Host Controller Interface)とOHCI(Open Host Controller Interface)の二つです。
 結局、ホストコントローラー※2が二種類あるということは、当然それぞれ差違があるわけで、その違いから来る不具合(俗に言う相性)が生じるわけです。ここで、USBのホストコントローラーであるチップセット※3を調べてみます。
 UHCIはIntelが規格策定、採用している規格です。そのため、Intelのチップセット(BXやi810など)やIntel互換チップセットを使用しているマザーボードは全てこれです。
 次に、OHCIは、マイクロソフト、コンパック、ナショナルセミコンダクターの三社による規格です。採用しているのは、一部のNEC製のマシン、コンパック製マシン(全てかどうかは不明)などです。OPTiのUSBコントローラーもOHCIです。

 たいていのUSB機器を開発しているメーカーはおそらくUHCIを基準に開発していると思います。というのが、UHCIでは格段にトラブルが少ないからです。特に、Intel製のチップセットはトラブルが少なくなっています。逆に、OHCIではUSBスピーカーはほとんど全滅。プリンタ、スキャナ、低速モードで動くデバイスは大丈夫なようです。
 やはり、ここでもIntelの力が強いと言うことなのでしょうか・・・。

 OHCI仕様のUSBコントローラーでも、マウス、キーボード、ハブなどは100%行けます。プリンタ、スキャナもおそらく大丈夫でしょう。これが、スピーカーになるとまずダメです。MIDIインターフェースなどはUSBホストコントローラーを製造しているメーカーによるようです。ストレージ系デバイス※4は僕はあまり使ったことないですが、スマートメディアリーダー程度なら大丈夫かも知れません。
 これが、Intelのチップセット内蔵のUSBホストコントローラーなら全ていけます。つまり、USB機器を多く使いたい人はIntelのチップセットを使うべきです。
 しかし、UHCI仕様のものでも、VIA、ALIのものは、Intelに比べて動作するものが少なくなっております。しかし、ALI製のチップセットはかなりいい感じです(動作確認がよく取られていて、Intelのチップセット並に動作するようです)。
 OHCI仕様のチップセットでは、NEC製、Compac製※5は動作するものが限られてくるような感じです。
 しかし、ドライバやチップセットの完成度で条件はどんどんよくなってくるはずなので、ドライバが更新した場合はなるべくインストールして下さい。また、同じメーカーのチップセットでも新しいものは対応機器が増えている可能性があります。

 さて、僕のUSBに対する経験談を書いてみます。
 実は、結構多くのUSB機器を所有しています。プリンタ、ハブ、マウス、キーボード、スマートメディアリーダー、MIDIインターフェース。ついでに、スキャナも知り合いのところで使ったことがあります。
 まず、愕然としたのが、電源の問題です。USBはバスパワーモード※6の場合、ハブ一個あたり500mAの電流を供給できます。ただし、ハブは100mA程度は消費するようです(これはハブによっても違うと思います)。ということは、4portのUSBポートに割り当てられる電流は400mAとなるわけです。
 例えば、c社のスキャナ(電流はUSBポートのみから供給される)の消費電力は、メーカーによると、500mAの電流を供給できるハブを使えとあるので、かなりの消費電力になると思います。R社製のMIDIインターフェース(USBのみからの電力供給)は150mAの電力を消費します。つまり、平均1portあたり100mAの電力消費しか認められていないのに、それ以上の電力を消費する物が多く存在しているというわけです。ということは、USBの消費電力のみで動作するデバイスをハブに付いているport全てに接続すると当然電力が足らなくなり動作が不安定になるわけです。ただし、セルフパワーモード※7でハブを使用すれば、1ポートあたり500mAを供給できるとのこと(メルコのUSB-Hubの説明はそうなっていました)なので、電源問題も解決するはずです。
 しかし、バスパワーとセルフパワーがちゃんと切り替わっているのか不安なんですが、妙なことを経験しました。
 あるハブにMIDIインターフェース、スマートメディアリーダー、プリンタを接続していたところ、プリンタが正常動作できませんでした。それで、もう一台あったハブに(こちらは、マウスとキーボードしか接続していない)プリンタを接続し直したところ、正常に動作するようになりました。これは、そのハブ固有のせいなのか、ハブに接続しているもののせいなのか、はたまた、電源供給がちょっとおかしいのか原因は不明です。

 オマケとして、僕のUSB環境のシステムのプロパティです。

 

 Intel BXチップセット、BTCのハブ内蔵キーボード、スマートメディアリーダー、ハブx2を装備したらこのように表示されるはずです。

 USBという規格は、当初はかなりけなされていましたが、結局かなり普及しています。けなしていた人は、技術的な部分を追いすぎているような節がありました。まぁ、確かに現在のUSBも互換性の点についてはけなされてもしかたない部分があるとは思います。ただし、「easy to use」という点についてはよろしいんじゃないかと思います。
 現在、USBの上位規格である「USB2」というものの規格が決まっています。ケーブルやハブについては現在のものがそのまま流用できるそうですが、実際は、メーカーがUSBの規格にのっとって厳密に作ってなかったりするそうなので、使えないケーブルなどもたくさんあるようです。
 PlayStation2にもUSBが搭載されるようで、かなり根付いて来たUSB、一度使ってみてはいかがでしょうか?

※1 レガシーデバイス:「LEGACY」というのは「遺産」という意味です。要するに、「古くからある」ってことです。そういうわけで、「レガシーデバイス」というのは、「昔からの装置」という意味です。

back

※2 ホストコントローラー:USBは、ツリー状に配置される構造になっていて(ピラミッド状でも可)、その総元締めがホストコントローラーなわけです。このホストコントローラーが各USB機器間の接続、データ送信・受信を行います。

back

※3 チップセット:チップセットという名前の通り、複数個のチップから成るチップ群の事をいいますが、ここでは、「CPUとバス(データの通り道)を繋ぐ役割をする複数個のチップ」のことを指しています。
 マザーボード上の、CPUのソケット(或いはスロット)の近くにある大きめのチップがおそらくそれです。ヒートシンクのついているものもあります。
 たいていは、2チップ構成に成っていて、CPUの近くにあるチップを「NorthBridge(ノースブリッジ)」、遠くにあるものを「SouthBridge(サウスブリッジ)」と呼びます。レガシーデバイスコントローラーはたいていサウスブリッジの方についていて、ノースブリッジはメモリコントローラーやPCIバスコントローラーなど、よりCPUに近いデータ転送を行う部分を制御しています。

back

※4 ストレージ系デバイス:「storage」というのは、「貯蔵」という意味です。すなわち、そのまま訳すと「貯蔵装置」、転じて「ファイル保存装置」ということになります。例としては、ハードディスク、MO(光磁気ディスク)、CD-RW、ZIPなどたくさんあります。
 要するに、ファイルを保存する装置ということです。
 ストレージ系デバイスは重要です。特にバックアップをとるというときに内蔵のハードディスク以外のものが必要になります。良くあるパターンが、「バックアップしないといけないなぁとは思っているけど・・・」で止まっていて、いざデータが消えたと言うことになると「やっぱりバックアップしておくんだった・・・。」
 みなさん、こうならないためにも、大事なファイルはこまめに外部に保存しておきましょう。しかし、バックアップをしばらく忘れていたときに限ってよくハードディスクが壊れたりするんですよね・・・(^^;

back

※5 NEC製、Compac製:すべてのNECやCompacのマシンが自社製のUSBコントローラーを使っているわけではありません。[コントロールパネル]→[システム]→[デバイスマネージャ]→[ユニバーサルシリアルバスコントローラ]に表示されているものの中に「NEC Open HCD コントローラー」や「Compaq PCI to USB Open ホストコントローラー」がある場合はNEC、Compac製のUSBコントローラーを使っていると言うことです。
 メーカー製でも、たいていはIntelやSiSのチップセットを使っていたりすることが多いので、自社製を使っていることはまれだと思います。NECのホストコントローラーは、まだUSBがマイナーだったNXシリーズ発売当初のマシンに使われていたのかも知れません(憶測。ただし、この頃はMMX Pentiumなどが主流でまだSocket7が全盛期でした。Socket7のIntel製のチップセットはTXが最後でしたが、もともとUSBはついていなかったはずなので、USB機能を搭載するためにそれに追加したという可能性があります)。それが真実ならば、NXシリーズ発売当初のNECのマシンはUSBがまともに動作するとは言い難いマシンだったということになり、レガシーフリーの割に、USBが制限されているという困ったマシンということになります(^^;

back

※6 バスパワーモード:バス(USBバスという意味でしょう)から電源を供給するモードで、ACアダプタや電源コードを使わずに、USBのケーブルを通じて電源供給を行うこと。2ポートのハブはほとんどこのモードしか用意されていない。ただし、その電流にはかなりの制限が加わります。事実上、100mA以上のUSB機器を繋がない方がいいです。そういうものを繋ぐとしても合計で400mA以下(ハブが100mA消費すると考えた方がいい)になるようにした方がいいです。ただ、瞬間消費電流がどのくらいになるかわからないので、余裕を持っておいた方がいいことは確かです。

back

※7 セルフパワーモード:普通にACアダプタやコンセントから電源を供給する方法。バスパワーモードの電力(500mA)でまかなえないような電流を必要とする機器はこのモードで動作する必要があります。また、こちらのモードで使う方が安定して使える可能性が高いです。USB電源が安定してる保証はないのと、USBハブにどのくらいの機器を繋いでいるか、またその使用状況によっても電流は変化しているからです。ただし、コンセントやACアダプタがじゃまなのは確かです。

back

writed by Akimasa Kajitani 1999.11.18
更新 1999.11.24