私たちは、これらの 3 つのタイプに対応するために、一般的な電子機器を使用します: ソース - 充電器、シンク - 携帯電話、DRP - ラップトップまたはパワー バンク。
3 種類のデバイスの場合、理論的には相互接続の組み合わせは 9 通りあります。間違った接続方法 (アダプタ接続アダプタなど) や、ソースが不明な接続方法 (パワー バンクやラップトップなど) があるはずです。では、これほど多くの組み合わせに対して、Type-C コントローラーはどのようにしてインターフェイスを構成するのでしょうか。
Type-C コントローラーは、ステート マシンの状態切り替えを通じて、識別および通信プロセス全体を完了します。以下は、ステート マシン内のいくつかの主な状態です。
1. Unattached.SRC、ソースは未接続状態です
2. Unattended.SNK、シンクは未接続状態です
3. AttachWait.SRC、この状態の目的は、ソースがデバイスが接続された後もCC1とCC2が安定した状態を維持することを確認することです。
4. AttachWait.SNK、この状態の目的は、デバイスが接続された後もシンクがCC1とCC2が安定した状態を維持することを確認することです。
5. Attached.SRC、ソースはデバイスが正常に接続されていることを確認します
6. Attached.SNK、シンクはデバイスが正常に接続されたことを判定します
5. Try.SRC、この状態はDRPデバイスがソースロールの切り替えを試行するためのものです。
6. Try.SNK、この状態はDRPデバイスがシンクの役割を切り替えようとするものです。
シナリオ 1 ソースとシンク (アダプタと携帯電話) 間の動作メカニズム
ソースにシンク デバイスが接続されている場合の動作メカニズムは次のとおりです。
(1)ソースとシンクは両方とも未接続状態Unattached.SRCとUnattached.SNKである
(2) Source detects that there is a pull-up resistor on the CC end of the Sink, and the Source state changes to Unattached.SRC --> AttachWait.SRC-->Attached.SRC; ソースは VBUS と VCONN をオンにします。
(3) Sink detects VBUS, and the Sink state changes to Unattached.SNK --> AttachWait.SNK -->添付.SNK
(4)ソースとシンクが接続された状態になった後
ソースはRp値を調整してシンクによって吸収される電流を制限します
シンクはRdの電圧vRdを検出し、VBUSで許容される電流を決定します。
ソースはCCを監視してシンクが切断されているかどうかを判断します。切断されている場合は、Unattached.SRCに入ります。
シンクはVBUS電圧を監視してソースが切断されているかどうかを判断します。切断されている場合はUnattached.SNKに入ります。

シナリオ 2 ソースと DRP (充電器とラップトップ) 間の動作メカニズム
ソースに DRP デバイスが接続されている場合の動作メカニズムは次のとおりです。
(1)ソースとDRPは両方とも未接続状態である
ソースはUnattached.SRC状態です - DRPはUnattached.SRCとUnattached.SNKを切り替えます
(2) Source detects that there is a Sink pull-up resistor on the CC end, then the Source state changes to Unattached.SRC --> AttachWait.SRC -->Attached.SRC; ソースは VBUS と VCONN をオンにします。
(3) When DRP switches to Unattached.SNK and detects that the CC pin is pulled up, the DRP state changes to Unattached.SNK --> AttachWait.SNK -->添付.SNK
(4)ソースとDRPが接続された状態になった後
ソースはRp値を調整して、DRP(つまりシンク)によって吸収される電流を制限します。
DRP(シンク)はRdの電圧vRdを検出し、VBUSで許容される電流を決定します。
ソースはCCを監視してシンクが切断されているかどうかを判断します。切断されている場合は、Unattached.SRCに入ります。DRP(つまりシンク)はVBUS電圧を監視してソースが切断されているかどうかを判断します。切断されている場合は、Unattached.SNKに入り、Unattached.SRCとUnattached.SNK間の切り替えメカニズムを復元します。

シナリオ 3 DRP とシンク (ラップトップと携帯電話) 間の動作メカニズム
DRP にシンク デバイスが接続されている場合の動作メカニズムは次のとおりです。
(1)DRPとSinkは両方とも未接続状態である
DRPはUnattached.SRCとUnattached.SNKを切り替えます - シンクはUnattached.SNK状態です
(2) When DRP switches to Unattached.SRC and detects that the CC pin has a pull-down resistor, the DRP state changes to Unattached.SRC --> AttachWait.SRC -->Attached.SRC; DRP (つまりソース) は VBUS と VCONN をオンにします。
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->添付.SNK
(4)ソースとDRPが接続された状態になった後
DPR(つまりソース)はRp値を調整してシンクが吸収する電流を制限します。シンクはRdの電圧vRdを検出してVBUSで許容される電流を決定します。
DRP(つまりソース)はCCを監視してシンクが切断されているかどうかを判断します。切断されている場合はUnattached.SRCに入り、Unattached.SRCとUnattached.SNK間の切り替えメカニズムを復元します。
DRP(シンク)は、VBUS電圧を監視してソースが切断されているかどうかを判断します。切断されている場合は、Unattached.SNKに入ります。

