Do tych trzech typów urządzeń elektronicznych używamy powszechnie dostępnych: Źródło – ładowarka; Odbiornik – telefon komórkowy; DRP – laptop lub power bank.
Dla trzech typów urządzeń teoretycznie będzie 9 kombinacji połączeń. Muszą być złe metody połączenia (takie jak adapter łączący adapter) lub metody połączenia, które nie są pewne, kto jest Źródłem (takie jak power bank lub laptop). Więc dla tak wielu kombinacji, w jaki sposób kontroler typu C konfiguruje interfejs?
Kontroler typu C kończy cały proces identyfikacji i komunikacji poprzez przełączanie stanu maszyny stanowej. Poniżej przedstawiono kilka głównych stanów maszyny stanowej.
1. Unattached.SRC, źródło jest w stanie niepołączonym
2. Unattended.SNK, odbiornik jest w stanie niepołączonym
3. AttachWait.SRC. Celem tego stanu jest zapewnienie przez Źródło stabilności CC1 i CC2 po podłączeniu urządzenia.
4. AttachWait.SNK, celem tego stanu jest zapewnienie przez odbiornik stabilności CC1 i CC2 po podłączeniu urządzenia
5. Dołączono.SRC, Źródło ustala, że urządzenie zostało pomyślnie podłączone
6. Attached.SNK, Sink ustala, że urządzenie zostało pomyślnie podłączone
5. Try.SRC, ten stan jest dla urządzenia DRP próbą zmiany roli źródła
6. Try.SNK, ten stan jest przeznaczony dla urządzenia DRP, aby spróbować zmienić rolę odbiornika
Scenariusz 1 Mechanizm zachowania pomiędzy źródłem i odbiorcą (adapter i telefon komórkowy)
Poniżej przedstawiono mechanizm zachowania, gdy do urządzenia Źródło podłączone jest urządzenie Odbiorcze:
(1) Źródło i odbiornik znajdują się w stanie odłączonym Unattached.SRC i 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-->Załączono.SRC; Źródło włącza VBUS i VCONN.
(3) Sink detects VBUS, and the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Załączono.SNK
(4) Po połączeniu źródła i odbiornika
Źródło dostosowuje wartość Rp, aby ograniczyć prąd pobierany przez odbiornik
Odbiornik wykrywa napięcie vRd na Rd, aby określić prąd dozwolony przez VBUS
Źródło określa, czy Sink jest odłączony poprzez monitorowanie CC. Jeśli jest odłączony, przechodzi do Unattached.SRC
Sink określa, czy Source jest odłączone poprzez monitorowanie napięcia VBUS. Jeśli jest odłączone, przechodzi do Unattached.SNK

Scenariusz 2 Mechanizm zachowania pomiędzy źródłem a DRP (ładowarka i laptop)
Poniżej przedstawiono mechanizm zachowania, gdy do źródła podłączone jest urządzenie DRP:
(1) Zarówno Źródło, jak i DRP znajdują się w stanie niepołączonym
Źródło znajduje się w stanie Unattached.SRC — DRP przełącza się między stanem Unattached.SRC i 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 -->Załączono.SRC; Źródło włącza VBUS i 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 -->Załączono.SNK
(4) Po połączeniu źródła i DRP
Źródło dostosowuje wartość Rp, aby ograniczyć prąd pochłaniany przez DRP (czyli odbiornik)
DRP (czyli Sink) wykrywa napięcie vRd na Rd, aby określić prąd dozwolony przez VBUS
Źródło ustala, czy Sink jest odłączony, monitorując CC. Jeśli jest odłączony, przechodzi do Unattached.SRC- DRP (czyli Sink) ustala, czy Source jest odłączony, monitorując napięcie VBUS. Jeśli jest odłączony, przechodzi do Unattached.SNK i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK

Scenariusz 3 Mechanizm zachowania pomiędzy DRP a odbiornikiem (laptop i telefon komórkowy)
Poniżej przedstawiono mechanizm zachowania, gdy DRP ma podłączone urządzenie odbiorcze:
(1) Zarówno DRP, jak i Sink znajdują się w stanie odłączonym
DRP przełącza się między Unattached.SRC i Unattached.SNK - odbiornik znajduje się w stanie 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 -->Załącznik SRC; DRP (czyli źródło) włącza VBUS i VCONN.
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Załączono.SNK
(4) Po połączeniu źródła i DRP
DPR (czyli źródło) dostosowuje wartość Rp, aby ograniczyć prąd pobierany przez odbiornik — odbiornik wykrywa napięcie vRd na Rd, aby określić prąd dozwolony przez VBUS
DRP (tj. Source) ustala, czy Sink jest odłączony poprzez monitorowanie CC. Jeśli jest odłączony, wchodzi do Unattached.SRC i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK
DRP (tj. Sink) określa, czy Źródło jest odłączone, monitorując napięcie VBUS. Jeśli jest odłączone, przechodzi do Unattached.SNK

