S3C2410触摸屏驱动程序原理图

合集下载

触摸屏驱动学习

触摸屏驱动学习

触摸屏驱动学习/embeddedlong/article/details/6112623第一:四线式电阻式触摸屏原理S3C2440而言:在直接试用触摸屏的是时,引脚XP、XM、XP和YM被用于和触摸屏直接相连。

只剩下AIN[3:0]共4个引脚用于一般的ADC输入;当不使用的时候,XP、XM、XP和YM也可用于一般的ADC输入。

S3C2440的触摸屏接口可以驱动成四线电阻触摸屏,四线触摸屏的等效电路如图:14.4所示。

图中粗线表示相互绝缘的两层导电层,当按下时,他们触点处相连;不同的触点在x,y方向电压值不一样,将这两个值经过A/D转换后即可得到X,Y的坐标。

触摸屏工作过程:1.触摸屏没有被按下时,等效电路如14.5所示S4,S5闭合,S1,S2,S3断开,即YM接地、XP上拉、XP作为模拟输入(对CPU而言),YP 作为模拟输入(对CPU而言),XM高阻。

触摸屏没有按下的时候,Y_ADC因为上拉,为高电平,当X轴和Y轴受挤压而接触导通后,Y_ADC的电压由于连通到地变为低电平,此低电平可作为中断触发信号来通知CPU发生“Pen Down”事件,称为等待中断模式。

Pen Down/Up:就是触摸屏按下(松开),都产生INT_TC中断信号,在ADCTSC寄存器的位【8】为0或者1时,表示等待Pen Down/Up中断。

2.采集X_ADC电压,得到X坐标,等效电路如14.6所示。

S1,S3闭合,S2,S4,S5断开,即XP接上电源,XM接地,YP作为输入(对CPU而言)、YM高祖、XP禁止上拉。

这时,YP即X_ADC就是X轴的分压点,进行A/D转换后就得到X坐标。

3.采集Y_ADC电压,得到Y坐标,等效电路如14.7所示。

S2、S4闭合,S1,S3,S5断开,即YP接上电源、YM接地、XP作为模拟输入(对CPU而言),XM高祖,XP禁止上拉,这时,XP即Y_ADC就是y轴的分压点,进行A/D转换后就得到y坐标。

S3c2410电路设计(以北京博创s3c2410-s实验箱为例讲解)

S3c2410电路设计(以北京博创s3c2410-s实验箱为例讲解)

17
印刷电路板的设计
电源质量与分配
电源分配
实际的工程应用和理论都证实,电源的分配对系统的稳定性有很 大的影响,因此,在设计印刷电路板时,要注意电源的分配问题。
在印刷电路板上,电源的供给一般采用电源总线(双面板)或电 源层(多层板)的方式。电源总线由两条或多条较宽的线组成,由 于受到电路板面积的限制,一般不可能布得过宽,因此存在较大的 直流电阻,但在双面板得设计中也只好采用这种方式了,只是在布 线的过程中,应尽量注意这个问题。 在多层板的设计中,一般使用电源层的方式给系统供电。该方式 专门拿出一层作为电源层而不再在其上布信号线。由于电源层遍及 电路板的全面积,因此直流电阻非常的小,采用这种方式可有效的 降低噪声,提高系统的稳定性。
32
33
LCD与触摸屏

