什么是CPLD?基于CPLD的QWERTY 键盘设计

时间:2025-09-10  作者:Diven  阅读:0

集成电路,属于PLD,电路规模较大。

什么是CPLD?基于CPLD的QWERTY 键盘设计

CPLD是指结构比较复杂的可编程逻辑器件,包括下述输出宏单元结构:

可编程I/O 允许用户对这些引脚编程,作为输入或输出。

寄存器输出和反馈 可用于实现计数器和移位寄存器等。

异或门输出结构,可用于一般用户多功能计数,能十分有效地建立大的计数器。

AMD公司最先生产带有宏单元的可编程逻辑器件PAL22V10。目前PAL22V10已成为划分PLD的界限。可编程逻辑器件所包含的门数大于PAL22V10所包含则门数,就被认为是复杂可编程逻辑器件,即CPLD。

可以认为CPLD基本上是原来的可编程逻辑器件的扩展。常常由可编程逻辑的功能块围绕一个位于中心、时延固定可编程互连矩阵构成。由于用固定长度的金属线实现逻辑单元之间的互连,而可编程逻辑单元又是类似PAL的与阵列,使得CPLD与FPGA相比较很容易计算输人到输出的传输延迟,显然也会有一些灵活性的限制。但是,CPLD的设计比FPGA简单。

虽然CPLD的结构一般都很相似,而且一般认为CPLD都有100%的布通率,但是由于可编得互连矩阵的结构不同,实际上也会有差别。

CPLD 是 Complex PLD 的简称,顾名思义,其是较 PLD 为复杂的逻辑元件。

CPLD 是整合性较高的逻辑元件。由于具有高整合性的特点,故其有性能提升,可靠度增加, PCB 面积减少及成本下降等优点。 CPLD 元件,基本上是由许多个逻辑方块( LogIC Blocks )所组合而成的。而各个逻辑方块均相似于一个简单的 PLD 元件(如 22V10 )。逻辑方块间的相互关系则由可变成的连线架构,将整个逻辑电路合成而成。

常见的 CPLD 元件有 Altera 公司的 Max5000 及 Max7000 系列。 Cypress 的 Max340 及 Flash370 系列等,一般来说 CPLD 元件的gate count约在 1000~7000 Gate 之

随着手机及其便携手持装置的功能不断增加,设计的取舍平衡亦日趋精细。文本信息与网络浏览等流行功能都要求更多的数据输入,而这对于传统的双音多频 (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 为可编程,您可以将同一装置用于不同的键盘和产品,而收高产量低成本之效。可再编程的特点辅之以简便易用的设计工具,使您可以对设计进行晚期更改,降低风险。

猜您喜欢

砂轮机是金属加工行业中常用的设备,其参数直接影响到加工效果和效率。砂轮机的转速是一个重要参数,通常以每分钟转数(RPM)表示,转速越高,切削效率越快,但同时也要...
2022-04-10 00:00:00

保险丝作为重要的保护元件,起到了防止过载和短路的重要作用。ZOYI LIGHTING作为知名的照明及电气配件制造商,其一次性保险丝产品因质量可靠、性能稳定而受到...
2025-02-17 07:54:30

在纷繁复杂的标识世界中,国标标识犹如一盏明灯,独特参数引领规范之路。尺寸、颜色、字体,每一项都蕴含深意。尺寸需符合人体工学,确保一目了然;颜色则需遵循标准,红色...
2010-04-21 00:00:00

现代电子产品设计中,封装技术非常重要。SSOP18(ShrinkSmallOutlinePackage18)作为流行的封装形式,因其优越的性能和适应性而受到关注...
2025-04-22 10:01:08

你是否好奇,汽车是如何为手机、平板电脑等各种电子设备供电的呢?答案就是车载DC-DC转换器,就像一个神奇的能量转换器,将汽车电池的电压转换成电子设备所需的电压,...
2024-03-02 00:00:00


电子学中,了解电压、电阻和电流之间的关系非常重要。根据欧姆定律,电流(I)等于电压(V)除以电阻(R)。这一定律为我们提供了计算电流的简单方法。在本文中,我们将...
2025-04-14 16:00:39

大多数同学还在学校里敲Verilog的时候,是不知道几年之后自己到底要做哪个方向的工作的。除了问问学长学姐,逛逛论坛,就再没有其他想法了。所以很多人都会觉得...
2023-02-03 11:20:00


贴片电阻2512指的是其尺寸大小,表示长2.5毫米,宽1.2毫米。 「2512」 这种命名方式是业内通用的表示贴片元件尺寸的方法,前两位数字表示长度,后两位数字...
2024-11-26 11:29:58