1. MIPI CSI概览:从联盟到实战的桥梁
各位同学,大家好。我是你们的FPGA实战讲师。今天咱们正式开始MIPI CSI接口的接收之旅。
第一节课,我不打算直接扔一堆时序图。咱们先聊聊MIPI到底是什么,它从哪来,又要到哪去。说白了,就是先建立个全局观。我个人习惯,学任何接口协议,都得先搞清楚它在整个系统里扮演什么角色。
1.1 MIPI联盟简介:谁在制定规则?
MIPI,全称是Mobile Industry Processor Interface,移动行业处理器接口联盟。嗯,名字很长,你记住MIPI就行。
这个联盟成立于2003年,初衷很简单——给手机内部的各种芯片定一套通用的连接标准。你想啊,以前手机里的摄像头、显示屏、基带芯片,各家用各的接口,乱得很。MIPI联盟就是要把这些接口统一起来。
现在,MIPI已经是事实上的移动设备内部接口标准。不只是手机,车载、物联网、甚至航空航天都在用。我在一个车载项目里就遇到过,客户指定要用MIPI CSI接口接摄像头,因为抗干扰能力强。
核心要点: MIPI不是单一协议,而是一个协议族。它涵盖了摄像头(CSI)、显示屏(DSI)、射频(RFFE)、I3C等几十个规范。我们这节课只关注CSI。
1.2 CSI协议族:从CSI-1到CSI-3
CSI,Camera Serial Interface,摄像头串行接口。它定义了摄像头传感器和应用处理器之间的通信方式。
CSI协议有几个版本:
- CSI-1: 最早版本,现在基本不用了。我在老古董设备上见过一次。
- CSI-2: 目前最主流版本。我们FPGA接收实战主要就是针对它。它基于D-PHY物理层。
- CSI-3: 基于UniPro协议栈,速度更快,但复杂度也高。目前应用还不算广。
CSI-2协议本身又分三层:
- 应用层: 处理图像数据格式,比如RAW、YUV、JPEG。
- 协议层: 负责数据打包、解包、错误检测。这里定义了长包、短包、ECC校验等。
- 物理层: 就是D-PHY或C-PHY,负责比特流的传输。
你想想看,FPGA做接收,我们最关心的是哪层?对,物理层和协议层。应用层通常是CPU或ISP去处理的。
1.3 D-PHY物理层:最常用的传输方式
D-PHY,说白了就是差分信号传输。它用一对差分线(Dp/Dn)来传数据,用另一对差分线(Clkp/Clkn)来传时钟。
D-PHY有几个关键特点:
- 差分信号: 抗干扰能力强。我在一个电磁环境很差的工业现场测试过,D-PHY依然稳定。
- 源同步时钟: 时钟和数据一起传,不需要额外的PLL恢复时钟。
- 低功耗模式: 有高速模式(HS)和低功耗模式(LP)。LP模式用于控制指令传输。
- 数据通道: 可以配置1-4个数据通道(Data Lane)。每个通道速度可达2.5Gbps。
实战提示: 在FPGA上接收D-PHY信号,最麻烦的是LP模式和HS模式的切换。我曾经在这里踩过坑,后面章节会详细讲。
D-PHY的电气特性也很重要。它定义了电压摆幅、上升时间、下降时间等参数。做硬件设计时,这些参数直接决定了PCB走线的要求。
| 参数 | HS模式 | LP模式 |
|---|---|---|
| 电压摆幅 | 200mV(差分) | 1.2V(单端) |
| 传输速率 | 80Mbps - 2.5Gbps | ≤10Mbps |
| 功耗 | 高 | 低 |
1.4 C-PHY物理层:更高带宽的选择
C-PHY是MIPI联盟后来推出的物理层标准。它和D-PHY有什么不同?
简单说,C-PHY用三根线(而不是两根)组成一个通道。它没有专门的时钟线,时钟信息是嵌入在数据里的。这样做的好处是:
- 带宽更高: 每通道可达5.7Gbps(D-PHY是2.5Gbps)。
- 引脚更少: 同样带宽下,C-PHY需要的引脚数更少。
- 编码复杂: 它用的是3位编码,每次传输2.28比特数据。
嗯,这里要注意。C-PHY虽然带宽高,但FPGA实现起来比D-PHY复杂得多。我建议初学者先从D-PHY入手。等D-PHY玩熟了,再考虑C-PHY。
避坑指南: 我曾经在一个项目里,为了追求高带宽直接上了C-PHY。结果FPGA内部逻辑资源不够,折腾了两个月才搞定。后来我学乖了,先评估资源,再选物理层。
1.5 MIPI在嵌入式系统中的应用
MIPI CSI接口在嵌入式系统里无处不在。我列几个典型场景:
- 手机/平板: 前后摄像头都走MIPI CSI。这是最原始的应用场景。
- 车载环视: 四个摄像头通过MIPI CSI接入处理器,实现360度全景影像。
- 工业相机: 高速工业相机常用MIPI CSI接口,配合FPGA做实时图像处理。
- 无人机: 图传系统里,摄像头通过MIPI CSI连接图像处理芯片。
- 医疗内窥镜: 小型化摄像头模组,MIPI CSI是首选接口。
在这些应用里,FPGA扮演什么角色?
说白了,FPGA就是MIPI CSI信号的接收端。它负责把串行的MIPI数据流,转换成并行的图像数据,然后交给后面的处理器或显示模块。
我做过一个项目,用FPGA接收4路MIPI CSI摄像头,然后做拼接和实时处理。那个项目让我深刻理解了MIPI协议的每一个细节。嗯,后面我会把这些经验都分享给你们。
小结
这一章我们建立了MIPI CSI的全局认知。你知道了:
- MIPI联盟是制定标准的组织
- CSI-2是当前主流协议
- D-PHY和C-PHY是两种物理层
- MIPI CSI在嵌入式系统里应用广泛
下一章,我们会深入D-PHY的时序细节,开始真正的FPGA接收设计。准备好了吗?