摘要:随着信息社会的发展,TSP(Touch Screen Panel)的应用越来越普遍。文章在对S3C2410X嵌入式微处理和TSP技术进行简要介绍的基础上,分析了TSP在其中的硬件架构以及工作机理、控制寄存器的设置和实现其功能的驱动软件编程。并结合其在智能型快速牛奶检测仪中的应用,给出了TSP模块功能开发流程和部分C语言源程序。采用了TSP作为输入输出设备,使检测仪结构小巧美观、界面友好、操作简便,增强了仪器的人性化设计。 关键词:S3C2410X;触摸屏;液晶显示器;源程序
1 引言
TSP(Touch Screen Panel, 触摸屏)作为一种最新的电脑输入输出设备,具有简单、方便、自然而且广泛适用于各种信息技术产品中,尤其是众多的嵌入式产品中,如我们熟知的高端手机、PDA、信息查询系统等等。TSP具有坚固耐用、反应速度快、节省空间、易于交流等独特的性能属性,用户只须用手指轻轻地点击显示屏上的图符或是文字,就能实现对设备的操作,从而使人机交互更为直截了当,这种技术极大地方便了广大的普通用户,充分体现了产品的人性化设计。
S3C2410X是三星公司推出的一款嵌入式MPU,有丰富的外围功能模块,专用于嵌入式系统的SoC解决方案。使用它的LCD、ADC和TS接口三个功能模块,构建快速牛奶质量检测仪TSP人机交互平台。此仪器采用的TSP型号为LRH9J515XA STN/BW,使样机整体外观视觉效果大方、小巧,操作性能良好,体现了使仪器简便实用、美观大方的设计理念。
2 硬件架构
2.1 S3C2410X处理器简介
S3C2410X 是三星公司推出的16/32位精简指令集微处理器,它是为应用于小型掌上设备和高性价比,低功耗,高性能的嵌入式系统应用而提供的微控制解决方案。S3C2410X使用了ARM920T内核,采用了0.18um技术标准,它功耗低,简单,一流的完备静态设计非常适用于需要控制成本和功耗的场合。ARM920T通过每行8字长度的独立16K指令缓存和数据缓存,实现了MMU功能、AMBA总线及Harvard缓存结构。
通过提供一套完备的系统通用外围设备,S3C2410X最小化了整个系统组成的成本,除去了需要配置的附加部件。芯片上提供的集成功能包括:独立的16K指令/数据缓存、SDRAM控制器、LCD控制器、4通道DMA、3通道UART、I2C总线、I2S总线、SD主机接口、PWM定时器、看门狗、片上PLL时钟发生器、8通道10位AD控制器以及触摸屏接口。S3C2410SX这些特性应用于嵌入式系统仪器的研制,将大大缩小仪器硬件空间,降低开发成本。
2.2 TSP技术
TSP 技术取代了传统的鼠标或是按键作为输入输出设备,工作时只需用手指或是其他物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或是菜单位置来定位选择信息输入。TSP由检测部件和控制器组成;TSP部件安装在显示器屏幕前面,用于检测用户触摸位置,检测到后送TSP控制器;而控制器从触摸点检测装置上接收触摸信息,并将其转换成触点坐标,送给CPU,同时接收CPU发出的命令加以执行。从技术原理上,可将TSP按敏感原理分为5类:矢量压力传感式,电阻式,电容式,红外线式和表面声波式。其基本技术特性有三点:透明性能,绝对坐标系统,检测与定位。经过多年来的发展,触摸屏的功能已从原先简单的查询导览,发展成为集业务查询与上网于一体的触摸查询一体机,应用领域也从最初的邮电、商场到遍布各个行业众多领域。本仪器采用电阻式TSP,点数是320×240,由TSP、TSP控制电路和数据采集处理三个部分组成。
2.3 ADC和TSP模块硬件架构
S3C2410X上的10位模数转换器是拥有8通道的可循环类型转换器。当PCLK(系统时钟频率)为50MHZ,预装比例因子PRESCALER的值为49时,所有10位转换时间的计算公式如下,
A/D转换器频率=50MHZ/(49+1)=1MHZ (2.1)
转换时间为=1/(1MHZ/5周期)=1/200KHZ=5us(2.2)
在2.5MHZ的A/D转换时钟频率下,其可以用500KSPS的最大转换数率将模拟信号转换成10位二进制数字代码。A/D转换器片上运行,具有采样保持功能,同时支持省电模式。ADC和TS接口的功能模块图如图2所示。TS接口由触摸屏板,四个外部晶体管,一个外部电压源,AIN和AIN]组成,如图1。