从CPU 的LCD 控制器出来的信号线包括24 根数据线和若 干根控制线。对于256色LCD 只需要其中低8 位数据线即可。 这些信号线是经过74HC245 隔离后接到LCD 模块的,接 256 色屏时也由245 芯片完成电平转换。8 位LCD 模块除 了需要控制信号和数据信号外,还需要一个22V 左右的工 作电压和上千伏的背光电压。前者由MAX629 升压后得到, 后者由一个逆变器模块提供。另外LCD 信号线驱动芯片 74HC245 的电源是可选的,当使用5V 电平的256 色彩屏 时该芯片电源使用5V,使用3.3V 的16 位真彩屏选择3.3V。 (2410-S可以安装5#的伪彩屏和8#的真彩屏)。
芯片在工作时有一定的发热是正常的,但如果有芯片特 别发烫,则一定有故障存在,需断电检查确认无误后方可继 续通电调试。
20
硬件系统的调试
电源、晶振及复位电路调试
调试电源电路之前,尽量少接器件,通电之前检查有无 短路现象

S3C2410 LCD驱动学习心得-4

S3C2410 LCD驱动学习心得-4

3. BMP和JPEG图形显示程序3.1 在LCD上显示BMP或JPEG图片的主流程图首先,在程序开始前。

要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。

命令如下:mknod fb0 c 29 0在LCD上显示图象的主流程图如图3.1所示。

程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下来就是读取图形文件数据,把图象的RGB值映射到显存中,这部分是图象显示的核心。

对于JPEG格式的图片,要先经过JPEG解码才能得到RGB 数据,本项目中直接才用现成的JPEG库进行解码。

对于bmp格式的图片,则可以直接从文件里面提取其RGB数据。

要从一个bmp文件里面把图片数据阵列提取出来,首先必须知道bmp文件的格式。

下面来详细介绍bmp文件的格式。

图3.13.2 bmp位图格式分析位图文件可看成由四个部分组成:位图文件头、位图信息头、彩色表和定义位图的字节阵列。

如图3.2所示。

图3.2文件头中各个段的地址及其内容如图3.3。

图3.3位图文件头数据结构包含BMP图象文件的类型,显示内容等信息。

它的数据结构如下定义:Typedef struct{int bfType;//表明位图文件的类型,必须为BMlong bfSize;//表明位图文件的大小,以字节为单位int bfReserved1;//属于保留字,必须为本0int bfReserved2;//也是保留字,必须为本0long bfOffBits;//位图阵列的起始位置,以字节为单位} BITMAPFILEHEADER;图3.4 位图文件头的数据结构(2)信息头中各个段的地址及其内容如图3.5所示。

图3.5位图信息头的数据结构包含了有关BMP图象的宽,高,压缩方法等信息,它的C语言数据结构如图3.6所示。

Typedef struct {long biSize;//指出本数据结构所需要的字节数long biWidth;//以象素为单位,给出BMP图象的宽度long biHeight;//以象素为单位,给出BMP图象的高度int biPlanes;//输出设备的位平面数,必须置为1int biBitCount;//给出每个象素的位数long biCompress;//给出位图的压缩类型long biSizeImage;//给出图象字节数的多少long biXPelsPerMeter;//图像的水平分辨率long biYPelsPerMeter;//图象的垂直分辨率long biClrUsed;//调色板中图象实际使用的颜色素数long biClrImportant;//给出重要颜色的索引值} BITMAPINFOHEADER;图3.6 BITMAPINFOHEADER数据结构(3)对于象素小于或等于16位的图片,都有一个颜色表用来给图象数据阵列提供颜色索引,其中的每块数据都以B、G、R的顺序排列,还有一个是reserved保留位。

基于处理器SC22410的手持终端触摸屏的设计_secret

基于处理器SC22410的手持终端触摸屏的设计_secret
With the application of embedded technology in smart phones, PDA and other hand-hold terminal equipments is increasingly extensive. As an input device of terminal equipment, the Touch screen has the advantages of space saving, simple operation, fast response, is very suitable as the input equipment of the hand-hold terminals and other embedded systems. S3C2410 is one 16/32-bit microprocessor with ARM920T core. As the core of the new generation of the embedded platform, ARM9 uses 5 levels of assembly lines and massive registers, supporting the cooperated processor and debugging online, has the advantage of carries out the instruction quickly and efficiently. It is widely applied in the industry control, the wireless communication, the expense class electronic products, the imagery and the security product and so on. The embedded Linux developed from the open source code Linux, It has simply core and the function of strongly managing the memory, support the multi-duties. It provides the general interface in the way of device drivers. Therefore the Embedded Linux was considered as one of the most superior choices in the current embedded operating systems. Qt/Embedded is the system that provides the graphical user interface special used in the embedded system. It integrates a lot of small window parts, supports the custom-made window and consumes memory fewer. This paper introduced the realization of the operation of the touch screen, which in the foundation of the Embedded Linux operation system and the S3C2410 processor, is designed by Qt/Embedded .This plan may utilize to the upscale automobile GPS cruise

基于S3C2440的触摸屏驱动程序实现

基于S3C2440的触摸屏驱动程序实现

基于S3C2440的触摸屏驱动程序实现强新建1,田 泽1,2,刘天时1(1.西安石油大学计算机学院,陕西西安710065;2.西北大学信息科学与技术学院,陕西西安710068)摘 要:触摸屏作为人机界面的输入设备被广泛的应用于消费电子、工业控制等诸多领域。

目前流行的嵌入式AR M 处理器S3C2440是一款典型的嵌入式S oC 芯片,它提供了触摸屏控制器接口,方便了嵌入式软、硬件开发。

简要介绍了S3C2440处理器,同时分析了触摸屏的硬件架构、硬件工作原理及与及其工作框图,在此基础上给出了触摸屏与S3C2440的硬件连接电路图。

介绍了S3C2440下触摸屏的W inCE 驱动构架,并指出相关注册表的修改技术。

在S3C2440的嵌入式W inCE 开发平台上,该驱动程序运行良好。

关键词:S3C2440;触摸屏;驱动中图分类号:TP18 文献标识码:A 文章编号:1671Ο654X (2007)04Ο0085Ο03引言触摸屏具有坚固耐用、反应速度快、节省空间、易于交流等许多优点[1],作为一种新的电脑输入设备,是目前最简单方便而且又适用于中国多媒体信息查询国情的输入设备。

利用这种技术,我们只要用手指就能实现对主机操作,使人机交互更为直截了当,极大方便了那些不懂电脑操作的用户。

触摸屏在我国的应用范围非常广阔:公共信息的查询,如电信局、税务局、银行、电力等部门的业务查询;城市街头的信息查询;此外还可广泛应用于领导办公、工业控制、军事指挥、电子游戏、点歌点菜、多媒体教学、房地产预售等[2]。

随着城市向信息化方向发展和电脑网络在日常生活中的渗透,信息查询都会更多以触摸屏形式。

1 硬件架构本文基于S3C2440,实现了W inCE 下触摸屏驱动程序。

除对S3C2440处理器的一些特点做了简单介绍外,从触摸屏的硬件结构、工作机理等进行了全面分析。

1.1 S3C2440处理器简介S3C2440是16 32位精简指令集微处理器,是为应用于小型掌上设备和高性价比,低功耗,高性能的嵌入式系统应用而提供的微控制。

LCD控制器-S3C2410

LCD控制器-S3C2410

LCD控制器什么是液晶显示器(LCD)液晶,是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。

一般可分热致液晶和溶致液晶两类。

在显示应用领域,使用的是热致液晶,超出一定温度范围,热致液晶就不再呈现液晶态,温度低了,出现结晶现象,温度升高了,就变成液体;液晶显示器件所标注的存储温度指的就是呈现液晶态的温度范围。

利用液晶分子受到电压的影响而改变其分子的排列状态,并且可以让入射光线产生偏转的现象之原理,制造出的使用液晶显示的屏幕就是液晶显示器,英文称LCD(Liquid Crystal Display)。

在LCD 显示器中,显示面板薄膜被分成很多小栅格,每个小栅格有一个电极控制,通过改变栅格上的电极就能控制格内液晶分子的排列,从而控制光路的导通。

彩色显示通过利用三种原色混合的原理显示不同的色彩:彩色面板中,每个像素都是有三个液晶单元格构成的,其中每个单元格前面都分别有红色,绿色或蓝色的过滤片;光线经过过滤片的处理变成红色,蓝色或则绿色,利用三原色的原理组合出不同的色彩。

TN、STN和TFT型LCDLCD 种类可分为依驱动方式之静态驱动(Static)、单纯矩阵驱动(Simple Matrix)以及主动矩阵驱动(Active Matrix)三种。

而其中,单纯矩阵型又是俗称的被动式(Passive),可分为扭转向列型(Twisted Nematic,简称TN)和超扭转式向列型(Super Twisted Nematic,简称STN)两种;而主动矩阵型则以薄膜式晶体管型(Thin Film Transistor;TFT)为目前主流。

这两种显示器的基本原理比较接近,不同点在于:TN 型显示器通过电极控制液晶分子,FET 有电容效应,显示质量较差;TFT 型显示器则通过FET 电子管控制液晶分子,FET 有电容效应,所以液晶分子能在下一次电极变化前保持原有的排列,因此TFT 型显示器的颜色数量和刷新速度都优于TN 型显示器。

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现S3C2410X 支持硬件方式的水平和垂直滚屏。

要实现滚屏,可修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的值(如图所示)。

但不是通过修改PAGEWIDTH和OFFSIZE来实现。

对于STN类型的LCD,VFRAME和VLINE脉冲的产生取决于于LCDCON2/3寄存器中的HOZV AL和LINEV AL的配置,它们都与LCD屏的大小和显示模式有关。

换句话说,HOZV AL和LINEV AL可由LCD屏与显示模式决定,公式如下:HOZV AL = (水平显示尺寸/有效VD数据队列数)-1彩色显示模式下:水平显示尺寸=3 * 水平像素数在4位但扫描模式下,有效VD数据队列数应为4。

若用4位双扫描模式显示,有效的VD数据队列数也是4,但在8位但扫描模式下,有效的VD数据队列数应为8.单扫描情况:LINEV AL = (垂直显示尺寸)-1双扫描情况:LINEV AL = (垂直显示尺寸/2)-1LCDBASEU:对双扫描LCD:这些位只是帧缓冲区或在双扫描LCD时的上帧缓冲区的开始地址A[21:1]对单扫描LCD:这些位只是帧缓冲区的开始地址A[21:1]LCDBASEL:对双扫描LCD:这些位只是在使用双扫描LCD时的下帧存储区的开始地址A[21:1]对单扫描LCD:这些位只是帧存储区的末地址[21:1]LCDBASEL=((the frame end address)>>1)+1=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEV AL+1)注意:当LCD 控制器启用时,用户可通过改变LCDBSEU和LCDBASEL的值实现滚屏。

但是,在一帧结束时,LCDBASEU和LCDBASEL的值务必不能改变,可参考LCDCON1寄存器中的LINECNT域,因为LCD屏的显示也会出现错误。

ARM微处理器 S3C2410的简介

ARM微处理器 S3C2410的简介

ARM微处理器 S3C2410的简介1.1 ARM微处理器的介绍1)ARM微处理器的工作状态和工作模式从编程的角度看,ARM微处理器的工作状态有两种,可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

2)ARM微处理器支持7种运行模式,分别为:用户模式(USR):ARM处理器正常程序执行的模式。

