触摸屏驱动综述

上传人:最**** 文档编号:115394412 上传时间:2019-11-13 格式:DOCX 页数:22 大小:496.74KB
返回 下载 相关 举报
触摸屏驱动综述_第1页
第1页 / 共22页
触摸屏驱动综述_第2页
第2页 / 共22页
触摸屏驱动综述_第3页
第3页 / 共22页
触摸屏驱动综述_第4页
第4页 / 共22页
触摸屏驱动综述_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《触摸屏驱动综述》由会员分享,可在线阅读,更多相关《触摸屏驱动综述(22页珍藏版)》请在金锄头文库上搜索。

1、备注:MSPS(million samples per second)表示每秒采样百万次,是转换速率的单位,而转换速率(conversion rate)是指完成一次从模拟量到数字量的AD转换所需要时间的倒数。我们知道S3C6410的ADC最大的A/D转换时钟频率是5MHZ,所以可以计算出一次A/D转换的时间=5*(1/5MHZ)=1us,所以1s中的采样次数=1s/1us=1MSPS,这就是1MSPS的由来。1 电阻式触摸屏的工作原理四线电阻式触摸屏是电阻式家族中应用最广、最普及的一种。其结构由下线路(玻璃或薄膜材料)导电ITO层和上线路(薄膜材料)导电ITO层组成。中间有细微绝缘点隔开,其中

2、下层的ITO与玻璃基板附着,上层的ITO附着在PET薄膜上。当触摸屏表面没有压力时,上下线路处于开路状态。一旦有压力施加到触摸屏表面。上下线路就会导通,控制器通过下线路导电ITO层在X坐标方向上施加驱动电压,通过上线路导电ITO层上的探针,侦测X方向上的电压,由此推算出触点的X坐标。通过控制器改变施加电压的方向,同理可测出触点的Y坐标,从而明确触点的位置。当有物体接触触摸屏表面并施以一定的压力时,上层的ITO导电层发生形变与下层ITO发生接触,该结构可以等效为相应的电路,如下图 图1计算触点的X,Y坐标分为如下两步:. 计算Y坐标,在Y+电极施加驱动电压Vdrive, Y-电极接地,X+做为引

3、出端测量得到接触点的电压,由于ITO层均匀导电,触点电压与Vdrive电压之比等于触点Y坐标与屏高度之比。. 计算X坐标,在X+电极施加驱动电压Vdrive, X-电极接地,Y+做为引出端测量得到接触点的电压,由于ITO层均匀导电,触点电压与Vdrive电压之比等于触点X坐标与屏宽度之比。测得的电压通常由ADC转化为数字信号,再进行简单处理就可以做为坐标判断触点的实际位置。 图22 WINCE触摸屏驱动模型及接口函数2.1 WINCE触摸屏驱动模型WINCE触摸屏驱动模型如下图所示: 图3在WINCE系统中,触摸屏驱动是一种分为MDD(Model Device Driver,模型设备驱动)层和

4、PDD(Platform Device Drvier,平台设备驱动)层的分层驱动。其中MDD层一般不需要修改就可以直接使用,该部分提供DDI接口给GWES调用,而MDD层通过调用PDD层提供的DDSI函数接口来实现自身的功能。MDD层和PDD层除了DDSI函数接口之外,还要通过一些全局变量来协调者两层的工作,比如gIntrTouch和gIntrTouchChanged全局变量就是在PDD层定义,在MDD层和PDD层都有使用。我们在触摸屏驱动中的工作主要是修改PDD层提供给MDD层调用的DDSI函数,这部分的工作主要是采样定时器是否需要更改?LCD屏的分辨率变化后的修改?以及抖动的处理等等这些内

5、容。2.2 MDD层导出的函数接口DDI下面先大概学习DDI函数集1) BOOL ErrorAnalysis( INT32 cCalibrationPoints, /PARM The number of calibration points INT32 *pScreenXBuffer, /PARM List of screen X coords displayed INT32 *pScreenYBuffer, /PARM List of screen Y coords displayed INT32 *pUncalXBuffer, /PARM List of X coords collecte

6、d INT32 *pUncalYBuffer /PARM List of Y coords collected );该函数提供关于触摸屏校准的精确性的信息,在校准触摸屏的时候会调用该函数。它收到一系列的校准屏幕坐标和一个相应的没有校准触点数据(point data),它评估这两个点集数据(屏幕坐标集和校准时候点击时收集的5个触点坐标集,而屏幕坐标集就是注册表中CalibrationData项的内容。)之间的相互关系来决定是否采用当前的触摸数据作为屏幕校准坐标值,也就是说如果当前点击的5个触点的坐标和之前的屏幕坐标值比较接近,那么就采用新的触点坐标作为屏幕校准坐标值。2) BOOL WINAPI

