基于S3C2410的触摸屏应用技术

   2024-02-18 互联网910
核心提示:  1 S3C2410嵌入式处理器技术特点  嵌入式微处理器与工业控制计算机相比,具有体积小、重量轻、成本低、可靠性高的优点,其

  1 S3C2410嵌入式处理器技术特点

  嵌入式微处理器与工业控制计算机相比,具有体积小、重量轻、成本低、可靠性高的优点,其中ARM体系处理器占据了目前各种嵌入式处理器最大的市场份额,S3C2410处理器是ARM体系中的一员,应用广泛。S3C2410处理器的技术特点有:

  (1)S3C2410处理器是Samsung公司基于ARM公司ARM920T内核设计的ARM9系列32位微控制器统处理器,采用0.18um制造工艺。

  (2)拥有独立的16KB指令Cache和16KB数据Cache,支持TFT的LCD及控制器。

  (3)接口丰富,有多达117个通用I/O口线,集成有3路UART、4路DMA、4路带PWM的Timer、RTC,8路10位ADC,Touch Screen接口等。

  (4)速度较快,S3C2410处理器最高可运行在203MHz。

  2 触摸屏原理及应用

  触摸屏由触摸检测部件和触摸屏控制器组成;触摸检测部件安装在显示器屏幕前面,用于检测用户触摸位置,接受后送触摸屏控制器;而触摸屏控制器的主要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给微控制器(CPU),它同时能接收CPU发来的命令并加以执行。

  触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式、表面声波式,其中电阻式触摸屏在嵌入式系统中用的较多。电阻触摸屏是一块4层的透明的复合薄膜屏,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从而光滑防刮的塑料层,中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把它们隔开。当手指触摸屏幕时,两导电层在触摸点处接触。如图1所示。

    电阻式触摸屏有四线和五线两种。应用较多的是四线式,其触摸屏的X工作面和Y工作面分别加在两个导电层上,共有四根引出线:X+、X-、Y+、Y-,分别连到触摸屏的X电极对和Y电极对上。触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若给一个工作面的电极对施加电压,则在该工作面上就会形成均匀连续的平行电压分布。当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在X平行电压场中,触点处的电压值可以在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。

  3 S3C2410微处理器与触摸屏的接口设计

    S3C2410内置ADC和触摸屏控制器接口,S3C2410处理器与触摸屏的接口设计如图1所示:

  图1 S3C2410与触摸屏接口连线

    图中XP与CPU的A[7]口相连,YP与CPU的A[5]口相连。触摸屏通过触笔点击,引发S3C2410处理器中断,控制nYPON,YMON,nXPON,XMON输出相应电平。当S3C2410的nYPON、YMON、nXPON、XMON口线输出不同电平时,外部晶体管的导通状况如下表1所示:

表1

    第一种模式是普通的AD转换。

    第二种模式是X与Y分别转换模式,这种模式由两种模式组成:X位置转换模式和Y位置转换模式。当S3C2410内部ADCTSC寄存器的AUTO_PST = 0和XY_PST = 1时进入X位置转换模式,这种模式将X的位置写入ADCDAT0寄存器的XPDATA位。当ADCTSC寄存器的AUTO_PST = 0和XY_PST = 2时进入Y位置转换模式,这种模式将Y的位置写入ADCDAT1寄存器的YPDATA位。

    第三种模式是XY位置自动转换模式。当ADCTSC寄存器的AUTO_PST = 1和XY_PST = 0时进入这种模式。转换信号与第二种相同。

    第四种模式是等待中断模式。当ADCTSC寄存器的XY_PST = 3时进入这种模式。进入这种模式后,它等待触笔点击。

    第五种模式是闲置模式(Standby Mode),当进入这种模式后,AD转换停止,S3C2410内部ADCDAT0和ADCDAT1寄存器的XPDATA和YPDATA保持上次转换的值。

  4 ADC和触摸屏寄存器的设置及编程

  S3C2440微处理器要实现对触摸屏X、Y位置的读取,需要对AD转换控制寄存器(ADCCON)、AD转换触摸屏控制寄存器(ADCTSC)、AD转换开始延时寄存器(ADCDLY)进行设置,两个只读的数据寄存器ADCDAT0和ADCDAT1用于存储转换状态和转换结果。AD转换控制寄存器ADCCON的设置方法如表2所示。

表2

  触摸屏寄存器初始化代码举例如下:

  rADCDLY = (0x5000); // ADC Start

  rADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3);

  //设置成为等待中断模式:1101

  rADCCON = (1<<14)|(49<<6)|(7<<3)|(0<<2)|(1<<1)|(0);

  //设置ADC控制寄存器

  下面的代码为X转换模式部分关键程序:

  rGPGUP = 0xffff; //设置GPIO,禁止GPG上拉

  rADCTSC=(0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(1);

  //设置转换X的位置

  for(i = 0; i < Count; i++) //开始转换X,共Count次

  { rADCCON = (1<<14)|(49<<6)|(7<<3)|(0<<2)|(0<<1)|(1);

  while(rADCCON & 0x1); //测试转换开始位

  while(!(0x8000 & rADCCON)); // 测试ECFLG位,转换是否结束

  Delay(200);

  Dat0 += (rADCDAT0) & 0x3ff; } //转换结果累加,最后取平均

  5 结束语

  嵌入式智能设备系统设计工作中,用液晶触摸屏取代传统的键盘等人机对话部件,具有操作简便、界面友好等优点,基于S3C2410处理器的触摸屏接口设计有较强的实时性,具有较高的工程应用价值。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