우리는 이 세 가지 유형에 대응하기 위해 일반적인 전자 장치를 사용합니다. 소스 - 충전기, 싱크 - 휴대전화, DRP - 노트북 또는 모바일 배터리.
3가지 유형의 기기에 대해 이론적으로 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 장치가 Sink 역할을 전환하려고 시도하는 것입니다.
시나리오 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) Source 및 Sink가 Attached 상태가 된 후
소스는 싱크가 흡수하는 전류를 제한하기 위해 Rp 값을 조정합니다.
싱크는 VBUS에서 허용하는 전류를 결정하기 위해 Rd의 전압 vRd를 감지합니다.
Source는 CC를 모니터링하여 Sink가 연결 해제되었는지 여부를 결정합니다. 연결 해제된 경우 Unattached.SRC로 들어갑니다.
싱크는 VBUS 전압을 모니터링하여 소스가 분리되었는지 여부를 판별합니다. 분리된 경우 Unattached.SNK로 들어갑니다.

시나리오 2 소스와 DRP(충전기 및 노트북) 간의 동작 메커니즘
소스에 DRP 장치가 연결된 경우의 동작 메커니즘은 다음과 같습니다.
(1) Source와 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가 Attach 상태가 된 후
소스는 DRP(즉, 싱크)가 흡수하는 전류를 제한하기 위해 Rp 값을 조정합니다.
DRP(즉, 싱크)는 VBUS에서 허용하는 전류를 결정하기 위해 Rd의 전압 vRd를 감지합니다.
Source는 CC를 모니터링하여 Sink가 분리되었는지 여부를 결정합니다. 분리된 경우 Unattached.SRC- DRP(즉, Sink)로 들어갑니다. VBUS 전압을 모니터링하여 Source가 분리되었는지 여부를 결정합니다. 분리된 경우 Unattached.SNK로 들어가 Unattached.SRC와 Unattached.SNK 간의 스위칭 메커니즘을 복원합니다.

시나리오 3 DRP와 싱크(노트북과 모바일폰) 사이의 동작 메커니즘
DRP에 싱크 장치가 연결된 경우의 동작 메커니즘은 다음과 같습니다.
(1) DRP와 Sink 모두 unattached 상태입니다.
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) Source 및 DRP가 Attached 상태가 된 후
DPR(즉, 소스)은 싱크가 흡수하는 전류를 제한하기 위해 Rp 값을 조정합니다. 싱크는 VBUS에서 허용하는 전류를 결정하기 위해 Rd의 전압 vRd를 감지합니다.
DRP(즉, 소스)는 CC를 모니터링하여 Sink가 연결 해제되었는지 여부를 결정합니다. 연결 해제된 경우 Unattached.SRC로 들어가 Unattached.SRC와 Unattached.SNK 간의 스위칭 메커니즘을 복원합니다.
DRP(즉, 싱크)는 VBUS 전압을 모니터링하여 소스가 분리되었는지 여부를 결정합니다. 분리된 경우 Unattached.SNK로 들어갑니다.

시나리오 4 DRP와 DRP(Power Bank와 Laptop) 간의 동작 메커니즘
DRP와 DRP 간의 통신에는 세 가지 상황이 있습니다. 한 가지 상황에서는 두 장치가 무작위로 Source 또는 Sink를 결정합니다. 두 번째 상황에서는 DRP 중 하나가 Try.SRC 메커니즘을 통해 Source가 되려고 시도합니다. 세 번째 상황에서는 DRP 중 하나가 Try.SNK 메커니즘을 통해 Sink가 되려고 시도합니다.
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가 Attach 상태가 된 후
DPR#1(즉, 소스)은 DRP#2(즉, 싱크)가 흡수하는 전류를 제한하기 위해 Rp 값을 조정합니다.
DRP#2(즉, 싱크)는 VBUS에서 허용하는 전류를 결정하기 위해 Rd의 전압 vRd를 감지합니다.
DRP#1(즉, 소스)은 CC를 모니터링하여 Sink가 연결 해제되었는지 여부를 결정합니다. 연결 해제된 경우 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 -->첨부.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
(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 -->첨부.SRC; 및 VBUS 및 VCONN을 켭니다.
(7) The state of DRP#1 changes to AttachWait.SNK -->첨부됨.SNK
(8) Source 및 DRP가 Attach 상태가 된 후
DPR#2(즉, 소스)는 DRP#1(즉, 싱크)이 흡수하는 전류를 제한하기 위해 Rp 값을 조정합니다.
DRP#1(즉, 싱크)은 VBUS에서 허용하는 전류를 결정하기 위해 Rd의 전압 vRd를 감지합니다.
DRP#2(즉, 소스)는 CC를 모니터링하여 Sink가 연결 해제되었는지 여부를 결정합니다. 연결 해제된 경우 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 프로토콜은 또한 PD 프로토콜을 통해 전원 공급 역할을 전환하는 Power Role Swap 메커니즘을 제공합니다. 자세한 내용은 USB Power Delivery Specification을 참조하십시오.





