CEU 摄像头使用说明(MIPI LCD)

中文|English

简介

本示例展示了如何在 Titan Board 上使用 CEU(Camera Engine Unit) 接口连接 OV5640 摄像头,并通过 RT-Thread LCD 框架 将捕获的图像显示到 MIPI LCD 屏幕(型号为 TL043WVV02CT)。

主要功能包括:

  • 初始化 CEU 摄像头接口,捕获实时视频流

  • 配置 OV5640 摄像头参数(分辨率、帧率、输出格式)

  • 使用 RT-Thread LCD 驱动显示摄像头捕获的图像

  • 支持图像格式转换(YUV422 → RGB565)

RA8 系列 CEU(Camera Engine Unit)特性

RA8 系列 MCU 内置 CEU 硬件模块,用于高效捕获摄像头图像数据,并支持多种图像格式和分辨率,直接将数据传输到内存或显示接口。

1. CEU 硬件接口特性

  1. 接口类型

    • DVP(Digital Video Port) 接口,用于连接 CMOS 摄像头

    • 支持 8/10/12 位数据总线

    • 同步信号:

      • PCLK:像素时钟

      • HSYNC:行同步信号

      • VSYNC:帧同步信号

  2. 输入分辨率与帧率

    • 支持 VGA、QVGA、SXGA、UXGA 等常用分辨率

    • 帧率支持 1–60 fps,可配置以适应不同应用

  3. 摄像头兼容性

    • 与 OV5640、OV7670 等常用 CMOS 摄像头兼容

    • 支持自动初始化和寄存器配置

2. 图像格式与处理能力

  1. 图像格式支持

    • YUV422(常用用于视频传输)

    • RGB565(适合 LCD 显示)

    • RAW10/RAW12(用于图像处理和算法开发)

  2. 图像处理功能

    • 颜色空间转换:YUV ↔ RGB

    • 图像裁剪:可只采集部分 ROI(Region of Interest)

    • 图像缩放:支持按比例缩小或放大

    • 镜像与翻转:可水平或垂直镜像

  3. 硬件加速

    • CEU 内置硬件处理单元,可减轻 CPU 负担

    • 提供快速图像格式转换和缩放功能

3. DMA 支持与缓冲机制

  1. 高速 DMA 传输

    • 与 MCU 的 DMAC 配合,实现内存高速写入

    • 支持直接将图像写入 Frame Buffer 或 LCD 缓冲区

  2. 多缓冲区机制

    • 支持双缓冲或环形缓冲,保证连续视频采集

    • 减少帧丢失和显示延迟

  3. DMA 配置灵活

    • 可配置缓冲区起始地址、大小

    • 支持中断触发与回调

4. 中断机制

  1. 中断类型

    • 帧完成中断(Frame End):每帧采集完成时触发

    • 行中断(Line End,可选):每行采集完成时触发

    • 错误中断:包括缓冲区溢出、同步信号异常

  2. 中断特点

    • 支持 RT-Thread ISR 回调注册

    • 可与 DMA 联动,实现实时处理和显示

5. 时序与同步特性

  1. 行/帧同步

    • HSYNC 对齐每行数据

    • VSYNC 对齐每帧图像

  2. 像素时钟

    • CEU 支持外部 PCLK 或内部分频

    • 确保与摄像头输出同步,避免采样错误

  3. 数据对齐

    • 支持字节对齐或像素对齐

    • 可根据图像格式自动调整

6. 性能与优化

  1. 高吞吐量

    • DMA + 双缓冲机制实现连续视频采集

    • CPU 占用低,适合实时应用

  2. 可靠性

    • 同步信号异常可触发中断

    • 缓冲区溢出检测

    • 支持帧丢失自动恢复

  3. 灵活性

    • 支持多分辨率和多格式切换

    • 可配置裁剪和缩放区域,提高显示效率

7. 应用场景

  • 实时视频显示到 LCD

  • 视频采集与处理算法测试

  • 嵌入式视觉应用,如监控、手势识别、机器人视觉

RA8 系列 GLCDC 模块

1. 简介

**GLCDC(Graphics LCD Controller)**是 RA8 系列 MCU 内置的高性能图形控制器模块,专门用于驱动 TFT/RGB LCD 屏幕,支持各种分辨率、色彩格式和图像处理功能。结合 RT-Thread 的 LCD 驱动框架,可以实现统一接口下的屏幕初始化、刷新、图像绘制及 DMA 加速等功能。

RA8 系列 GLCDC (Graphics LCD Controller) 提供了从 MCU 内部存储器或外部图像缓存向 RGB/LCD 显示屏输出图像的能力。它集成了:

  • 帧缓冲控制:可配置多帧缓冲,实现页面切换或双缓冲显示

  • 颜色格式支持:RGB565, RGB888, ARGB8888 等

  • 图形处理功能:背景图层、文字/图形合成、透明度混合、调色板等

  • 同步信号生成:HSYNC, VSYNC, DE(Data Enable)等

  • DMA 支持:高速数据传输,减少 CPU 占用

  • 中断功能:帧结束中断、行结束中断等

