1、SoT含义
SoT(Start of Transmission)指的是 MIPI 数据通道刚从 LP 阶段进入 HS 状态时,需要发送的同步序列。D-PHY 情况下为 00011101,共 8 个 bit;C-PHY 情况下为 3444443,共 7 个 symbol。
2、错误原理
SoT 序列识别错误主要有 ErrSotHS 和 ErrSotSyncHS 两类。大家可能不太理解为什么要区分这两类,且听我慢慢道来。
其中,ErrSotHS 指的是同步序列中有 bit(或 symbol)出错,但接收端仍能正常完成同步,此时就会报该错误。需要注意的是,一旦出现该错误,后续 payload 数据的可靠性就会降低。
而 ErrSotSyncHS 更加严重,指的是同步序列损坏到无法建立有效同步,此时就会报这个错误。
那么问题来了:即使 TX 发送的同步序列有错误,RX 为什么还能正常同步?具体是哪里容错了?
MIPI Spec 中规定,在 D-PHY 情况下,RX 只要识别到后 6 位 “011101”,就能完成同步——因为这个模式在正常编码数据中几乎不可能出现。
同样地,在 C-PHY 情况下,RX 只需识别到前 6 个 symbol “344444”,即使最后一个 symbol 不是 3,也能完成同步,只是会报一个 ErrSotHS 而已。
3、Debug手段
下面以 C-PHY 为例介绍 Debug 手段,D-PHY 的思路类似,就不多说了。笔者认为 C-PHY 是未来的趋势——用的线束更少,速率还更高,D-PHY 应该会逐渐被淘汰。
首先,如果手头有示波器或协议分析仪这类工具,强烈建议去测量 TX 发出的波形。测的时候记得把探头接在 RX 端的接收引脚上。SoT 序列非常好 Trigger,通过波形基本能排除 TX 端或板级的问题。虽然这种可能性很小——TX 一般不会犯这种低级功能性错误,而且我相信板级设计也都做过仿真。
如果波形上能清楚看到完整的同步序列,但依然报错,那问题很可能出在配置上。
TX 端的 T3_PREAMBLE 要注意,如果它不满足 RX 端的要求,也会引发同步问题。
RX 端的 T3_SETTLE 也必须按规范配置,配错了同样会导致该错误。
还有一个容易被忽略的点:RX 端的接收速率必须和 TX 端匹配。因为 C-PHY 是内嵌时钟,需要靠 CDR 恢复时钟,如果速率不匹配,即使波形看起来没问题,也可能导致 SoT 识别失败或误报错误。




