Last Update 2023/04/13

規格書解説から物理層のしくみ,基板・FPGA・ソフトウェア設計,コンプライアンス・テストまで
USB 3.0設計のすべて

野崎 原生/畑山 仁/永尾 裕樹 編著
A5判 512ページ
定価4,180円(税込)
JAN9784789846424
2011年10月20日発行
好評発売中!
USB 3.0設計のすべて

近年,デバイスの性能が著しく向上してきたため転送速度がボトルネックとなるケースが出てきました.特に,フラッシュ・ドライブやSSD(Solid State Drive)などの性能向上は目覚ましく,200MByte/secを超えるものも珍しくありません.また,データ量の増加に伴い転送が完了するまで長時間待たされることもあります.
 このような状況を改善するため,USB 2.0の後継規格としてUSB 3.0が2008年11月に公開されました.USB 3.0は今後10年間,アプリケーションが必要とする性能を提供していくと考えられ,今後エンジニアが必要する技術の一つになるでしょう.

■本書を読む前に
(1)本書で解説しているのは,USB 3.0規格についてです.USB 3.1,USB 3.2,USB4規格に関する情報は含まれておりません.USB 3.2規格については,本書の続編となる「USB 3.2のすべて」(2020年2月下旬発売予定)をご覧ください.
(2)本書は,2011年時点の規格書を元に解説しています.規格の改定などにより内容が変更される可能性があることをご了承ください.
(3)本書で解説している規格書は,USB-IFのWebサイトよりダウンロードができます.規格書と合わせて読み進めることで,より理解が深まります.
(4)本書籍に掲載された技術情報を利用して生じたトラブルについては,執筆者ならびにCQ出版社は責任を負いかねますので,ご了承ください.
目次

第1章 USBの概要
 1.1 USB規格の特徴
   1996年1月 USB 1.0/2000年4月 USB 2.0/2008年11月 USB 3.0
 1.2 USBアーキテクチャ
    USBシステムの構成/USBの通信モデル/エンドポイントの特長/実際の通信
 1.3 転送の種類
   コントロール転送/アイソクロナス転送/インタラプト(割り込み)転送/バルク転送
 1.4 USBデバイスの詳細
   コンフィグレーション/インターフェース/ファンクション/デフォルト・エンドポイント
 1.5 USBデバイスの状態
 1.6 デバイス・クラス
 1.7 USBホスト
   ファンクション・ドライバ/ハブ・ドライバ/ホスト・コントローラ・ドライバ/ホスト・コントローラ
 コラム1-A ファンクションとデバイスの使い分け

第2章 物理層と論理層の役割
 2.1 5Gbpsを実現する物理層の特徴
   差動信号のペアが追加された/全2重通信ができる/ACKを待たずにデータを転送する
 2.2 物理層における処理
   符号化方式:8b/10b 変換/クロック再生の精度を上げる/EMI対策/イコライズで高速信号波形を復活させる/LFPS(Low Frequency Periodic Signaling)/レシーバ検出の方法
 2.3 リンク層の役割
   パケットのフレーミング/リンク・コマンド/パケットのエラー・チェック,再送処理/フロー・コントロール/リンク・パワー・マネジメント/LTSSM(Link Training Sequence State Machine)
 2.4 プロトコル層のパケット構成
   パケットのフォーマット/リンク・マネジメント・パケット/トランザクション・パケット/データ・パケット/アイソクロナス・タイムスタンプ・パケット
 2.5 トランザクションの詳細
   エンドポイントの指定方法/フロー制御状態/ショート・パケット/トランザクションの制御/DPの再送処理
 2.6 ストリーム・プロトコル
   コントロール転送/割り込み転送/アイソクロナス転送/TPとDPに対するホストとデバイスのレスポンス
 コラム2.A USB 3.0のトランザクション
 コラム2.B UAS(USB Attached SCSI)

