收藏 分享(赏)

基于s3c2410与触摸屏的软硬件设计.doc

上传人:s36f12 文档编号:9478313 上传时间:2019-08-09 格式:DOC 页数:12 大小:903.50KB
下载 相关 举报
基于s3c2410与触摸屏的软硬件设计.doc_第1页
第1页 / 共12页
基于s3c2410与触摸屏的软硬件设计.doc_第2页
第2页 / 共12页
基于s3c2410与触摸屏的软硬件设计.doc_第3页
第3页 / 共12页
基于s3c2410与触摸屏的软硬件设计.doc_第4页
第4页 / 共12页
基于s3c2410与触摸屏的软硬件设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、摘要:给出 S3C2410 上触摸屏的实现原理、硬件结构和软件程序;对软件进行优化,改进软件滤波的实现方法。其算法使用 C 语言实现,可移植到任何操作系统的触摸屏驱动程序中。本文介绍了基于三星 S3C2410X 微处理器,采用 SPI 接口与 ADS7843 触摸屏控制器芯片完成触摸屏模块的设计。具体包括在嵌入式 Linux 操作系统中的软件驱动开发, 采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用 16 个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。设计完成的触摸屏驱动程序在博创公司教学实验设备 UP-NETARM2410-S 平台上运行效果良好。引

2、言:随着个人数字助理(PDA)、瘦容户机等的普及,触摸屏作为终端与用户交互的媒介,在我们的生活中使用得越来普遍。触摸屏分为电阻式、电容式、声表面波式和红外线扫描式等类型,使用得最多的是 4 线电阻式触摸屏。本文以 ARM9 内核芯片 S3C2410 触摸屏接口为基础,通过外接 4 线电阻式触摸屏构成硬件基础。在此基础上,开发了触摸屏面图板程序随着信息家电和通讯设备的普及,作为与用户交互的终端媒介, 触摸屏在生活中得到广泛的应用。如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题。本文主要介绍在三星 S3C2410X 微处理器的硬件平台上进行基于

3、嵌入式 Linux 的触摸屏驱动程序设计。一、S3C2410 处理器S3C2410 处理器是 Samsung 公司基于 ARM 公司的 ARM920T 处理器核,采用FBGA 封装,采用 0.18um 制造工艺的 32 位微控制器。该处理器拥有:独立的 16KB 指令Cache 和 16KB 数据 Cache,MMU,支持 TFT 的 LCD 控制器, NAND 闪存控制器,3路 UART,4 路 DMA,4 路带 PWM 的 Timer ,I/O 口,RTC ,8 路 10 位 ADC,Touch Screen 接口, IIC-BUS 接口,IIS-BUS 接口,2 个 USB 主机,1 个

4、 USB 设备,SD 主机和 MMC 接口, 2 路 SPI。S3C2410 处理器最高可运行在 203MHz。32 位处理器核心板的尺寸仅相当于名片的 2/3 大小,尺寸如此小巧的嵌入式核心板是国内首创。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式应用产品。(1)S3C2410 芯片集成了大量的功能单元 内部 1.8V,存储器 3.3V,外部 I/O3.3V,16KB 数据 Cache,16KB 指令Cache, MMU。 内置外部存储器控制器(SDRAM 控制和芯片选择逻辑)。 LCD 控制器,一个 LCD 专业 DMA。 4 个带外部请求线的 DMA。 3 个通用异步串行端

5、口(IrDA1.0,16-Byte Tx FIFO and 16-Byte Rx FIFO),2 通道 SPI 一个多主 I2C 总线,一个 I2S 总线控制器。 SD 主接口版本 1.0 和多媒体卡协议版本 2.11 兼容。 两个 USB HOST,一个 USB DEVICE(VER1.1)。 4 个 PWM 定时器和一个内部定时器。 看门狗定时器。 117 个通用 I/O。 56 个中断源。 24 个外部中断。 电源控制模式:标准、慢速、 休眠、掉电。 8 通道 10 位 ADC 和触摸屏接口。 带日历功能的实时时钟。 芯片内置 PLL。 设计用于手持设备和通用嵌入式系统。 16/32 位

