3. 配置通道(CC)的工作原理
说白了,CC(Configuration Channel)就是USB Type-C接口里最核心的“接线员”。你想想看,插头那么小,正反都能插,怎么判断你插的是哪一边?怎么知道对面是个充电器还是电脑?怎么协商出5V还是20V的电压?
这些,全靠在CC引脚上那套精巧的电阻网络和通信协议搞定。我个人觉得,弄懂CC,就等于搞懂了一半的Type-C。下面咱们一步步拆开看。
3.1 线缆检测:怎么知道插上了?
先做一个简单的思想实验。你手里有个Type-C插头,插进一个Type-C插座。这时候,插座里的CC引脚(CC1或CC2)会先“摸”到插头里的一颗电阻。嗯,就是这么回事。
我在项目中遇到过好几次这样的情况:明明线插好了,设备就是不识别。反复排查,最后发现是CC引脚虚焊,导致电阻没接上。
检测的框架逻辑是这样的:
图中的逻辑,我解释一下。线缆插进去后,CC引脚会立刻检测到一个特定的电阻。电阻值对应不同的场景:标准无源线缆、有电子标签的线缆,甚至有没有插反。这步做完,系统就能判断出“有人插线了”,并且知道该走哪条通信路径。
3.2 上拉/下拉电阻:到底谁说了算?
检测到线缆之后,真正决定“身份”的,是CC引脚上挂的那个电阻。嗯,你想想看,怎么区分谁是充电头(源端/DFP),谁是手机(设备/UFP)?
USB Type-C规范定义了三颗“身份电阻”:
| 电阻类型 | 典型阻值 | 所在角色 | 作用 |
|---|---|---|---|
| Ra | 800Ω – 1.2kΩ | 线缆内部 | 标识线缆存在,触发VCONN供电 |
| Rp | 10kΩ(标准)/ 22kΩ(1.5A)/ 56kΩ(3A) | DFP(源端) | 向设备宣告自身电流能力 |
| Rd | 5.1kΩ ± 1% | UFP(设备) | 通知源端“我是设备,可以拉电” |
说白了就是这样:
- Rp 是“我这边能提供多少电”的广告牌。不同阻值告诉设备:我能给500mA、1.5A还是3A?
- Rd 是“我是设备,我要用电”的回执。阻值必须精确到5.1kΩ,差一点都不行。
- Ra 是“我只是一根线,别给我乱供电,除非你要读我的电子标签”。
我记得有一次做合规测试,遇到个很诡异的问题。DFP明明接了Rp=56kΩ(宣称能供3A),但UFP只拉到了500mA。换了好几台设备都没用。后来用示波器抓CC总线,才发现DFP的CC1上Rp实际只有45kΩ。
3.3 通信协议:不止是电阻那么简单
如果只是检测电阻就收工,那Type-C跟老式USB也没多大区别。真正的智能协商发生在CC通信阶段。
当系统检测到Rp和Rd匹配完成后,DFP就会在CC引脚上发起BMC(Biphase Mark Coding,双相标记编码)通信。你应该听过这个名词,其实就是用一串脉冲信号,在CC线上传数据包。
我简单总结一下CC通信要干的事:
- 电流能力广播:源端告诉设备我能提供多大的电流。协议里有标准电流列表:500mA、1.5A、3A、5A(需电缆能力)。
- 电源角色协商:谁当源?谁当设备?如果两边都是DRP(双角色端口),会在CC上“吵一架”,最终决出胜者。这就是所谓的“角色决议”。
- 电子标签读取:如果线缆内部带e-marker(电子标签芯片),DFP会通过VCONN给它供电,然后读取产品信息:厂家、线长、电流能力、版本号等。这步走完,源端才知道这根线能不能扛5A。
你可能会问:BMC通信会不会跟5V总线冲突?嗯,这里要特别说明。CC通信是单向的(源端发,设备回应),而且使用独立的1.2V电平,跟Vbus上5V完全隔离。所以别担心干扰。
举个例子,我在测试一款笔记本充电器时,发现它连手机只能到5V/500mA。抓CC波形一看,BMC包总是少一个字节。原来固件里发送缓冲区长度配错了,导致CRC校验不过。设备收不到合法数据包,就默认只拉500mA。
3.4 实战:CC链路完整的协商过程
咱们把上面几段串起来,模拟一下实际插入过程:
- 机械插入:USB插头进入插座,CC1(或CC2)最先接触。
- 电阻检测:DFP在CC线上检测到Rd(设备端电阻),确认有一个UFP接上了。同时检测线缆Ra,如果发现Ra,则开启VCONN供电。
- 角色锁定:DFP知道自己要当源端,UFP确认自己是设备。这一过程在几毫秒内完成。
- 电流能力广播:DFP通过CC线发送第一个BMC包,内容为“我能提供1.5A”。设备解码后,回复确认。
- 电源开启:Vbus从0V升到5V,设备开始拉500mA(初步电流)。
- 身份确认(如需要):如果设备支持PD(电源传输),会在CC上发起更复杂的多包通信,协商升压(9V、15V、20V)或升降电流。如果线缆带电子标签,则会读取e-marker信息。
- 正常供电:双方握手完毕,进入稳定供电状态。
这个过程中任何一步失败,都会导致“插上去没反应”或者“一直闪充”。我遇到过的最离谱的一个案例,是某款手机的Type-C母座CC引脚用了劣质弹片,插入后接触电阻高达几百欧姆。DFP测到的电阻不是5.1kΩ,而是5.5kΩ。这就超出了允许的±5%范围,直接判定为“无效连接”,拒绝供电。
总结一下这一章:CC通道不是一条简单的硬线,它集成了电阻检测、角色决议、BMC通信三件大事。合规测试里,多数“连不上、充不进、识别错”的坑都出在这里。你得把三个环节逐个排查:电阻精度(表面)、通信时序(底层)、信号完整性(边缘)。这三样都OK,CC才算真正合规。