Usamos dispositivos eletrônicos comuns para corresponder a esses três tipos: Fonte – carregador; Dissipador – telefone celular; DRP – laptop ou banco de energia.
Para três tipos de dispositivos, haverá 9 combinações de interconexão em teoria. Deve haver métodos de conexão errados (como adaptador conectando adaptador) ou métodos de conexão que não têm certeza de quem é a Fonte (como banco de energia ou laptop). Então, para tantas combinações, como o controlador Tipo-C configura a interface?
O controlador Tipo-C completa todo o processo de identificação e comunicação por meio da troca de estado da máquina de estado. A seguir estão vários estados principais na máquina de estado.
1. Unattached.SRC, a fonte está em um estado desconectado
2. Unattended.SNK, Sink está em um estado desconectado
3. AttachWait.SRC, o objetivo deste estado é que a Source garanta que CC1 e CC2 permaneçam estáveis após o dispositivo ser conectado
4. AttachWait.SNK, o objetivo deste estado é que o Sink garanta que CC1 e CC2 permaneçam estáveis após o dispositivo ser conectado
5. Attached.SRC, a fonte determina que o dispositivo está conectado com sucesso
6. Attached.SNK, Sink determina que o dispositivo está conectado com sucesso
5. Try.SRC, este estado é para o dispositivo DRP tentar alternar a função de origem
6. Try.SNK, este estado é para o dispositivo DRP tentar alternar a função de Sink
Cenário 1 Mecanismo de comportamento entre Source e Sink (adaptador e celular)
O seguinte é o mecanismo de comportamento quando a Origem tem um dispositivo de Desvio conectado:
(1) Fonte e coletor estão ambos no estado não anexado Unattached.SRC e 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; A fonte liga VBUS e VCONN.
(3) Sink detects VBUS, and the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Anexado.SNK
(4) Após a Fonte e o Dissipador estarem no estado anexado
A fonte ajusta o valor de Rp para limitar a corrente absorvida pelo Sink
O dissipador detecta a tensão vRd em Rd para determinar a corrente permitida pelo VBUS
A fonte determina se o Sink está desconectado monitorando CC. Se estiver desconectado, ele entra em Unattached.SRC
Sink determina se a Source está desconectada monitorando a tensão VBUS. Se estiver desconectada, entra em Unattached.SNK

Cenário 2 Mecanismo de comportamento entre a fonte e o DRP (carregador e laptop)
O seguinte é o mecanismo de comportamento quando a Fonte tem um dispositivo DRP conectado:
(1) Tanto a Fonte quanto o DRP estão no estado desvinculado
A fonte está no estado Unattached.SRC - DRP alterna entre Unattached.SRC e 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; A fonte liga VBUS e 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 -->Anexado.SNK
(4) Após a Fonte e o DRP estarem no estado anexado
A fonte ajusta o valor de Rp para limitar a corrente absorvida pelo DRP (ou seja, Sink)
DRP (ou seja, Sink) detecta a tensão vRd em Rd para determinar a corrente permitida pelo VBUS
Source determina se Sink está desconectado monitorando CC. Se estiver desconectado, ele entra em Unattached.SRC- DRP (ou seja, Sink) determina se Source está desconectado monitorando a tensão VBUS. Se estiver desconectado, ele entra em Unattached.SNK e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK

Cenário 3 Mecanismo de comportamento entre DRP e Sink (Laptop e Celular)
O seguinte é o mecanismo de comportamento quando o DRP tem um dispositivo Sink conectado:
(1) Tanto o DRP quanto o Sink estão no estado desvinculado
O DRP alterna entre Unattached.SRC e Unattached.SNK - O coletor está no estado 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 (ou seja, Fonte) liga VBUS e VCONN.
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->Anexado.SNK
(4) Após a Fonte e o DRP estarem no estado anexado
DPR (ou seja, Fonte) ajusta o valor Rp para limitar a corrente absorvida pelo Sink - o Sink detecta a tensão vRd em Rd para determinar a corrente permitida pelo VBUS
DRP (ou seja, Source) determina se o Sink está desconectado monitorando CC. Se estiver desconectado, ele entra em Unattached.SRC e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK
DRP (ou seja, Sink) determina se a Source está desconectada monitorando a tensão VBUS. Se estiver desconectada, entra em Unattached.SNK

