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、彩色液晶显示及触摸屏软件设计
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 结束语
在嵌入式系统中,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
价格面议
[查看详情]