嵌入式鼠标键盘的制作方法

文档序号:6653719阅读:508来源:国知局
专利名称:嵌入式鼠标键盘的制作方法
技术领域
本实用新型属于信息输入装置,用于嵌入式信息采集及处理的终端设备。
背景技术
键盘和鼠标是微型计算机常用的输入设备。鼠标以其方便快捷的定位功能,以及丰富的图形功能,为用户提供了一个实用的人机对话工具,因而得到越来越广泛的应用。然而在现有的手持设备上,由于设备小型化的要求,基本上都没有鼠标的支持。为了配合键盘的操作,图形用户界面全部菜单化。这不仅失去了丰富的图形用户界面功能,也使选择定位操作变得生硬、机械。
在普通计算机上,键盘及鼠标作为两个独立的输入设备外接于机箱上,用于输入文字资料或操控设备的硬件装置及其软件。即使笔记本电脑及一些新品在键盘上通过增加方向操作杆集成了鼠标功能,但是在两种设备的互换使用中,先通过操作杆确定位置再使用键盘按键进行确认,仍需要手臂较大幅度的移动和重新定位。
嵌入式终端设备由于设备尺寸的限制,部分设备省略了键盘而采用触摸屏等其他方式进行输入,通过完全的软件方式实现输入功能,其效率较低且不适合工业环境的应用要求;部分设备保留了键盘输入,大多通过使用多功能数字键(一个按键可作多种项目的输入)复用,使得整体键盘所需的按键数目降低,到达缩小键盘尺寸的目的。同时采用多箭头键取消了鼠标功能,但多箭头键仅能对屏幕光标进行上下左右的移动,功能相对单一,输入较为麻烦,输入法也不能令人不满意。例如,现有手机键盘尺寸较小,要在9个数字键上安排出26个字母,从人体工程学的角度来看这是不够合理的。
另外,在屏幕鼠标移动的软件处理方法中,大多采用鼠标匀速移动的方式,当目标点离鼠标当前位置较远,需要长时间按住方向键不放,响应效率较低,不仅移动定位时花费的时间长,影响了设备的性能,也限制了图形用户界面中有效菜单条目的个数。
公开号CN1466033的专利申请提出一种通用鼠标键盘,鼠标、键盘一体布局,键盘键共有按键26~32个,分两部分布置于盘体;鼠标键有2~8个按键;键盘键置于手指自然伸开时,由手的近节指、中节指和掌心形成的手形的空腔处,鼠标的光标位移感应元件、鼠标键则置于手指的远节指处(指端);任一键盘键一次单独的按下并放开的操作,生成相应键操作的字符或功能,但取消按下一定时间后产生该按键的重复键处理;任一键盘键单独按下不放,再按下其它一键的操作,可生成新的相应键操作的字符或功能,并可赋予该有序组合按键在按下一定时间时,启用重复键处理的功能。
公开号CN1501318的专利申请提出一种组合式鼠标键盘装置,它包括具有二轴倾度感测器和矢量分类单元的箭头键和鼠标,其中所述箭头键共10个,平均设置在两个键盘体上,其中一个键盘体上固设有鼠标,且两个键盘体及鼠标皆与计算机交互连接。该专利申请将键盘的按键数目减至最少,且每个箭头键具有三排三行的九个功能,依手指对箭头键的作用方向,即可据以选择一个功能的键入,而藉此可达到鼠标键盘交互操作手部却不用变换位置,减少了鼠标键盘整体装置的空间。

发明内容
本实用新型提出一种嵌入式鼠标键盘,针对现有技术存在的缺陷和不足,用按键代替鼠标,将鼠标集成到了键盘之上,方便图形用户界面的操作。
本实用新型的一种嵌入式鼠标键盘,包括键盘面板、与键盘面板电信号连接的矩阵电路板和键盘控制器;其特征在于(1)述键盘面板包括46键的键盘和5键的鼠标,共51键;(2)所述矩阵电路板中,51键排列成5行11列,第1行设置11个键,第2~5行各设置10个键,各行中各个键的定端[1]连接,5个行电信号连接键盘控制器,反映键是否按下的行状态信号;每列中将该列所涉及的各行各个键的动端[2]连接,11个列电信号连接键盘控制器的输入列扫描信号;(3)所述键盘控制器包括消抖电路、扫描电路、按键编码和产生中断电路;所述矩阵电路板5个行电信号连接消抖电路,消抖电路信号输出至按键编码和产生中断电路;扫描电路同时输出顺序低电平脉冲至矩阵电路板11个列和按键编码和产生中断电路;按键编码和产生中断电路输出按键编码、产生中断信号。
所述的嵌入式鼠标键盘,其特征在于46键键盘中包括10键数字键,26个字母键、4键方向键和6键功能键;5键鼠标中包括4键方向键和1键模拟鼠标左键。
所述的嵌入式鼠标键盘,其特征在于所述键盘控制器采用CPLD器件实现,所述矩阵电路板与键盘控制器通过接插件电连接。
普通鼠标可以在屏幕平面范围内360度的方向任意移动,而我们增加的鼠标只提供了四个方向的按键。为了提高该鼠标的灵活性,在软件上又多实现了四个方向,当两个相邻的表示方向的按键被同时按下时,鼠标会朝着这两个相邻方向共同决定的方向移动。例如,当同时按下左移键和上移键时,鼠标会朝着左上方向移动。于是该增加的鼠标可以在屏幕平面范围内的8个方向任意移动。
由于该鼠标按键是在原有的46键键盘上增加实现的,所以该鼠标设备与键盘设备共用一个硬件接口。那么在软件实现上,键盘设备和鼠标设备将共用一个中断接口。当驱动接收到中断时,调用的中断处理函数需要进一步区分该中断是键盘中断还是鼠标中断,然后根据不同的中断调用不同的中断处理函数。
在判断出是由鼠标引起的中断时,将调用鼠标中断处理函数。在鼠标设备的中断处理函数中,我们将把得到的鼠标按键键值转换为标准的鼠标移动信息,并将转换后的标准鼠标移动信息放入存放鼠标信息的队列mouse_queue,以供上层函数调用。
当引起中断的是模拟左键时,不会引起位移的改变。将0x01赋值给button变量,代表鼠标左键被按下。
当引起中断的是上移键时,竖直方向的位移增加。增加的粒度为3。
当引起中断的是下移键时,竖直方向的位移减少。减少的粒度也为3。
左移键和右移键的工作原理与上移键、下移键一样,只是改变的是水平方向的位移。改变的粒度同样为3。
当两个相邻方向键被同时按下时,将会同时改变竖直和水平方向的位移。例如同时按下左移键和上移键,将会使水平方向上的位移减少,同时使竖直方向上的位移增加。减少和增加的粒度均是3。
其他相邻方向键组合的工作原理与此完全相同,在此不予赘述。
至此,便完成了鼠标在键盘上的集成。
本实用新型用于无线物流智能终端,由于在键盘上集成了鼠标设备,在定制图形用户界面时基本上没有限制,由于不需要将整个界面改成菜单形式,最大范围的保留了图形用户界面的全貌,使得丰富的图形功能得以保留;全面、稳定地解决现有技术的缺陷和不足。


