嵌入式系统原理及应用(共22页).doc

上传人:飞****2 文档编号:13576803 上传时间:2022-04-30 格式:DOC 页数:22 大小:500KB
返回 下载 相关 举报
嵌入式系统原理及应用(共22页).doc_第1页
第1页 / 共22页
嵌入式系统原理及应用(共22页).doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《嵌入式系统原理及应用(共22页).doc》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上2017届结课论文嵌入式系统原理及应用结课论文 学生姓名 艾力江 学 号 所属学院 信息工程学院 专 业 通信工程专业 班 级 通信17-1 塔里木大学教务处制专心-专注-专业目录摘要 .11 前言 .11.1触摸屏简介 .11.2系统组成原理 .21.3触摸屏工作原理 .21.4 LCD触摸屏的应用及发展前景 .41.5 ARM嵌入式处理器 .42 系统整体方案设计 .72.1 系统硬件及整体功能 .72.2 系统软件设计方案的选择 .72.3 硬件实现处理器的选择 .82.4 外围芯片的选择 .92.5 硬件原理图 .113. LCD触摸屏软件设计 .163.1

2、界面的定制与显示.163.2 触摸屏信息的处理.163.3 主函数初始化 .164 分析驱动 .164.1 触摸屏设备驱动中数据结构 .164.2 触摸屏驱动模块加载和卸载函数 .174.3 触摸屏设备驱动的读函数 .184.4 触摸屏设备驱动的轮询与异步通知 .185 结论 .19参考文献 .20基于嵌入式LCD的触摸屏摘要: 如今LCD 触摸屏应用已成为生活中很常见的现象,通过利用这种装置,改变了传统的较为复杂呆板的机械人机交互方式。使得人际之间信息的交互变得简单,快捷,而且更具形象化。本文针对基于ARM系统LCD 触摸屏设计的介绍,分析LCD触摸屏的工作原理及硬件结构,然后进一步开发除了

3、触摸屏的驱动程序。通过软硬件的结合,可以实现利用触摸屏完成人际之间信息的交互,同时也可以将该设计运用到同类人机交互系统中缩短产品的开发周期,降低产品的开发成本。关键词:LCD触摸屏;ARM;人机交换系统1.前言随着嵌进式系统技术的飞速发展,产业设备产品也越来越现代化,普遍要求可视化,LCD触摸屏低耗能散热小,本钱低,纤薄轻巧,外形尺寸小,安装轻易。使用LCD触摸屏作为产业设备的输进输出设备既能达到可视化的要求,方便现场操纵,又能降低产品的本钱。而在产品的整体设计过程中,人机交互界面的设计往往占据着很大一部分工作,这样,不但极大地增加了产品的开发本钱并且延长了产品的上市周期。本文设计的基于S3C

4、44BOX的人机交互界面是一种可定制、简单易用、性能优良的通用型人机交互界面,能很好地解决上述问题。1.1 触摸屏简介触摸屏起源于20世纪70年代,早期多被装于工控计算机、POS机终端等工业或商用设备之中。2007年Phone手机的推出,成为触控行业发展的一个里程碑。苹果公司把一部至少需要20个按键的移动电话,设计得仅需三四个键就能搞定,剩余操作则全部交由触控屏幕完成。除赋予了使用者更加直接、便捷的操作体验之外,还使手机的外形变得更加时尚轻薄,增加了人机直接互动的亲切感,引发消费者的热烈追捧,同时也开启了触摸屏向主流操控界面迈进的征程。触摸屏(touch screen)又称为“触控屏”“触控面

5、板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。触摸屏作为一种最新的电脑输入设备,它是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。1.2系统组成原理 触摸屏输入系统由触摸屏、触摸屏控制器和微控制器三部分组成。图1示出了一个实际的触摸屏输入系统,在该系统中触摸屏采用信利公司的四线电阻式触摸屏,触摸屏控制器采用BB公司的ADS7846,微控制器为Motorola MCORE系列的M

