เราใช้เครื่องใช้ไฟฟ้าทั่วไปเพื่อรองรับสามประเภทเหล่านี้: แหล่งจ่ายไฟ – เครื่องชาร์จ ซิงค์ – โทรศัพท์มือถือ DRP – แล็ปท็อปหรือพาวเวอร์แบงค์
สำหรับอุปกรณ์ทั้งสามประเภทนั้น ในทางทฤษฎีแล้ว จะมีรูปแบบการเชื่อมต่อถึง 9 แบบ ต้องมีวิธีการต่อที่ไม่ถูกต้อง (เช่น การเชื่อมต่ออะแดปเตอร์) หรือวิธีการต่อที่ไม่แน่ใจว่าใครคือแหล่งที่มา (เช่น พาวเวอร์แบงค์หรือแล็ปท็อป) ดังนั้น สำหรับอุปกรณ์ที่มีรูปแบบการเชื่อมต่อมากมายเช่นนี้ ตัวควบคุม Type-C จะกำหนดค่าอินเทอร์เฟซอย่างไร
ตัวควบคุม Type-C จะทำให้กระบวนการระบุและการสื่อสารทั้งหมดเสร็จสมบูรณ์ผ่านการสลับสถานะของเครื่องสถานะ ต่อไปนี้คือสถานะหลักหลายสถานะในเครื่องสถานะ
1. Unattached.SRC แหล่งที่มาอยู่ในสถานะที่ไม่เชื่อมต่อ
2. Unattended.SNK, Sink อยู่ในสถานะไม่เชื่อมต่อ
3. AttachWait.SRC วัตถุประสงค์ของสถานะนี้คือเพื่อให้ Source มั่นใจว่า CC1 และ CC2 ยังคงเสถียรหลังจากเชื่อมต่ออุปกรณ์แล้ว
4. AttachWait.SNK วัตถุประสงค์ของสถานะนี้คือเพื่อให้ Sink มั่นใจว่า CC1 และ CC2 ยังคงเสถียรหลังจากเชื่อมต่ออุปกรณ์แล้ว
5. Attached.SRC แหล่งที่มาตรวจสอบว่าอุปกรณ์เชื่อมต่อสำเร็จแล้ว
6. Attached.SNK, Sink ตรวจสอบว่าอุปกรณ์เชื่อมต่อสำเร็จแล้ว
5. Try.SRC สถานะนี้ใช้สำหรับอุปกรณ์ DRP เพื่อพยายามสลับบทบาท Source
6. Try.SNK สถานะนี้ใช้สำหรับอุปกรณ์ DRP เพื่อพยายามสลับบทบาท Sink
สถานการณ์ที่ 1 กลไกพฤติกรรมระหว่าง Source และ Sink (อะแดปเตอร์และโทรศัพท์มือถือ)
ต่อไปนี้เป็นกลไกการทำงานเมื่อ Source มีอุปกรณ์ Sink เชื่อมต่ออยู่:
(1) Source และ Sink ต่างก็อยู่ในสถานะไม่แนบ 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; Source เปิดใช้งาน VBUS และ VCONN
(3) Sink detects VBUS, and the Sink state changes to Unattached.SNK --> AttachWait.SNK -->แนบ.SNK
(4) หลังจาก Source และ Sink อยู่ในสถานะที่แนบมา
Source ปรับค่า Rp เพื่อจำกัดกระแสที่ Sink ดูดซับ
ซิงก์ตรวจจับแรงดันไฟฟ้า vRd บน Rd เพื่อกำหนดกระแสที่อนุญาตโดย VBUS
Source จะตรวจสอบว่า Sink ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบ CC หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SRC
ซิงก์จะตรวจสอบว่า Source ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบแรงดันไฟฟ้า VBUS หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SNK
สถานการณ์ที่ 2 กลไกการทำงานระหว่าง Source และ DRP (เครื่องชาร์จและแล็ปท็อป)
ต่อไปนี้เป็นกลไกการทำงานเมื่อ Source มีอุปกรณ์ 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; Source เปิดใช้งาน 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 อยู่ในสถานะที่แนบมาแล้ว
Source จะปรับค่า Rp เพื่อจำกัดกระแสที่ DRP ดูดซับ (เช่น Sink)
DRP (เช่น Sink) ตรวจจับแรงดันไฟฟ้า vRd บน Rd เพื่อกำหนดกระแสที่อนุญาตโดย VBUS
Source กำหนดว่า Sink ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบ CC หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SRC- DRP (หรือ Sink) กำหนดว่า Source ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบแรงดันไฟฟ้า VBUS หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SNK และคืนค่ากลไกการสลับระหว่าง Unattached.SRC และ Unattached.SNK
สถานการณ์ที่ 3 กลไกพฤติกรรมระหว่าง DRP และ Sink (แล็ปท็อปและโทรศัพท์มือถือ)
ต่อไปนี้เป็นกลไกการทำงานเมื่อ DRP มีอุปกรณ์ Sink เชื่อมต่ออยู่:
(1) ทั้ง DRP และ Sink อยู่ในสถานะที่ไม่แนบมา
DRP จะสลับไปมาระหว่าง Unattached.SRC และ Unattached.SNK - Sink อยู่ในสถานะ 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 (เช่น Source) เปิดใช้งาน VBUS และ VCONN
(3) When the Sink detects VBUS, the Sink state changes to Unattached.SNK --> AttachWait.SNK -->แนบ.SNK
(4) หลังจาก Source และ DRP อยู่ในสถานะที่แนบมาแล้ว
DPR (เช่น Source) จะปรับค่า Rp เพื่อจำกัดกระแสที่ Sink ดูดซับ โดยที่ Sink จะตรวจจับแรงดันไฟฟ้า vRd บน Rd เพื่อกำหนดกระแสที่ VBUS อนุญาต
DRP (เช่น Source) จะกำหนดว่า Sink ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบ CC หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SRC และคืนค่ากลไกการสลับระหว่าง Unattached.SRC และ Unattached.SNK
DRP (หรือที่เรียกว่า Sink) จะกำหนดว่า Source จะถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบแรงดันไฟฟ้า VBUS หากถูกตัดการเชื่อมต่อ จะเข้าสู่ Unattached.SNK
สถานการณ์ที่ 4 กลไกพฤติกรรมระหว่าง DRP และ DRP (พาวเวอร์แบงค์และโน้ตบุ๊ก)
สำหรับการสื่อสารระหว่าง DRP และ DRP มีสามสถานการณ์ ในสถานการณ์หนึ่ง อุปกรณ์ทั้งสองจะตัดสินใจว่าใครคือ Source หรือ Sink แบบสุ่ม ในสถานการณ์ที่สอง DRP ตัวหนึ่งจะพยายามตัดสินใจว่าจะเป็น Source ผ่านกลไก Try.SRC ในสถานการณ์ที่สาม DRP ตัวหนึ่งจะพยายามตัดสินใจว่าจะเป็น Sink ผ่านกลไก 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 (เช่น 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 -->แนบ.SNK
(4) หลังจาก Source และ DRP อยู่ในสถานะที่แนบมาแล้ว
DPR#1 (เช่น Source) จะปรับค่า Rp เพื่อจำกัดกระแสที่ DRP#2 (เช่น Sink) ดูดซับ
DRP#2 (เช่น Sink) ตรวจจับแรงดันไฟฟ้า vRd บน Rd เพื่อกำหนดกระแสที่อนุญาตโดย VBUS
DRP#1 (เช่น Source) จะกำหนดว่า 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 -->แนบ 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 -->แนบWait.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 อยู่ในสถานะที่แนบมาแล้ว
DPR#2 (เช่น Source) จะปรับค่า Rp เพื่อจำกัดกระแสที่ DRP#1 (เช่น Sink) ดูดซับ
DRP#1 (เช่น Sink) ตรวจจับแรงดันไฟฟ้า vRd บน Rd เพื่อกำหนดกระแสที่อนุญาตโดย VBUS
DRP#2 (เช่น Source) จะกำหนดว่า Sink ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบ CC หากเป็นเช่นนั้น จะเข้าสู่ Unattached.SRC และคืนค่ากลไกการสลับระหว่าง Unattached.SRC และ Unattached.SNK
DRP#1 (เช่น Sink) จะกำหนดว่า Source ถูกตัดการเชื่อมต่อหรือไม่โดยการตรวจสอบแรงดันไฟฟ้า VBUS หากเป็นเช่นนั้น จะเข้าสู่ Unattached.SNK และคืนค่ากลไกการสลับระหว่าง Unattached.SRC และ Unattached.SNK
กรณีที่สามคือกลไก Try.SNK ซึ่งคล้ายกับกลไก Try.SRC และจะไม่บรรยายไว้ที่นี่
สถานการณ์ที่ 5 กลไกพฤติกรรมระหว่าง Source กับ Source และระหว่าง Sink กับ Sink
ในกรณีการใช้งานสองกรณีนี้ ทั้ง Source และ Sink ต่างอยู่ในสถานะ Unattached.SRC และ Unattached.SNK ดังนั้นจึงไม่มีแหล่งจ่ายไฟระหว่างอุปกรณ์
จนถึงตอนนี้ เราได้แนะนำกลไกการสื่อสารทั่วไปบางอย่างระหว่างอุปกรณ์ โดยเฉพาะอย่างยิ่งสำหรับอุปกรณ์ DRP แบบดูอัลโรลสองตัว ตัวควบคุม Type-C จะใช้ Try.SRC หรือ Try.SNK เพื่อพยายามสร้างตรรกะแหล่งจ่ายไฟปกติ แน่นอนว่า หากตรรกะแหล่งจ่ายไฟไม่ถูกต้อง (ตัวอย่างเช่น แล็ปท็อปชาร์จพาวเวอร์แบงค์) USB
โปรโตคอล PD ยังจัดเตรียมกลไก Power Role Swap ซึ่งจะสลับบทบาทของแหล่งจ่ายไฟผ่านโปรโตคอล PD สำหรับรายละเอียด โปรดดูข้อมูลจำเพาะการจ่ายไฟผ่าน USB