Scenariusz 4 Mechanizm zachowania pomiędzy DRP a DRP (Power Bank i Laptop)
W przypadku komunikacji między DRP i DRP istnieją trzy sytuacje. W jednej sytuacji dwa urządzenia decydują losowo, kto jest Źródłem, a kto Odbiorcą; w drugiej sytuacji jeden z DRP próbuje zdecydować, kto jest Źródłem poprzez mechanizm Try.SRC; w trzeciej sytuacji jeden z DRP próbuje zdecydować, kto jest Odbiorcą poprzez mechanizm Try.SNK.
Poniżej przedstawiono mechanizm zachowania, gdy urządzenie DRP jest podłączone do DRP:
Scenariusz 1:
(1) Oba urządzenia DRP są w stanie niepołączonym
DRP#1 i DRP#2 losowo przełączają się między Unattached.SRC i 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 -->Załącznik.SRC; DRP#1 (czyli źródło) włącza VBUS i 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 -->Załączono.SNK
(4) Po połączeniu źródła i DRP
DPR#1 (czyli źródło) dostosowuje wartość Rp, aby ograniczyć prąd pochłaniany przez DRP#2 (czyli odbiornik)
DRP#2 (czyli Sink) wykrywa napięcie vRd na Rd, aby określić prąd dozwolony przez VBUS
DRP#1 (tj. Źródło) ustala, czy Sink jest odłączony przez monitorowanie CC. Jeśli tak, wchodzi do Unattached.SRC i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK
DRP#2 (tj. Sink) ustala, czy Source jest odłączone poprzez monitorowanie napięcia VBUS. Jeśli tak, wchodzi do Unattached.SNK i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK

Przypadek 2:
(1) Oba urządzenia DRP są w stanie odłączonym
DRP#1 i DRP#2 losowo przełączają się między Unattached.SRC i 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 -->Załączono.SRC; ; DRP#1 (czyli źródło) włącza VBUS i 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 -->DołączWait.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 -->Spróbuj.SRC; i podciągnij pin 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; i wyłącza VBUS i VCONN oraz przełącza rezystor podciągający na pinie CC
(6) DRP#2 detects that the CC pin is pulled up, so its state changes to Try.SRC -->Dołączono.SRC; i włącza VBUS i VCONN
(7) The state of DRP#1 changes to AttachWait.SNK -->Załączono.SNK
(8) Po połączeniu źródła i DRP
DPR#2 (czyli źródło) dostosowuje wartość Rp, aby ograniczyć prąd pobierany przez DRP#1 (czyli odbiornik)
DRP#1 (czyli Sink) wykrywa napięcie vRd na Rd, aby określić prąd dozwolony przez VBUS
DRP#2 (tj. Source) ustala, czy Sink jest odłączony przez monitorowanie CC. Jeśli tak, wchodzi do Unattached.SRC i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK
DRP#1 (tj. Sink) ustala, czy Source jest odłączone poprzez monitorowanie napięcia VBUS. Jeśli tak, wchodzi do Unattached.SNK i przywraca swój mechanizm przełączania między Unattached.SRC i Unattached.SNK

Trzecim przypadkiem jest mechanizm Try.SNK, który jest podobny do mechanizmu Try.SRC i nie będzie tutaj opisywany.
Scenariusz 5 Mechanizm zachowania między źródłem a źródłem oraz między odbiorcą a odbiorcą
W tych dwóch przypadkach użycia zarówno urządzenie źródłowe, jak i odbiornik znajdują się w stanach Unattached.SRC i Unattached.SNK, więc nie ma zasilania pomiędzy urządzeniami.
Do tej pory przedstawiliśmy kilka typowych mechanizmów komunikacji między urządzeniami. Zwłaszcza w przypadku dwóch urządzeń DRP dual-role, kontroler typu C będzie używał Try.SRC lub Try.SNK, aby spróbować ustanowić normalną logikę zasilania. Oczywiście, jeśli wystąpi nieprawidłowa logika zasilania (na przykład laptop ładuje power bank), USB
Protokół PD zapewnia również mechanizm Power Role Swap, który przełącza rolę zasilania za pośrednictwem protokołu PD. Aby uzyskać szczegółowe informacje, zapoznaj się ze specyfikacją USB Power Delivery.





