☰
MIPI HS TX详解:从差分信号原理到FPGA实现与调试实战
2026/9/28 1:38:16 网站建设 项目流程

做嵌入式显示跟摄像头调试的老哥,对“MIPI HS TX”这几个字应该都不陌生。示波器一夹上去全是高速差分毛刺,屏幕不是黑着就是花着,查了半天可能根本不知道问题出在发送端还是接收端。我刚折腾MIPI DSI屏那会儿,对着ST7701S的数据手册反复翻,LP、HS、时序、lane这些词看着都认识,拼在一起就是跑不起来。

这篇就把MIPI HS TX拆开讲清楚:什么是HS模式、TX驱动器的电气要求、数据传输的时序流程、在FPGA里怎么实现,以及我实际调试中踩过的坑。不管你是点MIPI屏、接MIPI摄像头,还是正在用FPGA做视频接口方案,这篇文章都值得看完再动手。

1. 先搞清楚HS模式到底在传什么

1.1 MIPI D-PHY的双模式设计

MIPI是移动端非常常见的接口标准,用于处理器与显示屏、摄像头之间的通信。物理层D-PHY设计了两种工作模式:LP(Low Power,低功耗)模式和HS(High Speed,高速)模式。

LP模式下的信号是单端信号,摆幅通常在1.2V左右,速率很低,一般十几Mbps封顶。它不承担大数据传输任务,职责是做状态握手、进入/退出高速模式的信号协商、以及总线反转(BTA)等控制操作。

HS模式才是真正干重活儿的。工作在HS模式时,信号以差分形式传输,摆幅仅仅200mV左右,速率达到Mbps甚至Gbps级别。我们平时说的“调MIPI屏”“接MIPI摄像头”,真正跑的都是HS模式的差分高速信号。

所以HS TX的含义就很清晰了:高速发送端,负责把传输数据转换成符合D-PHY规范的高速差分信号发出去。这个环节如果搞不定,后端的显示屏、摄像头模组全都得抓瞎。

1.2 HS TX在一条完整链路里的角色

任何一条MIPI物理链路都有发送端和接收端。对于MIPI DSI接口的显示屏,主控芯片(SoC或者FPGA)就是发送端,屏幕那颗LCD驱动IC(比如ST7701S)是接收端。对于MIPI CSI-2摄像头,图像传感器是发送端,主控是接收端。

无论哪个方向,发送端比接收端更让人头疼,因为HS TX是信号源头。源头的摆幅不对、时序不对、阻抗不匹配,接收端再怎么补救也很难还原出干净数据。

DSI和CSI-2在协议层差别很大,但在物理层,HS TX的电气特性是同一套规矩。也就是说,掌握HS TX的调试方法,显示和摄像头两条线都能通吃。

1.3 影响范围比想象中大得多

MIPI HS TX不光是手机平板的专利。现在很多工业设备、医疗仪器、车载信息终端都改用MIPI接口的屏幕和摄像头模块,尤其是小封装、低功耗的嵌入式主板,MIPI接口几乎是标配。以前用DVP并口摄像头的方案,早晚也会被MIPI CSI-2取代,因为DVP的PCLK钟频有限,跑高分辨率高帧率非常吃力。

谁能稳定调好MIPI HS TX信号,谁的方案落地速度就更快。这不仅仅是“会接几根线”的活儿,背后牵涉到协议标准、模拟电路、PCB设计、FPGA逻辑开发等多方面的综合能力。

2. HS TX的电气核心:为什么只有200mV还能稳

2.1 低摆幅差分信号的优势

很多人第一次看到MIPI HS信号的摆幅都会犯嘀咕:才200mV,干扰一下不就没了?但恰恰是这种“小信号”设计,让MIPI能在高带宽下保持低功耗。

举个例子,用100Ω差分负载做端接,200mV差分摆幅对应的电流只需要大约2mA。相比之下,LVDS虽然是差分信号,但摆幅一般在350mV左右,功耗相对高一些;传统的TTL单端信号摆幅更大,功耗和EMI都很感人。

低摆幅还有一个好处,就是信号的上升沿和下降沿可以做得很陡,有利于在极高传输速率下保证每个bit的建立时间。你再对比一下LVDS那套固定的时钟/数据关系,MIPI的协议控制和时序可配置性显然灵活得多。

2.2 HS TX的关键电气参数

