Ми використовуємо звичайні електронні пристрої, щоб відповідати цим трьом типам: Джерело – зарядний пристрій; Раковина – мобільний телефон; DRP – ноутбук або павербанк.
Для трьох типів пристроїв теоретично буде 9 комбінацій з’єднання. Мають бути неправильні методи підключення (наприклад, адаптер підключення адаптера) або методи підключення, які не впевнені, хто є Джерелом (наприклад, блок живлення або ноутбук). Отже, як контролер Type-C налаштовує інтерфейс для такої кількості комбінацій?
Контролер Type-C завершує весь процес ідентифікації та зв’язку через перемикання стану кінцевого автомата. Нижче наведено кілька основних станів кінцевої машини.
1. Unattached.SRC, Джерело знаходиться в стані без підключення
2. Unattended.SNK, Раковина знаходиться в непідключеному стані
3. AttachWait.SRC, мета цього стану полягає в тому, щоб Джерело гарантувало, що CC1 і CC2 залишаються стабільними після підключення пристрою
4. AttachWait.SNK, мета цього стану полягає в тому, щоб Sink гарантував, що CC1 і CC2 залишаються стабільними після підключення пристрою
5. Attached.SRC, Source визначає, що пристрій успішно підключено
6. Attached.SNK, Sink визначає, що пристрій успішно підключено
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 -->Додається.СНК
(4) Після того, як джерело та приймач перебувають у прикріпленому стані
Джерело регулює значення Rp, щоб обмежити струм, що поглинається приймачем
Sink виявляє напругу vRd на Rd, щоб визначити струм, дозволений 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 -->Додається.СНК
(4) Після того, як Source і DRP перебувають у прикріпленому стані
Source регулює значення Rp, щоб обмежити струм, що поглинається DRP (тобто Sink)
DRP (тобто Sink) визначає напругу vRd на Rd, щоб визначити струм, дозволений 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 (тобто Source) вмикає VBUS і VCONN.
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Додається.СНК
(4) Після того, як джерело та DRP перебувають у прикріпленому стані
DPR (тобто джерело) регулює значення Rp для обмеження струму, що поглинається приймачем - приймач виявляє напругу vRd на Rd, щоб визначити струм, дозволений VBUS
DRP (тобто Джерело) визначає, чи від’єднано Приймач за допомогою моніторингу CC. Якщо його відключено, він входить до Unattached.SRC і відновлює свій механізм перемикання між Unattached.SRC і Unattached.SNK
DRP (тобто приймач) визначає, чи відключено джерело, відстежуючи напругу VBUS. Якщо його відключено, він переходить до Unattached.SNK

Сценарій 4 Механізм поведінки між DRP і DRP (Power Bank і ноутбук)
Для зв’язку між DRP і DRP є три ситуації. В одній ситуації два пристрої випадковим чином вирішують, хто є джерелом або приймачем; у другій ситуації один із DRP намагається вирішити бути Джерелом через механізм Try.SRC; у третій ситуації один із DRP намагається прийняти рішення бути приймачем через механізм 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 (тобто Source) вмикає 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 -->Додається.СНК
(4) Після того, як Source і DRP перебувають у прикріпленому стані
DPR#1 (тобто Source) регулює значення Rp для обмеження струму, який споживає DRP#2 (тобто Sink)
DRP#2 (тобто Sink) визначає напругу vRd на Rd, щоб визначити струм, дозволений 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 (тобто Source) вмикає 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
(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 -->Додається.СНК
(8) Після того, як Source і DRP перебувають у прикріпленому стані
DPR#2 (тобто Source) регулює значення Rp для обмеження струму, який споживає DRP#1 (тобто Sink)
DRP#1 (тобто Sink) визначає напругу vRd на Rd, щоб визначити струм, дозволений VBUS
DRP#2 (тобто Джерело) визначає, чи від’єднано приймач за допомогою моніторингу CC. Якщо так, він входить до Unattached.SRC і відновлює свій механізм перемикання між Unattached.SRC і Unattached.SNK
DRP#1 (тобто приймач) визначає, чи відключено джерело, відстежуючи напругу VBUS. Якщо так, він входить до Unattached.SNK і відновлює свій механізм перемикання між Unattached.SRC і Unattached.SNK

Третій випадок — це механізм Try.SNK, який схожий на механізм Try.SRC і не буде описаний тут.
Сценарій 5 Механізм поведінки між джерелом і джерелом і між приймачем і приймачем
У цих двох випадках використання джерело і приймач перебувають у станах Unattached.SRC і Unattached.SNK, тому між пристроями немає джерела живлення.
Наразі ми запровадили деякі загальні механізми зв’язку між пристроями. Особливо для двох подвійних пристроїв DRP контролер Type-C використовуватиме Try.SRC або Try.SNK, щоб спробувати встановити нормальну логіку живлення. Звичайно, якщо виникає неправильна логіка живлення (наприклад, ноутбук заряджає павербанк), USB
Протокол PD також забезпечує механізм Power Role Swap, який перемикає роль джерела живлення через протокол PD. Для отримання додаткової інформації зверніться до специфікації USB Power Delivery Specification.