6、MC2107。 图1 触摸屏输入系统的组成图2触摸屏的触摸示意图 1.3触摸屏工作原理触摸屏附着在显示器的表面,与显示器相配合使用,如果能测量出触摸点在屏幕上的坐标位置,则可根据显示屏上对应坐标点的显示内容或图符获知触摸者的意图。触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式、表面声波式,其中电阻式触摸屏在嵌入式系统中用的较多。电阻触摸屏是一块4层的透明的复合薄膜屏,如图2所示,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从而光滑防刮的塑料层,中间是两层金属导电层,分别在基层之上和塑料层内表面,在两导电层之间有许多细小的透明隔离点把它们隔开。当手指触

7、摸屏幕时,两导电层在触摸点处接触。 触摸屏的两个金属导电层是触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。如图1所示,当在X方向的电极对上施加一确定的电压,而Y方向电极对上不加电压时,在X平行电压场中,触点处的电压值可以在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,便可得知触点的X坐标值。同理,当在Y电极对上加电压,而X电极对上不加电压时,通过测量X+电极的电压,便可得知触点的Y坐标。电阻式触摸屏有四线和五线两种。四线式触摸屏的X工作面和Y工作面分别加在两个导电层上

8、,共有四根引出线,分别连到触摸屏的X电极对和Y电极对上。五线式触摸屏把X工作面和Y工作面都加在玻璃基层的导电涂层上,但工作时,仍是分时加电压的,即让两个方向的电压场分时工作在同一工作面上,而外导电层则仅仅用来充当导体和电压测量电极。因此,五线式触摸屏的引出线需为5根。触摸屏接口工作模式: (1)普通转换模式 普通转换模式(AUTO_PST = 0,XY_PST = 0)是用作一般目的下的ADC转换。这个模式可以通过设置ADCCON和ADCTSC来进行对AD转换的初始化;而后读取ADCDAT0(ADC数据寄存器0)的XPDATA域(普通ADC转换)的值来完成转换。(2)分离的X/Y轴坐标转换模式

9、:X轴坐标转换和Y轴坐标转换。 X轴坐标转换(AUTO_PST=0且XY_PST=1)将X轴坐标转换数值写入到ADCDAT0寄存器的XPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。 Y轴坐标转换(AUTO_PST=0且XY_PST=2)将X轴坐标转换数值写入到ADCDAT1寄存器的YPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。 (3)自动(连续)X/Y轴坐标转换模式。 自动(连续)X/Y轴坐标转换模式(AUTO_PST=1且XY_PST= 0)以下面的步骤工作: 触摸屏控制器将自动地切换X轴坐标和Y轴坐标并读取两个坐标轴方向上的坐标

10、。触摸屏控制器自动将测量得到的X轴数据写入到ADCDAT0寄存器的XPDATA域,然后将测量到的Y轴数据到ADCDAT1的YPDATA域。自动(连续)转换之后,触摸屏控制器产生中断源(INT_ADC)到中断控制器。 (4)等待中断模式 当触摸屏控制器处于等待中断模式下时,它实际上是在等待触摸笔的点击。在触摸笔点击到触摸屏上时,控制器产生中断信号(INC_TC)。中断产生后,就可以通过设置适当的转换模式(分离的X/Y轴坐标转换模式或自动X/Y轴坐标转换模式)来读取X和Y的位置。 (5)静态(Standby)模式 当ADCCON寄存器的STDBM位被设为1时,Standby模式被激活。在该模式下,

11、A/D转换操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持着先前转换所得的值。 1.4 LCD触摸屏的应用及发展前景目前,触摸屏应用范围正在变得越来越广泛,从工业用途的工厂设备的控制/操作系统、公共信息查询的电子查询设施、商业用途的提款机,到消费性电子的移动电话、PDA、数码相机等都可看到触控屏幕的身影。当然,这其中应用最为广泛的仍是手机。2008年采用触控式屏幕的手机出货量将超过1亿部,如今,安装触控界面的手机出货量已超过5亿部。而且有迹象表明,触摸屏在消费电子产品中的应用范围正从手机屏幕等小尺寸领域向具有更大屏脑拓展。目前,戴尔、惠普、

