L inux框架下的触摸屏设备驱动程序; 论述了选用触摸屏作为输入的MiniGU I应用程序的编写办法。
规划的触摸屏接口已成功应用在毛病诊断仪器产品上, 增强了仪器的人机交互功用, 方便了现场操作人员运用。
在现代化生产中, 为了保证机械设备安全可靠地运转, 一般要选用合适的仪器仪表, 运用毛病诊断技能及时发现毛病, 并采纳合理的修理或维护措施来排除毛病, 防备和防止事端的发生。依据对仪器尺度、便携性和操作方便性的考虑, 在工业范畴如煤炭、钢铁、冶金、电力、化工等职业中很多的仪器仪表和设备, 都逐步选用触摸屏作为体系的输入设备。
针对这一状况, 作者在开发面向机械毛病诊断的智能仪表过程中, 对触摸屏输入接口进行了研讨。规划了四线 处理器的接口电路, 剖析了Linux框架下的字符设备驱动程序规划原理, 完结了触摸屏的接口驱动程序开发, 并规划了用触摸屏作为输入设备的MiniGU I用户程序。触摸屏作为仪器的输入设备, 人机交互开门见山, 大大方便了现场操作人员的运用。
依据作业原理和传输介质的不同, 触摸屏首要分电阻式、电容式、红外线式以及外表声波式等多种类型。电阻式触摸屏是一块4层通明的复合薄膜屏,如图1所示。下面是玻璃或有机玻璃构成的底层; 上面是一层外外表经过硬化处理然后润滑防刮的塑料层; 中心是两层金属导电层, 在导电层之间有许多细微的通明阻隔点把两层离隔。两个金属导电层是触摸屏的作业面, 其两头各涂有一条银胶, 称为触摸屏作业面的一对电极。四线式触摸屏的X 作业面和Y 作业面别离加在两个导电层上, 共有4根引出线, 别离连到触摸屏的X 电极对和Y 电极对上。在触笔触摸屏幕时, 两导电层在触摸点处触摸。电阻式触摸屏作为输入设备与显示屏合作运用时, 其作业的本质便是经过丈量X、Y两个方向电阻的分压, 确认触摸屏的触点坐标, 并将该坐标映射到显示屏坐标上, 然后完结人机交互。因为电阻式触摸屏作业面与外界彻底阻隔, 受环境影响小, 所以具有不怕尘埃和水汽、稳定性高、不漂移等长处, 特别合适工业现场运用。
在规划过程中, 选用ADS7843 作为触摸屏接口的AD转化芯片,它具有12 位的转化精度, 最大支撑4 096 ×4 096点阵的LCD, 满意仪器规划要求。
仪器体系处理器选用Intel Xscale架构的PXA255处理器,用其GPIO口模仿SPI接口与ads7843进行通讯。其接口原理如图2所示。ADS7843完结收集通道的切换和触摸点处电压的收集, 其操作时序首要由操控字输入、电压收集和模数转化组成, 详见参考文献。只要在驱动程序中依据时序要求向D IN口发送操控字, 即可从DOUT处得到相应通道的收集成果。
Linux驱动程序是体系内核的一部分, 它把软件和硬件别离开来, 并向上供给应用程序拜访硬件的通讯接口, 向下办理维护体系硬件。触摸屏在Linux下被界说为字符设备, 其驱动首要完结触点电压的收集, 并向用户空间传递X 坐标、Y坐标和笔动作(按下、抬起或拖拽) 数据。当触笔按下时, ADS7843的11脚输出低电平, 触发PXA255通用IO口的12脚发生外部中止, 敞开定时器, 完结触摸屏的动作。触摸屏的驱动流程如图3所示。
驱动的进口函数为ads7843 _ ts_ init ( ) , 在该函数中,初始化I/O口, 注册笔中止和设备节点, 完结设备文件体系创立规范字符设备的初始化作业[ 8 - 10 ].触摸屏设备操作的结构经过ads7843_ts_fop s界说。
当触摸屏设备被翻开时, 首要履行到ads7843_ts_open ( )函数, 并在该函数中, 初始化一个缓冲区, 用于存储坐标数据。在触摸屏被按下后, 体系首要触发中止, 在ads7843_ts_interrup t ( )中止程序中, 判别in_timehandle全局变量的状况, in_ timehandle在定时器函数中被改动, 也便是说进入中止后, 先经过定时器延时20ms, 完结触摸屏的软件去抖, 再判别触摸屏是否被按下。然后经过read_xy ( )函数别离切换至X和Y 通道, 完结触点电压的AD转化, 并读取12 位坐标值。
应用程序调用read ( ) 函数时, 进入驱动的ads7843_ts_read ( )接口函数。在该接口函数中获取采样成果, 判别是否要对坐标进行校准, 将终究成果写入到缓冲区中, 并经过copy_to_user ( )函数将其从内核空间复制到用户空间, 以使应用程序可以运用。在ads7843_ts_read ( )函数中选用了非堵塞型操作, 使得在没有数据抵达的时分当即回来, 然后用异步触发fasync ( )来告诉数据的到来。ads7843 _ ts_poll ( )函数用于驱动程序的非堵塞操作, ads7843_ts_fasync ( )函数用于驱动异步触发。ads7843_ts_ioctl ( )函数中, 供给了可从用户态操控的参数, 如触摸屏是否在驱动中校准、屏幕的最大最小坐标值等。ads7843_ts_release( )函数用来封闭触摸屏设备。
Copyright© 2017 球王会体育平台入口(球王会·中国)球王会体育官方网站