新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux系统中触摸屏驱动的研究

嵌入式Linux系统中触摸屏驱动的研究

作者:时间:2012-05-21来源:网络收藏

引言

随着计算机相关技术的发展,嵌入式系统的应用越来越广泛,与人们生活紧密结合。触摸屏设备因其友善的人机交互性,操作方便灵活,输入速度快,被广泛的应用于嵌入式领域中。嵌入式系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。触摸屏是一种输入设备,操作简单易学,不占额外的空间,可靠性高,是最常用的便携式系统的输入设备。特别是电阻式触摸屏结构简单,成本低,透光效果好,工作环境和外界完全隔离,不怕灰尘和水气,同时具有高解析度,高速传输反应,一次校正,稳定性高,不漂移等特点,因而广泛用于工业控制领域及在室内使用。

1 硬件平台

S3C2410是Samsung公司基于ARM 920T核心的一款MCU,集成了众多的外围设备,其中包括4线电阻式触摸屏控制器、8路模拟输入通道。在8路A/D转换通道中,A[5]和A[7]作为触摸屏的X、Y坐标的采集通道。S3C2410与4线电阻式触摸屏连接的电路原理图见图1。

在采样过程中,只需要通过读写一系列的特殊寄存器,S3C2410的触摸屏控制器就会自动控制触摸屏接口打开或关闭各MOS管,按顺序完成触摸屏X、Y坐标数据的采集。

图1 S3C2410连接4线电阻式触摸屏电路原理图

2 设备简介

设备是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程序和硬件设备之间的桥梁。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。设备是内核的一部分,主要完成以下功能:对设备的初始化和释放;把数据从内核传送到硬件设备和从硬件设备读取数据;读取应用程序数据传送给设备文件和回送应用程序请求的数据;检测和处理硬件设备出现的错误。

操作系统的设备有字符设备、块设备和网络设备等。字符设备是以单个字节为单位进行顺序读写操作,通常不使用缓存技术,例如鼠标、键盘等。块设备的读写都使用缓存技术来支持,并且必须能够进行随机存取,主要是针对磁盘等慢速设备设计的。网络设备主要基于BSD的Socket机制,为发送数据和接收数据提供缓存技术,提供对多协议的支持,例如以太网卡等。

3 Linux触摸屏驱动程序实现

在Linux系统中,设备驱动程序是一组相关函数的集合。它包括设备服务子程序和中断处理程序。设备服务子程序包含了所有与设备相关的代码,每个设备服务子程序只处理一种设备或者紧密相关的设备,从设备无关的软件中接受抽象的命令并执行。当执行一条请求时,具体操作是根据控制器对驱动程序提供的接口,并利用中断机制去调用中断服务子程序配合设备完成这个请求。设备驱动程序利用结构file_operations与文件系统联系起来,设备的各种操作的入口函数放在结构file_operations中,其中包括open()、release()、read()和write()等接口,简化了驱动程序的编写工作。这样,应用程序根本不必考虑操作的是设备还是普通文件,可一律看作文件处理,具有非常清晰统一的I/O接口。触摸屏的 file_operations结构定义如下:

static struct file_operations s3c2410_ts_fops = {

owner: THIS_MODULE,

read: s3c2410_ts_read,

poll: s3c2410_ts_poll,

ioctl: s3c2410_ts_ioctl,

open: s3c2410_ts_open,

release: s3c2410_ts_release,

fasync: s3c2410_ts_fasync,};

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