DVP(Digital Video Port)是并行数字视频接口,广泛用于连接 CMOS/CCD 图像传感器与 SoC/ISP,也被称为 CPI(Camera Parallel Interface) 或 BT.601/BT.656 并行接口。

1. DVP 接口概览

┌─────────────────┐                         ┌─────────────────┐
│                 │  D[7:0] / D[9:0]        │                 │
│   CMOS Sensor   │◄───────────────────────►│   ISP / SoC     │
│  (OV5640等)     │  PCLK                    │  (全志/瑞芯微等) │
│                 │◄─────────────────────────│                 │
│                 │  HSYNC / VSYNC            │                 │
│                 │◄─────────────────────────│                 │
│                 │  MCLK (Sensor输入时钟)    │►────────────────│
└─────────────────┘                         └─────────────────┘
核心特征:

并行数据线:8-bit / 10-bit / 12-bit
单向传输:Sensor → ISP,纯发送模式
时钟同步:所有数据由 PCLK(像素时钟)同步采样
独立同步信号:HSYNC(行同步)、VSYNC(帧同步)
2. DVP 信号线详解
2.1 必备信号(必须连接)
信号名    方向    说明
D[7:0]    Sensor → SoC    8-bit 并行像素数据(可扩展至 10/12-bit)
PCLK    Sensor → SoC    像素时钟,SoC 在 PCLK 上升沿/下降沿采样数据
VSYNC    Sensor → SoC    帧同步信号,标志一帧图像的开始/结束
HSYNC    Sensor → SoC    行同步信号,标志一行的开始/结束
2.2 辅助信号(可选)
信号名    方向    说明
MCLK    SoC → Sensor    主时钟,Sensor 工作时钟源(典型 6~27MHz)
PWDN    SoC → Sensor    电源关闭控制(低功耗/休眠)
RESET    SoC → Sensor    硬件复位
I2C_SCL    SoC → Sensor    I2C 配置时钟(SCCB 协议)
I2C_SDA    双向    I2C 配置数据
STROBE    Sensor → SoC    闪光灯同步信号(部分 Sensor 支持)
2.3 数据线位宽选择
位宽    场景    典型 Sensor
8-bit    最常用,YUV/RGB565/Bayer RAW    OV2640, OV5640, GC0328
10-bit    高精度 Bayer RAW    OV5647, IMX219(DVP模式)
12-bit    专业级 RAW 数据    高端安防 Sensor
3. 时序详解
3.1 帧时序(Frame Timing)

VSYNC:  ───┐   ┌───────────────────────────────────────┐   ┌──
            └───┘                                       └───┘
            │   │←────── 有效图像帧 (Active Frame) ──────→│   │
            │←─→│                                         │←─→│
            V_Sync  V_Back  Active Lines  V_Front        V_Sync
            Width   Porch   (图像数据)    Porch           Width

HSYNC:  ─────┐ ┌─┐ ┌─┐ ┌─┐ ┌────────────────────────┐ ┌─┐ ┌─
              └─┘ └─┘ └─┘ └─┘                        └─┘ └─┘
              │←→│←→│←→│←→│←─ 1 行数据 (Active Line) ─→│←→│
              H_Sync Active Pixels  H_Front  H_Sync
              Width  (像素时钟)      Porch    Width
垂直时序参数:

参数    符号    说明
V_Sync Width    t_vsync    帧同步信号脉宽(行数)
V_Back Porch    t_vbp    帧同步后消隐期(行数)
Active Lines    t_active    有效图像行数(如 1080)
V_Front Porch    t_vfp    帧同步前消隐期(行数)
Total Lines    t_total    一帧总行数 = 以上之和
水平时序参数:

参数    符号    说明
H_Sync Width    t_hsync    行同步信号脉宽(PCLK 周期)
H_Back Porch    t_hbp    行同步后消隐期(PCLK 周期)
Active Pixels    t_active    每行有效像素数(如 1920)
H_Front Porch    t_hfp    行同步前消隐期(PCLK 周期)
Total Pixels/Line    t_total    每行总像素数
3.2 行时序详细波形

PCLK:   ─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─
         └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └
HSYNC:  ─────────┐                                   ┌───────────
                 └───────────────────────────────────┘
                 │←─ H_Sync ─→│←─ H_Back ─→│←── Active ──→│←Hfp→│
D[7:0]:  XXXXXXXX│XXXXXXXXXXXX│XXXXXXXXXXXX│<D0><D1><D2>...<Dn>│XX
                 ↑            ↑            ↑
              HSYNC        有效数据        有效数据
              下降沿        开始采样        持续采样
