PCやスマートフォンに限らず、身近なところにある「USB」。だが、同じUSBでもさまざまな形状のコネクターがあったり、安いケーブルではデータ通信ができなかったり、と不思議なことも多い。この「USB」という規格について解説していく。
「ITの教室」は、ITに関わる規格や仕組みなどを簡潔に紹介するコーナーです。まずはUSBについて、その概要を解説します。
適当なケーブルでつないだらスマートフォンが充電できなかったが、ケーブルを替えたらデバイスを認識した。充電はできるのに、データ転送ができなくて困った。といったように、USBに関して、こういったトラブルを見聞きすることがある。
最初にUSBが登場したのは、1996年のことだ。すでに20年以上も前になる。このため、USBはPCやスマートフォンに広く普及し、100円ショップでUSBケーブルが売られ、コンビニにはUSB充電器が並ぶ。しかし、こうした普及の影でUSBの仕様を満たさない製品やケーブルなどが存在しているのも事実である。
現在のUSBに関する「混乱」の一部には、こうした仕様外のものが原因となるものも少なくない。ただ、残念なことに仕様外のものを語ることは難しい。そこで、逆にここではUSBについて仕様を基に解説を行い、USBについて正しい理解を深めてもらおうと思う。仕様をある程度把握することで、仕様外とはどういうことかおぼろげながら見えてくるだろう。
初回となる今回は、よく目にするUSBのバージョンやロゴ、コネクターなどを中心に、USBを構成する基本的な要素を解説する。
そもそも、USBとは「Universal Serial Bus(ユニバーサルシリアルバス)」の略で、現在多くのコンピュータに採用されている周辺機器接続のための技術規格仕様である。最初から周辺機器をコンピュータ本体の外部で接続するために設計された「インタフェース」である。インタフェースとは、コンピュータの場合、機器とコンピュータを接続するための仕様やデバイス、技術などを意味する。
USBの名称である「ユニバーサルシリアルバス」とは、「仕様に基づくことで、どんな周辺機器でも利用できる」(ユニバーサル)、「データを直列に送信する」(シリアル)方式を使う、複数のデバイスを同時に接続できる「バス」という意味だ。
最近では、USB接続デバイスが安価に入手可能になっているため、外部の周辺機器との接続に限らず、PCの内部接続でもUSBは利用されている。例えば、PCの内蔵カメラの多くは、内部的にはUSBで接続されている。
USBには基本的に上位互換性があり、過去に製造された周辺装置を最新のPCでも利用できる。また、USBデバイスでは原則、「デバイスクラス」と呼ばれる仕様(各種デバイスが持つべき機能)が定義されており、デバイスクラスに対応したデバイスドライバがあれば、同じクラスに属するデバイスを利用できる。周辺機器ごとにデバイスドライバを開発する必要はない。
Windows XPの頃までは、標準で搭載されているデバイスドライバにも限りがあったため、ドライバやサポートソフトウェアの入ったCDなどが付属しているUSB機器が多かった。しかし最近では、Windows OSをはじめ、多くのOS(オペレーティングシステム)が広範なデバイスクラスをカバーするデバイスドライバを標準で持っている(「ボックスドライバ」などと呼ばれる)。
半面、デバイスの出来不出来により、デバイスクラスが正しく認識されず、間違ったデバイスドライバが使われたり、デバイスドライバがインストールされなかったり、というトラブルもある。インターネットでデバイスドライバを入手できる場合もあるが、そもそも、メーカーが不明のUSBデバイスもある。
また、USBが作られてから20年以上が経過しているため、そもそも、メーカーが消滅してしまったデバイスも少なくない。デバイス名を使ってインターネットで検索するとデバイスドライバがダウンロード可能なサイトも見つかるのだが、ウイルスやマルウェアが含まれている危険性があるため、全て安心できるわけではないので、注意が必要だ。
さらにWindows OSでは、Vistaからデバイスドライバの署名(作成者を明らかにし、改ざんを防ぐための仕組み)が必須となり、標準状態では、署名のないデバイスドライバはインストールができなくなっている。署名による制限を解除する方法もあるが、危険なのでお勧めできない。インターネットからダウンロードできるデバイスドライバは、たとえ署名があったとしても、製造元以外のものは、ウイルスやマルウェアが含まれている危険性が高く、やはりお勧めできない。
現在では、USB 2.0とUSB 3.2の2つの仕様が主に利用されている。USB 2.0は、2000年に定義され、最大480Mbpsの転送速度を持つ。現在でも、あまり速度を必要としない多数のデバイスが、このUSB 2.0に準拠して製造されている。USB 3.2は、2017年に仕様書が発行された。最大20Gbpsという高速なデータ転送が可能で、外付けのハードディスクや高速な有線、無線ネットワーク機器などの接続に使われる。
実際には、それぞれのUSB仕様には、過去のバージョンがある。例えば、USB 2.0は、USB 1.0、USB 1.1の後に登場した。現在では、USB 2.0と3.2がUSBの仕様であり、新規に周辺機器を製造するのであれば、これらに準拠したものとなる。その一方で、市場やユーザーの手元には、USB 1.0や1.1、あるいはUSB 3.0、3.1の周辺機器やPCが存在している。
しかし、全てのUSB 3.x機器は、USB 2.0と互換性があるため、過去に発売された周辺機器も最新のPCで利用可能になっている。
表「USBのバージョンと仕様書の発行年」は、これまで登場したUSB仕様(USBのバージョン)とその仕様書の公開年月を示したものだ。基本的に全てのUSB周辺装置や対応PCは、特定のUSBバージョンに準拠して作られる。当然、あるバージョンの仕様書が発行される以前には、そのバージョンに準拠した機器は存在しない。このため、機器のおおよその製造年が分かれば、対応バージョンの判断ができる。
USBでは、「ロゴ」により、対応仕様(周辺機器やPCが対応するUSBの転送速度)を示す。これには、製品のパッケージなどに表示されるもの(USBロゴ)と、製品のUSBコネクター付近に表示されるもの(「シンボル」などと呼ばれる)がある。特にUSBコネクターに表示されるシンボルを、その形状から「トライデントロゴ」という(トライデントとは三つまたのやりの意)。
原則、ロゴは、USBのライセンスを受けた場合に利用可能になるため、ロゴの有無は、仕様を満たしていると解釈が可能だ。ただし、USB 2.0のトライデントロゴに関しては、USB 2.0の技術仕様書で定義されているため、仕様を満たしていない製品にも付けられている可能性がある。筆者も手元のUSBケーブルを見てみたが、USB 2.0トライデントロゴはほとんどのケーブルに記載があった。
グラフ「USBのデータ転送帯域」にUSBや各種インタフェースの転送帯域幅(Mbytes/s。以下MB/sと略す)を示す。基本的には、USB 2.0よりも低速なインタフェースは全てUSB 2.0で接続が行え、USB 2.0機器として設計できる。
例えば、IEEE 802.11nなどの無線LANやFastイーサネット(100Mbps)はまだ需要があり、その接続ならば、USB 2.0でも十分だ。また、一般的なキーボードやマウスが必要とする転送帯域はかなり低く、数百bps程度であるためUSB 2.0でも十分に対応できる。
実際には、インタフェース側が多少速くてもコストを下げるためにUSB 2.0接続としているものも存在する。例えばギガビットイーサネットは、仕様上は、USB 2.0よりも高速なのだが、帯域を複数のノードで共有することを考えると、一般的な利用状況では、USB 2.0の速度でも十分に対応できる。このため、一部のギガビットイーサネットアダプターには、USB 2.0のものもある。
USB 2.0と3.2は、最大データ転送帯域(転送速度)に大きな違いがある。また、一般的に最新のデバイスよりも、長い間製造されてきた半導体デバイスの方が、コストは下がる。世の中には、性能優先という考え方もあるが、コスト優先という考え方も少なくない。性能が低くともコストを抑えたいという場合、USB 2.0はまだ選択肢として残り続けるだろう。このため、USB 2.0と3.2は補完の関係にあり、周辺機器が必要とする転送帯域やコストに応じて使い分けられている。
USBは、PCのような「ホスト」とプリンタや外部記憶装置のような周辺機器である「デバイス」を接続するものだ。制御はホストが行い、デバイスはホストの制御によって受動的に動作する。
ただしこれは、あくまでもUSBにおけるデータ転送の基本的な制御方法に基づいた概念である。例えばスマートフォンなどは、自律的に動作する「コンピュータ」ではあるが、PCとUSB接続した場合には、デバイスとして動作し、データ転送に関しては、PC側が制御を行うことになる。また、ホスト同士やデバイス同士を接続して動作させるような“特別な”デバイスもある(USB転送ケーブルや、プリンタを接続できるデジカメなど)。
USBのホストとデバイスを接続するのが「USBケーブル」だ。USBの仕様では、ケーブルの両端には「プラグ」があり、ホストやデバイス側の接続部(受け口)を「レセプタクル」と呼ぶ。
一般に、こうした部品を全部まとめて「コネクター」と呼び、その形状から「オス」(オスコネクター)、「メス」などと区別していることもあるが、USBの仕様では、プラグとレセプタクルと呼んで区別している。このため、本記事でも、表記はこれに準じるが、両者を合わせて「コネクター」とする一般的な表記も併用する。
USBケーブルの仕様などについては別途解説するが、原則としてUSBケーブルは両端にあるコネクターをわざと異なる形状のものにしている(ただし「USB Type-C」という仕様のみ両端に同じコネクターを使用できる)。これは、ホスト側とデバイス側を区別するためだ。
USBでは、ホスト側がデバイス側に電力を供給できる。この電力の流れには方向があるため、ケーブルの両端の機器が電力を供給しようとすると回路にダメージを与えたり、誤動作したりする可能性がある。このため、間違ってホスト側同士を接続するなどしないように、ホスト側とデバイス側でコネクターの形状を変えている。一般的なルールとしてホスト側につなぐコネクターを「A」、デバイス側につなぐコネクターを「B」と呼ぶ。
一部のUSBデバイスはコネクターを持たず、直接ケーブルが出ているもの(俗にピッグテールなどという)や、直接ホストに接続できるプラグが出ているもの(例えば、USBメモリなど)もある。これらは、USBケーブルのデバイス側が省略されたものと考えられるが、プラグに関するルールは同一である。
USBでは、ホスト側のレセプタクル1つには1本のUSBケーブルしか接続できない。しかし、ホストとデバイスの間に「ハブ(Hub)」を置くことで、複数のUSBデバイスを接続できるようになる。
ハブを使うことで、最大127台のデバイスを接続できるが、一般的に複数のUSBレセプタクルを持つPCは、内部にハブがあり、1つのUSBホストコントローラー(USBホストの役割を果たす半導体デバイス)に接続している。前述の127台という論理値は、コントローラーごとの台数である。なお、複数のホストコントローラーを内蔵しているPCも存在する。
いまやUSBは、PCだけでなく、スマートフォンやタブレットなどさまざまな製品と周辺装置を接続する標準的なインタフェースである。過去には、RS-232Cやセントロニクス互換プリンタコネクター、SCSI、PS/2マウスポートなどデバイスごとに独自のインタフェースがあり、場合によってはPCに拡張ボードを装着してそこに周辺装置を接続していた。しかし、一般的な利用では、USBはこれらのほとんどを置き換え、誰でも気軽にコンピュータに周辺装置を接続できるようになった。
さて次回は、デバイスクラスやスマートフォンなどでの採用が多いUSB OTG(On The Go)などを解説する予定だ。
Copyright© Digital Advantage Corp. All Rights Reserved.