当前位置:首页 > 测试测量 > 测试测量
[导读]1 引言   21世纪计算机迈入新的充满机遇的后PC时代,人们越来越多地接触到嵌入式这个概念。S3c2410是韩国三星公司生产的基于ARM公司16/32位微控制器ARM920T内核的RISC微处理器,主频最高可达到203MHZ[1]。S3c2410以

1 引言

  21世纪计算机迈入新的充满机遇的后PC时代,人们越来越多地接触到嵌入式这个概念。S3c2410是韩国三星公司生产的基于ARM公司16/32位微控制器ARM920T内核的RISC微处理器,主频最高可达到203MHZ[1]。S3c2410以其卓越的性能和良好的扩展性为手持设备和一般类型应用提供了低价格、低功耗、高性能的小型嵌入式微控制器的解决方案,从而可以应用于智能手机、数码相机、信息家电、PDA、移动终端、GPS等领域。Linux操作系统有成本低廉、支持多硬件平台、源代码开放、可订制内核、性能优异、有良好的网络支持等优势。Linux遵守GPL协议,可以在GNU精神下任意修改和裁减其内核,并且使用了众多的GNU开源软件,从而降低了项目的开发成本。嵌入式Linux继承了Linux的全部优点,成为在嵌入式开发中最常被应用的操作系统之一。触摸屏由于其操作简单、方便灵活、便于携带、占用空间小、友好的操作界面,逐渐取代键盘和普通显示器,成为新的人机交流的平台。本文里将讨论在S3c2410平台条件下,触摸屏在Linux操作系统中,驱动程序的研究与开发。

2硬件系统组成

2.1触摸屏原理

  本文采用四线电阻式触摸屏,这种触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出X和Y的位置,再根据模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理[2]。四线电阻模拟量技术的两层透明金属层工作时每层均增加5V恒定电压:一个竖直方向,一个水平方向。总共需四根电缆。四线电阻触摸屏具有高解析度,高速传输反应,表面硬度处理,减少擦伤、刮伤及防化学处理,具有光面及雾面处理,一次校正,稳定性高,永不漂移的特点[3]。

2.2S3c2410芯片介绍

  S3c2410是Samsung公司开发的16/32位微处理器。S3c2410采用了ARM920T的内核,主频最靠可达203MHZ,它为开发者提供了丰富的内部设备(见图1):分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(支持STN&TFT),支持Nand Flash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,USB主机,USB设备,SD主卡—MMC卡接口,2通道的SPI以及内部PLL时钟倍频器[4]。

图1 S3C2410系统框架

2.3S3c2410触摸屏控制器

  S3C2410具有8通道模拟输入的10位CMOS模数转换器(ADC)。它将输入的模拟信号转换为10位的二进制数字代码。在2.5MHz的A/D转换器时钟下,最大转化速率可达到500KSPS。A/D转换器支持片上采样和保持功能,并支持掉电模式。S3C2410的AIN[7]和AIN[5]用于连接触摸屏的模拟信号输入。触摸屏接口电路一般由触摸屏,4个外部晶体管和一个外部电压源组成。触摸屏接口的控制和选择信号(nYPON,YMON,nXPON和XMON) 连接切换X坐标和Y坐标转换的外部晶体管。模拟输入引脚(AIN[7],AIN[5])则连接到触摸屏引脚[5]。触摸屏控制接口包括一个外部晶体管控制逻辑和具有中断产生逻辑的ADC接口逻辑(见图2)。

2.4触摸屏接口工作模式

2.4.1普通转换模式

  普通转换模式是用作一般目的下的ADC转换。这个模式可以通过设置ADCCON和ADCTSC来进行对AD转换的初始化;而后读取ADCDAT0的XPDATA域的值来完成转换。

2.4.2独立的X/Y轴的坐标转换模式

  独立的X/Y轴坐标转换模式可以分为两个转换步骤:X轴坐标转换和Y轴坐标转换,这两个过程是各自独立完成的。

