USB Type-A(左)・Type-B(右)コネクタType-Aのコネクタ内を見ると4本の接点の内、外側の2本が若干長くなっており、差し込みの際に内側の2本より先に接触・通電するようになっている。

すべてがUSBになる【その1】USB前夜~USB 1.0/1.1

  • このエントリーをはてなブックマークに追加

by [2015年6月15日]

1995年に最初の規格化が行われ、以後現在に至るまで約20年近くにわたってコンピュータ機器向け汎用インターフェイス規格として世界で幅広く利用されているUSB(Universal Serial Bus)。

さすがに20年近くも使用され続けると、接続に使用されるコネクタや通信規格の種類が増え続け、その用途も当初は想定されなかったような分野にまで拡大しています。

最近でもUSB 3.1規格と、それを前提としたUSB Type-Cコネクタが発表されており、さらに別種のインターフェイス規格であったはずのThunderboltが次世代のThunderbolt 3でUSB Type-Cコネクタを利用するようになることが発表されるなど、今後もますますその利用範囲が広がることが計画されています。

こんなUSBですが、そんな調子でどんどん規格やコネクタの種類が増えた結果、どれがどれかよく分からなくなっている方もおられるのではないでしょうか。そこで今回は3回に分けて、このUSBについて考えてみたいと思います。

USB 1.0/1.1

USB誕生前夜の状況

NEC PC-9821RvII26N20背面USBが一般化する前のパソコン(1997年)のインターフェイス部分の一例。筆者の私物で多少の改造や拡張ボードの増設搭載を行っているが、おおむねこのように種々雑多なインターフェイスが搭載され、多種類のコネクタケーブルで周辺機器が接続されていた。

NEC PC-9821RvII26N20背面
USBが一般化する前のパソコン(1997年)のインターフェイス部分の一例。筆者の私物で多少の改造や拡張ボードの増設搭載を行っているが、おおむねこのように種々雑多なインターフェイスが搭載され、多種類のコネクタケーブルで周辺機器が接続されていた

そもそもUSBは、それまで歴史的な経緯から1つの機種でも複数の異なった種類のインターフェイスが用いられ、さらに機種のシリーズによって別規格のインターフェイスが用いられることさえ珍しくなかった各種周辺機器用インターフェイスを整理統合しよう、という動きの中で誕生しました。

USB誕生前夜の1994年当時、世界で比較的大きなシェアを持っていたPC/AT互換機とApple Macintoshシリーズでは、主立ったものだけでもそれぞれ以下のような外部接続インターフェイスが用いられていました。

○PC/AT互換機:
 ・キーボード端子:キーボード
 ・PS/2端子:キーボード・マウス
 ・9ピンシリアル端子(RS-232C):モデム・ターミナルアダプタ・マウスなど
 ・25ピンパラレル端子(IEEE-1284):プリンタ・ジョイスティック・ZIPディスクドライブなど
 ・15ピンジョイスティック端子:ジョイスティック・MIDI機器など
 ・50ピンSCSI端子:ハードディスク・CD-ROMドライブなど
 ・RJ-45端子:LAN

ADBコネクタ Apple Macintoshシリーズで初代iMac登場まで使用されていたキーボード・マウス/トラックボール用シリアルインターフェイス用コネクタ。初期のUSBはこのインターフェイスの影響を強く受けて開発されている。

ADBコネクタ

Apple Macintoshシリーズで初代iMac登場まで使用されていたキーボード・マウス/トラックボール用シリアルインターフェイス用コネクタ。初期のUSBはこのインターフェイスの影響を強く受けて開発されている

○Apple Macintosh:
 ・ADB(Apple Desktop Bus)端子:キーボード・マウス・ペンタブレット
 ・8ピンシリアル(RS-422)端子:モデム・ターミナルアダプタ・プリンタ
 ・25ピンSCSI端子:ハードディスク・CD-ROMドライブ・プリンタなど
 ・AAUI-15端子:LAN

このように多彩な、悪く言えば雑然としたインターフェイスが当然のように併存し、さらにこれら以外の機種シリーズ、例えばNECのPC-9800シリーズやSUNのワークステーションなどではそれぞれ別のキーボード・マウス用インターフェイスが搭載され、さらにはシリアルポートでRS-232C規格ながら25ピンコネクタを使用したり、パラレル端子が14ピンで一方向送信のみに対応の独自規格コネクタのものがあったり、とさらに輪をかけて混沌とした状況となっていたのです。

