USB2.0/3.0 の比較

USB3.0 Version 1.0 がリリースされてから約 3 年が経ち、コンシューマ市場では、USB3.0 に対応した機器が徐々に増えてきている。5Gbps というデータレートは、コンシューマ向けのシリアルインタフェイスとしては最も速く、高速な画像転送を必要とする産業用画像機器の分野においても USB3.0 は注目のインタフェイスである。

USB3.0 の主な特徴として、以下が挙げられる。
・データレート : 5Gbps。
・最大伝送距離 : 3m。
・給電能力 : 最大 900mA。
・後方互換性があり、これまでの USB デバイスも USB3.0 のポートに接続して使用でき、USB3.0 デバイスもこれまでの USB ホストに接続して使用できる。

5Gbps のデータレートをもつ SuperSpeed の追加により、データ転送部について大きく仕様が追加されている。本稿では、主に USB2.0 との差異と、USB3.0 で追加された仕様について説明する。

1. USB3.0 のシステム構成

1.1 バストポロジ
バストポロジは、USB2.0からの変更はない。ハブは5段まで接続可能で、ペリフェラルデバイスとハブを含めて最大127台まで接続できる。USB3.0では、USB2.0と下位互換性を保つためにデュアルバスアーキテクチャが採用されている。

図1を見てもわかるように、これまでのUSB2.0の回路(Non-SuperSpeed)に、USB3.0で追加されたSuperSpeedの回路が追加された形となっている。


図1 USB3.0のシステム構成

1.2 ケーブルとコネクタ

USB3.0では、ケーブル、コネクタについてもSuperSpeed 通信用の信号線が追加されている。D+/D-の対はNon-SuperSpeed 通信用、SSTX+/SSTX-、SSRX+/SSRX- の2対がSuperSpeed通信用となる(図2)。


図 2 USB3.0 ケーブル

Standard-Aコネクタ(ホスト側コネクタ)の外見に変更はないが、内部にSuperSpeed通信用の端子が追加されている。USB3.0 Standard-Aコネクタは、USB2.0 Standard-Aコネクタと区別できるように、プラスチックのハウジング部に青色を使用することが推奨されている(図3、4)。


図 3 USB3.0 Standard-A レセプタクル


図 4 USB3.0 Standard-A プラグ

Standard-Bコネクタ(デバイス側コネクタ)は、上部にSuperSpeed通信用の端子が配置され、突起する形になっている。USB2.0 Standard-BレセプタクルにUSB3.0 Standard-Bプラグの挿入はできないが、USB3.0 Standard-BレセプタクルにUSB2.0 Standard-Bプラグの挿入はできる。

その際、デバイスはUSB2.0デバイスとして動作する必要がある(図5、6)。図3 ~ 6は、Universal Serial Bus 3.0 Specificationより抜粋


図 5 USB3.0 Standard-B レセプタクル


図 6 USB3.0 Standard-B プラグ

2. データフローモデルと転送方式

2.1 データフローモデル
USB3.0においても、USB2.0で使用されていたエンドポイント、パイプの概念は変わらない。パイプとはホスト-デバイス間でデータ交換を行うための仮想的なリンクである。エンドポイントとはデバイス側に用意された通信用のバッファである。

エンドポイント0に接続されたパイプは、デフォルトコントロールパイプと呼ばれ、デバイスの初期化や管理などに使用するため、常に使用可能な状態にしておく必要がある。デフォルトコントロールパイプにはコントロール転送を使用する。

その他のエンドポイントの構成は、インタフェイスによって変化する。インタフェイスとは機器のもつ機能に相当するもので、詳細はデバイスクラスにて規定される。

たとえば、動画出力機能と画像メモリ機能をもつカメラの場合、動画出力機能はビデオクラス、画像メモリ機能はマスストレージクラスのインタフェイスを使用する。図7に、マスストレージクラスの構成例を示す。


図 7 マスストレージクラスの構成例

2.2 転送方式
転送方式もUSB2.0と同様にコントロール転送、バルク転送、インタラプト転送、アイソクロナス転送をサポートするが、パケットシーケンスについては、SuperSpeedにて大きく変更された。詳細は、後述する3.3.4パケットシーケンスの項にて説明する。

表1に各転送方式の最大パケットサイズを示す。また、SuperSpeedから追加された機能として、バースト転送、バルクストリームがある。バースト転送とは、データ要求、ACK応答のハンドシェークなしに、続けてデータを送ることができる機能である。


表1 転送方式と最大パケットサイズ

バースト転送により、伝送効率が向上する(図8)。


図 8 バースト転送

バルクストリームとは、バルク転送に追加された機能で、複数のストリームデータに個々のストリームIDを付加し、それらをまとめてひとつのエンドポイントにて伝送する機能である。

