3分でわかるシリーズ

USB On-the-Go(OTG)

2006.4

1 OTGとは

USB On-the-Go(以下OTG)は、USB IF(Implementers Forum、USBの規格制定団体)が2001年12月に、USB2.0の追加仕様として定めた規格です。基本的にUSBはPCとその周辺機器をつなぐためにスタートした通信規格で、親であるPCと子である周辺機器(マウスやキーボード、プリンタ、デジカメなど)が、HostとFunctionという形で明確に役割を分担していますが、周辺機器(USBデバイス)同士をつなぐために定められたのがOTGです。

2 PCが中心→PCレスへ

親側はたくさんの処理をし、いろいろな子とつながらなくてはなりません。逆に子側は親とさえつながればよくて、処理も少なくてすみます。これはもともと「PCが親で周辺機器が子」という、PCと周辺機器をつなぐための規格として誕生したことが大きく影響しています。

USBでは、ホストである親からしか通信を開始できないという決まりがあります。子(例えばデジカメ)は、「割り込み」という、親に対して接続や信号を通知することはできます。ケーブルをつないだ瞬間に「手を挙げる」わけです。これに対して親が「はいどうぞ」といって通信を始めるわけです。

USBは、このある種の制限のために非常に利便性がよく、結果的にUSBに対応した機器が非常に増えました。そうなると今度はPC抜きでUSB Function機器同士をつなげないか、という希望がでてきます。

USB環境の比較

例えばデジカメとプリンタとか、PDAとキーボードとか。携帯電話も最近はお尻のところにつなぐケーブルはUSBですので、携帯電話とプリンタとか、携帯電話同士というのもありますね。ところがこれらは親(PC)とつながることしか考えていない子に過ぎず、子同士の会話はできません。USBポートの形状も違い、USBケーブルは一方が大きなプラグ(Aプラグ)で親につながり、もう一方が小さなプラグ(Bプラグ)で子とつながります。子同士ではそもそもケーブルがささりません。

前置きが長くなりましたが、これをできるようにと検討されたのがOTGという規格です。

3 デュアルロールデバイスとは

周辺機器同士をつなぐといっても、「USBは必ず片方が親でもう一方が子」という原則を崩すわけにはいきません。そうなると、OTGでは、「両方が親にも子にもなる」という規格になるわけです。この場合、考えられるのが、図1のような場合です。

図1 親機と子機

図の中心にあるデジカメは、PCとつながるときは子となり、プリンタとつながるときは親となります。ただし、この場合はデジカメに2つの差込み口を用意しておくことと何も違いません。次に図2を見てみましょう。

図2この場合、デジカメ同士ということもあり、両者が対等な立場にあります。これこそがOTG規格が目標とする使い方で、「両方が親にも子にもなる」という形です。これを「デュアルロールデバイス」といいます。

図1のような使い方は、「デュアルロール」ではないため、OTG規格には適合していません。

OTG補足:デュアルロールデバイスに関する説明

4 OTG準拠の製品ってあるの?

最近では組込み用のホストコントローラでもOTGをサポートするものが数多く出ています。

Philips社、Oxford Semiconductor社、Cypress社といった海外勢から、セイコーエプソン、沖電気、ルネサステクノロジなどの日本勢、携帯電話用の1チップマイコンにも、H/WとしてはOTGの機能が組み込まれているものが多いとも言われています。

当社もOTGの規格が出たときにはすでに組込み用のUSBホストドライバを販売していましたが、PCレスの世界でのUSB通信の用途が広がっている象徴と強く感じました。特に説明してきませんでしたが、OTGは実は組込み機器や携帯機器を想定して、消費電力を抑えたり、コネクタのサイズを小さくしたり、といった仕様も盛り込まれていて、われわれの「組込み向けUSBホストドライバ」の方向性に大いに意を強くしたものです。

OTG対応のソフトウェアなども開発し、販売を開始したのですが、当時はOTGというと最初に説明した図1のケースを想定する人がほとんどで、デュアルロールデバイスの概念が浸透しませんでした。結果として、いまでも、OTGのロゴをとったデュアルロールデバイスはソニーのCLIEなど少数にとどまっています。