快速中断模式( FIQ ):用于高速数据传输或通道处理用于快速中断服务程序。

当处理器的快速中断请求引脚有效,且CPSR(6位)中F位为0时(开中断),会产生FIQ异常。

外部中断模式( IRQ ):用于通用的中断处理,当处理器的外部中断请求引脚有效,且CPSR(7位)中I位为0时(开中断),会产生IRQ异常。

系统的外设可通过该异常请求中服务。

特权模式或管理员模式(SVE):操作系统使用的保护。

执行软件中断SWI 指令和复位指令时,就进入管理模式,在对操作系统运行时工作在该模式下。

1.2 S3C2410微处理器1.2.1 概述S3C2410是韩国三星公司的一款基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。

运行的频率可以达到203MHz。

ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。

其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache 组成。

ARM920T有两个协处理器:CP14和CP15。

CP14用于调试控制,CP15用于存储系统控制以及测试控制。

ARM920T体系结构框图图2-1 ARM920T体系结构框图1.2.2 S3C2410微处理器的结构S3C2410内部结构原理内部原理框图如下:图2-2S3C2410内部结构原理ARM 微处理器中共定义了37个编程可见寄存器,每个寄存器的长度均为32位。

基于S3C2410触摸屏驱动程序设计

基于S3C2410触摸屏驱动程序设计

