摘 要
:S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,是当前32位嵌入式市场中应用较多的微控制器,基于S3C2410嵌入式微处理器的触摸屏应用技术有较高的工程应用价值。介绍了S3C2410处理器的技术特点、触摸屏的工作原理,阐述了基于S3C2410系统的触摸屏接口设计方法和程序配置。
关键词: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 晶体管导通及位置输入状况
YMON
|
nYPON
|
XMON
|
nXPON
|
结果
|
0
|
1
|
1
|
0
|
Q1、Q2导通,
X的位置通过A[7]输入
|
1
|
0
|
0
|
1
|
Q3、Q4导通,
Y的位置通过A[5]输入
|
触摸屏接口设计模式共有5种。
第一种模式是普通的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 ADCCON的设置方法
ADCCON
|
位
|
功能描述
|
ECFLG
|
[15]
|
ADC转换完成标志位(只读)
为1:ADC转换结束 为0:ADC转换进行中
|
PRSCEN
|
[14]
|
ADC转换时钟使能
|
PRSCVL
|
[13:6]
|
ADC转换时钟预分频参数
|
SEL_MUX
|
[5:3]
|
选择需要进行转换的ADC信道
|
STDBM
|
[2]
|
置1:将ADC置为闲置状态(模式)
置0:将ADC置为正常操作状态
|
READ_START
|
[1]
|
置1:允许读操作启动ADC转换
置0:禁止读操作启动ADC转换
|
ENABLE_START
|
[0]
|
置1:启动ADC转换 置0:无操作
|
触摸屏寄存器初始化代码举例如下:
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处理器的触摸屏接口设计有较强的实时性,具有较高的工程应用价值。
参考文献:
[1] 郭改枝等.基于嵌入式系统触摸屏接口电路的实现[J]. 内蒙古师范大学学报,2009,(1):55-57
[2] Samsung. S3C2410X - 32-Bit RISC Microprocessor user’s manual.
|