触摸屏

news/2024/11/24 8:56:51/

0.基本概念

单点触摸:同时只能一个点响应操作,电阻屏就是单点触摸
多点触摸:可以同时几个点响应操作

1.实际应用场景:

(1)一块单板能够兼容多个不同型号的触摸屏,由于这种情况的存在,内核中将会有多个触摸屏程序,同时dts文件中也要配置多款触摸屏设备的信息。
(2)由于上面情况的存在,因此驱动加载时每个驱动实际都要进行加载,一般是在probe函数中,会主动与设备进行通信,如果通信程序驱动往下继续进行,如果不成功会进行重试,达到重试次数后,还未程序,则驱动加载失败

2.硬件接线

(1)一般与主控芯片与触摸屏相连接为4根线,i2c通信的2个引脚,一个复位引脚,一个中断引脚。(大概流程为当按下触摸屏时,会产生中断,主控芯片通过i2c通信从读取数据,然后通过输入子系统往上传递数据)
(2)触摸驱动代码位置:drivers/input/touchscreen,这里包含了各种型号的触摸驱动代码
(3)现有内核代码中包含了3个系类的触摸驱动芯片(具体现有产品具体使用了哪一个触摸芯片,可以通过dmesg信息查看哪一个触摸芯片probe成功):FT3427Chipone --> 北方集创Sitronix --> 矽创电子//设备树中定义的i2c节点,如下
i2c1: i2c@ff190000 {}&i2c1 {status = "okay";focaltech@38 {status = "okay";compatible = "focaltech,3427";//定义的复位引脚,实际通过该引脚可以控制触摸屏的唤醒和休眠,在驱动代码中导出了/sys/kernel/debug/touchscreen/suspend文件,通过写该文件的值即可控制触摸屏的唤醒和休眠focaltech,reset-gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;//定义的中断引脚focaltech,irq-gpio = <&gpio0 RK_PA5 IRQ_TYPE_LEVEL_LOW>;//定义的尺寸大小focaltech,display-coords = <0 0 170 320>;};
}

3.测试触摸屏

# 1.使用evtest命令查看触摸节点是哪一个(在不同产品上触摸节点可能有所不同)
# 方式1: 通过查看名称,查看那个是触摸节点	
# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Typec_Headphone
/dev/input/event1:      rk8xx_pwrkey
/dev/input/event2:      ft3427_ts
/dev/input/event3:      adc-keys
/dev/input/event4:      led_control
/dev/input/event5:      fake-keys# 方式2:通过查看该目录,实际下面的名称为dts文件中定义的名字,例如adc-keys、ff180000.i2c等
# ls -al /dev/input/by-path/
total 0
drwxr-xr-x 2 root root 120 Mar  5  2021 .
drwxr-xr-x 3 root root 180 Mar  5  2021 ..
lrwxrwxrwx 1 root root   9 Mar  5  2021 platform-adc-keys-event -> ../event3
lrwxrwxrwx 1 root root   9 Mar  5  2021 platform-ff180000.i2c-event -> ../event0
lrwxrwxrwx 1 root root   9 Mar  5  2021 platform-ff190000.i2c-event -> ../event2
lrwxrwxrwx 1 root root   9 Mar  5  2021 platform-led_control-event -> ../event4[root@YoudaoDictionaryPen-417:/usr/bin]# evtest /dev/input/by-path/platform-ff190000.i2c-eventInput driver version is 1.0.1
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0
Input device name: "chipone-ts"
Supported events://事件类型Event type 0 (EV_SYN)Event type 1 (EV_KEY)//哪些操作能够产生该种事件Event code 102 (KEY_HOME)Event code 139 (KEY_MENU)Event code 158 (KEY_BACK)Event code 330 (BTN_TOUCH)Event type 3 (EV_ABS)Event code 0 (ABS_X)//该动作产生的数据值Value      0Min        0Max      480Event code 1 (ABS_Y)Value      0Min        0Max      800Event code 47 (ABS_MT_SLOT)Value      0Min        0Max        0Event code 53 (ABS_MT_POSITION_X)Value      0Min        0Max      480Event code 54 (ABS_MT_POSITION_Y)Value      0Min        0Max      800Event code 57 (ABS_MT_TRACKING_ID)Value      0Min        0Max    65535
Properties:Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)//一个点按下,抬起日志
Event: time 1612762651.283192, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 72
Event: time 1612762651.283192, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 273
Event: time 1612762651.283192, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 309
Event: time 1612762651.283192, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 //按键按下
Event: time 1612762651.283192, -------------- SYN_REPORT ------------
Event: time 1612762651.320801, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 310
Event: time 1612762651.320801, -------------- SYN_REPORT ------------
Event: time 1612762651.358969, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 309
Event: time 1612762651.358969, -------------- SYN_REPORT ------------
Event: time 1612762651.368736, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1612762651.368736, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 //按键抬起
Event: time 1612762651.368736, -------------- SYN_REPORT ------------

