USB Type-Cの電源制御ってどうやっているの?:Q&Aで学ぶマイコン講座(93)(6/10 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、中級者の方からよく質問される「USB Type-Cの電源制御方法」についてです。
USB PDの概要
USB PDは、USB 2.0、USB 3.2、USB4、USB Type-C 2.3、またはUSB-BC 1.2仕様で定義されているよりも、USBデバイスがUSBケーブル(通信チャネルとしてUSB Type-C CCワイヤを使用)を介して、より多くの電流やより高/低電圧をネゴシエートする方法を定義しています。これにより、現在の仕様では対応できない大電力を必要とするデバイスが、VBUSから動作に必要な電力を得たり、外部電源とネゴシエートしたりできるようになります。さらに、ソース/シンクが電源ロールを交換することで、デバイスがホストに電力を供給可能になります(例: ディスプレイがノートPCに電力を供給してバッテリーを充電)
USB PD仕様は、以下の原則に基づいて策定されています:
- 従来のUSBデバイスとシームレスに動作
- 既存の仕様準拠USBケーブルと互換性あり
- 非準拠ケーブル(Y'ケーブルなど)による潜在的な損傷を最小限に抑える
- 低コストの実装に最適化
USB PDの物理層
USB PDは、CCラインもしくはVBUSラインを介して通信できます。以下2つの方法がUSB PDに規定されています。
- CCラインを介した通信: BMC(Biphase Mark Coding) over CC
- VBUSラインを介した通信: BFSK over VBUS
今回は、一般的に広く採用されている、CCラインを介した通信(BMC over CC)に焦点を当てて説明します。
CCラインを介した通信(BMC over CC)には、以下の特徴があります。
- 半二重通信
- 1本のCCラインを使用して通信を行う一対のドライバーとレシーバーで構成
- 通信時のドライバー出力振幅レベル:1.125V(Typ.)
- 非通信時のドライバー出力:ハイインピーダンス状態(出力電圧はプルアップ抵抗/プルダウン抵抗で生成される電圧になる)
- ビットレート:300kbps
- Biphase Mark Coding
- 1ビットもしくは1/2ビット周期毎に極性が反転する符号化方式。バイナリデータ”1”は、1/2ビット幅のパルス間隔後に極性が反転します。バイナリデータ”0”は、1ビット周期後に極性が反転します。
- 4b5bエンコーダーおよび5b4bデコーダー
- 4b5bエンコーダーにより、送信ビット列は連続して4ビットを超える1もしくは0を送信するケースがなくなり、パケット開始の検出が容易になります。プリアンブル部には4b5bエンコード/5b4bデコード処理はされません。
- 衝突回避
実際のCCラインの通信波形をオシロスコープで測定した結果を図4に示します。通信開始前は、プルアップ抵抗とプルダウン抵抗値からなる電圧値1.7Vになっています。通信中は、振幅レベルは約1.1Vとなっています。ビットレートが300kbpsなので、1ビット分の周期は3.33マイクロ秒です。
CCラインを介した通信に使用されるBMCトランスミッターおよびBMCレシーバー受信機のブロック図を図5に示します。CCラインを介したデータ送信時には、データにCRCが付加されたのち、4b5bエンコーダーを使用して4ビット入力から5ビット出力に変換します。そして、それぞれのビットは、BMCエンコーダーによってCCラインに送信されます。
また、CCラインを介したデータ受信時は、CCラインからBMCエンコーダーが信号を受けとり、ビット列に変換します。ビット列はSOP(Start of Packet)検出器に送られてパケットの開始を検出し、5b4bデコーダーに送られます。5b4bデコーダーは5ビット入力を4ビット出力に変換します。受信したデータはCRCによってチェックされ、CRCが有効な場合はパケットデータをプロトコル層に排出します。一方、CRCが無効な場合、受信したデータを棄却します。
Copyright © ITmedia, Inc. All Rights Reserved.