2011年4月23日

USB3.0とUSB2.0の差異 その1 (USBハブクラスのStatusフィールド)

今、USB3.0の仕様を色々と見ています。「プロトコル層より上位は互換性がある」といったことも聞きますが、実際には細かなところに差異があります。特にUSB3.0ではハブの仕様が大きく変更されておりクラスリクエストも見直されています。
その違いの1つとして、ハブクラス仕様で決められているPort Status Field(wPortStatus)とPort Change Fileld(wPortChange)を以下で比較してみます。

  • USB3.0:wPortStatus
    •   Bit 0 : Current Connect Status
    •   Bit 1 : Port Enabled/Disabled
    •   Bit 2 : Reserved
    •   Bit 3 : Over-current
    •   Bit 4 : Reset
    •   Bit 5-8 : Port Link State
    •   Bit 9 : Port Power
    •   Bit 10-12 : Negotiated speed
    •   Bit 13-15 : Reserved


  • USB3.0:wPortChange
    •   Bit 0 : Connect Status Change
    •   Bit 1-2 : Reserved
    •   Bit 3 : Over-Current Indicator Change
    •   Bit 4 : Reset Change
    •   Bit 5 : BH Reset Change
    •   Bit 6 : Port Link State Change
    •   Bit 7 : Port Config Error
    •   Bit 8-15 : Reserved
  • USB2.0:wPortStatus
    •   Bit 0 : Current Connect Status
    •   Bit 1 : Port Enabled/Disabled
    •   Bit 2 : Suspend
    •   Bit 3 : Over-current
    •   Bit 4 : Reset
    •   Bit 5-7 : Reserved
    •   Bit 8 : Port Power
    •   Bit 9 : Low-Speed Device Attached
    •   Bit 10 : High-Speed Device Attached
    •   Bit 11 : Port Test Mode
    •   Bit 12 : Port Indicator Control
    •   Bit 13-15 : Reserved
  • USB2.0:wPortChange
    •   Bit 0 : Connect Status Change
    •   Bit 1 : Port Enable/Disable Change
    •   Bit 2 : Suspend Change
    •   Bit 3 : Over-Current Indicator Change
    •   Bit 4 : Reset Change
    •   Bit 5-15 : Reserved


違いを明確化するために色付けしてみた。青字はUSB3.0で拡張あるいは無効になったフィールド、赤字が互換性の無いフィールド。この違いはUSB3.0でリンク層が追加され、リンク層制御をハブクラスで行わなければならないことに起因すると考えられます。

0 件のコメント: