MIPI DSI --- DCS(Display Command Set)
MIPI 协议族,定义了一个专门用于显示的命令集,叫做 Display Command Set,简称为 DCS。屏幕制造商(屏幕驱动芯片)都使用这一套标准。
Display Architectures
按照是否带有帧缓存,分为三种架构:不带帧缓存、带完整一帧的缓存、带一部分帧缓存。
如果带了 Framebuffer,那么图形数据不用每次都从主机获取,主机刷一次数据到 Display Device 的 Framebuffer 中,然后 Display Device 就自己会将它自己的 Framebuffer 往屏(Panel)上面刷
如果 Display Device 不带 Framebuffer,为了维持屏上有数据,需要主机不停的给 Display Device 灌数据,并显示到 panel 上
Display Command Set
DCS 用于发送 pixel 数据,配置 Display Module,或者读 Display Module 的一些数据或者寄存器;
DCS 分为两类:
- User Command Set
- Manufacturer Command Set
Command 域都是 8-bit 的(1 Byte);其中 0x00 - 0xAF 是 User Command Set 的,其余的留给了 Manufacturer Command Set;
Manufacturer Command Set (MCS)是厂商用的,在出厂的时候,设置的一些默认的参数,一旦出厂,这些命令不可见了,会被认为是 NOP;
User Command Set 是独立的部分,里面的所有的 Command(除了write_LUT),都应该被 Display Module 厂家实现;
其他的未定义的 Command 码,都应该被视作 NOP;
Command List
DCS 定义了很多很多的 Command,每个 Command 都有 Command Code,有的 Command 带参数,有的不带,有的只适用与 Type1、2、3架构的一种;DCS 的 List 如下所示:
数据包
MIPI DSI
协议包括短数据包和长数据包
对于短数据包,格式为:DI
+ DATA0~1
+ ECC
。
对于长数据包,格式为:PH
(DI
+ Word Count
+ ECC
) + Packet Data
+ PF
。
Data Identifier (DI)
数据标识字节包含虚拟通道标识值和数据类型值,虚拟通道标识在数据标识字节的高两位,数据类型值包含在数据标识字节的第六位。
DI
中Data Type
部分值的含义如下:
0x5:没有参数,即只有1个CMD
,比如命令0x11。
0x15:1个参数,即1个CMD
+ 1个Parameter
,比如命令0x36。
0x39:长包写,接1个CMD
+2个及以上的Parameter
,比如0xF0、0xF1。