网络信息工程2021.10基于S3C2410触摸屏驱动程序设计张鹏(汉中职业技术学院汽车与机电工程学院,陕西汉中,723002)摘要:本文所设计的基于S3C2410触摸屏驱动程序,利用ADS软件配置,其中程序中包含了触摸屏初始化模块、AD转换和采样数据处理模块等等,实现驱动触摸屏的目的。

关键词:S3C2410;ADS;触摸屏;嵌入式Design of touch screen driver based on S3C2410Zhang Peng(School of Automobile and Mechanical and Electrical Engineering,Hanzhong Vocation&l and Techni­cal College,Hanzhong Shaanxi,723002)Abstrac t:The touch screen driver based on S3C2410is designed in this paper,which is configured by ADS software.The program includes touch screen initialization module,AD conversion and sampling data processing module,etc.to achieve the purpose of driving the touch screen.Keywords;S3C2410;ads;touch screen;embedded1S3C2410触摸屏设备及原理介绍触摸屏(touch screen)又称为触控屏或触控板,是一种便于接收触头等输入信号的感应式液晶显示设备,当接触到液晶显示屏幕时,屏幕上的触觉信号反馈系统就会根据预先编写的算法程序驱动各种外接设备,用以代替常规机械式的手动按钮面板,同时,借用液晶显示画面显示出形象生动的视觉效果。

触摸屏硬件原理及寄存器分析

触摸屏硬件原理及寄存器分析

触摸屏原理及寄存器分析触摸屏分为电阻,电容,表面声波,红外线扫描和矢量压力传感等,其中使用最多的是四线或五线电阻触摸屏,四线电阻触摸屏是由两个透明电阻膜构成,在它们水平和垂直电阻网上施加电压,就可以通过A/D转换面板在触摸点上测量出来的电压,从而对应出坐标值。

现在我们在s3c2410用的YL-LCD35-V1.0就是四线电阻触摸屏。