12、富士通、华硕等一线笔记本电脑品牌厂商都计划推出具备触摸屏的笔记本电脑或UMPC。由此可以看出,触摸屏市场未来的发展前景也十分诱人。根据市场调研机构的预测,到2017年触摸屏产值将达到239亿美元。1.5 ARM嵌入式处理器RISC嵌入式处理器是目前高中端嵌入式设计和应用的主流,现今比较流行的RISC处理器有PowerPC、MIPS和ARM。其中ARM嵌入式处理器以其小体积、低功耗、低成本和高性能等特点占据了业界领先地位,已经成为一种事实上的标准。目前市场上常用的基于ARM体系结构的通用嵌入式处理器系列有ARM7 和ARM9 系列。ARM7系列处理器包括ARM7TDMI、ARM7TDMI-S、A

13、RM720T、ARM7EJ 等几种类核是低功耗的32位RISC架构处理器,三级流水线,主频达到66MHz。ARM9系列处理器包括ARM920TDMI、ARM922T、ARM940T等几种类型的核,采用五级流水线,主频达到533MHz。此外,ARM系列处理器还包括ARM9E、ARM10E和ARM11等几个系列。SAMSUNG公司推出的一系列采用ARM处理器和微控制器的产品,性能良好,数据手册丰富,配套应用方案完善,因此迅速在通信产品民用市场上获得了广泛的应用,在ARM 处理器产品中极具代表性。如ADS7846.(1)ADS7846触摸屏控制器的工作原理 各种类型的触摸屏均有其相应的控制器,如:A

14、DS7846是四线式触摸屏的控制器,而ADS7845是五线式触摸屏的控制器。控制器的主要功能是分时向X、Y电极对施加电压,并把测量电极上的电压信号转换为相应触摸点的X、Y坐标。(2)操作原理 ADS7846内部有一个由多个模拟开关组成的供电-测量电路网络和12位的A/D转换器(参见图3)。ADS7846根据微控制器发来的不同测量命令导通不同的模拟开关,以便向工作面电极对提供电压,并把相应测量电极上的触点坐标位置所对应的电压模拟量引入A/D转换器。在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路如图4所示,图中P为测量点。 图3 ADS7846的功能框图 图4 测量关系 (3)数字接口

15、 ADS7846与MMC2107之间通过标准的SPI口相连,由MMC2107启动3次SPI传送来完成转换,如图5所示。第一次SPI传送由MMC2107向ADS846发控制字,包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,接下来的两次SPI传送则是MMC2107从ADS7846取A/D转换结果数据(最后四位自动补零),完成触摸屏控制器和微控制器之间的一次通信。 图5 转换时序 (4)笔中断(PENIRQ)输出 ADS7846通过笔中断请求向MMC2107表示有触摸发生。如图6所示,当没有触摸时,MOSFET和打开、关闭,则笔中断输出引脚通过外加的上拉电阻输出为高。当有触摸时

16、,和打开、关闭,则笔中断输出引脚通过内部连接到地而输出为低,从而向MMC2107提中断请求。 图6笔中断请求 2.系统整体方案设计本系统采用LCD触摸屏模块OCMJ15x20D,配以相应的外围硬件,通过ARM芯片S3C44B0X对触摸屏从外界采集的信息的处理,然后据此控制受控系统,并给与触摸屏信息确认及输出。2.1 系统硬件及整体功能系统硬件组成及整体功能系统主要包括三个部分,分别为PC机、S3C4480X微处理器和LCD触摸屏模块。该系统有三部分组成:PC机,用于定制人机交互界面信息;S3C4480X处理器,用于控制触摸模块接收到的外界信息;LCD触摸屏模块,是直接参与人机交互的层面,通过它

17、可以显示出虚拟按键,人们可以对其操作,然后配以处理器及外围硬件的协同工作,达到完成对一起的控制目的。通过该系统可以给产业设备提供一个可视化的人机界面。来自PC机的定制好的界面信息存储在ARM的FLASH存储器内。在应用当中,当微处理器接收到触摸屏按键信息时,对产业设备进行控制。同时微处理器也对LCD进行界面的刷新,这样以完成人机交互。 2.2 系统软件设计方案的选择为增强系统的稳定性和可靠性,在软件设计中将进行操作系统(Operating System,OS)的移植,进而对应用程序进行设计。嵌入式OS负责嵌入式系统全部软、硬件资源的分配、调度,控制和协调各部件的工作,与普通OS相比,嵌入式OS