2.4.3连续X/Y轴坐标转换模式

  触摸屏控制器将自动地切换X轴坐标和Y轴坐标并读取两个坐标轴方向上的坐标。

2.4.4中断模式

  静态模式实际上是在等待触摸笔的点击。在触摸笔点击到触摸屏上时,控制器产生中断信号。中断产生后,就可以通过设置适当的转换模式来读取X和Y的位置。

2.4.5静态(Standby)模式

  当ADCCON寄存器的STDBM位被设为1时,Standby模式被激活。在该模式下,A/D转换操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA域保持着先前转换所得的值。

图2 S3c2410与四线电阻式触摸屏连接电路原理图

3Linux系统中触摸屏驱动程序的实现

  Linux操作系统将硬件设备作为一般文件,我们可以通过访问设备文件来访问我们所要使用的设备。在Linux操作系统中,设备文件分字符设备和块设备,触摸屏属于字符设备[6]。字符设备是指在I/O传输过程中以字符为单位进行传输的设备,当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。设备与驱动程序的通信方式依赖于硬件接口。当设备上的数据传输完成时,硬件通过总线发出中断信号导致系统执行一个中断处理程序。中断处理程序与设备驱动程序协同工作完成数据传输的底层控制[7]。

3.1屏驱动模块的初始化

  S3c2410触摸屏驱动模块的加载和卸载是通过加载函module_init(s3c2410_ts_init)和卸载函数module_exit(s3c2410_ts_exit)来实现。

主要的触摸屏模块初始化程序如下:
Ret=register_chrdev (0, DEVICE_NAME, &s3c2410_fops);
//调用register_chrdev(),向系统申请,系统为驱动程序动态的分配一个主设备号
set_GPIO_mode (GPIO106_nYPON_MD);
set_GPIO_mode (GPIO105_YMON_MD);
set_GPIO_mode (GPIO104_nXPON_MD);
set_GPIO_mode (GPIO103_XMON_MD);
//设置IO端口为XP,YM,YP和YM
ret=request_irq (IRQ_ADC_DONE, s3c2410_isr_adc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_adc);
//设置了IRQ_ADC_DONE中断,按下触摸屏时触发,中断处理函数为s3c2410_isr_adc
ret=request_irq (IRQ_TC, s3c2410_isr_tc, SA_INTERRUPT, DEVICE_NAME, s3c2410_isr_tc);
//设置了IRQ_TC中断,松开触摸屏时触发,中断处理函数为s3c2410_isr_tc
devfs_tsraw=devfs_register (devfs_ts_dir,”0raw”, DEVFS_FL_DEFAULT, tsMajor, TSRAW_MINOR, S_IFCHR|S_IRUSR|S_IWUSR, &s3c2410_fops, NULL);
//设备驱动程序的注册
Static struck file operations s3c2410_fops=
{
owner::THIS_MODULE;
open::s3c2410_ts_open;
read: s3c2410_ts_read;
release: s3c2410_ts_release;
poll: s3c2410_ts_poll;
}
//对驱动程序与应用程序接口file operations结构的s3c2410_fops定义
static int s3c2410_ts_open (struck inode *inode, struct file *file)
{
tsdev.head=tsdev.tail=0;
tsdev.penStatus=PEN_UP;
#ifdef HOOK_FOR_DRAG
init_timer (&ts_timer); ts_timer.function=ts_timer_handler;
#endif
TsEvent=tsEvent_raw;
init_waitqueue_head (& (tsdev.wq));
MOD_INC_USE_COUNT;
return 0 ;}
//打开设备时对定时器进行初始化

3.2中断处理函数

  主要是分别在static void s3c2410_isr_adc(int irq,void *dev_id,struct pt_regs *reg)和static void s3c2410_isr_tc(int irq,void *dev_id,struct pt_regs *reg)调用s3c2410_get_XY()函数实现的。

