1. 视频模式与命令模式:从“实时直播”到“按需点播”
大家好,我是老张,在嵌入式显示这块摸爬滚打了十几年,从早期的RGB、LVDS到现在的MIPI DSI,各种接口都折腾过。今天咱们就来掰扯掰扯MIPI DSI里最核心的两个工作模式:Video模式和Command模式。这俩概念听起来有点技术范儿,但用大白话讲,它们决定了你的主控芯片(比如RK3588)和屏幕之间是怎么“聊天”的,是像直播一样不停地说,还是像发微信一样有需要才说。
很多刚接触的朋友容易把这两个模式和D-PHY物理层的HS(高速)模式、LP(低功耗)模式搞混。我得先强调一下:Video和Command是链路层,属于“聊什么、怎么聊”的协议层面;而HS和LP是物理层,属于“用多大嗓门聊”的电平层面。这是两码事,但它们在具体工作时又紧密配合。比如,在Video模式下,图像数据通常用“大嗓门”(HS)快速传输;而在Command模式下,既可以“大声喊”(HS)快速发一帧数据,也可以“小声说”(LP)慢慢发个配置命令。
我见过不少项目,因为一开始没选对模式,导致屏幕驱动调起来特别费劲,要么功耗下不来,要么刷新率上不去。所以,理解这两种模式的本质,是你玩转MIPI DSI显示的第一步。接下来,我们就深入看看它们各自是怎么工作的,以及在实际项目中,比如用瑞芯微的RK3588芯片时,你该怎么选。
2. 命令模式详解:为“智能”屏幕而生
2.1 工作原理:把帧缓存交给屏幕
Command模式,我习惯叫它“命令模式”或者“智能屏模式”。它的核心思想是:主控(Host)只负责发送变化的图像数据或控制命令,屏幕自己有一个内置的帧缓冲区(Frame Buffer)。
你可以把它想象成这样一个场景:主控芯片是导演,带了一块有独立记忆(帧缓存)的智能屏幕(演员)。导演不需要每时每刻告诉演员每一句台词(像素数据)。只需要在剧情(画面)需要改变时,比如换了个场景,导演才把新的剧本(一帧图像数据)发给演员。演员拿到新剧本后,就存进自己的脑子里(帧缓存),然后自己一遍又一遍地、稳定地把这个场景表演出来(持续显示),直到导演下发下一个新剧本。
在技术实现上,这个过程是这样的:
- 初始化阶段:主控通过DSI接口,以LP或HS模式发送初始化命令序列,告诉屏幕分辨率、色彩格式、扫描方式等参数。
- 数据更新阶段:当应用程序更新了GUI界面,需要刷新屏幕时,主控的显示控制器(如RK3588的VOP)会将新的帧数据搬运到专为DSI准备的内存区域。
- 数据传输:DSI Host控制器将这些数据打包成DSI数据包,通过MIPI总线发送给屏幕。这里的数据传输必须是双向的,因为主控需要读取屏幕的状态(如TE信号),以确定何时发送下一帧数据,避免覆盖屏幕正在读取的缓存区,造成撕裂。
- 屏幕自刷新:屏幕端的驱动芯片(通常是一颗MCU,如ST7789、ILI9341等)收到数据后,将其写入自身的帧缓存。之后,屏幕的驱动电路就独立地、周期性地从自己的缓存里读取数据,转换成RGB信号驱动液晶面板。在此期间,主控可以进入休眠或处理其他任务,非常省电。
2.2 典型应用场景与硬件要求
Command模式的应用领域非常明确,主要针对内置显存和驱动IC的屏幕模组,也就是我们常说的“MCU屏”或“智能屏”。
- 常见芯片:像ILI9341、ST7789、SSD1306(OLED)这类驱动芯片都支持Command模式。它们内部集成了GRAM(图形内存)。
- 接口特点:除了MIPI DSI,这类屏幕也常通过SPI、8080并行总线等低速接口连接,因为数据传输不是持续的。
- 优势场景:
- 低功耗设备:智能手表、手环、物联网终端。屏幕显示静态画面时,主控可以深度睡眠,只有需要更新时才唤醒,极大延长续航。
- 低主频MCU系统:用STM32、ESP32这类单片机驱动屏幕时,其有限的RAM和带宽无法承受持续刷新的数据流,Command模式是唯一选择。
- 小尺寸、低分辨率屏:3.5英寸以下,分辨率在480x320(HVGA)或800x480(WVGA)左右的屏常见此模式。因为屏幕内置的GRAM成本随分辨率平方增长,分辨率太高就不经济了。
硬件连线注意:采用Command模式时,DSI接口的双向数据线是必须的。因为主控需要

1191

被折叠的 条评论
为什么被折叠?