18、在系统实时高效性、硬件依赖性、软件固化及应用的专用性方面具有较为突出的特点。 嵌入式OS种类繁多,大体上分为商用型和免费型两大块,其中商用型功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵,典型的有VxWorks、WinCE等。免费型的源代码公开,性能也较良好,主要有嵌入式Linux和C/OS。随着开源软件的迅速发展,Linux和C/OS已经具有非常广泛的应用。基于良好的性价比,本文将采用uClinux作为触摸屏终端的操作系统。uClinux是一种优秀的嵌入式Linux版本,它秉承了标准Linux的优良特性,是经过各方面的小型化改造,形成的一个高度优化的、代码紧凑的嵌入式Linux。虽然

19、它的体积很小,但性能稳定,有良好的移植性。在操作系统移植完成后,本文将结合触摸屏终端所需实现的功能,给出其整体的软件设计方案。2.3 硬件实现处理器的选择本系统选择三星公司基于ARM7TDMI的16/32位微处理器S3C44B0X。该芯片为手持设备以及一般嵌入式应用提供了一个成本低廉、功能强大的微控制器解决方案。有丰富的内置部件,包括:8KB cache,内部SRAM,LCD控制器,带自动握手的2通道UART,4通道DMA,系统管理器(片选辑,FP/EDO/SDRAM 控制器),代用PWM功能的5通道定制器,I/O端口,RTC 8通道10位ADC,IIC-BUS接口,IIS-BUS接口,PLL

20、倍频器。S3C44B0X内部结构图S3C44B0X 内部结构如图7所示:图7 S3C44B0X内部结构图 S3C44B0X引脚图S3C44B0X引脚情况如图8所示: 图8 S3C44B0X引脚图由于S3C44B0X引脚数量众多,此处不再对其详细说明,有关各引脚功能可以参阅相关资料。2.4 外围芯片的选择根据功能要求,该系统还需配置其他外围芯片,用于辅助完成要求功能。此处选用的外围芯片为FM7843,不过它已被集成在触摸屏模块OCMJ15x20D中,它主要用来对触摸点进行检测,并把检测到的信息送出转换为相应的坐标,以供S3C44BOX处理器读取。下面对该芯片结构及原理作简要介绍模块FM7843是

21、四线电阻式触摸屏输进控制芯片。它是一款具有同步串行接口的12位采样模数转换器。在125kHz吞吐速率和2.7V电压下的功耗为750W而在封闭模式下的功耗仅为0.5W。它具有低功耗和高速等特性,因此被广泛应用。引脚X+、Y+、X-、Y-是转换器模拟输进端,DCLK是外部时钟输进;CS是片选端:DIN是串行输进,其控制数据通过该引脚输进;DOUT是串行数据输出用于输出转换后的触摸位置数据。最大数为二进制的4095;IN3、IN4是辅助输进;PENIRQ是PEN中断引脚。其中,S3C44BOX共使用6条与FM7843接口相连。其结构如图9所示:图9 FM7843结构图FM7843有关引脚介绍列表如下

22、;表1 FM7843引脚介绍2.5 硬件原理图图10图11 触屏模块OCMJ15x20D上图为触屏模块OCMJ15x20D的实体图和外形尺寸图本系统显示部分采用的正是该模块系列中文液晶湿示模块,其中OCMJ表示奥可拉中文集成模块。这是一个中英文文字与绘图模式的点阵液晶屁示模块,内建512KByte的ROM字形码,可以显示中文字型、数字符号、英日欧文等字母,并且内建双图层(Two Page)的显爪内存。在文字模式中,可接收标准中文文字内码直接显示中文,而不需要进进绘图模式以绘图方式描绘中文,提升液晶显示中文之效率。该模块整合了多项的实用界面,包含内建的10-Bit ADC提供触控屏接口。OCMJ

