4、LCD驱动接口类型对比:MCU 8080、SPI、RGB、MIPI DSI

在单片机驱动LCD TFT屏的工程实践中,驱动接口的选择直接决定了传输带宽、引脚占用、硬件复杂度以及DMA适配策略。本章对四种主流接口——MCU 8080并行接口、SPI串行接口、RGB并行接口、MIPI DSI接口——进行系统性对比,从电气特性、传输机制、DMA友好度、典型应用场景四个维度展开分析。

4.1 接口类型总览

下表从核心参数层面给出四种接口的横向对比,帮助快速建立整体认知。

对比维度 MCU 8080 SPI (串行) RGB (并行) MIPI DSI
信号线数量 8~16 数据线 + 控制线 (约12~20根) 4~6 根 (SCLK, MOSI, MISO, CS, DC, RST) 16~24 根 (R/G/B各5~8位 + HSYNC/VSYNC/DE/CLK) 2~4 对差分线 (CLK+, CLK-; D0+, D0-; …)
最大时钟频率 10~30 MHz 20~80 MHz (单线/双线/四线) 10~40 MHz (像素时钟) 200~1000 MHz (每通道)
理论峰值带宽 ~480 MB/s (16位@30MHz) ~40 MB/s (四线@80MHz) ~240 MB/s (24位@40MHz) ~4 Gbps (4通道@500MHz)
是否需要GRAM 需要 (LCD内置或外挂) 需要 (LCD内置) 不需要 (直接刷新) 不需要 (视频流直写)
DMA适配难度 中等 (需处理控制信号时序) 简单 (标准SPI DMA) 较高 (需同步HSYNC/VSYNC) 复杂 (需协议层封装)
典型应用 小尺寸 (3.5"以下) 工控屏 低功耗穿戴、小屏 (<2.8") 中尺寸 (3.5"~7") 消费电子 大尺寸 (5"以上) 手机/平板
选型提示: 对于单片机驱动场景,MCU 8080和SPI接口因控制简单、DMA适配成熟,是入门首选;RGB接口适合需要高帧率刷新的中尺寸屏;MIPI DSI虽然带宽最高,但通常需要专用硬件控制器,在低端MCU上实现难度较大。

4.2 MCU 8080 并行接口

MCU 8080接口(又称Intel 8080时序)是早期单片机驱动LCD最常用的并行接口。它通过数据总线(8位或16位)和控制信号(CS、WR、RD、DC、RST)完成命令与数据的写入。

  • 传输机制: 写操作时,MCU将数据/命令放到数据线上,拉低WR信号,在WR上升沿锁存数据。读操作类似,通过RD信号控制。
  • DMA适配: 通常使用MCU的FSMC(Flexible Static Memory Controller)或并行DMA控制器,将LCD映射为外部存储器地址,DMA直接向该地址写入数据块。
  • 优势: 时序简单,MCU可直接控制;支持随机读写,适合局部刷新。
  • 劣势: 引脚占用多,布线复杂;带宽受限于MCU并行总线频率,高分辨率下帧率不足。
// MCU 8080 写数据示例 (16位模式)
void LCD_WriteData16(uint16_t data) {
    // 设置DC为高电平 (数据模式)
    GPIO_SetBits(GPIO_LCD_DC);
    // 将数据放到数据总线
    GPIO_Write(GPIO_LCD_DATA, data);
    // 产生WR脉冲
    GPIO_ResetBits(GPIO_LCD_WR);
    delay_ns(10);  // 保持时间
    GPIO_SetBits(GPIO_LCD_WR);
}

4.3 SPI 串行接口

SPI接口以串行方式传输数据,引脚少、布线简单,在低功耗和小尺寸LCD驱动中占据主导地位。常见的变体包括标准SPI(单线)、Dual SPI(双线)和Quad SPI(四线)。

  • 传输机制: 主设备(MCU)通过SCLK提供时钟,MOSI线发送数据,MISO线接收数据(LCD通常只写,MISO可省略)。DC线区分命令/数据。
  • DMA适配: 几乎所有MCU的SPI外设都支持DMA请求,只需配置SPI的TX DMA通道,将显存缓冲区地址作为源地址即可实现自动发送。
  • 优势: 引脚极少(最少4根),PCB布局灵活;DMA实现简单,适合低功耗场景。
  • 劣势: 串行传输带宽有限,高分辨率(如480×320以上)全屏刷新时帧率较低;不支持随机读操作。
DMA优化要点: 使用Quad SPI模式可将带宽提升4倍;配合DMA双缓冲(ping-pong buffer)可消除刷新间隙的停顿,实现连续帧传输。

4.4 RGB 并行接口

RGB接口是一种直接面向像素的并行接口,它不依赖LCD内部的GRAM,而是由MCU或图形控制器直接向LCD提供像素时钟、行同步、场同步和像素数据。LCD内部仅保留少量行缓冲。

  • 传输机制: 像素时钟(PCLK)驱动数据线(R/G/B各5~8位)逐像素传输;HSYNC标识一行结束,VSYNC标识一帧结束,DE信号标识有效数据区域。
  • DMA适配: 需要MCU的DMA控制器能够与外部同步信号(HSYNC/VSYNC)协同工作。通常使用DMA的循环模式,将显存数据按行/帧连续搬运到GPIO或专用LCD控制器。
  • 优势: 无需LCD内置大容量GRAM,成本低;刷新率完全由像素时钟决定,可实现高帧率(60fps以上)。
  • 劣势: 引脚数量多(16~24根);时序要求严格,MCU需有足够的GPIO翻转速率或专用LCD控制器;不支持局部刷新(必须整帧刷新)。
// RGB接口DMA传输配置伪代码 (基于STM32 LTDC)
void RGB_DMA_Config(void) {
    // 配置LTDC层参数:窗口大小、像素格式、显存地址
    LTDC_Layer_InitTypeDef layer_cfg;
    layer_cfg.WindowX0 = 0;
    layer_cfg.WindowY0 = 0;
    layer_cfg.WindowX1 = LCD_WIDTH;
    layer_cfg.WindowY1 = LCD_HEIGHT;
    layer_cfg.FBStartAdress = (uint32_t)frame_buffer;
    layer_cfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
    HAL_LTDC_ConfigLayer(&hltdc, &layer_cfg, 0);

    // 使能LTDC的DMA传输 (硬件自动搬运)
    HAL_LTDC_Start(&hltdc);
}

4.5 MIPI DSI 接口

MIPI DSI(Display Serial Interface)是移动设备领域的主流高速串行接口,采用差分信号传输,具有极高的带宽和抗干扰能力。在单片机领域,通常需要集成DSI控制器的高性能MCU(如STM32MP1系列)才能支持。

  • 传输机制: 使用一对差分时钟线和1~4对差分数据线,通过高速模式(HS)传输视频数据,通过低功耗模式(LP)传输命令。支持多种数据包类型(短包、长包、EoT包)。
  • DMA适配: DSI控制器内部通常集成DMA引擎,MCU只需将帧数据写入DSI的FIFO,控制器自动完成打包、编码和串行化发送。高级MCU支持DMA直接向DSI FIFO写入。
  • 优势: 带宽极高(单通道可达1Gbps),支持高分辨率(1080p以上);差分信号抗干扰强,适合长距离传输;引脚极少(4~10根)。
  • 劣势: 协议复杂,需要专用硬件控制器;MCU选型受限,成本高;调试难度大,需要协议分析仪。
工程注意: 在低端MCU上模拟MIPI DSI时序几乎不可行,必须使用内置DSI控制器的芯片。如果项目预算有限且分辨率低于480×320,建议优先考虑SPI或MCU 8080接口。

4.6 接口对比总结与DMA策略选择

下图从带宽、引脚数、DMA实现难度三个维度对四种接口进行可视化对比,帮助开发者在项目初期做出合理选择。

四种LCD驱动接口综合对比雷达图 带宽 引脚数 (少→多) DMA实现难度 (低→高) MCU 8080 SPI RGB MIPI DSI 选型建议: • 低分辨率、低功耗、引脚受限 → SPI (DMA实现最简单) • 中分辨率、需要局部刷新 → MCU 8080 (FSMC+DMA成熟) • 高帧率、中大尺寸 → RGB (需MCU支持LTDC或GPIO高速翻转) • 超高分辨率、长距离 → MIPI DSI (需专用控制器)