S3c2410的CMOS模数转换器〔ADC,Analog to Digital Converter〕可以接收8通道的模拟信号输入,并将它们转换为10位的二进制数据。

一.虽然四线电阻触摸屏有着价格低的优势,但是也存在缺陷。

电阻触摸屏的B面要经常被触动,四线电阻触摸屏的B面采用ITO,我们知道, ITO是极薄的氧化金属,使用过程中,很快就会产生细小的裂纹,而裂纹一旦产生,原流经该处的电流被迫绕裂纹而行,本该均匀分布的电压随之遭到破坏,触摸屏就有了损伤,表现为裂纹处点不准。

图6-6 四线制触摸屏的裂纹导致分流随着裂纹的加剧和增多,触摸屏慢慢就会失效,因此使用寿命不长是四线电阻触摸屏的主要问题。

五线电阻触摸屏的改进:首先五线电阻触摸屏的A面是导电玻璃而不是导电涂覆层,导电玻璃的工艺使得A面的寿命得到极大的提高,并且可以提高透光率。

其次五线电阻触摸屏把工作面的任务都交给寿命长的A面,而B面只用来作为导体,并且采用了延展性好、电阻率低的镍金透明导电层,因此,B面的寿命也极大的提高。

五线电阻触摸屏的另一个专有技术是通过精密的电阻网络来校正A面的线性问题:由于工艺工程不可避免的有可能厚薄不均而造成电压场不均匀分布,精密电阻网络在工作时流过绝大部分电流,因此可以补偿工作面有可能的线性失真。

五线电阻触摸屏是目前最好的电阻技术触摸屏,最适合于军事、医疗领域使用。

但是四线电阻触摸屏由于价格低廉,在通用领域的运用,下面将结合S3C2410内置的触摸屏控制器来详细讲解整个触摸屏电路的工作及测量过程。

14.2.1 S3C2410的ADC及触摸屏接口原理_嵌入式Linux系统实训教程_[共2页]

14.2.1  S3C2410的ADC及触摸屏接口原理_嵌入式Linux系统实训教程_[共2页]

第14章 触摸屏实例◆ 231 ◆ 电极对上加电压,而X 电极对上不加电压时,通过测量X +电极的电压,便可得知触点的Y 坐标。

图14-2 电阻式触摸屏的原理其实,电阻式触摸屏是利用了如图14-2(b )所示的分压器原理来产生触点电压的。

具体一点描述就是:以X 方向为例,假设整个X 导电层的电阻为R ,将X +接VREF ,X -接地,Y 方向不接电压,仅仅作为导电介质(可以理解成与触点相连的导线)。

当X 层和Y 层在某点处连通时,触摸点将X 层分为R 1与R 2两个电阻,假定X -的X 坐标为0,X +的X 坐标为X ,触点的X 坐标为XMES ,此时坐标、电阻、电压三者之间满足式(14-1-1)的关系。

XMES /X = R 2/R = VMES /VREF式(14-1-1)中,VREF 和X 已知,那么只要获取了VMES 的值就能求出XMES 。

Y 方向的坐标同理可得。

14.2 S3C2410的触摸屏控制要正确使用触摸屏,首先就要正确获取触摸屏的坐标。

上一节已经介绍了触摸屏的硬件原理,了解到需要分时给触摸屏的X 层或Y 层外加电压,再通过测量触点电压得到触点坐标。

那么触摸屏控制器的作用就是要实现为触摸屏的X 层或Y 层分时提供电压,同时还要获取触点电压,并通过模数转换器(ADC )将这个电压模拟量换成数字量。

14.2.1 S3C2410的ADC 及触摸屏接口原理如图14-3所示,S3C2410内部集成的一个外部晶体管控制器,为四线电阻式触摸屏提供nYMON 、YMON 、nXPON 和XMON 控制信号,这些控制信号用来实现对4个外部晶体管(需要硬件电路设计人员自行添加)的通断控制,进而实现分时为触摸屏的X 导电层、Y 导电层提供电压。

注意到,外部晶体管控制器还提供了一个引脚用来控制一个内部晶体管,该晶体管的导通与否决定了AIN7是否被上拉到VDDA_ADC 。

AIN7还连接到了S3C2410的中断发生器。

基于S3C2410的触摸屏控制设计

基于S3C2410的触摸屏控制设计

基于S3C2410的触摸屏控制设计作者:物理科学与信息工程学院 07级电科二班向倪 2007103041摘要:在介绍触摸屏工作原理的基础上,详细地阐述了s3C2410与触摸屏的硬件接p与软件实现。

利用双MOS管(P和N沟道)设计了触摸屏与s3C2410的接口电路。