图1 ADC和TS接口功能模块图
TS接口可以控制并选择四个控制信号(nYMON, YMON, nXPON和XMON)和与TSP的焊盘和外部控制X位置转化和Y位置转化的晶体管相连接的模拟焊垫端口。TS接口包括一个外部晶体管控制逻辑电路和一个中断逻辑产生的ADC接口逻辑电路。
2.4 TS接口模式
TS接口模式有5种,分别如下:
* 普通转换模式
普通转换模式(当AUTO_PST=0,XY_PST=0)适用于一般的ADC转换。此种模式通过配置ADCCON(ADC Control register, ADC控制寄存器)和ADCTSC(ADC Touch Screen Control register, ADC触摸屏控制寄存器)进行初始化,完成读入ADCDAT0(ADC DATA Register 0)的XPDATA(正常 ADC)值。

图2 TSP与S3C2410X的接口
* 独立X/Y位置转换模式
独立X/Y位置转换模式由两个转换模式组成,即X位置模式和Y位置模式。X位置模式(当AUTO_PST=1,XY_PST=0)写X位置转换数据到ADCDAT0寄存器的XPDAT。转换结束,TS接口产生中断源信号(INT_ADC)到中断控制器。Y位置模式设置类似。
* 自动(连续)X/Y位置转换模式
自动(连续)X/Y位置转换模式(当AUTO_PST=1,XY_PST=0)运行方式是触摸屏控制自动转换X位置和Y位置。触摸屏控制器在ADCDAT0的XPDATA位写入X测定数据,在ADCDAT1的YPADATA位写入Y测定数据。自动(连续)位置转换后,触摸屏控制器产生中断源(INT_ADC)到中断控制器。
* 等待中断模式
当触摸屏控制器等待中断模式时,它等待触摸屏触点信号的到来。当触点信号到来时,控制器产生中断信号(INT_TC)。然后,X位置和Y位置能被适当的转换模式(独立X/Y位置转换模式或是自动X/Y位置转换模式)读取到。
* 备用模式
当ADCCON寄存器的STDBM位置1时,备用模式被激活。在这种模式下,A/D转换动作被禁止,ADCDAT0的XPDATA位和ADXDATA1的YPDATA包含以前的被转换的数据。
2.4 TSP接口工作机理
实现TSP功能,包括串口数据传送、液晶显示控制、触摸屏定位和中断处理四个部分,这里主要讲述触摸屏定位技术。触摸屏定位采用多次采样取平均值法。首先从触摸屏的4个顶角得到两个最大值和两个最小值,分别记作Xmax、Ymax和Xmin、Ymin。 如图 2,当系统处于休眠状态时,T2、T3和T4处于截止状态,T1导通。当触摸屏触点按下时,首先控制和导通MOS管的T2和T4,XP与XM回路上加上外部电压源,同时控制和将MOS管组T1和T3关闭,断开YP和YM;再启动处理器的A/D转换通道, 电路电阻和触摸屏按下产生的电阻输出的分量电压,由A/D转换器将电压值数字化,计算出X轴的坐标。接着重设和再导通T3和T1,YP和YM回路上加上外部电压源,同时设置和将MOS管组T2和T4关闭,断开XP和XM;启动处理器的A/D转换通道,电路电阻与触摸屏按下的电阻输出分量电压,并有A/D转换器将电压值数字化,计算Y轴的坐标。系统读完了坐标值后,关闭T2、T3和T4,打开T1,回到初始状态,等待下一次触摸。
确定了X,Y方向后,坐标值的计算公式如下;
(2-3)
(2-4)
式中:
2.5 LCD控制器
S3C2410X上的LCD控制器由传送LCD映象数据的逻辑电路构成。LCD映象数据是指从系统存储器中的视频缓冲器到外部LCD驱动的数据。 对于单色LCD, LCD控制器通过应用基于时间的抖动算法和FRC(Frame Rate Control, 帧速率控制)方法支持单色的、2位/象素(4级灰度)或是4位/象素(16级灰度)的显示模式。LCD控制器也支持8位/象素(256级彩色)彩色LCD屏接口和12位/象素(4096级彩色)的STN LCD板接口。LCD控制器通过编程支持显示屏上的不同需求,例如与之相关的水平/垂直的象素数、数据接口的宽度、接口时序以及刷新频率。LCD LRH9J515XA STN/BW与S3C2410X的接口如图。