3.3触摸屏数据的读取,处理与传递

  触摸操作时具有,PEN_UP, PEN_DOWN和PEN_SAMPLE三种工作状态,当出现触摸屏动作时,PEN_DOWN动作开始,并打开定时器,进行数据采集,最后得到LCD的坐标[8],主要核心是得到坐标的函数static inline void s3c2410_get_XY(void)。

  最终应用程序通过调用read()函数获取触摸屏的数据,并把数据传递给应用程序。
count=tsRead (&ts_ret);
if (count) copy_to_user (buffer,(char *)&te_ret,count);
//读取触摸屏数据,并传向用户

4结论

  本文简单的介绍了四线电阻式触摸屏工作原理和S3c2410的内部组成,并且构建了S3c2410和四线电阻式触摸屏的接口电路,开发了在Linux操作系统中的触摸屏驱动程序,并使其成功应用于野外测量和检测的工作中去,为野外检测工作提供了,稳定,高性能,便于携带的嵌入式平台仪器。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

通过第二项3nm设计选用扩展技术领先地位 第三季度强劲的贸易和设计选用反映出我们结合了IP和定制硅的混合业务模式 自2022年9月1日起,OpenFive首次并入集团 尽管宏观环境困难,但管理层仍对业务...

关键字: BSP ALPHA PEN Silicon

Sumo Logic可靠性管理为企业领导者提供关键数据,以平衡创新速度和服务可靠性

关键字: LOGIC 应用程序 PEN COM

北京2022年9月6日 /美通社/ -- 9月2日,2022年龙芯工业生态大会在苏州召开,软通动力子公司鸿湖万联受邀出席本次峰会。本次大会以“自主‘芯’架构·连接新未来”为主题,由龙芯中科技术股份有限公司主...

关键字: 操作系统 芯片 HARMONY PEN

上海2022年9月5日 /美通社/ -- 以数字科技为代表的新一轮科技革命和产业变革正在重塑全球创新、经济、科技与行业生态。作为新兴经济体最为集中的地区,亚洲正在积极探索科技伦理变革并致力于为负责任的全球科技发...

关键字: APP PEN AI 人工智能

(全球TMT2022年9月2日讯)博通公司发布2022财年第三财季财报。报告显示,博通第三财季净营收为84.64亿美元,同比增长25%;净利润为30.74亿美元,同比增长64%;不按照美国通用会计准则调整后净利润为42...

关键字: 博通 PEN EV 富士

合并后的公司将提升Alphawave的领导地位、产品供应和客户群,同时在扩展后的整体潜在市场推动更大的业务规模和营收增长 伦敦和多伦多2022年9月1日 /美通社/ -- 世界技术基础设施高速连接领域的全球领先企业Al...

关键字: PEN ALPHA BSP GROUP

伦敦2022年9月1日 /美通社/ -- 由国际企业家和慈善家Elena Baturina创立的创意智库BE OPEN通过社交媒体发布下一项全球公开呼吁。通过多项公开呼吁,BE OPEN号召参与者以最形象的方式...

关键字: 可持续发展 PEN BSP BAT

已获得CIFIUS批准,预计交易将于2022年9月完成 伦敦和多伦多2022年8月26日 /美通社/ -- 全球技术基础设施高速连接领域的全球领导者Alphawave IP Group plc(简称为"Alp...

关键字: ALPHA PEN IP GROUP

要点:重新设计USOpen.org网站及美网应用程序,包括以混合云与可解释的AI赋能的新球迷体验应用 北京2022年8月24日 /美通社/ -- IBM(纽约证券交易所股票代码: IBM)和美国网球协会(USTA)日前...

关键字: IBM PEN 应用程序 BSP

(全球TMT2022年8月24日讯)IBM和美国网球协会(USTA)日前宣布,将双方长达30年的长期合作关系再延长五年。从1995年推出USOpen.org到2009年推出移动应用,以及在去年首次推出IBM Power...

关键字: IBM ST PEN FACTORS

测试测量

28658 篇文章

关注

发布文章

编辑精选

技术子站

关闭