×
单片机 > 单片机程序设计 > 详情

Cortex-M4核Kinetis平台的电容式触摸键盘设计

发布时间:2020-06-16 发布时间:
|
引言
    随着现代电子产品的日益更新和智能化发展,人机交互接口(HMI)得到越来越多的关注和应用,丰富了人们的体验.而作为其中重要的一部分,触控感应技术也在快速发展。触摔技术目前来讲主要分为电阻式触控和电容式触控,作为近年来飞速发展的新技术,电容式触控感应技术以其无机械损耗、寿命长、灵敏度高、节省空间和触摸动作丰富等优点得到越来越广泛的应用,与此同时,半导体厂商也不断地推出相应技术的IC以简化硬件设计人员的开发。汽车电子行业领先的飞思卡尔半导体厂商就在其新近推出的基于ARM Cortex-M4核的32位Kinetis系列MCU架构之中嵌入了高性能的电容式触摸感应接口(Touch Sensing Interface,TSI)模块,增强了电容触摸感应的稳定性和鲁棒性,同时也极大地简化了设计人员的开发过程。本文中设计的系统就是利用Kinetis系列中的K60MCU作为控制核心,完成电容触摸键盘的软硬件设计。

1 电容式触摸感应原理
    目前基于IC设计的电容式触摸感应技术主要有两种:一种是把电容值的变化转换成电压的变化,再通过内部特殊的电容模数转换器经过A/D采样算出电容量;另一种是把电容值变化转换成内部计数器计数值的变化,在外部电极上产生三角波充放电电压信号,通过对该三角波电压信号的周期进行测量计数来反映外部电极的电容量变化。Silicon Labs推出的电容触摸系列MCU采用的是前一种方法,而飞思卡尔的Kine tis K60内部集成的TSI模块采用的则是后面一种方法。


    TSI模块通过内部的恒流源对外部电极进行充放电,形成三角波电压信号,其内部硬件电路设计如图1所示。三角波电压信号的周期随着外部电容的变化而变化,而手指作为虚拟地靠近电极时会造成电容容量的增加,使三角波电压信号周期变长,如图2所示。与此同时,TSI模块内部还有一个固定容量的电容构成的振荡器,以其产生的参考时钟节拍对外部电极产生的三角波电压信号的周期进行计数,外部电极电容量的变化引起三角波电压信号周期的变化进而引起测量计数值的变化,再通过内部读取相应的计数器值即可算出电容量变化。根据TSI内部运行机制,当电容值超出设定的触发阈值时,TSI触发标志位激活相应的中断请求,实现电容触摸感应事件的响应。[page]

2 系统硬件设计
    由于采用了带有专用电容触控功能即TSI模块的MCU,因此简化了硬件电路的设计。一方面减少了开发成本,另一方面也降低了硬件电路的复杂性,增强了系统的稳定性和鲁棒性。本系统采用飞思卡尔最新推出的基于Cortex-M4核的Kinetis系列MCU,具体型号为MK60DX256VLQ 100,支持DSP扩展指令集,内部资源丰富,除了具有TSI模块外还具有一个USB OTG模块、一个SDHC模块和一个以太网模块等资源,便于本键盘系统以后的扩展应用,其中TSI模块主要特点为:
    ◆支持1 6个电容式触摸感应通道,并且每个通道都配有独立的计数结果寄存器;
    ◆拥有可配置的上下阈值寄存器,自动检测并比较外部电极的电容值变化;
    ◆支持不同工作模式下配置扫描周期;
    ◆支持在MCU低功耗休眠模式下的电容触摸唤醒功能;
    ◆支持温度和工作电压自动补偿;
    ◆拥有可编程外部电极和内部电容振荡器。
2.1 电容触控接口设计
    外接电极与MCU的基本连接方式如图3所示,内置TSI模块接口极大地简化了硬件设计,只需简单地把外部电极通过一个限流电阻串联到相应的TSI模块通道上即可。限流电阻主要是为了防止电极与MCU之间的充放电电流过大而损害MC,限流电阻的大小根据实际情况而定。根据实际需要和布线方便,这里选择了4个电极分别连接到MCU TSI模块的0通道、6通道、7通道和8通道。


