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が動作する。
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はまだぶ厚いままだったかもしれない。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る - この連載の一覧へ