23、15X20D(V3.2)的触摸屏是用FM7843控制的,该控制器已集成在模块上,模块已留出FM7843的控制线供客户使用(OCMJ15X20D上的J5脚),可直接使用3V供电而不需外接负电压。该模块同时支持支持文字与绘图两种混和显示模式。支持2 Page 显示模式(And, Or, Nor, Xor),内建两个4.8K / 9.6 K(15x20D)Byte 的显示RAM (Display Data RAM)共9.6K / 19.2 K(15x20D)Byte RAM并且可做成4 阶的显示效果。内建512KByte ROM,控制IC 分带繁体字库IC 和带简体字库IC,其中标准繁体中文BIG5

24、 码,包含13,094个常用与次常用字型、408 个特殊字与两组ASCII CODE,简体字库储存7602 个标准GB 码的简体中文。提供全角(16x16)与半角(8x16)文字显示模式。支持4/8 位之6800/8080 MCU 接口。内建8x8 键盘扫瞄界面(Key Scan)。带光标、反白、闪烁功能,且光标高度与宽度可调。支持屏幕水平卷动及垂直卷动功能。内建512Byte SRAM 可自行造字。提供中/英文文字对齐功能。显示字型可放大到32x32、48x48 或64x64,以及混合显示模式。支持可将字型由ROM 直接读出使用。内建粗体字形与行距设定。内建10-Bit ADC 支持触控屏幕

25、应用(OCMJ4X15D 和OCMJ5X10D 屏蔽了此功能)。 OCMJ4X15D 和OCMJ5X10D 当为黄绿屏而不使用背光时,或者为蓝屏使用背光时,可使用3V 供电而。不需外接负电压。OCMJ8X10D 和OCMJ8X15D 也可使用3V 供电但需外接负电压,除OCMJ8X10D 的蓝屏背光可使用。3V 供电外,其他背光都要4.1V 以上供电。OCMJ15X20D 可直接使用3V 供电而不需外接负电压,但其背光为CCFL 背光,需另外供电,一般要45V。对于触摸屏模块OCMJ15X20D 其直接参与人机交互的结构为电阻式触摸面板。电阻式触摸面板是由两层极薄的电阻面板组成,如图12所示,

26、两层面板之间有一个很小的间距,当有外力在面板上的某一点压下去时,会在施力点造成两层电阻接触,也就是短路(Short),而两层电阻面板的端点都各有电极,如图13所示YU, YD, XL, XR因此配合一些开关就可侦测出面板上哪一相对位置被Touch。 图12 电阻式触摸面板结构 图13 触摸面板与侦测开关在图14中,设定开关SW2SW3 是OFF(Open)SW0 与SW1 是ON(Close),当有外力在面板上的某一点压下去时,由于点取得电压接到ADC(Analog to Digital Converter),就可以得到被Touch 点的X 坐标相对位置。图14 读取X坐标在图14 中,因为开

27、关SW2 与SW3 是OFF,因此YD 点是Floating,所以当有外力在面板上的某一点压下去时,YU 上的电压事实上就是X 的Panel(也就是电阻)上的分压结果,压在面板上的不同一点,就会得到不同的分压结果,如图15所示。图15 Resistor-X的分压同理,在图16中,设定开关SW0 与SW1 是OFF(Open),SW2 与SW3 是ON(Close),当有外力在面板上的某一点压下去时,由XL 点取得电压接到ADC(Analog to Digital Converter),就可以得到被Touch 点的Y 坐标相对位置。一般说来许多触摸面板都是贴在LCD 面板上面,因此在程序设计上如

28、果重复图14与16的读取步骤就可以顺利得知被touTouch 的点是在屏幕上的哪一位置。图16 读取Y坐标图17 Resistor-Y的分压在图16 中,因为开关SW0 与SW1 是OFF,因此XR 点是Floating,所以当有外力在面板上的某一点压下去时,XL 上的电压事实上就是Y 的Panel(也就是电阻)上的分压果,压在面板上的不同一点,就会得到不同的分压值,如图17所示。3.LCD触摸屏软件设计3.1 界面的定制与显示界面的定制是通过建立网络链表的方式实现的。构建好链表网络后就进进应用程序阶段,即系统进进正常运行状态。通过系统中设定当前屏指针、当前项指针及已构建的链表网络等来实现人机