何故こんな状況となったのかについてはここでは詳しく触れませんが、いずれもそれぞれの機種ごとのハードウェア設計上の事情などから採用されたものであったことは確かです。

いずれにせよ、この時期には周辺機器の種類によって接続されるインターフェイスが異なっているのが当然であったわけで、特にPC/AT互換機では何か周辺機器を購入する度にパソコン本体にそれに対応するインターフェイスが搭載されていなければ、対応インターフェイスカードを搭載・設定し、しかる後に機器を接続するという煩雑な作業が必要となっていました。

インターフェイスの整理統合

実のところ、こうした複数種類のインターフェイスの併存は、整理統合が十分可能なものでした。

例えばこの時代のプリンタは、極論すればパソコンと通信して必要な印刷データを適切な速度でやりとりできるのであれば、どのインターフェイスでも問題なく利用可能でした。

他のデバイスも似たような状況で、つまり接続されたデバイスの種類ごとにある程度の転送速度が保証でき、なおかつ多数のデバイスを接続可能とする仕組みさえ用意できれば、パソコンで利用されるほとんどのインターフェイスは1種類に整理統合できることになります。

例外は、この当時アナログ接続が一般的であったディスプレイ用のRGB端子と、高速なハードディスクやCD-Rなどの接続に用いられていてこの時点ですら転送速度が5MB/sから10MB/s程度必要であったSCSI端子くらいのもので、それらを除くとおおむね1MB/sから2MB/s程度の転送速度が確保できる汎用バスインターフェイスがあれば十分統合が可能であると考えられるようになったのです。

NEC PC-9801-86 DIPスイッチ周辺Plug and Play機能が登場する以前のパソコンでは、このように拡張ボード/カードにDIPスイッチやジャンパーピンを用意して、手動で使用するリソースを指定するのが当たり前で、増設の度にIRQ(INT)の割り当てに悩まされるのが常だった。

NEC PC-9801-86 DIPスイッチ周辺
Plug and Play機能が登場する以前のパソコンでは、このように拡張ボード/カードにDIPスイッチやジャンパーピンを用意して、手動で使用するリソースを指定するのが当たり前で、増設の度にIRQ(INT)の割り当てに悩まされるのが常だった

ちなみに、こうしたインターフェイスの整理統合が積極的に進められた背景には、当時のPC/AT互換機で各種コントローラの割り込み処理に用いるID番号の数が極端に限られていて、しかもその多くがソフトウェア互換の都合から固定的に特定デバイスに割り当てられていたため、自由に使えるID番号が不足していたことがありました。

つまり、パラレル端子やシリアル端子を整理して一本化してやらないことには、新しい技術による新しいコントローラを搭載し利用することすら難しい状況に陥っていたのです。

しかも、こうした「レガシー」な各種インターフェイスでは、周辺機器が接続あるいは取り外しされたことや、あるいはそのデバイスが何であるのかをOS側から知ることはほとんどの場合できず、それどころかPS/2端子のようにパソコン本体の電源を入れて起動する際に接続されていなければデバイスが認識されず、また起動中に途中でいったんコネクタを抜いたデバイスを再接続しても正常動作しないといった挙動を示すものもあって、使い勝手が大変に悪いという問題もありました。

USBの誕生

こうした諸問題を解決すべく1995年に誕生したのが、Universal Serial Bus、つまりUSBです。

USB接続のトポロジの例ホストコントローラを起点とする樹状ネットワークを構成し、途中にループが形成されるのを禁止している。なお、ハブコントローラの接続段数には制限があり、ここからUSBバス1系統ごとの最大接続デバイス数が決定される

USB接続のトポロジの例
ホストコントローラを起点とする樹状ネットワークを構成し、途中にループが形成されるのを禁止している。なお、ハブコントローラの接続段数には制限があり、ここからUSBバス1系統ごとの最大接続デバイス数が決定される

このインターフェイスはパソコン本体に搭載されたホストコントローラと呼ばれるコントローラを頂点として、途中に適宜ハブコントローラと呼ばれる中継・分配用コントローラを挿入することでツリー型のトポロジを構成し、初期のUSB 1.0/1.1規格では最大でホストコントローラを含め127台のデバイスの接続と最大1.5MB/s(12Mbps:Full Speedモード時)での接続を共に実現しました。