7、 TouchCalibrate(void)该函数开始触摸屏校准的动作,比如在WINCE的控制面板下,我们点击“笔针”来校准的时候,就会调用该函数来开始触摸屏的校准。3) Void TouchPanelCalibrateAPoint( INT32 UncalX, /PARM The uncalibrated X coordinate INT32 UncalY, /PARM The uncalibrated Y coordinate INT32 *pCalX, /PARM The calibrated X coordinate INT32 *pCalY /PARM The calibrated Y

8、 coordinate )该函数用于把没有校验的坐标转换为校验的坐标,该函数在计算x和y坐标的时候有4个因子是隐藏的,这里是指全变变量v_CalcParam的成员。这样可以为GWES提供像素以下(sub-pixel)的精确度,可以提供字迹识别的精确度的支持。4) VOID TouchPanelDisable(VOID)该函数禁用触摸屏设备,关闭ISR,停止中断和注销事件及其他同步手段,该函数调用了DdsiTouchPanelDisable函数。5) BOOL TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK pfnCallback)该函数启动触摸屏,pfnCa

9、llback是指向处理触摸屏回调函数,此回调函数处理触笔事件,包括触笔按下,或抬起,或是定时器中断时触发的事件,该函数调用了DdsiTouchPanelEnable函数。6) BOOL TouchPanelGetDeviceCaps( INT iIndex, LPVOID lpOutput)该函数用于返回触摸屏设备支持的具体功能,相关的参数描述如下: 图4该函数调用了DdsiTouchPanelGetDeviceCaps函数。7) TouchPanelInitializeCursor函数该函数提供一个机会给触摸屏驱动在初始化的时候移动光标。8) Void TouchPanelPowerHand

10、ler(BOOL bOff)该函数处理电源状态改变的通知,bOff若为TRUE,表示关闭电源,为FALSE,表示打开电源,主要是把触摸屏控制器是否设置为没有操作的模式,以及是否开启定时器,该函数调用了DdsiTouchPanelPowerHandler函数来处理。9) TouchPanelReadCalibrationAbort函数该函数停止当前对TouchPanelCalibrateAPoint函数的调用。10) BOOL TouchPanelReadCalibrationPoint(INT *pRawX,INT *pRawY该函数开始获取一个校准点的处理,pRawX指向没有校准的x坐标值,

11、pRawY指向没有校准的y坐标值。该函数促使设备驱动提交触笔按下和抬起之间最后有效的x和y坐标给校准回调函数11) )BOOL TouchPanelSetCalibration ( INT32 cCalibrationPoints, /PARM The number of calibration points INT32 *pScreenXBuffer, /PARM List of screen X coords displayed INT32 *pScreenYBuffer, /PARM List of screen Y coords displayed INT32 *pUncalXBuff

12、er, /PARM List of X coords collected INT32 *pUncalYBuffer /PARM List of Y coords collected)该函数初始化全局变量v_CalcParam的校准信息,我们可以调用TouchPanelCalibrateAPoint函数使用这些信息来转换非校准点为校准点,该函数会调用ErrorAnalysis函数。cCalibrationPoints:指示校准点的数量。pScreenXBuffer:列出(Array)屏幕的x坐标。pScreenYBuffer:列出(Array)屏幕的y坐标。pUncalXBuffer:列出(Ar

13、ray)采集的x坐标。pUncalYBuffer:列出(Array)采集的y坐标。12) BOOL TouchPanelSetMode(INT iIndex,LPVOID lpInput)该函数设置触摸屏设备的模式信息,比如设置低采样率还是高采样率,设置触摸屏驱动的IST为高优先级还是正常的优先级。该函数调用了DdsiTouchPanelSetMode函数。2.3 PDD层导出的函数接口DDSI1) DdsiTouchPanelAttach函数当触摸屏驱动的MDD层入口收到DLL_PROCESS_ATTACH消息的时候会调用该函数,该函数在这里直接返回0。2) DdsiTouchPanelDe

14、tach函数当触摸屏驱动的MDD层入口收到DLL_PROCESS_DETACH消息的时候会调用该函数,该函数在这里直接返回0。3) DdsiTouchPanelEnable函数该函数被MDD层的TouchPanelEnable函数调用来做一下的动作 为需要用的GPIO、ADC、PWM和中断寄存器分配虚拟内存空间。 为触摸屏中断(触笔的按下或抬起)和定时器中断申请对应的逻辑中断号,分别赋值给gIntrTouch和gIntrTouchChanged。 配置触摸屏控制器、中断控制器和PWM的寄存器。4) DdsiTouchPanelDisable函数该函数禁用触摸屏设备,也就是防止随后的触摸采用的产生,并且关闭对触摸屏硬件的供电,其他必须的动作需要视具体特征的触摸屏硬件来定了。5) DdsiTouchPanelGetDeviceCaps函数该函数被TouchPanelGetDeviceCaps函数调用来获取触摸屏设备支持的具体功能,见图4的描述。6) VOID DdsiTouchPanelGetPoint(TOUCH_PANEL_SAMPLE_FLAGS *pTipState, INT *pUncalX, INT *pUncalY)该函数返回最新获得的点坐标并且此点的点击状态信息,点击状态的值如下定义: 图57)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号