综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章嵌入式系统正文
 
基于S3C24104X的TSP开发与应用
发布日期:2006-08-09 作者:杨建文 张 玲 郑恩让 杨润贤 来源:微计算机信息

摘要:随着信息社会的发展,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


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
谢谢,现在还没有相关信息...
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号