具体实施方式
图1显示了一种触控面板系统,包含有触控面板10、触控板控制器12、以及微处理器14。触控面板10上有数个三角形或是梯形的电容电极16。触控板控制器12透过排线,连接到电容电极16。当导电物或是人手碰触或是接近电容电极16时,电容电极16的自电容(self-capacitance)会变化。透过排线,触控板控制器12可以检测到电容电极16的自电容的变化,并据以判定一触控事件的发生,并且可以推算出触控事件的发生位置,而把相对应座标提供给微处理器14。微处理器14则据以执行相对应的动作。
图2A显示触控屏幕20;图2B显示触控屏幕20被手指碰触后,触控面板10所产生的变形。触控屏幕20有触控面板10、固着物24、以及液晶模块(LCM)26。液晶模块26用来显示图案。固着物24可以是一双面胶(double-sidedtape),用来将触控面板10大致固定于液晶模块26上。当手指接触施压在触控屏幕20,因为四周有固着物24的厚度支撑,仅触控面板10中央位置会凹陷而比较接近液晶模块26。
图3显示手指在碰触触控面板10的过程中,检测值Draw的变化。以下将随时间轴的推衍,由左至右描述手指自接近、碰触至远离触控面板10的过程中,触控板控制器12检测对应于一电容电极16的检测值Draw可能产生的自容值变化。对应于左一的触控面板10,当手指还没有碰触到触控面板10时,触控面板10上的电容电极16的自电容大致都没有变化,所以检测值Draw大致为0。当手指接近或一开始碰触到触控面板10时,检测值Draw开始上升。对应于左二的触控面板10,一旦检测值Draw超过一临界值Dthreshold时,触控板控制器12认定一触控事件发生。应特别注意的是,触控板控制器12可以用数个电容电极16的检测值Draw,来求得手指碰触的发生位置的座标。然而对应于左三的触控面板10,当手指按压的程度足以造成触控面板10变形,并因此导致检测值Draw不稳定漂移,如图所示。这样的漂移,可能会导致触控板控制器12所推导出的座标所代表的发生位置,与手指真正碰触触控面板10的发生位置不一致。最后对应于右一的触控面板10,在手指远离触控面板10的过程中,检测值Draw快速的减低,回复到0。
图4举例触控板控制器12所推导出座标所代表的发生位置,其随着手指按压力道而变化。如同图4所示,当手指按压力道愈大时,触控板控制器12所推导产生的发生位置可能会往触控屏幕20中央飘移,远离真正的发生位置。这是因为手指按压程度越大,触控面板10的变形越大。越靠近触控屏幕20的中央,变形所导致的自电容变化越大。所以手指按压程度越大,触控板控制器12所推导出的发生位置便会越向中央飘移。
在以下的本发明的一实施例中,信号处理方法是运用于图1触控面板系统中的触控板控制器12,其检测触控面板10上的三角形或是梯形的电容电极16的自电容变化,并将模拟的检测结果转换成数字的检测值Draw。所以,数字的检测值Draw分别对应电容电极16的自电容变化量。在一实施例中,触控面板10为一单导电层触控面板,其具有一单一透明导电层来形成电容电极16。
在一实施例中,本发明包括一滤波架构,用来对检测值Draw进行低通滤波,据以产生一滤波后值Dfiltered。其后,始采用滤波后值Dfiltered推导出一座标,代表触控事件在触控面板10上的一发生位置。本发明的滤波架构的设计,使得即使检测值Draw因为触控面板10变形而随时间快速抖动,滤波后值Dfiltered也会相对的平稳,所推导出来的发生位置也会比较稳定。甚而,滤波架构的设计使得对于快速点放的压按事件,也就是手指仅接触触控面板10极短时间的触控事件,由滤波后值Dfiltered推导出来的发生位置比起透过检测值Draw推导出来的位置,会相对准确。
在一实施例中,在触控事件发生后一开始的一段时间被设定为学习期间。这一段学习期间内,依据当下的检测值Draw所产生的滤波后向量DAfiltered(ti),滤波架构的起始状态(initialcondition)被设定与更新。在此期间内,尚未设定好起始状态的滤波架构所产生的滤波后值Dfiltered,并不用以推导触控事件的发生位置。直到学习期间结束之后,使用已设定好起始状态的滤波架构进行低通滤波以产生滤波后值Dfiltered,并据以推导触控事件的发生位置,提供给微处理器。在一实施例中,学习期间内,触控板控制器12所推导出来的触控事件发生位置,不提供给微处理器14;在学习期间之后,触控板控制器12提供触控事件发生位置给微处理器14。
在一实施例中,该滤波架构的滤波系数,会随着触控事件的发生位置的移动速度而变化。举例来说,当移动速度越慢,滤波架构的低通效果就越强(heavy)。
图5显示,在一实施例,手指在碰触触控面板10的过程中,触控板控制器12所产生的检测值Draw以及滤波后值Dfiltered。图5的上半部中的实线显示检测值Draw,其与图3完全相同,于此不再赘述。下半部的实线显示滤波后值Dfiltered,虚线复制了检测值Draw以作为比较。图5中的检测值Draw仅仅对应触控面板10中一电容电极16的自电容变化量。但是业界具有一般知识者可以了解,同一时间触控板控制器12可以产生许多不同检测值Draw,一对一对应到触控面板10的电容电极16。所以,图5中的说明也可以应用到其他的电容电极16。
在图5中,触控事件所发生的触控期间Ttouch-event大致分成两段:学习期间Tlearning与在后的滤波启用期间Tfilter-activated。学习期间Tlearning可更进一步分成两段:起始期间Tini与在后的稳定期间Thf。以下将大概的介绍图5中各时段的动作,稍后会以流程图进行说明。
在时间点ttouch-start,检测值Draw超过了临界值Dthreshold,所以触控板控制器12认定有触控事件发生,而开启整个触控期间Ttouch-event。
于开启触控期间Ttouch-event后,于前段的预设起始期间Tini中,预设的检测值Draw超过临界值Dthreshold且尚在攀升中,处于一暂态而并未达一相对稳定态,此时本发明的触控面板系统尚未启用滤波架构,而直接以检测值Draw作为滤波后值Dfiltered。
待预设的起始期间Tini终结,而开启预设的稳定期间Thf时,本发明的触控面板系统方启用滤波架构,以先前的滤波后值Dfiltered以及当下的检测值Draw,来产生当下的滤波后值Dfiltered。但是,此时的滤波后值Dfiltered,尚不用以推导触控事件的发生位置。
于预设的稳定期间Thf经过后,于随后的滤波启用期间Tfilter-activated中,参考先前的滤波后值Dfiltered以及当下的检测值Draw,来产生当下的滤波后值Dfiltered。而且,此时的滤波后值Dfiltered,会用来推导触控事件的发生位置。在一实施例中,触控事件发生位置相对于时间的变化,大致上可关联于当下触控事件发生位置的移动速度,其可以作为后续滤波架构以及低通效果程度的参考,此部分将于后续图8的相关说明详述。
在一实施例中,当滤波后值Dfiltered低于临界值Dthreshold后,触控板控制器12认定触控事件结束,所以结束了触控期间Ttouch-event,如同图5的时间点ttouch-end所示。
从以上说明可以得知,滤波架构中的滤波后值Dfiltered,从滤波启用期间Tfilter-activated开始,对推导触控事件的发生位置有影响。而滤波启用期间Tfilter-activated中,滤波后值Dfiltered的起始值是在学习期间Tlearning的过程中决定。学习期间Tlearning用来设定滤波启用期间Tfilter-activated中,滤波后值Dfiltered的起始值的期间。
比对图5中检测值Draw及滤波后值Dfiltered的曲线也可以得知,在滤波启用期间Tfilter-activated中,触控板控制器以滤波后值Dfiltered来推导触控事件的发生位置,将会比以未滤波前的检测值Draw,比较没有扰动而更平顺。
图6显示依据本发明一实施例,使用于图1中的触控板控制器12中的信号处理方法30。
信号处理方法30从步骤32开始后,在步骤34把滤波状态(filtercondition)设定为”STOP”,表示触控板控制器12中的一滤波架构停止而没有作用。本实施例的滤波架构藉由以下公式I达成本发明的目的。
DAfiltered(ti)
=a*DAfiltered(ti-1)+(1-a)*DAraw(ti)..........I.
其中,DAraw(ti)表示触控板控制器12在检测时间点ti所产生的数个检测值Draw所构成的一检测值向量;DAfiltered(ti-1)表示在前一次检测时间点ti-1的数个滤波后值Dfiltered所构成的一滤波后向量;DAfiltered(ti)表示在这次检测时间点ti的数个滤波后值Dfiltered所构成的另一滤波后向量;以及,a为值介于0到1之间的一个滤波系数。当a愈小时,滤波架构的低通滤波效果越轻。举例来说,当a为0时,滤波后向量DAfiltered(ti)即等于检测值向量DAraw(ti),也就是随着检测值向量DAraw(ti)而改变,等同于没有滤波效果。在别的实施例中,滤波架构可以执行不同于公式I的其他公式,只要所产生的滤波后向量DAfiltered(ti)为检测值向量DAraw(ti)被低通滤波的结果就可以。
步骤36检测电容电极16,以提供检测值向量DAraw(ti)。检测值向量DAraw(ti)中的每一检测值Draw对应一电容电极16的自电容变化量。
依据检测值向量DAraw(ti),步骤38辨识一触控事件是否发生。举例来说,如果检测值向量DAraw(ti)中有任何一检测值Draw超过临界值Dthreshold,步骤38就认定一触控事件发生,接着执行步骤40,开始了触控期间Ttouch-event;如果检测值向量DAraw(ti)中没有检测值Draw超过临界值Dthreshold,步骤38就认定触控事件没有发生,回到步骤36,来产生下个检测时间点的检测值向量DAraw(ti+1)。
请同时参阅图5与图6。步骤40、44与48透过滤波状态辨识当下时间点是属于触控期间Ttouch-event中的哪一时间点。如果滤波状态为”STOP”,那表示当下是触控期间Ttouch-event中的第一个检测时间点,则进行至步骤42设定滤波状态为”LEARNING”,准备进入学习期间Tlearning。如果滤波状态目前为”LEARNING”,那表示当下处于学习期间Tlearning之内,则进行至步骤46使滤波架构开始学习,产生滤波后向量DAfiltered(ti),作为进入滤波启用期间Tfilter-activated时的起始值。并于预设的学习期间Tlearning经过后,设定滤波状态为”START”。步骤46的详细运作容待后述。如果滤波状态为”START”,那表示当下处于滤波启用期间Tfilter-activated之内,则进行至步骤50执行公式I的滤波架构来产生滤波后向量DAfiltered(ti),接着使检测值向量DAraw(ti)被更新为等于滤波后向量DAfiltered(ti)。如果滤波状态不属于预先所定义的”STOP”、”LEARNING”、或”START”,则步骤60认定有错误发生,结束整个信号处理方法。
步骤52依据检测值向量DAraw(ti),推估一座标(x(ti),y(ti)),代表触控事件在触控面板上的发生位置。这座标(x(ti),y(ti))可以由触控板控制器12输出至微处理器14。步骤54可以依据现在的座标(x(ti),y(ti))与先前的座标(x(ti-1),y(ti-1)),来设定当下的移动状态,例如当下发生位置的移动速度,同时可以据以设定滤波系数的值,以改变滤波架构的滤波程度的轻重。
步骤56辨识触控事件是否结束。类似的,如果检测值向量DAraw(ti)中有任何一检测值Draw超过临界值Dthreshold,步骤56就认定触控事件持续发生,接着回到步骤36;如果检测值向量DAraw(ti)中没有检测值Draw超过临界值Dthreshold,步骤56就认定触控事件已经结束,步骤58就把滤波状态设定为”STOP”,接着一样回到步骤36。
从信号处理方法30中可以发现,步骤42与46没有去更新检测值向量DAraw(ti),也就是说,在此期间内步骤52对座标(x(ti),y(ti))的推导是基于原始的量测值向量DAraw(ti)。直到步骤50以滤波后向量DAfiltered(ti)更新检测值向量DAraw(ti),步骤52对座标(x(ti),y(ti))的推导才是基于更新后的量测值向量DAraw(ti)。由于步骤50是以滤波后向量DAfiltered(ti)更新检测值向量DAraw(ti),所以之后步骤52所推导出的座标(x(ti),y(ti))就有了低通滤波的效果,比较不会飘移。
此外,在滤波启用期间Tfilter-activated时,因为检测值向量DAraw(ti)在步骤50被更新为等于滤波后向量DAfiltered(ti),所以步骤56等同是依据滤波后向量DAfiltered(ti)来辨识触控事件是否结束。
图7举例说明图6中的步骤46,其在学习期间Tlearning内执行。步骤79先设滤波系数a为一较大值,譬如说0.8。这意味着在学习期间Tlearning内,如果有执行滤波架构,也是执行重低通滤波。在一实施例中,学习期间Tlearning为一触控事件发生后的40个检测时间点。
步骤80辨识当下是否属于预先定义的起始期间Tini中。譬如说,当下为一触控事件发生后的10个检测时间点内,则步骤80的答案为”是”,进入步骤83,其直接以检测值向量DAraw(ti)来作为滤波后向量DAfiltered(ti)。如果当下为一触控事件发生后的11~40个检测时间点内,意味着当下属于预先定义的稳定期间Thf中,则进入步骤82,辨识当下是否为学习期间Tlearning中的最后一个检测时间点。不论步骤82的结果为何,步骤84都会执行公式I的滤波架构,以重滤波的方式,依据先前的滤波后向量DAfiltered(ti-1)以及当下的检测值向量DAraw(ti),来产生当下之滤波后向量DAfiltered(ti)。如果步骤82认为当下为学习期间Tlearning中的最后一个检测时间点,步骤86把滤波状态设定为”START”,以便在下个检测时间点时,可以进入图6中的步骤50。于步骤82认为当下为学习期间Tlearning中的最后一个检测时间点,而进行步骤86把滤波状态设定为”START”,紧接着于步骤84产生之滤波后向量DAfiltered(ti)即作为滤波架构的起始状态(initialcondition),完成学习期间设定滤波架构起始状态的任务。
图8举例说明图6中的步骤54。步骤62先计算出当下座标与先前座标的位移量d。举例来说,d=squrt((x(ti)-x(ti-1))2+(y(ti)-y(ti-1))2),其中,squrt()表示开平方根。步骤64与66区隔当下的位移量d属于哪一个范围。如果位移量d小于预设的值DS1,表示当下发生位置的移动速度近乎0,则移动状态设定为”NO-MOVING”(步骤68),并且把滤波系数a设定为一较大值,譬如说0.8(步骤90)。此时,滤波架构成为重滤波。如果位移量d介于值DS1与DS2之间,移动状态设定为”SLOW-MOVING”(步骤70),滤波系数a设定为一中间值,譬如说0.5(步骤94)。此时,滤波架构成为中滤波。如果位移量d高于预设的值DS2,则移动状态设定为”FAST-MOVING”(步骤72),滤波系数a设定为一较小值,譬如说0.1(步骤96)。此时,滤波架构成为轻滤波。换言之,当触控事件的发生位置的移动速度很慢时候,图6中的步骤50会以比较重的滤波架构,来产生滤波后向量DAfiltered(ti),并据以更新检测值向量DAraw(ti)以及计算出后续的触控事件发生位置;所以,后续推算出的发生位置会比较稳定,不受触控面板10变形的噪声影响。相反的,当发生位置的移动速度很快的时候,图6中的步骤50会以比较轻的滤波架构,来产生滤波后向量DAfiltered(ti),并据以计算出后续的触控事件发生位置;所以,后续推算出的发生位置会比较快追上触控事件的真正发生位置,比较能够反映真实情形。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。