采样时刻:SoC 通常在 PCLK 上升沿(或下降沿,取决于配置)采样 D[7:0]、HSYNC、VSYNC。

4. 同步模式:BT.601 vs BT.656
DVP 接口的两种主流同步方式:

4.1 BT.601 模式(独立同步模式)
特性    说明
同步方式    使用独立的 VSYNC + HSYNC 引脚
数据格式    通常为 RGB / YUV / Bayer RAW
控制    需要额外的 GPIO 处理 VSYNC/HSYNC
灵活性    高,时序可调
应用    大多数 CMOS Sensor(OV 系列、GC 系列)

BT.601 连接:
Sensor          SoC
D[7:0]  ──────► D[7:0]
PCLK    ──────► PCLK
VSYNC   ──────► VSYNC
HSYNC   ──────► HSYNC
4.2 BT.656 模式(内嵌同步模式)
特性    说明
同步方式    同步码嵌入数据流(无独立 VSYNC/HSYNC)
数据格式    通常为 YUV 4:2:2(ITU-R BT.656 标准)
同步码    FF 00 00 XY(SAV/EAV)
引脚节省    不需要 VSYNC/HSYNC 引脚
应用    标准视频设备(CVBS 转换、专业视频)
BT.656 同步码结构:


行数据格式:
┌──────────────────────────────────────────────────────────────┐
│  EAV (4Byte)  │  消隐数据  │  SAV (4Byte)  │  YUV 有效像素   │
│  FF 00 00 XY  │  80 10... │  FF 00 00 XY  │  Cb Y Cr Y ... │
└──────────────────────────────────────────────────────────────┘
SAV/EAV 的 XY 字段定义:

Bit    名称    说明
7    Fixed    = 1
6    F    场标志(0=场1,1=场2,隔行视频)
5    V    垂直消隐(1=在垂直消隐期)
4    H    水平消隐(1=EAV,0=SAV)
3-0    P3-P0    保护位(F/V/H 的 Hamming 校验)

示例:
SAV (有效行开始):  FF 00 00 80  (XY=1000_0000, H=0, V=0)
EAV (有效行结束):  FF 00 00 9D  (XY=1001_1101, H=1, V=0)
SAV (场消隐):      FF 00 00 AB  (XY=1010_1011, H=0, V=1)
5. DVP 典型配置示例
5.1 OV5640 DVP 1080P@30fps
参数    值
MCLK    24 MHz
PCLK    84 MHz (由 PLL 倍频)
数据位宽    8-bit / 10-bit
输出格式    YUV422 / RGB565 / Bayer RAW
VSYNC    低有效 / 高有效(可配置)
HSYNC    低有效 / 高有效(可配置)
PCLK 极性    上升沿 / 下降沿(可配置)
5.2 常用分辨率下的 PCLK 计算
分辨率    帧率    色深    最小 PCLK
VGA (640×480)    30fps    8-bit    ~9.2 MHz
720P (1280×720)    30fps    8-bit    ~27.5 MHz
1080P (1920×1080)    30fps    8-bit    ~62.2 MHz
1080P (1920×1080)    60fps    8-bit    ~124.4 MHz
5MP (2592×1944)    15fps    10-bit    ~75.5 MHz
公式:PCLK = 水平总像素 × 垂直总行数 × 帧率 × (位宽/8)

6. 与 MIPI CSI 的对比
特性    DVP    MIPI CSI-2
信号线数    8~12 根数据线 + 同步线    2 对差分线 (CLK+/-, D0+/-)
速率/引脚    低(PCLK < 150MHz)    高(单 Lane 1~2.5Gbps)
布线难度    难(等长要求严格)    易(差分对,抗干扰强)
EMI/EMC    差(并行高频辐射大)    好(差分信号)
功耗    较高    较低
支持分辨率    ≤5MP(受限于 PCLK)    可支持 100MP+
成本    低(Sensor 便宜)    高(需要 PHY)
SoC 支持    低端/老平台常见    现代主流平台标配
典型应用    安防IPC、低端扫码、MCU项目    手机、车载、高端相机
7. 硬件设计要点
7.1 PCB 布线关键规则

