RK3568平台(触摸篇)触摸屏基本原理

一.触摸屏概述

触摸屏作为一种新的输入设备,它是目前最简单、方便、自然的一种人机交互方式。
触摸屏又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置;当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。

二.常见触摸屏分类

目前市面上主要有几种类型的触摸屏:电阻式,表面电容式和感应电容式触摸屏,表面声波式,红外式,以及弯曲波式、有源数字转换器式和光学成像式触摸屏。其中又可以为两类,一类需要ITO,比如前三种触摸屏,另一类的结构中不需要ITO, 比如后几种屏。目前市场上,使用ITO材料的电阻式触摸屏和电容式触摸屏应用最为广泛。

三.电阻式触摸屏

电阻式的触摸屏结构如下图,它主要由表面硬涂层、两个ITO层、间隔点以及玻璃底层构成,这些结构层都是透明的,整个触摸屏覆盖在液晶面板上,透过触摸屏可看到液晶面板。表面涂层起到保护作用,玻璃底层起承载的作用,而两个ITO层是触摸屏的关键结构(实际上是一种电阻导体),它们是涂有铟锡金属氧化物的导电层。两个ITO层之间使用间隔点使两层分开,当触摸屏表面受到压力时,表面弯曲使得上层ITO与下层ITO接触,在触点处连通电路。

简单来说就是,当屏幕有位置被按下时,相应位置的两层ITO层接触,也就是两个电阻导体并联起来了,从而导致电器特性的改变。

四.电容式触摸屏

与电阻式触摸屏不同,电容式触摸屏不需要通过压力使触点变形,再通过触点处电压值来检测坐标,它的基本原理和前面定时器章节中介绍的电容按键类似,都是利用充电时间检测电容大小,从而通过检测出电容值的变化来获知触摸信号。

        电容屏的最上层是玻璃(不会像电阻屏那样形变),核心层部分也是由ITO材料构成的,这些导电材料在屏幕里构成了人眼看不见的静电网,静电网由多行X轴电极和多列Y轴电极构成,两个电极之间会形成电容。触摸屏工作时,X轴电极发出AC交流信号,而交流信号能穿过电容,即通过Y轴能感应出该信号,当交流电穿越时电容会有充放电过程,检测该充电时间可获知电容量。若手指触摸屏幕,会影响触摸点附近两个电极之间的耦合,从而改变两个电极之间的电容量,若检测到某电容的电容量发生了改变,即可获知该电容处有触摸动作。

五.触摸屏接口分类

当前市面上使用的触摸屏一般都使用了I2C接口,当然也有UARTUSB等接口,同时支持多点触摸。

I2C接口触摸屏:

首先,需要了解I2C触摸屏的工作原理。I2C触摸屏是一种通过I2C接口连接到SoC的输入设备,它的工作原理类似于普通的触摸屏。一般来言,I2C触摸屏内部驱动板都会有一个触摸IC,比如FT5426

  • 此芯片一端连接触摸屏的模拟信号,对触摸动作采样然后AD转换;
  • 另一端通过I2C连接SoC,即将AD转换后的数据通过I2C接口发给SoC

对于I2C接口触摸屏来说:

  • 所谓的触摸驱动本质上就是I2C设备驱动;

  • 触摸IC提供了中断信号引脚,当检测到触摸信息后就会触发中断,那么就要在中断处理程序里来读取触摸信息;得到的是触摸位置绝对信息以及触摸屏是否有按下;

USB接口触摸屏:

首先,需要了解usb触摸屏的工作原理。USB触摸屏是一种通过USB接口连接到SoC的输入设备,它的工作原理类似于普通的触摸屏。一般来言,USB触摸屏内部驱动板都会有一个USB芯片;

  • 此芯片一端连接触摸屏的模拟信号,对触摸动作采样然后AD转换;
  • 另一端通过USB连接SoC,即将AD转换后的数据通过USB接口发给SoC

