2、OV5640硬件接口:MIPI CSI-2接口、DVP并行接口、I2C控制接口、电源管理接口

OV5640 作为一款高集成度的 500 万像素图像传感器,其硬件接口设计兼顾了高性能移动设备与嵌入式平台的通用需求。理解这四大接口——MIPI CSI-2、DVP、I2C 与电源管理——是驱动移植成功的基础。任何接口的时序或电气特性不匹配,都会导致图像采集失败或传感器无法初始化。

2.1 接口总览与功能划分

下表归纳了 OV5640 各硬件接口在系统中的角色与关键特性:

接口类型 信号方向 核心功能 典型速率/电压 驱动关注点
MIPI CSI-2 输出(Sensor → Host) 高速图像数据串行传输 1.2V,每 Lane 最高 1Gbps Lane 数配置、HS/LP 模式切换、时钟同步
DVP 并行 输出(Sensor → Host) 传统并行图像数据传输 1.8V/2.8V,PCLK 最高 96MHz PCLK/HREF/VSYNC 时序、数据线对齐
I2C 控制 双向(Host ↔ Sensor) 寄存器读写、初始化配置、参数调整 1.8V/2.8V,标准 100kHz / 快速 400kHz 设备地址、时序容差、ACK 检测
电源管理 输入(PMU → Sensor) 提供多域供电、复位、上电时序控制 1.2V / 1.5V / 1.8V / 2.8V 供电顺序、斜坡时间、复位脉宽
OV5640 硬件接口架构总览 OV5640 图像传感器核心 MIPI CSI-2 串行数据输出 1-4 Lane DVP 并行 并行数据输出 PCLK/HREF/VSYNC I2C 控制 双向寄存器访问 SCL / SDA 电源管理 多域供电与复位 AVDD/DOVDD/DVDD 提示:驱动移植时需根据平台能力选择 MIPI 或 DVP 输出模式,两者不可同时使用。

2.2 MIPI CSI-2 接口详解

MIPI CSI-2 是 OV5640 在高速应用场景下的首选接口。它采用差分串行传输,通过 1 至 4 条数据 Lane 和 1 条时钟 Lane 实现低功耗、高带宽的图像数据传输。

  • 物理层(D-PHY): 使用差分信号对(Dp/Dn),电压摆幅约 200mV。支持高速(HS)模式用于数据传输,以及低功耗(LP)模式用于控制与省电。
  • 协议层: 数据以短包(帧起始/结束)和长包(像素数据)形式组织。每帧包含帧头、行有效数据、帧尾。
  • Lane 配置: 通过寄存器 0x3035 和 0x3036 设置 Lane 数量。常见配置为 2-Lane 或 4-Lane,对应不同分辨率与帧率。
驱动移植关键点: 必须确保 Host 端 CSI 控制器支持的 Lane 数 ≥ OV5640 配置的 Lane 数。Lane 极性(正负交换)可通过寄存器 0x4803 调整,避免 PCB 布线交叉时重新设计硬件。
MIPI CSI-2 数据通道结构(2-Lane 示例) CLK Lane 差分时钟 Data Lane 0 像素数据 Data Lane 1 像素数据 Host CSI 接收器 DPHY 解析

2.3 DVP 并行接口详解

DVP 接口是 OV5640 提供的传统并行输出方式,适用于不具备 MIPI CSI 控制器的低成本 MCU 或 FPGA 平台。其信号组包括:

  • PCLK(像素时钟): 每个时钟周期输出一个像素数据。频率与分辨率、帧率成正比。
  • HREF(行参考): 高电平表示当前行数据有效。
  • VSYNC(帧同步): 高电平或低电平表示一帧数据的开始/结束,可通过寄存器配置极性。
  • D[9:0](数据总线): 10 位并行数据线,支持 RAW10、YUV422、RGB565 等格式输出。
常见故障点: DVP 接口在高速模式下(PCLK > 48MHz)对 PCB 走线等长要求极高。数据线与 PCLK 之间的 skew 超过 2ns 时,将导致数据采样错误,表现为图像花屏或颜色错位。驱动中可通过调整采样沿(上升沿/下降沿)临时规避,但根本解决需优化硬件布局。

2.4 I2C 控制接口

I2C 总线是 OV5640 的控制命脉。所有寄存器配置、模式切换、AE/AWB 参数调整均通过此接口完成。

  • 设备地址: 7 位地址为 0x3C(写)/0x3D(读),实际发送时左移 1 位并附加 R/W 位。
  • 时序要求: 标准模式 100kHz,快速模式 400kHz。SCL 高电平最小脉宽 0.6μs,低电平最小脉宽 1.3μs。
  • 寄存器访问格式: 16 位寄存器地址 + 8 位数据。写操作:发送设备地址 + 寄存器高字节 + 寄存器低字节 + 数据。读操作:先写寄存器地址,再重新发送设备地址(读)读取数据。
调试建议: 使用逻辑分析仪抓取 I2C 波形,重点检查 ACK 响应。若 OV5640 未正确上电或复位,I2C 从机将不响应 ACK,导致驱动初始化失败。这是排查“I2C 通信失败”故障的第一步骤。

2.5 电源管理接口

OV5640 需要多路独立供电,且上电顺序有严格约束。错误的供电顺序可能导致传感器无法启动、图像异常甚至永久损坏。

电源域 电压典型值 供电对象 上电顺序
AVDD 2.8V 模拟电路(像素阵列、ADC) 第 1 位
DOVDD 1.8V 数字 I/O 接口(I2C、DVP、MIPI) 第 2 位(可与 AVDD 同时)
DVDD 1.2V / 1.5V 数字核心(图像处理、逻辑控制) 最后一位
OV5640 上电时序要求 AVDD (2.8V) DOVDD (1.8V) DVDD (1.2V) RESET# 上电时序约束 1. AVDD 先稳定,t1 > 0ms 2. DOVDD 可在 AVDD 之后或同时 3. DVDD 必须在 DOVDD 稳定之后 4. RESET# 低电平保持 > 1ms 5. RESET# 释放后等待 > 20ms 再开始 I2C 配置 6. 所有电源上升时间 < 5ms 7. 严禁先供 DVDD 再供 AVDD
平台适配检查清单:
  1. 确认 PMU 输出的各电源域电压是否在 OV5640 规格范围内(±5%)。
  2. 使用示波器测量上电顺序:AVDD → DOVDD → DVDD,确保无交叠异常。
  3. 测量 RESET# 引脚:上电后应保持低电平至少 1ms,释放后至 I2C 首次访问间隔至少 20ms。
  4. 若使用 GPIO 模拟复位,注意 MCU 上电后 GPIO 默认状态是否为高电平,避免复位无效。