【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认证博客专家、人人都是产品经理专栏作家。关注智能硬件领域,擅长市场分析、产品设计开发、生产管理等,喜欢阅读和爬山。

相关文章
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
767 15
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
690 13
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
547 1
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
613 9
Apache IoTDB进行IoT相关开发实践
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
493 7
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
1090 3
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
603 0
Apache IoTDB进行IoT相关开发实践
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
854 0
|
消息中间件 缓存 Unix
[面试必备]嵌入式Linux内核开发必须了解的三十道题
[面试必备]嵌入式Linux内核开发必须了解的三十道题
|
Linux Go 人机交互
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定