第11章 触摸屏电路设计及驱动开发
- 格式:ppt
- 大小:814.00 KB
- 文档页数:32
触摸屏控制器驱动程序设计在便携式的电子类产品中 ,触摸屏由于其便、灵活、占用空间少等优点 ,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。
触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。
本文从触摸屏控制器的驱动程序设计着手 ,介绍触摸屏控制器 ADS7843 的内部结构及工作原理和在嵌入式 Linux 操作系统中基于PXA255微处理器的ADS784羽驱动程序设计。
1触摸屏控制器ADS7843的介绍1.1ADS7843的内部结构ADS7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近A/D转换器和异步串行数据输入输出,ADS7843艮据微控制器发来的不同测量命令导通相应的模拟开关 ,以便向触摸屏电极对提供电压 ,并把相应电极上的触点坐标位置所对应的电压模拟量引入A/D转换器,图1为ADS7843内部结构图。
X+、Y+ X-、丫为触摸屏电极模拟电压输入;CS为ADS7843的片选输入信号,低电平有效;DCLK接外部时钟输入 ,为芯片进行 A/D 转换和异步串行数据输入 /输出提供时钟;DIN串行数据输入端,当CS低电平时,输入数据在时钟的上升沿将串行数据锁存;DOUT串行数据输出端,在时钟下降沿数据由此移位输出,当 CS 为高电平时,DOUT呈高阻态。
BUSY为系统忙标志端,当CS为低电平, 且BUSY为高电平时,表示ADS7843正在进行数据转换;VREF参考电压输入端,电压值在+1V到+VCC之间变化;PENIRC为笔触中断,低电平有效;IN3、IN4为辅助ADC转换输入通道;+VCC为电源输入。
图1ADS7843内部结构1.2ADS7843的转换时序ADS7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向 ADS843 发送控制字 ,其中包括起始位、通道选择、 8/12 位模式、差分 /单端选择和掉电模式选择 ,其后的两次数据传送则是微控制器从 ADS7843 取出 16bitA/D 转换结果数据(最后四位自动补零),每次通信需要 8 个时钟周期 ,完成一次数据转换共需 24 个时钟周期周2为ADS7843转换时序。
物理与电子工程学院《嵌入式系统设计》课程小论文课题题目linux 触摸屏驱动程序设计系别物理与电子工程学院年级08级专业电子科学与技术学号050208110学生姓名储旭日期2011-12-21目录第 1 章嵌入式 linux 触摸屏驱动程序设计........................................................................ - 2 -1.1 课题设计的目的.......................................................................................................... - 2 -1.2 课题设计要求.............................................................................................................. - 2 - 第二章课题设计平台构建与流程............................................................................................ - 2 -2.1 嵌入式系统开发平台构建.......................................................................................... - 2 -2.1.1 cygwin 开发环境............................................................................................ - 2 -2.1.2 Linux 开发环境.............................................................................................. - 5 -2.1.3 Embest IDE 开发环境.................................................................................... - 5 -2.2 触摸屏设计流程.......................................................................................................... - 5 -2.3 课题设计硬件结构与工作原理.................................................................................. - 6 -2.3.1 硬件结构概述.................................................................................................. - 6 -2.3.2 触摸屏工作原理.............................................................................................. - 8 - 第三章 Bootloader 移植与下载.............................................................................................. - 9 -3.1 Vivi 源代码的安装.................................................................................................... - 9 -3.2 Vivi 源代码分析...................................................................................................... - 10 -3.3 Vivi 源代码的编译与下载...................................................................................... - 11 - 第四章 Linux 内核移植与下载.............................................................................................. - 12 -4.1 Linux 内核源代码的安装........................................................................................ - 12 -4.2 Linux 内核源代码分析与移植................................................................................ - 14 -4.3 Linux 内核编译与下载............................................................................................ - 14 - 第五章触摸屏功能模块程序设计与交叉编译...................................................................... - 16 -5.1 功能模块驱动程序设计............................................................................................ - 16 -5.2 触摸屏功能模块交叉编译........................................................................................ - 20 - 第六章根文件系统建立与文件系统下载.............................................................................. - 20 -6.1 Cramfs 根文件系统分析.......................................................................................... - 20 -6.2 文件系统映像文件生成............................................................................................ - 21 -6.3 功能模块运行与调试................................................................................................ - 22 - 第七章课题设计总结与体会.................................................................................................. - 26 - 参考文献:................................................................................................................................ - 27 -第 1 章嵌入式 linux 触摸屏驱动程序设计1.1 课题设计的目的在开发基于Linux 的嵌入式系统前需要首先建立嵌入式系统的开发环境,并制定嵌入式系统上的Linux 内核。
WinCE 触摸屏驱动程序的研究与开发摘要本文首先阐述了Windows 的体系结构及中断处理、驱动程序模型,在介绍触摸屏工作原理的基础上,以基于S3C2410触摸屏驱动程序为例,系统讲述了如何使用分层的驱动程序模型来实现Windows CE的驱动程序设计。
本文介绍了触摸屏驱动程序开发的软硬件细节,介绍的方法可移植性强,可方便的移植到其它的硬件设备中。
关键词Windows ; 驱动程序; 触摸屏; S3C24100 引言Windows 是一个抢先式多任务并具有强大通信能力的Windows 32位嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而从头设计的战略性操作系统产品。
可以看出 Windows CE并不是Windows桌面操作系统的一部分或缩减版本。
CE系统与其它操作系统一样,也提供了设备驱动程序,以驱动内部或者外围硬件设备。
驱动程序将操作系统和设备链接起来,使得操作系统能够识别设备,并为应用程序提供相应的服务[1]。
要想真正了解驱动程序必须结合一些驱动程序的实际开发,本文以基于ARM9核心硬件平台的触摸屏驱动程序为例,讲解如何在不同的硬件设备上实现Windows CE的驱动开发。
1 Windows CE的体系结构Windows CE是由许多离散模块组成的,每一模块都提供特定的功能。
这些模块中的一部分被划分成组件。
组件使Windows CE变得非常紧凑,只占不到200KB 的RAM,因此只占用了运行设备所需的最小的ROM、RAM以及其它的硬件资源。
图1 Windows CE的体系结构Windows CE包含提供操作系统最关键功能的4个模块:内核模块;对象存储模块;图形、窗口和事件子系统(GWES)模块以及通信模块。
Windows CE还包含一些附加的可选择模块,这些模块可支持的任务有管理流设备驱动程序、支持COM等。
内核是OS的核心,通过Core Dll模块表示。
触摸屏设计方案1. 引言触摸屏作为一种用户界面交互方式,已经在电子设备领域中得到广泛应用。
它可以取代物理按键,提供更直观、便捷的操控方式。
本文将介绍一个触摸屏设计方案,包括设计目标、硬件选型、软件开发以及测试计划。
2. 设计目标在设计触摸屏前,首先需要明确设计目标。
以下是本设计方案的目标:•实现高精度触摸控制:触摸屏应该有足够的分辨率和灵敏度,以实现精准的触摸控制。
•支持多点触控:触摸屏应该支持多点触控,以实现更复杂的手势操作。
•高可靠性和稳定性:触摸屏应该具备高可靠性和稳定性,能够在长时间使用中保持正常工作。
•低功耗:触摸屏应该尽可能降低功耗,延长电池续航时间。
•符合人体工程学设计:触摸屏的外形和尺寸应该符合人体工程学的要求,使操作更舒适。
3. 硬件选型选择适合的硬件是设计触摸屏的重要一步。
下面是本设计方案的硬件选型:3.1 触摸屏芯片触摸屏芯片是触摸屏的核心组件,负责将触摸信号转换为数字信号输出。
在选型触摸屏芯片时,需要考虑以下因素:•分辨率:选择具备高分辨率的触摸屏芯片,以获得更准确的触摸控制。
•灵敏度:选择灵敏度高的触摸屏芯片,以提高触摸的响应速度。
•接口类型:触摸屏芯片应支持常用接口类型,比如I2C或SPI,在连接主控芯片时更加方便。
•抗干扰能力:触摸屏芯片应具备较好的抗干扰能力,以减少外部干扰对触摸控制的影响。
3.2 显示屏触摸屏一般与显示屏结合使用,形成一个完整的显示控制系统。
在选型显示屏时,需要考虑以下因素:•分辨率:选择与触摸屏芯片匹配的显示屏,以保证触摸和显示的一致性。
•尺寸和比例:根据应用场景和终端设备的尺寸要求选择合适的显示屏尺寸和比例。
•显示技术:根据应用需求选择合适的显示技术,比如LCD、OLED等。
3.3 控制器控制器是触摸屏与主控芯片之间的桥梁,负责将触摸信号传输给主控芯片,并接收主控芯片发送的指令。
在选型控制器时,需要考虑以下因素:•接口类型:选择与主控芯片兼容的控制器,以确保信号传输的稳定性。
基于STM32F103X的LCD触摸屏驱动的设计姓名:徐进东 _______学号:10030227 ______班级:_10计卓______目录1概述 (3)2LCD 液晶显示屏 (3)2.1LCD液晶显示屏原理 (3)22 LCD液晶显示屏分类 (3)3触摸屏驱动原理概述 (4)3.1电阻触摸屏工作原理 (4)3.2触摸屏控制实现 (4)4设计目标 (4)5系统硬件设计 (5)5.1STM32微处理器FSMC接口 (5)5.2LCD液晶显示屏介绍 (7)5.3触摸屏控制板 (8)6系统软件设计 (10)6.1系统软件结构 (10)6.2头文件设计 (11)6.2硬件初始化程序 (11)6.33寸LCD模块驱动程序 (14)6.4触摸坐标获取程序 (19)6.5LCD控制器控制程序 (22)7总结 (24)1概述LCD液晶显示屏与触摸屏在嵌入式系统中的应用越来越普及。
他们是非常简单、方便、自然的人机交互方式,目前广泛应用于便携式仪器、智能家电、掌上设备等领域。
触摸屏与LCD液晶显示技术的紧密结合,成了主流配置。
LCD液晶显示屏(LCD Module , LCM)是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源以及结构件装配在仪器的组件。
触摸屏技术在我国的应用时间不是太长,但它已经成长为人们最为接受的输入方式。
利用这种技术人们只需触碰屏幕就可以对主机进行操作,是人机交互更为方便,直截了当。
本文档是对LCD液晶显示屏和触摸屏驱动的设计做深入介绍。
2 LCD液晶显示屏2.1L CD液晶显示屏原理液晶(Liquid Crystal):是一种介于固态和液态之间的具有规则性分子排列,及晶体的光学各向异性的有机化合物,液晶在受热到一定温度的时候会呈现透明状的液体状态,而冷却则会出现结晶颗粒的混浊固体状态,因为物理上具有液体与晶体的特性,故称之为“液晶”。
液晶显示器LCD( Liquid Crystal Display):是新型平板显示器件。
触摸屏驱动设计文献综述一.触摸屏的介绍1 触摸屏的主要类型从技术原理来区别触摸屏,可分为五个基本种类:矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏。
其中矢量压力传感技术触摸屏已退出历史舞台;红外线技术触摸屏价格低廉,但其外框易碎,容易产生光干扰,曲面情况下失真;电容技术触摸屏设计构思合理,但其图像失真问题很难得到根本解决;电阻技术触摸屏的定位准确,但其价格颇高,且怕刮易损;表面声波触摸屏解决了以往触摸屏的各种缺陷,清晰不容易被损坏,适于各种场合,缺点是屏幕表面如果有水滴和尘土会使触摸屏变的迟钝,甚至不工作。
按照触摸屏的工作原理和传输信息的介质,我们把触摸屏分为四种,它们分别为电阻式、电容感应式、红外线式以及表面声波式。
每一类触摸屏都有其各自的优缺点,要了解哪种触摸屏适用于哪种场合,关键就在于要懂得每一类触摸屏技术的工作原理和特点。
2 触摸屏的工作原理为了操作上的方便,人们用触摸屏来代替鼠标或键盘。
工作时,我们必须首先用手指或其它物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或菜单位置来定位选择信息输入。
触摸屏由触摸检测部件和触摸屏控制器组成;触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给CPU,它同时能接收CPU发来的命令并加以执行。
2.1 电阻式触摸屏1、四线电阻屏四线电阻模拟量技术的两层透明金属层工作时每层均增加5V恒定电压:一个竖直方向,一个水平方向。
总共需四根电缆。
特点:高解析度,高速传输反应。
表面硬度处理,减少擦伤、刮伤及防化学处理。
具有光面及雾面处理。
一次校正,稳定性高,永不漂移。
2、五线电阻屏五线电阻技术触摸屏的基层把两个方向的电压场通过精密电阻网络都加在玻璃的导电工作面上,我们可以简单的理解为两个方向的电压场分时工作加在同一工作面上,而外层镍金导电层只仅仅用来当作纯导体,有触摸后分时检测内层ITO接触点X轴和Y轴电压值的方法测得触摸点的位置。
嵌入式触摸屏驱动开发设计【摘要】嵌入式系统设计中,使用触摸屏是重要的一环,在使用它之前要添加驱动程序才能使用,同时也要根据触摸屏的大小和种类进行修改对应的驱动,才能使触摸屏正确发挥功能。
【关键词】嵌入式触摸屏驱动当前,随着人们对多媒体信息查询的不断增加,人们逐渐越来越多地谈到触摸屏,因为它不仅适用于多媒体信息查询,而且具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。
利用触摸屏技术,用户只要用手指轻轻地碰触显示屏上的图符或文字就能实现对主机操作,从而使人机交互更为直截了当,这种技术大大方便了那些不懂电脑操作的用户。
触摸屏作为一种新的电脑输入设备,它是目前简单、方便、自然的一种人机交互方式。
它的应用范围非常广阔,主要在公共信息的查询方面;如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等。
预计将来,触摸屏还要走入家庭。
在嵌入式系统中,经常要使用到触摸屏,然而它不是一连接就能使用的器件,需要添加驱动程序,才能使触摸有效,下面是触摸屏驱动程序添加的过程。
首先找到源文件,然后按照下列步骤进行操作。
s3c2410_ts.hs3c2410_ts.ccp s3c2410_ts.h include/asm-arm/cp s3c2410_ts.c drivers/char/修改drivers/char/目录下的Kconfig,Makefile文件。
添加ts驱动选项:Makefile1043 +obj-$(CONFIG_S3C2410_TS) +=s3c2410ts.oKconfig在config S4C2410_RTC选项下添加:choiceprompt “s3c2410 touchscreen”default S3C2410_TSdepends on ARCH_S3C2410config S3C2410_TStristate “normal touchscreeen “config S3C2410_TS_ADStristate “touchscreen ads”endchoic修改arch/arm/mach-s3c2410下的四个文件:devs.hdevs.cmach-smdk2410.cs3c2410.c1.devs.h添加如下:extern struct platform_device s3c_device_ts;2.devs.c添加如下:#include………./* Touchscreen */static struct s3c2410_ts_mach_info s3c2410ts_info;void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)memcpy(&s3c2410ts_info,hard_s3c2410ts_info,sizeof(structs3c2410_ts_mach_info));EXPORT_SYMBOL(set_s3c2410ts_info);struct platform_device s3c_device_ts = {.name = “s3c2410-ts”,.id = -1,.dev= {.platform_data = &s3c2410ts_info,}};EXPORT_SYMBOL(s3c_device_ts);/* USB Device (Gadget)*/3.mach-smdk2410.c添加如下:#include…….//ts flastatic struct s3c2410_ts_mach_info gec2410_ts __initdata = {.delay = 10000,.presc = 49,.oversampling_shift = 2,}static struct platform_device *smdk2410_devices[] __initdata = {&s3c_device_usb,&s3c_device_lcd,&s3c_device_wdt,&s3c_device_i2c,&s3c_device_iis,&s3c_device_nand,&s3c_device_ts, //add here};void __init smdk2410_map_io(void){s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc));s3c24xx_init_clocks(0);s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs));s3c24xx_set_board(&smdk2410_board);set_s3c2410fb_info(&smdk2410_lcd_platdata);set_s3c2410ts_info(&gec2410_ts);小结:本设计对嵌入式系统的触摸屏的驱动进行了开发,选取了典型的ARM 处理器S3C2410作为处理对象,驱动添加成功后,触摸屏的效果正常发挥,达到了目的。
触摸屏驱动编写1. 触摸屏驱动编写触摸屏接⼝:i2c触摸屏芯⽚型号:ft5x06触摸屏连接的i2c总线:i2c1触摸屏在i2c总线上的器件地址:0x38触摸屏设备的外部中断线:GPX1_6 (irq = IRQ_EINT(14))参考⽂档:ft5x06芯⽚⼿册:FT5x06.pdfft5x06芯⽚地址分布:AN_CTPM_Standard_eng5x06——new.pdf查看AN_CTPM_Standard_eng5x06——new.pdf⼿册可得,ft5x06芯⽚内部地址空间分布情况如下:0x02 :低四位存放触摸点个数0x03 :低四位存放第⼀个触摸点x坐标的8 ~ 11位0x04 :所有位存放第⼀个触摸点x坐标的0 ~ 7位0x05 :低四位存放第⼀个触摸点y坐标的8 ~ 11位0x06 :所有位存放第⼀个触摸点y坐标的0 ~ 7位0x07 :所有位存放第⼀个触摸点的压⼒⼤⼩例:获取触摸点个数及第⼀个触摸点x, y轴的坐标值。
int ctp = *0x02 & 0x0f;int x = ((*0x03 & 0x0f) << 8) | *0x04;int y = ((*0x05 & 0x0f) << 8) | *0x06;补充:内核裁剪,裁剪掉内核中的触摸屏驱动操作步骤:1)跳转的内核源码⽬录下命令:cd /work/linux-3.5/2)重新配置内核命令:make cleanmake distcleancp tiny4412_linux_defconfig .configmake menuconfig裁剪两个选项:System Type--> Support TrustZone-enabled Trusted Execution Environment 【裁剪掉】Device Drivers--> Input device support--> Touchscreens 【裁剪掉】保存退出!3)重新编译内核命令:make -j84)编译完成,⽣成新的zImage。
触摸屏学习及触控程序开发(一)2009-05-09 15:22:56 来源:环球触摸屏网作者: 【大中小】浏览:319次评论:0条为标准触摸屏编写驱动程序尽管触摸屏正在迅速普及开来,但大多数开发人员以前从来没有开发过触摸屏产品。
本文详细介绍了触摸屏产品的设计步骤,指导读者了解使触摸屏首次工作需要的软硬件细节。
触摸屏如今随处可见。
工业控制系统、消费电子产品,甚至医疗设备上很多都装备了触摸屏输入装置。
我们平时不经意间都会用到触摸屏。
在ATM机上取款、签署包裹,办理登机手续或查找电话号码时都可能会用到触摸屏。
本文介绍了二种较新的CPU,它们都内建了对触摸屏输入的支持。
本文将介绍如何编写软件驱动程序,从而能够使用这些微处理器配置、校准触摸屏以及对触摸屏输入持续响应。
最终将提供可免费下载和使用的工作代码,作为读者进一步设计的基础。
触摸屏作为输入手段的优点和缺点没有一种输入方式是十全十美的,对某些特定的应用和产品类型来说,触摸屏不是最好的输入手段。
为了让读者清楚的了解触摸屏的特性,下面先概括使用触摸屏作为输入手段的优点和缺点。
首先是优点:触摸屏不可否认的具有酷的感觉,立刻就能使产品的使用变得更有乐趣。
同时触摸屏也非常直观。
当用户想要选择A选项时,他伸出手指碰一下A选项就可以了。
这还不够直观吗?连两岁的婴儿都知道怎样伸手去触摸他(或她)想要的东西。
最后要说的是,触摸屏作为输入装置和系统固定在了一起。
如果用户忘记遥控器或鼠标放的位置,就会无法进行输入。
而如果具有触摸屏的设备放在用户前面,用户马上就可以用触摸屏进行输入。
再说缺点,触摸屏可能会在不合适的场合下被错误的使用。
这里我是指对安全性要求严格的设备,对于这些设备,如果没有适当的预防措施,使用触摸屏会非常危险。
下面我将概括一些最明显的潜在的问题,如果读者想作更进一步的了解,可以参考更多的资料。
第一个问题是视差,即屏幕上看到的对象的位置与其在触摸面板上的实际有效位置之间的差异。
触摸屏驱动程序设计一、需求说明1.巩固和强化学生的嵌入式系统的基本概念和开发流程,掌握基本知识和基本技能。
2.掌握硬件开发平台、开发资源和软件开发环境,尤其是裸机嵌入式系统开发方法。
掌握汇编和C语言混合编程技巧,熟悉系统启动引导过程,能够成功移植嵌入式系统引导程序。
培养和训练学生综合利用所学基本知识和基本技能进行小型裸机程序开发的技能。
3.明确思路和任务,查询相关书籍、资料,重点分析S3C2440的触摸屏接口工作原理和相关寄存器。
编写触摸屏初始化函数,确定XY位置转换模式。
编写触摸屏中断初始化函数,中断服务函数。
编写屏幕校准函数。
确定坐标计算公式。
编写触点数据采集函数。
编写主函数,进入调试。
实现触摸屏坐标点x、y的正确读取。
二、功能描述通过对AD转换器的配置——触摸屏自动测试x/y位置模式,选择进入到触摸屏驱动函数。
在进行触摸屏测试时,先进入函数内判断是否启动A/D 转换,如果不是的话就跳出此函数,如果是的话进行下面的判断,看A/D 转换是否结束,如果是,跳出函数,如果不是运行程序,并输出x、y的值。
再回到触摸屏驱动函数,测试结束,清屏。
三、系统设计及实现一.系统设计1. 对触摸屏相关寄存器进行初始化,确定XY位置转换模式;2. 对中断初始化,设计中断服务函数;3. 通过校正函数和坐标计算公式,得出坐标。
二.流程图对ADC相关寄存器,中断进行设置中断服务函数在主函数中直接调用Test_Touchpanel函数最终测试结果,每碰触一下触摸屏,就在终端中显示一对XP,YP值四、实训心得两周时间转瞬即逝,在这两周里,我们潜心研究,以MINI2440开发板为实验硬件平台,采用ADS集成开发环境,是我们在课程内容基础上,加强对嵌入式系统的理解和裸机应用的设计。
在此过程中,需要我们分析嵌入式CPU引导程序的功能和引导过程,学会裸机驱动程序的开发以及简单应用程序的设计。
从而深化我们的专业基本技能,加强我们的动手能力。
1、i2c_add_driver将驱动注册到总线上。
2、调用probe函数分配touch_dev结构,ts_init_touch初始化触摸屏设备。
初始化在gpio_request分配io口,初始化workINIT_WORK(&touch_dev->work, zinitix_touch_work),初始化input_dev 并注册inputrequest_irq申请中断对于input初始化:input_mt_init_slots(ts->input_dev, ts->max_touch_num);b类触摸事件需要set_bit(EV_SYN, touch_dev->input_dev->evbit);设置事件响应set_bit(EV_KEY, touch_dev->input_dev->evbit);设置按键响应set_bit(BTN_TOUCH, touch_dev->input_dev->keybit);一次触摸结束响应(后面调用input_report_key(touch_dev->input_dev, BTN_TOUCH, 0);每次报点都要调用。
0表示触摸结束)set_bit(EV_ABS, touch_dev->input_dev->evbit);绝对值事件响应触摸屏调试注意事项:1 、io口配置引脚定义。
(引脚序号是否跟主板一样)2、input初始化,事件设置,参数设置3、多点触摸协议有a类,b类之分。
A类在每次报点后加input_mt_sync(touch_dev->input_dev);B类需要在probe中input_mt_init_slots(ts->input_dev,ts->max_touch_num);再在每次报点前input_mt_slot(ts->input_dev, index);触摸屏驱动编写参考:1、打印信息参考:#ifdef DEBUG#define DBG(fmt ...) printk(KERNINFO fmt)#else#define DBT(fmt ...)#endif#ifdef DEBUGERR#define DEBUGERR(fmt ...) printk(KERNERR fmt) #else##define DEBUGERR(fmt ...)#endif2、互换参考:#ifdef SWAP_XY#define swap_xy(x,y) do{typeof(x) z=x; x=y;y=z;}while(0);#endifX, y 置换注意:input_device中也要置换Input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, X_MAX, 0, 0)Input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, Y_MAX, 0, 0)3、io初始化参考:IO初始化不正确将无法产生中断,#define TOUCH_RST_PIN RK29_PIN6_PC3#define TOUCH_INT_PIN RK29_PIN0_PA2Int ft5306_init_io(void){//用io前首先要申请io,其次注意io设置的延时。
触摸屏驱动程序的设计和实现嵌入式设备触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式和表面声波式。
其中电阻式触摸屏在嵌入式系统中用的较多,电阻式触摸屏可分为四线、五线、七线等几种。
一般来说,WinCE 触摸屏驱动的设计和实现有以下几个步骤:(1)配置和初始化触摸屏触摸屏驱动在初始化过程会调用TouchPanelEnable 函数,该函数调用的DDSI 函数为DdsiTouchPanelEnable 和DdsiTouchPanelDisable。
这两个DDSI 接口函数是驱动实现的关键所在,分别用于打开和关闭触摸屏硬件。
但是为了降低功耗,这两个函数其实可以不真正操作硬件,而只是实现软件上的控制。
同时,在初始化时还需要进行这几个配置和初始化:一是创建事件hTouchPanelEvent 和hCalibrationSampleAvailable,前者是在正常状态下当有触摸笔按下或者按下后需要定时采集数据时被触发;而后者是在校准状态下当有校准数据输入时被触发。
二是检查初始化所需的中断gIntrTouch(触摸屏中断)和gIntrTouchChanged(定时器中断),并将这两个中断关联到事件hTouchPanelEvent。
三是创建一个ISR 线程TouchPanelpISR,用于等待和处理触摸屏事件hTouchPanelEvent,它也是整个驱动程序中唯一的事件源。
(2)校准触摸屏基准参数完成前面繁琐的工作后,驱动程序的各种功能就都已经准备就绪了,现在就可以实际操作触摸屏幕了。
但一般来说,电阻式触摸屏需要校准,也就是说在驱动启动过程中MDD 层要调用相应的DDSI 函数来读取注册表中的校正数据校正触摸屏。
理想情况下,校准程序只要在嵌入式设备初次加电测试过程中运行一次就可以了,参考值会被存储在非易失性存储器中,以免让用户在以后。
屏幕驱动板开发流程一、需求分析。
这就像是你要去旅行,得先知道自己想去哪儿一样。
在屏幕驱动板开发的时候,咱们得先搞清楚这个驱动板是用在哪种屏幕上的呀。
是那种小小的手机屏幕,还是大大的电脑显示器屏幕呢?这不同的屏幕对驱动板的要求可不一样哦。
比如说手机屏幕可能更注重小巧和低功耗,而电脑显示器屏幕就可能需要更高的分辨率支持。
而且,咱们还得考虑这个屏幕的色彩显示能力、刷新率这些东西。
就好比你挑衣服,你得知道自己喜欢啥风格,是简约风还是华丽风,这样才能找到最适合的。
在这个阶段,开发团队就得和屏幕制造商或者使用这个驱动板的厂商好好沟通,把这些需求都摸得透透的。
二、硬件设计。
好啦,知道需求了,那就开始设计硬件啦。
这就像是盖房子打地基和搭框架一样重要。
咱们得选合适的芯片呢。
芯片就像是驱动板的大脑,得够聪明,能处理各种复杂的信号。
然后就是电路设计啦,这线路怎么走,就像规划城市的道路一样,得合理布局。
比如说,电源线路要怎么设计才能保证稳定供电,信号传输线路又要怎么避免干扰。
这里面可大有学问,一点点差错都可能让整个驱动板出问题。
而且,在硬件设计的时候,还得考虑散热问题。
你想啊,要是驱动板工作的时候热得像个小火炉,那肯定不行呀,就像人发烧了会不舒服一样,驱动板也会因为过热而罢工或者出现故障的。
所以,散热设计也是硬件设计里不可或缺的一部分。
三、软件开发。
硬件搭好了,软件也不能落下呀。
这软件就像是给这个硬件注入灵魂一样。
咱们得写程序来控制这个驱动板怎么工作。
比如说,怎么把输入的信号准确地转化成屏幕能显示的图像呢?这就需要开发人员有很强的编程能力啦。
而且,在软件开发过程中,还得不断地测试。
就像你做了一道菜,得尝尝咸淡一样。
测试的时候,要看看软件在各种情况下是不是都能正常工作。
要是有问题,就得赶紧改。
这就像你发现菜太咸了,得加点水或者别的调料来调整味道。
软件开发是个很细致的活儿,有时候一个小的代码错误就可能导致整个屏幕显示不正常。
触摸驱动设计文档目录触摸驱动在系统中的层次1 (3)触摸驱动工作流程描述2 (3)2.1触摸驱动设计目标 (3)2.2触摸驱动设计规范要求 (3)2.3 input子系统介绍 (4)2.3.1 输入子系统设备驱动层实现原理 (4)2.3.2 Tp driver与input core之间主要的接口 (5)2.3.3 Event设备 (6)触摸模块硬件说明3 (7)3.1电阻触摸的硬件连接 (7)3.2电容触摸硬件连接 (7)3.2.1 Reset,Wakeup信号的配置 (8)3.2.2Sysconfig及其配置 (8)触摸驱动软件操作说明4 (8)模块和系统的工作关系5 (9)5.1触摸驱动的位置 (9)5.2触摸驱动的配置 (10)5.2.2 Linux层配置 (10)5.2.3 Android层配置 (10)5.2.4 sys_config1.fex文件配置 (11)5.2.4.1电阻屏的配置: (11)5.2.4.2 电容屏配置 (11)6 (12)主要数据结构说明6.1触摸驱动主要数据结构 (12)6.2触摸驱动实现事件支持 (14)6.3驱动报告事件 (14)触摸驱动移植扩展说明7 (14)7.1 Demo程序演示 (14)7.2触摸驱动调试步骤 (21)附录一 :aw_platform_ops.h源码 (24)1.触摸驱动在系统中的层次触摸驱动在系统中的层次如图1所示:图1 触摸驱动在系统中的位置图中包含三个部分:tp hardware, tp driver, input core;tp hardware: 是指主控,触控ic和触摸屏构成的人机交互的硬件平台,通过它可获得用户输入的原始数据;tp driver(触摸驱动): 是驻留于操作系统中,为tp hardware服务的一个内核模块;它将tp hardware采集到的原始数据,进行降噪,滤波,获得用户真实的操作意图,并按照操作系统的要求,将这些信息通过input core上报给操作系统。