6、 RISC 体系结构,使用 ARM920T CPU 核的强大指令集。 带 MMU 的先进的 体系结构 支持 WinCE、EPOC32、Linux。 指令缓存(Cache)、数据缓存、写缓存和物理地址 TAG RAM,减小了对主存储器带宽和性能的影响。 ARM920T CPU 核支持 ARM 调试的体系结构。 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。(2)系统管理 小端/大端支持 地址空间:每个 BANK128MB(全部为 1GB)。 每个 BANK 可编程为 8/16/32 位数据总线。 BANK0 到 BANK6 为固定起始地址。 BANK7 可编程 BANK

7、起始地址和大小。 一共 8 个存储器 BANK。 前 6 个存储器 BANK 用于 ROM、SRAM 和其它。 两个存储器 BANK 用于 ROM、SRAM、和 SDRAM(同步随机存储器)。 支持等待信号用以扩展总线周期。 支持 SDRAM 掉电模式下的自刷新。 支持不同类型的 ROM 用于启动( NOR/NAND Flash、EEPROM 和其它)。(3)芯片封装272-FBGA 封装(4)型号S3C2410A-20、S3C2410A-26区别:前者主频最高为 200MHZ、后者主频最高为 266MHZ。二触摸屏简介。随着使用电脑作为信息来源的与日俱增,触摸屏以其易于使用、坚固耐用、反应速

8、度快、节省空间等优点,使得系统设计师们越来越多的感到使用触摸屏的确具有相当大的优越性。触摸屏出现在中国市场上至今只有短短的几年时间,这个新的多媒体设备还没有为许多人接触和了解,包括一些正打算使用触摸屏的系统设计师,还都把触摸屏当作可有可无的设备,从发达国家触摸屏的普及历程和我国多媒体信息业正处在的阶段来看,这种观念还具有一定的普遍性。事实上,触摸屏是一个使多媒体信息或控制改头换面的设备,它赋予多媒体系统以崭新的面貌,是极富吸引力的全新多媒体交互设备。发达国家的系统设计师们和我国率先使用触摸屏的系统设计师们已经清楚的知道,触摸屏对于各种应用领域的电脑已经不再是可有可无的东西,而是必不可少的设备。

9、它极大的简化了计算机的使用,即使是对计算机一无所知的人,也照样能够信手拈来,使计算机展现出更大的魅力。解决了公共信息市场上计算机所无法解决的问题。我们把触摸屏分为四种,它们分别为电阻式、红外线式、电容感应式以及表面声波式,下面仅就电阻式触摸屏进行简要介绍:1、电阻式触摸屏 电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层(OTI ,氧化铟),上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层 OTI,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指接触屏幕,两层 OTI 导电层

10、出现一个接触点,因其中一面导电层接通 Y 轴方向的 5V 均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行 A/D 转换,并将得到的电压值与 5V 相比,即可得触摸点的 Y 轴坐标,同理得出 X 轴的坐标,这就是电阻技术触摸屏共同的最基本原理。电阻屏根据引出线数多少,分为四线、五线等多线电阻触摸屏。五线电阻触摸屏的 A 面是导电玻璃而不是导电涂覆层,导电玻璃的工艺使其的寿命得到极大的提高,并且可以提高透光率。2绝对坐标系统我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系

11、统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同的,不能保证绝对坐标定位,点不准,这就是触摸屏最怕的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现的并不是很严重。3检测与定位 各种触摸屏技术都是依靠传感器来工作的,甚至有的触摸屏本身就是一套传感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。 几种常用触摸屏的特性比较表见下列汇总表常用触摸屏特性比较表三 触摸屏原理3、1 S3C2410 接

12、4 线电阻式触摸屏的电路原理如图 1 所示。整个触摸屏由模向电阻比和纵向电阻线组成,由 nYPON、YMON、nXPON、XMON 四个控制信号控制4 个 MOS 管(S1、S2 、S3 、 S4)的通断。S3C2410 有 8 个模拟输入通道。其中,通道 7作为触摸屏接口的 X 坐标输入(图 1 的 AIN7),通道 5 作为触摸屏接口的 Y 坐标输入(图 1 的 AIN5)。电路如图 2 所示。在接入 S3C2410 触摸屏接口前,它们都通过一个阻容式低通滤器滤除坐标信号噪声。这里的滤波十分重要,如果传递给 S3C2410 模拟输入接口的信号中干扰过大,不利于后续的软件处理。在采样过程中,

