1 . 应用看到的LCD
lcd是由一个个像素点组成,每行有xres个像素,有yres行,它的分辨率是xres * yres。
1.1 颜色怎么表示
用红绿蓝三色来表示,可以用24位数来表示红绿蓝,也可以用16位等格式,比如
- bpp:bits per pixel 每一个像素多少位来表示
- 24 bpp 实际会用到32位,但是8位未使用,其余24位中,分别用8位来表示红(R)绿 (G)l蓝(B)
- 16 bpp 有rbg565、rgb 555
- rgb 565: 5位表示红、6位表示绿、5位表示蓝
- rgb 555: 5位表示红、5位表示绿、5位表示蓝
1.2 怎么把颜色发到LCD
假设每个像素的颜色用16位来表示,那么一个LCD的所有像素点假设有xres * yres 个,
那么需要的内存大小位:xres * yres * 16/8 那么需要这么大小的内存。这块内存被称为framebuffer:
- Framebuffer 中每块数据对应一个像素
- 每块数据大小可能是16位、32位、这个跟LCD上像素的颜色格式有关
- 设置好LCD硬件后,只需要把颜色写入framebuffer即可
2 . 驱动看到的LCD
回答问题:
- Framebuffer 在哪里?
- 谁把Framebuffer 中的数据发给LCD
2.1 统一的LCD 硬件模型
- RBG的数据来自LCD控制器
- DCLK 数据负责移动像素
- HSYNC 移动的到下一行
- VSYNE 从最后一行跳到首行
- DE 决定数据是否有效
2.2 MCU常用的8080接口LCD模组
CSX 片选引脚
RESX 复位引脚
D/CX 数据引脚/命令引脚
WRX 写引脚
RDX 读引脚
D 数据信号
2.2 MPU常用的TFT接口RGB接口 (如上LCD硬件模型)
2.3 MIPI标准
MIPI表示Mobile Industry Processor Interface
,即移动产业处理器接口。是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。主要是手机内部的接口(摄像头、显示屏 接口、射频/基带接口)等标准化,从而减少手机内部接口的复杂程度及增加设计的灵活性。
对于LCD,MIPI接口分为三类
- MIPI-DBI(Display bus Interface)
- bus总线 就是既能发送数据,也能发送命令 常用的8080就是DBI接口
- Type B (i-80 system), 8-/9-/16-/18-/24-bit bus
- Type C (Serial data transfer interface, 3/4-line SPI)
- MIPI-DPI (Display Pixel Interface
- Pixel(像素),强调的是操作单个像素,在MPU上的LCD控制器就是这种接口
- Supports 24 bit/pixel (R: 8-bit, G: 8-bit, B: 8-bit)
- Supports 18 bit/pixel (R: 6-bit, G: 6-bit, B: 6-bit)
- Supports 16 bit/pixel (R: 5-bit, G: 6-bit, B: 5-bit)
-
Serial,相比于DBI、DPI需要使用很多接口线,DSI需要的接口线大为减少
-
Supports one data lane/maximum speed 500Mbps
-
Supports DSI version 1.01
-
Supports D-PHY version 1.00
-