29、交互界面的操纵。同一屏幕的项构成双向循环链表、链接屏幕构成单向循环链表。实现方法:先以屏为单位建立每屏的横向双向循环链表;再遍历各屏的双向链表,为各屏的项建立链接关系,进而构成一个链表网络。通过遍历当前屏幕的横向双向循环链表来逐一显示屏幕的项。其巾对各类项的处理如下:当屏幕项是文本时,直接读取并显示。当屏幕项为整型、浮点时通过向控制系统索取其值并显示。当屏幕项为枚举时,通过向控制系统索取其值,再按值读取对应的字符串并显示。3.2 触摸屏信息的处理触摸屏按键分为数字键、换屏键、确认键和选择键。数字键用于键进所按的数字。换屏键用于切换屏幕内容,进进所选中项的链接屏幕,若当前屏幕没有选中项,则进进首

30、项链接的屏幕。选择键主要是使下拉菜单的内容显示到屏幕上来。确认键是用于选择下拉菜单内容。3.3 主函数初始化 该软件系统主函数采用的是等待触摸键值的死循环结构。4 分析驱动触摸屏驱动在/kernel/drivers/char/s3c2410-ts.c 文件中。4.1 触摸屏设备驱动中数据结构(1)触摸屏的file_operationsstatic struct file_operations s3c2410_fops= owner: THIS_MODULE, open: s3c2410_ts_open, read: s3c2410_ts_read, release: s3c2410_ts_re

31、lease,#ifdef USE_ASYNC fasync: s3c2410_ts_fasync,/异步通知#endif poll: s3c2410_ts_poll,/轮询;(2)触摸屏设备结构体的成员与按键设备结构体的成员类似,也包含一个缓冲区,同时包括自旋锁、等待队列和fasync_struct指针。typedef struct unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */ TS_RET bufMAX_TS_BUF; /* protect against overrun(环形缓冲区) */ unsigned int h