賢明な方はとっくに気づいているかもしれませんが、デュアルロールデバイスになりそうな機器というのは、PDA同士や携帯電話同士など、あまり多くありせん。デジカメとプリンタが両方ともOTGであれば、どっちが親でもいいのですが、それくらいならどっちかを親に決めてしまったほうがややこしくないのです。

PictBridgeというデジカメとプリンタのダイレクト接続の規格がありますが、これは完全に「プリンタがホストであって、OTGのデュアルロールデバイス機能は使わない」と明記しています。

そんなわけでOTG規格は決して十分広まっているとは言えませんが、USBの組込み機器への可能性を提示したという意味では大きな役割を果たしたと思います。デュアルロールが広まるかどうかはちょっとよくわかりませんが、小さいコネクタや省電力ホストなどの技術は今後も進化しながら使われていくでしょう。

今回のここだけは押さえたい!

OTGって広まるの?
  • デュアルロールに対応しなくてはOTG対応とは言えないため、アプリケーションが限られる。
  • ただし、省電力やミニプラグの提案など、PCレスでのUSB利用の礎を築いた意義は大きい。

※OTG補足:デュアルロールデバイスに関する説明

デュアルロールデバイス同士をOTGでつないだときに何がおきるかを考えてみます。

USBのケーブルは必ず大きなプラグ(Aプラグ)と小さなプラグ(Bプラグ)を両端にもっています。通常のUSBでは、プラグの大きさと形が違うため、PCとデジカメをつなぐような場合はケーブルのA側をAの口(PC)へ、ケーブルのB側をBの口(デジカメ)へというつなぎ方しかできません。

これに対しOTGの場合には、このプラグがささる口(USBではレセプタクル=受容体=と呼びます)が、AもBも両方ささるようになっています(ABレセプタクルといいます)。

ここに、デュアルロールデバイスのデジカメが2台とUSBケーブルが1本あるとします。ケーブルの両端はそれぞれAプラグとBプラグですが、デジカメに対してどちらをどちらにさしてもいいことになります。Aプラグがささったデジカメは電気的に即座に「自分が親である」と認識でき、逆にBプラグがささったデジカメは、プラグを差し込まれた瞬間に自分が子であることを理解します。

デジカメ2台をつなげたとき、ケーブルのどちら側をどちらのデジカメにさすかは私達ユーザーの気まぐれにすぎませんが、つないだ瞬間に、デジカメ同士では、USB的な親と子は一旦確立します。これは通常のUSBとまったく同じです。ではなぜOTGとかデュアルロールデバイスなどという規格があるのでしょうか。

最初の方に、「USBは必ず親からしか通信できない」と書いたのを覚えているでしょうか。親がPCの場合にはだいたいそれですむのですが、今回のデジカメ同士の場合は、基本的には対等な立場であるデジカメ同士において、「たまたま」子になってしまった方は親が通信してくれるのを待たなくてはなりません。または、ケーブルを逆向きにつなぎ変えて、自分が親にならなくてはなりません。

OTGの場合には、自分から通信を始めたい、つまり親になりたいのに子の位置に甘んじているデジカメは、「自分から通信を始めたい」と宣言し、「親になりたい」という交渉を現在の親に対して行うことができます。最初にケーブルをどのようにつないだかに関わらず、両方が代わる代わる親になってUSBの通信を行っていくことができるのがOTGなのです。つまり、OTGの目的は、「親と子の両方の機能をもつ」ことではなく、「USB機器同士が対等な立場で通信を行うことができる」ということです。その手段として、

  • 親と子の両方の機能をもつ(ABレセプタクル)
  • 子が通信を始めたいと宣言する(Session Request Protocol:SRP)
  • 子が親になりたいと交渉する(Host Negotiation Protocol:HNP)

というのがOTGの特徴であり、これらすべてを実現できないと、「OTG対応機器」とは言えないことになっていて、USB OTGのロゴがとれません。

ページのトップへ