做调试或设计时,几个电气指标必须盯住:

  • 差分输出电压(VOD):典型值约200mV,可在一个范围内调整(常见约100mV到300mV),通过PHY芯片或SoC内部寄存器配置。
  • 输出共模电压(VCMTX):典型值约200mV,决定了信号相对地的直流电平位置。
  • 输出阻抗:差分阻抗必须匹配100Ω,目的是保证信号反射尽可能小。
  • 上升/下降时间:通常要求控制在0.3到0.6个UI(Unit Interval,一个bit的时间)以内,可编程的压摆率(slew rate)用来适配不同速率。

这几个参数相互制约。摆幅调大一点,抗干扰能力会强一些,但功耗和EMI也会上升,还可能超出接收端的输入范围。输出阻抗不匹配,走线一长就会反射,眼图质量急转直下,花屏、闪屏就都来了。

2.3 TX驱动器的内部结构像什么

从电路角度理解,HS TX驱动器就是一个可控恒流源加一对差分开关管。恒流源控制电流大小,差分开关管决定电流流向,在负载电阻上形成对应的差分电压。

这就好比水管系统:水压决定水流上限,阀门控制流量,管径决定水流阻力。MIPI规范对管道直径(阻抗)和流量(驱动电流)都有要求,阀门(驱动管的开关速度)还要快到不影响水流的节奏。

很多独立PHY芯片内部还带阻抗校准电路,通过外接一颗精密电阻自动校准输出阻抗,抵消温度和生产差异。如果你是直接用SoC的MIPI接口,这部分不需要额外操心;如果是自己做驱动板,就要留意校准引脚有没有正确接电阻。

2.4 PCB上那些看不见的坑

MIPI HS信号质量很大程度取决于PCB布局布线。我见过不少明明HS TX配置没问题,但屏就是闪烁的案例,最后查出来是PCB走线阻抗严重不匹配。

HS差分对的单端阻抗约50Ω,差分阻抗约100Ω,多层板必须有完整参考平面。网上总有人说MIPI“同层挖空”来减少电容,但对低速数字电路可能有点作用,对MIPI HS这种高速信号来说,挖空参考平面会导致阻抗突变和回流路径变长,带来共模噪声,得不偿失。

正确的做法是:差分对走线下方保留完整的地平面,差分对之间等长,线间距和线宽跟着叠层计算好,过孔和连接器位置补地过孔。MIPI建议高速信号路径尽可能短,任何过孔、换层、连接器都要验证阻抗连续性,否则信号在到达接收端之前就已经残了。

3. HS发送不是一个bit流硬怼:时序流程拆解

3.1 HS传输不是持续的,是突发模式

MIPI HS信号不是像LVDS那样一直连续跑,而是“突发式”传输。平时总线停在LP状态,需要传输数据时,发送端先做一系列状态切换,然后进入高速模式发一包数据,发完再退出到LP状态等下一次。

这个过程可以粗略描述为:

  • 总线处于LP-11状态(空闲)
  • TX发出HS进入序列,两条线先切到LP-01,再切到LP-00
  • 差分驱动器接管总线,进入HS-0初始状态
  • 经过一段稳定时间后,HS时钟开始翻转,数据线开始输出并行的数据包
  • 数据发完,发送端送出任意的EOT(End of Transmission)结尾信号,再退出HS回到LP状态

这就像你开车经过收费站:先减速停一下(LP-11),打转向灯确认要走(LP-01/00),踩油门进入高速(HS模式),开了几公里下高速(EOT),再回到地面道路(LP)。

3.2 时钟lane与数据lane如何配合

MIPI D-PHY有一条差分时钟lane和一条或多条差分数据lane。数据lane上的信号与时钟lane是源同步关系,接收端靠时钟lane的边沿来采样数据lane上的电平。

HS模式下,时钟lane和数据lane都用DDR方式:数据在时钟的上升沿和下降沿都会被采样。一条lane可以跑1Gbps甚至更高,意味着时钟频率大约是数据速率的一半。

想象一下:一个8bit像素并行数据,若按1Gbps的lane速率传输,串行bit率是1Gbps,对应的位时间UI就是1ns,数据lane上的每个bit只占1ns。在这个时间里,接收端要完成采样、解码、对齐、转并行的全部动作。所以HS TX发送端的时序精度要求极高,任何毛刺和抖动都可能让接收端采到错误的bit值。

