このページの本文へ

前へ 1 2 次へ

Windows Info 第181回

Windows 10とUSB Type-Cとの関係を深掘りする

2019年07月14日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows 10で正式に対応したUSB Type-C

 Windowsは、Windows 10で初めてUSB Type-Cに正式に対応した。USB Type-Cの仕様成立が2014年8月、Windows 10の最初のリリースが2015年7月なので、対応には約1年かかっている。

 ただ、USB Type-CやUSB Power Deliveryに関しては、仕様策定が何回も行なわれ、特にUSB-PDに関しては、USB Type-Cの成立以前の2012年にUSB PD Rev:1.0という仕様が公開されている。この時点では、USB-PD専用のType-A/Bコネクタを使う予定だったのだ。

 しかし、実際にUSB-PD対応機器が登場したのは、USB Type-Cが成立して、USB PD Rev:2.0が成立してからである。そして2015年のUSB-PD Rev:3.0で、Type-C専用として仕切り直しがなされた。また、すでに市場に製品が出ていたUSB-PD Rev:2.0に関しては、一部を改訂したRev:2.0 Ver.1.2を作り、Rev:3.0との整合性をはかった。こうした経過があるため、Windowsでの対応が2015年のWindows 10以降という話は理解できなくもない。

 さて、USB Type-Cへの対応は、具体的には、

・デュアルロールへの対応
・USB-PDへの対応
・Alternate Modeへの対応(Billboardデバイスクラスの導入など)

という形で進められた。デュアルロールとは、ホストとデバイスという役割の入れ替えだ。

 ホストとデバイスを切り替えるのが「Role-Switch Driver」である。ホストとして動作するときには、「USB Host-side driver」スタックが有効になり、その上でUSBデバイスに対応したUSBクラスドライバが動作する。デバイスとして動作するときには「USB Device-Side Driver」スタックが有効になり、その上でFunction Class Driverが動作する。

WindowsのType-Cサポート。青い部分は標準で含まれるドライバ。緑は、必要に応じてメーカーが提供するものを意味する。下はUSB Type-Cのハードウェアで、SOCやCPU内のコントローラをWindows側のドライバが制御している

 USBデバイスとして動作するときには、なんらかの機能を実現するFunction Class Driverがなければならないが、残念ながらWindows 10には、Function Class Driverは含まれていない。このため、ホスト同士をUSB Type-Cで接続しても、双方でUSBホストコントローラが有効になるだけで、特にお互いをデバイスとして認識することはない。

 USB Type-Cでのデュアルロールは、少し複雑である。USB-OTGではハードウェア(microUSBコネクタの信号ピン)でホストとデバイスを切り替えていたが、USB Type-Cでは、ロールの切替とは別に、電力供給をするのか(ソースデバイス)、電力供給を受けるのか(シンクデバイス)の切り替えもあるからだ。

 このため、ケーブル装着などのユーザー操作に応じて発生したイベントとハードウェアの機能、現在の状態などを考慮して、動作を決定する「ポリシーマネージャー」が必要になる(ポリシーマネージャーはUSB-PDで定義される機能)。

 ポリシーとは、他のデバイスに通知する自身の機能や電力関連の要求条件、要求に対する応答などを定義したもので、USB-PDデバイスの振る舞いを規定する。Windowsの「USB Type-C Policy Manager」は、基本的なWindowsのUSB-PDデバイスの振る舞いなどを定義したものだ。

 なお、ここにはドライバースタックすべてが含まれているわけではない。実際には、先ほどの図の「USB role-swtch drivers」の下にACPIドライバーやUSB Type-Cのコンローラーハードウェアがある。

 一般にPCのオンボードデバイスは、起動時にACPIがこれを検出して、Windowsの起動時にACPIドライバーがこれを列挙する。このため、USB Type-CコントローラーもACPIドライバー経由でロールスイッチドライバーに接続する。また、「USB Type-C Policy Manager」は、Windows側のポリシーマネージャーで、この下にBIOSや埋め込みコントローラーのファームウェアで実現されているPlatform Policy Managerがある。

 Alternate Modeは、USB Type-Cが規定するモードで、USB以外のインターフェース信号(たとえば、DisplayPortやThunderbolt3など)をUSB Type-Cコネクタ経由で送受信する仕組みだ。

 これを使うと、たとえばディスプレイとDisplayPortで接続しつつ、電力供給を受ける(USB-PD)やディスプレイの制御(USB 2.0デバイス)といったことが可能になる。USB Type-CのAlternate Modeは、原則USB Type-Cのハードウェアで行なうため、Windows側が直接Alternate Modeを制御することはない。しかし、Alternate Modeがエラーになったときには、Alternateデバイス側にあるUSBビルボードデバイスからエラー情報を得て、ユーザーに通知する必要がある。

 USB Billboardクラスデバイスは、いわばエラー通知専用のデバイスで、Windows側からは通常のUSBデバイスとしてアクセスが可能で、エラー情報を取り出すことができる。

 USB Type-CやUSB-PDへの対応は、PCの形状に大きな影響があった。最近のノートPCでは、専用の電源コネクタではなく、Type-Cコネクタを介した電力供給に切り替えるものが増えてきた。また、Type-Cコネクタが薄型であることから、従来USB Type-Aコネクタが足かせになっていたPC本体の薄型化なども可能にした。こうした形状の変化もWindows 10がまずまずのタイミングでUSB Type-Cに対応したからで、もし対応が遅れていたら、ノートPCはまだぶ厚いままだったかもしれない。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン