找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 19368|回复: 2
打印 上一主题 下一主题

[推荐] 分享电脑键盘的键位冲突原理

[复制链接]
跳转到指定楼层
1
发表于 2006-5-13 20:43:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于键位冲突的问题很多朋友都没有意识到,直到在玩某一款游戏时才发现总是无法完成预定的动作。这就是键位冲突在作怪。键位冲突是指我们同时按下3个或3个以上的按键时,系统只返回了两个按键的ASCII码,而剩下的某一个键却被忽略了。那为什么会这样呢?在这里先解释一下引起键位冲突的原因。
  
  我们现在使用的键盘从按键编码形式上讲都是“非编码式键盘”。在每一个键帽的下方都有一个橡胶弹性垫,它的一个功能是为键帽在按下时提供足够的弹性,另一个功能是负责连通键盘底部的两层薄膜(后文会提到)上的触点。其实准确讲应该是3层薄膜,中间还有一层透明的起隔离作用的薄膜,它不负责传送信号,而使上下两层薄膜之间有了一定的间隙。这样,在一般情况下这两层薄膜之间不发生任何形式的接触,包括导线与触点,当我们按动按键的时候,才会迫使触点发生接触,从而产生按键信号。

  在这里我们称这两层薄膜为上层薄膜与下层薄膜。可以看出,每层薄膜上都排布着曲折的导线,其中上层薄膜上有18(0~17)条导线,而一只键盘往往都有100个按键以上,显然每条导线都至少要负责连通多个按键。而下层薄膜只有8(0~7)条导线,意味着每一条单一的导线要负担10个以上按键信号的连通。虽然导线的排列方式不尽相同,但两层薄膜上的每个触点却都是一对一的关系。
  当两层薄膜的触点接触后,就会产生出一个信号,这个信号会通过上、下薄膜的导线传送给键盘内部的控制芯片。而控制芯片会记录下由哪两条导线在同一时间里递送了信息,然后在芯片内部的一个查找表根据所送信号导线的不同而判断出按键信号
我们在这里举一个例子,坐标轴是大家在中学就学过的知识,那我们就将两张薄膜看做是X、Y轴,而薄膜上的每一根导线就被看所轴上的坐标(那么X轴为18,Y轴为8)。当我们按动某一按键时,在坐标区域内就会产生出一个点,而芯片的作用就是分析该点的横、纵坐标,然后将坐标值递送给查找表,查找表在内部做一番比对之后就可以得到该点的准确信息(也就是它已经知道你刚才按下的是哪个键了),然后屏幕上便会显示出这个键的ASCII码。
  在这里,键盘上每一个按键都可以在坐标系中找到它的坐标点。而在坐标上由X、Y轴任意两个值所引出的坐标点却未必能对应到键盘的按键上。原因也很简单,18×8=144,而键盘上只有不到110个按键,必然有坐标点是无意义的。
  也正是由于这种类似坐标轴的原理,键位冲突的问题才会存在。当我们同时按下A、B、C(为了便于理解,所以以这三个字母为例)3个键的时候,在这里假定A点对应的坐标是(1,1),也就是说信号是通过上层薄膜的导线1(以下简称上层导线)与下层薄膜的导线1(以下简称下层导线)来传递过来,B的坐标为(3,2),C的坐标为(3,1)。那么就可以建立起一种这样的对应关系:
  上层导线1-→A
  上层导线3-→B
  上层导线3-→C
  下层导线1-→A
  下层导线2-→B
  下层导线1-→C
  不难看出,上层导线3要同时负责B键与C键信号的传送,而在一条导线上只容许传送一个键位信号,所以导线3此时就无法作出正确的判断。但对下层导线所递送过来的信号同样会帮助键盘作出正确的决定。但遗憾的是,下层导线1又遇到了同样的问题,要同时传递A键与C键的信号。因此现在返回给控制芯片的信号组合是:上层导线1—下层导线1—上层导线3—下层导线2。本应3组的信号现在只传输了2组。
  那么如果我们将C键替换为D键(1,2),会是怎样的情况?请看对应关系:
  上层导线1-→A
  上层导线3-→B
  上层导线1-→D
  下层导线1-→A
  下层导线2-→B
  下层导线2-→D
  那么现在的信号组合方式依然是:上层导线1—下层导线1—上层导线3—下层导线2,和A、B、C键的信号组合方式居然一样!那么问题已经逐渐显现出来了,无论同时按下A、B、C键还是A、B、D键,都会得到一样的信号组合。究竟我们按下的是哪三个键?控制芯片又会做如何判断呢?
  为了防止误码的产生,大部分键盘就此问题的对策都都是将其中的某一个按键忽略掉,键位冲突也就这样出现了。当你同时按下A、B、C键或是A、B、D键时,可能只输出了其中的两个按键,而某一按键最终被放弃掉,不同键盘选择的忽略对象会不一样。
  其实我们通过坐标轴可以更清楚的反映出键位冲突的存在。只要在坐标系中,将3个按键的所对应的点连成一个三角形,如果其中出现了直角三角形的情况,那么我们就可以肯定,他们之间必然存在着键位冲突。
  对于这种“非编码式键盘”来讲,键位冲突是不可避免的。而“编码式键盘”是将ASCII码与每个按键绑定在了一起,所以在它身上就不会存在键位冲突的问题。现在市场上出售的键盘几乎都是“非编码式键盘”,这种键盘有着“编码式键盘”不可比拟的优势。它采用了键码分离的设计,这样即使改变了键盘布局,只需将新的键位信息刷到查找表中即可,而“编码式键盘”则要重新进行整合布线。同时“非编码式键盘”的设计相对简单许多,而且制造成本也更低廉。这也就是为什么“非编码式键盘”虽然存在瑕疵,但依然是现在键盘领域里的主流设计。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2011-8-23 23:34:55 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
3
发表于 2011-8-24 08:53:44 | 只看该作者

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-11-12 23:29 , Processed in 0.023394 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表