13、软件只用给特殊寄存器置位, S3C2410 的触摸屏控制器就会自动控制触摸屏接口打开或关闭各 MOS 管,按顺序完成 X 坐标点采集和 Y 坐标点采集。3.2 S3C2410 触摸屏控制器S3C2410 触摸屏控制器有 2 种处理模式:X/Y 位置分别转换模式。触摸屏控制器包括两个控制阶段,X 坐标转换阶段和 Y 坐标转换阶段。X/Y 位置自动转换模式。触摸屏控制器将自动转换 X 和 Y 坐标。本文使用 X/Y 位置自动转换模式。4、硬件系统设计2、最小系统电路设计3、触摸屏电路设计4、晶振电路设计5、存储器电路设计:6、复位电路设计5、软件设计51 程序初始化初始化触摸屏控制器为自动转换模式

14、。其中寄存器 ADCDLY 的值需要根据具体的试验选取,可运行本文提供的程序看画线的效果来选取具体的参数。触摸屏中断处理程序Adc_or_TsAuto 是判断触摸屏是否被按下了。触摸屏被按下,给全局变量 Flag_Touch 赋值为 Touch_Down,否则赋值为 Touch_Up。初始化脉宽调制计时器(PWM TIMER),选择计时器 4 为时钟,定义 10ms 中断 1 次,提供触摸屏采样时间基准,即 10ms 触摸屏采样 1 次。计数器中断处理程序 Timer4Intr 中判断 Flag_Touch 被赋值为 Touch_Down,则给全局变量 gTouchStartSample 置位

15、,以控制触摸屏采样。之后清除触摸屏中断和计时器中断屏蔽位,接受中断响应,同时计时器开始计时。52 触摸屏采样程序如果 gTouchStartSample 为 TRUE,触摸屏接口开始对坐标 X 和 Y 的模拟量进行采样,根据试验选取适合的的采集次数。本文中使用 9 次采集,分别记入到 ptxTouchSample和 pty TouchSample数组中, TouchSample 为采集次数。为了减少运算量,将 ptx和 pty分别分三组取平均值,存储在 px3和 py3中。这里以处理 X 坐标为例:px0=(ptx0+ptx1+ptx2)/3;px1=(ptx3+ptx4+ptx5)/3;px

16、2=(ptx6+ptx7+ptx8)/3;计算以上三组数据的差值:dlXDiff0=px0-px1;dlXDiff1=px1-px2;dlXDiff2=px2-px0;然后对上述差值取绝对值,所得结果简称绝对差值:dlXDiff0=dlXDiff00?dlXDiff0:-dlXDiff0;dlXDiff1=dlXDiff10?dlXDiff1:-dlXDiff1;dlXDiff2=dlXDiff20?dlXDiff2:-dlXDiff2;判断上述计算的色对差值是否都超过差值门限,如果这 3 个绝对差值都超过门限值,判定这次采样点为野点,抛弃采样点,程序返回等待下次采样。其中的差值门限需要根据试

17、验测试得到,本文取值为 2。找出其中绝对差值最小的 2 组数据,再将它们作平均,同时赋值给 tmx:if(dlXDiff01);elsetmx=(px0+px1)1);else if(dlXDiff21);elsetmx=(px1+px2)1);查看大图函数 Touch_Coordinate Conversion 完成触摸屏采样值转换成显示坐标,根据不同的硬件有不同的转换方法。本触摸屏采样坐标及显示坐标如图 4、图 5 所示。其中 TOUCH_MAX_X 和 TOUCH_MIN_X 是触摸屏 X 坐标采样值的最大和最小值;Y 坐标同理。可以运行本文程序,同时使用触摸笔在触摸屏的 4 个角取得最