第3章 デバイスとハブの動作
 3.1 バス・エニュメレーション
 3.2 パワー・マネジメント(電力管理)
   パワー・バジェッティング/デバイス・サスペンド/ファンクション・サスペンド
 3.3 リクエストの種類
   標準リクエスト/クラス固有リクエスト/ベンダ固有リクエスト
 3.4 標準ディスクリプタの定義
   デバイス・ディスクリプタ/BOSディスクリプタ/コンフィグレーション・ディスクリプタ/SuperSpeedエンドポイント・コンパニオン・ディスクリプタ/ストリング・ディスクリプタ
 3.5 ハブの構造
   パケット・ルーティング/パケット延期/ハブ・デバイス・クラス

第4章 コネクタとケーブルの形状と特性
 4.1 ケーブルとコネクタの形状
   ケーブルの構造/コネクタの構造
 4.2 ケーブルの伝送特性
   伝送特性の測定方法/レセプタクルとプラグ・ケーブルに求められる伝送特性/伝送特性の重要性
 4.3 USBインターフェースの機器内配線
 4.4 コネクタ実装のポイント

第5章 リンク層の詳細
 5.1 リンク層の役割
   リンク・コマンドの構造と種類/状態遷移と電源管理リンク・コマンド
 5.2 リンク層の状態遷移
   正常にデバイスが認識されるフロー/電源管理フロー(U0 → U1)/電源管理フロー(U1 → U0,Recovery経由)
 5.3 パケットの送受信イメージ
   デバイスの接続からパケットの送受信まで/送受信パケットの構成/HPとLCWの構造/正常なフロー/HPのCRCエラーの場合/HSEQ#エラーの場合/トランスミット・タイマがタイムアウトの場合/DPのCRC エラーの場合/リンク・コントロール・ワードのDFフラグの使用例
 5.4 リンク層テストの概要
 5.5 リンク層テストの解析例
   Pass事例(Test No. 5 Header Packet Framing Test)/Fail事例(Test No.9 PENDING_HP_TIMER Deadline Test)
 コラム5.A USB 3.0のテスト・ツール ―― Ellisys EX280

第6章 ハードウェア設計
 6.1 USBデバイスのハードウェアの実現方法
   USBデバイスの機能ブロック
 6.2 FPGA を使ったビデオ・クラスの実装
   FPGAボードの構成/FPGA内部機能のブロック構成/データ制御
 6.3 高速転送を実現するためのデータ・バス設計
   性能見積もり/データ・バス設計方法
 コラム6-A PIPE3 インターフェース
 コラム6-B AC タイミングを考慮したPIPE3 インターフェース
 コラム6-C 回路化に有利なRGB → YUV 変換計算式

第7章 プリント基板の設計
 7.1 SuperSpeed信号の特徴
 7.2 パターン設計のポイント
   差動信号パターン/差動線路間の間隔/差動信号線路の曲げ方/ペア線間の長さを合わせる/ACコンデンサの配置とパターン設計/差動信号とビア/基板絶縁層のガラス繊維の影響/パターン分岐させない
 コラム7-A ギガビット信号の伝わり方
 コラム7-B 特性インピーダンスとは
 コラム7-C コモン・モード・フィルタ

