Linux输入子系统在触摸屏驱动上的实现_第1页
Linux输入子系统在触摸屏驱动上的实现_第2页
Linux输入子系统在触摸屏驱动上的实现_第3页
Linux输入子系统在触摸屏驱动上的实现_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3期於琪建.等:LhlLX输入子系统在触摸屏驱动上的实现33机 电 工 程M echan ial& E Metrical Engiiet*riigM agazheLinux输入子系统在触摸屏驱动上的实现於填建,张海峰(杭州电子科技大学电子信息学院浙江杭州310018)摘 要:为了简化传统Lhux驱动程序设计及便于对驱动模块的管理与维护,采用了基于内核对象的输 入子系统,完成了 Lhux设备驱动框架,改进了传统基于文件操作接口的驱动程序设计方法,提出了只 需向系统报告输入事件的开发方法.并顺利地实现了鮭摸驱动的开发。试验结果表明,该驱动运行稳定 并能精确控制触摸屏。关键词:设备驱动;设

2、备模型;输入子系统:触摸屏中图分类号:TP316文献标识码:A文章编号:1001- 4551( 2(X)9 ) 03- (X)32- 04Realization of buch screen s driver widi L iiux hput subsystonYU Q 4-jian HANG H a-i-fengSchool <f E lectron ics hifotn a lion H anfzhou I) ianzi Un Persil); angzhou 31001 8 Ch ha )Abstract A in hg al ship lily iig dir drsipi of

3、 lm<lili>na I L iiux drker «iri<l (ontrimliig to in anagtin ent ami rn ail lauoicr of the (lrke niodej us hg llie iiput subsystan liaseil <11 kernel <i)(he Liiux dwice drker s fnnn w oik was ti lfil(1 I lie IrnditkviaI ni etlnxl cciicenied n iii lie iiterlacvs of file qieratbns w

4、 as in pn)e(l 1'lie meixMl of onK re|x)rliig tlie input ev«it to lie Liiux synttni was |M<)|x)sal The dr her w as success 111 lk (levebpul The lesl n*su Its iidicalr dial the(I river w oiks w elj ami it can c<ik tro) tie k)u(h sen-en prre HehK W words dev ice dr Ker <lev i<v iiK

5、nlej i 屮 ul subsyslnn t>u(h sciven第3期於琪建.等:LhlLX输入子系统在触摸屏驱动上的实现33第3期於琪建.等:LhlLX输入子系统在触摸屏驱动上的实现33轴占波岌射器 袖占渡按收戏、柚由淡发射器指按卜处反射条纹收稿日期:2(X)8- 09- 24作者简介:於炭建(1933-).男,浙江台州人主要从事电子信息系统集成方面的研究.E-mail qijianlll5 yahoo amt cn 通诱A廉辱轿臥副教撮硕L生导师片严卩日hfzhaiij<)81 hdu «lu pi.J 1994-2012 China Academic Journ

6、al Electronic Publishing House. All rights reserved, 0引言在嵌入式系统屮,触摸屏具仃轻便、反应速度快、 节省空间、易于交流等优点,成为了以简单、方便、口然 的一种人机交互方式。1前,触摸屏仃4种类型:电阻 式触摸屏、电容感应式触摸屏、红外线式触模加以及丿、 面声波式触摸屏。它们的实现材料不同,但在实现原 理上都是一致的。本研究主要实现在嵌入式ARM( S3C2440)下的 触摸屏驱动程序,由于S3C2440芯片上已仃触模屏的 接口,为触摸屏驱动的实现创造了条件。1表而声波式触摸屏本研究中的触摸屏采用了三星公司的I.TV350QV 表而声波式

7、触摸屏。其结构山触摸屏幕、声波发生器、 反射条纹和声波接收器组成。触摸屏幕是一块玻璃平 板;声波发牛器是一种能发送跨越屏幕表面的高频声 波的能量器。一般在屏幕的左上角和右下角各【占1定了 竖直和水平方向的声波发射器右上角则固定了 2个 相应的声波接收器。触模屏的四周则刻仃45。角的反 射条纹,如图1所示。*轴 樓收ttrt图1表面声波式触摸屏原理以X轴为例,当手指去触摸屏幕时,将吸收相应 位世的声波能就.声波信号将衰减.此X轴声波接收 器接收到的波形在时间/上形成一个缺I,通过确定 缺口位置即得触摸屏坐标。2 S3C2440触摸屏接口S3C2440芯片支持触摸屏的接其包含触摸屏控制器、4个外部

8、场效应管及1个外部电压源,具体连 接町见芯片手册上的ADC和触摸屏接口操作框图小。该触模屏接口有4种工作模式口:(1) 正常转换模式:用于通用A/D转化;(2) 单独X 转化模式.先进行X模式转换,等X 坐标转换完成之后,产生ADC屮断,然后进入丫模式转 换.将丫坐标转换完成之后,又产生一次ADC中断:(3) X 门动转换模式.触摸屏H动地转换X坐 标和y坐标;(4) 等待中断模式:一般触摸屏开始工作后,将处 于此模式。只仃半触摸笔按下时.触摸屏控制器才产 生一个WTJTC中断信号。触摸屏接口工作模式涉及到S3C2440的A/D寄 存器主要竹4个:ADC控制寄存器、ADC触挾拧制俗 存器、AI

9、)C开始延迟寄存器、A1)C数据转化寄存器。 所得坐标将存入A1)C数据转化寄存器屮。3 Lhux字符设备驱动框架设备驱动程序是操作系统内核和底层硕件Z间的 接Ido设备驱动程序为上层应用程序屏蔽了硬件的细 节。Lhux系统中设备驱动程序的设计核心思想是:像 操作n通文件一样对碾件设备进行操作,它提供了相 应文件操作函数的入口点,如open( )、lead( )x write ()、rebase()等 WL imx设$驱动程序可分为字符设备驱动程序、块 设备驱动程序和网络设涪驱动程序,木研究中触摸屏 设备为字符设备。字符设备驱动程序涉及到3个丑要的数据结构 体,即fi lr_o iterati

10、on $ fi le iioda它们之间的关系及 其主要结构成员如图2所示。用户空间的应用程序要实现对设备文件的操作, 就是対位于/dev卜的设备文件进彳j操作。这些设备 文件在内核中就由inode结构表示。当用L iiiux系统 提供的open方法打开一个设备*点文件的时候就会 有表示该文件描述符£1的file结构指向这个node结 构,具体实现方式是经过皿5结构体(目录结构体) 产生关联。町以仃多个文件描述符指向iixxle结构, 也就是一个设备文件可以按不同的方式打开多次。打开设备文件后,上述3个数据结构已建立关联。 对设备文件的读等操作的访问路径为:file- > 的函

11、数实现读冯等操作。L hux系统为了区分各个不同设备采用主设备号 和次设备号來确定设备文件所指的设备。如图2所 示,bode结构体成员dev.t i.rdev就是设备编号。设 备驱动初始化时通过动态分配主设备号函数albc_ chnlev_iion()来获取主设备号,然后ffl cdev_hit() 关联宁符设备和结构体.id终实现字符 设备驱动程序的棊本框架。dcnlr>#A 构体inode结恂休| struct inode inode Tde> 11 rdc11 | struct file opcrahg i op| %:tile结构体1 .1:IstHicf 6lc opcT

12、itfion T op|独?】心加汕切牛L struct denin <icnfr>t.J 111! (eopCTl)(> U-J1 |sm/c 1 PrcadkOl 1图 2 fife_opcrati)nsj file bode关联过程4 Liiiux设备模型与输入子系统Limx 2 6内核的一个重要特色是提供了统一的 内核设备模型,以适应“系统的拓扑结构越来越复杂, 智能电源管理、热插拔以及即插即用的支持要求也越 来越高”的趋势。简单地说,Lhux设备模型是基于内核对象 ject来实现的。借助内核对彖kobjecl机制,内核通过/ sys向用户控件输出设备的各类信息方便了