18、大最小采样值。这里使用的是 320240 的 TFT 屏,所以 TOUCH_X 值为 320。下面是 X 坐标的转换程序:Touch_CoordinateConversio(int*px)TmpX=(tmx=TOUCH_MAX_X)?(TOUCH_MAX_X):*px;TmpX-=TOUCH_MIN_X;TmpX=(TmpX)?TmpX:0;*px=(TmpX*TOUCH_X)/(TOUCH_MAX_X-TOUCH_MIN_X);5.3 坐标滤波程序坐标滤波程序 Touch_Pen_filtering,考虑人机界面中对触摸屏的操作有 3 种:*触摸笔在触摸屏上的位置不变;*触摸笔在触摸屏上连续

19、滑过;*触摸笔在触摸屏上有大幅度的跳跃。假设三次连续采样时刻为 T1、T2、T3(T3 T2T1 ),采样间隔为 10ms。由于采样间隔远小于人的反应时间,所以在前两种操作模式下,如果采样点有效,将 T1 和 T3 时刻的采样值作平均。其平均值和 T2 时刻的采样值比较一般不会大于某个门限,否则判定此次采样点为野点。而对于第三种模式下,采样点数据会有很大的跳变。跳变过程中的数据是不稳定的,虽然记入了数据,但被判定成无效的采样点,所以需要在程序中定义一个静态数组 x2记录相邻的两次采样数据。只有当前后数据持续稳定一段时间,才认为这时的采样点有效。程序中使用的间隔门限 FILTER_LIMIT 是

20、需要经过试验来选取的。这里只给出 X坐标的滤波过程。/*px 为 T3 时刻的采样值,count 是记录连续有效采样点次数的静态变量,标志当前数据持续稳定时间,一旦发现大于/FILTER_LIMIT,count 的值又要从 0 开始计数。Int Touch_Pen_filtering(int *px)BOOL retVal;Static int count=0;count+;/如果连续有效采样点次数大于 2 次,开始进行滤波算法if(count2)count=2;/将 T3 时刻采样值和 T1 时刻采样值作平均TmpX=(x0+*px)/2;/计算平均值和 T2 时刻采样值的差值dx=(x1T

21、mpX)?(x1-TmpX):(TmpX-x1);点击查看大图/如果差值大于门限值,说明 T3 的采样值无效,判为野点返回值为 FALSE。为了避免过大的跳跃,认为触摸笔坐标沿变,使用 T2 时刻采样值来代替本次采样点,同时静态变量x中的数据不变,count 重新开始记录连续有效采样点次数if(dxFIL TER_LIMIT)*px=x1;retVal=FLASE;count=0;/否则采样点有效返回值为 TRUE,将 T3 的采样点记入到 x1中,T2 的采样点移到 x0中elsex0=x1;x1=*px;retVal=TRUE;else/连续有效采样次数小于 2,将 T3 的采样值记入到

22、x1,T2 的采样值移动到 x0,并不进行滤波处理x0=x1;x1=*px;retVal=FLASE;return retVal;54 后续处理经过上述的筛选和滤波,如果被判定采样值有效,则将其滤波值送给操作系统进行后续处理,否则程序返回,等待下一次采样。在 2410 test 程序中,可以结合 LCD 的画点函数,将有效的采样点在 LCD 上画出,以此检验参数设置是否合理。六、总结本文以三星公司 ARM9 内核芯片 S3C2410 和 4 线电阻式触摸屏为硬件基础。基于此硬件结构,开发了触摸屏画图板程序。通过软件滤波,提高了系统性能,得到了很好的处理效果,有很强的实用性。用此算法实现的 Windows CE 触摸屏驱动,。软件使用 C 语言实现,可以方便地移植到任何操作系统上。参考文献:1. 毛德操,胡希明著 .Linux 内核源代码情景分析.杭州:浙江大学出版社,20012. 孙天泽,袁文菊 ,张海峰等.嵌入式设计及 Linux 驱动开发指南. 北京:电子工业出版社,20053. R Love. Linux 内核设计与实现. 陈莉君, 康华,张波等译.北京:机械工业出版社,20064. 殷惠莉,刘少君 ,黄道平.基于 uClinux 触摸屏的设计.电子工程师 .2004(2)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报