戏说BIOS之Keyboard

戏说BIOSKeyboard

 

1. Introduction

    

    Keyboard System看起来好像挺简单,但事实上它远比想象中的复杂,硬件上Keyboard System需要两颗cpu完成key stroke的转换以及和Host的通信过程,一颗用于处理keyboardmake&break过程,另一颗作为keyboard controllerhost交换信息。一次按键过程在软件的层面上也要经过多次转化才能成为最终被用户理解的ASCII码。这个过程通常需要经历ma=>mv=>set2=>Set1=>ASCIIKeyboard System的架构框图如下图1所示:

 

    

 

 这是MB中常见的架构,在NB中这部分已经被放入EC之中成为EC

 一个部分KBC,但是工作原理依旧如此。

 

2. How It Works

 

    那么当我们按下一个键,需要做哪些动作,才能让我们看到最终的字符呢? 听我慢慢道来。当我们按下一个键‘k’时(make),键盘内部的8031会将kset2 scan code2Ch 通过上图1的串行连接送给80428042查一张set2set1的表将该set2 scan code转成 set1的‘14h’,而且8042会引发IRQ1通知host,表示有按键事件发生。Host将会读取60Port获取set1scancode14h’,而后host会将‘14h’转化为ASCII码‘k’,当我们松开一个键时过程同按下比较像了,不过键盘内部的8031会先送‘F0h’,然后再送‘2Ch’给80428042看到‘f0h’会将Set1的‘14h’的bit7设置为194h,以表示这是一个breakHost端也会收到中断IRQ1,可是host通常不处理break codeMake&Break    key也被称之为通码和断码。最终host会将set1以及ASCII码放在BDA 之中。Host

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值