您的位置:控制工程论坛网论坛 » 嵌入式系统 » 嵌入式Linux系统的触摸屏驱动开发

nicebaby

nicebaby   |   当前状态:在线

总积分:415  2025年可用积分:0

注册时间: 2008-09-09

最后登录时间: 2011-08-09

空间 发短消息加为好友

嵌入式Linux系统的触摸屏驱动开发

nicebaby  发表于 2008/10/29 19:30:31      775 查看 0 回复  [上一主题]  [下一主题]

手机阅读

引言 

  触摸屏因方便灵活、节省空间、直观等特点,作为嵌入式系统的输入设备越来越受各种终端产品生厂商的青睐。而Linux操作系统因为有着源代码公开、便于裁减的优点,是当前嵌入式系统的一大热门选择。本文将在构造硬件的基础上,深入的讨论如何在Linux操作系统里编写一个触摸屏驱动。

  SPI接口的简介

  串行外围设备接口SPI总线技术是摩托罗拉公司推出的一种全双工、同步串行接口,它提供了功能强大的四线接口(接收线、传输线、时钟线和从片选线)。

  SPI的从设备和主设备共用一个时钟线,而时钟始终是从主设备里发送出来的。当823e是主模式的时候,片选信号线就停用,如果是从模式的话,它的从片选线低电平使能。在本例中,823e是主设备,所以我们另外选用了一个823e的GPIO(通用输入输出口)作为从设备的片选信号。大多数同步串行式数据转换器都很容易与这种接口连接,其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。

  触摸屏的硬件

  触摸屏输入系统由触摸屏、触摸屏控制芯片和数据处理器三部分组成。触摸屏按其技术原理可分为五类:矢量压力传感式、电阻式、电容式、红外线式和表面声波式,其中电阻式触摸屏在嵌入式系统中用的较多。

  我们选用的触摸屏是AMD公司的电阻式触摸屏AMT 9502。触摸屏控制芯片是TI公司的模数转换芯片ADS7846。该芯片支持SPI通信协议,所以我们就用823e的SPI接口与ADS7846芯片通信,从触摸屏得到的模拟信号经过模数转换器后输入作为数据处理器的823e。

  软件程序

  823e通过SPI接口与触摸屏控制器通信,所以对触摸屏的控制就是对SPI接口的操作。完成SPI接口驱动的编写之后,就能够与触摸屏控制器建立通信。在Linux内核运行完毕之后,SPI接口要打开,并且已经分配了一部分内存供它使用。同时,SPI的中断程序已经加入等待队列,一旦SPI接口有中断,SPI的中断服务程序就被唤醒,开始运行。这部分的工作是在系统启动过程中运行的初始化函数来完成的。下面将结合源代码来讨论初始化函数的编写,其中,就两点进行重点讨论。

1楼 0 0 回复