Мы используем обычные электронные устройства, соответствующие этим трем типам: Источник – зарядное устройство; Потребитель – мобильный телефон; 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, Источник определяет, что устройство успешно подключено
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-->Прикреплено.SRC; Источник включает VBUS и VCONN.
(3) Sink detects VBUS, and the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Прикреплено.SNK
(4) После того, как Источник и Приёмник находятся в присоединённом состоянии
Источник регулирует значение Rp, чтобы ограничить ток, поглощаемый стоком.
Приёмник определяет напряжение vRd на Rd, чтобы определить ток, допустимый VBUS.
Источник определяет, отключен ли Sink, контролируя CC. Если он отключен, он переходит в Unattached.SRC
Sink определяет, отключен ли Source, контролируя напряжение 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 -->Прикреплено.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) После того, как Source и DRP находятся в присоединенном состоянии
Источник регулирует значение Rp, чтобы ограничить ток, поглощаемый DRP (т.е. стоком)
DRP (т.е. сток) определяет напряжение vRd на Rd, чтобы определить ток, разрешенный VBUS
Источник определяет, отключен ли Sink, путем мониторинга CC. Если он отключен, он переходит в Unattached.SRC-DRP (т.е. Sink) определяет, отключен ли Source, путем мониторинга напряжения 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 -->Прикреплено.SRC; DRP (т.е. Источник) включает VBUS и VCONN.
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Прикреплено.SNK
(4) После того, как Источник и DRP находятся в присоединенном состоянии
DPR (т.е. Источник) регулирует значение Rp, чтобы ограничить ток, потребляемый Потребителем - Потребитель определяет напряжение vRd на Rd, чтобы определить ток, разрешенный VBUS
DRP (т.е. Источник) определяет, отключен ли Sink, контролируя CC. Если он отключен, он переходит в Unattached.SRC и восстанавливает свой механизм переключения между Unattached.SRC и Unattached.SNK
DRP (т.е. Sink) определяет, отключен ли Source, контролируя напряжение 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 -->Прикреплено.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) После того, как Source и DRP находятся в присоединенном состоянии
DPR#1 (т.е. Источник) регулирует значение Rp, чтобы ограничить ток, потребляемый DRP#2 (т.е. Потребителем)
DRP#2 (т.е. сток) определяет напряжение vRd на Rd, чтобы определить ток, разрешенный VBUS
DRP#1 (т.е. Источник) определяет, отключен ли Sink, контролируя CC. Если да, он переходит в Unattached.SRC и восстанавливает свой механизм переключения между Unattached.SRC и Unattached.SNK
DRP#2 (т.е. Sink) определяет, отключен ли Source, контролируя напряжение 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) После того, как Source и DRP находятся в присоединенном состоянии
DPR#2 (т.е. Источник) регулирует значение Rp, чтобы ограничить ток, потребляемый DRP#1 (т.е. Потребителем)
DRP#1 (т.е. сток) определяет напряжение vRd на Rd, чтобы определить ток, разрешенный VBUS
DRP#2 (т.е. Источник) определяет, отключен ли Sink, контролируя CC. Если да, он переходит в Unattached.SRC и восстанавливает свой механизм переключения между Unattached.SRC и Unattached.SNK
DRP#1 (т.е. Sink) определяет, отключен ли Source, контролируя напряжение 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.





