Framebuffer驱动详解

1. LCD简介

1.1 LCD屏幕

LCD由一个一个像素组成:每行有xres个像素,有yres行,它的分辨率是:xres * yres。

只要我们能控制任意一个像素的颜色,就可以在LCD上绘制文字、图片。

1.2 像素的颜色表示

用红绿蓝三颜色来表示,可以用24位数据来表示红绿蓝,也可以用16位等等格式,比如:

  • bpp:bits per pixel,每个像素用多少位来表示

  • 24bpp:实际上会用到32位,其中8位未使用,其余24位中分别用8位表示红(R)、绿(G)、蓝(B)

  • 16bpp:有rbg565,rgb555

    • rgb565:用5位表示红、6位表示绿、5位表示蓝

    • rgb555:16位数据中用5位表示红、5位表示绿、5位表示蓝,浪费一位

发送颜色过程:假设每个像素的颜色用16位来表示,那么一个LCD的所有像素点假设有xres * y res个, 需要的内存为:xres * yres * 16 / 8,也就是要设置所有像素的颜色,需要这么大小的内存。 这块内存就被称为framebuffer:

  • Framebuffer中每块数据对应一个像素

  • 每块数据的大小可能是16位、32位,这跟LCD上像素的颜色格式有关

  • 设置好LCD硬件后,只需要把颜色数据写入Framebuffer即可

1.3 从驱动角度理解LCD

驱动工程师对LCD的理解要深入硬件,比如要回答这几个问题:

  • Framebuffer在哪里?

  • 谁把Framebuffer中的数据发给LCD?

统一的LCD硬件模型:

 有一个MIPI标准:

MIPI表示Mobile Industry Processor Interface,即移动产业处理器接口。是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。主要是手机内部的接口(摄像头、显示屏接口、射频/基带接口)等标准化,从而减少手机内部接口的复杂程度及增加设计的灵活性。

对于LCD,MIPI接口可以分为3类:

  • MIPI-DBI (Display Bus Interface)

    • 这种接口是一种并行接口,能够同时发送数据和命令。
    • 它通常用于传统的LCD显示技术,与8080、6800等并行接口类似。
    • DBI接口支持多种数据宽度,包括8位、9位、16位、18位和24位,以适应不同的颜色深度和显示需求。
  • MIPI-DPI (Di

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值