- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可将传统的手机
使用 CPLD 实现 QWERTY 键盘
使用 Xilinx CPLD ,可将传统的手机 DTMF 键盘扩展为 QWERTY 键盘。
作者:Mike Gulotta
Xilinx FAE
Xilinx, Inc.
mike.gulotta@
随着手机及其他便携手持装置的功能不断增加,设计的取舍平衡亦日趋精细。文本信息与
网络浏览等流行功能都要求更多的数据输入,而这对于传统的双音多频 (DTMF) (0-9, #, *) 键
盘会比较困难。使用这种键盘要求多端数据输入,输入效率低而且容易出错。
使文本输入更为方便的一个方法是使用 QWERTY 键盘(见图 1 )。这种键盘采用 40 个
或更多按键,而 DTMF 手机通常采用 12 个。当然,多出的按键会使手机体积变大,用到的
电子组件也更多。
然而,文本信息用户可能乐意以体积换取 QWERTY 键盘,因为文本输入大为简便了,而
且两个大拇指都可以用来输入文本信息或数据。最近,有些手机生产商已经推出了面向文本用
户的带 QWERTY 键盘的手机。
数据输入键盘可以用多种方法来设计,并无一定之规。为传统 DTMF 键盘添加更多按键
对设计人员提出了挑战,本文即讨论应对这挑战的一种可能解决方案。
QWERTY 构建模块
我们的解决方案使用 Xilinx® CoolRunner™-II CPLD ;低功耗、小包装及低成本的特点使
其成为此应用的理想选择。
将 DTMF 转化为 QWERTY 键盘需要更多按键,从而需要更多通用 I/O (GPIO) 。例如,
DTMF 键盘可能只有四行三列,而 QWERTY 键盘可能有多至八行八列。不过,键盘的大小
可根据终端系统的需求而定。
通常,将处理器或 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 所示例子中,用 6 个位来代表编码字。6 个位提供 26 (即 64 )个不同的值,每
个值代表一个按键。然而,还必须有一个值代表无按键被按时的状态。因此,在此例中,在不
添加又一个 GPIO 的情况下,实际上只有 63 个按键可被代表。
处理器无需扫描键盘,因为这一操作现由 CPLD 执行;不过,处理器仍需监控其 GPIO 上
的变化 – 它只是不再需要推断哪个按键被按,因为该信息编码到一个六位字中了。
还需要用到的是开关抖动,这可以安排在 CPLD 中或处理器中,取决于哪个装置有可用资
源。在处理器中进行这一操作,可将 CPLD 的大小和成本降到最小。
简要总结此设计示例:CPLD 对键盘进行扫描,检测被按下的按键,然后提供一个编码字
供处理器读取并解析。这一功能不仅使处理器不必再承担扫描任务,还扩展了 GPIO 的功能。
此设计非常适合于 CoolRunner-I
文档评论(0)