图3 LCD与S3C2410X接口
3 软件设计
本设计基于S3C2410X嵌入式开发平台,利用PC机的超级终端功能,对TSP模块、ADC模块以及LCD模块进行初始化和在线调试,应用于牛奶快速检测上,作为人机对话的输入输出设备。
3.1硬件初始化
TSP模块是S3C2410X的一个内部模块,需要对其编程,完成对基于S3C2410X的嵌入式系统的初始化。TSP模块的具体的工作流程图如图4。
S3C2410X的初始化工作包括程序入口点定义、中断矢量的确定、堆栈的初始化、电源管理(包括掉电处理和重启处理)、S3C2410X各个模块的寄存器地址定义及其初始化,以上初始化工作与硬件紧密相关,采用32位的ARM/Thumb指令集进行编程
在牛奶快速检测仪,运用TSP技术,利用S3C2410X的JATG口,使用PC机的超级终端作为人机接口,完成对TSP模块、LCD模块和ADC模块的调试和控制命令输入。在实现TSP模块功能之前首先对串口进行初始化,这包括设置PCLK(CPU系统时钟)、波特率设置、控制寄存器、I/O端口设置等几部分。通过如下几个辅助功能函数,可实现通过超级终端的人机交互信息:
* void Uart_TxEmpty (int ch) //清空发送缓冲;
* char Uart_Getch (void) //接收一个字符;
* void Uart_GetString (char *Str)//接收字符串;
* int Uart_GetInt(void) //接收数字;
* void Uart_SendData(int data) //发送数据字节;
* void Uart_SendStr( char *Str) //发送字符串;
* void Uart_Printf(char *inf) //打印信息。

图 4 TSP工作流程图
3.2应用程序设计
完成基本的S3C2410X的硬件初始化后,可以进行TSP模块的应用开发。实现TSP功能的设计采用自顶向下的程序设计理念,将各功能函数模块化。在MAIN函数中分别调用各功能模块实现TSP功能,完成对检测仪输入输出设备的配置。下面简要介绍整个软件开发中使用到的一些功能函数,并给出TSP工作的MAIN函数部分源代码以供参考。
* 函数Ts_Auto(void)实现TSP的AUTO模式的设置。通过配置ADC寄存器ACDCON和ADCTSC,决定ADC转换比例因子和XP、XM、YP与YM的初始状态。
* 函数Ts_Sep(void)实现TSP的单独X/Y坐标转换模式,配置方法如Ts_Auto(void)的配置。
* 自动坐标转换模式,TSP定位触摸屏上触点位置的计算方法由函数Adc_or_TsAuto(void)实现。设置触摸屏触点中断处理模式,当按下触摸屏时,系统自动检测X位置和Y位置,输出检测的坐标数据。
* 独立坐标转换模式下,函数Adc_or_TsSep(void)设置触摸屏触点中断模式,X位置和Y位置的定位值是分别取5个数值取平均值。
开机界面的部分源代码如下,仅供参考。
void Main(int argc,char **argv)
{
int i,j;
char status=0;
char *p;
downPt=(unsigned char *)(DOWNLOAD_ADDRESS+MEM_OFFSET);//赋存储器首地址
MMU_DisableICache( );
MMU_DisableDCache( );
ChangeClockDivider(1,1); //时钟分频为1:2:4
ChangeMPllValue(M_MDIV,M_PDIV,M_SDIV);
Port_Init(); //端口初始化
Uart_Select(0);
Uart_Init(PCLK, 115200);设置系统时钟
Ts_Sep( ); //触摸屏各个触摸点有效范围设置
/****************************************
* on(led1) -> on(led2) -> on(led3) -> on(led4)
**************************************/
HardWare( );Uart_Printf
(" *==================*\n"); //输出开机界面
Uart_Printf
(" *======= 快速牛奶检测仪器 =======*\n");
Uart_Printf
(" *==================================*\n");
Uart_Printf(" *=== 请选择您需要的工作模式====*\n");
Uart_Printf
(" *==================================*\n");
Uart_Printf
(" *===========检测=======清洗=========*\n");
Uart_Printf
(" *==================================*\n");
Uart_Printf
(" *========打印数据=====再重新检测===*\n");
Uart_Printf
(" *=== ===*\n");
Uart_Printf("%4x,%2x,%2x,%s,%2x,%2x:%2x:2x\r,
\year,month,day,dae[weekday],hour, min,sec); //设置时间 while(1)
{
if(status<5) status +=1;
else status =1;
Led_Display(status);
for(i=0;i<55500;i++)
{;}
for(i=0;i<55500;i++)
{;}
}
}
4 结束语
基于嵌入式系统S3C2410X的TSP技术和LCD技术的结合,将智能型牛奶检测仪的人机传统的键盘式对话方式图形化,充分体现了仪器的人性化设计,这是整个信息技术发展的趋势。S3C2410X的TSP模块的功能十分强大,工作模式较多,由于时间的仓促性,没有充分开发出它的特性,使触摸屏触电坐标转换的精度更高,速度更快,更便于人机交流。相信随着技术的发展,基于嵌入式的TSP技术会使我们的生活更加简便美好。
参考文献:
[1] Samsung Electronic Co.Ltd. S3C2410Data Sheet. www.samsung.com
[2] Steve Furber. ARM SoC 体系结构. 田泽 于敦山 盛世敏 译.北京:北京航空航天大学 出版社,2002
[3] 田泽. 嵌入式系统开发与应用. 北京:北京航空航天大学出版社,2005
[4] 衣美丽,刘庆文,杨扬,于义庆.基于uClinux+S3C4510B的嵌入式系统的研究[J]微计算机信息2005,1:125-126
|