S3C2410触摸屏驱动程序原理图.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S3C2410触摸屏驱动程序原理图

S3C2410触摸屏驱动程序原理图 本文介绍了基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成 触摸屏模块的设计。具体包括在嵌入式Linux 操作系统中的软件驱动开发,采用内核定时器 的下半部机制进行了触摸屏硬件中断程序设计,采用16 个时钟周期的坐标转换时序,实现触 摸点数据采集的方法,给出了坐标采集的流程。设计完成的触摸屏驱动程序在博创公司教学 实验设备UP-NETARM2410-S 平台上运行效果良好。 引言 随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应 用。如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式 系统设计者需要考虑的问题。本文主要介绍在三星S3C2410X 微处理器的硬件平台上进行基 于嵌入式Linux 的触摸屏驱动程序设计。 硬件实现方案 SPI 接口是Motorola 推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X 是三 星推出的自带触摸屏接口的ARM920T 内核芯片,ADS7843为Burr-Brown 生产的一款性能优 异的触摸屏控制器。本文采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这 种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间 大大减少,提高了微处理器的效率。ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843 差分工作模式的优点,在硬件电路中将其配置为差分模式。 图1 触摸屏输入系统示意图 嵌入式Linux 系统下的驱动程序 设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。Linux 的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev 目录下,成为设备 文件。应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文 件一样简便。为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。 设备驱动在加载时首先需要调用入口函数init_module(),该函数完成设备驱动的初始化工作。 其中最重要的工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于 块设备需要调用register_blkdev()完成注册。注册成功后,该设备获得了系统分配的主设备号、 自定义的次设备号,并建立起与文件系统的关联。字符设备驱动程序向Linux 内核注册登记 时,在字符设备向量表chrdevs中增加一个device_struct数据结构条目,这个设备的主设备标识 符用作这个向量表的索引。向量表中的每一个条目,即一个device_struct 数据结构包括两个 元素:一个登记的设备驱动程序的名称的指针和一个指向一组文件操作的指针。这块文件操 作本身位于这个设备的字符设备驱动程序中,每一个都处理特定的文件操作,比如打开、读写 和关闭。所谓登记,就是将由模块提供的file_operations 结构指针填入device_struct 数据结构 数组的某个表项。登记以后,位于上层的模块(内核)可以“看见”这个模块了。但是,应用程序却 还不能“看见”它,因而还不能通过系统调用它。要使应用程序能“看见”这个模块或者它所驱动 的设备,就要在文件系统中为其创建一个代表它的节点。通过系统调用mknod()创建代表此项 设备的文件节点——设备入口点,就可使一项设备在系统中可见,成为应用程序可以访问的设 备。另外,设备驱动在卸载时需要回收相应的资源,令设备的相应寄存器值复位并从系统中注 销该设备。 Linux操作系统通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。设备驱动 模块的功能就是扩展内核的功能,主要完成两部分任务:一个是系统调用,另一个是处理中断。 图2是一个设备驱动模块动态挂接、卸载和系统调用的全过程。系统调用部分则是对设备的 操作过程,比如open,read,write,ioctl 等操作,设备驱动程序所提供的这组入口点由几个结构向 系统进行说明,分别是file_operations 数据结构、inode 数据结构和file 数据结构。内核内部 通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问 设备驱动的函数,结构中的每一个成员都对应着一个系统调用。在嵌入式系统的开发中,我们 一般仅仅实现其中几个接口函数:read、write、open、ioctl 及release 就可以完成应用系统需 要的功能。写驱动程序的任务之一就是完成fi

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档