【IoT】嵌入式Linux开发:LCD设备驱动

简介: LCD驱动

液晶面板主要是由两块无钠玻璃夹着一个由偏光板、液晶层和彩色滤光片构成的夹层所组成。

液晶是一种规则性排列的有机化合物,它是一种介于固体和液体之间的物质,液晶本身并不能够
发光,而是通过控制光线的通过比例来显示图像。

因此需要一个光源,液晶只是光线传输所经过的介质。

偏光板、彩色滤光片决定了有多少光可以通过以及生成何种颜色的光线。

LCD类型
TN型液晶屏:光线90度旋转,只有明暗两种情形(或称黑白),屏不易做很大
STN型液晶屏:光线180~270度旋转加上彩色滤光片即可显示彩色图像,改变了TN型屏的一些缺点
TFT型液晶屏(薄膜晶体管液晶屏):每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动
。速度高、亮度高、对比度高、分辨率高,显示效果出色

对于一幅图片或者一块LCD一般的描述参数:
分辨率、色深、尺寸、PPI等

分辨率
一幅图像被称为一帧(frame),每帧有若干行、列的像素数组成,常见的分辨率如下:
320240(QVGA) 640480(VGA) 800*480(WVGA)
800600(SVGA) 1280800(WXGA) ………

色深(色位)
每个像素的颜色使用若干位的二进制数据来表示,常见的色深如下:
RGB565(65K)
RGB888(16M)
红、绿、蓝3基色的分量
1679278044511.jpg

图1

对于一幅图片或者一块LCD一般的描述参数:
分辨率、色深、尺寸、PPI等

尺寸
一般液晶屏使用对角线的长度表示屏幕的大小
单位为英寸,常见的屏幕尺寸为:
2.0寸、2.5寸、3.0寸、5寸、7寸、17寸、19寸

PPI(pixels per inch)
在图像中,每英寸所包含的像素数,也是描述一个图片信息的重要属性,图像
ppi值越高,画面的细节就越丰富
常见的PPI值有:72ppi,180ppi和300ppi
DPI为打印机参数

LCD连接方式
PC机领域显示器常见接口有:
VGA(模拟接口)、DVI(数字接口)、HDMI(数字高清接口)

嵌入式领域多LCD常见接口有:
MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式等。

MCU模式
LCD自带控制器,会解码命令,产生时序信号驱动lcd
MCU模式下,数据可以先存到IC内部GRAM后再往屏上写,所以这种模式LCD可以直接接在MEMORY的总线上。
优点是:控制简单方便,无需时钟和同步信号
缺点是:要耗费GRAM,所以难以做到大屏(QVGA以上)

RGB模式
分为模拟RGB、 ADC接口、数字RGB接口。
RGB接口的TFT LCD,没有内部RAM,具有HSYNC、VSYNC、ENABLE、CS、RESET、RS信号
不带RAM所以资料是直接往屏上写的,不能保存,所以要往屏上不断的写资料,不这样做屏就会变白,需要外部RAM,把资料存在外部RAM里,再往屏上刷,通常连接到接有RAM的CPU上 ,CPU带有LCD的控制器。

该模式的屏色彩鲜艳尺寸可以做大,可用于手机、PDA、平板电脑等领域
1679278045844.jpg

图2

1679278061927.jpg

图3

VSYNC信号有效时,代表一桢数据的开始
VSPW表示VSYNC信号的脉冲宽度为(VSPW+1),本周期内数据无效
VSYNC信号脉冲之后,还需经过(VBPD+1)个行时钟周期,行信号才有效
HSYNC信号有效时,表示一行数据的开始同帧扫信号,在经过(HSPW+1)、(HBPD+1)像素时钟
后,数据时钟才有效

随后发出HOZAL+1个像素的有效数据
行结束时:发出 (HFPD+1)个结束时钟,表示一行结束
帧结束时:发出(VFPD+1)个结束时钟,代表一桢结束

SPI模式
采用较少,连线为CS/,SLK,SDI,SDO四根线,连线少但是软体控制比较复杂。

VSYNC模式
该模式是在MCU模式下增加了一根VSYNC(帧同步)信号线而已,应用于运动画面更新。

MDDI模式
高通公司于2004年提出的接口MDDI(Mobile DisplayDigital Interface),通过减少连线可提高移动电话的可靠性并降低功耗,这将取代SPI模式而成为移动领域的高速串行接口。

专栏作家

卫朋,公号:产品人卫朋,CSDN认证博客专家、人人都是产品经理专栏作家。关注智能硬件领域,擅长市场分析、产品设计开发、生产管理等,喜欢阅读和爬山。

相关文章
|
9天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
62 13
|
27天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
36 1
|
4月前
|
NoSQL Unix Linux
Linux 设备驱动程序(一)(上)
Linux 设备驱动程序(一)
170 62
|
2月前
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
93 7
|
4月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
60 6
|
4月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
62 5
|
4月前
|
存储 缓存 Unix
Linux 设备驱动程序(三)(上)
Linux 设备驱动程序(三)
56 3
|
4月前
|
缓存 安全 Linux
Linux 设备驱动程序(一)((下)
Linux 设备驱动程序(一)
51 3
|
4月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
156 3
|
4月前
|
安全 数据管理 Linux
Linux 设备驱动程序(一)(中)
Linux 设备驱动程序(一)
37 2