5.触摸屏重要参数

报点率:
定义:触摸屏每秒钟向上报的触点信息的次数,跟通信协议也有关系,一般报点率会在60-100之间,意思是1s钟上报60个点或者100个点,如果为100个点,则2个点直接的时间间隔为10mss
实际场景:报点率高,可以真实的还原你触摸的轨迹,如果你想在电容屏上签名,很潇洒的签名,报点率需要在100点以上。目前微软认证只需要60点以上即可通过。因为英文字母的轨迹没有汉字的复杂,所以报点率要求不高。对于书写汉字的人来说,报点率100点还是有必要的。
evtest /dev/input/by-path/platform-ff190000.i2c-event | grep ABS_MT_POSITION_X//可以查看2个上报点之间的时间间隔是否为10msEvent: time 1614931095.505309, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 83Event: time 1614931095.514727, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 86Event: time 1614931095.523403, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 92

6.参考文档

单点触摸与多点触摸
多点触控(MT)协议


http://www.ppmy.cn/news/137387.html

相关文章

电阻式触摸屏

电阻式触摸屏工作原理 电阻式触摸屏主要是利用压力感应进行控制。它的构成是显示屏及一块与显示屏紧密贴合的电阻薄膜屏。这个电阻薄膜屏通常分为两层&#xff0c;一层是由玻璃或有机玻璃构成的基层&#xff0c;其表面涂有透明的导电层&#xff1b;基层外面压着我们平时直接接触…

三星显示器的触摸按键是热感应的~

三星显示器SyncMaster 943测试 供应商&#xff1a;公司电脑 三星显示器的触摸按键是热感应的~ 经过测试&#xff0c;除了人手和装了热水的保温瓶的外壁&&#xff08;较热&#xff09;外&#xff0c; 别的例如&#xff0c;笔&#xff0c;便签纸 接触上去不行触发&#x…

工业触控一体机的特点和优势

工业触控一体机在整体管控协调下升级生产车间&#xff0c;为生产车间注入动&#xff0c;提高生产效率,降低生产成本&#xff0c;大大提高企业效益。同时在电信、多媒体、国防、交通、医疗等各个领域的应用也逐渐拓展。 工业触控一体机机多尺寸可选&#xff0c;具备显示、交互功…

触摸屏接口

转自&#xff1a;http://book.51cto.com/art/201304/390529.htm 在Linux系统中&#xff0c;所有的输入设备(键盘、鼠标、触摸屏)都使用统一的输入系统进行管理。每个/dev/input/eventX都对应着一个输入设备。这些输入设备可以通过对应的/sys/class/ input/inputX/name文件查询到…

永嘉原厂超小体积单键单通道1路触摸触控检测IC-VK233DS/HS DFN6封装,适用各种小体积触摸类产品,提供技术支持

产品型号&#xff1a;VKD233DS/HS 产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;DFN6 产品年份&#xff1a;新年份 VKD233DS/HS 概述&#xff1a; VKD233DS/HS DFN6是单按键触摸检测芯片, 此触摸检测芯片内建稳压电路, 提供稳定的电压给触摸感应电路使用, 稳定的…

应用在触摸面板中的电容式触摸芯片

触摸屏&#xff08;Touch Panel&#xff09;又称为“触控屏”、“触控面板”&#xff0c;是一种可接收触头等输入讯号的感应式液晶显示装置&#xff0c;当接触了屏幕上的图形按钮时&#xff0c;屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置&#xff0c;可用以取代…

触屏计算机显示器CDU,触摸屏显示器是什么 触摸屏显示器怎么样【详解】

【触摸屏显示器】触摸屏显示器是什么 触摸屏显示器怎么样 触摸屏显示器是什么 触摸屏显示器 ( Touch Screen )可以让使用者只要用手指轻轻地碰计算机显示屏上的图符或文字就能实现对主机操作&#xff0c;这样摆脱了键盘和鼠标操作&#xff0c;使人机交互更为直截了当。主要应用…

触摸屏分类

按照触摸屏的工作原理和传输信息的介质&#xff0c;我们把触摸屏分为四种&#xff0c;它们分别为电阻式、电容感应式、红外线式以及表面声波式。每一类触摸屏都有其各自的优缺点&#xff0c;要了解那种触摸屏适用于那种场合&#xff0c;关键就在于要懂得每一类触摸屏技术的工作…