ちなみに、USBのケーブルはUSB Type-Cコネクタ以前は必ずType-A・Type-B、mini-A・mini-B、そしてmicro-Bとホストコントローラに近い側がA、デバイスに近い側がB、と2種類のコネクタを対にして使うのが原則になっているのですが、これはこうすることで接続の上下を明確にし、接続のトポロジ内にループを作らせないようにするための工夫です。

これは言い換えると、極力安く、極力簡単なハードウェアで済ませようとした結果、複数のホストコントローラ同士が接続したり、あるいはホストコントローラなしでデバイス同士を接続させて通信したりするような利用法は基本的に想定していないということでもあります。

IEEE-1394aコネクタUSBと前後して登場した、SCSIの代替を目指した高機能シリアルバス用のコネクタ。各デバイスとパソコンが対等な立場で通信する仕組みのため、当時のUSBとは異なりコネクタはこのサイズではこれ1種類であった。

IEEE-1394aコネクタ
USBと前後して登場した、SCSIの代替を目指した高機能シリアルバス用のコネクタ。各デバイスとパソコンが対等な立場で通信する仕組みのため、当時のUSBとは異なりコネクタはこのサイズではこれ1種類であった

最近のネットワーク機器などではトポロジにループが構成されるとそれを検出して切断する機能が搭載されたハブがごく普通に用いられていますし、IEEE 1394(Fire Wire)と呼ばれるSCSIを代替すべく開発されたインターフェイスでは複数のホストコントローラが同一のトポロジに併存していてもきちんと動作するような工夫が凝らされている(※注1)のですが、そういった対策にはそれ相応に制御のための信号線を増やしたり回路的に対策を講じたりする必要があります。

 ※注1:この機能を利用することにより、IEEE 1394では同一バスに接続された複数のパソコンの間でLANを構築することも可能です。

つまり身も蓋もないことを言えば対応機器の生産コストが上昇するわけで、原価が極端に安い機器への普及を狙っていた当時のUSBでは、それらは採用したくとも採用できない技術であったのです。

USB Type-A(左)・Type-B(右)コネクタType-Aのコネクタ内を見ると4本の接点の内、外側の2本が若干長くなっており、差し込みの際に内側の2本より先に接触・通電するようになっている。

USB Type-A(左)・Type-B(右)コネクタ
Type-Aのコネクタ内を見ると4本の接点の内、外側の2本が若干長くなっており、差し込みの際に内側の2本より先に接触・通電するようになっている

また、Type-Aコネクタを見るとわかりやすいのですが、その接点部分は接点によって長さが変えてあり、コネクタに差し込んだ際にまず電源供給に用いる5V給電ピン(V bus)とグラウンドピン(GND)が接触し、その後でデータ信号伝送に用いる2ピン(ーData・+Data)を接続するようにすることで、バスパワー接続、つまりホストコントローラ側からの給電により動作するタイプの機器が誤動作するのを防ぐ工夫も凝らされています。

上下の接続方向を固定するコネクタ形状の相違は、このバスパワー接続も理由の1つで、上流側、つまりホストコントローラ側からデバイス側へ向けて給電するように電力供給の向きを固定するのに利用されています。

なお、1.5MB/sという転送速度は今見るとかなり遅いのですが、この当時はこれより高速なデバイス向けには最大50MB/sでの転送が可能なIEEE 1394の利用が考えられていて、また普及促進のため低コストを実現する必要もあったことから、この転送速度で妥協されたものでした。

ちなみにこの転送速度は同一バス上の1つのデバイスで全て占有できない仕組みになっていて、

 ・コントロール転送:バスに接続される各デバイスの制御などを行う。
 ・インタラプト転送:キーボードやマウスなどの低速でも一定間隔で常時監視し続ける必要のあるデバイスとの通信に用いる。
 ・バルク転送:ある程度以上のまとまった量のデータを断続的かつ非周期的に送受信する。受信失敗時には再送が行われる。
 ・アイソクロナス転送:音声データなど、連続的かつ周期的な送受信を必要とするデータ転送を行うのに用いる。連続転送が行われ単位時間あたりの最低データ送受信量が保証されているが、その代わり受信失敗時の再送が行われない。

と4つの転送モードが用意されています。

