这块屏幕忽然花屏,或者摄像头数据流偶尔断层,查驱动查日志查了几天都没头绪,最后把示波器探头戳到MIPI差分线上,才发现是HS模式和LP模式切换的时序根本没达标。MIPI D-PHY的波形就是这样,平时看着好好的,一旦切换时序出问题,上层表现就是各种玄学故障。这篇文章我就拿一次实际抓波形的过程,手把手带你读懂HS模式和LP模式的切换时序,顺便把示波器怎么设置、触发怎么调、参数怎么量这些实操细节全部过一遍。适合正在调MIPI显示或摄像头驱动的嵌入式工程师、做硬件测试想验证PHY时序的测试工程师,以及单纯想搞懂D-PHY协议而不仅停留在看手册的开发者。
1. 抓波形之前,先看懂D-PHY到底在传输什么
1.1 LP模式和HS模式不是“快慢档”,是两套完全独立的收发器
第一次看MIPI D-PHY手册的人,很容易把HS和LP理解成“高速档”和“低速档”,仿佛只是速度不同。实际上这两套模式背后是两套物理上独立的发射机和接收机,共用一对物理引脚Dp/Dn,但电气特性完全不一样。
LP模式是单端信号,以地作为参考,电压范围大致在0到1.2V之间,发射端用的是推挽输出,接收端就是普通的单端接收器加迟滞比较。它的作用主要是传控制状态、帧同步信息、低功耗指令,以及最关键的——在进入HS高速突发之前完成总线状态握手。LP模式本身跑不快,它的意义在于“可靠地表达状态”,因为Dp/Dn两根线各有高和低两种电平,组合起来可以表达四种总线状态:LP-00、LP-01、LP-10、LP-11。
HS模式则是真正的数据传输模式,发射端是高速电流驱动差分对,接收端是差分放大器。HS模式下Dp和Dn的绝对电压都在大概100mV到300mV之间浮动,共模电压约200mV,差分摆幅只有约200mV。也就是说,单独看任何一根线的单端波形,幅度都很小,必须用差分测量方式才能清楚地看到HS信号全貌。这也是很多人第一次用示波器抓MIPI时候最懵的地方:怎么HS段波形幅度这么小,和LP段动辄1.2V的电平完全不同。
理解了这一点,你才能明白为什么示波器设置上要对HS和LP区别对待:LP段的1.2V电平可以轻松触发,HS段的200mV差分信号却很容易被噪声淹没,探头的选择、接地方式、触发电平设置都得单独考虑。
1.2 从LP-11到HS突发的完整序列,像一次“握手”
D-PHY的HS和LP切换不是随便就能进行的,协议规定了一套严格的总线状态序列。这个序列在差分波形上看起来像一串脉冲,很多人抓下来一头雾水,其实就是没把状态机的每一步对应到电平上。
以数据通道(Data Lane)从LP模式进入HS模式为例,完整序列是这样的:
- 初始状态:总线处于Stop State,也就是LP-11,此时Dp和Dn都是高电平,都是1.2V。
- 第一步:Dp先拉低,Dn保持高,总线进入LP-01状态。这个状态也叫Mark-1,它存在的意义是让对端准备进入HS传输。
- 第二步:Dn跟着拉低,总线进入LP-00状态。这个状态是HS传输前的“预备区”,发射端在LP-00期间启动高速驱动器。
- 第三步:高速驱动器启动后,先输出一段HS-0,也就是差分负电平(Dn > Dp),持续一段时间,让接收端的差分放大器稳定工作。
- 第四步:接着发送SoT序列(Start of Transmission),这个8位同步序列的LSB-first形式是00011101,接收端靠它来同步时钟和数据。
- 第五步:然后才是真正的高速数据突发。
- 第六步:数据传输完后,发送EoT序列(End of Transmission),LSB-first形式是00001100,告诉接收端我要退出HS模式了。
- 第七步:驱动器关闭HS输出,Dn先拉高,Dp保持低,总线回到LP-01。
- 第八步:Dp也拉高,总线回到LP-11,重新进入Stop State。
很多人只看协议文字记不住,我建议你直接把这个序列写在示波器屏幕旁边:LP-11 → LP-01 → LP-00 → HS-0 → SoT → Data → EoT → HS-TRAIL → LP-01 → LP-11。然后对照波形一个个找,很快就熟了。
1.3 为什么HS/LP切换时序值得较真
HS/LP切换时序的价值在于,它是整个D-PHY物理层最容易出问题、也最容易排查的环节。
上层看到的“花屏”“条纹”“偶尔黑屏”往往对应HS数据传输中的bit错误,但很多bit错误并不是HS传输过程中产生的,而是在HS和LP切换的瞬间产生的。因为切换期间收发双方的驱动器状态在剧烈变化,如果某一阶段的持续时间不满足协议最小值,接收端可能还没准备好就收到数据,也可能在退出HS时把残留的驱动电平误判为一个“幽灵脉冲”。
另外,切换时序也直接决定功耗。LP模式下大多数电路处于低功耗状态,HS模式才是耗电大户。如果HS保持时间过长,或者频繁进出HS,功耗都会明显上升。在电池供电的设备里,这甚至会成为定位功耗问题的关键线索。
实测经验是:大部分PHY层时序异常,都和T-LPX、T-HS-PREPARE、T-HS-TRAIL这三个参数有关。下面的章节我会重点教你怎么量这几个参数。
2. 仪器准备:示波器、探头和触发条件该怎么选
2.1 带宽和采样率:按HS摆率倒推,别凭感觉
抓MIPI首先面对的问题就是示波器够不够用。坊间流传一句话:“示波器带宽至少是信号频率的5倍”,这句话在MIPI场景下不完全对。更好的办法是根据信号的上升沿来估算带宽需求,公式是:所需带宽 ≈ 0.35 / 信号上升时间。
MIPI D-PHY的HS信号摆率随工作模式不同有差异,但以常见的1Gbps传输速率为例,UI(单位间隔)是1ns,上升时间通常在150ps到300ps量级。代入公式,0.35除以0.2ns约等于1.75GHz,也就是说至少需要1.5GHz到2GHz带宽的示波器,才能比较真实地还原HS波形边缘。如果用的是500MHz示波器,看到的上升沿会明显变缓,差分幅度也会偏小,测T-HS-PREPARE这类本身就只有几十ns的时间参数误差会很大。
但也要说句公道话,如果你的目的不是做一致性测试,只是“看逻辑状态对不对、切换时序大致是否符合”,500MHz示波器也能用,只是你要知道边界:波形边缘是示波器带宽不够导致的失真,不是DUT的真实表现。
采样率方面,建议至少5GSa/s,有条件上10GSa/s。因为HS数据速率高,采样率不足会导致脉冲宽度测量不准,尤其是SoT和EoT这种只有几个UI宽的序列,采样率不够根本看不清细节。另外,存储深度必须匹配采样率和时间窗口,公式是:存储深度 = 采样率 × 时间窗口。比如你以10GSa/s采样率抓一段5ms的波形,就需要50Mpts的存储深度,入门示波器的标配存储深度往往只有几Mpts,这时你就需要在“长时基”和“高采样率”之间做取舍,我的做法是先抓短时间窗口确认切换时序,再放大时基找整体帧结构。
2.2 探头方案:差分探头首选,两路单端也能救急
探头的选择直接决定波形质量,这一点怎么强调都不为过。
最理想的是有源差分探头,比如带宽1.5GHz以上的型号,探头直接输出Dp-Dn的差分结果,看到的HS波形干净、幅度真实。缺点是贵,很多实验室不一定有。
退而求其次,用两根相同的无源探头,CH1接Dp、CH2接Dn,然后在示波器上做CH1-CH2数学运算,也能得到差分波形。这里有几个关键注意点:第一,两根探头的延迟和衰减特性必须一致,推荐同品牌同型号探头;第二,两路通道的垂直档位要设置完全一致,否则减法运算会有偏差;第三,探头地线要尽量短,各接就近的GND,避免形成大的地环路。
还有个细节,示波器探头通常有x1和x10两个档位。抓MIPI务必用x10档,因为x1档输入电容大得多(通常超过100pF),对高速信号是灾难性的负载,会明显改变被测信号的边沿。x10档输入电容通常只有约10pF,对MIPI这种高速信号影响相对小。很多新手忘了把探头拨到x10,抓出来的波形沿全是塌的,还以为是链路问题。
如果板上设计了SMA测试座,那是最好的情况,直接用SMA转SMA线缆连接到示波器,配合外部差分放大器或者直接双通道输入,效果比探头好不少。因为SMA线缆的阻抗精确可控,地回路也最短,信号完整性最好。
2.3 示波器通道和解码功能的基础设置
在抓波形之前,示波器的基础配置要按这个思路来做:
第一,如果你用的是双通道单端探头做减法,先确保两个通道的垂直档位一致、探头衰减比一致,然后在Math菜单里设置CH1-CH2,并把数学通道的垂直档位调到和原通道相近。如果你用的是差分探头,直接把输出接到示波器一个通道即可,此时档位要按差分探头的衰减比例设置。
第二,时基设置不要一来就放得很大。MIPI HS突发通常只有微秒到毫秒量级,我建议先把时基放在50μs/div左右,找到整个帧的大致位置,然后逐步缩小到500ns/div甚至100ns/div去观察HS/LP切换细节。
第三,存储深度要手动确认。很多示波器默认的存储深度只有几十KB,长时基下采样率会被压得很低。你需要手动把存储深度调到最大,同时观察采样率指示,确保在你要抓的时间窗口里采样率不低于5GSa/s。
第四,如果示波器带MIPI D-PHY协议解码功能,可以在解码菜单里打开它。解码后示波器会自动标注LP状态、SoT、EoT、数据包内容,甚至直接显示T-LPX等时间参数,省去手动测量的功夫。不过第一次学习的人,我还是建议先关掉解码,手动分析一遍波形,建立直觉。解码功能适合量产验证阶段快速判断对错。
这里多说一句,示波器上有时候你会按到一些奇怪的显示模式,比如X-Y模式,屏幕会出现利萨茹图形,很多人俗称“李莎莎”。这玩意在比较两路正弦信号相位差时有奇效,但抓MIPI时序时一定要回到Y-T模式,否则看到的就是一团乱麻。
2.4 触发是抓取D-PHY波形的关键
MIPI波形不是连续的,HS突发是一阵一阵的,如果你直接用边沿触发,很可能抓到的全是LP段的1.2V电平翻转,根本看不到HS突发。所以触发方式的选择,直接决定了你能不能抓到想要的切换瞬间。
我的推荐做法是:用单通道的边沿触发,触发源选择Dp对应的通道,触发边沿选择下降沿,触发电平设置在约0.7V到0.8V之间。这样做的好处是,它会捕捉LP-11(1.2V)向LP-01或LP-00切换的下降沿,而这个下降沿正是进入HS流程的起点。触发后,调整时基和水平位置,你就能看到完整的LP→HS→LP序列。
如果你所在的团队有条件,用逻辑分析仪的MSO模式更好,把Dp和Dn作为两个逻辑通道,设置组合条件触发,比如“Dp为低、Dn为低”即LP-00状态触发,直接命中HS预备区。这种方式最精准,但不是所有示波器都支持。
还有个实用技巧:如果不确定HS突发什么时候出现,可以把示波器设为“毛刺触发”(Glitch Trigger)或“脉宽触发”,触发条件设置为抓取一个宽度异常窄的负脉冲。因为LP段的电平翻转通常比较宽,HS突发前的LP-00持续时间和HS脉冲宽度本质上是不同的,利用脉宽区分就能锁定到HS切换瞬间。
在实际调试中,我经常遇到的情况是:触发条件已经设为Dp下降沿,触发电平也调好了,但按单次触发后示波器还是抓不到HS。这时十有八九是触发电平设得太低,落在了LP噪声区间,或者时基设置太大,HS突发在屏幕上只占了一小条,肉眼没注意到。把时基缩小到μs级再触一次,往往就成了。
3. 手把手实操:把一次HS/LP切换完整抓下来
3.1 找测试点与接线,先把地线处理干净
实际操作从找测试点开始。MIPI测试点通常在板上有两种形式:一是做了SMA测试座,二是只引出了裸焊盘或过孔。SMA座直接接SMA线缆到示波器即可,裸焊盘的话需要手工焊接短线。
如果没有SMA测试座,我推荐用探头带一个短弹簧地针,直接点在Dp和Dn的焊盘上,地针戳在最近的GND过孔上。注意地线越短越好,地线越长,地电感越大,高频时就越容易产生振铃,这会直接污染你看到的HS波形。
接线顺序上,先接好地,再接信号。如果是双通道单端探头方案,先把CH1探头和CH2探头的地分别接到GND,然后探头尖分别点Dp和Dn。连接时小心不要短路相邻引脚,MIPI的焊盘间距通常很小,探头一滑就可能碰相邻信号,造成瞬间短路,严重时会损坏传感器或主控的PHY。
接线完成后,先在模拟通道上看到稳定的LP方波,再考虑触发。如果你看到的波形不是1.2V左右幅度的方波,说明测试点不对或者探头接触不良,先解决这个问题再继续。
3.2 用单次触发锁定LP进入HS的瞬间
接线完成后,示波器设置如下:时基50μs/div,触发模式切换到Normal,触发源选Dp对应的通道,触发边沿选下降沿,触发电平设为0.7V左右。存储深度设到最大,然后按Single单次触发。
正常情况下,你会看到屏幕捕捉到一段波形,放大后能看清完整的LP-11→LP-01→LP-00→HS的过程。如果触发后屏幕上的波形仍然全是高低电平的LP波形,没有HS段,说明触发的时机不对,或者被测通道本来就没有HS突发。
这时要检查两件事:第一,确认被测的MIPI链路确实有数据传输,比如屏幕正在刷新或者摄像头正在出流。第二,检查触发电平。如果触发电平设得太高(比如1.0V),你会一直触发LP-11到LP-10的边沿;设得太低(比如0.3V),会触发到HS段的低摆幅边沿。0.7V到0.8V是一个经验区间,正好落在LP高电平1.2V和LP低电平0V中间偏上一点,既能覆盖Dp从高到低的切换,又不容易被HS噪声误触发。
如果你需要的是“从HS退出回到LP”的波形,就把触发边沿改成上升沿,因为HS退出后Dn会从低拉高,Dp也会跟着拉高,这个过程同样能触发。
3.3 从波形上分清LP态和HS态
抓到波形后,第一件事是学会在屏幕上区分HS和LP。这里需要同时看单端波形和差分波形。
以单端波形为例,Dp和Dn的电平特征是:
- LP-11:Dp和Dn都是高电平(约1.2V)
- LP-01:Dp低、Dn高
- LP-00:Dp和Dn都低
- LP-10:Dp高、Dn低
- HS模式:Dp和Dn都在接近0V的低压区小幅波动,单端看是共模约200mV、幅度约±100mV的微弱信号
如果你用的是差分探头或做了CH1-CH2数学运算,差分波形特征更明显:
- LP-11:差分电压约0V(1.2V减1.2V)
- LP-01:差分电压约-1.2V(Dp减Dn,0V减1.2V)
- LP-00:差分电压约0V
- LP-10:差分电压约+1.2V
- HS模式:差分电压是约±200mV的快速振荡
这里有个容易误解的点:LP-11和LP-00在差分波形上都表现为0V附近,光看差分波形区分不了这两者,必须同时看单端波形或者看上下文的逻辑状态。所以实际操作中我建议屏幕同时显示Dp、Dn两路单端波形和差分Math波形,既能看到绝对电平,又能看到差分幅度,判断起来最从容。
HS模式的识别还有一个特征:它的切换频率非常高,在时基放到100ns/div时,你能看到一串密集的方波或正弦波样信号,紧跟在LP-00之后,后面又紧跟着LP-01和LP-11。这种“低电平区(LP-01)→地电平区(LP-00)→密集高频区(HS)→低电平区(LP-01)→高电平区(LP-11)”的波形轮廓,就是一次典型的HS突发。
| 总线状态 | Dp电平 | Dn电平 | 差分电压(Dp-Dn) | 典型用途 |
|---|---|---|---|---|
| LP-11 | 高(1.2V) | 高(1.2V) | 0V | Stop State,总线空闲 |
| LP-01 | 低(0V) | 高(1.2V) | -1.2V | HS进入预备,Mark-1 |
| LP-00 | 低(0V) | 低(0V) | 0V | HS建立准备 |
| LP-10 | 高(1.2V) | 低(0V) | +1.2V | 反向控制脉冲 |
| HS | ~200mV共模±100mV | ~200mV共模±100mV | ±200mV振荡 | 高速数据传输 |
3.4 用视图缩放和游标量化关键时序
看清HS/LP切换的波形轮廓后,下一步就是量化。把时基缩小到100ns/div量级,然后配合水平缩放功能(很多示波器有Zoom窗口),把关注的切换沿放到屏幕上。
建议打开两个光标:X1光标放在LP-01刚开始的位置(Dp下降沿处),X2光标放在HS-SoT序列开始的位置(第一个HS差分脉冲处),它们之间的时间间隔就是与T-HS-PREPARE相关的区间。实际测量时,你要结合协议参数来分段读取,而不是一次量完。
游标测量的精度受采样率影响很大,在100ns/div时基档位下要特别注意观察示波器右上角的采样率指示。如果采样率掉到了1GSa/s以下,测量的时间分辨率只能到1ns,对于几十ns的T-LPX来说误差尚可接受,对于几个ns的T-HS-EXIT来说误差就太大了。必要时把存储深度调大或者把时基缩小,提升采样率。
我自己的习惯是:先抓一帧长时基波形(比如5ms),看清HS突发的位置和频率,再用Zoom逐个放大HS突发,逐段测量切换时序。用屏幕上的A/B标记把测量点标记清楚,这样即使波形滚动了,也能对着标记读数。
4. 从示波器波形反推时序参数,判断是否合规
4.1 逐段测量T-LPX、T-HS-PREPARE、T-HS-ZERO、T-HS-TRAIL
MIPI D-PHY v1.2规范中最常需要验证的切换时序参数,我整理了一张速查表。注意不同版本的MIPI规范参数略有差异,实际以你使用的IP版本或芯片手册为准。
| 参数 | 含义 | 规范最小值(以1Gbps为例) | 示波器上怎么量 |
|---|---|---|---|
| T-LPX | LP-00/01/10/11任一状态的保持时间 | 50ns | 量LP-01状态下Dp保持低的时间 |
| T-HS-PREPARE | LP-00开始到HS驱动启动的准备时间 | 40ns + 4×UI | 量LP-00开始后到HS-0出现的间隔 |
| T-HS-ZERO | HS-0保持时间 | 145ns + 10×UI | 量HS-0差分负电平持续时间 |
| T-HS-TRAIL | HS退出到LP的时间 | 60ns + 4×UI到145ns + 10×UI | 量最后一个HS差分脉冲结束到LP-01出现的间隔 |
| T-HS-EXIT | HS驱动关闭前LP-11保持时间 | 100ns | 量HS突发结束后LP-11高电平持续时间 |
| T-HS-SETTLE | HS接收器建立时间 | 85ns + 6×UI | HS-0结束后到SoT开始前的间隙 |
UI是单位间隔,等于1除以HS数据速率。1Gbps时1个UI就是1ns。所以T-HS-PREPARE的最小值在1Gbps时大约是44ns,T-HS-ZERO最小约155ns,T-HS-TRAIL最小约64ns。这些数值你要有个概念,因为在示波器上量到的时间如果明显小于这些值,基本可以判定时序违规。
以T-HS-PREPARE为例,实际操作时,你需要把水平时基放到20ns/div甚至10ns/div,确保采样率足够高。把光标X1放在LP-00的开始点(即Dn从高变低的瞬间),光标X2放在HS-0的差分下降沿上(即第一个HS脉冲的起始沿),读数就是T-HS-PREPARE。一个典型合规的设计在1Gbps下量出来应该在50ns到100ns之间。
4.2 用差分波形确认SoT和EoT
除了测量时间参数,还要会识别数据包本身的边界。SoT序列00011101在差分波形上表现为8个bit,你可以对着数据手册逐bit核对。实际上不需要真的去数每一个bit,一个更简单的办法是看波形轮廓:SoT之前是长时间的HS-0,SoT开始后差分波形变成稳定的高频振荡,这个振幅从“恒定低”突然变成“大幅度振荡”的转折点,就是SoT的开始位置。
EoT序列00001100出现在数据突发的末尾,它的特征是差分波形从“大幅度振荡”突然收窄成一小段乱跳,然后结束。从最后一个数据bit结束到总线完全回到LP-01,中间的过渡时间就是T-HS-TRAIL。
如果你用的是带MIPI解码功能的示波器,屏幕上会直接标出SoT和EoT的位置,还经常附带显示“SoT good”或者“EoT error”的提示,肉眼核对会轻松很多。
4.3 啥样的波形算“合规但难看”
测量过程中你会遇到一种情况:测出来的所有时间参数都满足规范最小值,但波形形态很难看,比如HS差分幅度只有150mV、边缘有明显过冲、LP-00之后有毛刺。这种“合规但难看”的波形通常不代表协议违规,而是意味着信号完整性余量不足。
余量不足在高低温、电压波动、走线串扰等因素叠加时,就可能变成真正的时序违规。我的建议是,对这类波形要做记录和对比:同一台设备测多次,同一批次多测几台,看看参数是否有明显漂移。如果一个参数从平均值偏离超过20%,就要警惕了。
另外,不同SoC的PHY实现差异很大,有些厂的D-PHY发出的T-HS-PREPARE就是卡在最小值附近,依然能正常工作。这时候别急着判死,先看接收端是否报错,比如显示控制器的错误中断寄存器、CRC错误计数等。协议合规是目标,但系统稳定运行才是最终标准。
5. 常见问题与排查技巧实录
5.1 老是触发在LP段,看不见HS突发,怎么办
这个问题我在调试中遇到过很多次,排查思路按顺序来:
第一,确认被测链路真的有HS传输。最简单的办法是在系统正常运行(屏幕在刷图或者摄像头在出流)时,把时基放到10ms/div用滚动模式观察,看看有没有周期性的突发信号。如果完全没有,那就是链路压根没进入HS,属于上层配置问题,不是示波器的问题。
第二,检查触发设置。我之前踩过的一个坑是触发电平设在了0.3V,结果每次触发的都是HS差分信号自身的翻转沿,抓到的全是HS段内部波形,看不出和LP的切换关系。把触发电平提高到0.7V到0.8V后,才稳定地触发到了LP-11到LP-01的下降沿。
第三,利用脉宽触发。如果HS突发间隔很长,比如一帧图像才发一次,你可以用脉宽触发去抓LP状态中那些特定宽度的脉冲,从而把时间起点锁定在HS突发附近。具体操作方式因示波器型号而异,但核心思路是一样的:用脉宽条件过滤掉无关翻转。
5.2 HS差分幅度偏小、边缘发圆,是探头还是链路的锅
这个问题的答案通常要靠控制变量法去验证。
如果你用的是无源探头双通道减法方案,首先要怀疑探头负载效应。无源探头x10档的输入电容大约10pF,对1GHz以上的信号已经是明显的容性负载,会让被测点的高频分量衰减,表现为幅度变小、边缘变圆。你可以换带宽更高的有源差分探头对比一下,如果波形明显变“锐”了,那就是探头带宽不够,不是链路问题。
如果换了差分探头之后波形还是发圆,再看是不是测试点本身的信号就这么差。可以把探头点到靠近源端的位置对比,比如主控PHY输出端和连接器输入端,如果源端波形正常、远端就发圆,那就是PCB走线阻抗不连续或者接收端负载过重导致的。
还有一个容易被忽略的因素:接地点。探头的接地线如果太长,会带来额外的地回路电感,和探头电容形成谐振,实测中表现为波形上升沿振铃、幅度下降。处理方法就是尽量缩短接地线,有条件时用探头自带的短弹簧地针。
5.3 波形毛刺多、触发抖动,怎么处理
毛刺和触发抖动是两回事,需要分别处理。触发抖动通常是触发电平设置在了波形边沿斜率比较平缓的区域,幅度噪声会引起触发时间的微小变化。解决办法是把触发电平往靠近电平中心的陡峭沿区域移,或者开启示波器的触发高频滤波(HF Reject)功能,滤掉高频噪声对触发的干扰。
毛刺则要看毛刺出现在什么位置。如果出现在LP段的电平中间,很可能是地环路拾取的共模噪声,处理方法是优化接地,或者用差分测量方式天然抑制共模。如果毛刺出现在HS段的边沿上,多半是阻抗失配引起的反射,这时候别在示波器端纠结,应该回到PCB设计端去检查走线阻抗和端接。
我遇到过一次特别坑的情况:波形在LP-11的高电平上有一个明显的突起,持续几百纳秒,排查了很久发现是电源轨上的纹波耦合进了MIPI信号,板子上给传感器供电的LDO在HS突发时会拉出瞬时大电流,导致地平面抖动。这个问题的本质不是MIPI链路本身,但波形上确实表现为MIPI信号异常。抓完波形之后,学会看波形的“背景噪声”水平,能帮你发现很多系统级问题。
5.4 有必要上MIPI解码功能吗
很多示波器厂家把MIPI D-PHY解码作为选配功能,价格不菲。我的看法是分场景决定。
如果你是做协议分析、调试驱动交互流程,建议配套逻辑分析仪,它的MIPI解码支持比示波器更成熟,能直接解析出数据包内容、甚至应用层命令。示波器解码功能更适合的场景是“确认物理层信号质量的同时快速验证时序参数”,比如你要判断一个HS突发里有没有SoT错误、EoT是否正常,示波器解码能给你直接答案。
如果预算有限,入门阶段完全可以用“手动分析+游标测量”的方式替代解码功能。本质上,MIPI D-PHY的HS/LP切换时序就那么几个参数,手动测量过一次之后,你对协议的理解会比直接看解码结果深得多。我到现在都建议团队的初级工程师,第一次调MIPI必须先手动抓一次波形、量一遍时序参数,再谈用解码功能提高效率。
另外,和抓eMMC HS400模式时序一样,MIPI HS突发也是典型的高带宽窄脉冲信号,抓这类信号的核心能力都集中在“触发”和“存储深度”两个维度上:触发决定了你抓不抓得到,存储深度决定了你抓到的波形有没有细节。把这套方法练熟了,以后抓USB、PCIe、SDIO这类高速串行总线也能很快上手。
我个人在实际操作中的体会是,示波器抓MIPI D-PHY这件事,入门难在“不知道看什么”,一旦把LP-11→LP-01→LP-00→HS-0→SoT→Data→EoT→LP-01→LP-11这条序列对应到波形上,后面就变成熟练工了。最后再分享一个小技巧:量T-LPX这些几十ns量级的参数时,时基千万别放在μs档就去读数,一定要把时基缩小到10ns/div到20ns/div量级再量,否则示波器的光标分辨率本身就引入几十ns误差,你测出来的数据根本没有参考意义。