并利用$3C2410的等待中断模式和自动XY坐标转换工作模式,读出与XY坐标有关的电压值,完成对触摸屏的控制。

引言:触摸屏(ts,Touch Screen)使人们摆脱了键盘和鼠标的操作,让人机交互更为直接。

它与鼠标这类相对定位系统的本质区别是一次到位的直观性。

作为一种方便、简单的操作手段,它广泛地应用于各类嵌入式产品中。

根据工作原理的不同,可将触摸屏分为四类:电阻式触摸屏、电容式触摸屏、红外线式触摸屏和声表面触摸屏。

电阻式触摸屏由于价格便宜,易于生产,不怕灰尘、油污和光电干扰等优点,是目前应用最为广泛的触摸屏。

$3C2410是三星公司推出的一款AMR9芯片,有丰富的外围功能模块,使用它的触摸屏接口可以方便地与触摸屏相联。

硬件结构:1、电阻式触摸屏工作原理电阻式触摸屏一般由三部分组成,两层透明的阻陛导体层及这两层之间的隔离层。

在没有外力时两个阻性导体层中间被微小透明的绝缘“分隔点”隔开,两层没有电气联系。

如果触摸屏的某一点被外力作用,则在这点的上下两阻性导体层便会相互接触。

工作时触摸屏上下导体层的电阻网络是交替工作的,当其中一层两端加上电压在层中的阻性导体中形成均匀的电压梯度时,另一层就作为侦测层工作。

很显然,由于接触点的位置不同,侦测层所得到是一个与位置有关的的电压,并且侦测层不应该对这个电压产生什么影响,工作时触摸屏的引脚状态如图1所示。

将接触点的电压通过AD转换读入CPU中,再经过一定的运算处理,就可以得到触摸点的坐标。

为了能分别检测一个点的x坐标和Y坐标,一阻性层形成的电压梯度应在x方向上,另一阻性层的电压梯度应在Y方向上。

因此,要获取屏上触摸点的坐标首先要对触摸屏的引脚进行切换控制,使其处于合适的状态,然后通过ADC转换采集接触点处的电压值,最后对采集的电压进行平均、坐标变换等后续处理,得到触摸点的坐标。

S3C2410触摸屏驱动程序原理图

S3C2410触摸屏驱动程序原理图

S3C2410触摸屏驱动程序原理图本文介绍了基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成触摸屏模块的设计。

具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。

设计完成的触摸屏驱动程序在博创公司教学实验设备UP-NETARM2410-S平台上运行效果良好。

引言随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应用。

如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题。

本文主要介绍在三星S3C2410X微处理器的硬件平台上进行基于嵌入式Linux的触摸屏驱动程序设计。

硬件实现方案SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏控制器。

本文采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。

ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。

图1触摸屏输入系统示意图嵌入式Linux系统下的驱动程序设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。

Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。

应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。

为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。

S3c2410的触摸屏及模数转换

S3c2410的触摸屏及模数转换

S3c2410的触摸屏及模数转换作者:佚名转贴自:互联网点击数:298 更新时间:2006-6-15 文章录入:admin一、触摸屏的几个概念所谓触摸屏,从市场概念来讲,就是一种人人都会使用的计算机输入设备,或者说是人人都会使用的与计算机沟通的设备。

不用学习,人人都会使用,是触摸屏最大的魔力,这一点无论是键盘还是鼠标,都无法与其相比。

从技术原理角度讲,触摸屏是一套透明的绝对寻址系统,首先它必须保证是透明的,因此它必须通过材料科技来解决透明问题,像数字化仪、写字板、电梯开关,它们都不是触摸屏;其次它是绝对坐标,手指摸哪就是哪,不需要第二个动作,不像鼠标,是相对定位的一套系统,我们可以注意到,触摸屏软件都不需要游标,有游标反倒影响用户的注意力,因为游标是给相对定位的设备用的,相对定位的设备要移动到一个地方首先要知道现在在何处,往哪个方向去,每时每刻还需要不停的给用户反馈当前的位置才不致于出现偏差。

这些对采取绝对坐标定位的触摸屏来说都不需要;再其次就是能检测手指的触摸动作并且判断手指位置,各类触摸屏技术就是围绕“检测手指触摸”而八仙过海各显神通的。

1、触摸屏的第一个指针:光学特性。

它直接影响到触摸屏的视觉效果。

但是触摸屏是多层的复合薄膜,光学特性上包括四个方面:透明度、色彩失真度、反光性和清晰度。