13、设备的管 理。/sys是sysfs文件系统,它是一个类似于pm(文件 系统的特殊文件系统,用于将系统屮的设备组织成层 次结构,并向用户模式程序提供关于内核数据结构的 详细信息。输入子系统I 5,就是借助于kobjeclL制W建立起 來的一种设备模型。如图3所示,具体宙Drker驱动 层、Input核心层、Evenl处理层3部分组成。D river驱 动层主要将输入设备的数据或信息上报给Inputs心 层;Input核心层由/drer/hput/input c及相关头文件 实现,它对下提供了 Driver驱动层的接I,对上提供了 Event处理层的接口; Event处理层提供文件操作方法, 它负

14、责将数据放到设备缓冲区,用户程序(如 M hGU 1)打开设备节点,读取缓冲区数据。5触摸屏驱动程序的实现屁呻翊加舷th召擁讯血住lk釉卿胎ishi搀rfb觥嘿幅副通祐緞锻掏爛斂,就输入子系统的3层驱动结构中,核心层与K- 处理层已山内核实现.故采用设备模型与输入子 系统机制以简化设备驱动程斥的设计。现在只需实34*机 电 工 程第26卷用户亦间丨用尸少岸I内昭间|j、en吟理凶nput H 4L'7I "Bn、er驰动已图3 Input?系统层次结构可以完成触摸屏驱动程序的设计。Driver驱动层主耍实现向内核注册输入设备以实 现输入设备模型,并提供将触摸屏采集到的数据上报

15、 Inpu I核心层的方法。5 1输入设备的注册与注销I) river驱动层通过调用如下接口函数来向输入子 系统屮注册和注销输入设涪:(1) nput_ivgiste!(levk,e();(2) nput_unregistei(lev icr()。以上两个萌数调用的参数为inpu t_<lev结构体(在 drirer/input/hput h中定义)。注册完成之后,内核为 输入设备在Events理层关联了相应的文件操作方法 (在/driver/input/tadev c中实现)。这样,当设备成功 注册后,就会在/(I伙下生成相应的设备文件,从而形 成Lhux设备驱动程序基本框架。5 2触

16、摸屏驱动实现过程如图4所示首先触摸屏处于等待中断模式上。 当触摸笔按下的时候触摸屏将产生一个中断NT. TCo然后触摸屏将触发进入x/r轴单独转化模式,也 就是X X模式转换完成之后,将产工一个NT.ADC中 断此时将进入y模式转换当模式转换完成庇将 又会产生一个M.ADC +断。此时进入中断程序, 将分别取得X坐标值与y坐标值。然后驱动程序调 用接口函数hput_rep)rt_abs(),将取得的值上报给Iil pul核心层。* INT ADC卜.y坐标先后完成转换II intJtc 敏換电按F图4 D rivw驱动层9 Input核心层关联Input心层找出对应的M件处理函数.山Event

17、 处理层将数据放到设备缓冲区,如图5所示。上层驱 动处理函数将在应用程序(如M bGUI)调用驱动的 冲区而后应用程)¥根据触摸屏的坐标进行数据校准 (坐标转换),赧终光标显示在触摸笔所指的正确的位 置上。険用屛饭冲I可而工件h述符de、点)file operation结构lEvcneUffl图5 Events理层与应用程序关联驱动中关键实现函数说明如下:(1) hpuLreport_al)s()函数,是实现 Driver驱动 层向In pu t核心层上报采集到的数据关键函数.也是 输入子系统处理输入事件的醺要机制。1)川er驱动 程序在注册输入设备前(调用h pu t_regist

18、rr_(levice 函数前)设置输入爭件类型然后Input核心层根据 输入类型关联III应的设备文件操作方法,从而实现 整个驰动。输入子系统设定事件类型主要包括EV_KEY(按 键事件)、EV_REL(相对值,如光标移动)和EV.ABS (绝对值,如触模屏,它工作在绝对坐标系统)。驱动中相关代码如下:i)piil_set_d>s_p<imn s( is dr ABSJC 0 0x3FE 0 0): 设氏绝对坐标X的放小故大值从0 0x3FF(相 应地坐标y设置亦类似)。相关代码如下:iiput_set_al>s_|>aiun s( ts (lev .XBS3 - 0

19、()x3FF: 0 0):当触摸屏触发输入事件后,整个报告过程如下:h|>iit_niM>rt_<J>s( Is <h-v A BS_Kb xp); /V 坐标hput_rv|x>rt_«il)s( Is dev; A BS_Y.t> yp); /坐标iiput_rv|>ort_k( ts <lev HVN JP()l (11 1);Is dev); /4同步(2) 触摸屏输入事件的触发,相关代码如下: iw|u«Liq( HQJU s3c2440_KiLtc 1QF_SMPI,EU dev)IRQJTC是向I. imx

