0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

「技术干货」工业触摸屏之驱动开发及异常分析(连载)

武汉万象奥科 2022-06-10 10:54 次阅读

触摸屏作为嵌入式产品中常用的交互设备,具有交互直观,编程简易等特点,本系列文章将以多种角度分析如何选择合适的触摸屏方案及常见的故障解决方法。本文主题为电阻屏的驱动组成以及多数触摸屏的异常分析。

1.1 测试环境

处理器:AM335x

内核版本:Linux-3.2

硬件条件:四线电阻屏、五线电阻屏

1.2 驱动组成部分

触摸屏的处理流程离不开,响应中断上报事件,对于电容屏同样有效的。所以对于触摸屏,只需仅仅把握中响应中断上报事件的流程,即可定位是软件还是硬件故障。

以AM335x的电阻屏为例,涉及的驱动子系统列表如表1.1所示。触摸子系统是对触摸屏的抽象层,输入子系统提供符合上层应用使用的接口,中断子系统负责接收外设的中断信号ADC子系统负责提供电场信号以及采集电压值。

表1.1 电阻屏相关驱动

get?code=MDJiNTM3MzQ0YjdjZWVlN2ZmOWQ5MThhNTY0OGFlYTQsMTY1NDgyNjA3MjU1Mw==

1.3 AM335x电阻屏驱动

相关代码位置如表1.2所示。

表1.2 电阻屏代码路径

get?code=MmEyZjQxYTUwN2U5OGU0ZWJmMzhlZWUyOTdkZDIxZTYsMTY1NDgyNjA3MjU1Mw==

板级文件记录下ADC模组中哪些通道用作触摸功能,哪些通道用作模数转换功能,如代码清单1.1所示。

代码清单1.1 板级描述文件

路径:arch/arm/mach-omap2/board-am335xevm.c

get?code=MDQyOTZkMDJlY2Y1MmU3NDVhNjMwZDM4MDc4MmMzYzIsMTY1NDgyNjA3MjU1Mw==

ADC模块驱动是对ADC通道的抽象整理,会涉及部分触摸的寄存器。例如《【应用技术】触摸屏技术之二:原理分析》中提到CTRL Register的AFE_Pen_Ctrl Bits用于选择中断触发信号输入脚,如代码清单1.2所示。

代码清单1.2 ADC模块驱动

路径:drivers/mfd/ti_tscadc.c

get?code=OGEyODZmMzUzZDVkYWU5YjE3NGU3MjIwOTQwMzkwOGUsMTY1NDgyNjA3MjU1Mw==

最后就来介绍负责抽象整个触摸设备的触摸屏驱动文件,触摸驱动内封装了中断、ADC模组的寄存器操作、输入事件的上报工作。

设置X轴采集时的配置如代码清单1.3所示。结合《【应用技术】触摸屏技术之二:原理分析》的《四线屏寄存器配置》和《五线屏寄存器配置》内容可知,stepconfigx为X轴采集时的通用配置,当系统设备为四线模式时,开启XPP、XNN形成电场,INP值代表采集引脚为AN2。当系统设备为五线模式时,开启XPP、YNN、XNN、YPP形成电场,INP_5代表采集引脚为AN4。

代码清单1.3 X轴ADC配置

路径:drivers/input/touchscreen/ti_tsc.c

get?code=Nzc0ZDg5ZDA3ZDU0YzE2ZmMyMzJiZjY2Nzc0YTI2ZDIsMTY1NDgyNjA3MjU1Mw==

设置Y轴采集时的配置如代码清单1.4所示,stepconfigy为Y轴采集时的通用配置,当系统设备为四线模式时,开启YPP、YNN形成电场,INP值没有设置,默认使用AN0。当系统设备为五线模式时,开启XPP、YNN、XNP、YPN形成电场,INP_5代表采集引脚为AN4。

代码清单1.4 Y轴ADC配置

路径:drivers/input/touchscreen/ti_tsc.c

get?code=Yjc1NmEwYTI1ZTAwMzBjNzdjMjQzNTNmMDUxOWEwNDksMTY1NDgyNjA3MjU1Mw==

处理器完成ADC采集后,需要触发一个中断,中断处理函数的注册代码如代码清单1.5所示。对于用户层来说,最直观的就是查看此中断在系统中触发几次,所以此时的中断名就是request_irq内传入的中断名参数

代码清单1.5 中断函数设计

路径:drivers/input/touchscreen/ti_tsc.c