图1是本实用新型的矩阵电路板原理图;图2是本实用新型键盘控制器内部结构图;图3是本实用新型结构示意图;图4是鼠标键示意图;图5为本实用新型鼠标键盘面板示意图。
具体实施方式
本实用新型的矩阵电路板如图1所示,51键排列成5行11列,以减少I/O口的数目。第1行设置11个键,第2~4行各设置10个键,各行中各个键的定端1连接,5个行电信号连接键盘控制器,反映键是否按下的行状态信号;每列中将该列所涉及的各行各个键的动端2连接,11个列电信号连接键盘控制器的输入列扫描信号;KEY_Y10~KEY_Y0为键盘控制器逻辑的输入列扫描信号,KEY_X4~KEY_X0为反映是否有键按下的行状态信号。键盘控制器与矩阵电路板中的5个行信号和11个列信号相连。
键盘控制器采用CPLD器件,实现列扫描、消抖、按键编码、组合键和产生中断的功能。其内部逻辑结构框图如图2所示。实现过程中,先用硬件描述语言编写键盘控制器的数字逻辑,然后用器件生产商配套的软件综合适配,产生针对目标器件的可编程文件,最后用下载电缆从JTAG口把可编程文件下载到CPLD器件中。接口信号线中,RESET是CPU输入给CPLD的全局复位信号,CLK_1KHz是时钟输入信号,X4~X0是行输入信号,Y10~Y0是列输出信号,INT是中断输出信号,提供给CPU中断控制器使用,KEYR0~KEYR5是CPLD内部的6位键盘编码寄存器输出信号,供驱动程序读取。
鼠标键盘包括矩阵电路板和键盘控制器,如图3所示。由于按键数量较多,为了减少I/O口的占用,将按键排列成11列5行的矩阵形式,由于按键数目51小于矩阵节点数55,所以空出第11列的后四个节点。在矩阵按键中,每条行线和列线在交叉处不直接连通,而是通过一个按键加以连接。每条行线通过电阻接到正电源,并将行线接到键盘控制器的输入线,列线接到键盘控制器的输出。这样,当没有按键按下时,键盘控制器所有的输入线都是高电平。键盘控制器在列线上输出顺序低电平脉冲,一旦有键按下,则输入线就会被拉低。这样,通过读入输入线的状态就知道是否有键按下了。
矩阵电路板做在接口板上,可以通过接插件J101和J102与键盘控制器连接在一起。
如图4所示,在46键的键盘上增加了5个鼠标键。在这5个鼠标键中,其中一个鼠标键用来模拟普通鼠标的左键,另外4个鼠标键用来模拟普通鼠标的移动,可以控制鼠标在屏幕上移动的上、下、左、右四个方向。
如图5所示,本实用新型将鼠标集成于键盘之中。5键鼠标与46键键盘共用一个硬件接口和一个中断接口。用户在使用时可以像操作键盘一样操作鼠标。
当5键鼠标的OK键被按下时,将产生普通鼠标的左键效果。
当分别按下4个上移、下移、左移、右移表示方向的鼠标键时,可以控制鼠标向上、下、左、右四个方向移动。
当两个相邻的表示方向的按键被同时按下时,鼠标会朝着这两个相邻方向共同决定的方向移动。于是又可以控制鼠标向左上、左下、右上、右下四个方向移动。
当一直按住鼠标方向键而不抬起时,还可以实现鼠标在屏幕平面内的快速移动。如果是一直按住键盘键而不抬起的情况,则可以实现键盘上对应健值的快速输入变换。
以下对本实用新型的键盘控制器工作状态进一步说明。
1.扫描电路为了识别是哪个键被按下,本键盘采用逐列扫描法,列线上的扫描信号就是前面说的顺序低电平脉冲。顺序低电平脉冲实际上就是初态为11’b111_1111_1110的循环移位寄存器的输出,在1KHz时钟的每个上升沿,循环移位寄存器左移一位,于是在列线Y10~Y0上循环输出11’b111_1111_1110—>11’b111_1111_1101—>11’b111_1111_1011—>......—>11’b011_1111_1111—>11’b111_1111_1110这11个状态,这就是顺序低电平脉冲。
一旦检测到有键按下,就停止并锁存顺序低电平脉冲。只有按下的那个键所在的行信号和列信号为低电平,其它列信号和行信号为高电平。这样,由这个唯一的列线和行线电平序列,就可以确定到底是哪个键被按下了。
比如,如果第二行第一列的按键S102被按下,在1KHz时钟作用下,当列扫描信号变为11’b111_1111_1110时,第二行的行线电平变为低,行信号为5’b11101。这个行信号通过组合逻辑,可以停止并锁存循环移位寄存器的输出,于是列线信号就保持为11’b111_1111_1110。现在,把列信号和行信号连接起来,我们得到列线&行线电平序列为16’b1111_1111_1101_1101,它对应着键盘寄存器值6’b000010,这就代表按键S102被按下了。
2.消抖电路由于按键是机械式的开关,当键被按下时,键会震动一小段时间才稳定,为了避免键盘控制器误判为多次按下同一个键,必须在键盘控制器中实现消抖电路。从列扫描的过程可知,一旦检测到键被按下,列信号被停止并锁存起来,所以列信号不会受到接触抖动的干扰。而行信号没有锁存,因此会受到影响。仍以按键S102为例,按下时由于接触抖动,实际上行信号会在5’b11101和5’b11111之间翻转一小段时间,从而影响电路的判断。所以消抖电路主要是消除行信号抖动对电路的影响。
一般的消抖方法是侦测到有键按下后,延迟一段时间再去读行信号,如果这时行信号已经稳定,读到的就是正确的值。这种方法的缺点是延迟时间难以把握。延迟时间过短可能读到错误的值,造成误判;延迟时间过长会降低键盘反应速度,损失效率。本实用新型提出了基于采样的消抖法,即每个1KHz时钟上升沿对行信号做一次采样,如果连续n个行信号采样都表示有键按下,则认为有键按下;如果连续n个行信号采样中只要出现无键按下,则认为无键按下。由于实验测得按键抖动时间一般不超过10ms,所以这里n取10。按照这种消抖方法,按下稳定后不超过10ms,键盘控制器就能够判断出按下状态,而一旦松开按键,键盘控制器能够立即判断出释放状态,在保证性能的基础上,提高了键盘效率。
3.按键编码和产生中断电路消抖后的行线&列线电平序列一共有16个比特,却只用来表示56个状态,因此电平序列的比特数有很大的冗余。电平序列跟按键排列密切相关,有很大的硬件依赖性。此外,电平序列也不方便直接识读。所以,本实用新型把消抖后的行线和列线电平序列编码成6个比特,存储到键盘控制器里的键盘寄存器中,编码对应关系如表1所示,该寄存器的内容供键盘鼠标驱动程序读取,这样不仅节省了存储资源,也给驱动程序提供了更大的独立性和方便性。
表1键值对应表


