datasheet

使用CPLD设计实现QWERTY键盘

2013-02-19来源: 21IC 关键字:CPLD  QWERTY键盘  双音多频
随着手机及其他便携手持装置的功能不断增加,设计的取舍平衡亦日趋精细。文本信息与网络浏览等流行功能都要求更多的数据输入,而这对于传统的双音多频 (DTMF) (0-9, #, *) 键盘会比较困难。使用这种键盘要求多端数据输入,输入效率低而且容易出错。

图 1 – QWERTY 键盘(摩托罗拉 A630)

使文本输入更为方便的一个方法是使用 QWERTY 键盘(见图 1)。这种键盘采用 40 个或更多按键,而 DTMF 手机通常采用 12 个。当然,多出的按键会使手机体积变大,用到的电子组件也更多。

然而,文本信息用户可能乐意以体积换取 QWERTY 键盘,因为文本输入大为简便了,而且两个大拇指都可以用来输入文本信息或数据。最近,有些手机生产商已经推出了面向文本用户的带 QWERTY 键盘的手机。 

数据输入键盘可以用多种方法来设计,并无一定之规。为传统 DTMF 键盘添加更多按键对设计人员提出了挑战,本文即讨论应对这挑战的一种可能解决方案。

QWERTY 构建模块

我们的解决方案使用 Xilinx® CoolRunner™-II CPLD;低功耗、小包装及低成本的特点使其成为此应用的理想选择。
将 DTMF 转化为 QWERTY 键盘需要更多按键,从而需要更多通用 I/O (GPIO)。例如,DTMF 键盘可能只有四行三列,而 QWERTY 键盘可能有多至八行八列。不过,键盘的大小可根据终端系统的需求而定。
 

图 2 – 连接到处理器的简单 4 x 4 键盘需要 8 个 GPIO

通常,将处理器或 DSP 用作连接键盘行和列的界面(见图 2)。处理器对行进行扫描,对列进行监控,以检测逻辑变化。当变化发生,即表示用户按下了一个按键。知道被扫描的是哪一行,以及哪一列的状态发生了变化,处理器即可推断出按下的是哪个按键。

扩展 I/O

设计需要更多 I/O 的键盘时(QWERTY 键盘即为一例),可能会发现现有处理器没有足够的 GPIO。一种可能的解决方法是,把一个 CPLD 用作 I/O 扩展器,从而减少对处理器 I/O 数量的要求。

图 3 在处理器与键盘之间使用了一个 CPLD,其一侧连接键盘的行/列,另一侧连接处理器的可用 GPIO。此例中,使用一个 CPLD 后,一个 8 x 8 的键盘所需要的处理器 GPIO 端口的数目与 4 x 4 的键盘相同(实际上还少一个)。如果不使用 CPLD,处理器会需要 16 个 GPIO 端口,而不是 7 个。

扫描与编码 

除了减少处理器对 GPIO 的数量要求外,CPLD 还可以承担处理器的某些功能,如:对行进行扫描并对列进行监控以检测状态变化。当用户按键时,CPLD 会停止扫描,并立即生成一个编码字,然后发送给处理器,告诉处理器哪个键按下了。因为使用了编码字来告知处理器按下了哪个按键,对处理器的 I/O 需求得以减轻。
 

图 3 – 使用 CoolRunner-II CPLD 扩展 GPIO

在图 3 所示例子中,用 6 个位来代表编码字。6 个位提供 26(即 64)个不同的值,每个值代表一个按键。然而,还必须有一个值代表无按键被按时的状态。因此,在此例中,在不添加又一个 GPIO 的情况下,实际上只有 63 个按键可被代表。

处理器无需扫描键盘,因为这一操作现由 CPLD 执行;不过,处理器仍需监控其 GPIO 上的变化 – 它只是不再需要推断哪个按键被按,因为该信息编码到一个六位字中了。

还需要用到的是开关抖动,这可以安排在 CPLD 中或处理器中,取决于哪个装置有可用资源。在处理器中进行这一操作,可将 CPLD 的大小和成本降到最小。

简要总结此设计示例:CPLD 对键盘进行扫描,检测被按下的按键,然后提供一个编码字供处理器读取并解析。这一功能不仅使处理器不必再承担扫描任务,还扩展了 GPIO 的功能。

此设计非常适合于 CoolRunner-II 32 宏单元装置(利用率大约为 75%),留下 25% 空间作他用。此外,此设计还采用了其他一些方法来减少功耗并利用 CoolRunner-II 的节能功能。

CPLD 设计详述

要扫描键盘的行,桶式移位寄存器除一位预置为零外,其他所有位均预置为 1。移位寄存器的每一位驱动 CPLD 上的一个输出引脚,后者与键盘的行相连。当移位寄存器开始计时时,零位通过桶式移位器移位,将行逐行置低,以对其进行扫描。键盘的列输入到 CPLD,每个输入都通过一个内部上拉电阻上拉。

当没有按键被按时,CPLD 的所有列输入都被动上拉至逻辑高位。对所有的列输入一起进行“与”操作,这时输出端的逻辑 1 表示没有按键被按。

“与”操作的输出用于启动移位寄存器。当按键被按下时,列与行取得连接,按下的键所在的列被与该按键相关的行置低。“与”操作的输出将变为零,从而在按键被按下时中止移位寄存器。

 

图 4 – 模块图

此时,移位寄存器将按下的键所在的行置低,而该键所在的列亦处于低位。为了使这些信息相关联,使用了两个编码器:一个用于行位(移位寄存器的输出),另一个用于列输入。两个编码器的输出组合起来,就构成发送给处理器的编码字。图 4 为这一操作的模块图。

结束语 

使用 Xilinx CoolRunner-II CPLD,获得的是灵动的设计与低功耗。除了 I/O 扩展之外,CPLD 还可以加入其他“粘合”功能,如:电压转换、I/O 标准转换与输入滞后。 

由于 CPLD 为可编程,您可以将同一装置用于不同的键盘和产品,而收高产量低成本之效。可再编程的特点辅之以简便易用的设计工具,使您可以对设计进行晚期更改,降低风险。

关键字:CPLD  QWERTY键盘  双音多频

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/qrs/2013/0219/article_13701.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于FM1712的通用射频卡读写模块设计
下一篇:智能家居中的数字视频监控、门禁和灯光控制

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AVR单片机读写CPLD

项目中需要使用CPLD完成一部分算法设计,参数由AVR给出,因此需要完成AVR和CPLD的通信。因此写了一个测试程序。CPLD挂在AVR的数据和地址总线上,AVR使用ATmega128,在CPLD中设置几个寄存器,通过AVR读写寄存器来实现两者之间的通信。 Mega128的外部存储空间从0X1100开始,因此只需要配置相应的寄存器后读取或者写入相应的地址就可以,程序比较简单,注释中都有说明,仅供参考。 /******************************************************************* 名称:mian.c 功能:测试AVR与CPLD的通信
发表于 2018-04-18

STM32通过FSMC读写CPLD

STM32通过FSMC读写CPLD的程序,CPLD挂在STM32的地址线和数据线上,将CPLD看做片外RAM的方式来进行读写,在我做的板子上CPLD挂在第四个区,因此基地址是0x6c000000,通过FSMC来进行读写,程序较为简单,具体的地方在函数中都有注释,仅供参考。 /**************************(C) COPYRIGHT emouse 2011*************************** 名称:CPLD.c 功能:配置fsmc,CPLD读写函数 作者:emouse 时间:2011.1.2 版本
发表于 2018-04-18

单片机/CPLD结构体系在电子设计中的应用

    自20世纪80年代单片机引入我国以来,学习和应用单片机的热潮始终不减,特别是MCS51系列。这是由单片机的特点决定的。实际上,从单片机/CPLD应用通用数字集成电路系统,到广泛应用单片机,是我国电子设计在智能化应用水平上质的飞跃。据统计分析,单片机的销量单片机/CPLD到目前为止依然逐年递增,而且在很长一段的时间内,单片机依然会是电子设计的主角(虽然这一地址已经受到了CPLD的挑战)。     1 纯单片机系统优缺点    ①大量单片机/CPLD的外围芯片和接口电路使得单片机应用系统的设计变得简单而且快捷,新型单片机的上市和高级语言的支持(如C51
发表于 2018-04-02
单片机/CPLD结构体系在电子设计中的应用

CPLD器件在单片机控制器中的应用分析

    自动控制的对象五花八门、品种繁多,要求控制器能够模块化、标准化、灵活配置;进入商品经济时代,允许设计者的开发周期越来越短,从几年、几月缩短到几月、几天;有时合同临近结束前,用户还会提出更改设计条款的要求。因此,需要设计者开发出适应性强、便于修改、配置灵活的控制器,以满足用户需求,争得商机。    从成本考虑,有时以单片机为核心器件,量身度造地为被控对象设计专用控制器,仍是一种较好的选择。     CPLD器件与单片机结合优势互补、相得益彰    单片机的一些优缺点    单片机具有强大的信息处理、逻辑分析
发表于 2018-04-02
CPLD器件在单片机控制器中的应用分析

基于单片机和CPLD的DDS正交信号源滤波器的设计

    1 前 言    由于传统的多波形函数信号发生器需采用大量分离元件才能实现,且设计复杂,这里提出一种基于CPLD的多波形函数信号发生器。它采用CPLD作为函数信号发生器的处理器,以单片机和CPLD为核心,辅以必要的模拟和数字电路,构成的基于DDS(直接数字频率合成)技术、波形稳定、精度较高的多功能函数信号发生器。    2 系统设计    图1给出系统设计框图,该系统设计主要由CPLD电路、单片机电路、键盘输入液晶显示输出电路以及D/A转换电路和低通滤波器等电路组成。    2.1 频率合成器 
发表于 2018-04-02
基于单片机和CPLD的DDS正交信号源滤波器的设计

基于单片机与CPLD的混合式步进电机PWM驱动技术

为:A-AB-B-BC-C-CA-A……。  2混合式步进电机系统构成与实现  基于AVR单片机和CPLD的三相混合式步进电动机控制系统的结构框图如图2所示。系统主要包括脉宽调制产生电路、逻辑合成电路、功率驱动电路和电源等4个部分。本设计采用的方法是:单片机采集到现场信号后计算出步进电机运转所需要的控制信息,经过参考电路与反馈信号发生相互作用,得到脉宽调制信号后再传给CPLD,CPLD把接收到的信息转换成步进电机实际的控制信号,即转动速度和转动方向,输出给电机的功率驱动电路模块。下面具体介绍脉宽调制产生电路和脉宽调制产生电路部分。2.1 PWM信号产生脉宽调制产生电路主要有单片机和外围的电路组成,如图3所示。  单片机主要完成转速、转向和细分
发表于 2018-03-31
基于单片机与CPLD的混合式步进电机PWM驱动技术

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved