发明内容
本发明实施例提供一种电容触摸传感器抗干扰的方法和设备,用以解决现有技术中存在的在电容触摸传感器工作时,无法对强噪声进行抗干扰,从而降低了判断按键状态的准确性的问题。
本发明提供一种电容触摸传感器抗干扰的方法,包括:
实时采集n个电容充放电周期的原始数据,并判断采集的所述原始数据是否包含噪声,其中n为正整数;
若采集的所述原始数据不包含噪声,则根据第一滤波数据,确定当前的电容基准值,其中所述第一滤波数据是对所述原始数据进行滤波得到的;
根据所述当前的电容基准值,判断是否有触摸操作。
较佳地,若之前未确定过电容基准值,根据第一滤波数据,确定当前的电容基准值,包括:
将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值。
较佳地,若之前确定过电容基准值,所述实时采集n个电容充放电周期的原始数据之后,判断采集的所述原始数据是否包含噪声之前,还包括:
确定由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值;和/或
确定由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值不大于第一触摸判断门限值;
所述根据第一滤波数据,确定当前的电容基准值,具体包括:
根据第一滤波数据,确定电容基准值,并用本次确定的电容基准值作为当前的电容基准值。
较佳地,该方法还包括:
若由所述第一滤波数据确定的本次充放电时间的电容值大于当前的电容基准值,且由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值大于第一触摸判断门限值,则判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值,其中M为大于1的正整数,所述第二滤波数据为对得到所述第一滤波数据之后M次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有按下操作;
否则,返回判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值的步骤。
较佳地,确定有按下操作之后,还包括:
判断之后采集的n个电容充放电周期的原始数据是否包含噪声;
若n个电容充放电周期的原始数据包含噪声,则确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
较佳地,判断之后采集的n个电容充放电周期的原始数据是否包含噪声之后,还包括:
若n个电容充放电周期的原始数据不包含噪声,则判断由第三滤波数据得到的X个电容值是否小于第二触摸判断门限值,其中X为大于1的正整数,所述第三滤波数据为对采集到n个电容充放电周期的原始数据不包含噪声之后,X次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有松开操作;
否则,确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
本发明实施例提供的一种电容触摸传感器抗干扰设备,包括:
电容计数器,用于实时采集n个电容充放电周期的原始数据;
数据处理器,用于对采集的原始数据进行滤波;
噪声检测器,用于判断采集的所述原始数据是否包含噪声,其中n为正整数;
基准值初始化及追踪更新电路,用于当采集的所述原始数据不包含噪声时,根据第一滤波数据,确定当前的电容基准值,其中所述第一滤波数据是对所述原始数据进行滤波得到的;
按键状态检测电路,用于根据所述当前的电容基准值,判断是否有触摸操作。
较佳地,所述基准值初始化及追踪更新电路具体用于:
若之前未确定过电容基准值,将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值。
较佳地,所述噪声检测器具体用于:
若之前确定过电容基准值,在确定由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值;和/或确定由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值不大于第一触摸判断门限值后,判断采集的所述原始数据是否包含噪声;
所述基准值初始化及追踪更新电路具体用于:
根据第一滤波数据,确定电容基准值,并用本次确定的电容基准值作为当前的电容基准值。
较佳地,所述按键状态检测电路具体用于:
若由所述第一滤波数据确定的本次充放电时间的电容值大于当前的电容基准值,且由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值大于第一触摸判断门限值,则判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值,其中M为大于1的正整数,所述第二滤波数据为对得到所述第一滤波数据之后M次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有按下操作;
否则,返回判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值的步骤。
较佳地,所述噪声检测器还用于:
确定有按下操作之后,判断之后采集的n个电容充放电周期的原始数据是否包含噪声;
所述按键状态检测电路还用于:
若n个电容充放电周期的原始数据包含噪声,则确定处于按下状态,并触发所述噪声检测器执行判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
较佳地,所述按键状态检测电路还用于:
若n个电容充放电周期的原始数据不包含噪声,则判断由第三滤波数据得到的X个电容值是否小于第二触摸判断门限值,其中X为大于1的正整数,所述第三滤波数据为对采集到n个电容充放电周期的原始数据不包含噪声之后,X次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有松开操作;
否则,确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
本发明实施例通过判断采集的所述原始数据是否包含噪声,采集的所述原始数据不包含噪声,则根据第一滤波数据,确定当前的电容基准值。由于在采集的所述原始数据不包含噪声时,才根据第一滤波数据,确定当前的电容基准值,从而减少了强噪声对电容基准值的影响,能有效的克服强噪声干扰的影响,提高了按键状态判断的准确性,保证电容触摸传感器在强干扰环境下可靠探测触摸动作的能力。
具体实施方式
本发明实施例通过判断采集的所述原始数据是否包含噪声,采集的所述原始数据不包含噪声,则根据第一滤波数据,确定当前的电容基准值。由于在采集的所述原始数据不包含噪声时,才根据第一滤波数据,确定当前的电容基准值,从而减少了强噪声对电容基准值的影响,能有效的克服强噪声干扰的影响,提高了按键状态判断的准确性,保证电容触摸传感器在强干扰环境下可靠探测触摸动作的能力。
下面,结合附图对本发明实施例进行详细说明。
图1为本发明实施例提供的电容触摸抗干扰的方法包括:
步骤100、实时采集n个电容充放电周期的原始数据,并判断采集的所述原始数据是否包含噪声,其中n为正整数;
步骤101、当采集的所述原始数据不包含噪声时,根据第一滤波数据,确定当前的电容基准值,其中所述第一滤波数据是对所述原始数据进行滤波得到的;
步骤102、根据所述当前的电容基准值,判断是否有触摸操作。
其中,本发明实施例判断采集的原始数据是否包含噪声的方法有很多,下面列举一种:
通过噪声检测器进行检测,其中噪声检测器用m*k的暂存器暂存输入的原始数据,m为原始数据的个数,k用来平衡一次噪声检测器完成第一次方差计算的速度和可靠性,计算m*k个原始数据的方差,并与干扰噪声阈值进行比较,如果方差比干扰噪声阈值大,则表示所述输入的原始数据有噪声,否则,表示所述输入的原始数据无噪声。在实施中,可以将有噪声的情况标记为1,无噪声的情况标记为0。
需要说明的是,噪声检测方法并不局限于方差的比较,任何噪声检测方法都适用本发明实施例。
其中,电容基准值包括两种,初始电容基准值和更新的电容基准值,初始电容基准值是第一次确定的当前电容基准值,更新的电容基准值是考虑触摸传感器所处环境变化不断调整的电容基准值。
下面针对不同的情况分别进行说明。
情况一、初始电容基准值是第一次确定的当前电容基准值,即之前未确定过电容基准值。
具体的,当采集的所述原始数据不包含噪声时,将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值。
其中,在根据所述原始数据确定的本次充放电时间的电容值时,将采集的n个电容充放电周期的原始数据进行滤波处理,以滤除若干个最大值和最小值,将剩余的所有原始数据取平均,得到本次充放电时间的电容值。
在实施中,可以通过噪声检测器判断采集的所述原始数据是否包含噪声,通过数据处理器对原始数据进行滤波处理并得到本次充放电时间的电容值。
其中,本发明实施例的数据处理器设置有长度为m的原始数据暂存器,可以对m个原始数据进行滤波,滤除其中若干个最大值和最小值,将剩余值取平均来表征这段充放电时间的电容值(时间长度为m*n*t)。较佳地,本实施例中m=16。
较佳地,上述m*k的暂存器为FIFO(firstinfirstout,数据是按照先进先出的顺序进入数据暂存器,每次更新m个原始数据),这样当m*k个数据完成第一次方差计算后,噪声检测器就能够通过FIFO循环方差计算过程,从而指示出每一个数据处理器的输出点是否可靠。对于k的具体取值,可以根据噪声检测器完成第一次方差计算的速度和可靠性的要求设定。
情况二、更新的电容基准值是考虑触摸传感器所处环境变化不断调整的电容基准值,即之前确定过电容基准值。
具体的,实时采集n个电容充放电周期的原始数据之后,判断由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值和/或判断由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值是否不大于第一触摸判断门限值;
如果确定由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值;和/或确定由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值不大于第一触摸判断门限值,则判断采集的所述原始数据是否包含噪声。
也就是说,只要由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值,以及由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值不大于第一触摸判断门限值,这两个条件至少有一个成立就判断采集的所述原始数据是否包含噪声。
进一步的,根据第一滤波数据,确定当前的电容基准值时,根据第一滤波数据,确定电容基准值,并用本次确定的电容基准值作为当前的电容基准值。
比如当前的电容基准值是A,本次确定的电容基准值为B,则将B作为当前的电容基准值。
在实施中,本发明实施例的方案可以实时判断采集的原始数据是否包含噪声。
在实施中,本发明实施例的方案还可以在需要时判断采集的所述原始数据是否包含噪声。
其中,若两个有一个成立,则表示当前时刻用户无触摸操作;
若都不成立,则表示当前时刻有可能用户有触摸操作。由于有可能是RF干扰导致的,所以需要进行多次判断防抖,提高判断的可靠性,具体防抖方式可以参见下面针对防抖的介绍。
本发明实施例由于只有在无触摸操作情况下,才可更新电容基准值,所以需要将差值与第一触摸判断门限值进行比较,并且在判断无触摸操作时,噪声检测器判断采集的所述原始数据是否包含噪声。
其中,在根据所述原始数据确定的本次充放电时间的电容值时,将采集的n个电容充放电周期的原始数据进行滤波处理,以滤除若干个最大值和最小值,将剩余的所有原始数据取平均,得到第一滤波数据,并根据第一滤波数据得到本次充放电时间的电容值。较佳地,将得到的第一滤波数据作为本次充放电时间的电容值。
在根据第一滤波数据,确定当前的电容基准值时,判断由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值的绝对值是否小于自然噪声阈值;
如果小于自然噪声阈值,则表示当前环境只受到自然噪声干扰,将所述差值代入累计差值,并判断所述累计差值是否大于第一基准调整门限值;若是,则将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值,并将所述累计差值清零。
在本实施例中,累加器会累计一段时间的电容变化,这段时间如果只有自然噪声,电容的变化是有正有负的,正负会抵消。本发明实施例在累加器累计一段时间,并且在电容变化后更新电容基准值,这样可以保证不会很频繁的调整基准值。
如果不小于自然噪声阈值,还需要进一步判断由所述第一滤波数据确定的本次充放电时间的电容值是否小于当前的电容基准值,以及判断所述电容值与所述当前的电容基准值的差值是否小于第二基准调整门限值,如果都不小于,则表示此时按键存在水滴等的干扰,将计数器加一固定步长值,并将所述计数器与计数阈值进行比较,如果所述计数器大于计数阈值,则将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值,并将所述计数器清零。
其中,电容基准值更新是为了适应当前触摸传感器的工作环境,若当前环境存在水滴这一类强干扰时,电容变化值均为正值,累加一段时间的电容基准值后,若累计差值大于第一基准调整门限值,则更新电容基准值。如果某一时刻,擦除水滴影响后,当前环境不存在水滴这一类强干扰,计数器的值在达到计数阈值,需要强制进行电容基准值更新。本发明实施例,有效地解决了在按键过程中,水滴的干扰导致电容基准值不准确的情况。
本发明实施例判断是否有触摸操作时,触摸操作包括按下操作和松开操作。
如果当前没有按下操作,则判断是否有触摸操作时就是判断是否有按下操作;如果当前已经有按下操作,则判断是否有触摸操作时就是判断是否有松开操作。
由于有可能是RF干扰导致的,所以判断是否有触摸操作时需要进行多次判断防抖。具体的:
若由所述第一滤波数据确定的本次充放电时间的电容值大于当前的电容基准值,且由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值大于第一触摸判断门限值,则判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值,其中M为大于1的正整数,所述第二滤波数据为对得到所述第一滤波数据之后M次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有按下操作;
否则,返回判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值的步骤。
在确定有按下操作之后,还需要判断按键什么时候松开。具体的:
在确定有按下操作之后,判断之后采集的n个电容充放电周期的原始数据是否包含噪声;
若n个电容充放电周期的原始数据包含噪声,则确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
判断之后采集的n个电容充放电周期的原始数据是否包含噪声之后,若n个电容充放电周期的原始数据不包含噪声,则判断由第三滤波数据得到的X个电容值是否小于第二触摸判断门限值,其中X为大于1的正整数,所述第三滤波数据为对采集到n个电容充放电周期的原始数据不包含噪声之后,X次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有松开操作;
否则,确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
针对上述过程,本发明实施例可以通过多个器件实现,如图2所示,本发明实施例的电容触摸传感器装置包括:
电容检测点1,所述电容检测点有一个基准电容效应:当手指触摸该点时,相当于给基准电容并联手指寄生的电容,总电容变大;当手指离开所述电容检测点时,该点电容恢复成基准电容,总电容变小。
电容值检测电路2,用于检测电容值的变化,并且将电容值信号转换为数字信号。
电容计数器3,用于对采集的n个电容充放电周期进行计数(假设一个充放电周期为t),以产生后续处理流程所需的原始数据(原始数据表征的时间为n*t)。由于一般电容感应值都比较小,所以需要累积多个周期来进行放大,方便后续处理。较佳地,本发明实施例中的n=17。
数据处理器4,用于对采集的原始数据进行滤波。
比如,本发明实施例的数据处理器可以是中值滤波器。在实施中,中值滤波器有长度为m的原始数据暂存器,中值滤波器对m个原始数据进行滤波,滤除其中若干个最大值和最小值,将剩余值取平均来表征这段充放电时间的电容值(时间长度为m*n*t)。较佳地,本实施例中m=16。
噪声检测器5,设置有长度为m*k的原始数据暂存器,可以对m*k个原始数据统计方差,如果方差大于干扰噪声阈值,那么噪声检测器输出为1;如果方差小于干扰噪声阈值,那么噪声检测器输出为0。
在实施中,本发明实施例的噪声检测器5可以实时判断采集的原始数据是否包含噪声。进一步的,其他模块可以根据需要查看噪声检测器5的判断结果。
在实施中,本发明实施例的噪声检测器5还可以在其他模块需要查看判断结果时,判断采集的所述原始数据是否包含噪声,而不是实时判断。
其中,m*k的暂存器为FIFO(firstinfirstout,数据是按照先进先出的顺序进入数据暂存器,每次更新m个原始数据),这样当m*k个数据完成第一次方差计算后,噪声检测器就能够通过FIFO循环方差计算过程,从而指示出每一个数据处理器的输出点是否可靠。对于k的具体取值,可以根据噪声检测器完成第一次方差计算的速度和可靠性的要求设定。
基准值初始化及追踪更新电路6,用于根据数据处理器和噪声检测器的输出,依据设定的电容基准值初始化流程图确定按键电容的基准值;以及在传感器工作过程中按照电容基准值更新方法流程图追踪更新基准值的变化,以适应温度、湿度等环境因素变化。
按键状态检测电路7,用于根据数据处理器、噪声检测器、基准值初始化及追踪更新电路的输出,进行按键状态判断和输出。
具体的,电容计数器3,用于实时采集n个电容充放电周期的原始数据;
噪声检测器5,用于判断采集的所述原始数据是否包含噪声,其中n为正整数;
数据处理器4,用于对采集的原始数据进行滤波;
基准值初始化及追踪更新电路6,用于当采集的所述原始数据不包含噪声时,根据第一滤波数据,确定当前的电容基准值,其中所述第一滤波数据是对所述原始数据进行滤波得到的;
按键状态检测电路7,用于根据所述当前的电容基准值,判断是否有触摸操作。
较佳地,所述基准值初始化及追踪更新电路6具体用于:
若之前未确定过电容基准值,将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值。
较佳地,所述噪声检测器5具体用于:
若之前确定过电容基准值,在确定由所述第一滤波数据确定的本次充放电时间的电容值不大于当前的电容基准值;和/或确定由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值不大于第一触摸判断门限值后,判断采集的所述原始数据是否包含噪声;
所述基准值初始化及追踪更新电路6具体用于:
根据第一滤波数据,确定电容基准值,并用本次确定的电容基准值作为当前的电容基准值。
较佳地,所述基准值初始化及追踪更新电路6具体用于:
若由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值的绝对值小于自然噪声阈值,将所述差值代入累计差值,并判断所述累计差值是否大于第一基准调整门限值;
若是,则将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值,并将所述累计差值清零。
较佳地,所述基准值初始化及追踪更新电路6具体用于:
若由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值的绝对值不小于自然噪声阈值,并且所述原始数据确定的本次充放电时间的电容值小于当前的电容基准值,并且所述电容值与所述当前的电容基准值的差值大于第二基准调整门限值,则计数器加一固定步长值;
若所述计数器大于计数阈值,则将由所述第一滤波数据确定的本次充放电时间的电容值作为当前的电容基准值,并将所述计数器清零。
较佳地,按键状态检测电路7,具体用于:
若由所述第一滤波数据确定的本次充放电时间的电容值大于当前的电容基准值,且由所述第一滤波数据确定的本次充放电时间的电容值与当前的电容基准值的差值大于第一触摸判断门限值,则判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值,其中M为大于1的正整数,所述第二滤波数据为对得到所述第一滤波数据之后M次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有按下操作;
否则,返回判断由第二滤波数据得到的M个电容值是否都大于第一触摸判断门限值的步骤。
较佳地,所述噪声检测器5还用于:
确定有按下操作之后,判断之后采集的n个电容充放电周期的原始数据是否包含噪声;
所述按键状态检测电路还用于:
若n个电容充放电周期的原始数据包含噪声,则确定处于按下状态,并触发所述噪声检测器5执行判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
较佳地,所述按键状态检测电路7还用于:
若n个电容充放电周期的原始数据不包含噪声,则判断由第三滤波数据得到的X个电容值是否小于第二触摸判断门限值,其中X为大于1的正整数,所述第三滤波数据为对采集到n个电容充放电周期的原始数据不包含噪声之后,X次采集的n个电容充放电周期的原始数据进行滤波得到的数据;
若是,则确定有松开操作;
否则,确定处于按下状态,并返回判断之后采集的n个电容充放电周期的原始数据是否包含噪声的步骤。
针对上述方案,下面针对不同的过程分别列举几个附图进一步进行说明。
如图3所示,本发明实施例提供的电容基准值始化的方法,包括:
步骤300、噪声检测器对所述原始数据进行方差计算,并将计算后的结果与干扰噪声阈值进行比较。
步骤301、噪声检测器判断计算后的结果是否大于干扰噪声阈值,若是,则噪声检测器将噪声检测指示位标记为1,并返回步骤300;否则,噪声检测器将噪声检测指示位标记为0,并执行步骤302。
步骤302、基准值初始化及追踪更新电路将中值滤波的输出作为按键电容的初始基准值,并执行步骤300。
在实施中,根据当前数据处理器的输出点干扰噪声标记判断此输出点是否可靠,如果标记为1,那么这个点将被丢弃,回到步骤300,计算下一个中值滤波输出点对应的方差;如果标记为0,表示这个点可靠,可以作为按键电容基准值,然后获取按键电容基准值,按键初始化完成。
如图4所示,本发明实施例提供的电容触摸抗干扰工作流程的方法,包括:
步骤400、按键初始化完成之后,基准值初始化及追踪更新电路获取本次充放电时间的电容值,即获取数据处理器的输出点。
步骤401、基准值初始化及追踪更新电路判断由所述本次充放电时间的电容值与当前的电容基准值的差值是否大于第一触摸判断门限值并且所述本次充放电时间的电容值大于当前的电容基准值;若是,则执行步骤402;否则,执行步骤403。
上面的判断步骤是为了防止误判操作。因为发生触摸操作时,电容一定是增大的,并且这个增大的过程,噪声检测器一定输出为1(即认为有噪声),但是这个过程是合理的;而在其他时候,噪声检测器输出为1时都是不合理的过程,会产生误判操作的过程;所以为了区分这个合理的分支,需要增加401这个步骤。
步骤402、基准值初始化及追踪更新电路通知按键状态检测电路根据本次充放电时间的电容值进行处理,具体参见图5。
步骤403、基准值初始化及追踪更新电路判断所述本次充放电时间的电容值对应的噪声检测指示位是否为1,若是,执行步骤404;否则,执行步骤405。
步骤404、基准值初始化及追踪更新电路将所述本次充放电时间的电容值用当前电容基准值替换。
步骤405、基准值初始化及追踪更新电路根据所述本次充放电时间的电容值进行电容基准值更新处理,具体参见图6。
从上述实施例可以看出:本发明在强噪声干扰过程中,不进行按键电容基准值更新操作,保证按键电容基准值更新只有在无噪声干扰环境下完成,保证电容基准值的准确可靠。
图4中,装置初始化完成后,进入工作状态;如果此时电容触摸点发生手指触摸,那么容值检测电路的输出会变大,使得电容计数器和数据处理器的输出数值同时变大;因此,步骤401中由所述本次充放电时间的电容值与当前的电容基准值的差值是否大于第一触摸判断门限值并且所述本次充放电时间的电容值大于当前的电容基准值。如果这个条件满足,意味着可能发生手指触碰,因此需要将该输出点送往按键状态检测电路进行判断(步骤402);如果条件不满足,那么检测该输出点的干扰噪声标记(步骤403);如果噪声标记为1,说明这个点不可靠,需要用当前基准值去替换(步骤404);如果噪声标记为0,说明这个点可靠,基准值追踪电路根据该点进行基准值的更新动作(步骤405)。
如图5所示,本发明实施例四按键状态检测方法,包括:
步骤500、按键状态检测电路获取由第一滤波数据确定的当前充放电时间的电容值,即获取数据处理器的输出点;
步骤501、按键状态检测电路判断连续M个所述当前充放电时间的电容值(即M个输出点)是否大于第一触摸判断门限值,若是,执行步骤502;否则,返回步骤500。
步骤502、按键状态检测电路判断按键状态为按键按下。
步骤503、按键状态为按键按下之后,按键状态检测电路获取当前充放电时间的电容值。
步骤504、按键状态检测电路判断所述当前电容充放电时间的电容值对应的噪声指示位是否为1,若是,返回步骤502;否则,执行步骤505;
步骤505、按键状态检测电路判断连续X个所述当前充放电时间的电容值是否小于第二触摸判断门限值,若是,执行步骤506;否则,返回步骤502;
步骤506、按键状态检测电路判断按键松开。
其中,步骤501表示按键状态检测电路在收到按键状态检测电路的通知后还不能够识别出这个变大的数据点是由于强噪声导致的或者是手指触摸电容检测点1导致的(或者两者同时发生);因此,在步骤501中需要执行去抖动作,如果连续多个当前充放电时间的电容值都大于第一触摸判断门限值,那么就可以认为手指触摸了电容检测点1(步骤502);否则计数器清零,重新执行步骤500进行判断;
如果已经判断手指在触摸按键(步骤502),那么需要继续判断当前数据点的干扰噪声标记是否为1(步骤504),如果标记为1,表示因为手指触摸引入的强噪声还在继续,继续判断按键按下(步骤502);如果手指触摸没有引入强噪声,那么就判断是否连续多个所述当前充放电时间的电容值是否小于第二触摸判断门限值(步骤505),如果条件满足,就表示手指已经离开电容检测点1,可以判断按键松开(步骤506);否则返回步骤502;
如图6所示,本发明实施例五电容基准值更新方法,包括:
步骤600、基准值初始化及追踪更新电路获取由所述当前充放电时间确定的电容值;
步骤601、基准值初始化及追踪更新电路判断所述当前充放电时间确定的电容值与当前电容基准值的差的绝对值是否小于自然噪声阈值,若是,则返回步骤602;否则,返回步骤605;
步骤602、基准值初始化及追踪更新电路该差值送往累加器进行计算;
其中,累加器用来累加所述当前充放电时间确定的电容值与当前电容基准值的差。当环境中存在自然噪声时,由所述当前充放电时间确定的电容值与当前电容基准值的差有正有负,累加器用来记录由所述当前充放电时间确定的电容值与当前电容基准值的差值。
步骤603、基准值初始化及追踪更新电路判断所述累加器的输出是否大于第一基准调整阈值,若是,则执行步骤604;否则,返回步骤600;
步骤604、基准值初始化及追踪更新电路用当前充放电周期确定的电容值更新电容基准值,并清零所述累加器;
步骤605、基准值初始化及追踪更新电路判断所述当前充放电时间确定的电容值是否小于基准值并且差值大于第二基准值调整阈值,若是,则执行步骤606;否则,返回步骤600;
步骤606、基准值初始化及追踪更新电路将计数器加一固定步长值;
步骤607、基准值初始化及追踪更新电路判断所述计数器是否大于计数阈值,若是,则执行步骤608;否则,返回步骤600;
步骤608、基准值初始化及追踪更新电路用当前充放电周期确定的电容值更新电容基准值,并清零所述计数器;
其中,步骤601为基准值初始化及追踪更新电路获取的图4中的本次充放电时间的电容值,在步骤602中计算当前的数据点跟基准值的差,并对差值取绝对值,如果这个绝对值小于自然噪声阈值,那么将计算得到的差值送往累加器(步骤602);如果累加器的输出大于第一基准调整阈值(步骤603),那么就将当前的输出值作为新的基准值,并且清零累加器(步骤604);如果步骤601的条件不满足,那么继续判断当前数据点是否小于基准值并且差值大于基准值调整阈值(步骤605),如果步骤601的条件满足,那么计数器加一步长值(步骤606),判断计数器是否大于计数阈值(步骤608),如果大于表示附在电容检测点1的水滴等增大电容的干扰物被去除,需要将当前的输出值作为新的基准值,并且清零计数器(步骤608)。
从上述实施例可以看出:本发明实施例通过判断采集的所述原始数据是否包含噪声,采集的所述原始数据不包含噪声,则根据第一滤波数据,确定当前的电容基准值。由于在采集的所述原始数据不包含噪声时,才根据所述原始数据确定当前的电容基准值,从而减少了强噪声对电容基准值的影响,能有效的克服强噪声干扰的影响,提高了按键状态判断的准确性,保证电容触摸传感器在强干扰环境下可靠探测触摸动作的能力。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。