编码后的56个状态包括51个单个按键状态,4组组合键状态,和一个表示无键按下或按下无效组合键的状态。4组组合键状态包括鼠标上移键&鼠标左移键,鼠标左移键&鼠标下移键,鼠标下移键&鼠标右移键,鼠标右移键&鼠标上移键。
56个状态间的状态转换产生中断信号。复位后和没有中断时,INT中断线为低电平。每当状态转换时,INT线产生1ms的高电平脉冲。这样,按下任意单键或组合键后,状态从无键按下状态转换到某单键或组合键按下的状态,INT线的高电平脉冲通知CPU的中断控制器,CPU调用键盘鼠标驱动中的中断例程,然后读取键盘寄存器的值,并根据该值判断是哪个键按下,并执行相应的动作(比如说开始计时按键时间,或者开始移动鼠标箭头)。释放刚才按下的任意单键或组合键后,状态又从某单键或组合键按下的状态转换到无键按下的状态,产生中断,相应的中断例程清除按键代码执行的动作(比如说停止移动鼠标箭头)。
下面用按下鼠标方向组合键S102&S103的例子来看看按键编码和产生中断的具体过程。组合键的按下不可能精确同时,也是有先有后,所以这里认为两个键是先后按下,然后先后释放。假设首先按下S102,键盘控制器消抖后得到列线&行线电平序列为16’b1111_1111_1101_1101,编码存到键盘寄存器的值为6’b000010。状态从无键按下转换到按下S102,所以产生中断脉冲。驱动程序的中断代码读取键盘寄存器的值,得知按下鼠标方向键S102的这个状态,并开始执行移动鼠标箭头的动作。
接着按下S103,这样构成了一对有效的组合键。键盘控制器侦测到行线上的电平抖动,消抖后得到列线&行线电平序列为16’b1111_1111_1101_1001,编码存到键盘寄存器的值为6’b110101。这又产生状态转换,从按下S102的状态,转换到按下S102&S103的状态,于是产生中断。同样的,驱动程序的中断代码读取键盘寄存器的值,得知按下S102&S103的这个状态,并开始执行向倾斜45度方向移动鼠标箭头的动作。
然后松开S103,状态又转换回按下S102的状态,中断代码执行相应的动作,鼠标箭头向原来的方向移动。最后松开S102,状态转换到没有按下任何键的状态,中断代码执行相应的动作,鼠标箭头停止移动。
需要注意的是,要保证正确编码,编码时必须把组合键定义到同一列中,否则行线电平可能会落到数字逻辑电平阈值之外。比如先按下S102,然后按下S107,则Y0为低电平0V,Y1为高电平3.3V,由于按键内阻的作用,X1线上阈值之外的电压值1.5V,所以列线&行线电平序列为16’b1111_1111_1101_11z1。
当然这个序列并不会引起混乱,键盘控制器会把它编码为6’b111111,认为是错误组合键或者无键按下状态。但是从数字电路设计的原则上看,应该尽量避免逻辑电平阈值之外的电压。在设计中把4组组合键都放到第一列中,并定义到S101~S104上。这四个键具体对应鼠标方向键的哪一个,则由软件定义。同样的,其它47个键的功能也由软件定义。
权利要求1.一种嵌入式鼠标键盘,包括键盘面板、与键盘面板电信号连接的矩阵电路板和键盘控制器;其特征在于(1)所述键盘面板包括46键的键盘和5键的鼠标,共51键;(2)所述矩阵电路板中,51键排列成5行11列,第1行设置11个键,第2~5行各设置10个键,各行中各个键的定端[1]连接,5个行电信号连接键盘控制器,反映键是否按下的行状态信号;每列中将该列所涉及的各行各个键的动端[2]连接,11个列电信号连接键盘控制器的输入列扫描信号;(3)所述键盘控制器包括消抖电路、扫描电路、按键编码和产生中断电路;所述矩阵电路板5个行电信号连接消抖电路,消抖电路信号输出至按键编码和产生中断电路;扫描电路同时输出顺序低电平脉冲至矩阵电路板11个列和按键编码和产生中断电路;按键编码和产生中断电路输出按键编码、产生中断信号。
2.根据权利要求1所述的嵌入式鼠标键盘,其特征在于46键键盘中包括10键数字键,26个字母键、4键方向键和6键功能键;5键鼠标中包括4键方向键和1键模拟鼠标左键。
3.根据权利要求1所述的嵌入式鼠标键盘,其特征在于所述键盘控制器采用CPLD器件实现,所述矩阵电路板与键盘控制器通过接插件电连接。
专利摘要嵌入式鼠标键盘,属于信息输入装置,包括键盘面板、与键盘面板电信号连接的矩阵电路板和键盘控制器;键盘面板包括46键的键盘和5键的鼠标;矩阵电路板中,51键排列成5行11列,各行中各个键的定端连接,5个行电信号连接键盘控制器,反映键是否按下的行状态信号;每列中将该列所涉及的各行各个键的动端连接,11个列电信号连接键盘控制器的输入列扫描信号;键盘控制器包括消抖电路、扫描电路、按键编码和产生中断电路。本实用新型在键盘上集成鼠标,在定制图形用户界面时基本上没有限制,最大范围的保留了图形用户界面的全貌,使得丰富的图形功能得以保留;全面、稳定地解决现有技术的缺陷和不足,用于无线物流智能终端。
文档编号G06F3/033GK2919362SQ20052009912
公开日2007年7月4日 申请日期2005年12月1日 优先权日2005年12月1日
发明者杜旭, 程文青, 徐晶, 左冬红, 张萍, 杨宗凯 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1