视频会议频道精装上线,新视角,新视界!
快速搜索:

触摸屏接口设计

2011年08月12日 08:18   来源:互联网   字体【

3 触摸屏原理及硬件接口

触摸屏按其工作原理的不同可分为表面声波屏、电容屏、电阻屏和红外屏几种[6]。其中最常见的是电阻式触摸屏,其屏体部分是一块与显示器表面非常配合的多层复合薄膜。触摸屏工作时,上下导体层相当于电阻网络。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可测得接触点处的电压,从而知道接触点处的坐标。

ADS7843是TI公司生产的四线电阻触摸屏转换接口芯片。它是一款具有同步串行接口的12位取样模数转换器。在125kHz吞吐速率和2.7V电压下的功耗为750μW,而在关闭模式下的功耗仅为0.5μW。由于具有低功耗和高速等特性,所以被广泛应用。图4是S3C44B0同ADS7843的连接电路。X+、Y+、X- 、Y-是转换器模拟输入端,DCLK是外部时钟输入;CS 是片选端;DIN 是串行输入,其控制数据通过该引脚输入;DOUT是串行数据输出,用于输出转换后的触摸位置数据.最大数为二进制的4095; IN3、IN4是辅助输入;PENIRQ是PEN中断引脚。其中,S3C44B0选取PG口与ADS7843接口,共使用PG2 - PG7的6条口线。

图4 S3C44B0与ADS7843的接口电路

图4 S3C44B0与ADS7843的接口电路

4、彩色液晶显示及触摸屏软件设计

4.1 LCD显示

4.1.1 初始化LCD端口。

由于LCD模块与S3C44B0相连,LCD是8位数据线,所以必须初始化S3C44B0X的C口与D口。其程序如下: rPDATC = rPDATC &~ (1 << 8) | (1 << 8);/ / LCD使能

rPCONC = rPCONC &~ ( 0xff << 8) | ( 0xff <<8);/ / 配置VD[7∶4 ]

rPCOND = 0xaaaa;/ /配置VD[3∶0 ],VCLK,VLINE,VM,VFRAME

rPDATC=0xffff ;

4.1.2 申请大小为640×240字节大小的显示缓冲区。

显示缓冲区就是在系统存储器中划出一块区域,用来存放要显示的图像数据。将要显示的图像数据直接放入显示缓冲区就能直接在LCD显示屏上显示出所显示的图像。其程序如下:

frameBuffer256= (unsigned char*)malloc(ARRAY_SIZE_COLOR);其中ARRAY_SIZE_COLOR=640×240

4.1.3 初始化LCD控制寄存器

在点亮LCD之前,还应该对LCD控制器相关的寄存器进行初始化[6],使LCD控制器的配置与外接LCD显示模块特性相匹配,包括设置LCD分辨率、扫描频率、显示模式、产生控制信号和控制时序等。

4.1.4 LCD显示

LCD初始化之后,由于在S3C44B0X中,CUP不支持文件管理,必须把要显示的图片包含到程序中。例如,如果要在LCD显示640×240大小的图片,在实际操作中,首先应使用转换工具(如:Image2Lcd)把图片转换成c格式的数组文件,即把每一个像素点的颜色转换成用一个字节表示,然后把整个文件保存成240×640的数组形式。然后把文件包含在项目工程中,用循环语句即可实现显示。如要显示汉字、字符和数字等, 其方法和原理与显示图像基本一样。

4.2 触摸屏软件设计

4.2.1触摸屏模式设置

ADS7843的参考电压模式设置分为两种:单端模式和差分模式。在单端模式中,参考输入电压选取的是V cc 和GND ,由于内部的开关电阻压降影响转换结果带来误差,所以转换器内部的低阻开关对转换精度有一定影响;差分模式参考输入由未选中的输入通道Y + 、Y - 、 X + 、X - 提供参考电源和地,不管内部开关电阻如何变化,其转换结果总与触摸屏的电阻成比例,克服了内部开关电阻的影响,但当转换频率很高时则增加了功耗,需要考虑低功耗设计。

4.2.2 PENIRQ作用

由于触摸屏A/D采样时功耗增加,所以软件设计中,只有在用户按下触摸屏时,才需要进行A/D转换。为了降低功耗,充分利用该芯片的能力,配合软件设计,硬件电路设计成按下触摸屏时,通过PENIRQ 向MCU发出中断。同时软件配置ADS7843采用笔中断功能降低功耗,当按下触摸屏时,则PENIRQ引脚电位变低,MCU收到中断请求后可以发出启动转换命令,并查询BUSY引脚直到转换完成取出坐标。启动转换分两次进行,分别获得x和y方向的坐标。

4.2.3 触摸屏程序设计流程

充分权衡单端模式和差分模式的优缺点,本系统选择参考电压的输入模式为差分模式,控制程序使用的状态字[7]设置为:X通道0x90,Y通道0xD0。触摸屏程序流程如图5所示。程序中S3C44B0X的GPG7在下降沿触发的情况下检测PENIRQ是否为低电平,若为低电平则认为有按下触摸屏;否则认为没有按下触摸屏。利用I/O口模拟DIN,DOUT和DCLK上的3线串行传输时将读取的x或y轴坐标数值的控制字送入ADS7843,后再串行读出坐标值。坐标值送给S3C44B0X,CPU经过处理后在LCD上显示相应的信息并执行相应的参数指令,整个系统都是可以按照LCD上的提示,通过触摸屏来控制,从而完成人机交互的功能。

图5 触摸屏程序流程图

图5 触摸屏程序流程图

5 结束语

在嵌入式系统中,LCD作为人机交互的主要设备之一,具有重要的作用。本文完成了S3C44B0X控制LCD及触摸屏的软硬件设计,实践证明该系统稳定可靠, 能够达到预期效果。本文为人机界面中的LCD的硬件设计与控制驱动提供了一种实用解决方案,本方案可应用于其它嵌入式系统中。

参考文献

[1] 李力,黎敏等.一种基于MIS 的触摸屏汉字输入方法的设计[J].微机算机与信息,2006.23:98-91.

[2] 赖诚,触摸屏原理及在单片机系统的应用[J]. 商场现代化, 2006年6月(下旬刊)总第471期

[3] Samsung Electronics User’s Manual S3C44B0X 32BitRISC Microprocessor [Z]. 2003.

[4] Sharp Microelectronic User’s Manual LM7M632 Passive Matrix LCD Module [Z]. 1998.

[5] 李岩,荣盘祥. 基于S3C44B0X嵌入式µCLinux系统原理及应用[M].北京,清华大学出版社,2005.1

[6] 陈赜.ARM嵌入式实践教程[M].北京,北京航空航天大学出版社,2005.2. 149-150

[7] ADS7843 Datasheet[Z]. TI, JULY.2001

上一页12下一页
本文导航
[快捷]ST-7600C
[快捷]ST-7600C
价格:面议
[丰信达]FII8000
[丰信达]FII8000
价格:面议
[亿普]92A
[亿普]92A
价格:22800元
返回首页      发给朋友
aopen
NEC 2012巡展
产品关注排行