一种触摸按键检测设备及方法

文档序号:955068 发布日期:2020-10-30 浏览:1次 >En<

阅读说明:本技术 一种触摸按键检测设备及方法 (Touch key detection device and method ) 是由 周立功 陈逢坛 杨冠宁 于 2020-06-18 设计创作,主要内容包括:本申请实施例公开了一种触摸按键检测设备及方法。本申请实施例提供的技术方案通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。(The embodiment of the application discloses touch key detection equipment and method. The technical scheme that this application embodiment provided carries out charge-discharge control to external capacitance through main processing module, charge external capacitance earlier, discharge touch electrode&#39;s equivalent capacitance, then control external capacitance charges touch electrode&#39;s equivalent capacitance, make external capacitance reach balanced voltage, and detect the voltage data of first input/output pin when external capacitance reaches balanced voltage through the ADC module, can confirm touch electrode&#39;s touch detection result according to this voltage data, reduce the reliance to timer clock precision among the prior art, effectively improve the degree of accuracy of judging the button touch state.)

一种触摸按键检测设备及方法

技术领域

本申请实施例涉及触摸按键技术领域,尤其涉及一种触摸按键检测设备及方法。

背景技术

随着技术的发展,触摸技术应用在汽车方面也越来越多,比如门把手、天窗、空调面板等,高端的车型一般都使用触摸的方式来实现控制。

目前常用的触摸控制原理是电容检测原理,实现方案主要有使用单个微控制单元(Microcontroller Unit,MCU)充放电时间计数的方案和MCU加电容传感器的方案,直接检测触摸电极系统电容和等效电容的充放电时间,根据充放电时间的不同判断触摸按键是否被按下。

但是上述基于单个MCU电容充放电时间计数的触摸控制模块对定时器时钟精度要求较高,容易出现按键触摸状态判断失误的情况。

发明内容

本申请实施例提供一种触摸按键检测设备及方法,以提高按键触摸状态判断的准确度。

在第一方面,本申请实施例提供了一种触摸按键检测设备,包括主处理模块和触摸按键模块,所述触摸按键模块包括外部电容、触摸电极和充放电电阻,其中:

所述外部电容一端电连接主处理模块的第一输入输出引脚,另一端接地;

所述触摸电极电连接主处理模块的第二输入输出引脚;

所述充放电电阻的两端分别电连接主处理模块的第一输入输出引脚和第二输入输出引脚;

所述主处理模块对外部电容进行充放电控制,通过ADC模块检测所述第一输入输出引脚的电压数据,所述主处理模块基于所述电压数据确定触摸电极的触摸检测结果。

进一步的,所述一种触摸按键检测设备还包括状态反馈收发器,所述状态反馈收发器电连接于所述主处理模块的数据收发接口,用于与外界终端进行通信连接。

进一步的,所述一种触摸按键检测设备还包括可调控制参数的线性马达,所述主处理模块电连接于所述线性马达的马达驱动器,所述主处理模块通过所述马达驱动器对线性马达的控制参数进行调整。

在第二方面,本申请实施例提供了一种触摸按键检测方法,应用于如第一方面所述的一种触摸按键检测设备,包括:

基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据;

基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值;

根据本次的采样值和基准值的比较结果,对所述基准值进行更新;

根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

进一步的,所述基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据,包括:

配置第一输入输出引脚和第二输入输出引脚为输出模式,控制第一输入输出引脚的输出电压为VDD,第二输入输出引脚的输出电压为VSS;

配置第一输入输出引脚和第二输入输出引脚为输入模式,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据。

进一步的,所述基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值,包括:

判断所述电压数据相对于上一个采样值的变化方向是否一致;

若所述变化方向不一致,则将滤波计数器和滤波系数重置;

若所述变化方向一致,则根据电压数据相对于上一个采样值的变化幅度更新滤波计数器的累计数,并在滤波计数器的累计数达到计数阈值时,增大所述滤波系数;

根据所述电压数据和所述滤波系数计算本次的采样值。

进一步的,所述根据所述电压数据和所述滤波系数计算本次的采样值,包括:

判断所述电压数据是否小于上一个采样值;

若所述电压数据小于上一个采样值,则确定本次的采样值为:Yn=Yn-1-(Yn-1-Xn)×a/C,其中,Yn为本次的采样值,Yn-1为上一个采样值,Xn为电压数据,a为滤波系数,C为系数端点值,并且所述滤波系数小于所述系数端点值;

若所述电压数据大于或等于上一个采样值,则确定本次的采样值为:Yn=Yn-1+(Xn-Yn-1)×a/C。

进一步的,所述根据本次的采样值和基准值的比较结果,对所述基准值进行更新,包括:

判断当前主处理模块是否为第一次上电;

若当前主处理模块为第一次上电,则将所述采样值作为基准值;

若当前主处理模块不是第一次上电,则判断触摸电极是否在触摸状态;

若触摸电极处于触摸状态,则维持当前基准值;

若触摸电极处于非触摸状态,则判断所述采样值是否大于基准值;

若所述采样值大于或等于基准值,则对所述基准值执行增大操作;

若所述采样值小于基准值,则对所述基准值执行减小操作。

进一步的,所述根据本次的采样值和所述基准值确定触摸电极的触摸检测结果,包括:

判断本次的采样值是否达到触摸判断阈值,所述触摸判断阈值为所述基准值和预设阈值之和;

若本次的采样值达到触摸判断阈值,则基于对触摸电极的防误触判断确定触摸电极的有效状态,触摸电极的有效状态包括触摸有效和触摸无效;

若本次的采样值未达到触摸判断阈值,则判断触摸电极的有效状态是否为触摸有效;

若触摸电极的有效状态为触摸有效,则确定触摸检测结果为触摸按键有效;

若触摸电极的有效状态为触摸无效,则确定触摸检测结果为触摸按键无效。

进一步的,所述基于对触摸电极的防误触判断确定触摸电极的有效状态,包括:

将触摸电极标记为按下状态,并判断是否存在其他处于触摸状态的触摸电极;

若存在其他处于触摸状态的触摸电极,则确定触摸电极的有效状态为触摸无效;

若未存在其他处于触摸状态的触摸电极,则判断上一次触摸电极是否标记为按下状态;

若上一次触摸电极标记为按下状态,则判断对触摸电极的按下状态的计数统计是否达到计数阈值;

若计数统计达到计数阈值,则确定触摸电极的有效状态为触摸有效;

若计数统计未达到计数阈值,则确定触摸电极的有效状态为触摸无效;

若上一次触摸电极标记为抬起状态,则确定触摸电极的有效状态为触摸无效。

进一步的,所述根据本次的采样值和所述基准值确定触摸电极的触摸检测结果之后,还包括:

响应于触摸按键有效的触摸检测结果,确定线性马达的控制逻辑,并基于所述控制逻辑对线性马达的控制参数进行调整。

进一步的,所述控制逻辑包括:

第一控制逻辑:以第一频率、第一占空比的PWM输出控制线性马达持续运行第一时间长度;或

第二控制逻辑:以第二频率、第二占空比的PWM输出控制线性马达持续运行第二时间长度;或

第三控制逻辑:先以第一频率、第一占空比的PWM输出控制线性马达持续运行第三时间长度,再以第二频率、第二占空比的PWM输出控制线性马达持续运行第四时间长度,重复运行预设次数。

在第三方面,本申请实施例提供了一种触摸按键检测装置,应用于如第一方面所述的一种触摸按键检测设备,包括数据采样模块、数据滤波模块、基准更新模块和触摸判断模块,其中:

数据采样模块,用于基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据;

数据滤波模块,用于基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值;

基准更新模块,用于根据本次的采样值和基准值的比较结果,对所述基准值进行更新;

触摸判断模块,用于根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

在第四方面,本申请实施例提供了一种计算机设备,包括:存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面所述的触摸按键检测方法。

在第五方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第二方面所述的触摸按键检测方法。

本申请实施例通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。

附图说明

图1是本申请实施例提供的一种触摸按键检测设备的结构框图;

图2是本申请实施例提供的一种触摸按键检测方法的流程图;

图3是本申请实施例提供的另一种触摸按键检测方法的第一部分流程图;

图4是本申请实施例提供的另一种触摸按键检测方法的第二部分流程图;

图5是本申请实施例提供的对滤波系数进行更新的流程图;

图6是本申请实施例提供的计算本次的采样值的流程图;

图7是本申请实施例提供的另一种触摸按键检测方法的流程图;

图8是本申请实施例提供的一种触摸按键检测装置的结构示意图;

图9是本申请实施例提供的一种计算机设备的结构示意图。

附图标记:1、主处理模块;2、触摸按键模块;21、外部电容;22、触摸电极;23、充放电电阻;3、状态反馈收发器;31、CAN收发器;32、LIN收发器;4、线性马达;5、压力传感器;6、指示灯模块;7、ADC模块;8、马达驱动器。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。

在本申请实施例的描述中,除非另有明确的规定和限定,术语“相连”、“连接”、“固定”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

图1给出了本申请实施例提供的一种触摸按键检测设备的结构框图,如图1所示,该触摸按键检测设备包括主处理模块1、触摸按键模块2、状态反馈收发器3、线性马达4、压力传感器5和指示灯模块6。其中触摸按键模块2、状态反馈收发器3、线性马达4、压力传感器5和指示灯模块6均电连接于主处理模块1。

其中,主处理模块1连接有ADC模块7(Analog to Digital Converter),该ADC模块7可以是内置在主处理模块1内部的一个或多个ADC,或者是外置的ADC,用于检测主处理模块1引脚的电压数据。主处理模块1的型号选择可根据实际配置需要进行,本申请不做限定,例如选用内置有12bit的ADC的MCU作为主处理模块1,并将该ADC作为本实施例的ADC模块7。

进一步的,触摸按键模块2包括外部电容21、触摸电极22和充放电电阻23。其中,外部电容21一端电连接主处理模块1的第一输入输出引脚(图中通用输入输出接口GPIO的PIN1),另一端接地;触摸电极22电连接主处理模块1的第二输入输出引脚(图中通用输入输出接口GPIO的PIN2);充放电电阻23(图中R1)的两端分别电连接主处理模块1的第一输入输出引脚和第二输入输出引脚。同时,主处理模块1的第一输入输出引脚连接于ADC模块7,ADC模块7对第一输入输出引脚(外部电容21)的电压进行检测并输出对应的电压数据。

可以理解的是,可设置多个用于触发不同功能指令的触摸按键模块2(图中以设置一个触摸按键模块2为例进行展示,在实际应用中会设置多个触摸按键模块2),将触摸电极22安装在汽车的不同位置,并将外部电容21接入不同的GPIO接口,并由ADC模块7对各外部电容21的电压进行检测。

其中,主处理模块1通过配置输入输出引脚(第一输入输出引脚和第二输入输出引脚)的工作模式(输入或输出模式)对外部电容21进行充放电控制,通过ADC模块7检测第一输入输出引脚的电压数据,主处理模块1基于电压数据确定触摸电极22的触摸检测结果。

在其他实施例中,还可以是ADC模块7同时检测第一输入输出引脚和第二输入输出引脚的电压,根据两个引脚检测到的电压数据进行整合处理,得到最终的电压数据,并将该最终的电压数据作为本实施例中ADC模块7检测第一输入输出引脚的电压数据。例如,可对两个电压数据进行取均值或按权重取值处理,或者是确定两个电压数据的变化方向,在变化方向一致时按照以上方法确定电压数据或将第一输入输出引脚的电压数据作为最终的电压数据,在变化方向不一致时认为出现干扰,将上一次确定的电压数据作为最终的电压数据。

进一步的,状态反馈收发器3电连接于主处理模块1的数据收发接口,用于与外界终端进行通信连接。具体的,状态反馈收发器3可根据需要进行连接的外界终端的通信类型进行确定。

本实施例以ADAS(Advanced DrivingAssistance System)作为外界终端为例。示例性的,状态反馈收发器3为CAN收发器(ControllerAreaNetwork,控制器局域网)、LIN收发器(Local InterconnectNetwork,内部互联网络)或者是两者的结合。其中,CAN收发器连接于主处理模块1的CAN接口和SPI接口,CAN收发器用于连接外部的CAN总线系统。LIN收发器连接于主处理模块1的UART接口,LIN收发器用于连接外部的LIN总线系统。

进一步的,触摸电极22安装在汽车内部的按键控制面板中,并且线性马达4安装在控制面板中。可选的,线性马达4可与触摸电极22一一对应并安装在按键控制面中靠近对应触摸电极22的位置,或者是与触摸电极22独立的一个或多个线性马达4,并安装在安装件控制面板上。

在一个实施例中,可以是在控制面板中安装一个线性马达4,相对于现有技术中一个按键配一个线性马达4或压电陶瓷的方案,具有更低成本及更小体积的效果。另外还可根据控制面板上各个触摸电极22相对于该线性马达4的位置或距离,确定不同的控制参数,在不同位置的触摸电极22判定为触摸有效时,选择对应的控制参数对线性马达4进行控制,实现震感均匀的效果,提高使用体验。

每个线性马达4均配置有一个马达驱动器8,马达驱动器8电连接于对应的线性马达4,并且马达驱动器8电连接于主处理模块1。该线性马达4为可调控制参数的线性马达4,主处理模块1通过马达驱动器8对线性马达4的控制参数(频率、PWM信号的占空比、运行时间等)进行调整,即主处理模块1向马达驱动器8发送参数调整指令,马达驱动器8根据参数调整指令更新对线性马达4的控制参数,使线性马达4运行在更新后的控制参数。

进一步的,压力传感器5电连接于主处理模块1,并连接于ADC模块7。压力传感器5安装在按键控制面板对应触摸电极22的位置,用于检测按压在触摸电极22上的压力,生成压力检测信息并发送至ADC模块7,ADC模块7根据压力检测信息确定按压在对应触摸电极22上的压力大小。可以理解的是,压力传感器5可以触摸电极22一一对应设置,或者是根据配置需要为部分触摸电极22配置压力传感器5。

指示灯模块6包括指示LED和背光LED,安装在按键控制面板对应触摸电极22的位置,受控于主处理模块1进行工作,用于提示触摸电极22的位置或触摸状态。

上述,通过主处理模块1对外部电容21进行充放电控制,先对外部电容21充电,对触摸电极22的等效电容放电,然后控制外部电容21对触摸电极22的等效电容进行充电,使外部电容21达到平衡电压,并通过ADC模块7检测在外部电容21达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极22的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。

图2给出了本申请实施例提供的一种触摸按键检测方法的流程图,应用于如上述实施例提供的触摸按键检测设备,本申请实施例提供的触摸按键检测方法可以由触摸按键检测装置(如上述实施例提供的主处理模块)来执行,该触摸按键检测设备可以通过硬件和/或软件的方式实现,并集成在计算机设备中。

下述以一种触摸按键检测设备执行触摸按键检测方法为例进行描述。参考图2,该触摸按键检测方法包括:

S101:基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据。

示例性的,通过主处理模块对其输入输出引脚的工作模式(输入输出模式),对于外部电容进行充放电控制,即先对外部电容充电,同时对触摸电极的等效电容进行放电,然后控制外部电容对等效电容方便直至外部电容达到电压平衡。

在外部电容放电的过程中,通过ADC模块对第一输入输出引脚的电压进行检测,在外部电容达到电压平衡时,确定此时第一输入输出引脚的电压,并获取电压数据。

可以理解的是,触摸电极在触摸状态和非触摸状态时,其等效电容是不一样的,外部电容达到电压平衡时,第一输入输出引脚的电压存在区别,根据第一输入输出引脚的电压的区别可判断触摸电极的触摸状态。

本实施例中ADC模块根据第一输入输出引脚的电压输出12bit的电压数据,不需要将该电压数据转换为具体的电压值,12bit的电压数据的范围为0~4095,可更直观地反映第一输入输出引脚的电压变化情况。同时,手指有无接触触摸电极的电压变化约几十mV,而主处理模块的12bitADC模块可识别出mV级别的差异。

S102:基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值。

示例性的,在得到ADC模块在外接电容电压平衡时检测得到的电压数据后,并将该电压数据与上一个采样值进行比较,并根据比较结果对电压数据进行滤波更新,得到本次的采样值。

其中,对电压数据进行滤波更新具体为:在电压数据小于上一个采样值(且上一个采样值小于上上一个采样值)时,将电压数据往靠近上一个采样值的方向增大,在电压数据大于上一个采样值(且上一个采样值大于上上一个采样值)时,将电压数据往靠近上一个采样值的方向减小,即将电压数据向上一个采样值靠近,并将更新后的电压数据作为本次的采样值。对电压数据进行滤波更新的目的在于减少外界对触摸电极等效电容的波动从而对测量数据造成的波动,提高触摸按键检测的准确度。

S103:根据本次的采样值和基准值的比较结果,对所述基准值进行更新。

示例性的,在得到本次的采样值后,并在上一次判断该触摸电极处于触摸状态时,判断采样值和基准值之间的大小,并在采样值大于基准值时,增大基准值,否则减小基准值,从而使基准值适应环境的变化。若上一次判断该触摸电极处于非触摸状态,则保持基准值不变。

其中,初始的基准值可根据预先设定的数值进行确定,并在触摸按键检测装置(或者主处理器)第一次上电时将初始的基准值确定为预先设定的数值。其中,初始的基准值可保存在主处理器的存储模块(例如EEPROM)中。

S104:根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

示例性的,在完成采样值的确定以及基准值的更新后,根据基准值确定用于判断触摸电极被触摸的触摸判断值(例如在基准值的基础上加上设定的判断阈值作为触摸判断值),根据采样值和触摸判断值确定当前该触摸电极的触摸检测结果。

例如,将采样值和触摸判断值进行比较,在采样值大于或等于触摸判断值时,确定触摸电极被触摸,并生成反映触摸电极的触摸状态(或触摸按键有效)的触摸检测结果;在采样值小于触摸判断值时,确定触摸电极未被触摸,并生成反映触摸电极的非触摸状态(或触摸按键无效)的触摸检测结果。

在其他实施例中,还可根据基准值确定一个过渡范围,采样值在这个过渡范围以内的认为数据处于波动中,保持本次的触摸检测结果为上一个触摸检测结果,采样值在这个范围以上确定反映触摸电极的触摸状态的触摸检测结果。

上述,通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。

图3给出了本申请实施例提供的另一种触摸按键检测方法的第一部分流程图,图4给出了本申请实施例提供的另一种触摸按键检测方法的第二部分流程图,该触摸按键检测方法是对上述触摸按键检测方法的具体化。参考图3和图4,该触摸按键检测方法包括:

S201:配置第一输入输出引脚和第二输入输出引脚为输出模式。

示例性的,配置第一输入输出引脚和第二输入输出引脚为输出模式,控制第一输入输出引脚的输出电压为VDD,第二输入输出引脚的输出电压为VSS。

具体的,将主处理模块的第一输入输出引脚和第二输入输出引脚均配置为输出模式,使第一输入输出引脚的输出电压为VDD(5V),第二输入输出引脚的输出电压为VSS(0V),此时相当于主处理模块通过第一输入输出引脚对外部电容进行充电,通过第二输入输出引脚对触摸电极的等效电容进行放电。

S202:配置第一输入输出引脚和第二输入输出引脚为输入模式,通过ADC模块检测电压数据。

示例性的,配置第一输入输出引脚和第二输入输出引脚为输入模式,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据。

具体的,将主处理模块的第一输入输出引脚和第二输入输出引脚均配置为输入模式,此时第一输入输出引脚和第二输入输出引脚呈高阻态。此时,外部电容经充放电电阻对触摸电极的等效电容进行充电。

进一步的,在将第一输入输出引脚和第二输入输出引脚均配置为输入模式后,保持两个引脚输入输出模式不变,通过ADC模块对第一输入输出引脚的平衡电压进行检测,并得到电压数据。

S203:判断所述电压数据相对于上一个采样值的变化方向是否一致。若是,则跳转至步骤S205,否则,跳转至步骤S204。

具体的,在确定外部电容电压平衡时的电压数据后,将该电压数据与上一个采样值进行比较,根据比较结果设置本次变化方向标志。在电压数据大于或等于上一个采样值时,将本次变化方向标志设置为增大方向,在电压数据小于上一个采样值时,将本次变化方向标志设置为减小方向。

进一步的,在确定本次变化方向标志后,经本次变化方向标志与上一个变化方向标志进行对比,若两次变化方向标志一致,则认为电压数据相对于上一个采样值的变化方向一致,并跳转至步骤S205,否则跳转至步骤S204。可以理解的是,本次变化方向标志可作为下一个循环中的上一个变化方向标志。

S204:将滤波计数器和滤波系数重置。

具体的,在变化方向不一致时,将滤波计数器和滤波系数重置,即将滤波计数器和滤波系数清零,并跳转至步骤S206。

S205:根据电压数据相对于上一个采样值的变化幅度更新滤波计数器的累计数,并在滤波计数器的累计数达到计数阈值时,增大所述滤波系数。

示例性的,在变化方向一致时,根据电压数据相对于上一个采样值的变化幅度更新滤波计数器的累计数,并在滤波计数器的累计数达到计数阈值时,增大所述滤波系数,并跳转至步骤S206。

图5给出了本申请实施例提供的对滤波系数进行更新的流程图。如图5所示,具体的,以上对滤波系数进行增大的步骤包括:

S2051:将滤波计数器的累计数按第一幅度进行增加。

具体的,第一幅度可根据实际需要进行设置,本实施例将第一幅度设置为“1”,即在变化方向一致时,对滤波计数器进行加1操作。

S2052:判断电压数据相对于上一个采样值的变化幅度是否达到变化阈值。若是,跳转至步骤S2053,否则,跳转至步骤S2054。

具体的,判断电压数据对应的电压数据与上一个采样值的差值大小是否大于或等于变化阈值,若是,跳转至步骤S2053,否则,跳转至步骤S2054。

S2053:将滤波计数器的累计数按第二幅度进行增加。

具体的,在差值大小大于或等于变化阈值时,按第二幅度对滤波计数器的累计数进行增加,并跳转至步骤S2054。本实施例将第二幅度设置为“2”,即将滤波计数器进行加2操作。

S2054:判断滤波计数器的累计数是否达到计数阈值。若是,跳转至步骤S2055,否则,跳转至步骤S206。

具体的,将累计数与计数阈值进行比较,在累计数大于或等于计数阈值时,认为本次电压数据相对上一个采样值变化达到阈值,需要对滤波系数进行更新,并跳转至步骤S2055,否则,跳转至步骤S206。

S2055:对滤波系数和系数增量进行求和,得到更新后的滤波系数,并将滤波计数器重置。

具体的,在累计数大于或等于计数阈值时,将滤波系数加上系数增量,并将求和结果确定为更新后的滤波系数。其中系数增量可根据实际情况进行设定,本实施例不做限定。

进一步的,在完成滤波系数的更新后,将滤波计数器重置,即将累计数清零。

S206:根据所述电压数据和所述滤波系数计算本次的采样值。

在完成滤波系数的重置或滤波系数的更新后,根据电压数据和滤波系数计算本次的采样值。

图6给出了本申请实施例提供的计算本次的采样值的流程图。如图6所示,具体的,具体的,以上对采样值的具体包括步骤S2061-S2063:

S2061:判断所述电压数据是否小于上一个采样值。

具体的,将电压数据与上一个采样值进行比较,在电压数据小于上一个采样值时,跳转至步骤S2062,否则,跳转至步骤S2073。

S2062:确定本次的采样值为:Yn=Yn-1-(Yn-1-Xn)×a/C。在得到本次的采样值后,跳转至步骤S207。

若所述电压数据小于上一个采样值,则确定本次的采样值为:Yn=Yn-1-(Yn-1-Xn)×a/C。其中,Yn为本次的采样值,Yn-1为上一个采样值,Xn为电压数据,a为滤波系数,C为系数端点值,并且所述滤波系数小于所述系数端点值。本实施例C以256为例进行描述,可以理解的是,在步骤S2035中更新滤波系数时,若更新后的滤波系数大于系数端点值,则将滤波系数重新确定为比系数端点值的数值,如255。

S2063:确定本次的采样值为:Yn=Yn-1+(Xn-Yn-1)×a/C。在得到本次的采样值后,跳转至步骤S207

若所述电压数据大于或等于上一个采样值,则确定本次的采样值为:Yn=Yn-1+(Xn-Yn-1)×a/C。可以理解的是,对本次的采样值的确定是基于电压数据和上一个采样值的占比进行确定的,即对本次采样值的确定可基于公式Yn=a×Xn+(1-a)×Yn-1进行确定,上述公式是对本公式进行展开后得到的结果,可在得到更新的滤波系数后直接利用该公式计算本次的采样值。本实施例在判断电压数据和上一个采样值的大小后在进行计算可减轻对主处理模块的计算能力要求,提高触摸按键检测速度。

在其他实施例中,在对滤波系数进行重置后,认为本次的电压数据可正确反映触摸电极对于人体的检测情况,并直接将该电压数据作为本次的采样值。

S207:判断当前主处理模块是否为第一次上电。

具体的,在确定本次的采样值后,判断在本次循环中当前主处理模块是否为第一次上电,若是,则跳转至步骤S208,否则,跳转至步骤S209。

S208:将所述采样值作为基准值。

具体的,当前主处理模块为第一次上电时,将本次的采样值作为基准值。在确定基准值后,跳转至步骤S214。

S209:判断触摸电极是否在触摸状态。

具体的,在当前主处理模块不是第一次上电时,对触摸电极是否在触摸状态进行判断。对触摸电极是否在触摸状态的判断可基于上一次触摸电极的标记(按下状态或抬起状态)进行判断,即在上一次触摸电极的标记为抬起状态时,判断触摸电极处于非触摸状态,在上一次触摸电极的标记为按下状态时,判断触摸电极处于触摸状态。

S210:维持当前基准值。

具体的,若触摸电极处于触摸状态,则维持当前基准值,并跳转至步骤S214。

S211:判断所述采样值是否大于基准值。若是,跳转至步骤S212,否则,跳转至步骤S213。

具体的,在触摸电极处于非触摸状态时,将采样值和当前缓存的基准值进行比较,在采样值大于或等于基准值时,跳转至步骤S212,否则,跳转至步骤S213。

S212:对所述基准值执行增大操作。

具体的,在采样值大于或等于基准值时,对基准值执行增大操作,得到更新后的基准值,并跳转至步骤S214。对基准值的增大操作可以是将基准值加上预设的基准增量,从而得到更新后的基准值。

S213:对所述基准值执行减小操作。

具体的,在采样值小于基准值时,对基准值执行减小操作,得到更新后的基准值。对基准值的增大操作可以是将基准值减去预设的基准增量,从而得到更新后的基准值。

S214:判断本次的采样值是否达到触摸判断阈值。若是,则跳转至步骤S215,否则跳转至步骤S223。

在本实施例中,触摸判断阈值为基准值和预设阈值之和。在其他实施例中,可直接将基准值作为判断阈值。

具体的,在得到更新后的基准值后,将本次的采样值和更新后的基准值进行比较,并在本次的采样值大于或等于基准值时,跳转至步骤S215,以基于对触摸电极的防误触判断确定触摸电极的有效状态,其中,触摸电极的有效状态包括触摸有效和触摸无效。在本次的采样值小于基准值时,跳转至步骤S223。

S215:将触摸电极标记为按下状态。

示例性的,在本次的采样值达到触摸判断阈值时,将触摸电极标记为按下状态。对触摸电极的标记包括按下状态和抬起状态,分别用于指示当前触摸电极是否又被(人体)接触。示例性的,可分别用1和0两个值标记按下状态和抬起状态。

S216:判断是否存在其他处于触摸状态的触摸电极。若是,则跳转至步骤S217,否则跳转至步骤S218。

具体的,在将当前触摸电极标记为按下状态后,获取其他触摸电阻的标记状态(本实施例以设置4个触摸电极为例),以判断是否存在其他处于触摸状态的触摸电极,若存在其他处于触摸状态的触摸电极则跳转至步骤S217,若未存在其他处于触摸状态的触摸电极,则跳转至步骤S218。例如,可查找其他触摸电极的标记对应的值,若标记值为1,则对应触摸电极处于按下状态,若为0,则对应触摸电极处于抬起状态。

S217:确定触摸电极的有效状态为触摸无效。

具体的,在确定存在其他处于触摸状态的触摸电极时,确定当前进行触摸按键测试的触摸电极的有效状态为触摸无效。在确定触摸电极的有效状态为触摸无效后,可返回至步骤S201等待下一次检测循环周期。

S218:判断上一次触摸电极是否标记为按下状态。若是,则跳转至步骤S219,否则跳转至步骤S222。

具体的,若未存在其他处于触摸状态的触摸电极,则进一步判断上一次触摸电极是否标记为按下状态。可选的,在每次对触摸电极进行标记后,将标记对应的状态(对应的标记值)进行记录,可根据时间戳或者是记录位置确定上一次对当前触摸电极的标记状态。在上一次触摸电极标记为按下状态时,跳转至步骤S219,否则跳转至步骤S222。

S219:判断对触摸电极的按下状态的计数统计是否达到计数阈值。若是,跳转至步骤S220,否则跳转至S221。

具体的,在上一次触摸电极标记为按下状态时,进一步判断对触摸电极的按下状态的计数统计是否达到计数阈值。若计数统计达到计数阈值,则跳转至步骤S220,否则跳转至S221。

示例性的,对触摸电极的按下状态的计数统计可以是对触摸电极的按下状态进行累计计时,还可以是每次确定触摸电极的标记为按下状态时进行计数,对应的计数阈值可根据计数统计的类型进行确定(例如1秒或5~8次)。

S220:确定触摸电极的有效状态为触摸有效。

具体的,在判断计数统计达到计数阈值时(例如触摸电极的按下状态持续1秒或以上),则确定触摸电极的有效状态为触摸有效。进一步的,在确定触摸电极的有效状态为触摸有效后,可返回至步骤S201等待下一次检测循环周期。

S221:确定触摸电极的有效状态为触摸无效。

具体的,在判断计数统计未达到计数阈值时(例如触摸电极的按下状态持续未达到1秒),则确定触摸电极的有效状态为触摸无效。进一步的,在确定触摸电极的有效状态为触摸无效效后,可返回至步骤S201等待下一次检测循环周期。

S222:确定触摸电极的有效状态为触摸无效。

具体的,在上一次触摸电极标记为抬起状态时,则确定触摸电极的有效状态为触摸无效。进一步的,在确定触摸电极的有效状态为触摸无效效后,可返回至步骤S201等待下一次检测循环周期。

S223:判断触摸电极的有效状态是否为触摸有效。若是,则跳转至步骤S224,否则跳转至步骤S225。

具体的,在本次的采样值未达到触摸判断阈值时,进一步判断触摸电极的有效状态是否为触摸有效,在触摸电极的有效状态为触摸有效时,跳转至步骤S224,在触摸电极的有效状态为触摸无效时,跳转至步骤S225。

进一步的,在本次的采样值未达到触摸判断阈值时,将触摸电极标记为抬起状态,例如将当前触摸电极的标记值设置为0,并对当前标记值进行记录。同时,将触摸电极的按下状态的计数统计清零。

S224:确定触摸检测结果为触摸按键有效。

具体的,在判断触摸电极的有效状态为触摸有效时(此时该触摸电极已持续标记为按下状态达到计数阈值,并且期间没有检测到其他触摸电极被标记为按下状态),确定触摸检测结果为触摸按键有效。在确定触摸检测结果为触摸按键有效时,可通过状态反馈收发器向外界终端(例如汽车ADAS系统)反馈该指示触摸按键有效的触摸检测结果,以通知外界终端执行相应动作。在确定触摸检测结果为触摸按键有效后,可返回至步骤S201等待下一次检测循环周期。

S225:确定触摸检测结果为触摸按键无效。

具体的,若触摸电极的有效状态为触摸无效,则确定触摸检测结果为触摸按键无效,并可返回至步骤S201等待下一次检测循环周期。

上述,通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。并根据电压数据的波动情况确定采样值并对基准值进行更新,实现对环境变化的自适应,提高触摸按键检测的准确度。同时,根据电压数据相对于上一个采样值的变化幅度确定采样值时,提高对环境变化的自适应敏感度。

图7给出了本申请实施例提供的另一种触摸按键检测方法的流程图,该触摸按键检测方法是对上述触摸按键检测方法的具体化。参考图7,该触摸按键检测方法包括:

S301:基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据。

S302:基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值。

S303:根据本次的采样值和基准值的比较结果,对所述基准值进行更新。

S304:根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

S305:响应于触摸按键有效的触摸检测结果,确定线性马达的控制逻辑,并基于所述控制逻辑对线性马达的控制参数进行调整。

具体的,在触摸检测结果为触摸按键有效时,基于该触摸检测结果对应的触摸电极确定对线性马达的控制逻辑。其中线性马达可以是与触摸电极一一对应,或者是一个线性马达对应多个触摸电极。

进一步的,对控制逻辑的确定可以是根据与当前触摸电极对应的压力传感器输出的压力检测信息确定人手按压的力量大小,并根据按压力量大小的范围选择对应的控制逻辑。或者是对不同安装位置的触摸电极配置不同的控制逻辑,即根据触摸电极距离线性马达的距离远近选择不同的控制逻辑。

可以理解的是,控制逻辑可用于指示线性马达的控制参数,使马达驱动器根据控制参数控制线性马达的工作。控制逻辑可根据实际需要进行设置,本实施例不作限制。示例性的,本实施例设置三种控制逻辑,分别为第一控制逻辑、第二控制逻辑和第三控制逻辑。对于第一控制逻辑:以第一频率(例如160Hz)、第一占空比(例如50%)的PWM输出控制线性马达持续运行第一时间长度(例如300ms);对于第二控制逻辑:以第二频率(例如320Hz)、第二占空比(例如50%)的PWM输出控制线性马达持续运行第二时间长度(例如300ms);对于第三控制逻辑:先以第一频率、第一占空比的PWM输出控制线性马达持续运行第三时间长度(例如50ms),再以第二频率、第二占空比的PWM输出控制线性马达持续运行第四时间长度(例如30ms),重复运行预设次数(例如6次)。

进一步的,在确定对线性马达的控制逻辑后,根据控制逻辑确定对线性马达的参数调整指令,并向马达驱动器发送参数调整指令,马达驱动器根据参数调整指令更新对线性马达的控制参数,使线性马达运行在更新后的控制参数。

上述,通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。同时,采用可调控制参数的线性马达,通过调整振动频率、振动持续时间、振动间歇时间和循环次数等参数实现各个触摸按键的振感均匀一致,优化使用体验。

图8为本申请实施例提供的一种触摸按键检测装置的结构示意图。参考图8,本实施例提供的触摸按键检测装置包括数据采样模块81、数据滤波模块82、基准更新模块83和触摸判断模块84。

其中,数据采样模块81,用于基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据;数据滤波模块82,用于基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值;基准更新模块83,用于根据本次的采样值和基准值的比较结果,对所述基准值进行更新;触摸判断模块84,用于根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

上述,通过主处理模块对外部电容进行充放电控制,先对外部电容充电,对触摸电极的等效电容放电,然后控制外部电容对触摸电极的等效电容进行充电,使外部电容达到平衡电压,并通过ADC模块检测在外部电容达到平衡电压时第一输入输出引脚的电压数据,根据该电压数据可确定触摸电极的触摸检测结果,减少现有技术中对定时器时钟精度的依赖,有效提高对按键触摸状态判断的准确度。同时,采用可调控制参数的线性马达,通过调整振动频率、振动持续时间、振动间歇时间和循环次数等参数实现各个触摸按键的振感均匀一致,优化使用体验。

本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的触摸按键检测装置。图9是本申请实施例提供的一种计算机设备的结构示意图。参考图9,该计算机设备包括:输入装置93、输出装置94、存储器92以及一个或多个处理器91;所述存储器92,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器91执行,使得所述一个或多个处理器91实现如上述实施例提供的触摸按键检测方法。其中输入装置93、输出装置94、存储器92和处理器91可以通过总线或者其他方式连接,图9中以通过总线连接为例。

存储器92作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的触摸按键检测方法对应的程序指令/模块(例如,触摸按键检测装置中的数据采样模块81、数据滤波模块82、基准更新模块83和触摸判断模块84)。存储器92可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器92可进一步包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置93可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置94可包括显示屏等显示设备。

处理器91通过运行存储在存储器92中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的触摸按键检测方法。

上述提供的触摸按键检测装置和计算机可用于执行上述实施例提供的触摸按键检测方法,具备相应的功能和有益效果。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的触摸按键检测方法,该触摸按键检测方法包括:基于对外部电容的充放电控制,通过ADC模块对第一输入输出引脚的电压进行检测,得到电压数据;基于所述电压数据相对于上一个采样值的变化情况,对电压数据进行滤波更新,得到本次的采样值;根据本次的采样值和基准值的比较结果,对所述基准值进行更新;根据本次的采样值和所述基准值确定触摸电极的触摸检测结果。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的触摸按键检测方法,还可以执行本申请任意实施例所提供的触摸按键检测方法中的相关操作。

上述实施例中提供的一种触摸按键检测设备、设备及存储介质可执行本申请任意实施例所提供的触摸按键检测方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的触摸按键检测方法。

上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:驱动器装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类