使用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键盘  双音多频 引用地址:使用CPLD设计实现QWERTY键盘

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

推荐阅读最新更新时间:2024-05-02 22:33

CPLD实现LED显示屏控制电路
伪彩色视频LED显示系统采用了计算机多媒体技术,全同步动态显示视频图像,图像清晰,亮度高,无拼缝,每种颜色的视频灰度等级已经由早期的16级灰度上升现在的256灰度,随着大规模集成电路和专用元器件的发展,256级灰度的全彩色视频 LED显示 系统随时都可能实现。 LED电子显示技术发展迅速,已成为当今平板显示领域的主导之一。本文着重介绍用M4A5-128P64-10VC设计LED显示屏的控制电路。 1 LED显示屏的构成 在LED显示系统中,点阵结构单元为其基本构成。每个显示驱动单元又是若干个8×8点阵的LED显示模块组成。通过多个显示驱动板拼装在一起,构成一个数平方米的显示屏,能用来显示各种文字、图像。LED显示屏包括计算
[电源管理]
<font color='red'>CPLD</font>实现LED显示屏控制电路
IIC总线通讯接口器件的CPLD实现
摘要:介绍了采用ALTERA公司的可编程器件EPF10K10LC84-3实现IIC总线的通讯接口的基本原理,并给出了部分的VHDL语言描述。该通讯接口与专用的接口芯片相比,具有使用灵活、系统配置方便的特点。 关键词:IIC总线 CPLD VHDL ISP IIC总线是PHILIPS公司开发的一种简单、双向、二线制、同步串行总线。它只需两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。该总线是高性能串行总线,具备多主机系统所需要的裁决和高低速设备同步等功能,应用极为广泛。 目前市场上虽然有专用IIC总线接口芯片,但是地址可选范围小、性能指标固定、功能单一、使用不方便。根据IIC总线的电气特性及其通讯协议,
[应用]
一种纸币识别系统的设计
  纸币清分是银行的一项重要业务。 目前,国内很多银行使用的纸币清分机都是由国外进口的,价格昂贵。国产纸币清分机很少,而且功能都很有限,很难满足高速实时性的要求,尤其是能够用图像处理的方法来识别纸币的纸币清分机还刚刚起步。   为此,设计了一种纸币识别系统。该系统以DSP为核心处理器,结合图像传感器CCD和复杂可编程逻辑器件CPLD,并辅以高性能的模/数转换器AD9200,进行纸币图像的采集、处理。该系统主要针对人民币第四版和第五版的5元、10元、20元、50元、100元九种纸币进行识别,利用数字图像处理技术和改进的自组织映射神经网络(SOFM)提取纸币图像的长度、宽度、方向块特征,区分纸币的面值、正反面与正反向。最终完成
[嵌入式]
一种纸币识别系统的设计
基于CAN总线的航空电缆测试系统分布机研究
  0 引言   航空电缆是飞机的神经系统,连接着飞机电气、航电、火控、操纵等各系统,为飞机各部件提供动力电源、控制信号和数据信息。受飞机机身空间的限制,电缆系统布线一般都集中于狭小的机壁内,飞机机壁内几乎遍布导线,因此航空电缆系统要求高可靠、高集成、高轻便;由于导线种类繁多,各类电源线、高低频信号线、数据线混杂在一起,长度可达数百公里,电气环境十分复杂,从而使其潜在故障增多,许多空难事故和飞行器故障都直接或间接与电缆系统故障有关,因此,航空电缆的“健康”是飞机安全运行的重要保障,电缆安全问题尤为重要。但是国内对于航空全机电缆测试技术的研发比较欠缺,远落后于国外已处于常规应用的现状。   根据飞机全机电缆分布距离长(近百米)、
[测试测量]
基于CAN总线的航空电缆测试系统分布机研究
用VHDL语言在CPLD上实现串行通信
引言 随着EDA技术得发展,CPLD已经在许多方面得到了广泛应用,而串行通信是实现远程测控的重要手段。本文利用VHDL语言在CPLD上实现了串行通信,完全可以脱离单片机使用,克服了单片机的许多缺点。 串口结构及内容 本设计所采用的是异步通信方式,可以规定传输的一个数据是10位,其中最低位为启动位(逻辑0低电平),最高位为停止位(逻辑1高电平),中间8位是数据位。为了方便对数据进行正确控制,选取发送(接受)每位数据用4个时钟周期。为了能够达到串行通信的波特率,例如4800B/s,则需把时钟频率设为 19.2kHz。系统结构如图1所示: 图1 系统原理 首先介绍串行通信发送器的工作原理。6位计数器用于
[半导体设计/制造]
LPC2131基于CPLD的CAN接口设计
    引 言   Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。   它具有ARM处理器的所有优点——低功耗、高性能和较为丰富的片上资源,但LPC2131内部没有集成CAN控制器,而无法利用CAN总线来进行通信。为了使得LPC2131能够利用CAN总线进行通信,可以通过外部扩展来实现其功能。目前,比较普通的方法是在LPC2131的外部采用CAN控制器设计CAN总线接口。LPC2131与CAN控制器的接口电路如图1所示。    这种方法中,LPC2131是通过GPIO口与CAN控制器SJA1000相连实现数据交互的。LPC2131通过寄存器IOSET/IOCLR来设定I/O口
[嵌入式]
基于单片机和CPLD的高精度大型望远镜伺服控制器设计
设计基于高速单片机C8051F120和CPLD的高精度大型望远镜的伺服控制器,由单片机实现闭环控制算法、上位机通信和LCD显示控制,CPLD实现增量式编码器计数、电机驱动波形发生以及I/O接口。该控制器可独立进行电机控制,也可配合上位机进行控制,具有实时性和抗干扰能力强、成本低、调试方便等特点。 引言 微电子技术和计算机的发展推动着伺服控制技术的进步,控制系统的硬件系统越来越高速化、小型化、模块化,功能也日趋强大完善;而且,伺服控制技术是朝着更开放、更加模块化的控制结构的方向发展的,要求控制器算法实现简单、控制接口灵活,针对不同的伺服控制对象时硬件系统不变,软件系统也可以完成参数的自动调整。 在高精度大型望远镜伺服控制应用
[单片机]
基于单片机和<font color='red'>CPLD</font>的高精度大型望远镜伺服控制器设计
可编程逻辑器件在数字系统中的应用
    摘要: 介绍了可编程逻辑器件在数字信号处理系统中的应用。并运用VHDL语言对采用Lattice公司的ispLSI1032E可编程逻辑器件所构成的乘法器的结构、原理及各位加法器的VHDL作了详细的描述。该乘法器的是大特点是节省芯片资源,而且其运算速度取决于输入的时钟频率。     关键词: 数字信号处理 乘法器VHDL PLD 1 引言 随着半导体技术的发展,可编程逻辑器件在结构、工艺、集成度、功能、速度和灵活性等方面有了很大的改进和提高,从而为高效率、高质量、灵活地设计数字系统提供了可靠性。CPLD或FPGA技术的出现,为DSP系统的设计又提供了一种崭新的方法。利用CPLD或FPGA设计的DSP系
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved