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

相关文章
|
7月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
396 32
|
9月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
2338 77
|
5月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
301 0
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
470 1
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
369 7
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
489 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
存储 Linux 开发工具
如何进行Linux内核开发【ChatGPT】
如何进行Linux内核开发【ChatGPT】
|
Linux API
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
469 1
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
325 137