基于PXA255的触摸屏控制器ADS7843驱动程序设计
发布时间:2008/6/3 0:00:00 访问次数:570
摘要:在研发具有操作系统的设备时,高质量的设备驱动程序可以大大提高设备的稳定性与可靠性。本文以触摸屏控制器ads7843为例,介绍了其内部结构、工作原理,并详细阐述了在linux操作系统的设备文件系统机制中编写设备驱动程序的过程与方法,同时给出基于pxa255微外理器的触摸屏控制器ads7843中断方式的驱动程序。
关键词:嵌入式linux;触摸屏;ads7843;pxa255微处理器
在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ads7843的内部结构及工作原理和在嵌入式linux操作系统中基于pxa255微处理器的ads7843驱动程序设计。
1 触摸屏控制器ads7843的介绍
1.1 ads7843的内部结构
ads7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近a/d转换器和异步串行数据输入输出,ads7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入a/d转换器,图1为ads7843内部结构图。x+、y+、x-、y-为触摸屏电极模拟电压输入;cs为ads7843的片选输入信号,低电平有效;dclk接外部时钟输入,为芯片进行a/d转换和异步串行数据输入/输出提供时钟;din串行数据输入端,当cs低电平时,输入数据在时钟的上升沿将串行数据锁存;dout串行数据输出端,在时钟下降沿数据由此移位输出,当cs为高电平时,dout呈高阻态。busy为系统忙标志端,当cs为低电平,且busy为高电平时,表示ads7843正在进行数据转换;vref参考电压输入端,电压值在+1v到+vcc之间变化;penirq为笔触中断,低电平有效;in3、in4为辅助adc转换输入通道;+vcc为电源输入。
图1 ads7843内部结构
1.2 ads7843的转换时序
ads7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向ads843发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ads7843取出16bita/d转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期,图2为ads7843转换时序。
图2 ads7843转换时序
2 ads7843与pxa255硬件接口
pxa255微处理器是intel公司生产的第二代基于32位xscale微架构的集成系统芯片(isoc),pxa255具有高性能、低功耗等优点,它除了xscale微内核外,还集成了许多适用于手持设备市场需要的外围设备。图3为ads7843触摸屏控制器与pxa255微处理器的硬件连线示意图。当屏触发生时ads7843向pxa255发出中断请求,由pxa255响应该中断请求,启动通信过程,读取ads7843的转换结果,从而得到触摸点的坐标。ads7843各信号的时序受外部输入时钟信号频率的影响,一旦外部输入时钟频率固定,各信号的时序便完全确定,因此需要配置pxa255的接口信号时序,使之完全符合ads7843的时序。
图3 ads7843触摸屏控制器与pxa255微处理器的连线示意图
3 ads7843驱动程序的设计
linux作为一个宏内核操作系统,其设备驱动都在内核,即系统空间实现,实现方式有两种,一种是将有关的设备驱动程序和数据结构静态地连接在内核映像中;另一种是将具体的设备驱动程序和数据结构独立加以编译,成为可安装的模块,需要时由应用程序通过系统调用动态地予以安装或拆卸。设备驱动的实现方法也有两种,一种是轮询(polling)方式,另一种是中断(inter-rupt)方式,轮询方式对设备的操作完全由cpu掌握,外部设备则完全处于被动状态。中断方式是由外部设备主动提出申请,cpu响应申请后对外部设备进行处理,是现在常用的设备驱动方式。linux的设备驱动具有两个显著的特点,其一是把所有的设备视为一种设备文件,每个设备都呈现于文件系统的/dev目录下,设备驱动与文件操作具有相同的界面和语义,并通过同一组系统调用进行操作;另一个显著特点是linux的设备驱动有着分明的层次和结构。
linux内核的新近版本为设备入口提供了一种特殊的文件系统,即设备文件系统devfs(device file system)。新的devfs机制的优点在于:①各种设备驱动模块动态地向系统登记,设备初始化时在/dev目录下创建设备入口点,移除设备时将其删除。②设备驱动程序可以指定设备名、所有者和权限位。③不需要为设备驱动程序分配主设备号以及次设备号。④当装载和卸载模块时,不再需要运行脚本来创建设备文件,驱动程序自主地管理其设备文件。采用devfs机制的设备驱动程序调用下面的函数来处理设备的创建和删除工作
关键词:嵌入式linux;触摸屏;ads7843;pxa255微处理器
在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ads7843的内部结构及工作原理和在嵌入式linux操作系统中基于pxa255微处理器的ads7843驱动程序设计。
1 触摸屏控制器ads7843的介绍
1.1 ads7843的内部结构
ads7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近a/d转换器和异步串行数据输入输出,ads7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入a/d转换器,图1为ads7843内部结构图。x+、y+、x-、y-为触摸屏电极模拟电压输入;cs为ads7843的片选输入信号,低电平有效;dclk接外部时钟输入,为芯片进行a/d转换和异步串行数据输入/输出提供时钟;din串行数据输入端,当cs低电平时,输入数据在时钟的上升沿将串行数据锁存;dout串行数据输出端,在时钟下降沿数据由此移位输出,当cs为高电平时,dout呈高阻态。busy为系统忙标志端,当cs为低电平,且busy为高电平时,表示ads7843正在进行数据转换;vref参考电压输入端,电压值在+1v到+vcc之间变化;penirq为笔触中断,低电平有效;in3、in4为辅助adc转换输入通道;+vcc为电源输入。
图1 ads7843内部结构
1.2 ads7843的转换时序
ads7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向ads843发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ads7843取出16bita/d转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期,图2为ads7843转换时序。
图2 ads7843转换时序
2 ads7843与pxa255硬件接口
pxa255微处理器是intel公司生产的第二代基于32位xscale微架构的集成系统芯片(isoc),pxa255具有高性能、低功耗等优点,它除了xscale微内核外,还集成了许多适用于手持设备市场需要的外围设备。图3为ads7843触摸屏控制器与pxa255微处理器的硬件连线示意图。当屏触发生时ads7843向pxa255发出中断请求,由pxa255响应该中断请求,启动通信过程,读取ads7843的转换结果,从而得到触摸点的坐标。ads7843各信号的时序受外部输入时钟信号频率的影响,一旦外部输入时钟频率固定,各信号的时序便完全确定,因此需要配置pxa255的接口信号时序,使之完全符合ads7843的时序。
图3 ads7843触摸屏控制器与pxa255微处理器的连线示意图
3 ads7843驱动程序的设计
linux作为一个宏内核操作系统,其设备驱动都在内核,即系统空间实现,实现方式有两种,一种是将有关的设备驱动程序和数据结构静态地连接在内核映像中;另一种是将具体的设备驱动程序和数据结构独立加以编译,成为可安装的模块,需要时由应用程序通过系统调用动态地予以安装或拆卸。设备驱动的实现方法也有两种,一种是轮询(polling)方式,另一种是中断(inter-rupt)方式,轮询方式对设备的操作完全由cpu掌握,外部设备则完全处于被动状态。中断方式是由外部设备主动提出申请,cpu响应申请后对外部设备进行处理,是现在常用的设备驱动方式。linux的设备驱动具有两个显著的特点,其一是把所有的设备视为一种设备文件,每个设备都呈现于文件系统的/dev目录下,设备驱动与文件操作具有相同的界面和语义,并通过同一组系统调用进行操作;另一个显著特点是linux的设备驱动有着分明的层次和结构。
linux内核的新近版本为设备入口提供了一种特殊的文件系统,即设备文件系统devfs(device file system)。新的devfs机制的优点在于:①各种设备驱动模块动态地向系统登记,设备初始化时在/dev目录下创建设备入口点,移除设备时将其删除。②设备驱动程序可以指定设备名、所有者和权限位。③不需要为设备驱动程序分配主设备号以及次设备号。④当装载和卸载模块时,不再需要运行脚本来创建设备文件,驱动程序自主地管理其设备文件。采用devfs机制的设备驱动程序调用下面的函数来处理设备的创建和删除工作
摘要:在研发具有操作系统的设备时,高质量的设备驱动程序可以大大提高设备的稳定性与可靠性。本文以触摸屏控制器ads7843为例,介绍了其内部结构、工作原理,并详细阐述了在linux操作系统的设备文件系统机制中编写设备驱动程序的过程与方法,同时给出基于a255微外理器的触摸屏控制器ads7843中断方式的驱动程序。
关键词:嵌入式linux;触摸屏;ads7843;a255微处理器
在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ads7843的内部结构及工作原理和在嵌入式linux操作系统中基于a255微处理器的ads7843驱动程序设计。
1 触摸屏控制器ads7843的介绍
1.1 ads7843的内部结构
ads7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近a/d转换器和异步串行数据输入输出,ads7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入a/d转换器,图1为ads7843内部结构图。x+、y+、x-、y-为触摸屏电极模拟电压输入;cs为ads7843的片选输入信号,低电平有效;dclk接外部时钟输入,为芯片进行a/d转换和异步串行数据输入/输出提供时钟;din串行数据输入端,当cs低电平时,输入数据在时钟的上升沿将串行数据锁存;dout串行数据输出端,在时钟下降沿数据由此移位输出,当cs为高电平时,dout呈高阻态。busy为系统忙标志端,当cs为低电平,且busy为高电平时,表示ads7843正在进行数据转换;vref参考电压输入端,电压值在+1v到+vcc之间变化;penirq为笔触中断,低电平有效;in3、in4为辅助adc转换输入通道;+vcc为电源输入。
图1 ads7843内部结构
1.2 ads7843的转换时序
ads7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向ads843发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ads7843取出16bita/d转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期,图2为ads7843转换时序。
图2 ads7843转换时序
2 ads7843与a255硬件接口
a255微处理器是intel公司生产的第二代基于32位xscale微架构的集成系统芯片(isoc),a255具有高性能、低功耗等优点,它除了xscale微内核外,还集成了许多适用于手持设备市场需要的外围设备。图3为ads7843触摸屏控制器与a255微处理器的硬件连线示意图。当屏触发生时ads7843向a255发出中断请求,由a255响应该中断请求,启动通信过程,读取ads7843的转换结果,从而得到触摸点的坐标。ads7843各信号的时序受外部输入时钟信号频率的影响,一旦外部输入时钟频率固定,各信号的时序便完全确定,因此需要配置a255的接口信号时序,使之完全符合ads7843的时序。
图3 ads7843触摸屏控制器与a255微处理器的连线示意图
3 ads7843驱动程序的设计
linux作为一个宏内核操作系统,其设备驱动都在内核,即系统空间实现,实现方式有两种,一种是将有关的设备驱动程序和数据结构静态地连接在内核映像中;另一种是将具体的设备驱动程序和数据结构独立加以编译,成为可安装的模块,需要时由应用程序通过系统调用动态地予以安装或拆卸。设备驱动的实现方法也有两种,一种是轮询(polling)方式,另一种是中断(inter-rupt)方式,轮询方式对设备的操作完全由cpu掌握,外部设备则完全处于被动状态。中断方式是由外部设备主动提出申请,cpu响应申请后对外部设备进行处理,是现在常用的设备驱动方式。linux的设备驱动具有两个显著的特点,其一是把所有的设备视为一种设备文件,每个设备都呈现于文件系统的/dev目录下,设备驱动与文件操作具有相同的界面和语义,并通过同一组系统调用进行操作;另一个显著特点是linux的设备驱动有着分明的层次和结构。
linux内核的新近版本为设备入口提供了一种特殊的文件系统,即设备文件系统devfs(device file system)。新的devfs机制的优点在于:①各种设备驱动模块动态地向系统登记,设备初始化时在/dev目录下创建设备入口点,移除设备时将其删除。②设备驱动程序可以指定设备名、所有者和权限位。③不需要为设备驱动程序分配主设备号以及次设备号。④当装载和卸载模块时,不再需要运行脚本来创建设备文件,驱动程序自主地管理其设备文件。采用devfs机制的设备驱动程序调用下面的函数来处理设备的创建和删除工作
关键词:嵌入式linux;触摸屏;ads7843;a255微处理器
在便携式的电子类产品中,触摸屏由于其便、灵活、占用空间少等优点,已经逐渐取代键盘成为嵌入式计算机系统常选用的人机交互输入设备。触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。本文从触摸屏控制器的驱动程序设计着手,介绍触摸屏控制器ads7843的内部结构及工作原理和在嵌入式linux操作系统中基于a255微处理器的ads7843驱动程序设计。
1 触摸屏控制器ads7843的介绍
1.1 ads7843的内部结构
ads7843内驻一个多路低导通电阻模拟开关组成的供电-测量电路网络、12bit逐次逼近a/d转换器和异步串行数据输入输出,ads7843根据微控制器发来的不同测量命令导通相应的模拟开关,以便向触摸屏电极对提供电压,并把相应电极上的触点坐标位置所对应的电压模拟量引入a/d转换器,图1为ads7843内部结构图。x+、y+、x-、y-为触摸屏电极模拟电压输入;cs为ads7843的片选输入信号,低电平有效;dclk接外部时钟输入,为芯片进行a/d转换和异步串行数据输入/输出提供时钟;din串行数据输入端,当cs低电平时,输入数据在时钟的上升沿将串行数据锁存;dout串行数据输出端,在时钟下降沿数据由此移位输出,当cs为高电平时,dout呈高阻态。busy为系统忙标志端,当cs为低电平,且busy为高电平时,表示ads7843正在进行数据转换;vref参考电压输入端,电压值在+1v到+vcc之间变化;penirq为笔触中断,低电平有效;in3、in4为辅助adc转换输入通道;+vcc为电源输入。
图1 ads7843内部结构
1.2 ads7843的转换时序
ads7843完成一次数据转换需要与微控制器进行3次通信,第一次微处理器通过异步数据传送向ads843发送控制字,其中包括起始位、通道选择、8/12位模式、差分/单端选择和掉电模式选择,其后的两次数据传送则是微控制器从ads7843取出16bita/d转换结果数据(最后四位自动补零),每次通信需要8个时钟周期,完成一次数据转换共需24个时钟周期,图2为ads7843转换时序。
图2 ads7843转换时序
2 ads7843与a255硬件接口
a255微处理器是intel公司生产的第二代基于32位xscale微架构的集成系统芯片(isoc),a255具有高性能、低功耗等优点,它除了xscale微内核外,还集成了许多适用于手持设备市场需要的外围设备。图3为ads7843触摸屏控制器与a255微处理器的硬件连线示意图。当屏触发生时ads7843向a255发出中断请求,由a255响应该中断请求,启动通信过程,读取ads7843的转换结果,从而得到触摸点的坐标。ads7843各信号的时序受外部输入时钟信号频率的影响,一旦外部输入时钟频率固定,各信号的时序便完全确定,因此需要配置a255的接口信号时序,使之完全符合ads7843的时序。
图3 ads7843触摸屏控制器与a255微处理器的连线示意图
3 ads7843驱动程序的设计
linux作为一个宏内核操作系统,其设备驱动都在内核,即系统空间实现,实现方式有两种,一种是将有关的设备驱动程序和数据结构静态地连接在内核映像中;另一种是将具体的设备驱动程序和数据结构独立加以编译,成为可安装的模块,需要时由应用程序通过系统调用动态地予以安装或拆卸。设备驱动的实现方法也有两种,一种是轮询(polling)方式,另一种是中断(inter-rupt)方式,轮询方式对设备的操作完全由cpu掌握,外部设备则完全处于被动状态。中断方式是由外部设备主动提出申请,cpu响应申请后对外部设备进行处理,是现在常用的设备驱动方式。linux的设备驱动具有两个显著的特点,其一是把所有的设备视为一种设备文件,每个设备都呈现于文件系统的/dev目录下,设备驱动与文件操作具有相同的界面和语义,并通过同一组系统调用进行操作;另一个显著特点是linux的设备驱动有着分明的层次和结构。
linux内核的新近版本为设备入口提供了一种特殊的文件系统,即设备文件系统devfs(device file system)。新的devfs机制的优点在于:①各种设备驱动模块动态地向系统登记,设备初始化时在/dev目录下创建设备入口点,移除设备时将其删除。②设备驱动程序可以指定设备名、所有者和权限位。③不需要为设备驱动程序分配主设备号以及次设备号。④当装载和卸载模块时,不再需要运行脚本来创建设备文件,驱动程序自主地管理其设备文件。采用devfs机制的设备驱动程序调用下面的函数来处理设备的创建和删除工作
上一篇:液压传动试验机微机监控系统的研制