尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

039、MIPI C-PHY vs D-PHY——不仅仅是lane数量的差异——从协议开销到PCB布局的工程对比——高帧率场景下C-PHY的时序收敛实战

039、MIPI C-PHY vs D-PHY——不仅仅是lane数量的差异——从协议开销到PCB布局的工程对比——高帧率场景下C-PHY的时序收敛实战 039、MIPI C-PHY vs D-PHY——不仅仅是lane数量的差异——从协议开销到PCB布局的工程对比——高帧率场景下C-PHY的时序收敛实战去年秋天我们在一款旗舰手机的前摄方案上栽了个跟头。Sensor端用的是三星JN1平台是骁龙8 Gen2接口选的是C-PHY 3-lane理论上带宽是D-PHY 4-lane的1.4倍跑4K60毫无压力。结果一上电预览画面在暗光下出现横向条纹亮度越高越明显最后定位到是C-PHY的symbol error率超标——不是sensor的问题不是ISP的问题是PCB上那几根线的阻抗连续性在作怪。那段时间我每天抱着TDR时域反射计在实验室里蹲到凌晨把C-PHY和D-PHY的差异从协议层到物理层重新捋了一遍才明白这俩接口的差距远不止“少一根lane”这么简单。先说说协议开销。D-PHY是源同步差分接口每个lane有独立的时钟lane数据lane上每个bit周期对应一个时钟沿协议开销主要花在同步头SoT和行尾EoT上开销占比固定大约在3%到5%之间。C-PHY则完全不同它没有独立的时钟lane时钟信息是嵌入在数据lane的三电平编码里的——每个lane上同时传输三根线A、B、C每根线在三个电平高、中、低之间跳变一个symbol周期内三根线的组合状态有27种但合法跳变只有7种因为每次跳变必须保证至少一根线变化且不能出现“全不变”或“全变”的非法状态。这意味着C-PHY的每个symbol携带的信息量是log2(7)≈2.807 bit而D-PHY每个bit就是1 bit。所以C-PHY 3-lane的理论带宽是3 × 2.807 × symbol_rate而D-PHY 4-lane是4 × 1 × bit_rate。如果symbol_rate和bit_rate相同C-PHY 3-lane确实比D-PHY 4-lane多出约5.4%的带宽——但这是理想情况。实际工程中C-PHY的协议开销比D-PHY高得多。因为C-PHY没有独立时钟接收端必须从数据流中恢复时钟这就需要在每个symbol周期内检测跳变沿。为了确保时钟恢复的可靠性C-PHY协议规定每个symbol周期内至少有一根线发生跳变这导致了一个关键问题C-PHY的symbol rate不能无限提高因为跳变沿的抖动jitter会直接影响时钟恢复的裕量。我们实测过在同样的PCB板材和走线长度下C-PHY的symbol rate超过2.5Gsps时眼图闭合速度比D-PHY的bit rate超过3Gbps时快得多。原因在于C-PHY的三电平编码对串扰和反射更敏感——D-PHY是差分对共模噪声可以被抑制而C-PHY的三根线是单端信号任何一根线上的噪声都会直接叠加到symbol判决上。这就引出了PCB布局的差异。D-PHY的差分对走线有成熟的设计规则100Ω差分阻抗、对内等长、对间等长、包地、远离时钟源。C-PHY的三线组triplet则复杂得多——它要求三根线之间保持严格的等长误差小于5mil而且三根线的间距必须一致以保证三线之间的耦合系数相同。更麻烦的是C-PHY的每根线都是单端50Ω阻抗但三根线之间的串扰会改变有效阻抗——我们仿真时发现如果三线间距小于2倍线宽中间那根线的有效阻抗会下降10%以上导致反射系数超标。所以C-PHY的PCB布局规则不是简单的“三根线等长等距”而是要同时控制线宽、线距、参考平面距离以及三线之间的耦合系数。我们当时的问题就出在参考平面上。为了节省PCB面积我们把C-PHY的三线组走在了内层参考平面是电源层。结果电源层上有几个去耦电容的过孔导致参考平面不连续三线组的阻抗在过孔附近跳变了15Ω。TDR测试显示反射点就在过孔位置symbol error率在高温下85℃飙升到10^-4量级。解决办法是把三线组换到表层参考平面改为完整的地平面同时在过孔区域加地孔阵列来缝合参考平面。改版后symbol error率降到10^-7以下暗光条纹消失。高帧率场景下的时序收敛是另一个坑。C-PHY的时钟恢复依赖于跳变沿而跳变沿的抖动来源比D-PHY多——除了传统的电源噪声、串扰、ISI码间干扰还有三电平编码特有的“电平间串扰”。具体来说C-PHY的每根线有三个电平相邻symbol之间如果电平差不同跳变沿的传播延迟就不同——从高到中的跳变和从中到低的跳变由于接收端比较器的失调电压和带宽限制会产生不同的延迟。这种延迟差异就是“电平相关抖动”level-dependent jitter它会导致时钟恢复的PLL锁定裕量下降。我们实测过在2.5Gsps symbol rate下C-PHY的电平相关抖动可以达到0.15UI单位间隔而D-PHY在同样速率下的差分抖动只有0.05UI。这意味着C-PHY的时序预算更紧张——接收端的采样窗口更窄。为了收敛时序我们做了三件事第一在sensor端调整C-PHY的驱动强度从默认的6mA降到4mA减小过冲和振铃第二在平台端增加接收均衡RX equalizer补偿高频损耗第三最关键的是调整PLL的环路带宽——从默认的2MHz降到800kHz以滤除更多的抖动噪声。但环路带宽降低会延长锁定时间所以我们又加了快速锁定模式在开机初始化时用宽带宽快速锁定进入稳定状态后再切到窄带宽。这里有个经验值C-PHY的PLL环路带宽应该设置为symbol rate的1/2000到1/5000而D-PHY可以放宽到1/1000到1/2000。原因是C-PHY的抖动频谱更宽需要更窄的环路来抑制高频抖动但窄环路又会导致对低频漂移的跟踪变差——所以C-PHY的PLL设计比D-PHY更依赖VCO的相位噪声性能。我们对比过同样工艺的PLLC-PHY模式下的相位噪声要求比D-PHY模式低6dBc/Hz1MHz offset否则时序收敛不了。还有一个容易被忽略的点C-PHY的功耗比D-PHY高。因为三电平编码需要三个驱动电平驱动器的线性度要求更高静态功耗更大。我们实测过在同样的有效带宽下C-PHY 3-lane的功耗比D-PHY 4-lane高约20%。这在手机这种对功耗敏感的场景里是个不小的代价——尤其是前摄常开时C-PHY的功耗优势会被抵消。所以如果带宽需求不是特别高D-PHY 4-lane反而更划算。最后说说跨域迁移的经验。我们在车载环视项目里也用过C-PHY但车载的线缆长度和连接器质量比手机差得多C-PHY对连接器回损的敏感度更高——同样的连接器D-PHY能跑2.5GbpsC-PHY只能跑1.8Gsps。所以车载场景我们最终放弃了C-PHY回归D-PHY。这不是C-PHY不好而是它的物理层特性决定了它对信道质量的要求更苛刻。给各位同行的建议如果你在选型先算清楚有效带宽需求别只看理论峰值。C-PHY的理论带宽优势在短距离、高质量信道下才能兑现一旦走线超过10cm或者经过连接器优势就大打折扣。如果你已经在用C-PHY调试时优先查三线组的等长和参考平面连续性用TDR扫一遍比看眼图更直接。时序收敛时先调驱动强度再调均衡最后动PLL——顺序别反了否则你会陷入“调了均衡又得重调PLL”的循环。还有C-PHY的测试治具和D-PHY不通用别省那个钱买原厂的测试板否则你测出来的symbol error率全是治具的反射贡献的。
返回列表