tecktom.com

USB-C の充電の向き・裏表・双方向通信は「CC という見張り線」で決まる

2026年9月29日技術と道具

問いは木下が出したもので、答えは Claude Code と調べて書いたものです。

持っているモバイルバッテリー、Cタイプの口で充電も放電もできるんだけど、繋がれた先から電気を受け取るか、繋がれた先に給電するかってどうやって判別しているのてか、Cタイプ充電器って上下逆にしてもつながったりとか双方向の通信ができたりとかするけど、どういう仕組みになっているの?

答え:電気を流す線とは別に CC(Configuration Channel)という細い線があり、両端がそこに「抵抗」を見せ合って役割と向きを決める

USB-C の差し込み口には24本の端子があるが、役割決めを担うのは CC1・CC2 の2本だけである。電気を出す側(ソース)は CC を抵抗 Rp で電源へ引き上げ(プルアップ)、電気を受ける側(シンク)はCC を 5.1 kΩ の抵抗 Rd でグラウンドへ引き下げる(プルダウン)。両者をつなぐと CC の電圧が2つの抵抗の分圧で決まる中間の値に下がり、ソースはそれを見て「受け手がつながった」と判断して初めて電源線(VBUS)に 5 V を出す。何もつないでいないコネクタに電圧が出ていないのはこのためで、ソース同士をつないでも CC が下がらないので、どちらも電気を出さず壊れない。Rp の値は3種類あり、ソースは「0.5〜0.9 A/1.5 A/3 A まで出せる」を抵抗の大きさで伝えている。

充電も放電もできるモバイルバッテリーの口は DRP(Dual Role Power)と呼ばれ、Rp と Rd を数十ミリ秒ごとに交互に切り替えている。相手がただのシンク(イヤホンなど)なら、自分が Rp を出した瞬間に Rd が見えるのでソースに落ち着く。相手がただのソース(ACアダプタ)なら、自分が Rd の瞬間に Rp が見えるのでシンクに落ち着く。スマホのように相手も DRP だと、切り替えのタイミング次第でどちらが先に相手を見つけるかが決まる。これでは運任せなので、「ソースになりたい側は少し長くRp を出して粘る(Try.SRC)」「シンクになりたい側は Rd で粘る(Try.SNK)」という優先の仕組みがあり、バッテリーはソース寄り・スマホはシンク寄りに設定されていることが多い。モバイルバッテリー同士をつなぐとどちらが充電されるか読めないのは、両方がソース寄りで決着が偶然に近くなるからである。さらに USB PD 対応の機器なら、つないだあとで CC 線上の通信により「役割を交換しよう」(PR_Swap)と話し合って向きを入れ替えることもできる。

補足:裏表どちらでも挿さる仕組み

差し込み口の端子は上下で点対称に並んでいて、電源(VBUS)とグラウンドは上下に計4本ずつ置かれているので、どちら向きでも電気はそのまま流れる。一方でケーブルの中の CC 線は1本しかなく、プラグ側では片面だけが CC につながっている。そのため受け側は「CC1 と CC2 のどちらに相手の抵抗が見えたか」で挿された向きを知る。向きがわかったら、高速通信用の配線(SuperSpeed の送信・受信ペア)を内部のスイッチ(マルチプレクサ)で正しい組み合わせにつなぎ替える。昔ながらの USB 2.0 用のD+/D− は、口の上下両面に同じものを用意して機器の中でつないでおくだけで対応している。

補足:双方向の通信

データ線にも役割がある。USB 2.0 の D+/D− は1組の線を送信と受信で交互に使う(半二重)。USB 3 以降は送信専用・受信専用のペアが別にあり、同時に双方向へ流せる(全二重)。上下両面ぶん2組あるので、USB 3.2 Gen2x2 や USB4 はその2組を両方使って速度を倍にしている。「どちらがホスト(パソコン側)でどちらがデバイスか」というデータの役割も、電源の役割とは別にCC で決まり、PD の DR_Swap で入れ替えられる。電源は受け取りつつデータではホストになる、という組み合わせ(スマホに給電しながらUSBメモリを読むハブなど)はこの分離のおかげで成り立つ。PD の通信自体は CC 線の上で約 300 kbit/s の信号として行われ、ここで 9 V・15 V・20 V への昇圧の交渉や、映像出力(DisplayPort Alt Mode)への切り替えも決めている。5 A を流すケーブルにはe-marker という小さなチップが入っていて、ケーブル自身も CC 経由で「自分は何 A まで耐えられるか」を申告する。