シナリオ 4 DRP と DRP (パワーバンクとラップトップ) 間の動作メカニズム
DRP と DRP 間の通信には、3 つの状況があります。1 つの状況では、2 つのデバイスがどちらがソースまたはシンクであるかをランダムに決定します。2 番目の状況では、DRP の 1 つが Try.SRC メカニズムを通じてソースになることを決定しようとします。3 番目の状況では、DRP の 1 つが Try.SNK メカニズムを通じてシンクになることを決定しようとします。
DRP デバイスが DRP に接続された場合の動作メカニズムは次のとおりです。
シナリオ 1:
(1)両方のDRPデバイスが未接続状態である
DRP#1とDRP#2は、Unattached.SRCとUnattached.SNKをランダムに切り替えます。
(2) When DRP#1 switches to Unattached.SRC and detects that the CC pin is pulled down by DRP#2, the state of DRP#1 changes to Unattached.SRC--> AttachWait.SRC -->Attached.SRC; DRP#1 (つまりソース) は VBUS と VCONN をオンにします。
(3) When DRP#2 switches to Unattached.SRC and detects that the CC pin is pulled up, the state of DRP#2 changes to Unattached.SNK --> AttachWait.SNK -->添付.SNK
(4)ソースとDRPが接続された状態になった後
DPR#1(つまりソース)はRp値を調整して、DRP#2(つまりシンク)によって吸収される電流を制限します。
DRP#2(シンク)はRdの電圧vRdを検出し、VBUSで許容される電流を決定します。
DRP#1 (つまりソース) は、CC を監視してシンクが切断されているかどうかを判断します。切断されている場合は、Unattached.SRC に入り、Unattached.SRC と Unattached.SNK 間の切り替えメカニズムを復元します。
DRP#2 (つまりシンク) は、VBUS 電圧を監視してソースが切断されているかどうかを判断します。切断されている場合は、Unattached.SNK に入り、Unattached.SRC と Unattached.SNK 間の切り替えメカニズムを復元します。

ケース2:
(1)両方のDRPデバイスが未接続状態である
DRP#1とDRP#2は、Unattached.SRCとUnattached.SNKをランダムに切り替えます。
(2) When DRP#1 switches to Unattached.SRC and detects that the CC pin is pulled down by DRP#2, the state of DRP#1 changes to Unattached.SRC--> AttachWait.SRC -->Attached.SRC; ; DRP#1 (つまりソース) は VBUS と VCONN をオンにします。
(3) When DRP#2 switches to Unattached.SRC and detects that the CC pin is pulled up, the state of DRP#2 changes to Unattached.SNK -->アタッチウェイト.SNK
(4) DRP#2 is in AttachWait.SNK and wants to switch to the Source role. The state of DRP#2 changes to AttachWait.SNK -->Try.SRC; を実行し、CCピンをプルアップする
(5) DRP#1 no longer detects DRP#2 pulling down the CC pin, so the state changes to Attached.SRC --> UnattachWait.SNK -->AttachWait.SNK; VBUSとVCONNをオフにし、CCピンのプルダウン抵抗を切り替えます。
(6) DRP#2 detects that the CC pin is pulled up, so its state changes to Try.SRC -->Attached.SRC; VBUSとVCONNをオンにします
(7) The state of DRP#1 changes to AttachWait.SNK -->添付.SNK
(8)ソースとDRPが接続された状態になった後
DPR#2(つまりソース)はRp値を調整して、DRP#1(つまりシンク)によって吸収される電流を制限します。
DRP#1(シンク)はRdの電圧vRdを検出し、VBUSで許容される電流を決定します。
DRP#2 (つまりソース) は、CC を監視してシンクが切断されているかどうかを判断します。切断されている場合は、Unattached.SRC に入り、Unattached.SRC と Unattached.SNK 間の切り替えメカニズムを復元します。
DRP#1 (つまりシンク) は、VBUS 電圧を監視してソースが切断されているかどうかを判断します。切断されている場合は、Unattached.SNK に入り、Unattached.SRC と Unattached.SNK 間の切り替えメカニズムを復元します。

3 番目のケースは Try.SNK メカニズムです。これは Try.SRC メカニズムに似ているため、ここでは説明しません。
シナリオ 5 ソースとソース間およびシンクとシンク間の動作メカニズム
これら 2 つの使用例では、ソースとシンクの両方が Unattached.SRC および Unattached.SNK 状態にあるため、デバイス間に電源供給はありません。
これまで、デバイス間の一般的な通信メカニズムをいくつか紹介してきました。特に、2つのDRPデュアルロールデバイスの場合、Type-CコントローラーはTry.SRCまたはTry.SNKを使用して、通常の電源供給ロジックを確立しようとします。もちろん、間違った電源供給ロジックが発生した場合(たとえば、ラップトップがパワーバンクを充電する場合)、USB
PD プロトコルは、PD プロトコルを通じて電源の役割を切り替える Power Role Swap メカニズムも提供します。詳細については、USB Power Delivery 仕様を参照してください。





