4. PD物理层
好,咱们进入PD协议的物理层。很多人一提到PD,就只盯着协议层怎么握手、怎么协商电压电流。其实物理层才是整个通信的根基——要是信号在路上就歪了,上层协议再漂亮也没用。这章咱们就把BMC编码、FSK调制、收发器架构和电缆长度限制这几个硬骨头啃下来。
4.1 BMC编码:不只是“曼彻斯特”那么简单
BMC(Bi-Phase Mark Coding)说白了是一种双相编码。每个数据位的时间窗口里,时钟和信息是混在一起的。简单记:逻辑0在位中间有一次跳变,逻辑1在位中间有两次跳变(其实是在位边界先跳一次,中间再跳一次)。
为什么要用BMC?因为它自带时钟恢复能力。接收端不需要单独的时钟线,直接从跳变沿就能提取同步信息。我在调试一个早期PD快充项目时,遇到过BMC解码失败导致协商超时,查到最后是CC线上的电容把跳变沿削平了——嗯,从那以后我检查BMC信号都会仔细看上升时间。
| 数据位 | BMC编码波形特征 | 持续时间内总跳变次数 |
|---|---|---|
| 逻辑0 | 位中间发生一次电平翻转 | 2次(含边界跳变) |
| 逻辑1 | 位中间发生两次电平翻转 | 3次(含边界跳变) |
4.2 FSK调制:让数据跑得更远
PD协议在USB Type-C上用的是FSK(频移键控)吗?其实严格来说,PD物理层是基带BMC直接传输,没有单独的载波调制。但如果你看过某些长线缆方案或USB4的边带通道,就会碰到真正的FSK——用两个不同的频率表示0和1。
我见过不少工程师把BMC和FSK搞混。记住:BMC是基带编码,FSK是调制方式。在PD的默认配置通道(CC)上只有BMC,不需要FSK。那为什么题目里提到FSK?因为未来PD演进(比如480Mbps的USB4 BLR模式)可能会用到FSK来提高抗干扰能力。所以你心里要有个概念:FSK是用频率承载信息,BMC是用跳变模式承载信息。
4.3 收发器架构:从发送端到接收端
收发器(Transceiver)是物理层的核心。咱们看看一个典型的PD收发器包含哪些模块,以及信号是怎么流过的。下图我画了个简化框图,把BMC编码、驱动器、线缆、接收端串起来了。
你瞧,整个链路分三步:源端编码→线缆传输→接收端解码。我画了个FSK调制器放在可选的虚线框里,因为它只在少数场景才用到。实际PD芯片里,BMC编码器和线路驱动器基本是集成的,FSK解调可能复用BMC解码的模拟前端。
4.4 电缆长度限制:为什么不能超过2米?
USB Type-C标准规定PD通信的电缆长度≤2米。为什么是这个数?我分享一个真实案例:有一次客户把充电线做到了3米,结果CC线上的BMC信号眼图已经完全塌了,收发器根本解不出正确数据。
根本原因在于高频衰减和反射。BMC信号含有丰富的跳变沿(相当于高频分量),长电缆的趋肤效应和介质损耗会把高频能量吃掉,边沿变缓,造成码间干扰。另外,电缆两端的阻抗不匹配会产生反射,恶化信号质量。
| 电缆长度 | 典型信号衰减(@300kHz) | 眼图余量 | 实际可用性 |
|---|---|---|---|
| ≤1 m | < strong><3 dB | > 0.5 UI | 完全可靠 |
| 1 ~ 2 m | 3 ~ 6 dB | 0.2 ~ 0.5 UI | 满足标准要求 |
| 2 ~ 3 m | 6 ~ 10 dB | < 0.15 UI | 不稳定,慎用 |
| > 3 m | > 10 dB | 眼图闭合 | 不可用 |
4.5 调试避坑:我踩过的几个雷
- 雷区1:BMC信号幅度不够。 标准规定CC线上的差分电压幅度应为0.4V~1.2V(单端)。我碰到过芯片输出只有0.3V,结果在1.5米线上就丢包了。解决方法:检查驱动电流设置和终端电阻。
- 雷区2:FSK误当成BMC调。 有次同事拿着一块带FSK双向通信的定制版PD芯片,非说BMC解码出了问题。其实就是因为物理层模式没切对——芯片默认工作在FSK模式,但上位机配置的是BMC。
- 雷区3:电缆内CC线寄生电容过大。 一些廉价Type-C线缆内部线对互电容高达100pF/m,而常规要求是≤50pF/m。过大的电容会把BMC跳变沿拉圆,导致眼图眼高下降。量CC对地电容,超过80pF的基本不能用。
好了,物理层这些核心概念搞清楚了,后续看协议层的时序和状态机就不会觉得“空中楼阁”。咱们下一层面再聊。