20、系统巾请的屮断号;s3c2440_ isr_t(<是实现相应触发事件的中断处理例程z,实 现上报X、y坐标的任务;RQF_SMPLE_aNDOM指 明中断类3!; tc_acti)n 用于在 /pioc/iiitenupts,|,显示 中断拥仃者:(s dev表明中断指向触摸屏设备结构。AI)C转换完成之后产生的中断的申请两数与此 类似,代码如下:m电禰咗)後歸i勰爲|0駆麴詡智黙霹康能lishing House. All rights reserved. http:/w阳爆.制页)iw|liftst_ in( 1<Q _A1X: s3(244() _ br_a(k lQF_SAM

21、 P112 _ RANDOM b <lw)统恢复供电后或系统结构发生变化JS町亜新按照搜 索树的建立步骤,依照各终端的遥信,車新生成配网树 形结构。2算例验证2 1单点故障下而就以图1所示的配电结构进彳亍模拟验证算 法的仆效性。在图1的不同线段上模拟单点故障,其 结果如表1所示。34*机 电 工 程第26卷34*机 电 工 程第26卷表1单点故障仃故障电流的if点故障区域(H点所围区域)隔离的卩点恢艾供电介闸疔点是否为末梢点1L 448I 4 55 65 6无需合闸L 4 5 66Z后的末梢点6无2 1()1Q 9 16IQ U 16124、6畸变信号畸变信号畸变信号畸变信号注:对于畸变

22、信号的说明.根据故障区域检测规则2如果节点 故判斷此为畸变信号.4 5i 6存在故障电流.则作为父节点的1也必然存在故障电流.34*机 电 工 程第26卷34*机 电 工 程第26卷2 2多点故障对于多点故障同样以图1所示的配电结构进行 模拟,验证算法的有效性(图1中,箭头指向方向为故 障发生点),其结果如表2所示。表2多点故障冇故障电流 的"点故障区域(节点 所出区域)隔离的 节点恢复供电 合闸节点L 4 a S 134,7 和口 144 5i 7. 13无需合闸爭实上,多巫故障同时发生的概率很低,不町能绝 对同时发生,所以也町以把多亚故障当单巫故障处理, 因为单故障处理起来比较容

23、易和安全。3结束语本研究配电肖点间的联络关系生成配电网的 树状拓扑结构,在此茲础上提出了基于树状结构的配 电网故障定位、隔离和恢复算法。该方法充分利用配 电网络的结构特点町动态生成拓扑结构,具仃准确性 高、实时性好、程序设计简单等特点,可适用于单电源、 多电源等开坏运行的配网结构。参考文献(References):1 周羽生.英于FTL:的配电网故障区段判断算法J电力 自动化设备.2(X)0 20(4): 25 - 27.2 刘 键.配电网故障区威判断和隔离的统-算法J.电 力系统自动化,1999 23( 1): 31- 3331唐群冈一种基于FTU的配网故障定位矩阵单元化算法 | J|.重庆大学学报 2(X)6 29( 5): 29- 314卫志农,何桦.配电网故障定位的一种新篦法| J.电力系 统口动化,2001 25( 14): 46- 5(1|5徐肯山电力系统故障诊断及故障恢fiM .北京:中国 电力出版社.2007|6刘 键.毕鹏翔锻海鹏.复杂配电网简化分析与优化 |M .北京:中国电力出版杜.2002|7刘 键倪建立邓水辉配电自动化系统M北京:中 国水利电力出版补2001|8|于建辉周 浩陆 华杭州iokvrfe电网合环问题的 研究J机电工程,2007 24( 10): 54- 57.I编辑:罗向阳34*机 电 工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论