この内、コントロール転送とインタラプト転送は常に一定帯域を占有することが予約されていて、バルク転送やアイソクロナス転送はその残りの帯域を適宜分け合うようになっています。こうすることで、例えばUSBモデムを使ってインターネット接続し大容量ファイルをダウンロードしながらUSBサウンドデバイス経由で音楽再生を行っている間でも支障なくUSB接続のマウスやキーボードの操作ができるわけです。

Windows標準搭載のシステム情報でマウスの情報を表示した例「PNPデバイスID」がそのデバイスのメーカーや型番などを知らせるために割り当てられたID番号となる。

Windows標準搭載のシステム情報でマウスの情報を表示した例
「PNPデバイスID」がそのデバイスのメーカーや型番などを知らせるために割り当てられたID番号であり、この情報を元にしてドライバ検索やインストール作業が行われる

一方、OS側から見た場合のUSB最大の特徴は、活線挿抜、つまりインターフェイスやデバイスが通電している状態での接続ケーブルの抜き挿しに対応し、しかも先行して開発されたPCIバスと同様にPnP(Plug and Play)機能により、接続が検出された時点でデバイスのコントローラからベンダー(メーカー)IDや機種IDなどの情報がホストコントローラに伝えられ、自動的にデバイスドライバをインストールするための仕組みが整備されていることです。

ドライバファイルの入ったフロッピーディスクやCD-ROMなどを用意する必要がありましたが、パソコン本体のUSB端子と機器の端子をケーブルを接続するだけで、後はOSの求めに応じてドライバディスクをパソコンのドライブに挿入すれば、自動でドライバのインストールや各種設定が行われて機器が利用できるようになったのです。

当初の不振と爆発的普及

このように既存の各種インターフェイスよりも格段に扱いやすくなったUSBですが、その初期段階では、さっぱり普及しませんでした。

というのは、この新インターフェイスをサポートするOSの入手手段が極端に限られていたためです。

Windows 95 OSR2.1Windows 95の中でも特にUSBとAGPに対応した最初のバージョンであり、主にメーカー製パソコンにプリインストールして供給された。バージョン名の「4.00.950.B」がOSR2系であることを示す。

Windows 95 OSR2.1
Windows 95の中でも特にUSBとAGPに対応した最初のバージョンであり、主にメーカー製パソコンにプリインストールして供給された。バージョン名の「4.00.950 B」がOSR2系であることを示す

最初期のUSBをサポートしていたOSは、事実上Windows 95、それも特別な拡張を施されてメーカー製PCにプリインストールされるのが基本であった、「Windows 95 OEM Service Release(OSR) 2.1」と呼ばれるバージョンと、これのマイナーチェンジバージョンであるOSR 2.5しかなかったのです。

そんな中、それまで独自規格パソコンであるPC-9800シリーズを販売していたNECが、1997年秋にPC98/97規格準拠パソコンでPS/2端子を省略してキーボードを全てUSB接続とした(※注2)先鋭的コンセプトのPC98-NXシリーズを発表しOSR2.1相当のWindows 95を標準搭載、さらにこのシリーズの周辺機器としてUSB接続の機器を一通り自社で開発、ラインナップするという思い切った策に打って出ました。

 ※注2:このシリーズでは当初マウスはPS/2端子接続のものが同梱されていたのですが、そのPS/2端子はパソコン本体に用意されておらず、USB接続キーボードの底面に設けられたPS/2端子に接続して利用するという、変則的な構成になっていました。

もっともこのPC98-NXシリーズは当初、鳴り物入りで登場した割に今ひとつ売れ行きが良くなく、この頃はUSB接続の周辺機器も当然のごとく売れ行き不調気味でした。

Microsoft Windows 98USB(およびAGP)をサポートして一般に市販された最初のWindows。

Microsoft Windows 98
USB(およびAGP)をサポートして一般に市販された最初のWindows

USB接続の周辺機器が爆発的に普及をはじめるには1998年にUSBの電源管理機構が改良されてUSB 1.0からUSB 1.1となって使い勝手が向上し、マイクロソフトがUSBを標準でサポートするWindows 98を発売、対応ドライバの整備・提供が各メーカーで本格的に開始され、さらに半透明樹脂を多用した斬新な各部外装デザインで世界に衝撃を与えた、あの初代iMacが登場するのを待つ必要がありました。

次回は、USB 2.0について見てゆく予定です。

タグ:
PageTopへ