複数のリクエストに対し、ストリームの準備ができた順に伝送することができるため、大容量のストレージをランダムにアクセスする場合などに有効である(図9)。


図 9 バルクストリーム

3. SuperSpeed の通信階層

続いて、SuperSpeedの通信階層について説明する。SuperSpeedの通信階層は、物理層、リンク層、プロトコル層からなっている。

3.1 物理層
物理層では、SuperSpeedの信号伝達について規定している。図10はSuperSpeedの簡易的な接続図である。Non-SuperSpeedではDCレベルで信号を送っていたが、SuperSpeedではACカップリングすることになっている。

ACカップリングで伝送することにより、DC電位差による問題がなくなり、コモンモードノイズに強くなるなどの長所があるが、信号レベルに変化がない場合、受信側でデータやクロックの再生が困難となる。


図10 SuperSpeedの簡易接続図

そこで、SuperSpeedではデータのエンコード方式に8b/10bを採用し、安定したデータの転送とクロックの再生を実現している。8b/10bは8bitの信号を10bitの信号に拡張して、LowまたはHighの期間が3クロック以下になるように変換する。この2bitの拡張により20%の帯域を消費するため、SuperSpeedの実際のデータ帯域は、5Gbps×0.8=4Gbpsとなる。

3.2 リンク層
リンク層では、接続された2つのポート(リンクパートナーと呼ぶ)間の正常なデータ転送が保証されるように、エラー検出とフロー制御の方法が定義されている。

3.2.1 ヘッダパケット
SuperSpeedのプロトコル層で定義されている各パケット(LMP、TP、DP、ITP)は20バイトのヘッダパケットを含む(実際には、DP以外はヘッダパケットのみで構成されている)。ヘッダパケットは、フレームオーダーセット(パケットの開始を表す)、パケットヘッダ(プロトコル層にて使用)、リンクコントロールワードから構成される。

リンク層では、パケットヘッダのCRC-16、およびリンクコントロールワードのCRC-5、ヘッダシーケンスナンバーでデータの整合性確認を行う(図11、12)。


図11 ヘッダパケットの構成


図12 リンクコントロールワードの構成

3.2.2 リンクコマンド
リンクコマンドは受信したヘッダパケットのデータ整合性確認、フロー制御、および電源管理に使用される。リンクコマンドは8バイトで構成され、エラー耐性を高めるため、リンクコマンドのデータは2回送信される(図13)。リンクコマンドには、表2に示すコマンドが用意されている。


図13 リンクコマンドの構成


表2 リンクコマンド

3.2.3 リンクコマンドによるフロー制御
図14にリンクコマンドによるフロー制御の例を示す。


図14 リンクコマンドによるフロー制御

図14はヘッダシーケンスナンバー0の転送が成功(➀~➂)した後、ヘッダシーケンスナンバー 1の転送に失敗してリトライ(➃~➈)した例である。

トランスミッタ側から、ヘッダシーケンスナンバー 0のヘッダパケットが送信される。
➁レシーバは、ヘッダシーケンスナンバーおよびCRCを確認し、問題がない場合はLGOOD_0を送信。
➂ヘッダパケットをAのバッファに格納したので、LCRD_Aを送信。
➃トランスミッタ側から、ヘッダシーケンスナンバー 1のヘッダパケットが送信される。
➄レシーバが、CRCエラーを発見したので、LBADを送信。
➅トランスミッタはヘッダシーケンスナンバー1のヘッダパケットを再送するため、LRTYを送信。
➆トランスミッタ側から、ヘッダシーケンスナンバー 1のヘッダパケットが再送される。
➇レシーバは、ヘッダシーケンスナンバーおよびCRCを確認し、問題がない場合はLGOOD_1を送信。
➈ヘッダパケットをBのバッファに格納したので、LCRD_Bを送信。

3.3 プロトコル層
SuperSpeedのプロトコル層では、4つのパケットタイプが定義されている。

・LMP(Link Management Packets):リンクパートナー間で通信が行われる。主にリンクを管理するために使用する。
・TP(Transaction Packets):ホスト-デバイス間で通信が行われる。フロー制御や接続の管理に使用する。
・DP(Data Packets):ホスト-デバイス間で通信が行われる。データの送信に使用する。
・ITP(Isochronous Timestamp Packets):ホストからすべてのデバイスにマルチキャストされる。タイムスタンプを送信するために使用する。

次に、プロトコル層でのパケットシーケンスの理解に必要となるTP(Transaction Packets)とDP(Data Packets)について説明する。

3.3.1 TP(Transaction Packets)
TPに用意されているサブタイプを表3に示す。また、TPの代表的なパケットであるACK TPの構造を図15ならびに表4に示す。


表 3 TPのサブタイプ


図15 ACK TPの構造


表 4 ACK TPの各フィールドの説明