第8章 コンプライアンス・テスト
 8.1 コンプライアンス・テストの概要
 8.2 コンプライアンス・テストを行う前に
   ノーマティブとインフォマーティブの二つの仕様がある/アイ・ダイアグラムで総合的な評価を行う/許容度限界を同時に判定するマスク・テスト/高速シリアル・インターフェースにおけるジッタは時間間隔エラー/クロック・リカバリの特性を理解する/USB3.0 の測定条件とクロック・リカバリ/ランダム・ジッタとデターミニスティック・ジッタ/コンプライアンス・テスト・パターン/スペクトラム拡散クロッキング/チャネル・トポロジ/レシーバ・テストでのエラー検出
 8.3 計測に必要な測定器
   中心的な測定器はオシロスコープ/コンプライアンス・テスト・ソフトウェア/ジッタ解析ソフトウェア/自動統合測定環境/信号ジェネレータ/エラー・ディテクタ/SMAペア・ケーブル/テスト・フィクスチャ
 8.4 トランスミッタ・テストの実際
   アイ・ダイアグラム,ジッタ・テスト(TD.1.3)/SSC プロファイル測定(TD.1.4)/LFPSテスト(TD.1.1)/必要な機材と接続,測定の手順
 8.5 レシーバ・テストの実際
   ジッタ耐性テスト(TD.1.5)/LFPS テスト(TD1.2)/必要な機材と接続,測定の手順/レシーバ・テストにおける校正/差動信号極性/将来を睨んだテストの必要性
 コラム8-A データ・レートとその周波数成分
 コラム8-B コンプライアンス・テストは必要か? ワークショップとインテグレーターズ・リスト
 コラム8-C 伝送路の高周波損失と信号品質改善技術
 コラム8-D トランスミッタ測定
 コラム8-E 伝送路チャネル/ イコライザ・シミュレーション
 コラム8-F サンプリング・オシロスコープ
 コラム8-G SIGTEST のみによる測定
 コラム8-H ジッタ・マージン・テスト
 コラム8-I ループバックBERT
 コラム8-J レシーバ・ジッタ耐性テストの重要性

 Appendix ランダム・ジッタとデタミニスティック・ジッタ
 長期間で大きなジッタが発生する可能性があるランダム・ジッタ/トータル・ジッタとデュアル- ディラック・モデル/バスタブ曲線/ビット誤り率測定と信頼度

第9章 USBソフトウェアのしくみ
 9.1 USBのハードウェアとソフトウェア
 9.2 USBのソフトウェア階層
 9.3 パソコン向けUSBホスト・ソフトウェア
   WindowsのUSBサポート/LinuxのUSB サポート
 9.4 組み込み向けUSBホスト・ソフトウェア
   USBホスト・コントローラとデバイス・コントローラ/組み込みOS のUSB ホスト・サポート
 9.5 USBデバイス・ソフトウェア
 9.6 USBのソフトウェア階層と機能
   USB3.0 ホスト・ソフトウェア/USB3.0 デバイス・ソフトウェア
 コラム9-A IntelチップセットのUSB ポート・サポート
 コラム9-B PCI Express バスへの対応
 コラム9-C xHCI レジスタとMMIO 空間レジスタへのアクセス

第10章 USBホスト・コントローラの制御
 10.1 USB3.0 ホスト・コントローラ評価用のシステム構成
 10.2 システムの初期化
   PCI Express バスの初期設定/xHC 制御レジスタと初期設定/ホスト・コントローラの初期化シーケンス
 10.3 xHCI のデータ制御構造
   リング・データ構造/リング・ポインタ制御/データ転送用TRB(Transfer TRB)/イベント通知用TRB(Event TRB)/コマンド制御用TRB(Command TRB)/そのほかのTRB
 10.4 デバイス認識と転送準備
   USB デバイスの認識/ステート遷移/デバイス管理用データ構造体/エニュメレーション処理
 10.5 データ転送
   コントロール転送/バルク転送とインタラプト転送/アイソクロナス転送
 10.6 マス・ストレージ・クラス・ドライバとファイル・システム
   ファイル・システム(TKSE FAT32ファイル・システム)/マス・ストレージ・クラス・ドライバ

第11章 USBデバイス・コントローラ制御
 11.1 USBデバイス評価システムの構成
   評価システムのハードウェア/評価システムのソフトウェア
 11.2 システムの初期化
 11.3 エニュメレーションのシーケンス
 11.4 データ転送
   コントロール転送/バルク転送
 11.5 DMA の制御フロー
 11.6 バス・ドライバ制御
   ディスクリプタ設定/標準リクエスト処理
 11.7 クラス・ドライバ制御
   マス・ストレージ・クラス・ドライバ/ビデオ・クラス・ドライバ
 11.8 USB1.1/2.0 規格との互換性
 11.9 性能向上のポイント