随着现代电子产品的日益更新和智能化发展,人机交互接口(HMI)得到越来越多的关注和应用,丰富了人们的体验,而作为其中重要的一部分,触控感应技术也在快速发展。
触控技术目前来讲主要分为电阻式触控和电容式触控,作为近年来飞速发展的新技术,电容式触控感应技术以其无机械损耗、寿命长、灵敏度高、节省空间和触摸动作丰富等优点得到越来越广泛的应用,与此同时,半导体厂商也不断地推出相应技术的IC以简化硬件设计人员的开发。
飞思卡尔半导体推出的Kinetis系列MCU架构之中嵌入了高性能的电容式触摸感应接口TSI模块,增强了电容触摸感应的稳定性和鲁棒性,同时也极大地简化了设计人员的开发过程。
电容式触摸感应原理
目前基于IC设计的电容式触摸感应技术主要有两种:
一种是把电容值的变化转换成电压的变化,再通过内部特殊的电容模数转换器经过A/D采样算出电容量;
另一种是把电容值变化转换成内部计数器计数值的变化,在外部电极上产生三角波充放电电压信号,通过对该三角波电压信号的周期进行测量计数来反映外部电极的电容量变化。
SiliconLabs推出的电容触摸系列MCU采用的是前一种方法。
Kinetis K60内部集成的TSI模块采用的则是后面一种方法。
TSI模块通过内部的恒流源对外部电极进行充放电,形成三角波电压信号。三角波电压信号的周期随着外部电容的变化而变化,而手指作为虚拟地靠近电极时会造成电容容量的增加,使三角波电压信号周期变长。与此同时,TSI模块内部还有一个固定容量的电容构成的振荡器,以其产生的参考时钟节拍对外部电极产生的三角波电压信号的周期进行计数,外部电极电容量的变化引起三角波电压信号周期的变化进而引起测量计数值的变化,再通过内部读取相应的计数器值即可算出电容量变化。根据TSI内部运行机制,当电容值超出设定的触发阈值时,TSI触发标志位激活相应的中断请求,实现电容触摸感应事件的响应。
系统硬件设计
由于采用了带有专用电容触控功能即TSI模块的MCU,因此简化了硬件电路的设计。一方面减少了开发成本,另一方面也降低了硬件电路的复杂性,增强了系统的稳定性和鲁棒性。
1.电容触控接口设计
内置TSI模块接口极大地简化了硬件设计,只需简单地把外部电极通过一个限流电阻串联到相应的TSI模块通道上即可。限流电阻主要是为了防止电极与MCU之间的充放电电流过大而损害MCU,限流电阻的大小根据实际情况而定。
2.触摸键盘PCB布局设计
利用带有绝缘漆的覆铜板作为电极板,并采用三角形状覆铜拼接组合成方形触摸键盘,同时该三角覆铜分别引出相应的接口至TSI模块的通道。
系统软件设计
TSI模块不仅简化了电容式触摸键盘硬件上的设计,而且在软件设计方面,通过简单的配置相关寄存器、编写相应的校准程序和中断服务程序即可驱动电容触摸功能,极大地简化了软件设计流程。本系统软件设计采用中断方式,TSI模块自动进行周期性扫描,只有触摸事件发生时才触发中断进行响应,减少CPU负担。
1.TSI模块初始化
对TSI模块的初始化主要是根据实际硬件设计对其相关寄存器进行操作,在初始化阶段涉及到的相关寄存器包括通用控制与状态寄存器(TSI0_GENCS)、扫描控制寄存器(TSI0_SCANS)、通道使能寄存器(TSI0_PEN),另外还涉及到K60MCU内部时钟和引脚配置寄存器等。
2.TSI模块自校准
TSI模块初始化之后,要实现电容式感应触摸的检测,还需要对TSI模块进行电容值的校准,采样正常无手指触摸情况下的电容量即内部计数器的计数值,将其与自定义的死区值进行相加和相减之后分别存入阈值寄存器的高部分和低部分,以此作为标准检测电极电容变化区间,当电容量的变化处于死区区间内时,不会触发越界中断,当电容量超出阈值寄存器的范围时(包括低于阈值寄存器的低部分或者高于阈值寄存器的高部分)自动触发越界中断。
3.TSI模块中断服务处理
TSI模块有多种中断方式,包括错误中断、超时中断、扫描结束中断和越界中断,在K60 MCU内部中断机制里,它们共享99号中断向量。
同时,飞思卡尔公司免费提供了强大的触摸感应软件库(即TSS库)和开发生态系统的支持,可以直接应用在飞思卡尔Kinetis平台上,可缩短了工程开发周期而且也增加了系统的稳定性。