CN101943948B - 键盘扫描装置及键盘扫描方法 - Google Patents
键盘扫描装置及键盘扫描方法 Download PDFInfo
- Publication number
- CN101943948B CN101943948B CN2009101501444A CN200910150144A CN101943948B CN 101943948 B CN101943948 B CN 101943948B CN 2009101501444 A CN2009101501444 A CN 2009101501444A CN 200910150144 A CN200910150144 A CN 200910150144A CN 101943948 B CN101943948 B CN 101943948B
- Authority
- CN
- China
- Prior art keywords
- contact
- button
- resistance
- voltage
- side switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
一种键盘扫描装置及键盘扫描方法。上述键盘扫描装置包括接口装置、电阻模块、以及按键模块。接口装置具有多个电阻值和多个接点。电阻模块具有多个电阻值。按键模块包括多个按键。每一上述按键耦接于上述接点与电阻模块之间,根据一使用者的按键操作而导通或截止。当上述按键其中之一导通时,该接口装置的电阻值与电阻模块的电阻值的分压效应改变上述接点其中之一的电压。该接口装置使用上述接点的电压改变来判断按键是否被按下。本发明提供键盘扫描装置利用电阻分压效应,可用同样数量的脚位检测更多按键。就相同的按键数量而言,本发明可减少芯片的面积和脚位数量,进而提高芯片的市场竞争力。本发明也能缩短键盘扫描周期,提高效率。
Description
技术领域
本发明是有关于电子装置的键盘,且特别是有关于一种键盘扫描装置与其对应方法。
背景技术
键盘为一般电子产品的基本输入装置,例如家电、电脑、以及手机、个人数字助理(PDA:personal digital assistant)等手持式电子装置都会用到。为了得知使用者按下哪个按键,键盘必须有对应的扫描装置。
随着电子产品的功能与操作日益复杂,键盘的按键数量有升高的趋势。一般键盘的按键增加时,需要更多的芯片脚位来支持,芯片面积和外部元件也随之增加。在这样的趋势下,如果要维持芯片的市场竞争力,必须增加设计上的效率,也就是说,必须利用有限的脚位数量,尽可能增加支持的按键数量。
图1是一种传统键盘扫描装置的示意图,其中的I/O(input/output,输入/输出)接口装置110有P1-P10等十个I/O端口(I/O port)。每一个I/O端口对应一个芯片脚位,连接按键模块120其中的一个按键,例如I/O端口P1连接按键121。每一个I/O端口平时处于逻辑高电位,当使用者按下一个按键,会使其两端导通,接地端会将对应的I/O端口的电压下拉至逻辑低电位。I/O接口装置110就是根据以上的I/O端口电压改变,来判断哪一个按键被按下。如果I/O接口装置110有m个I/O端口,最多可检测m个按键。
图2是另一种传统键盘扫描装置的示意图,其中的I/O接口装置210有C1-C3以及R1-R4等七个I/O端口,这七个I/O端口连接键盘的七条传输线,彼此交叉,组成如图2所示的4x3矩阵。按键模块220包括十二个按键,例如左上角的按键221。十二个按键各自位于七条传输线的十二个交叉点上。
I/O接口装置210会以轮流方式,将脉冲(pulse)通过C1-C3这三个I/O端口其中之一发送至按键模块220,同时用R1-R4这四个I/O端口接收脉冲。此时如果有按键被按下,其交叉点会导通,使R1-R4这四个I/O端口其中之一接收到脉冲。根据发出脉冲的是哪一个I/O端口,以及收到脉冲的是哪一个I/O端口,I/O接口装置210可以判断使用者按下哪一个按键。举例而言,如果R1接收到C3发出的脉冲,则表示使用者按下了按键221。如果I/O接口装置210有m+n个I/O端口,最多可检测m*n个按键。
图3是另一种传统键盘扫描装置的示意图,取自美国专利案第5805085号,其中的I/O接口装置310有P1-P4等四个I/O端口。每一个I/O端口P1-P4连接W1-W4其中一条传输线,传输线W1-W4和V1-V2组成十四个交叉点,对应按键模块320其中的十四个按键,例如按键321和322。I/O接口装置310使用和图2的I/O接口装置210类似的脉冲扫描方式来检测按键,不过I/O接口装置310的每一个I/O端口P1-P4都有发送和接收脉冲的双重功能。如果I/O接口装置310有m个I/O端口,最多可检测m*(m+3)/2个按键。
发明内容
本发明提供一种键盘扫描装置,利用电阻分压的原理来检测按键,可用相同数量的脚位支持更多按键,增加芯片的竞争力。
本发明提供一种键盘扫描方法,适用于所述键盘扫描装置,可用相同数量的脚位检测更多按键,而且能缩短键盘扫描周期,提高效率。
本发明提出一种键盘扫描装置,包括接口装置、电阻模块以及按键模块。接口装置具有多个电阻值和多个接点。电阻模块具有多个电阻值。按键模块包括多个按键。每一所述按键耦接于所述接点与电阻模块之间,根据一使用者的按键操作而导通或截止。当所述按键其中之一导通时,通过接口装置的电阻值与电阻模块的电阻值的分压效应改变所述接点其中之一的电压。键盘扫描装置根据所述接点的电压改变来判断按键是否被按下。
接口装置包括多个接点电路,每一所述接点电路对应所述接点其中之一,耦接对应接点,并具有接口装置的电阻值其中之一。每一所述接点电路可使对应接点通过接点电路的电阻值耦接电源端或接地端,或使对应接点浮置,并检测对应接点的电压。
每一个所述接点电路可包括高位开关和低位开关。高位开关耦接于电源端与对应接点之间,根据高位使能信号而导通或截止。低位开关则耦接于对应接点与接地端之间,根据低位使能信号而导通或截止。高位开关与低位开关导通时的内部阻抗值皆等于接点电路的电阻值。当高位开关与低位开关皆截止时,对应接点为浮置状态。
在本发明的一实施例中,每一所述接点电路还包括一电压检测器。电压检测器耦接对应接点,检测并转换对应接点的电压。若对应接点的电压高于第一阀值,则电压检测器输出逻辑1。若对应接点的电压低于第二阀值,则电压检测器输出逻辑0。
电阻模块可包括第一电阻、第二电阻、以及多个第三电阻。第一电阻耦接于电源端与按键模块之间。第二电阻也耦接于电源端与按键模块之间。每一所述第三电阻对应所述接点其中之一,耦接于对应接点与接地端之间。
每一所述接点电路的电阻值大于第一电阻的电阻值,第二电阻的电阻值大于每一所述接点电路的电阻值。每一个第三电阻的电阻值可以相同也可以不相同,而且每一个第三电阻的电阻值皆大于第二电阻的电阻值。
按键模块可包括两个按键集合,各包括多个按键。其中,第一按键集合的每一按键耦接于所述接点其中之一以及第一电阻、第二电阻和接地端其中之一之间,根据使用者的按键操作而导通或截止。第二按键集合的每一按键耦接于所述接点其中之二之间,根据使用者的按键操作而导通或截止。
在本发明之一实施例中,每一所述接点耦接第一按键集合的三个按键。这三个按键当中,第一个按键耦接于该接点与第一电阻之间,第二个按键耦接于该接点与第二电阻之间,第三个按键则耦接于该接点与接地端之间。
在本发明的一实施例中,第二按键集合的按键和自所述多个接点任选其二的各种组合一一对应,而且第二按键集合的每一按键耦接于其对应组合的两个接点之间。
本发明另提出一种键盘扫描方法,适用于如上所述之键盘扫描装置,包括下列步骤。(a)选择多个状态其中之一作为扫描状态。所述多个状态是根据每一所述接点的接点电路的高位开关与低位开关的导通与截止状态而定义。(b)在扫描状态检测每一所述接点的电压。(c)根据预设规则选择下一个扫描状态,若有下一个扫描状态,则回到步骤(b)。(d)根据在每一所述扫描状态检测的每一所述接点的电压,查询一真值表,以判断按键模块其中哪一个按键被按下。
在本发明之一实施例中,所述的接点总数为m。所述多个状态的总数为2*m+1,编号分别为0至2*m,m为预设正整数。编号0的状态定义为每一所述接点对应的高位开关与低位开关皆为截止状态。编号2*i-1的状态定义为第i个所述接点对应的高位开关为导通状态,而且所述键盘扫描装置的其余高位开关和所有低位开关皆为截止状态。编号2*i的状态定义为第i个所述接点对应的低位开关为导通状态,而且所述键盘扫描装置的所有高位开关和其余低位开关皆为截止状态。i为正整数而且1<=i<=m。
在本发明的一实施例中,所述的步骤(b)包括以下步骤。对于在每一所述扫描状态检测的每一所述接点的电压,若此电压高于第一阀值,则将此电压转换为逻辑1;若此电压低于第二阀值,则将此电压转换为逻辑0。此外,步骤(d)包括以下步骤。根据所述的电压转换值查询真值表,以判断按键模块其中哪一个按键被按下。
在本发明的一实施例中,所述的真值表为包括多个行与多个列的二维表格。所述多个行与所述多个状态一一对应。所述多个列与按键模块的全部按键一一对应。所述每一行与所述每一列的交会处为一栏位,真值表的部分栏位各包括一记录。所述记录包括所述接点其中之一的编号,以及此记录对应的按键被按下时,所述接点在此记录对应的状态中应有的电压转换值。
在本发明的一实施例中,所述之步骤(a)包括以下步骤。选择真值表的第一行对应的状态作为扫描状态。
在本发明的一实施例中,所述的预设规则包括以下步骤。若步骤(b)的扫描状态对应真值表的最后一行,则判断为没有下一个扫描状态,否则以真值表中下一行对应的状态作为下一个扫描状态。
在本发明的另一实施例中,所述的预设规则包括以下步骤。(状况一)若在步骤(b)的扫描状态检测的所述多个接点的电压的转换值不符合真值表中扫描状态对应行的每一记录,而且扫描状态的对应行并非真值表的最后一行,则以真值表中下一行对应的状态作为下一个扫描状态。(状况二)若所述转换值不符合扫描状态对应行的每一记录,而且扫描状态对应真值表的最后一行,则判断为没有下一个扫描状态。(状况三)若所述转换值符合扫描状态对应行的记录其中之一,而且符合的记录所属的列还包括下一个记录,则以下一个记录对应的状态作为下一个扫描状态。(状况四)若所述转换值符合扫描状态对应行的记录其中之一,而且符合的记录所属的列没有下一个记录,则判断为没有下一个扫描状态。
在本发明的一实施例中,所述的真值表的每一列包括至少一个记录,而且步骤(d)包括以下步骤。若在每一所述扫描状态检测的所述多个接点的电压的转换值符合真值表其中一列包括的所有记录,则判断该列对应的按键被按下。
基于上述,本发明提供一种简单新颖的键盘扫描架构,利用电阻分压效应,可用同样数量的脚位检测更多按键。就相同的按键数量而言,本发明可减少芯片的面积和脚位数量,进而提高芯片的市场竞争力。此外,本发明也能跳过不必要的扫描状态,以缩短键盘扫描周期,提高效率。
附图说明
图1、图2和图3是已知的三种键盘扫描装置的示意图;
图4是依照本发明一实施例的一种键盘扫描装置的示意图;
图5是依照本发明一实施例的一种键盘扫描方法的流程图;
图6是依照本发明另一实施例的另一种键盘扫描方法的流程图;
图7是依照本发明另一实施例的另一种键盘扫描方法的流程图。
附图标号
110、210、310、410:I/O接口装置
120、220、320、420:按键模块
121、221、321、322:按键
411:接点电路
415:电压检测器
421、422:按键集合
430:电阻模块
505-530、605、620-625、720-730:流程图步骤
GND:接地端
A-L:按键
C1-C3、P1-P10、R1-R4:I/O端口
IN、PH_EN、PL_EN:电路信号
PAD1-PAD3:接点
R1、R2、R31、R32、R33:电阻
RH:高位开关
RL:低位开关
VCC、Vcc:电源端
V1、V2、W1-W4:传输线
具体实施方式
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
图4为依照本发明一实施例的键盘扫描装置的示意图。图4的键盘扫描装置包括I/O接口装置410、按键模块420、以及电阻模块430。按键模块420包括两个按键集合421和422。电阻模块430包括第一电阻R1、第二电阻R2、以及三个第三电阻R31-R33。I/O接口装置410包括在一芯片中,有三个接点PAD1-PAD3,PAD1-PAD3同时也是芯片对外的连接脚位。I/O接口装置410也包括三个接点电路,和三个接点PAD1-PAD3一一对应。为了简单起见,图4仅绘示对应接点PAD1的接点电路411,以下说明也是以接点电路411为范例,三个接点电路的功能和构造完全相同。
接点电路411包括高位开关RH、低位开关RL、以及电压检测器415。高位开关RH耦接于电源端VCC与对应的接点PAD1之间,根据高位使能信号PH_EN而导通或截止。电源端VCC提供电源电压(同样标示为VCC)。低位开关RL耦接于对应的接点PAD1与接地端GND之间,根据低位使能信号PL_EN而导通或截止。高位开关RH与低位开关RL导通时的电阻值皆为预设的10KΩ。高位开关RH导通而且低位开关RL截止时,接点PAD1通过高位开关RH耦接电源端VCC;高位开关RH截止而且低位开关RL导通时,接点PAD1通过低位开关RL耦接接地端GND;当高位开关RH与低位开关RL皆截止时,接点PAD1为浮置(floating)。本实施例中,高位开关RH与低位开关RL都是利用金属氧化物半导体场效应晶体管(MOSFET:metal oxidesemiconductor field effect transistor),其导通时的电阻值是金属氧化物半导体场效应晶体管导通时的内部阻抗值(impedance)。但本发明并不限定于此,可利用导通时具有内部阻抗值的任何开关元件。
电压检测器415耦接对应的接点PAD1,用来检测对应接点PAD1的电压,并且将接点PAD1的电压转换为逻辑值。电压检测器415有两个阀值(threshold)VIL和VIH;若对应接点PAD1的电压高于阀值VIH,则电压检测器415输出逻辑1;若对应接点PAD1的电压低于阀值VIL,则电压检测器415输出逻辑0。阀值VIH大于阀值VIL。本实施例的电压检测器415是施密特激发器(Schmidt trigger),但本发明并不限定于此,也可以采用其他如程度激发器(level trigger)等具有等效功能的电路或元件。
第一电阻R1耦接于电源端VCC与按键集合421之间,第二电阻R2同样耦接于电源端VCC与按键集合421之间。按键集合421包括九个按键A-I。PAD1至PAD3其中每一个接点皆耦接按键集合421的三个按键(例如接点PAD1耦接按键A、B、C)。这三个按键当中,第一个按键(例如A)耦接于上述接点与第一电阻R1之间,第二个按键(例如B)耦接于上述接点与第二电阻R2之间,第三个按键(例如C)则耦接于上述接点与接地端GND之间。
按键集合422包括三个按键J-L,这些按键和自接点PAD1-PAD3任选其二的各种组合一一对应,而且每一个按键J-L耦接于其对应组合的两个接点之间。更详细的说,自接点PAD1-PAD3任选其二,总共有三种组合,分别是(PAD1,PAD2)、(PAD2,PAD3)、以及(PAD1,PAD3),这三种组合分别对应按键J、K、L。也就是说,按键J耦接于接点PAD1和PAD2之间,按键K耦接于接点PAD2和PAD3之间,按键L则耦接于接点PAD1和PAD3之间。图4电路是某个电子装置的一部分,这个电子装置也包括一个键盘(未绘示)。按键集合421和422的A-L都是上述键盘其中的按键,每个按键A-L皆根据使用者的按键操作而导通或截止。
三个第三电阻R31-R33分别对应三个接点PAD1-PAD3。每一个第三电阻R31-R33耦接于对应接点与接地端GND之间。本实施例中,高位开关RH与低位开关RL导通时的电阻值皆为10KΩ,第一电阻R1的电阻值为1KΩ,第二电阻R2的电阻值为100KΩ,每一个第三电阻R31-R33的电阻值皆为1MΩ。以电阻值从小到大排序,首先是第一电阻R1,然后是高位开关RH与低位开关RL,然后是第二电阻R2,最后是第三电阻R31-R33。
图5是I/O接口装置410执行的键盘扫描方法的流程图。简单的说,当使用者按下按键A-L其中之一,使其导通,I/O接口装置410其中的高位开关RH和低位开关RL的电阻值以及电阻模块430其中R1、R2和R31-R33的电阻值的分压效应,会改变接点PAD1-PAD3其中之一的电压。I/O接口装置410使用图5的键盘扫描方法,根据接点PAD1-PAD3的电压改变,来判断按键模块420当中是否有按键被按下。图4的键盘扫描装置就是利用上述的电阻分压效应,达成键盘扫描功能,以及按键数量的最大化。
图5的流程从步骤505开始。首先,选择七个预设状态其中之一作为扫描状态(步骤505)。上述的状态是根据每一个接点PAD1-PAD3的对应接点电路的高位开关RH与低位开关RL的导通与截止状态而定义,如下面的表1所示。
表1,键盘扫描的状态说明
状态 | 接点控制动作 |
S0 | 接点PAD1-PAD3全部浮置 |
S1 | 接点PAD1耦接电源端VCC,其余接点浮置 |
S2 | 接点PAD1耦接接地端GND,其余接点浮置 |
S3 | 接点PAD2耦接电源端VCC,其余接点浮置 |
S4 | 接点PAD2耦接接地端GND,其余接点浮置 |
S5 | 接点PAD3耦接电源端VCC,其余接点浮置 |
S6 | 接点PAD3耦接接地端GND,其余接点浮置 |
I/O接口装置410有三个接点PAD1-PAD3,有七个状态S0-S6,其中S0是三个接点全部浮置,其余的六个状态S1-S6中,分别有一个接点耦接电源端VCC或接地端GND,其余两个接点都是浮置。
选择扫描状态之后,I/O接口装置410进入所选的扫描状态,检测每一个接点PAD1-PAD3的电压(步骤510)。进入扫描状态时,必须对每一个接点执行对应的控制动作。例如在状态S0,I/O接口装置410会送出对应的高位使能信号PH_EN和低位使能信号PL_EN,使所有接点PAD1-PAD3对应的高位开关RH和低位开关RL全部截止。在状态S1,I/O接口装置410会送出对应的高位使能信号PH_EN和低位使能信号PL_EN,使接点PAD1对应的高位开关RH导通,其余两个接点的高位开关RH和所有接点的低位开关RL全部截止。
接下来,对应每个接点PAD1-PAD3的电压检测器415将步骤510检测到的每一个接点电压和阈值VIH、VIL作比较。若接点电压高于阀值VIH,则输出逻辑1;若接点电压低于阀值VIL,则输出逻辑0(步骤515)。然后I/O接口装置410根据预设规则(细节后述)选择下一个扫描状态(步骤520)。如果有下一个扫描状态,流程会回到步骤510,在下一个扫描状态检测各接点的电压。如果已经没有下一个状态,就根据上述的接点电压所转换的逻辑值,查询下列的真值表(truth table)(步骤525),以判断按键模块420其中哪一个按键被按下(步骤530)。
如下列的表2所示,真值表是包括七个行与十二个列的二维表格,其中七个行与状态S0-S6一一对应,十二个列与按键模块420的全部按键A-L一一对应。每一行与每一列的交会处为一栏位,其中一部分栏位各包括一个记录。这个记录包括接点PAD1-PAD3其中之一的编号,以及这个记录所对应的按键被按下时,上述接点在这个记录所对应的状态中应有的电压转换值。例如在按键B和状态S2交会处的记录为(PAD1,0),其中的0表示按键B被按下时,接点PAD1在状态S2的电压,应该被电压检测器415转换为逻辑值0。
表2,键盘扫描真值表
按键 | S0 | S1 | S2 | S3 | S4 | S5 | S6 |
A | PAD1,1 | PAD1,1 | |||||
B | PAD1,1 | PAD1,0 |
C | PAD1,0 | ||||||
D | PAD2,1 | PAD2,1 | |||||
E | PAD2,1 | PAD2,0 | |||||
F | PAD2,0 | ||||||
G | PAD3,1 | PAD3,1 | |||||
H | PAD3,1 | PAD3,0 | |||||
I | PAD3,0 | ||||||
J | PAD2,1 | PAD1,1 | |||||
K | PAD3,1 | PAD2,1 | |||||
L | PAD3,1 | PAD1,1 |
本实施例假设使用者一次只会按下一个按键。在步骤530的按键判断中,如果在状态S0-S6检测的接点电压转换值符合真值表其中一列包括的所有记录,则判断使用者按下了该列所对应的按键。举例而言,如果接点PAD1在状态S0的逻辑值为1,而且在状态S2的逻辑值为0,则判断使用者按下了按键B。如果接点PAD1在状态S1的逻辑值为0,则判断使用者按下了按键C。
按键模块420其中的按键可分为四类。第一类按键包括A、D、G,耦接于对应接点和第一电阻R1之间。第二类按键包括B、E、H,耦接于对应接点和第二电阻R2之间。第三类按键包括C、F、I,耦接于对应接点和接地端GND之间。第四类按键包括J、K、L,耦接于两个接点之间。以下对应这四类按键,分别说明真值表的构成原理。
第一类按键以A为范例。当使用者在状态S0按下按键A,接点PAD1会通过按键A和第一电阻R1耦接电源端VCC,同时通过第三电阻R31耦接接地端GND。此时接点PAD1的电压为VCC*R3/(R1+R3),由于第一电阻R1的电阻值远小于第三电阻R31的电阻值,接点PAD1的电压会接近VCC,使对应的电压检测器415输出逻辑1。
第二类按键以B为范例,同理,当使用者在状态S0按下按键B,对应接点PAD2的电压检测器415也会输出逻辑1。按键A和B在状态S0有相同的记录,所以,状态S0只能确定按键A和B其中之一被按下,但无法确认是A还是B被按下。必须进入状态S2,才能进一步确定是A还是B被按下。
在状态S2,接点PAD1通过导通的低位开关RL耦接接地端GND,同时也通过第三电阻R31耦接接地端GND,接点PAD2和PAD3浮置。如果按键A被按下,接点PAD1会通过按键A和第一电阻R1耦接电源端VCC。由于第一电阻R1的电阻值远小于低位开关RL和第三电阻R31的电阻值,电阻分压的结果会使PAD1的电压接近VCC,使对应的电压检测器415输出逻辑1。如果按键B被按下,接点PAD1会通过按键B和第二电阻R2耦接电源端VCC。由于第二电阻R2的电阻值远大于低位开关RL的电阻值,电阻分压的结果会使PAD1的电压接近0,使对应的电压检测器415输出逻辑0。至于第三电阻R31,因为电阻值太大,而且和低电阻的低位开关RL并联,对电阻分压影响不大。根据以上逻辑值的不同,就可以在状态S2分辨按键A和按键B。其他的第一类和第二类按键D、E、G、H的判断方式类似按键A和按键B,不再赘述。
第三类按键以C为范例。在状态S1,接点PAD1通过导通的高位开关RH耦接电源端VCC,同时通过第三电阻R31耦接接地端GND,接点PAD2和PAD3浮置。由于第三电阻R31的电阻值远大于高位开关RH的电阻值,电阻分压的结果会使PAD1的电压接近VCC,使对应的电压检测器415输出逻辑1。当使用者按下按键C,接点PAD1会通过按键C耦接接地端GND,使其电压下降至0,使对应的电压检测器415输出逻辑0。因此,通过接点PAD1在状态S1的逻辑值0,可判断按键C被按下。其他的第三类按键F、I的判断方式类似按键C,不再赘述。
第四类按键以J为范例。在状态S1,接点PAD1通过导通的高位开关RH耦接电源端VCC,同时通过第三电阻R31耦接接地端GND,接点PAD2和PAD3浮置。由于第三电阻R31的电阻值远大于高位开关RH的电阻值,电阻分压的结果会使PAD1的电压接近VCC。当使用者按下按键J,接点PAD2和PAD1导通,电压会上升到接近VCC,使对应PAD2的电压检测器415输出逻辑1。但此时还不能完全确定按键J被按下,因为按下按键D或E同样会使对应PAD2的电压检测器415输出逻辑1。因此要在状态S3作进一步确认。在状态S3的情况和上述的状态S1类似,接点PAD2透过导通的高位开关RH耦接电源端VCC,电阻分压的结果使PAD2的电压接近VCC,若使用者按下按键J,会使PAD1和PAD2导通,使对应PAD1的电压检测器415输出逻辑1。另一方面,如果使用者在状态S3按下按键D或E,就不会使对应PAD1的电压检测器415输出逻辑1。所以,如果PAD2在状态S1出现逻辑1,而且PAD1在状态S3出现逻辑1,就可以确定按键J被按下。其他的第四类按键K、L的判断方式类似按键J,不再赘述。
图4的实施例中,高位开关RH和低位开关RL的电阻值是第一电阻R1的十倍,第二电阻R2的电阻值是高位开关RH和低位开关RL的十倍,第三电阻R31-R33的电阻值又是第二电阻R2的十倍。其实本发明并不限定十倍的倍数关系,以上电阻值的倍数关系可依据电源电压VCC以及电压检测器415的阀值VIL和VIH计算产生,以下说明上述电阻值的倍数关系的一般规则。
假设高位开关RH和低位开关RL的电阻值是第一电阻R1的r1倍,第二电阻R2的电阻值是高位开关RH和低位开关RL的r2倍,第三电阻R31-R33的电阻值是第二电阻R2的r3倍,r1、r2和r3都是预设常数。真值表中每一个记录表示在某个状态按下某个键,这时候其对应接点的电压是由电源电压VCC、高位开关RH、低位开关RL、第一电阻R1、第二电阻R2、以及第三电阻R31-R33之间的分压结果来决定。如果上述记录的逻辑值为1,其对应接点的电压必须大于电压检测器的阀值VIH。反之,如果上述记录的逻辑值为0,其对应接点的电压必须小于电压检测器的阀值VIL。
举例而言,如果在状态S0按下按键B,此时接点PAD1通过第二电阻R2耦接电源端VCC,同时通过第三电阻R31耦接接地端GND。接点PAD1的电压为VCC*R31/(R2+R31),此电压必须大于阀值VIH。R31=r3*R2,代入上述的电压公式可得r3>VIH/(VCC-VIH)。
如果在状态S1按下按键J,此时接点PAD2通过导通的高位开关RH耦接电源端VCC,同时通过第三电阻R31和R32耦接接地端GND。也就是说,PAD2和电源端VCC之间的电阻值为RH,和接地端GND之间的等效电阻值为r2*r3*RH/2,而且PAD2的分压结果必须大于阀值VIH。计算之后可得r2*r3>2*VIH/(VCC-VIH)。
使用上述计算方式,真值表的每一个记录都会产生一个r1、r2和r3的数值范围公式,而且上述的四个分类当中,同一类按键的状况雷同,不必重复计算。电源电压VCC以及阀值VIH、VIL的数值都是已知的,只要预设常数r1、r2和r3符合真值表的每一个记录所衍生的数值范围公式,就可以保证其对应的键盘扫描装置能正常操作。
图6为根据本发明另一实施例的另一种键盘扫描方法的流程图,图6和图5的主要差别是包括在步骤520用来选择下一个扫描状态的预设规则的细节。首先,选择真值表第一行的对应状态作为扫描状态(步骤605)。后面的步骤510、515和图5的对应步骤相同。接下来,检查扫描状态是否已到达真值表最后一行(步骤620)。如果已到达最后一行,就没有下一个扫描状态,后面的步骤525、530和图5的对应步骤相同。如果还没到真值表最后一行,就以真值表中下一行的对应状态作为下一个扫描状态(步骤625),然后回到步骤510,进入下一个扫描状态,检测每一个接点PAD1-PAD3的电压。图6流程的预设规则,就是从真值表第一行的状态开始,逐行扫描,直到最后一行。
图7是依据本发明另一实施例的另一种键盘扫描方法的流程图,其中包括另一种预设规则的细节。第一个步骤605和图6的对应步骤相同,后面的步骤510、515和图5的对应步骤相同。接下来,检查在步骤515转换的接点电压逻辑值是否符合真值表中扫描状态对应行的任何一个记录(步骤720)。如果没有符合的记录,接下来的步骤620、625和图6的对应步骤相同。也就是说,先采用逐行扫描,直到发现符合的记录为止。
如果在步骤720发现有符合的记录,就检查符合的那个记录所属的列是否还有下一个记录(步骤725)。如果没有下一个记录,键盘扫描就可以提前终止,接下来的步骤525、530和图5的对应步骤相同,不再赘述。举例而言,如果扫描状态是S1,而且接点的逻辑值符合按键C的记录,由于同一列的后面没有其他记录,键盘扫描可以提前终止。如果在步骤725发现还有下一个记录,则以下一个记录对应的状态作为下一个扫描状态(步骤730),然后回到步骤510,在下一个扫描状态检测每一个接点PAD1-PAD3的电压。举例而言,如果扫描状态是S3,而且接点的逻辑值符合按键K的记录,由于同一列的下一个记录位在状态S5,步骤730会跳过S4,选择S5作为下一个扫描状态。图7的预设规则一开始是依据真值表逐行扫描,但是有符合的状态之后,就会跳过不必要的状态,以缩短键盘扫描时间。
图4的实施例仅包括三个接点PAD1-PAD3,而本发明并不限定只能有三个接点。如果某个实施例的I/O接口装置410有m个接点,m为预设正整数,则按键集合421会包括m*3个按键,每个接点耦接其中三个按键,每个接点与其对应的三个按键的耦接方式如同图4的PAD1和按键A、B、C。按键集合422会包括m*(m-1)/2个按键,这些按键和自m个接点任取其二的各种组合一一对应,每个按键耦接于对应组合的两个接点之间。
如果有m个接点,则I/O接口装置410会有2*m+1个扫描状态,编号分别为0至2*m。其中,编号0的状态定义为每一个接点对应的高位开关RH与低位开关RL皆为截止状态,也就是说,m个接点皆为浮置。编号2*i-1的状态定义为第i个接点对应的高位开关RH为导通状态,其余接点的高位开关RH和所有低位开关RL皆为截止状态。也就是说,第i个接点通过高位开关RH耦接电源端VCC,其余接点皆为浮置。编号2*i的状态定义为第i个接点对应的低位开关RL为导通状态,所有高位开关RH和其余接点的低位开关RL皆为截止状态。也就是说,第i个接点通过低位开关RL耦接接地端GND,其余接点皆为浮置。i为正整数而且1<=i<=m。
如果有m个接点,按键模块420总共有3*m+m*(m-1)/2个按键。真值表会有2*m+1行,和2*m+1个状态一一对应,会有3*m+m*(m-1)/2个列,和3*m+m*(m-1)/2个按键一一对应。上述3*m+m*(m-1)/2个按键和图4的按键一样可分为四类,所以对应的真值表和表2大同小异,本领域技术人员可以毫无疑义地根据以上说明推算出对应m个接点的真值表。具有m个接点的I/O接口装置410所执行的键盘扫描方法流程仍然和图5至图7的流程相同。
下面的表3列出,脚位数量相同时,图4的本发明实施例和图1至图3的各种现有技术所能支持的最大按键数量。从表3不难看出,使用同样数量的脚位,本发明可支持的按键数量最多。
表3,可支持的最大按键数量比较
脚位数量 | 图1电路 | 图2电路 | 图3电路 | 图4实施例 |
3 | 3 | 2 | 9 | 12 |
4 | 4 | 4 | 14 | 18 |
5 | 5 | 6 | 20 | 25 |
6 | 6 | 9 | 27 | 33 |
综上所述,本发明提供一种简单新颖的键盘扫描架构,以及对应的键盘扫描方法,利用电阻分压效应,可用同样数量的脚位检测更多按键。就相同的按键数量而言,本发明可减少芯片的面积和脚位数量,进而提高芯片的市场竞争力。此外,本发明也能跳过不必要的扫描状态,以缩短键盘扫描周期,提高扫描效率。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视前附的权利要求书范围所界定为准。
Claims (13)
1.一种键盘扫描装置,其特征在于,所述键盘扫描装置包括:
一接口装置,包括多个接点和多个接点电路,每一所述接点电路对应所述接点其中之一,每一所述接点电路包括:
一高位开关,耦接于电源端与所述对应接点之间,根据一高位使能信号而导通或截止;
一低位开关,耦接于所述对应接点与接地端之间,根据一低位使能信号而导通或截止,其中所述高位开关与所述低位开关导通时的内部阻抗值皆等于所述接点电路的电阻值;当所述高位开关与所述低位开关皆截止时,所述对应接点为浮置状态;以及
一电压检测器,耦接所述对应接点,检测所述对应接点的电压;
一电阻模块,包括多个不同电阻值的电阻,其中部分电阻耦接所述电源端,而部分电阻耦接所述接点和所述接地端之间;以及
一按键模块,包括多个按键;每一所述按键耦接于所述接点与所述电阻之间,或耦接于所述接点与所述接地端之间,根据一使用者的按键操作而导通或截止,
当所述按键其中之一导通时,通过所述接点电路的电阻值与所述电阻模块的电阻值的分压效应,改变所述接点其中之一的电压,使所述键盘扫描装置根据所述接点的电压改变来判断所述按键是否被按下。
2.如权利要求1所述的键盘扫描装置,其特征在于,在每一所述接点电路中,若所述对应接点的电压高于一第一阀值,则所述电压检测器输出逻辑1,若所述对应接点的电压低于一第二阀值,则所述电压检测器输出逻辑0。
3.如权利要求1所述的键盘扫描装置,其特征在于,所述电阻模块包括:
一第一电阻,耦接于所述电源端与所述按键模块之间;
一第二电阻,耦接于所述电源端与所述按键模块之间;以及
多个第三电阻,每一所述第三电阻对应所述接点其中之一,耦接于所述对应接点与所述接地端之间。
4.如权利要求3所述的键盘扫描装置,其特征在于,每一所述接点电路的电阻值大于所述第一电阻的电阻值,所述第二电阻的电阻值大于每一所述接点电路的电阻值,而且每一所述第三电阻的电阻值大于所述第二电阻的电阻值。
5.如权利要求3所述的键盘扫描装置,其特征在于,所述按键模块包括:
一第一按键集合,包括多个按键,所述第一按键集合的每一按键耦接于所述接点其中之一以及所述第一电阻、所述第二电阻和所述接地端其中之一之间,根据所述使用者的按键操作而导通或截止;以及
一第二按键集合,包括多个按键,所述第二按键集合的每一按键耦接于所述任意二个接点之间,根据所述使用者的按键操作而导通或截止。
6.如权利要求5所述的键盘扫描装置,其特征在于,每一所述接点耦接所述第一按键集合的三个按键,所述三个按键当中,第一个按键耦接于所述接点与所述第一电阻之间,第二个按键耦接于所述接点与所述第二电阻之间,第三个按键耦接于所述接点与所述接地端之间,其中所述第二按键集合的按键和自所述多个接点任选其二的各种组合一一对应,而且所述第二按键集合的每一按键耦接于所述对应组合的两个接点之间。
7.一种适用于权利要求1的键盘扫描装置的键盘扫描方法,其特征在于,所述键盘扫描方法包括:
(a)选择多个状态其中之一作为扫描状态,其中每一所述状态的定义是每一所述接点对应的所述高位开关与所述低位开关皆为截止状态,或是所述键盘扫描装置的高位开关其中之一为导通状态而且其余高位开关和所有低位开关皆为截止状态,或是所述键盘扫描装置的低位开关其中之一为导通状态而且其余低位开关和所有高位开关皆为截止状态;
(b)在所述扫描状态检测每一所述接点的电压,并根据每一所述接点的电压和两个阀值的比较,将每一所述接点的电压转换为对应的转换值;
(c)根据一预设规则选择下一个扫描状态,若有下一个扫描状态,则回到步骤(b);以及
(d)根据在每一所述扫描状态检测的每一所述接点的电压,查询一真值表,以判断所述按键模块其中哪一个按键被按下,其中所述真值表包括多个记录,每一所述记录对应所述多个状态其中之一、所述按键模块的全部按键其中之一、以及所述多个接点其中之一,每一所述记录包括所述对应按键被按下时,所述对应接点在所述对应状态中应有的电压转换值。
8.如权利要求7所述的键盘扫描方法,其特征在于,所述接点的总数为m;所述多个状态的总数为2*m+1,编号分别为0至2*m;m为预设正整数;编号0的所述状态定义为每一所述接点对应的所述高位开关与所述低位开关皆为截止状态;编号2*i-1的所述状态定义为第i个所述接点对应的所述高位开关为导通状态,而且所述键盘扫描装置的其余高位开关和所有低位开关皆为截止状态;编号2*i的所述状态定义为第i个所述接点对应的所述低位开关为导通状态,而且所述键盘扫描装置的所有高位开关和其余低位开关皆为截止状态;i为正整数而且1<=i<=m。
9.如权利要求7所述的键盘扫描方法,其特征在于,步骤(b)包括:
对于在每一所述扫描状态检测的每一所述接点的电压,若所述电压高于一第一阀值,则将所述电压转换为逻辑1,若所述电压低于一第二阀值,则将所述电压转换为逻辑0;
而且步骤(d)包括:
根据所述的电压转换值查询所述真值表,以判断所述按键模块其中哪一个按键被按下。
10.如权利要求9所述的键盘扫描方法,其特征在于,所述真值表为包括多个行与多个列的二维表格,所述多个行与所述多个状态一一对应,所述多个列与所述按键模块的全部按键一一对应,所述每一行与所述每一列的交会处为一栏位,所述真值表的部分栏位各包括所述多个记录其中之一,每一所述记录对应其所属栏位对应的所述状态以及其所属栏位对应的所述按键,每一所述记录包括所述对应接点的编号以及所述对应按键被按下时,所述对应接点在所述对应状态中应有的电压转换值,其中步骤(a)包括:
选择所述真值表的第一行对应的所述状态作为所述扫描状态。
11.如权利要求10所述的键盘扫描方法,其特征在于,所述预设规则包括:
若步骤(b)的所述扫描状态对应所述真值表的最后一行,则判断为没有下一个扫描状态,否则以所述真值表中下一行对应的所述状态作为下一个扫描状态。
12.如权利要求10所述的键盘扫描方法,其特征在于,所述预设规则包括:
若在步骤(b)的所述扫描状态检测的所述多个接点的电压的转换值不符合所述真值表中所述扫描状态对应的所述行的每一记录,而且所述扫描状态对应的所述行并非所述真值表的最后一行,则以所述真值表中下一行对应的所述状态作为下一个扫描状态;
若所述转换值不符合所述扫描状态对应的所述行的每一记录,而且所述扫描状态对应所述真值表的最后一行,则判断为没有下一个扫描状态;
若所述转换值符合所述扫描状态对应的所述行的记录其中之一,而且符合的所述记录所属的所述列还包括下一个记录,则以所述下一个记录对应的所述状态作为下一个扫描状态;以及
若所述转换值符合所述扫描状态对应的所述行的记录其中之一,而且符合的所述记录所属的所述列没有下一个记录,则判断为没有下一个扫描状态。
13.如权利要求10所述的键盘扫描方法,其特征在于,所述真值表的每一列包括至少一个所述记录,而且步骤(d)包括:
若在每一所述扫描状态检测的所述多个接点的电压的转换值符合所述真值表其中一列包括的所有记录,则判断所述列对应的所述按键被按下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101501444A CN101943948B (zh) | 2009-07-07 | 2009-07-07 | 键盘扫描装置及键盘扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101501444A CN101943948B (zh) | 2009-07-07 | 2009-07-07 | 键盘扫描装置及键盘扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101943948A CN101943948A (zh) | 2011-01-12 |
CN101943948B true CN101943948B (zh) | 2012-11-14 |
Family
ID=43435972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101501444A Expired - Fee Related CN101943948B (zh) | 2009-07-07 | 2009-07-07 | 键盘扫描装置及键盘扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101943948B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289292A (zh) * | 2011-06-28 | 2011-12-21 | 埃派克森微电子(上海)股份有限公司 | 按键检测装置与方法 |
CN102354265A (zh) * | 2011-06-28 | 2012-02-15 | 埃派克森微电子(上海)股份有限公司 | 按键检测装置及方法 |
CN102289293A (zh) * | 2011-06-28 | 2011-12-21 | 埃派克森微电子(上海)股份有限公司 | 按键检测装置和方法 |
CN103455148B (zh) * | 2012-05-31 | 2016-06-29 | 展讯通信(上海)有限公司 | 一种键盘和按键检测方法、以及移动设备 |
CN108388353B (zh) * | 2016-01-05 | 2021-03-16 | 湖南工业大学 | 一种独立式键盘操作识别及编码方法 |
CN105677050B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 独立式键盘扫描电路及扫描编码方法 |
CN105700695B (zh) * | 2016-01-05 | 2018-07-24 | 湖南工业大学 | 矩阵式键盘扫描电路及编码电路 |
CN105677051B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 独立式键盘扫描电路及编码电路 |
CN108491091B (zh) * | 2016-01-05 | 2019-10-18 | 湖南工业大学 | 一种独立式键盘状态识别及编码方法 |
CN105700696B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 矩阵式键盘扫描编码电路 |
CN108847847B (zh) * | 2016-01-05 | 2022-03-18 | 湖南工业大学 | 一种键盘状态变化脉冲产生方法 |
CN105677055B (zh) * | 2016-01-05 | 2018-06-15 | 湖南工业大学 | 矩阵式键盘扫描电路及方法 |
CN105700697B (zh) * | 2016-01-05 | 2018-05-25 | 湖南工业大学 | 独立式键盘扫描电路及方法 |
CN107957790A (zh) * | 2017-12-11 | 2018-04-24 | 广东虹勤通讯技术有限公司 | 一种pc键盘动态响应控制方法、装置、设备及存储介质 |
CN110908520B (zh) * | 2018-09-14 | 2024-02-09 | 东普雷股份有限公司 | 静电电容式键盘 |
CN109725815B (zh) * | 2019-01-09 | 2021-02-23 | 北京数衍科技有限公司 | 扫描枪与键盘数据输入的区分方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1037042A (zh) * | 1988-04-04 | 1989-11-08 | 约翰弗兰克制造公司 | 键盘扫描器装置及方法 |
CN1304079A (zh) * | 1999-12-14 | 2001-07-18 | 达方电子股份有限公司 | 一种按键扫描电路 |
US6577250B1 (en) * | 2000-05-19 | 2003-06-10 | Microsoft Corporation | Resistance based keyboard key discrimination |
CN2669264Y (zh) * | 2004-01-02 | 2005-01-05 | 广东科龙电器股份有限公司 | 键盘扫描电路 |
CN2816909Y (zh) * | 2004-10-14 | 2006-09-13 | 上海环达计算机科技有限公司 | 键盘扫描装置 |
CN101013896A (zh) * | 2006-11-01 | 2007-08-08 | 深圳市菉华半导体有限公司 | 键盘扫描电路及其扫描方法 |
CN101162905A (zh) * | 2006-10-13 | 2008-04-16 | 鸿富锦精密工业(深圳)有限公司 | 键盘扫描电路及方法 |
CN101436854A (zh) * | 2007-11-15 | 2009-05-20 | 宝利通公司 | 双触点键盘装置 |
-
2009
- 2009-07-07 CN CN2009101501444A patent/CN101943948B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1037042A (zh) * | 1988-04-04 | 1989-11-08 | 约翰弗兰克制造公司 | 键盘扫描器装置及方法 |
CN1304079A (zh) * | 1999-12-14 | 2001-07-18 | 达方电子股份有限公司 | 一种按键扫描电路 |
US6577250B1 (en) * | 2000-05-19 | 2003-06-10 | Microsoft Corporation | Resistance based keyboard key discrimination |
CN2669264Y (zh) * | 2004-01-02 | 2005-01-05 | 广东科龙电器股份有限公司 | 键盘扫描电路 |
CN2816909Y (zh) * | 2004-10-14 | 2006-09-13 | 上海环达计算机科技有限公司 | 键盘扫描装置 |
CN101162905A (zh) * | 2006-10-13 | 2008-04-16 | 鸿富锦精密工业(深圳)有限公司 | 键盘扫描电路及方法 |
CN101013896A (zh) * | 2006-11-01 | 2007-08-08 | 深圳市菉华半导体有限公司 | 键盘扫描电路及其扫描方法 |
CN101436854A (zh) * | 2007-11-15 | 2009-05-20 | 宝利通公司 | 双触点键盘装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101943948A (zh) | 2011-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101943948B (zh) | 键盘扫描装置及键盘扫描方法 | |
CN205193772U (zh) | 短路检测电路、短路检测模块以及电子装置 | |
CN102484475B (zh) | 使用模拟输入及数字输出进行的电容性键触摸感测 | |
US8780048B2 (en) | Membrane keyboard scan circuit, scan method and keyboard having the same | |
CN1703033B (zh) | 数据传输设备和用于其的数据接收设备 | |
CN103036552A (zh) | 静电侦测电路 | |
CN101995956B (zh) | 键盘、键盘扫描电路及方法 | |
WO2007129811A1 (en) | Input device | |
CN101414828B (zh) | 源极驱动器及其数字/模拟转换器 | |
CN105895629B (zh) | 采用栅极浮置方案的esd保护系统及其控制电路 | |
CN101089644A (zh) | 测试电路、选择器和半导体集成电路 | |
CN102760089A (zh) | 主板诊断卡 | |
CN103178820A (zh) | 上电复位电路 | |
CN102063868A (zh) | 具背光控制的电子装置及其控制方法 | |
US8674726B2 (en) | Multi-level chip input circuit | |
TWI612443B (zh) | 鍵盤裝置 | |
US7777650B2 (en) | Key system with two operation nodes for detecting status of keys | |
US6980135B2 (en) | Logic circuit using hardware to process keyboard scanning | |
CN107656169B (zh) | 显示面板、显示装置和显示面板的检测方法 | |
CN107942186B (zh) | 检测方法及显示面板 | |
KR100978662B1 (ko) | 키 스캔 회로 | |
TWI545330B (zh) | Touch panel controller, touch panel system and electronic equipment | |
US9360949B2 (en) | Human interface device | |
US20090184732A1 (en) | Differential driving circuit capable of operating at low supply voltage without requiring common mode reference voltage | |
US7280336B2 (en) | Transient voltage detecting circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20160707 |