linux内核中,USB HID transport layer驱动程序实现了USB接口的HID设备,其中包括USB接口的keyboards(键盘)、mice(鼠标)、joysticks(摇杆)、graphic tablets(绘图板)、触摸屏等其他的。具体来说,它会通过USB总线获取来自触摸屏的数据,并将其转换为标准的输入事件(例如按键、鼠标移动等),然后将其传递给系统。

UART接口触摸屏:

串口触摸屏驱动主要是采用linux系统的input子系统功能,由于Android系统内置采用input输入系统,故串口触摸屏驱动在linux操作系统移植成功后,对android系统将不用任何修改,直接使用。

当然,在串口触摸屏驱动可以使用前,前提就要求底层的串口驱动已经写完而且可以正常工作,否则串口触摸屏驱动就无从谈起了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/711858.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python保存文件后打不开的原因是什么

引入数据集,奇怪的是怎么也打不开,显示不存在这个文件: 但是,我将文件改个名字,就打开了,难道csv的文件命名必须有一定合法性? import pandas users pandas.read_csv("H:\python\data an…

MySQL基础——函数和约束

目录 1函数 1.1字符串函数 1.2数值函数 1.3日期函数 1.4流程函数 2约束 2.1约束概述和演示 2.2外键约束(表连接键) 1函数 函数是指一段可以直接被另一段程序调用的程序或代码。 1.1字符串函数 MySQL中内置了很多字符串函数,常用的…

PCtoLCD2002 图片取模教程

记录一下取模软件,自己也是经常忘记怎么用,比较烦 按照下面这张图来就可以了,STM32的OLED屏幕可以直接用来显示图片。

VisionOS的未来愿景:苹果VisionPro创业者的愿望清单

随着苹果公司在增强现实(AR)领域的不断探索,VisionPro作为其前沿产品,已经开始展现出改变我们与数字世界互动方式的潜力。作为一名VisionPro创业者,对未来VisionOS的更新充满了期待,并提出了一系列愿望清单,这些愿望不仅代表了个人的需求,也反映了用户社区对苹果AR生态的…

算法设计与分析 实验2 分治法求最近点对

目录 一、实验目的 二、实验概述 一、实验目的 掌握分治法思想。学会最近点对问题求解方法。 二、实验概述 分治法也称为分解法、分治策略等。分治法算法思想如下: (1) 将一个问题划分为同一类型的若干子问题,子问题最好规模相同。 (2) 对这些子问题…

微信监控销售防飞单系统,让你的团队业绩稳如泰山!

团队中偶尔出现的私单、飞单问题而烦恼不已?你是否渴望拥有一个神器,能够实时监控销售过程,确保团队业绩的稳健增长?今天,就让我们一起探索这款神奇的“微信监控销售防飞单系统”,让你的销售团队如虎添翼&a…

scrapy爬取豆瓣书单存入MongoDB数据库

scrapy爬取豆瓣书单存入MongoDB数据库 一、安装scrapy库二、创建scrapy项目三、创建爬虫四、修改settings,设置UA,开启管道五、使用xpath解析数据六、完善items.py七、在douban.py中导入DoubanshudanItem类八、爬取所有页面数据九、管道中存入数据,保存至csv文件十、将数据写…

永磁同步直线电机(PMLSM)控制与仿真4-永磁同步直线电机数学三环闭环控制仿真

文章目录 1、参数设置及脚本2、相电流波形3、位置波形4、速度波形5、控制电流波形6、永磁同步直线电机在实际控制中如何控制参考 写在前面:原本为一篇文章写完了永磁同步直线电机数学模型介绍,永磁同步直线电机数学模型搭建,以及永磁同步直线…

《Nest系列 - 1. 运行一个Nest项目以及整体目录学习》

初识Nest心路历程 作为一名前端开发,说实话,学习Nest后端技术, 会有一定的成本。我试着阅读文档,安装项目,把项目跑起来, 当我看到久违的Hellow world 后,还来不及欣喜,就困惑了, 作为一个后端…

cs与msf权限传递,以及mimikatz抓取明文密码

cs与msf权限传递,以及mimikatz抓取win10明文密码 1、环境准备2、Cobalt Strike ------> MSF2.1 Cobalt Strike拿权限2.2 将CS权限传递给msf 3、MSF ------> Cobalt Strike3.1 msf拿权限3.2 将msf权限传递给CS 4、使用mimikatz抓取明文密码 1、环境准备 攻击&…

使用libpurple函数库接入服务器

代码; #define CUSTOM_USER_DIRECTORY "/dev/null" // 定义用户目录 #define CUSTOM_PLUGIN_PATH "" // 定义插件目录 #define PLUGIN_SAVE_PREF "/purple/nullclient/plugins/saved" // 定义插件头目录 #define UI_ID "nullc…

如何实现电脑监视员工的电脑屏幕?六个方法偷偷分享给你

实现电脑监视员工的电脑屏幕,通常需要借助专业的监控软件或系统,这些工具旨在帮助企业管理者监督员工的工作状态,确保工作效率,同时保护公司资产和数据安全。以下是几种常见的实现方式。 1. 使用专业的远程监控软件 安企神软件&a…

如何进行LLM大模型推理优化

解密LLM大模型推理优化本质 一、LLM推理的本质以及考量点 LLM推理聚焦Transformer架构的Decoder以生成文本。过程分两步:首先,模型初始化并加载输入文本;接着,进入解码阶段,模型自回归地生成文本,直至满足…

微服务feign组件学习

手写不易,对您有帮助。麻烦一键三连。也欢饮各位大料指正,交流。 微服务feign组件学习 1.概念1.1 feign 概念1.2 Ribbon概念 2.使用2.1 集成feign2.1.1 maven依赖2.1.2 项目结构 2.2 使用2.2.1 定义feign接口2.2.2 消费端服务调用2.2.3 消费端扫描feig…

基于scikit-learn的机器学习分类任务实践——集成学习

一、传统机器学习分类流程与经典思想算法简述 传统机器学习是指,利用线性代数、数理统计与优化算法等数学方式从设计获取的数据集中构建预测学习器,进而对未知数据分类或回归。其主要流程大致可分为七个部分,依次为设计获取数据特征集&#x…

20240615给飞凌的OK3588-C开发板刷Rockchip原厂的Buildroot后的测试报告

20240615给飞凌的OK3588-C开发板刷Rockchip原厂的Buildroot后的测试报告: 【切记,由于没有替换DTS的,开发板发热量巨大!因此配备鼓风机进行加强散热了】 0、adb 默认没有 1、HDMI IN 4K 2024/6/15 20:32 4K全屏 2、HDMI OUT …

博客论坛系统java博客管理系统基于springboot+vue的前后端分离博客论坛系统

文章目录 博客论坛系统一、项目演示二、项目介绍三、部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 博客论坛系统 一、项目演示 博客论坛系统 二、项目介绍 基于springbootvue的前后端分离博客论坛系统 系统角色&#xff1a…

【Arthas案例】某应用依赖两个GAV不同但包含两个相同全限定类名StaticLoggerBinder,引起log4j.Level类找不到异常

3分钟内解决问题 两个不同的GAV依赖冲突,包含相同全限定类名,引起ClassNotFoundException Maven依赖的三坐标体系GAV(G-groupId,A-artifactId,V-version) 【案例1】某应用依赖两个GAV不同的jar,但包含两个相同全限定类…

虚函数机制-动态绑定的应用

虚函数使得程序在运行的时候根据指针指向对象的类型来确定调用哪个函数。 下图中:都为静态绑定。因为在编译器就确定了可以调用的函数 此时当基类指针指向派生类对象时,因为没有virtual关键字,所以在编译阶段就根据指针类型确定了要指向的函…

MEMS:Lecture 17 Noise MDS

讲义 Minimum Detectable Signal (MDS) Minimum Detectable Signal(最小可检测信号)是指当信号-噪声比(Signal-to-Noise Ratio, SNR)等于1时的输入信号水平。简单来说,MDS 是一个系统能够分辨出信号存在的最低输入信号…