2.2 触摸键盘PCB布局设计
    本系统设计的电容式触摸键盘PCB布局如图4所示,利用带有绝缘漆的覆铜板作为电极板,并采用4块三角形状覆铜拼接组合成方形触摸键盘,同时该4块三角覆铜分别引出相应的接口至TSI模块的4个通道。该设计充分利用了电容式触摸感应技术的特点,没计灵活,仪采用4个TSI模块通道实现了9个触摸按键的功能,即每一个按键都是由不同的电极板组合构成,实现9种按键识别功能,节省了空间,降低了设计复杂程度,具体组合分配如表1所列。


    由该分配表可知4个通道实现了9种不同的组合,通过软件算法上相应的处理就可以得到9种按键响应。另外需要注意的是,在实际PCB设计时,4块电檄板到TSI模块相应引脚的走线要尽量短,以减少不必要的电容效应,同时也降低环境噪声的影响。

[page]

3 系统软件设计
    K60MCU的TSI模块不仅简化了电容式触摸键盘硬件上的设计,而且在软件设计方面,通过简单的配置相关寄存器、编写相应的校准程序和中断服务程序即可驱动电容触摸功能,极大地简化了软件设计流程。本系统软件设计采用中断方式,TSI模块自动进行周期性扫描,只有触摸事件发生时才触发中断进行响应,减少CPU负担。具体的TSI模块内部编程框图如图5所示。其中,每个功能模块都是由相关寄存器中相应的控制位控制的。


3.1 TSI模块初始化
    对TSI模块的初始化主要是根据实际硬件设计对其相关寄存器进行操作,在初始化阶段涉及到的相关寄存器包括通用控制与状态寄存器(TSI0_GENCS)、扫描控制寄存器(TSI0_SCANS)、通道使能寄存器(TSI0_PEN),另外还涉及到K60MCU内部时钟和引脚配置寄存器等,具体初始化流程如图6所示。

[page]

3.2 TSI模块自校准
    TSI模块初始化之后,要实现电容式感应触摸的检测,还需要对TSI模块进行电容值的校准,采样正常无手指触摸情况下的电容量即内部计数器的计数值,将其与自定义的死区值进行相加和相减之后分别存入阈值寄存器的高部分和低部分,以此作为标准检测电极电容变化区间,当电容量的变化处于死区区间内时,不会触发越界中断,当电容量超出阈值寄存器的范围时(包括低于阈值寄存器的低部分或者高于阈值寄存器的高部分)自动触发越界中断,具体校准流程如图7所示。


3.3 TSI模块中断服务处理
    由图5所示TSI模块的编程框图可知,TSI模块有多种中断方式,包括错误中断、超时中断、扫描结束中断和越界中断,在K60 MCU内部中断机制里,它们共享99号中断向量。本系统设计采用越界中断,即正常情况下不占用CPU资源,只有当手指触摸造成电容量超出死区区间时才触发越界中断,进入相应的中断服务函数进行电容式触摸按键响应处理。根据表1所示通道组合识别出具体触摸按键号,实现触摸键盘的输入,具体中断服务流程如图8所示。
    另外,针对一些更加复杂的电容式触摸动作,如旋转、滑动等应用,飞思卡尔公司免费提供了强大的触摸感应软件库(即TSS库)和开发生态系统的支持,可以直接应用在飞思卡尔Kinetis平台上,不仅缩短了工程开发周期而且也增加了系统的稳定性。

结语
 
    本系统采用带有电容式触摸接口TSI模块的Cortex-M4核的Kinetis平台MCU,利用电容式触摸感应原理设计了3×3电容触摸键盘。相比于传统的机械式按键,电容式触摸按键具有寿命长、占用空间小、高灵敏度和灵活性好等优点,应用前景十分广阔,尤其是在飞速发展的消费电子领域,大有取代机械式按键的势头。

关键字:Cortex-M4  电容式触摸  Kinetis  TSI模块

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的