彩色世界包含了可见光波段中的各种波长色,在没有完全解决透明材料科技之前,或者说还没有低成本的很好解决透明材料科技之前,多层复合薄膜的触摸屏在各波长下的透光性还不能达到理想的一致状态,下面是一个示意图(图6-1):图6-1由于透光性与波长曲线图的存在,通过触摸屏看到的图像不可避免的与原图像产生了色彩失真,静态的图像感觉还只是色彩的失真,动态的多媒体图像感觉就不是很舒服了,色彩失真度也就是图中的最大色彩失真度自然是越小越好。

平常所说的透明度也只能是图中的平均透明度,当然是越高越好。

反光性,主要是指由于镜面反射造成图像上重迭身后的光影,例如人影、窗户、灯光等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S3C2410触摸屏驱动程序原理图本文介绍了基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成触摸屏模块的设计。

具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。

设计完成的触摸屏驱动程序在博创公司教学实验设备UP-NETARM2410-S平台上运行效果良好。

引言随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应用。

如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题。

本文主要介绍在三星S3C2410X微处理器的硬件平台上进行基于嵌入式Linux的触摸屏驱动程序设计。

硬件实现方案SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏控制器。

本文采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。

ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。

图1触摸屏输入系统示意图嵌入式Linux系统下的驱动程序设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。

Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。

应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。

为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。

设备驱动在加载时首先需要调用入口函数init_module(),该函数完成设备驱动的初始化工作。

其中最重要的工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。

注册成功后,该设备获得了系统分配的主设备号、自定义的次设备号,并建立起与文件系统的关联。

字符设备驱动程序向Linux内核注册登记时,在字符设备向量表chrdevs中增加一个device_struct数据结构条目,这个设备的主设备标识符用作这个向量表的索引。

向量表中的每一个条目,即一个device_struct数据结构包括两个元素:一个登记的设备驱动程序的名称的指针和一个指向一组文件操作的指针。

这块文件操作本身位于这个设备的字符设备驱动程序中,每一个都处理特定的文件操作,比如打开、读写和关闭。

所谓登记,就是将由模块提供的file_operations结构指针填入device_struct数据结构数组的某个表项。

登记以后,位于上层的模块(内核)可以“看见”这个模块了。

但是,应用程序却还不能“看见”它,因而还不能通过系统调用它。

要使应用程序能“看见”这个模块或者它所驱动的设备,就要在文件系统中为其创建一个代表它的节点。

通过系统调用mknod()创建代表此项设备的文件节点——设备入口点,就可使一项设备在系统中可见,成为应用程序可以访问的设备。

另外,设备驱动在卸载时需要回收相应的资源,令设备的相应寄存器值复位并从系统中注销该设备。

Linux操作系统通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。

设备驱动模块的功能就是扩展内核的功能,主要完成两部分任务:一个是系统调用,另一个是处理中断。

图2是一个设备驱动模块动态挂接、卸载和系统调用的全过程。

系统调用部分则是对设备的操作过程,比如open,read,write,ioctl等操作,设备驱动程序所提供的这组入口点由几个结构向系统进行说明,分别是file_operations数据结构、inode数据结构和file数据结构。

内核内部通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问设备驱动的函数,结构中的每一个成员都对应着一个系统调用。

在嵌入式系统的开发中,我们一般仅仅实现其中几个接口函数:read、write、open、ioctl及release就可以完成应用系统需要的功能。

写驱动程序的任务之一就是完成file_operations中的函数指针。

触摸屏驱动程序设计触摸屏驱动程序中重要数据结构typedef struct{unsigned short pressure;unsigned short x;unsigned short y;unsigned short pad;}TS_RET;typedef struct{unsigned int PenStatus;TS_RET buf[MAX_TS_BUF];unsigned int head,tail;wait_queue_head_t wq;spinlock_t lock;}TS_DEV;static struct file_operations s3c2410_fops={owner:THIS_MODULE,open:s3c2410_ts_open,read:s3c2410_ts_read,release:s3c2410_ts_release,poll:s3c2410_ts_poll,};在程序中有三个重要的数据结构:用于表示笔触点数据信息的结构TS_RET,表示ADS7843中有关触摸屏控制器信息的结构TS_DEV,以及驱动程序与应用程序的接口file_operations结构的s3c2410_fops。

TS_RET结构体中的信息就是驱动程序提供给上层应用程序使用的信息,用来存储触摸屏的返回值。

上层应用程序通过读接口,从底层驱动中读取信息,并根据得到的值进行其他方面的操作。

TS_DEV结构用于记录触摸屏运行的各种状态,PenStatus包括PEN_UP、PEN_DOWN和PEN_FLEETING。

