FPGA 实现 MIPI 协议详解与时序规范
一、MIPI 协议核心基础认知 MIPI 协议定义与核心特点 MIPI(Mobile Industry Processor Interface,移动产业处理器接口)是由 MIPI 联盟制定的**高速串行差分接口协议**,最初为手机、平板等移动设备设计,目前广泛应用于 FPGA/嵌入式的**图像采集(摄像头)、显示驱动(液晶屏)、高速数据传输** 场景。 核心特点: ✅ 采用**差分信号传输**,抗…

一、MIPI 协议核心基础认知 MIPI 协议定义与核心特点 MIPI(Mobile Industry Processor Interface,移动产业处理器接口)是由 MIPI 联盟制定的**高速串行差分接口协议**,最初为手机、平板等移动设备设计,目前广泛应用于 FPGA/嵌入式的**图像采集(摄像头)、显示驱动(液晶屏)、高速数据传输** 场景。 核心特点: ✅ 采用**差分信号传输**,抗…

MIPI(Mobile Industry Processor Interface,移动产业处理器接口)是由 MIPI 联盟制定的高速串行差分接口协议,最初为手机、平板等移动设备设计,目前广泛应用于 FPGA/嵌入式的图像采集(摄像头)、显示驱动(液晶屏)、高速数据传输 场景。 核心特点: ✅ 采用差分信号传输,抗干扰能力强、EMI 电磁辐射小; ✅ 支持高低速双模切换,兼顾高速大数据传输和低速控制指令传输; ✅ 串行传输,引脚数量极少(对比并行 RGB 的几十根引脚,MIPI 仅需时钟+1~4 路数据差分对),硬件设计简洁; ✅ 传输速率高:单 lane(数据通道)速率可达1Gbps~4.5Gbps,多 lane 可叠加带宽; ✅ 低功耗设计,适配嵌入式/FPGA 的低功耗需求。
MIPI 协议是分层架构,FPGA 实现 MIPI 的核心工作集中在物理层和协议层,也是我们本文的核心讲解层,完整分层如下:
补充:C-PHY 是 D-PHY 的升级版,采用 3 线差分传输,速率更高,但 FPGA 实现难度大,99% 的 FPGA 项目均使用 D-PHY+CSI-2/DSI,本文所有讲解均基于「D-PHY+CSI-2/DSI」组合,也是 FPGA 开发的主流方案。
MIPI D-PHY 的物理链路由差分信号线组成,固定包含:
所有差分对均为单向传输:CSI-2 中,摄像头→FPGA(时钟 + 数据均由摄像头发出);DSI 中,FPGA→显示屏(时钟 + 数据均由 FPGA 发出),无双向传输,这是 FPGA 设计的关键前提。
MIPI 的时序是分层的,且所有协议层时序都基于物理层(D-PHY)时序,时序是 FPGA 实现 MIPI 的核心依据,时序不满足,MIPI 数据传输必然出错。所有时序均为 FPGA 开发的硬性标准,必须严格遵循。
核心前提:MIPI D-PHY 有且仅有两种工作模式,所有时序均围绕这两种模式展开: ✔ LP 模式(Low Power,低速低功耗模式):速率≤10Mbps,用于传输控制指令、同步信号、模式切换指令,电平为单端 CMOS 电平,有明确高低电平定义; ✔ HS 模式(High Speed,高速模式):速率 1Gbps~4.5Gbps,用于传输图像有效数据、大带宽业务数据,电平为差分低压摆幅信号,靠差分对的电平差表示逻辑,无绝对高低电平。
D-PHY 的时序是 MIPI 的底层基础时序,也是 FPGA 做逻辑设计、时序约束的核心,包含「LP 模式时序、HS 模式时序、LP↔HS 模式切换时序」三大类,是必须掌握的核心内容。
LP 模式是 D-PHY 的默认上电模式,所有 MIPI 传输的「开始、结束、指令交互」均在 LP 模式完成,HS 模式仅用于纯数据传输。
MIPI D-PHY 的 LP 模式为单端 CMOS 电平,所有差分对的两条线(如 CLK_P/CLK_N、DATA0_P/DATA0_N)同时作为单端信号使用,且两条线的电平状态强制绑定,定义如下:
11:差分对的 P/N 端均为高电平(1.2V) → 空闲状态;00:差分对的 P/N 端均为低电平(0V) → 准备状态;01/10:差分对的 P/N 端电平相反 → 模式切换触发码(LP 转 HS、HS 转 LP 的唯一触发信号);关键:LP 模式下,差分对不会出现差分摆幅,两条线电平始终一致(除了切换瞬间),这是区分 LP 和 HS 的核心标志。
LP-11 空闲状态;LP-11 和 LP-00 之间切换;LP-00 状态,再发送 01/10 切换码,无时间要求,电平正确即可。HS 模式是 MIPI 传输有效数据的核心模式,FPGA 的高速数据处理、串并转换、时钟同步均针对该模式,所有高速时序参数均为 FPGA 设计的硬性指标,也是 MIPI 时序的重点。
HS 模式为低压差分信号(LVDS),差分对的 P/N 端电平做反向摆幅,摆幅大小为100mV~300mV(典型 200mV),无绝对高低电平,靠「P-N 的电平差」表示逻辑:
关键:HS 模式下,时钟 Lane 和数据 Lane 均为差分信号,且所有 Lane 的差分阻抗必须严格匹配100Ω(PCB 设计核心要求),否则会出现信号反射,导致时序错乱。
HS 模式的核心是「DDR 双边沿采样」+「时钟与数据的相位对齐」,所有 MIPI 的高速数据传输均基于该规则,FPGA 的物理层设计全部围绕该时序展开:
0x78(串行比特流),用于 FPGA 做位同步、帧同步,识别数据包开始;HS 模式的数据包时序结构
HS 模式下,所有数据均以「HS 数据包」为单位传输,无零散数据,时序结构固定(FPGA 解串的核心依据):
同步码
0x78是 FPGA 的关键识别标志:FPGA 在 HS 模式下,只要检测到该同步码,就判定为有效数据包开始,后续开始采样数据。
DDR(Double Data Rate)双边沿采样规则:
MIPI 的核心高速传输机制:时钟 Lane 的差分时钟,在上升沿和下降沿都对数据 Lane 的差分数据进行采样,即1 个时钟周期传输 2bit 数据。
MIPI 的LP 和 HS 模式切换是强制时序,所有 HS 模式的高速数据传输,必须经过「LP→HS」的切换流程;传输结束后,必须经过「HS→LP」的切换流程,无切换流程的 HS 传输是无效的,也是 FPGA 调试中最易踩坑的点,切换时序错误=MIPI 无数据/数据错乱。
所有 Lane(时钟 + 所有数据)严格同步执行,时序步骤固定,缺一不可,顺序不能乱:
LP-11 变为 LP-00 状态,保持T_PREP(≥10ns) 时间 → 准备切换;LP-00 变为 LP-01 状态,保持T_TRAIL(≥6ns) 时间 → 发送切换触发码;0x78,进入 HS 高速传输;核心要求:所有 Lane 的切换必须严格同步,若时钟和数据 Lane 切换有延迟,FPGA 将无法识别 HS 数据,这是 FPGA+MIPI 调试的高频问题。
同样所有 Lane 严格同步执行,时序步骤固定:
LP-10 变为 LP-00 状态,保持T_SETTLE(≥10ns) 时间 → 稳定切换状态;协议层时序是基于物理层时序的逻辑时序,FPGA 实现的是「物理层接收/发送高速数据后,对协议层的数据包进行解析/组包」,协议层无硬件电平时序,只有数据包结构时序 + 传输逻辑时序,是 FPGA 的核心逻辑开发点,CSI-2 和 DSI 的协议层时序90% 相同,仅业务逻辑有差异。
协议层的所有数据,均以「数据包(Packet)」为单位,通过物理层的 HS 模式传输,LP 模式仅传输「控制指令 + 同步信号」,协议层的核心时序就是数据包的结构时序。
所有 MIPI 协议层数据包的结构完全固定,FPGA 解析/组包的逻辑完全基于该结构,无例外:
[ 包头 (Header) ] + [ 有效载荷 (Payload) ] + [ 校验 (Checksum) ]
CSI-2 是摄像头→FPGA的单向传输,协议层时序围绕「图像的帧同步、行同步」展开,这是 FPGA 采集图像的核心逻辑,时序严格遵循「帧结构时序」:
关键:FS/FE/LS/LE 这些同步信号,均通过 LP 模式传输;每行的像素数据,通过 HS 模式传输,LP 和 HS 交替进行,FPGA 通过识别 LP 的同步信号,完成图像的帧、行对齐。
CSI-2 的核心传输时序流程(FPGA 采集完整流程):
以上就是 FPGA 采集 MIPI 摄像头的完整时序逻辑,FPGA 的协议层代码就是解析该流程,提取有效像素数据。
DSI 是FPGA→显示屏的单向传输,协议层时序和 CSI-2几乎一致,仅传输方向相反,核心时序流程为:
核心差异:DSI 支持「视频模式」和「命令模式」,视频模式和 CSI-2 完全一致,命令模式是 FPGA 通过 LP 模式向显示屏发送控制指令(如亮度调节、休眠),无需 HS 传输。
FPGA 实现 MIPI 协议,本质是实现「物理层 (D-PHY) + 协议层 (CSI-2/DSI)」的双层逻辑,物理层是实现难点,协议层是逻辑重点。
根据 FPGA 的硬件资源不同,分为两种主流实现方案,99% 的工程场景均采用这两种方案,优先级明确,从易到难排序,也是行业内的标准选型思路:
核心结论先行:能选方案一,绝不选方案二!方案一开发效率高、稳定性强、无需调时序,是 FPGA 实现 MIPI 的首选。
Xilinx/Intel 的中高端 FPGA 均集成了硬核 MIPI D-PHY IP 核(硬件电路实现),比如:
这类 FPGA 的硬核 D-PHY 是厂家预制的硬件电路,完美适配 MIPI D-PHY 的所有物理层时序、电平、DDR 采样规则,无需 FPGA 工程师编写任何物理层代码,是实现 MIPI 的最优解。
FPGA 内部逻辑划分为 3 个模块,模块化开发,无耦合,极易调试,也是工业级项目的标准架构:
外部设备 (摄像头/屏) → FPGA 差分引脚 → 硬核 D-PHY IP 核 → 软核 CSI-2/DSI 协议层 → FPGA 业务逻辑 (图像缓存/处理/显示)
关键优势:硬核 IP 核的物理层时序由厂家做了极致优化,无任何时序问题,无需做时序约束,彻底规避了物理层的实现难点,这是该方案的核心价值。
FPGA 无硬核 D-PHY IP 核(比如 Xilinx Artix-7 低端型号、Intel Cyclone IV/V、国产低成本 FPGA),需要完全通过 Verilog 代码,在 FPGA 的普通逻辑资源上实现 MIPI 的物理层 + 协议层,这是 FPGA 实现 MIPI 的「纯软核方案」。
外部设备 → FPGA 差分引脚 → 软核 D-PHY 物理层 (纯 Verilog) → 软核 CSI-2/DSI 协议层 → 业务逻辑
唯一的差异是:物理层的所有逻辑均由 FPGA 工程师编写 Verilog 代码实现,协议层和方案一完全相同。
纯软核实现 MIPI 的所有难点都在物理层,也是 FPGA 工程师的核心技术点,物理层的 Verilog 代码需要实现以下核心功能,严格遵循 MIPI 的物理层时序:
FPGA 的普通引脚是单端 CMOS 电平,无法直接处理差分信号,解决方案有 2 种:
通过 Verilog 代码检测差分对的电平状态(LP-11/00/01/10),实现 LP 模式的空闲、准备、切换逻辑,严格遵循 LP↔HS 的切换时序。
这是纯软核实现的核心技术点,也是最易出问题的点,必须严格实现:
难点:需要精准的时序约束,保证双边沿采样的建立/保持时间,否则会出现采样错误,导致数据错乱。
✅ 优点:无 FPGA 硬件限制,所有 FPGA 均可实现,成本低;
❌ 缺点:
MIPI 是高速差分协议,PCB 设计的好坏直接决定 MIPI 能否正常工作,逻辑写的再好,PCB 设计错误,必然无数据/数据错乱,核心 PCB 规范:
✅ 所有 MIPI 差分对必须做100Ω 差分阻抗匹配,且阻抗偏差≤±5Ω;
✅ 差分对的两条线必须等长走线,长度差≤5mil,避免信号时延导致的相位差;
✅ 时钟 Lane 和数据 Lane 尽量远离,避免串扰;
✅ MIPI 差分线尽量走内层,减少 EMI 辐射和外部干扰;
FPGA 实现 MIPI 前,必须通过I2C 总线配置外部设备(摄像头/显示屏),配置的参数直接决定 MIPI 是否能正常传输,核心配置项:
✅ MIPI 的 lane 数(1/2/4);
✅ HS 模式的传输速率;
✅ 图像的分辨率、数据格式(RAW8/RAW10/RGB565);
✅ 帧同步/行同步的模式;
关键:配置参数必须和 FPGA 的逻辑设计一致(比如 FPGA 设计的是 2lane,摄像头必须配置为 2lane),否则必然无数据。
FPGA+MIPI 的调试遵循固定优先级,切勿一上来就看协议层数据,按以下顺序排查,效率极高:
0x78,说明物理层采样正常;MIPI 协议是 FPGA 工程师必须掌握的高速接口协议之一,其实现的核心不是复杂的逻辑,而是对时序的严格遵循和对硬件的深刻理解,掌握本文的内容,即可轻松实现 FPGA 的 MIPI 采集/显示功能。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online