2. 模块架构

RA8 GLCDC 模块主要包含以下子模块:

  1. 图层合成单元(Layer Composition Unit)

    • 支持多图层叠加

    • 提供 alpha blending、透明度控制、颜色键控

    • 可以对图层进行旋转、翻转处理

  2. 帧缓冲接口(Frame Buffer Interface)

    • 支持访问 MCU 内部 SRAM 或外部存储器

    • 提供单/双缓冲模式,保证连续显示

    • 配合 DMA 自动读取图像数据

  3. DMA 控制器(DMA Controller)

    • 自动传输像素数据到 RGB 输出端口

    • 可配置突发长度,提高带宽利用率

    • 支持循环传输,适合视频或动画场景

  4. 同步信号生成器(Timing Generator)

    • 自动生成 HSYNC/VSYNC/DE 信号

    • 支持 TTL 接口 RGB 时序

    • 可配置极性、同步宽度、前后肩时间等

  5. 中断与事件处理单元(Interrupt/Event Controller)

    • 提供帧结束中断、行结束中断

    • 可用于页面切换、动态绘制或滚动显示

    • 支持 DMA 传输完成触发中断

3. GLCDC 工作原理

  1. 帧缓冲读取

    • GLCDC 通过 DMA 从内存读取图像数据,支持单/双缓冲模式,保证连续显示。

  2. 图层合成

    • 支持多图层叠加,例如背景图层 + 前景图层 + 图标/文字图层

    • 提供透明度控制和调色板映射

  3. 像素时序输出

    • 根据 LCD 的接口要求生成 HSYNC/VSYNC/DE 信号

    • 支持 RGB 并行接口、TTL 接口或 LVDS(视具体板级实现)

  4. 中断与事件

    • 帧结束中断(VBlank):可用于更新下一帧数据

    • 行结束中断:可用于滚动显示或动态绘制

4. GLCDC 支持的功能与特性

功能类别

描述

分辨率

最高可达 1280x800

色彩模式

RGB565、RGB888、ARGB8888 等

多图层

背景 + 前景 + 符号图层,可叠加混合

帧缓冲

支持单帧/双帧缓冲模式,DMA 传输提高性能

调色板

支持 8/16 位调色板映射,实现色彩转换

同步信号

HSYNC, VSYNC, DE,可配置极性和时序

DMA 支持

自动从内存传输图像数据,无需 CPU 干预

中断

帧结束、行结束中断,可用于屏幕刷新同步

旋转/翻转

支持 90°/180°/270°旋转及 X/Y 翻转

硬件说明

  • CEU 摄像头接口如下图所示:

image-20260226164123190

  • MIPI DSI 接口如下图所示:

image-20260226164145087

  • CEU摄像头连线方式如下图:

使用 22Pin 异向排线连接开发板的 CEU_CAM 排线座与摄像头转接板的 DVP 排线座。

image-20251103133556818

  • MIPI LCD连接方式如下图:

屏幕型号:冠显 TL043WVV02CT

使用 22Pin 异向排线连接开发板的 MIPI DSI/CSI 排线座与屏幕转接板的 DIS-MIPI 排线座,MIPI 屏幕连接转接板的 TITAN-MIPI 排线座。

image-20251103115211524

FSP 配置

HyperRAM 配置

  • 新建 r_ospi_b stack:

image-20250814160234405

  • 配置 r_ospi_b stack:

image-20250924115414432

image-20251031172229786

image-20251031172918079

  • HyperRAM 引脚配置:

image-20250814160618340

  • HyperRAM 所有相关引脚的驱动能力配置为 H,OM_1_SIO0~OM_1_SIO7 需要配置为输入上拉。

image-20250924114605538

CEU 配置

  • 新建 r_ceu stack:

image-20250815152832972

  • 配置 CEU:

image-20250815153551538

  • 配置 CEU 引脚:

image-20250815154046223

D/AVE 2D 配置

  • 新建 r_drw stack:

image-20250815162521851

GLCDC 配置

  • 新建 r_glcdc stack:

image-20250815161846630

  • 配置中断回调和图形层1:

image-20251017172937776

  • 配置输出参数、CLUT、TCON和抖动。

image-20251017173003817

MIPI DSI 配置

  • 添加 r_mipi_dsi stack。

image-20251017173859873

  • 配置 MIPI DSI_TE 引脚。

image-20251017173139780

RT-Thread Settings 配置

  • 使能 CUE 摄像头,使用 i2c1 和 ov5640 摄像头;使能 MIPI LCD,设置Reset和背光引脚。

image-20260226164928677

编译&下载

  • RT-Thread Studio:在RT-Thread Studio 的包管理器中下载 Titan Board 资源包,然后创建新工程,执行编译。

编译完成后,将开发板的 USB-DBG 接口与PC 机连接,然后将固件下载至开发板。

运行效果

复位 Titan Board 后终端会输出如下信息:

image-20260226165101302

下面是 LCD 屏幕上显示的图像:

image-20260226171437059