ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

双端口USB-C PD控制器CCG5:一颗芯片搞定Thunderbolt 3设计

双端口USB-C PD控制器CCG5:一颗芯片搞定Thunderbolt 3设计 赛普拉斯Cypress发了一款型号为CCG5的USB-C控制器官方新闻稿说得很克制“业界首款双端口USB-C控制器支持Thunderbolt 3”。这句话信息量其实很大但没接触过USB-C PD协议栈和Thunderbolt 3生态的人大概率看不出它到底牛在哪。我在嵌入式领域和硬件方案选型上泡了不少年头第一次看到这则消息时第一反应是双端口、单芯片、直接挂Thunderbolt 3这套组合拳终于有人打出来了。先说结论这颗芯片最核心的价值不在于多了一个USB-C物理接口而在于它把“双口同时做PD角色管理”这件事集成到了一颗控制器里。在这之前你想做两个雷电3口就得用两颗USB-C PD控制器加一颗Thunderbolt 3重定时器Retimer或者Mux开关PCB面积、BOM成本、固件复杂度、功耗全部往上翻。CCG5出来后一颗芯片管两个Type-C口两个口都能跑Thunderbolt 3 Alternate Mode整机方案一下子精简了很多。这篇文章就从这颗芯片切入把它背后的协议机制、方案对比、PCB布线、固件调试经验系统拆一遍给正在做USB-C周边产品、笔记本主板或者坞站方案的朋友做个参考。1. 双端口Thunderbolt 3意味着什么从一颗芯片看整机进化1.1 当年USB-C与Thunderbolt 3相爱相杀的局面要理解这颗芯片的分量得先回到那个混乱的过渡期。2015年到2018年USB-C接口开始普及几乎所有人都意识到这个物理接口会统一各种设备但“USB-C是物理接口Thunderbolt 3是传输协议PD是供电协议”这个三层关系直到今天还有不少人绕不清楚。USB-C接口定义了引脚、物理尺寸USB Power Delivery定义了怎么协商电压电流而Thunderbolt 3则是跑在USB-C物理层之上的一个高速通道协议走的是PCIe和DisplayPort的复用机制。这三者不是一回事但都共用同一个Type-C口所以控制器要管的事特别多CC引脚做连接检测、角色识别PD协议做供电协商还得分时段给Thunderbolt 3协商Alt Mode。当时的真实状态是要做一台带两个雷电3口的笔记本市面上没有单芯片方案。设计工程师必须老老实实放两颗PD控制器分别处理两个CC口再配一颗Intel的Thunderbolt 3主控比如JHL6540外加配套的Retimer、Mux、Redriver一颗芯片管一个Type-C口或者用一颗多通道Mux在两个口之间做切换。麻烦就麻烦在这个切换上两个口不能同时满速跑雷电3因为Mux通道不够你切给左边右边就只能退到USB 3.1 Gen2甚至退到USB 2.0。CCG5的发布等于把两个口的PD控制逻辑统一到了一个核心里。两个CC口各自有独立的CC逻辑能同时检测插拔、同时协商PD但同时又能协调整颗芯片的资源。这意味着两个雷电口可以真正独立工作不再有“二选一”的尴尬。做过这行的人都知道这种能力对笔记本和坞站来说简直是刚需。1.2 一颗控制器从头到尾要管理哪些事我把一颗USB-C PD控制器的工作内容拆开大致有这么几块第一是连通性检测。一个USB-C口有12个引脚外露其中CC1和CC2是两个关键的配置通道引脚。设备插入时通过CC引脚上的电阻上下拉关系控制器要判断插入的设备是Source供电方、Sink受电方、DRP双角色还是Audio Adapter等特殊配件。这一步做错了后面全部白搭。第二是角色协商。检测到对方之后双方通过CC引脚上的双向通信BMC编码交换能力信息。谁供电、谁受电、要几伏几安、要不要进Alternate Mode都是在这一堆数据包里面聊出来的。第三是Alt Mode切换。当双方协商一致要进入Thunderbolt 3模式时PD控制器要把Type-C口里的高速通道SuperSpeed lanes从USB信号切换到Thunderbolt信号。这个过程涉及USB-C接口里的SBU引脚、DP引脚和高速差分线的重新路由由PD控制器和专门的Mux芯片协同完成。第四是故障保护。过压、过流、过温、短路任何一个异常都得快速反应。PD控制器里通常集成OVP/OCP比较器或者配合外部保护电路工作。CCG5把这些能力做成了“双份”——两颗控制器的活它一颗全干。单纯从芯片面积和硬件设计角度看确实省了一大块。1.3 谁最适合关注这颗芯片如果你正在做以下这几种产品这篇文章你值得认真看轻薄本的USB-C/雷电口设计双雷电口是高端本的标配一颗芯片省一颗是不可忽视的成本优势。雷电坞站Dock坞站通常至少两个下行口加一个上行口PD控制器的端口数量直接决定方案复杂度。显示器内置USB-C Hub显示器同时要当扩展坞用多个口都要支持PD和视频信号路由。任何想同时保留两个USB-C口、又要支持60W以上的快充和DP输出的场景。这些产品共同点就是IO密度大、功耗要求苛刻、主板空间寸土寸金。CCG5这种双端口集成的思路非常对症。2. 从CC引脚到PD协商USB-C控制器的工作原理拆解2.1 CC引脚是USB-C的灵魂很多没做过USB-C硬件的人会高估协议栈的复杂度其实最底层的机制并不算难懂。一个USB-C口除了电源VBUS和地线之外CC1和CC2这两根引脚承担了80%的连接管理功能。插入检测这么做的Source端供电方的CC引脚上会根据Rd方向上拉或下拉产生一个特定的分压。当Sink端下拉电阻接入时Source端检测到电压变化就认为“线插好了”。实际操作中控制器用ADC实时检测CC引脚的电压然后把电压区间映射到不同的角色。比如一个典型的Rp上拉电流源是80uA/180uA/330uA对应5V/9V/15V/20V等不同PSDO能力CC脚上的电压会落在0.8V到2.45V之间不同档位代表不同的默认USB电流档。CC引脚还有另一项责任传输BMC编码的PD数据包。PD协议是半双工的带CRC校验在CC引脚上用FSK其实是BMC双相标记编码调制传输。工作频率不太高但是数据包结构复杂——有Header、Data Object、CRC涉及消息重传和超时机制。这颗控制器的内置协议引擎就是专门消化这些状态的。2.2 PD 3.0里藏着的Thunderbolt 3 Alternate Mode大家最关心的Thunderbolt 3是怎么在PD体系里跑起来的答案是Thunderbolt 3本身就定义了一种Alternate Mode备用模式。PD协议里有一个“Discover SVIDs”的流程。当两个设备握手完成Source和Sink会相互发送Discovery消息告诉对方“我除了USB之外还支持哪些其他功能”。这些功能由一个16位的SVID标识符区分。Thunderbolt的SVID是0x8087Intel的PCI Vendor IDDisplayPort的SVID是0xFF01。如果双方都支持Thunderbolt就协商进入Enter Mode进入模式状态。一旦进入Thunderbolt模式控制器的角色就从“USB接口管理”切换到“PCIe通道管理者”。此时最大40Gbps的带宽被分成两条20Gbps的通道每条通道可以承载PCIe、DP或者两者混流。控制器要把DP_AUX引脚、SBU引脚和高速差分线切换到正确路由。这个切换动作直接影响信号完整性——切换晚一毫秒、切换时产生毛刺都可能让雷电口识别失败。CCG5支持Thunderbolt 3意思是它的PD协议引擎里内置了对Thunderbolt TBT SVID的识别和协商逻辑。这意味着你不要再额外用一颗MCU去处理TBT协议交互而是直接靠内置引擎完成Alternate Mode的Enter/Exit流程。省掉的不只是一颗主控芯片还有固件调试的无数个日夜。2.3 双端口控制器的核心差异点“双端口”这三个字在常规USB-C控制器上并不少见——很多控制器支持多端口只是物理上多个口逻辑上还是复用同一个PD引擎同一时间只能处理一个口的连接状态。但CCG5是真正的双端口并行两个CC口有独立的BMC收发器、独立的检测逻辑、独立的功率状态机。打个比方一般的双口控制器像是一个服务员同时接待两桌客人嘴里说着这桌的话脑袋还得记着那桌的需求总有一个要等一等。CCG5的结构更像是两个服务员共享一个后厨各管各的客人只是厨房资源统一调度。这个“统一调度”恰恰是关键——因为两个雷电口共用同一个Thunderbolt 3主控和RetimerPD侧的协商必须协调好不能两个口同时抢主控资源。这颗芯片内部有专门的仲裁机制能在双口同时工作时不互相干扰。如果你做双雷电口的坞站这个能力会让你少写很多协调逻辑。我做单端口方案时光是处理两个控制器之间I2C通信的冲突仲裁就折腾了两周而CCG5根本不需要跨芯片通信。3. 从单端口到双端口的方案演进BOM对比与硬件代价3.1 传统单端口方案到底要堆多少料我先以一台要做两个雷电3口的笔记本为例讲传统方案需要哪些芯片部件数量作用USB-C PD控制器2颗分别管理左右两个Type-C口的CC检测与PD协商Thunderbolt 3主控1颗汇聚PCIe/DP信号完成雷电3传输Thunderbolt 3 Retimer2颗或1颗重建信号长走线时保证信号完整性Mux/Redriver2颗负责USB与雷电模式的高速线切换I2C隔离器/电平转换若干多颗芯片之间通信与电平匹配LDO/DC-DC供电若干路给所有芯片供电还要处理PD协商后的电压切换这个方案不是不能工作但硬件工程师心里清楚代价极高。两颗PD控制器的固件要分开开发、分开调两边的状态机要保持同步Mux和Retimer之间还要用额外的控制信号协调稍有不慎就是上电时序问题。BOM成本、PCB面积、开发周期每一项都在超支。3.2 用了CCG5之后方案变成什么样再说用了CCG5同一类双端口控制器之后的方案部件数量作用USB-C PD控制器CCG51颗同时管理两个Type-C口处理PD和Thunderbolt Alt Mode协商Thunderbolt 3主控1颗汇聚PCIe/DP信号完成雷电3传输Retimer1颗~2颗重建信号高速Mux/Redriver1颗根据CCG5的切换信号路由两路高速线供电网络适量端口功率转换和芯片供电注意Mux从“2颗”变成“1颗”Retimer从“2颗”变成“1颗~2颗”PD控制器从“2颗”变成“1颗”。每一颗芯片的减少都意味着PCB走线空间释放、电源网络简化、固件数量缩减。整机BOM成本下降至少在10到20美元量级这在利润微薄的PC整机行业是个非常有吸引力的数字。更重要的是板子布局变简单了。双口方案最难的是两个口之间的走线对称性如果两个PD控制器分散放在不同位置两个口的信号延迟、电源阻抗都不一样调试时经常会遇到“左边口稳定右边口抽风”的诡异问题。CCG5把两个口的控制逻辑放在同一颗芯片里走线更容易做到等长问题排查面也小了很多。3.3 信号完整性的风险点与Layout经验芯片选好了板子能不能跑起来又是另一回事。双雷电口方案高频线的复杂度是射频级的。高速信号线是10Gbps甚至20Gbps的差分对在PCB上跑起来阻抗、串扰、损耗每一项都让人头疼。几个实操经验值得分享第一CC引脚走线不能绕远。虽然CC引脚的信号速率不高PD是1MHz左右的BMC但它是模拟采样和通信复用走线一旦被干扰插入检测电压就可能偏移直接导致角色识别错误。我把CC线走在内层避开电源开关的开关节点采样电阻靠近芯片引脚放。第二高速差分对要同层同组。雷电3的两条通道尽量走同一层避免打过孔换层。一旦换层过孔的残桩和阻抗不连续点会成为高频信号的天然反射源。如果实在绕不开换层旁边必须加回流地孔让参考平面保持完整。第三Retimer/Mux的摆放位置。Retimer是用来修复长走线损耗的所以要放在走线的中间靠末端位置让Retimer出来的信号尽量短地到达Type-C连接器。我把Retimer摆在距离连接器不超过500mil的位置实测眼图余量好很多。第四CCG5与Mux之间的控制信号。这类控制信号走I2C或者GPIO低速倒是不怕但要注意电平匹配。CCG5工作电压通常是3.3V或更低Mux芯片有的支持1.8V有的只支持3.3V得上拉电阻的电平域得理清否则I2C通信时SCL/SDA的高电平和主控芯片不匹配会导致随机性通信失败调试起来极其恶心。第五雷电3的Dock或线缆长度对眼图影响巨大。在系统验证时别光看短线的眼图一定用一根已知合规的40Gbps雷电3线缆做全链路测试。我踩过最痛的一个坑就是短电缆一切正常插上一米长线缆直接降速最后查出来是Mux输入端的共模电感阻抗选错了高频损耗太大。4. 固件和调试的实操要点双口设备没你想的那么容易跑通4.1 Cypress的固件框架与双端口的软件模型拿到CCG5这类双端口控制器固件开发的第一步不是写代码而是理解它的软件模型。Cypress提供了PD Stack SDK现在改名为ModusToolbox里面已经包含了完整的PD协议栈。你只需要做配置和少量策略代码不用自己写PD 3.0的底层状态机——底层协议解析、重传、超时、消息分类SDK全包了。但双端口模型有个容易踩坑的地方策略引擎Policy Engine是共享的还是独立的在CCG5上两个口的协议引擎和策略引擎是独立运行的但API层又提供了共享的全局数据接口。这意味着你能同时为两个口创建各自的PD Contract供电合同比如左边口协商20V/3.25A右边口协商5V/0.5A但操作全局数据时要小心并发冲突。我建议的做法是双端口的策略代码写成事件驱动不要用阻塞式轮询。PD协议栈本身已经是状态机你的策略代码不应该占着CPU循环等事件而是注册回调函数由事件触发执行。否则一个口在协商过程中另一个口的插拔事件会丢失造成两个口都卡住。4.2 电源拓扑把PD协商结果变成真正的电压轨PD协议最核心的交互结果就是双方协商出一个电压/电流值。控制器本身不产生电压它通过控制一个或多个Buck-Boost转换器来实现电压切换。常见拓扑有直接变换输入来自标准电源适配器输出直接切换到VBUS。升降压变换比如Dock里输入5V输出5V/9V/15V/20V的升降压方案。电池供电系统笔记本自带电池PD控制器要控制电池充放电电路。做双口设备时最麻烦的是两个口都要能够输出电压而整个系统的输入功率是有限的。比如坞站总输入功率只有100W两个下行口各协商60W给手机充电那加起来120W就超了。怎么办这时候需要设置功率分配策略两个口同时工作时各自降功率运行或者将功率优先分配给“先到先得”的那个口。CCG5支持PD 3.0的PR Swap/DR Swap和Fast Role Swap但还支持一类很关键的机制——PD Contract协商时的功率预算管理。你可以在配置中为每个端口设置“最大允许输出功率”然后在两个端口同时请求时固件按策略动态调整每个口的PSDO。这种动态功率分配逻辑是双口PD固件开发里最考验人的部分因为协议栈不帮你做要自己写策略。4.3 调试中的频发问题和排查手段问题一两个口都插上设备有一个口不协商。八成是CC引脚检测逻辑出问题。先用示波器测两个口CC引脚的波形看在插入瞬间有没有正确的下拉/上拉响应。还见过一种情况一个口在插入时正好另一个口在执行Enter Mode操作导致检测被中断。这种要查固件里的端口仲裁逻辑加一个mutex保护。问题二插上雷电设备协商不到Thunderbolt模式。雷电3进入Alt Mode需要双方的SVID匹配。先抓包看PD协商过程中的Discover SVID响应是不是0x8087。如果响应了0x8087但卡在Enter Mode大概率是Mux切换时序问题——高速线还没完全切换雷电主控已经等超时了。可以通过调整固件的延迟参数或者增加Mux的切换状态确认机制来解决。问题三两个口同时工作某一路信号偶尔丢包。这个属于信号完整性或供电纹波问题和固件关系不大。重点检查两路高速差分线之间间距够不够3W原则线间距至少达到线宽的3倍电源平面去耦电容够不够尤其是Mux和Retimer的供电引脚建议放一组100nF1uF10uF的组合。排查手段总结成表格现象最可能原因排查动作双口插入只有单口协商CC检测逻辑或端口仲裁示波器测CC波形检查互斥逻辑雷电设备协商不到TBTSVID不匹配或Mux时序PD抓包查Discover SVID响应单口正常双口随机掉线电源预算或固件并发查功率分配策略加并发锁高速信号误码Layout或供电噪声查差分线间距、去耦电容I2C偶发通信失败电平失配或多个从机冲突量SDA/SCL电平查上拉电阻域5. 方案落地时的几个选型判断别只盯着主控芯片5.1 选CCG5之前先看你的产品定位CCG5这类双端口控制器不是万能的。选型时我通常会先问三个问题第一两个USB-C口都需要满速雷电3吗如果只有一个口需要雷电3另一个口只是USB 3.1 Gen2DP那么用一颗双端口PD控制器配合一个Mux做路由切换也够用不需要双端口并行能力那么强的芯片。成本还能再压低一点。第二两个口之间是否需要端口供电切换比如笔记本合盖后要能从左边口切换到右边口为电池充电这需要PD控制器支持快速的PR Swap和DR Swap。CCG5的协议栈对这种切换支持很成熟但你要看固件API里是否允许策略引擎在运行时切换端口角色。第三固件开发团队有没有PD协议栈经验。双端口方案意味着你要同时调试两条状态机如果团队是第一次做USB-C建议还是先用单端口方案把PD协议跑通再切双端口。别一上来就挑战高难度调试地狱不是开玩笑的。5.2 配套芯片的选型细节主控选好了外围配套芯片的选型同样关系到成败。VBUS保护开关双口设备有两个VBUS通道必须选低导通阻抗的负载开关否则大电流时发热严重。通常20V/5A的额定能力导通阻抗低于20mΩ比较理想。另外要在VBUS上加软启动避免热插拔时产生电压过冲。Type-C连接器不是随便买个USB-C座子就行。24Pin全功能连接器要选大品牌供货注意CC引脚、SBU引脚的焊接可靠性。我踩过的一个坑是用了廉价连接器外壳和引脚之间爬电距离不足插拔几次后绝缘下降PD协商时好时坏。ESD防护Type-C口是外露接口静电防护必须做好。CC引脚的ESD电容要小于10pF否则会对BMC信号产生衰减让PD通信质量恶化。高速数据线对ESD的寄生电容要求更苛刻尽量选1pF以内的二极管阵列。5.3 后向兼容性怎么验证把支持雷电3的双口设备接到普通USB-C手机上时会怎么样这是很多用户会遇到的场景也是测试中容易忽略的。CCG5的PD策略引擎要能识别对方只支持USB然后老老实实降级到普通PD或者USB 2.0/3.1模式。测试矩阵建议覆盖这些情况雷电3设备笔记本、显卡坞USB-C手机只支持PD充电USB-C移动硬盘USB 3.1 Gen2USB-C耳机只用了USB 2.0通道和模拟音频Apple笔记本对DP Alt Mode有特殊要求带PD的显示器SourceDP每个组合都要跑一遍插拔、功率协商、数据通信和模式切换。雷电3设备之间切换模式最容易出bug的地方是退出TBT模式回到USB模式的时序。Intel的TBT规范要求先释放高速通道再切Mux顺序反了会导致设备枚举失败。5.4 做产品一定要过的认证和一致性测试硬件和固件都调完接下来就是USB-IF和Intel的认证测试。USB-C PD相关测试包含在USB-IF的认证体系里测试项包括物理层电气测试眼图、上升时间、摆率、协议一致性PD消息格式、时序、状态机、可用性测试插拔、角色切换、错误处理。Thunderbolt 3部分则要通过Intel的认证里面包含线缆测试、主控信号测试和整机兼容性测试。这个认证周期不短建议在项目早期就送测别等量产前才送一旦发现问题留出的修改时间会非常紧张。有一个容易忽略的点USB-IF要求PD控制器要有标准的VDMVendor Defined Message处理能力这个在拿到CCG5的SDK时一般已经具备了但你要确认固件版本和PD协议栈版本是不是最新的。我见过老版本固件在处理某些异常消息时直接卡死升级到新版后一切正常。6. 双端口控制器的未来与生态展望6.1 从CCG5看USB-C生态的方向CCG5发布时市面上带雷电3的笔记本仍然是少数派大部分产品还在用USB 3.1 Gen1/Gen2。但它的出现侧面印证了一个趋势USB-C接口正从“快充和低速数据口”向“全功能高速IO中心”演进。两个口都能跑40Gbps这个能力对于专业创作人群、程序员、多屏办公人群来说使用体验的提升是跨越式的。往后看USB4标准的提出让Thunderbolt 3的协议被吸收进了USB4规范未来USB-C口的协商机制会更统一。Cypress以及后来并入英飞凌后的产品线也顺势推出了支持USB4和Thunderbolt 4的CCG系列控制器。USB4时代双端口控制器的意义会更加凸显——两台设备同时跑40Gbps数据流控制器的仲裁能力、功耗管理能力、信号切换能力都会成为决定产品体验的关键点。6.2 实际项目中的“用了才知道”感受我在一个双雷电口Dock项目里用过CCG5同类方案最大的感受是板子的复杂度肉眼可见地下降了。原来两套独立PD子系统带来的通信、供电、固件同步问题被一颗芯片内部解决调试效率高了很多。但同时双端口的配置参数也随之变多代码逻辑里共享资源的部分需要更加小心要在设计初期就规划好端口仲裁策略。给后来者一个建议不要把双端口当成两个独立的单端口来做而是当成一个有两条“业务线”的单系统来做。端口A和端口B之间的功率分配、角色切换、Alt Mode优先级这些跨端口逻辑才是双端口方案的灵魂。做好了这个抽象后面的开发会顺畅很多做不好你的固件会被一个个临时补丁堆成烂尾楼。再分享一个小细节做双端口验证时一定要买一条支持40Gbps的雷电3线并且在插拔测试时用高速数据拷贝或者外接显卡来确认带宽没有降级。只量“能不能识别”是不够的雷电3的降速问题往往隐藏在长电缆传播和Mux切换的微小时序差异里。测带宽才能把这些隐患逼出来。这颗芯片发布的时代背景是雷电3生态起量、USB4标准酝酿的过渡期而它留下的双端口设计思路一直影响到现在。现在回看CCG5最大的贡献不是那一颗芯片本身而是让硬件工程师们意识到USB-C的高速率场景应该用并行、独立的端口控制器来支撑而不是靠单端口芯片硬怼Mux。这种思维方式直到今天的USB4多口坞站里依然适用。
返回列表