3.3 关键的时序参数一看就懂

HS TX的跳变不是瞬间完成的。从LP切到HS,或者从HS退到LP,规范定义了一系列时序窗口,统称“HS Entry/Exit”相关参数。

常用到的几个典型参考值:

  • T_HS_PREPARE:进入HS前驱动器的准备时间,约40ns+4UI
  • T_HS_ZERO:HS-0初始状态保持时间,约90ns+4UI
  • T_HS_TRAIL:HS突发结束后信号的拖尾时间,约60ns+4UI
  • T_HS_EXIT:退出HS到LP状态的最短时间,通常≥100ns

这些数值并不是哪个厂商瞎写的,D-PHY物理层标准对它们做了严格约束。关键是你拿到一颗PHY芯片或SoC时,直接查对应数据手册的PHY参数表,不要照搬别的平台数字。不同工艺、不同速率的芯片,这些时间会有差异。

4. 用FPGA实现HS TX:三条路帮你避坑

4.1 通用FPGA的IO口直接怼HS输出?想都别想

很多人看到FPGA的LVDS差分IO就觉得能输出MIPI信号,其实是一个大误区。MIPI HS的共模电压大约200mV,差分摆幅大约200mV;而常用FPGA的LVDS_25标准输出共模和摆幅都远高于这个数值。直接把FPGA差分IO接MIPI屏,电平根本不匹配,轻则花屏,重则损伤屏模组。

所以FPGA做MIPI HS TX,通常有三条现实可行的路子。

4.2 方案A:FPGA只做应用层,物理层交给桥接芯片

这是最省心、也是工业产品中很常见的办法。FPGA负责生成标准的并行RGB数据格式(比如RGB888 + DE + HSYNC + VSYNC),通过一块并口转MIPI DSI的桥接芯片,把并行信号打包成MIPI协议再输出给屏幕。摄像头方向则用MIPI CSI-2解串芯片,先把Sensor的高速串行信号转成并行格式再接FPGA。

这种方案的好处是把复杂的D-PHY物理层时序完全交给成熟芯片处理,你还不用管那些麻烦的HS Entry/Exit时序参数,开发周期可以压缩到很短的范围内。缺点是成本会多一些,桥接芯片会占用板卡面积,而且桥接芯片本身也有参数配置需要摸透。

4.3 方案B:FPGA芯片自带D-PHY硬核

近年不少FPGA/SoC芯片把MIPI D-PHY硬核集成进去了,比如Xilinx某些器件可以通过IP核配置出MIPI D-PHY物理层,国产紫光同创等品牌也在各自的高端型号里提供MIPI相关IP或接口原语。

这种方案下,数字逻辑和物理层在同一个芯片内部,省掉了桥接芯片。但要注意:不同厂商的IP核用法差异很大,原语名称、时钟约束、校准流程全都不一样。想用好,必须先啃透对应PHY IP的用户手册,再严格跑一遍官方的例程和仿真环境。

而且这类硬核一般只能支持特定的lane数和速率上限,立项之前就要把屏幕型号和摄像头模组的带宽需求算清楚,不然中途发现带不动就麻烦了。

4.4 方案C:“土办法”电阻分压调幅,只适合实验室验证

我还真见过一种投机取巧的方法,利用FPGA的LVDS输出,在靠近引脚位置加一套电阻分压网络把差分幅度压到约200mV,再用交流耦合电容隔直,外加偏置电路把共模拉到200mV附近。只要PCB走线非常短,接收端的灵敏度也足够好,调试期间确实能点亮MIPI屏。

但这种方案在阻抗匹配上先天不足,频率一高信号反射就很严重,量产设计千万不要这么干。它只适合你临时想验证逻辑、手头又没有桥接芯片时的权宜之计。

4.5 动手前的选型建议

如果是做产品,优先方案A,桥接芯片带来的那一两美元成本远低于你花一两个月调物理层的时间成本。

如果是做平台预研或者FPGA对拍验证,可以用方案B,选一颗带MIPI硬核的FPGA,老老实实按IP手册走。

如果只是快速看一个屏幕能不能出图像,直接买现成的MIPI转接板和RGB转MIPI小板,先把点亮流程跑通再说。

5. 调试实录:为什么屏还是点不亮、花屏、闪屏

