web-dev-qa-db-ja.com

コンピュータに接続されたUSB-Cケーブルについてプログラムは何を見つけることができますか?

不明なUSB-Cケーブルをコンピューターに接続します。
理論的には、プログラムはそのケーブルに関する情報を読み取ることができますか?特に:

  1. サポートされているUSBのバージョン:2.0、3.1など。
  2. Thunderboltなどに対応しているか.
  3. Power Delivery、Quick Charge、VOOC、SuperCharge、Pump Express、SuperFlashChargeなどをサポートしているかどうか。
  4. データを転送できる速度まで。
  5. ハイスペックデバイスを充電できる最大ワット数/アンペア数。

ノート:

  • 私はLinuxを使用していますが、他のOSの回答も問題ありません。
  • ケーブルの他端に何も接続されていないとしましょう。しかし、本当に必要な場合は、最近ルート化されたAndroid電話が接続されており、必要なコードを実行できると言えます。
2
Nicolas Raoul

Type-Cコネクタでできることとできないことのすべての答えは その仕様 に示されています。

簡単に言うと、Type-Cケーブルの仕様はUSBデータやUSB Power Deliveryからほぼ独立しています(Type-Cは何でもサポートできます)。

仕様により、Type-Cコネクタ/ケーブルは2つの自己識別方法を提供します。

1つ目は、CCワイヤの両側で抵抗器のプルアップとプルダウンを組み合わせたものです。 Type-Cコネクタには2つのCCピンがあり、いくつかのアナログレベルがあるため、多くの組み合わせが可能です。接続機能自体、およびソースシンクの役割と電力容量の基本的な決定以外に、いくつかの「代替」機能が、ディスプレイポート、オーディオ、およびデバッグモードとして定義されています。

Type-Cの2番目の修正は、すべてのC-Cケーブルへのeマーカーの埋め込みを必須とすることです。 eマーカーの情報には、製造元の名前と特定のケーブルの現在の搬送能力が含まれています。

CC1/CC2ピンの状態は、通常、特別なCCコントローラーチップによって取得されます。 CC-controllerは、I2Cインターフェイスを介してメインシステムと通信します。レジスタベースのインターフェイスは、Intelドキュメントで標準化されています SB Type-Cコネクタシステムソフトウェアインターフェイス仕様

Microsoftは、Type-Cコネクタの状態をWindowsに伝達するための特別な CSIドライバー を提供しています。 Linuxにも対応するドライバーがあると確信しています。 この記事 をご覧ください。

したがって、一連の質問の部分的な回答は、次の EE記事 に記載されています。 #1と#5がサポートされています。 #4は#1と同じです。 #3に関しては、Type-Cコネクタは電力供給仕様である1つの「充電署名」のみをサポートします。メモの2番目の部分に関して、CCケーブルのもう一方の端に何も接続されていない場合、Raの存在だけでケーブルの検出がトリガーされるかどうかはわかりません。これを確認する必要があります。

3
Ale..chenski