32、ead, tail;/* head and tail for queued events (环形缓冲区的头尾)*/ wait_queue_head_t wq; /* 等待队列数据结构 spinlock_t lock; /* 自旋锁#ifdef USE_ASYNC struct fasync_struct *aq;#endif#ifdef CONFIG_PM struct pm_dev *pm_dev; /友善之臂专有的,我后面的代码删除了这段#endif TS_DEV;(3)触摸屏结构体中包含的TS_RET值的类型定义,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个信息会在

33、用户读取触摸信息时复制到用户空间。 typedef struct unsigned short pressure; /* 压力,这里可定义为笔按下,笔抬起,笔拖曳 unsigned short x; /* 横坐标的采样值 unsigned short y; /* 纵坐标的采样值 unsigned short pad; /* 填充位 TS_RET;(4)在触摸屏设备驱动中,将实现open()、release()、read()、fasync()和poll()函数,因此,其文件操作结构体定义。触摸屏驱动文件操作结构体:static struct file_operations s3c2410_fop

34、s=4.2 触摸屏驱动模块加载和卸载函数(1)在触摸屏设备驱动的模块加载函数中,要完成申请设备号、添加cdev、申请中断、设置触摸屏控制引脚(YPON、YMON、XPON、XMON)等多项工作。触摸屏设备驱动的模块加载函数 static int _init s3c2410_ts_init(void)触摸屏设备驱动模块卸载函数 static void _exit s3c2410_ts_exit(void)(2)可知触摸屏驱动中会产生两类中断,一类是触点中断(INT-TC),一类是X/Y位置转换中断(INT-ADC)。在前一类中断发生后,若之前处于PEN_UP状态,则应该启动X/Y位置转换。另外,

35、将抬起中断也放在INT-TC处理程序中,它会调用tsEvent()完成等待队列和信号的释放。触摸屏设备驱动的触点/抬起中断处理程序static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)当X/Y位置转换中断发生后,应读取X、Y的坐标值,填入缓冲区触摸屏设备驱动X/Y位置转换中断处理程序static void s3c2410_isr_adc(int irq, void *dev_id, struct pt_regs *reg)触摸屏设备驱动中获得X、Y坐标static inline void s3c2410_ge

36、t_XY(void)(3)tsEvent最终为tsEvent_raw(),这个函数很关键,当处于PEN_DOWN状态时调用该函数,它会完成缓冲区的填充、等待队列的唤醒以及异步通知信号的释放;否则(处于PEN_UP状态),将缓冲区头清0,也唤醒等待队列并释放信号。触摸屏设备驱动的tsEvent_raw()函数static void tsEvent_raw(void)(4)在包含了对拖动轨迹支持的情况下,定时器会被启用,周期为10ms,在每次定时器处理函数被引发时,调用start_ts_adc()开始X/Y位置转换过程。触摸屏设备驱动的定时器处理函数static void ts_timer_han

37、dler(unsigned long data)(5)在触摸屏设备驱动的打开函数中,应初始化缓冲区、penStatus和定期器、等待队列及tsEvent时间处理函数指针。触摸屏设备驱动的打开函数static int s3c2410_ts_open(struct inode *inode, struct file *filp)(6)触摸屏设备驱动的释放函数非常简单,删除为用于拖动轨迹所使用的定时器即可。触摸屏设备驱动的释放函数 static int s3c2410_ts_release(struct inode *inode, struct file *filp)4.3 触摸屏设备驱动的读函数触

38、摸屏设备驱动的读函数实现缓冲区中信息向用户空间的复制,当缓冲区有内容时,直接复制;否则,如果用户阻塞访问触摸屏,则进程在等待队列上睡眠,否则,立即返回-EAGAIN。触摸屏设备驱动的读函数static ssize_t s3c2410_ts_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)4.4 触摸屏设备驱动的轮询与异步通知在触摸屏设备驱动中,通过s3c2410_ts_poll()函数实现了轮询接口,这个函数的实现非常简单。它将等待队列添加到poll_table,当缓冲区有数据时,返回资源可读取标志,否则返回0。

39、触摸屏设备驱动的poll()函数static unsigned int s3c2410_ts_poll(struct file *filp, struct poll_table_struct *wait)而为了实现触摸屏设备驱动对应用程序的异步通知,设备驱动中要实现s3c2410_ts_fasync()函数。触摸屏设备驱动的fasync()函数static int s3c2410_ts_fasync(int fd, struct file *filp, int mode)5.结论 本设计充分利用OCMJ15x20D以及S3C44BOX内置资源FM7843,设计了ARM处理器控制LCD触摸屏的软

40、硬件系统,该系统具有可定制特性。它不仅仅能够方便用户的对机床等其它设备的操纵,而且也使得开发职员对界面的修改即对产品的升级变得简单、快捷。本设计只是人机交互技术运用之一,同样其设计理念及相关理论同样也可以应用其它嵌入式开发系统中。参考文献1程昌南,方强等ARMLinux入门与实践M北京:北京航空航天大学出版社,2008.102张晓林等嵌入式系统设计与实践M北京:北京航空航天大学出版社,2006.13李俊等嵌入式Linux设备驱动开发详解M北京:北京人民邮电出版社,2008.34黄智伟,邓月明,王彦ARM9嵌入式系统设计基础教程M北京:北京航空航天大学出版社,200885吕骏.嵌入式系统设计M.北京:电子工业出版社,20026王田苗,魏洪兴.嵌入式系统设计实例与开发M.北京:清华大学出版社,20087于明ARM嵌入式系统设计与开发教程M.北京:电子工业出版社,20068田泽.ARM嵌入式Linux开发实验与实践M.北京:北京航空航天大学出版社,20069周立功.ARM&WinCE实验与实践基于S3C2410M.北京:北京航空航天大学出版社,200710魏洪兴.嵌入式系统设计师教程M.北京:清华大学出版社,2006

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