携帯機器間のデータ転送を簡単かつ高速に ――既存USBの課題を克服するための追加規格
●どの機器がホストになるかを決めるプロトコルを追加
USBは本来マスタ/スレーブのプロトコルです.バスで起こる処理は,すべてホストによって開始されます.OTG 1.0のデュアルロール・デバイスは,Mini-Aプラグが挿入されているとき,デフォルトとしてホスト役になります.Mini-Bプラグが挿入されているときは周辺機器役がデフォルトとなります.
しかし,ホスト役と周辺機器役を交代するために,ユーザがケーブルを接続し直す必要はありません.OTG 1.0追 加規格で定義された「ホスト交換手順(HNP:Host Negotiation Protocol)」によって,B側に接続されているデュアルロール・デバイスがホスト役になるように要求を出すことができます(図7).
HNPを実行するためには,最初にAデバイスはOTG 1.0追加規格で新たに定義された「SetFeature要求」を使って,Bデバイスがバスを制御する機能を有効にします.このようにして一度Bデバイスのバス制御機能が有効になると,Aデバイスが許可していればいつでもBデバイスはホスト役になれます.AデバイスがBデバイスにホスト役を譲るために,Aデバイスはバスのトラフィックをいっさい断ち切って,バスをサスペンド状態にします.一方,Bデバイスは信号線D+を"L"にして,バスから抜かれた状態にします.それに応えてAデバイスは信号線D+のプルアップ抵抗をON(イネーブル)にして,バス制御の交代が完了します.この後,Bデバイスがホストの役目を果たせば,Aデバイスは周辺機器として反応します.
Bデバイスは同じくバスをサスペンド状態にして,信号線D+のプルアップ抵抗をON(イネーブル)にすることによって,バスの制御権をAデバイスに渡すことができます.Aデバイスはこれを検知し,信号線D+のプルアップ抵抗をOFFにして,再びホストの役目に戻ります.
〔図7〕 ホスト交換手順(HNP)
接続された二つのデュアルロール・デバイスは,ホスト交換手順(HNP)を利用してホストと周辺機器の役割を交換することができる.図は,HPNにおけるD+の信号線上で起こるやりとりを示している.
- Aデバイスはバスをサスペンド状態にするため,すべての通信を停止する .
- Bデバイスはサスペンド状態を認識して,プルアップ抵抗をOFFにする.Aデバイス側のプルダウン抵抗によってD+が"L"になる.
- AデバイスはBデバイスが切り離された状態を認識して,自身のプルアップ抵抗をONにする.
- BデバイスはD+の立ち上がりを周辺機器が挿入されたものとして認めて,ホスト役に入る.Aデバイスを周辺機器の一つとしてとらえ,USBリセットをかける.
- Bデバイスをホストとしてバス上の通信が再開される.
- Bデバイスはホストの役割を再びAデバイス側に譲りたいとき,バスの通信を停止して,バスをサスペンド状態にする.
- Aデバイスはサスペンド状態を検知してプルアップ抵抗をOFFにする.
- BデバイスはD+の立ち下がりに応答して,自身のプルアップ抵抗をONにする.
- Aデバイスはホスト役となって,USBリセットをもってBデバイスを周辺機器と認識する.
- Aデバイスをホストとして,バス上の通信が再開される.