USBを勉強する(1.1~1.2)

いろいろあってUSBを学びたいと思います. とりあえず,下の本を参考に.

忘れっぽいので,少しずつまとめていこうと思います.

USB規格の特徴

  1. 汎用的
  2. 簡単
  3. 低コスト
  4. 接続後にすぐ実行(プラグ・アンド・プレイ機能:PnP)
  5. 電源を入れたまま接続可能(ホット・プラグ機能)
  6. バイスに電源を共有できる
USB1.0
  • 1.5MbpsのLow Speed(LS)モードと12MbpsのFull Speed(FS)モードをサポート
USB2.0
  • 480MbpsのHigh Speed(HS)モードをサポート
USB3.0
  • 5GbpsのSuper Speed(SS)モードをサポート
  • USB2.0と完全上位互換
  • バス・プロトコルのオーバヘッド減少による実効転送速度の向上
  • パワー・マネジメントを強化

USB3.0の策定にはデータサイズや補助記憶装置の容量が大きくなったのが主な理由のようだ.

USB2.0の仕様書はUniversal Serial Bus Specification, Revision 2.0だが, USB3.0の仕様書はUniversal Serial Bus 3.0 Specification, Revision 1.0 とのこと.

結局完全上位互換ならRevision3.0でも良かったのでは?

USB2.0と3.0で共通のアーキテクチャ

  • ハブは最大5個までカスケード接続が可能
  • 1つのUSBホスト(PCとか)に対して最大127デバイスまで接続可能
  • USBデバイスにはデバイス・アドレス(初期値0,初期化後は一意の値)が割り当てられる
USB通信モデル

基本単位としてエンドポイント,パイプ,トランスファで成り立つ.

エンドポイント

エンドポイント番号,転送方向,転送タイプからなる

  • エンドポイント番号: 開発者によって1~15の値が割り振られる
    • エンドポイント番号0はデフォルトエンドポイント(後述)で予約済み
  • 転送方向
    • INエンドポイント: エンドポイントからファンクション・ドライバへの読み込み
    • OUTエンドポイント: ファンクションドライバ・からエンドポイントへデータを書き込み
    • 双方向エンドポイント: どちらも可能.通常はデフォルト・エンドポイントのみ
  • 転送タイプ
    • コントロール・エンドポイント: (基本的に)デフォルト・エンドポイント専用
    • バルク・エンドポイント: 大量のデータをエラーなく伝送する
    • インタラプト・エンドポイント: 一定時間内に少量の転送をエラーなく行う
    • アイソクロナス・エンドポイント: 一定時間内に必ずアクセスされ大量のデータ転送が可能だが,エラーの可能性がある.リアルタイム伝送などを想定

基本的なUSBメモリはコントロール・エンドポイントとバルク・エンドポイントなのかな? いろんな機能を入れようとするとそれ単体ではなさそう.

インタラプトはキーボードとかで使いそう.

とりあえずここまで.