buf[MAX_TS_BUF]是用来存放数据信息的事件队列,head、tail分别指向事件队列的头和尾。

程序中的笔事件队列是一个环形结构,当有事件加入时,队列头加一,当有事件被取走时,队列尾加一,当头尾位置指针一致时读取笔事件的信息,进程会被安排进入睡眠。

wq等待队列,包含一个锁变量和一个正在睡眠进程链表。

当有好几个进程都在等待某件事时,Linux会把这些进程记录到这个等待队列。

它的作用是当没有笔触事件发生时,阻塞上层的读操作,直到有笔触事件发生。

lock使用自旋锁,自旋锁是基于共享变量来工作的,函数可以通过给某个变量设置一个特殊值来获得锁。

而其他需要锁的函数则会循环查询锁是否可用。

MAX_TS_BUF的值为16,即在没有被读取之前,系统缓冲区中最多可以存放16个笔触数据信息。

s3c2410_fops就是内核对驱动的调用接口,完成了将驱动函数映射为标准接口。

上面的这种特殊表示方法不是标准C的语法,而是GNU编译器的一种特殊扩展,它使用名字进行结构字段的初始化,它的好处体现在结构清晰,易于理解,并且避免了结构发生变化带来的许多问题。

init_module函数这是模块的入口函数。

在函数内部通过s3c2410_ts_init()实现模块的初始化工作。

在本设计中设备与系统之间以中断方式进行数据交换。

整个触摸屏的驱动程序处理比较复杂,而且耗时较长,因而触摸屏驱动程序不可能在中断服务程序中完成。

在Linux操作系统中一般把中断处理切为两个部分或两半。

中断处理程序是上半部——接收到一个中断,它就立即开始执行,但只做有严格时限的工作,例如对接收的中断进行应答或复位硬件。

这些工作都是在所有中断被禁止的情况下完成的,能够被允许稍后完成的工作会推迟到下半部去。

在Linux中下半部的实现有多种机制。

按触摸屏时,从ADS7843输出的数值有一个抖动过程,即从ADS7846输出的数值有一个不稳定时期,这个过程大约为10ms。

所以中断处理程序的下半部处理函数采用内核定时器机制,使下半部在中断发生50ms后再作处理。

这样有效地避开了ADS7843输出值的不稳定时期,使中断服务程序和中断处理任务串行化,达到了处理时间较长的触摸屏事件的目的。

驱动程序通过request_irq函数注册并激活一个中断处理程序,以便处理中断。

图2设备驱动在内核中的挂接、卸载和系统调用过程int reguest_irq(unsigned int irq,void(*handler)(int,void*,struct pt_regs*),unsigned long irq_flags,const char*dev_name,void*dev_id)参数irq表示所要申请的中断号;handler为向系统登记的中断处理子程序,中断产生时由系统来调用;dev_name为设备名;dev_id为申请时告诉系统的设备标识符;irq_flags是申请时的选项,它决定中断处理程序的一些特性,其中最重要的是中断处理程序是快速处理程序还是慢速处理程序。

本设计中触摸屏控制器ADS7843的中断输出通过外部中断5接在中断控制器上,当触摸屏上有触摸事件发生时,会引发中断号为IRQ_EINT5的中断服务程序s3c2410_isr_tc()。

图3所示为该中断处理程序的流程图。

图3触摸屏硬件中断处理程序流程图在s3c2410_isr_tc()中设定了定时器的定时时间为50ms,并立即激活。

因此有触摸屏硬件中断的情况下50ms后就会引发定时中断,中断服务程序为ts_timer_handler(),这个程序实现了触摸屏中断的下半部,即在过了抖动时间之后如果触摸屏确实有有效事件发生则采集触摸屏坐标,并将定时器的时间重新设为100ms并重新激活,这样做的目的是如果触摸笔是拖动的情况,以后每100ms采集一次坐标值,并存入缓冲区,如果不是拖动在采集一次坐标值之后,在第二次进入ts_timer_handler()时,查询管脚的状态值,则变为高电平,就将触摸屏状态tsdev.PenStatus设为PEN_UP,并释放定时器,为下次触摸屏事件做好准备,定时中断服务程序流程图如图4所示。

图4定时中断服务程序流程图在s3c2410_ts_init()中的另一个重要任务是执行接口函数s3c2410_ts_open(),在这个函数中初始化缓冲区的头尾指针、触摸屏状态变量及触摸屏事件等待队列。

module_exit()该函数调用s3c2410_ts_exit(),主要任务是撤销驱动程序向内核的登记以及释放申请的中断资源。

相关文档
最新文档