【一起学习输入法】华宇拼音输入法开源版本解析(2)
作者:互联网
【一起学习输入法】华宇拼音输入法开源版本解析(2)
原创:good02xaut(CSDN)
- 键盘的扫描码
薄膜式标准键盘的硬件构成由四部分组成:三层薄膜、104个按键矩阵、3个指示灯和Intel 8042控制器芯片。
由三层薄膜(上层与下层都有电路,中间则是绝缘层)所组成。按键采用橡胶帽,成本低、工艺简单和手感好等优势占有着绝大部分市场,大家所使用的键盘基本都是薄膜键盘。
键盘的按键数曾出现过83键、87键、93键、96键、101键、102键、104键、107键等。104键的键盘是在101键键盘的基础上为WINDOWS XP平台提供增加了三个快捷键(有两个是重复的),所以也被称为WINDOWS 9X键盘。104键盘就是最常用的标准键盘。
标准键盘具有CapsLock(字母大小写锁定)、NumLock(数字小键盘锁定)、ScrollLock(滚动锁定键)三个指示灯,标志键盘的当前状态。
当键盘的某一个按键被按下的时候,键盘会通过8042控制器向外发送那一个按键的通码,当按键松开的时候,键盘就会向外发送那一个按键的断码,需要注意的是,如果按着一个按键不放的话,键盘会以一定的频率持续发送那一个按键的通码。按键的通码和断码其实就是扫描码,纯硬件视角的描述。
举两个例子:
1、按下CapsLock按键,指示灯点亮的过程:当CapsLock按键被按下时,8042控制器检测到,会立即向CPU发送该按键的扫描码,并在扫描码表明就是个通码(按下的过程)。键盘驱动接收到该扫描码后,会立即发送消息给8042控制器,点亮大写锁定指示灯。整个过程都是键盘驱动独立完成的,即使CapsLock按键不松开,指示灯依旧被点亮,不要以为单击CapsLock按键打开的指示灯,实际是按下的时候触发的。但是,人手的操作不可能一直按着,给大家的感觉就是单击了CapsLock按键。
2、在CapsLock指示灯亮的时候,按下字母A键:3个指示灯的状态在8042控制器是有记录的,当字母A键被按下时,8042控制器检测到,会立即向CPU发送该按键的扫描码,A键就是一个按键,本身没有大小写的说法,并在扫描码中标明是个通码(按下的过程)。8042键盘控制器发给键盘驱动的消息除了这个通码还有状态码,就是三个指示灯的状态值。键盘驱动接收到该扫描码和状态后,根据键盘的虚拟码表语义上就是输入了一个大写字母’A’。
然后,键盘驱动程序把该键盘操作的扫描码和虚拟码以及其它信息传递给操作系统,其实就是IMM模块的消息队列。
通过上述两个例子可以看出,键盘的扫描码和状态码是硬件编码;键盘的虚拟码是驱动软件的软编码;
good02xaut 发布了6 篇原创文章 · 获赞 6 · 访问量 227 私信 关注标签:指示灯,输入法,扫描,8042,华宇,键盘,CapsLock,拼音输入,按键 来源: https://blog.csdn.net/good02xaut/article/details/103987068