5.1 测HS信号别用普通探头瞎夹

我第一次测MIPI波形时拿普通无源探头加了个长地线夹,示波器上全是一堆乱七八糟的振铃,还以为信号废了。后面换成差分探头或者两根等长的SMA线做差分运算,波形马上就正常了。HS信号本身摆幅就小,测量工具引入的噪声可能都比信号还大,所以测量手段错了等于白测。

正确的做法是优先差分探头,带宽至少1GHz以上,示波器的采样率也要足够高。触发方式最好是协议触发或根据LP进入HS的跳变沿来触发,这样能稳定抓到HS突发包。

5.2 屏幕完全没信号,按这个顺序查

屏没信号的原因很杂,但排查顺序基本是固定的:

  • 先查电源和复位:屏的VCC、IOVCC有没有起来,复位引脚有没有按要求释放
  • 再查背光控制:背光没调对会误判成“无信号”
  • 确认I2C配置有没有写进去:用示波器或者逻辑分析仪观察I2C总线,看看初始化序列有没有真正发出去
  • 检查LP-11空闲态:示波器看数据线,正常应在LP-11,如果一直是LP-00或某条线被拉死,链路状态就不对
  • 确认时钟通道:进入HS后时钟lane有没有差分时钟翻转,如果没有,大概率是SoC/FPGA侧没有正确开启HS输出

ST7701S这类屏驱动IC有一个通病:初始化序列非常敏感,寄存器配置顺序错了或者漏了一段,屏就是黑屏。实际调试时,把你用的标准初始化数组原样保留一份,依次屏蔽部分配置,很快就能定位是哪一段配错了。

5.3 横向花屏和闪烁,先怀疑链路映射

花屏通常不是“信号一点没有”,而是数据错位或者时序不稳。横向花屏在我的经验里,很大概率是数据lane的映射或者lane极性反了。

MIPI DSI允许lnae的映射关系可调,屏幕驱动IC里有寄存器对lane mapping和lane polarity做配置。如果屏上显示的画面是横向撕裂的乱码,基本就是某个lane的极性反了导致的采样翻转。你可以在驱动IC的配置寄存器里把对应lane的极性选项改一下,通常能立竿见影。

还有一种情况是屏幕的刷新率和数据格式不匹配。比如屏本身支持RGB888,你发的是RGB666,像素采样错位,显示就会出现奇怪的色偏和条纹。这里要先确认屏幕驱动IC的像素格式寄存器,跟你的数据输出格式对上。

驱动电流不足也会引起花屏和闪烁。很多SoC或PHY芯片都提供输出电压摆幅配置,如果你发现在某一档驱动摆幅下花屏概率很高,抬高一点输出电流或者压摆率选项,信号容限会好很多。但注意不要一上来就调到最大,功耗和EMI会升高。

5.4 高速信号质量差的表现与排查

信号质量差往往会在屏上表现为规则闪烁或偶尔抽帧。用示波器看眼图可以发现:眼高不够、眼宽很窄、交叉点偏差明显。

这时重点检查三处:

  • TX驱动摆幅有没有压得太低,导致接收端判定困难
  • PCB走线阻抗有没有匹配到位,尤其查连接器和过孔这些阻抗不连续点
  • 时钟lane和数据lane之间有没有等长,skew过大会让采样窗口严重缩水

还有一个不起眼但很实用的小技巧:HS传输的同轴线缆连接件不能随便选,尽量用低损耗、阻抗匹配的微同轴,质量差的线缆会直接在信号链上制造反射。

最后分享一点实际经验

做MIPI HS TX调试,我现在的习惯永远是“先低速后高速,先点亮后优化”。拿到一个方案,先把I2C配置走通,确认屏的回读ID正常,再用最低速率把HS跑起来,之后逐步提速,每提高一档就看一次波形和画面。这样定位问题特别快,不会一上来就被一堆古怪现象搞得焦头烂额。

如果手头预算充裕,务必给团队的示波器配上差分探头,这个头不能省。最后再分享一个细节:很多屏的初始化序列是从一份“别人跑过的代码”里拷来的,但每个项目走线长度、阻抗、供电条件都不同,不要迷信“这个序列在我的板子上很好用”,拿到新板卡之后该复测就复测,该调延时序列就调,MIPI这东西一半靠规范,另一半靠实测。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询