get?code=MjRhNzNkYTI2YzRhMTJhYmZjZmI3YmYxYmUyOWE5NWQsMTY1NDgyNjA3MjU1Mw==

最后一点就是对输入子系统的封装,在触摸屏代码内必不可少的就是input子系统的调用,代码如代码清单1.6所示,input_report即为输入子系统上报函数族,上报事件包括:按键按下、按键弹起、绝对坐标、相对坐标等。所以对于系统来说,最终只要input_report能顺利执行,那么触摸信号就能正常获取。

代码清单1.6 输入子系统设计

路径:drivers/input/touchscreen/ti_tsc.c

get?code=ZWI0ZWFjNDczZjhlODJhZDA0YmM4OTRlMGQxZjM3NWUsMTY1NDgyNjA3MjU1Mw==

1.4 用户空间的排查方法

此处整理了电阻屏的问题定位方法,如表1.3所示。

表1.3 用户空间排查方法

get?code=YjllNGJlNDE1M2U0MzA5YjFhMmZmNWIyYjdjNmNhZjksMTY1NDgyNjA3MjU1Mw==

接下来我们结合一些具体案例来具体看看如何排查触摸问题。

1.4.1 触摸没反应

问题:接上触摸屏没反应。

分析步骤:

  1. 查看dmesg | grep touch,查看系统是否有加载触摸驱动;此部分有内核配置选择,没有信息则定位为驱动异常,查看内核配置或初始化函数。
  2. 查看/proc/interrupts文件,看中断计数是否有变化。若点击屏幕,中断计数没变化,根据之前所说的中断输入引脚,说明此情况下中断引脚没有接到对应引脚上。

1.4.2 触摸抖动

问题:使用ts_test查看,发现光标在不停闪烁。

分析思路:通过cat /proc/interrupts,查看中断计数,若一直有增加,再用hexdump命令查看输出信息,一般这种不规则情况,是由于中断信号输入引脚接到错误位置,例如五线屏的感应引脚,接到地之后,相当于屏幕一直被按下,所以会不断上报错误事件。也有可能是感应引脚接到不稳定的电平,一直产生高低变化的扰动,系统把这种高低变化的扰动当作触摸屏被按下的信号。

1.4.3 触摸不准

问题:使用五线屏时,四个边角总有一个无法触摸得到。

分析思路:ADC模组有一个输入的参考电压,一般接1.8V,但有些意外情况,将其接到GND,相当于采集点一直无法采集到正常数据。

1.4.4 触摸异常

问题:使用五线屏时,数据乱跳。

分析思路:由上篇文章“【应用技术】触摸屏技术之原理分析”分析可知,五线屏的正常四个角如图1.1所示,(H,H)与(L,L)形成对角分布,在这样X、Y轴的电场才能形成相互垂直的分布,但如果出现图1.2中(H,H)与(L,L)在同一个方向时,就无法形成相互垂直的电场,此时采集出来的感应点数据就是紊乱的。

get?code=NWEyZjAzZTY4M2MyMjQyMjU3Njk2MDMzMDRjMDZlYWUsMTY1NDgyNjA3MjU1NA==

图1.1 正常五线屏电极分布

get?code=ZDg5NGRmMTJmYTY4NjhlMTUwNmE0MWZmYzQzNzU5ZDAsMTY1NDgyNjA3MjU1NA==

图1.2 异常五线屏电极分布

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触摸屏
    +关注

    关注

    42

    文章

    2320

    浏览量

    116886
  • 显示屏
    +关注

    关注

    28

    文章

    4515

    浏览量

    74839
  • 驱动开发
    +关注

    关注

    0

    文章

    130

    浏览量

    12125
