触摸屏驱动总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

触摸屏驱动总结

触摸屏工作原理

触摸屏的工作原理概括来说就是上报坐标值,X轴、Y轴的值。电容式触摸屏不依靠手指按力创造、改变电压值来检测坐标的,电容屏通过任何持有电荷的物体包括人体皮肤工作(人体所带的电荷)。电容式触摸屏是由诸如合金或是銦錫氧化物(ITO)这样的材料构成,电荷存储在一根根比头发还要细的微型静电网中。当手指点击屏幕,会从接触点吸收小量电流,造成角落电极的压降,利用感应人体微弱电流的方式来达到触控的目的。(这是为什么当你带上手套触摸屏幕时,没有反应的原因),下图可以清晰的说明电容屏的工作原理。

上图显示了触摸屏的组成,可以看到触摸屏由IC控制电路、接口电路、触摸屏感应区组合而成。

当然触摸屏的工作原理我们并不需要去详细了解,我们仅需要知道如何从接口电路获取输入信号、向接口电路输出信号即可。

SPI总线总结

SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线。

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个

从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDO –主设备数据输出,从设备数据输入;

(2)SDI –主设备数据输入,从设备数据输出;

(3)SCLK –时钟信号,由主设备产生;

(4)CS –从设备使能信号,由主设备控制。

其中,CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。

structboardinfo {

structlist_head list; //用于挂接到链表头board_list上

unsigned n_board_info; //设备信息号,spi_board_info成员的编号structspi_board_infoboard_info[0]; //内嵌的spi_board_info结构

};

//其中内嵌的描述spi设备的具体信息的结构structspi_board_info为:

structspi_board_info {

/* the device name and module name are coupled, like platform_bus;

* "modalias" is normally the driver name.

* platform_data goes to spi_device.dev.platform_data,

* controller_data goes to spi_device.controller_data,

* irq is copied too

*/

char modalias[SPI_NAME_SIZE]; //名字

const void *platform_data //如同注释写的指向spi_device.dev.platform_data void *controller_data; //指向spi_device.controller_data intirq; //中断号

/* slower signaling on noisy or low voltage boards */

u32 max_speed_hz; //时钟速率

/* bus_num is board specific and matches the bus_num of some

* spi_master that will probably be registered later.

*

* chip_select reflects how this chip is wired to that master;

* it's less than num_chipselect.

*/

u16 bus_num; //所在的spi总线编号

u16 chip_select;

/* mode becomes spi_device.mode, and is essential for chips

* where the default of SPI_CS_HIGH = 0 is wrong.

*/

u8 mode; //模式

/* ... may need additional spi_device chip config data here.

* avoid stuff protocol drivers can set; but include stuff

* needed to behave without being bound to a driver:

* - quirks like clock rate mattering when not selected

*/

};

2.6内核典型的做法,不直接使用原始设备驱动,而是使用包装后的抽象设备驱动spi_driver,间接与原始设备驱动建立联系,并最终通过调用driver_register来注册原始设备驱动。以后也不会直接与原始设备打交道,而是通过spi_device来间接操作设备。

Touch Screen总体结构框架图

触摸屏驱动软件结构

触摸屏驱动的软件架构如下图所示:

注释:

1.平台初始化

2.平台设备注册

3.触摸屏驱动初始化

4.平台驱动注册

5.设备的探测函数

6.电源适配

7.分配输入设备

8.注册成系统的输入设备

9.纯中断的工作函数

驱动初始化的流程驱动初始化流程如下图所示:

相关文档
最新文档