3.3.2 DP(Data Packets)
次に、DPの構造を示す。DPはヘッダ部:DPH(Data Packet Header)とペイロード部:DPP(Data Packet Payload)で構成される(図16)(表5)。図16表5は、ACK TPと異なるフィールドのみの説明である。


図16 DPの構造


表 5 DPの各フィールドの説明

3.3.3 アドレッシングトリプル
プロトコル層のデータフローは、TPおよびDPのデバイスアドレス、エンドポイント番号、データフローの方向により決定する。初期状態のデバイスアドレスは0で、ホストにより1から127のアドレスが与えられる。デバイスは最大で各15個のINエンドポイントとOUTエンドポイントをサポートすることができる。

3.3.4 パケットシーケンス
・コントロール転送
コントロール転送は、セットアップステージより始まり、ステータスステージで終了する。データが必要な場合は、セットアップステージとステータスステージの間にデータを送る。データの送信方向(IN転送もしくはOUT転送)はセットアップステージにて決まる(図17)。


図17 コントロール転送のシーケンス

・バルク転送
バルクIN転送は、ホストからのデータ要求を示すACKから始まり、データの受領を示すACKで終了する。バルクOUT転送は、ホストからのデータ送信から始まり、データ受領のACKで終了する(図18)。


図18 バルク転送のシーケンス

・インタラプト転送
インタラプト転送のパケットシーケンスは、バルク転送と同じである。バルク転送と異なる点は、インタラプト転送はサービスインターバル(125us)内のデータ転送が保証される点である(図19)。


図19 インタラプト転送のシーケンス

・アイソクロナス転送
アイソクロナス転送もインタラプト転送と同様にサービスインターバル(125us)内のデータ転送が保証さるが、データ欠損時の再送を行わないため、データ受領のACKを発行しない(図20)。


図 20 アイソクロナス転送のシーケンス

3.4 デバイスフレームワーク
デバイスフレームワークでは、USBデバイスがバスに接続されてからの挙動やデバイス情報を取得する方法などを規定している。

3.4.1 デバイスステータス
USBデバイスの状態遷移は次のように定義されている。図21にデバイスステータスを示す。


図 21 デバイスステータス

・ Attached:デバイスがUSBに接続された状態。
・ Powered:Attached後、バスパワーの検出をするとPoweredステートに遷移する。
・ Default:Link Trainingに成功するとDefaultステートに遷移する。

このとき、デバイスアドレスは0である。レシーバー(Rx)の終端を検出できない、もしくはLink Trainingに失敗すると、デバイスはUSB2.0(Non-SuperSpeed)で接続されることになる。

・ Address:ホストからデバイスアドレスが与えられ、Addressステートに遷移する。
・ Configured:デバイスの設定が完了し、使用可能な状態である。
・ Suspended:省電力状態に遷移していることを示す。

3.4.2 デバイスリクエスト
デバイスの各種設定を行うために、デバイスリクエストと呼ばれるコマンドが定義されている。デバイスリクエストはデフォルトコントロールパイプを通してコントロール転送にて行う。表6は、規格で用意されている標準デバイスリクエストである。


表 6 標準デバイスリクエスト

3.4.3 ディスクリプタ
デバイスはデバイスのもつ各種情報をホストに通知するためのディスクリプタと呼ばれるデータ構造体を用意する。ホストはデバイスリクエストによりディスクリプタの取得/設定ができる。表7は、規格で用意されている標準ディスクリプタである。


表 7 標準ディスクリプタ

3.4.4 デバイスクラス
デジタルカメラの撮影機能やプリンタの印刷機能など、実際のUSB機器としての機能をコントロールするためには、別途、デバイスクラスの規格書を参照する必要がある。

個々のデバイスクラスの詳細については割愛するが、デバイスクラスに準拠することで、標準のデバイスドライバを使用することができるため、システム開発の工数を削減することができる。図22は、ビデオクラスの構成例である。


図 22 ビデオクラスの構成例

ビデオクラスはUSBのWebcamなどに用いられ、様々なOSもサポートしているため、民生機器においては広く使用されている。ビデオクラスでは、カメラコントロールはコントロール転送、映像データの転送はバルクもしくはアイソクロナス転送、撮影開始などカメラの状態の通知にはインタラプト転送を使用する。

4. 今後の展望

以上、USB3.0規格の概要について紹介したが、これまで、USBは産業用画像機器の分野では、他のインタフェイスに比べデータ転送速度が遅かったため、あまり主流ではなく、標準的なプロトコルも用意されてこなかった。

しかし、アメリカの産業用画像機器分野の標準化団体であるAIA(Automated Imaging Association)を中心に、USB3.0に対応した標準プロトコルの規格化の検討が始まった。まだ検討が始まったばかりだが、今後、USB3.0を搭載した産業用画像機器が増えてくるものと期待される。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください