2. HS模式与LP模式:区别与应用场景

做MIPI DSI的人,绕不开两个核心概念——HS模式和LP模式。说白了,它们就是物理层上的两种“说话方式”:一个讲得快、声音低,一个讲得慢、声音大。我个人习惯把HS当成“高铁”,LP当成“出租车”——高铁跑得快但只能在专用轨道上跑,出租车灵活但慢。

2.1 先看基础定义

  • HS模式(高速模式):差分信号传输,电压摆幅约200 mV(典型值),数据速率可达80 Mbps~2.5 Gbps甚至更高。主要用于批量像素数据、视频流这类“大块头”数据。
  • LP模式(低功耗模式):单端信号传输,电压摆幅约1.2 V,数据速率通常只有10 Mbps左右。负责传递命令、配置寄存器、链路管理等“控制类”消息。

嗯,这里要注意:两种模式共用同一对差分线,通过特定的“线态序列”来切换。你想想看,一根线既要当差分又要当单端,设计上就得留个心眼。

2.2 核心区别对比

对比项HS 模式LP 模式
信号类型差分 (Dp/Dn)单端 (每线独立)
电压摆幅约 200 mV (典型)1.2 V (1.2V~1.3V)
数据速率几百 Mbps~数 Gbps≤ 10 Mbps
功耗较高(但单位比特功耗更低)极低
共模电平约 200 mV1.2 V (LP-1) / 0 V (LP-0)
应用场景像素数据、突发传输命令、同步、总线控制
抗噪性差(需差分对严格控制阻抗)较好(但受单端耦合影响)

我刚开始做DSI项目时,老觉得LP模式反正是低速,随便布布线就行。后来一测,LP命令偶尔传错,查发现是一条线的走线绕了太多弯,串扰把信号边缘搞坏了。从那以后,我对LP的时序要求也老老实实按规范来。

2.3 LP模式——低速,但别小看它

LP模式的信号电平是标准的CMOS电平。要注意的是,LP传输时用的是“非归零”编码,每一位持续的时间较长,所以毛刺和反射的影响更容易被系统捕捉到。MIPI规范里对LP的转换时间(\( t_{LPX} \))有明确要求,一般不低于50 ns。

我的经验:
调试一块AMOLED屏时,我发现发送“显示器关闭”命令后,屏有时不响应。查波形发现LP-0的持续时间刚好卡在50 ns边缘,因温度变化掉到48 ns就被接收端误判了。把时序余量拉到70 ns后问题消失。所以,不要偷LP的时序余量。

LP模式还有一个重要的角色:总线控制。比如Turnaround(转向)、Escape(逃逸)序列都必须在LP下完成。拿Escape序列来说,要发送LP-11→LP-10→LP-00→LP-01,然后保持LP-01状态,再发送具体命令。这个序列如果被干扰,轻则命令丢失,重则链路卡死。

避坑指南(我曾经的血泪教训):
我曾在量产前的EVT阶段,发现一批板子在低温(-10 °C)下偶尔出现“花屏”。追踪发现,是在HS burst结束后进入LP模式时,接收端的状态机被一个不到15 ns的毛刺触发,误进入了Escape状态。根本原因是PCB上LP走线的浪涌吸收太弱。加个小电容到地就解决了。

2.4 HS模式——高速,但代价是精细

HS模式使用差分信号,电压摆幅只有200 mV左右,差分阻抗要求100 Ω(±10%)。为什么用这么低的电压?两个好处:一是大幅度降低辐射,二是减小了电压摆幅带来的功耗。但低摆幅意味着抗干扰能力弱——外部噪声只要超过 ±100 mV就可能误判。所以HS走线必须远离其他高频信号,同时要做好阻抗控制。

另外,HS发送器是电流型驱动器,共模电平由内部电路维持,接收端的共模回扫必须控制在合理范围。我记得有一块板子,HS眼图在某个特定码型下闭合,查了半天发现是电源层谐振导致共模波动。最终在发送器电源引脚附近加了一颗4.7 μF的MLCC才解决。

2.5 模式切换流程

从LP进入HS,MIPI规定了一套严格的状态序列。我画了一张流程图,方便你对照理解:

HS/LP 模式切换状态流程 LP-11(空闲) LP-01 → LP-00 HS-0 (准备) HS-1 / HS-0 (数据传输) LP-11(回到空闲) 关键时序参数:tLPX(最小50 ns)、THS-PREPARE(40 ns+4×UI)、THS-TRAIL(最大100 ns) 虚线表示可选的快速返回路径(Escape)或异常恢复流程

流程解释:从LP-11空闲状态开始,发送器先驱动LP-01(大约1.2 V),然后变成LP-00(拉低到0 V),再驱动到HS-0(差分对共模200 mV左右),之后就可以在HS-0和HS-1之间切换。传输结束后,发送器先回到HS-0,然后经过一个称为“HS-TRAIL”的区间,最后释放线成LP-11。

核心要点:
HS和LP的切换完全是“线态驱动”的,没有独立的时钟线。接收端通过检测线状态的变化来同步自己的状态机。所以线态转换的时间精度非常关键——太短会被误判,太长浪费功耗。

在我自己的测试中,最容易踩的坑是LP-00持续时长(tLPX)和HS-TRAIL时序。有一次我为了压走线长度,把LP-00的宽度设到了45 ns,结果温漂后降到38 ns,接收端直接不认。改到55 ns后稳如老狗。

2.6 说一下应用场景的最优选择

很多新手问:为什么不能全用HS?毕竟它快啊。原因很简单:

  • HS模式需要持续偏置电流,即使不发数据,也要消耗几mA。长期开启会浪费大量功耗。
  • HS模式对EMI更敏感,整个链路要保持差分传输,不能随便换向。
  • 而LP模式可以在不传数据时让总线进入“接近关断”的状态(LP-11),此时几乎不耗电。

所以真实场景里,会在以下情况灵活切换:

  • 发送一帧视频数据时 → HS模式
  • 传输完一行数据后的一小段消隐期 → LP模式(休眠或传命令)
  • 配置显示参数、读回状态 → LP模式(避免高频干扰)
  • 进入睡眠模式 → LP模式下发送“进入超低功耗”指令

你想想看,如果一整帧都用HS模式,很多空余行消隐时间就浪费了。相反,利用LP模式在消隐期传命令或降低功耗,能显著降低整体功耗(尤其在手机这类设备上,差个几十mW都很关键)。

我的习惯:
在实际项目中,我通常会预留一个寄存器位,让驱动决定在消隐期是否允许进入LP模式。默认开启,但遇到某些挑剔的TDDI(触控显示集成)方案时,关闭LP模式可以避免触控采样和显示驱动的时序冲突。

2.7 小结一下我踩过的坑

最后放几条实实在在的经验:

  1. LP模式拉低不要太短:tLPX至少留够50 ns,最好设70 ns以上,给温度工艺留余量。
  2. HS进入前保证共模建立:LP→HS切换时,共模电平不能跳变太大,否则接收器内部电压比较器会误翻转。
  3. HS-TRAIL不能省:发送完最后一个bit后,必须保持HS-0一段时间(规范要求≥60 ns + 4×UI)。我曾见过有人砍这个时间,结果导致接收端在差分转单端时产生毛刺,引发下一帧的同步错误。
  4. LP模式的噪声不容忽视:因为LP是单端,相邻线的开关会通过串扰影响LP信号。当LP用于命令传输时,建议尽量在LP线旁边放地线隔离。

记住,HS和LP就像一对好搭档:一个干活快但娇贵,一个省电但效率低。只有把它们的切换节奏磨合好,你的DSI链路才能又稳又省。