Cenário 4 Mecanismo de comportamento entre DRP e DRP (Power Bank e Laptop)
Para comunicação entre DRP e DRP, há três situações. Em uma situação, os dois dispositivos decidem quem é a Source ou Sink aleatoriamente; na segunda situação, um dos DRPs tenta decidir ser o Source através do mecanismo Try.SRC; na terceira situação, um dos DRPs tenta decidir ser o Sink através do mecanismo Try.SNK.
O seguinte é o mecanismo de comportamento quando um dispositivo DRP é conectado ao DRP:
Cenário 1:
(1) Ambos os dispositivos DRP estão no estado desconectado
DRP#1 e DRP#2 alternam aleatoriamente entre Unattached.SRC e 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 (ou seja, Fonte) liga VBUS e 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 -->Anexado.SNK
(4) Após a Fonte e o DRP estarem no estado anexado
DPR#1 (ou seja, Fonte) ajusta o valor Rp para limitar a corrente absorvida por DRP#2 (ou seja, Dissipador)
DRP#2 (ou seja, Sink) detecta a tensão vRd em Rd para determinar a corrente permitida pelo VBUS
DRP#1 (ou seja, Source) determina se Sink está desconectado monitorando CC. Se estiver, ele entra em Unattached.SRC e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK
DRP#2 (ou seja, Sink) determina se Source está desconectado monitorando a tensão VBUS. Se estiver, ele entra em Unattached.SNK e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK

Caso 2:
(1) Ambos os dispositivos DRP estão no estado não conectado
DRP#1 e DRP#2 alternam aleatoriamente entre Unattached.SRC e 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 (ou seja, Fonte) liga VBUS e 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 -->AnexarEsperar.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; e puxa o pino 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; e desliga VBUS e VCONN, e alterna o resistor pull-down no pino CC
(6) DRP#2 detects that the CC pin is pulled up, so its state changes to Try.SRC -->Attached.SRC; e liga VBUS e VCONN
(7) The state of DRP#1 changes to AttachWait.SNK -->Anexado.SNK
(8) Após a Fonte e o DRP estarem no estado anexado
DPR#2 (ou seja, Fonte) ajusta o valor Rp para limitar a corrente absorvida por DRP#1 (ou seja, Dissipador)
DRP#1 (ou seja, Sink) detecta a tensão vRd em Rd para determinar a corrente permitida pelo VBUS
DRP#2 (ou seja, Source) determina se Sink está desconectado monitorando CC. Se estiver, ele entra em Unattached.SRC e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK
DRP#1 (ou seja, Sink) determina se Source está desconectado monitorando a tensão VBUS. Se estiver, ele entra em Unattached.SNK e restaura seu mecanismo de comutação entre Unattached.SRC e Unattached.SNK

O terceiro caso é o mecanismo Try.SNK, que é semelhante ao mecanismo Try.SRC e não será descrito aqui.
Cenário 5 Mecanismo de comportamento entre fonte e fonte e entre coletor e coletor
Nesses dois casos de uso, tanto Source quanto Sink estão nos estados Unattached.SRC e Unattached.SNK, portanto, não há fornecimento de energia entre os dispositivos.
Até agora, introduzimos alguns mecanismos de comunicação comuns entre dispositivos. Especialmente para dois dispositivos DRP de dupla função, o controlador Tipo-C usará Try.SRC ou Try.SNK para tentar estabelecer a lógica normal da fonte de alimentação. Claro, se ocorrer a lógica errada da fonte de alimentação (por exemplo, um laptop carrega um banco de energia), o USB
O protocolo PD também fornece um mecanismo Power Role Swap, que alterna a função da fonte de alimentação por meio do protocolo PD. Para obter detalhes, consulte a Especificação de Fornecimento de Energia USB.