收藏 人收藏

    评论

    相关推荐

    Maxtouch触摸屏:多场景触控解决方案

    Maxtouch触摸屏方案以其卓越的性能和高度适应性,为汽车、工业和消费类电子设备提供全面的触摸屏解决方案。凭借专用触摸屏芯片和高效开发工具
    的头像 发表于 02-11 09:25 185次阅读
    Maxtouch<b class='flag-5'>触摸屏</b>:多场景触控解决方案

    4线电阻式触摸屏是如何工作的

    4线电阻式触摸屏是一种常见的触控技术,广泛应用于各种工业和消费电子产品中。这类触摸屏的工作原理是基于压力感应:当屏幕表面受到触摸时,顶层(通
    的头像 发表于 01-17 17:14 277次阅读
    4线电阻式<b class='flag-5'>触摸屏</b>是如何工作的

    触摸屏与传统显示器比较

    随着科技的飞速发展,显示技术也在不断进步。触摸屏和传统显示器作为两种主流的显示技术,它们各自有着独特的优势和应用场景。 1. 技术原理 触摸屏
    的头像 发表于 01-06 17:02 417次阅读

    怎么对触摸屏远程下载程序?#触摸屏 #工业自动化 #制造业 #工业 #自动化

    触摸屏
    蓝蜂物联网
    发布于 :2024年10月31日 17:25:08

    开发触摸屏驱动板需要考虑哪些因素

    驱动板是现代电子设备中不可或缺的一部分,它负责将用户的触摸操作转化为设备可以理解的信号。触摸屏驱动板需要通过多个关键步骤来实现其功能,以
    的头像 发表于 10-29 14:05 733次阅读

    触摸屏静电保护方案

    或其他设备的交互。触摸屏技术自上世纪60年代开始研究,并在随后的几十年里得到了飞速的发展和应用,如今已经广泛应用于手机、平板电脑、零售业、公共信息查询、多媒体信息系统、医疗仪器、工业自动控制、娱乐与餐饮业等众多
    的头像 发表于 09-27 15:38 496次阅读
    <b class='flag-5'>触摸屏</b>静电保护方案

    聚徽-工业一体机触摸屏怎么校准

    工业一体机触摸屏的校准过程对于确保触摸屏的准确度和精密度至关重要。以下是一般的校准步骤,但请注意,具体的校准过程可能会因触摸屏型号和制造商的软件而有所不同。
    的头像 发表于 09-06 09:40 608次阅读

    电容触摸屏的区别

    电容触摸屏是两个在电子设备中广泛使用的技术,它们之间存在紧密的联系但也有显著的区别。
    的头像 发表于 07-18 15:58 6078次阅读

    LCD触摸屏的PCB设计

    液晶显示(LCD)和触摸屏技术已经成为各种电子设备的核心组成部分,从智能手机到电视和医疗设备。在这些设备中,PCB的设计对于LCD和触摸屏的性能和可靠性至关重要。下面将讨论LCD
    的头像 发表于 07-18 11:17 2345次阅读
    LCD<b class='flag-5'>屏</b>和<b class='flag-5'>触摸屏</b>的PCB设计

    触摸屏和plc的程序怎么编写

    编写触摸屏和PLC程序是一个复杂的过程,涉及到多个方面的知识。 一、触摸屏和PLC概述 触摸屏概述 触摸屏是一种交互式输入设备,用户可以通过触摸屏
    的头像 发表于 07-01 14:46 3080次阅读

    人机界面触摸屏编程的基本概念及硬件选择

    人机界面(Human-Machine Interface,简称HMI)触摸屏编程是一种广泛应用于工业自动化、智能家居、医疗设备等领域的技术。本文将详细介绍HMI触摸屏编程的基本概念、硬
    的头像 发表于 07-01 14:42 2728次阅读

    人机界面触摸屏如何触摸校正屏幕

    人机界面(Human-Machine Interface,简称HMI)触摸屏是一种广泛应用于工业自动化、智能家居、医疗设备等领域的交互设备。触摸屏的校正对于确保设备的正常运行和提高用户体验至关重要
    的头像 发表于 07-01 14:36 2033次阅读

    触摸屏与plc通讯不上的原因

    触摸屏与PLC(可编程逻辑控制器)之间的通信是工业自动化领域中常见的一种应用。然而,在实际应用过程中,可能会遇到触摸屏与PLC通信不上的问题。本文将从多个方面详细分析可能导致通信故障的
    的头像 发表于 06-12 10:49 5173次阅读

    触摸屏是上位机还是下位机好

    触摸屏技术在现代工业自动化、智能家居、医疗设备等领域得到了广泛应用。触摸屏设备可以分为上位机和下位机两种类型,它们在功能、性能和应用场景上存在一定差异。本文将从多个方面对比
    的头像 发表于 06-06 10:25 1740次阅读

    组态软件和触摸屏软件的区别是什么?

    是在PC上使用,它可以使用PC上的大屏幕和键盘鼠标输入,而触摸屏软件则需要使用触摸屏幕进行操作。 3. 软件开发环境不同:组态软件需要在PC上安装开发环境和配置工具,而
    的头像 发表于 04-24 14:04 1335次阅读