Cortex-M4核Kinetis平台的电容式触摸键盘设计
摘要:针对传统机械式按键的不足,采用飞思卡尔Kinetis平台K60系列MCU,设计了一种电容式触摸键盘。阐述了电容式感应触摸原理,介绍了K60系列MCU的内部TSI模块工作机制,给出了简化的接口设计和键盘PCB布局方法,最后详细地分析了TSI模块软件驱动设计流程。
关键词:Cortex-M4;电容式触摸;Kinetis;TSI模块;键盘PCB布局
引言
随着现代电子产品的日益更新和智能化发展,人机交互接口(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触发标志位激活相应的中断请求,实现电容触摸感应事件的响应。
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种不同的组合,通过软件算法上相应的处理就可以
键盘 设计 触摸 电容 Kinetis 平台 Cortex-M4 相关文章:
- ARM矩阵键盘设计及其linux驱动实现(12-09)
- 基于键盘扫描算法的多路断电报警系统设计(07-30)
- 基于CY7C68013A芯片的USB键盘的设计(04-09)
- 可编程触摸键盘设计(11-28)
- 基于VHDL 的矩阵键盘及显示电路设计(10-09)
- 基于VHDL的矩阵键盘及显示电路设计(10-15)