1. MIPI CSI 接口概述

各位好,我是老周。做嵌入式驱动十几年了,RK平台也折腾了七八年。今天咱们开始聊MIPI CSI——说白了,就是摄像头和处理器之间怎么传数据的那条路。

你想想看,一个摄像头模组,拍完照片,数据怎么送到CPU或者ISP里?靠的就是MIPI CSI。我刚开始接触这个接口时,总觉得它很神秘,后来发现,搞懂物理层和协议层,其实没那么复杂。

1.1 什么是MIPI CSI

MIPI CSI,全称是Camera Serial Interface。它是MIPI联盟制定的一套摄像头串行接口标准。目前主流的是CSI-2,咱们RK平台用的也是这个。

它的核心思想很简单:用差分信号,高速串行传输。好处很明显——线少、抗干扰强、能跑高带宽。

关键点:MIPI CSI不是一种物理接口,而是一整套协议栈。从物理层的差分对,到协议层的帧格式,再到应用层的图像数据,每一层都有明确规范。

我记得刚入行时,有个老工程师跟我说:“搞懂MIPI,你就搞懂了一半的摄像头驱动。”当时不信,后来踩了无数坑,才明白这话有多对。

1.2 物理层基础

物理层,就是那些实实在在的硬件连线。MIPI CSI物理层基于D-PHY标准。

一个典型的CSI接口包含:

  • 时钟线(CLK):一对差分线,提供高速传输的时钟基准
  • 数据线(DATA):一对或多对差分线,传输实际数据

数据线的数量,决定了带宽。1-lane、2-lane、4-lane,这是咱们最常见的配置。RK3588甚至支持8-lane。

配置 数据线对数 典型带宽(每lane 1Gbps) 常见应用
1-lane 1 ~1 Gbps 低分辨率摄像头
2-lane 2 ~2 Gbps 720p/1080p
4-lane 4 ~4 Gbps 4K/8K摄像头

个人经验:我建议你在选型时,留出30%的带宽余量。为什么?因为实际传输中,还有协议开销、时钟抖动、线缆损耗。我曾经在一个项目里,4-lane跑满了,结果温度一高就丢帧,后来换成8-lane才稳。

物理层还有个重要概念——LP模式和HS模式。LP是低功耗模式,用于控制指令;HS是高速模式,用于数据传输。两者通过电压摆幅区分。嗯,这里要注意:LP模式下电压摆幅大(约1.2V),HS模式下电压摆幅小(约200mV)。

1.3 协议层基础

协议层,就是数据怎么组织、怎么传输的规则。CSI-2协议层分三层:

  1. 像素/字节打包层:把原始图像数据打包成字节流
  2. LLP(Low Level Protocol)层:管理数据包的开始、结束、错误检测
  3. 通道管理层:管理多个数据流(比如同时传RAW图和YUV图)

数据在CSI链路上,是以包(Packet)为单位传输的。每个包分为:

  • 短包(Short Packet):用于同步、帧开始、帧结束等控制信息
  • 长包(Long Packet):包含实际图像数据,有包头、数据负载、CRC校验

我举个例子你就明白了。一帧图像传输,流程是这样的:

帧开始(短包) → 行数据1(长包) → 行数据2(长包) → ... → 行数据N(长包) → 帧结束(短包)

每个长包内部结构:

包头(4字节) → 数据负载(可变长度) → CRC校验(2字节)

包头里包含了数据类型(RAW8、RAW10、YUV422等)和数据长度。CRC校验用于检测传输错误。

避坑指南:我曾经在一个项目里,摄像头输出RAW10格式,但RK平台默认配置成了RAW8。结果图像全是花屏,查了三天才发现是数据类型配置错了。所以,数据类型一定要和摄像头模组规格书严格对应。

1.4 RK平台CSI控制器简介

RK平台的CSI控制器,集成在SoC内部。不同芯片型号,控制器版本和特性略有差异。

以RK3588为例,它包含:

  • 2个CSI主机控制器:每个支持4-lane或8-lane
  • 1个DPHY控制器:负责物理层信号处理
  • 1个ISP(图像信号处理器):处理RAW数据

控制器的核心功能:

  • 接收MIPI差分信号,转换为并行数据
  • 解析协议层包结构,提取有效数据
  • 支持多种数据类型(RAW8/10/12、YUV422、JPEG等)
  • 提供DMA接口,把数据送到内存

下面这张图,是我画的一个简化架构,帮你理解数据流:

RK平台MIPI CSI数据流架构 RK平台MIPI CSI数据流架构 摄像头模组 Sensor + 串行器 MIPI CSI总线 差分信号传输 DPHY控制器 物理层处理 CSI主机 协议解析 DMA引擎 数据搬运 ISP 图像处理 DDR内存 帧缓冲区 说明: 1. 摄像头模组输出MIPI差分信号,经PCB走线传输到SoC 2. DPHY控制器完成串并转换,CSI主机解析协议包 3. 数据经DMA搬运到DDR,或直接送入ISP处理

从图上你能看到,数据从摄像头出来,经过MIPI总线、DPHY、CSI主机,最后到内存或ISP。每个环节都可能出问题,这也是咱们后面调试的重点。

1.5 常见问题与调试思路

搞MIPI CSI,最常遇到的就是没图像或者图像花屏。我总结了几类常见问题:

现象 可能原因 排查方向
完全无数据 硬件连接、供电、时钟 检查原理图、测量电压、示波器看时钟
图像花屏 数据类型、分辨率、时序 核对寄存器配置、检查DT值
图像偏色 Bayer格式、白平衡 确认RAW格式、检查ISP配置
帧率不足 带宽、DMA、中断 计算带宽、检查DMA传输效率

调试小技巧:我习惯先用示波器看MIPI时钟和数据线的波形。如果波形干净、摆幅正常,说明物理层没问题。然后再看协议层——RK平台提供了debugfs接口,可以查看CSI控制器的状态寄存器,比如帧计数、错误计数。这些信息对定位问题非常有帮助。

好了,这一章就到这里。MIPI CSI的基础概念,咱们已经捋了一遍。物理层、协议层、控制器架构,这些是后面所有配置和调试的根基。你心里有个谱就行。