┌─────────────────────────────────────────────────────┐
│                  DVP 布线要点                        │
├─────────────────────────────────────────────────────┤
│  1. 等长要求:                                       │
│     • D[7:0] 数据线与 PCLK 等长,误差 < 500mil       │
│     • HSYNC/VSYNC 也尽量等长                         │
│                                                      │
│  2. 阻抗控制:                                       │
│     • 单端 50Ω(若走线较长)                          │
│                                                      │
│  3. 串扰防护:                                       │
│     • 数据线之间保持 3W 间距                          │
│     • PCLK 与其他信号包地隔离                         │
│                                                      │
│  4. 走线长度:                                       │
│     • 建议 < 10cm(PCLK 越高越短)                    │
│     • 超过 15cm 需加终端电阻(如 22Ω 串联)           │
│                                                      │
│  5. 参考平面:                                       │
│     • 数据/时钟下方必须有完整 GND 平面                 │
│     • 避免跨分割                                     │
└─────────────────────────────────────────────────────┘
7.2 端接与阻抗匹配
PCLK 频率    建议措施
< 50 MHz    通常无需特殊处理
50~100 MHz    源端串联 22~33Ω 电阻
> 100 MHz    需严格阻抗控制,考虑终端电阻

源端串联端接示例:

Sensor PCLK ──[22Ω]──►──────── SoC PCLK
                              │
Sensor D0   ──[22Ω]──►──────── SoC D0
                              │
        ... (每根数据线同理)
7.3 电源与去耦
电源域    典型电压    说明
AVDD    2.8V / 3.3V    模拟电源(Sensor 核心)
DVDD    1.5V / 1.8V    数字电源(IO 逻辑)
DOVDD    1.8V / 2.8V / 3.3V    IO 电源(决定数字电平)
注意:DOVDD 决定 D[7:0] / PCLK 的电平标准,必须与 SoC 的 GPIO 电平匹配!

8. SoC 端软件配置流程
以 Linux V4L2 框架为例:


// 1. 上电时序
sensor_power_on() {
    gpio_set_value(PWDN, 1);   // 退出休眠
    usleep(5000);
    gpio_set_value(RESET, 0);  // 复位
    usleep(10000);
    gpio_set_value(RESET, 1);  // 释放复位
    usleep(50000);
}

// 2. I2C/SCCB 初始化 Sensor 寄存器
sensor_init() {
    i2c_write(0x30, 0xFF, 0x01);  // 选择寄存器页
    i2c_write(0x30, 0x3C, 0x32);  // 设置输出格式
    i2c_write(0x30, 0x11, 0x80);  // 设置 PLL
    // ... 更多寄存器配置
}

// 3. 配置 SoC DVP 控制器
dvp_config() {
    // 设置 PCLK 采样边沿
    set_pclk_polarity(RISING_EDGE);  
    
    // 设置 VSYNC/HSYNC 极性
    set_vsync_polarity(ACTIVE_HIGH);
    set_hsync_polarity(ACTIVE_HIGH);
    
    // 设置输入格式
    set_input_format(BAYER_RGGB);
    
    // 设置 DMA 缓冲
    set_dma_buffer(addr, width * height * 2);
    
    // 启用 DVP 捕获
    enable_capture();
}
9. 常见问题与调试
现象    可能原因    排查方法
图像完全黑屏    Sensor 未初始化 / 未出 PCLK    示波器量 PCLK/VSYNC/HSYNC
图像有条纹    PCLK 边沿采样错误    修改 PCLK 极性配置
图像偏移/撕裂    HBP/VBP 参数不对    核对 Sensor 输出时序文档
图像颜色错乱    数据线接反 / 格式不匹配    检查 D[7:0] 线序和 RGB/YUV 设置
图像有噪点    电源不稳 / 地弹    检查 AVDD 纹波,加去耦电容
高分辨率花屏    PCLK 过高,布线太差    降帧率、缩短线长、加端接电阻
调试波形检查清单
用示波器检查以下信号质量:

PCLK:频率是否稳定,占空比是否在 40%~60%
VSYNC:周期是否为 1/帧率
HSYNC:周期是否为 1/(帧率 × 总行数)
D[7:0]:用逻辑分析仪抓并行数据,看是否在消隐期之后出现有效像素值
10. 总结
DVP 是一种简单直接的并行图像接口,在低成本、低分辨率场景中仍有广泛应用,但在高分辨率(>5MP)或高帧率场景下已被 MIPI CSI-2 取代。

适用场景:

MCU 级别项目(STM32 + OV2640)
低成本 IPC(海思/全志低端方案)
工业视觉(短距离、低干扰环境)
教学/原型验证
设计核心口诀:

等长是关键,阻抗要匹配,电源要干净,PCLK 别太快

更多推荐