键盘输入电路是大多数电子产品必不可少的部分,例如手机、打印机、POS(Point of Sale)机以及工控、医疗设备等。关于键盘输入电路设计,对于有设计经验的产品工程师来说,不存在技术问题,然而存在许多不尽人意之处需要改进,譬如,I/O口资源占用,软件资源占用,PCB体积太大,EMI严重等。针对上述问题,MAXIM公司推出了几款串行接口键盘控制器MAX7347~MAX7349。
MCU I/O 资源占用
键盘分为编码键盘和非编码键盘。编码键盘完全依靠外部硬件电路实现键码识别。非编码键盘则依靠外部硬件电路和软件进行键码判别。目前流行的是非编码键盘,
它与MCU连接时有两种方式:程序扫描式和中断扫描式。程序扫描式需要占用很多MCU软件资源,而中断扫描占用MCU软件资料相对少的多,因此目前主要采用中断式扫描方式。然而无论是程序式还是中断式扫描,均需要外部扩展电路,更重要的是需要占用很多I/O接口,比如采用中断方式,16键输入需要占用4+4+1=9
I/O口。
由于I/O资源浪费太大,对于I/O资源相对紧张的中低挡MCU来讲必须扩展I/O。而图1所示的MAX7347~MAX7349专门针对多键入系统开发的串行键盘接口与MCU通信采用I2C接口,且外加中断报警,通常3根接口线就够了,如果系统本身还有其它I2C器件,实际只占用一根接口线。图中ALERT是报警输入,不用它时接地或连接到VCC。这三款芯片工作电压范围均为:2.4V~3.6V,
关断电流<10 A,支持电池供电便携式产品应用,它们之间的主要差别是:MAX7349可监控多达64个键入,MAX7348支持40个键,而MAX7347最多24键。
软件资源占用
由于键盘开关固有的机械特性,当键盘开关闭合时会产生如图2所示的毛刺,如果不进行抖动消除处理,MCU会误判。消除抖动可通过硬件(RC滤波)或软件方式。软件去抖方法主要采用延时等待法,由于毛刺波一般为5~10ms,因此每次按键处理大约需要20ms,具体的去抖延迟时间根据开关的机械性能而定,因此浪费了较多软件资源。
为了节省MCU处理时间,MAX7347~7349不仅集成了按键自动去抖功能,还内置了8个FIFO,每个FIFO代表一次按键事件,使MCU一次中断就可得到最多8次键入信息。
另外,通过对其内部的去抖寄存器进行设置,很方便地把开关去抖时间从9ms以1ms的步长增加到40ms,以适应各种不同类型开关机械性能。不仅如此,MAX7347~MAX7349还具有按键自动重复功能,其内部自动重复寄存器用来设置自动重复频率(重复速率)
及其延时。当按键按下且没有释放时,自动重复功能允许连续触发按键事件。
自动重复延时规定了第一次按下按键与开始自动重复之间的延迟时间(如果按键没有释放)。自动重复频率规定了自动重复开始后按键事件连续触发的速率。提高了键入速度。
EMI
任何一个数字芯片工作时都会带来噪声干扰,增加EMI。传统的键盘控制芯片通常采用实时扫描方式监控是否有键入事件发生,如8279键盘显示控制器。另外干扰源电压幅值越大,引起的EMI越强。过大的EMI会导致系统性能指标恶化甚至不能正常工作,比如无线通信设备,医疗监测设备等,或影响其他电器设备的正常工作。
由于设计MAX7347~MAX7349时充分考虑了EMI问题,因此采用了独特的电路架构和监控方式保证其产生的EMI最小。首先,不采用按键动态扫描,从而避免按键开关连线的连续辐射干扰。相反,对按键电流进行监控(仅当按键按下时监控),且只有当一个或多个按键实际按下时去抖电路才工作;其次,无论电源电压V+为何值,开关矩阵上的电压永远不会超过0.65V。这样,当开关按下时,任一节点的电压摆幅最大不超过0.65V。
音频发生器
目前的电子设备键入方式越来越人性化,譬如键入时产生不同的声音提示用户是否键入成功以及键入次数是否正确等,这大多利用MCU软件编程产生不同频率的音频方波信号加低通滤波方式实现。
但这会占用一定软件资源,同时增加设计人员工作负担。而MAX7347~MAX7349恰好集成了一个音频发生器,通过MCU进行控制和设置,产生具有音乐频率的方波。音频覆盖第5组八度音阶(523.25Hz至987.77Hz),另外还包括一直到2637Hz的七个其它音频。在整个声音持续期间,发声器输出还可设置为高电平或低电平以驱动电子发声器、继电器或指示灯,从而替代电压变换器。声音持续时间可在15.625ms至1s范围内设置,分为七个时间等级。因此简化了设计任务,节省了资源。
结束语
键盘电路是大多数电子设备必不可少的部分,采用传统方式设计会遇到硬件、软件开销以及EMI等问题, MAXIM公司新推出的MAX7347~7349串行键盘开关和发声控制器很好地解决了上述问题,同时节省了功耗,极大简化了键入系统的设计,提高了系统可靠性。
|