电脑知识Word文档格式.docx
《电脑知识Word文档格式.docx》由会员分享,可在线阅读,更多相关《电脑知识Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
![电脑知识Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/30/f32eb10d-2cb8-47b1-9cab-53e3785a12a5/f32eb10d-2cb8-47b1-9cab-53e3785a12a51.gif)
键盘是与主机箱分开的一个独立装置,通过一根5芯电缆与主机箱连接,系统主板上的键盘接口按照键盘代码串行传送的应答约定,接受键盘发送来的扫描码;
键盘在扫描过程中,7位计数器循环计数。
当高5位(D6一D2)状态为全“0”时,经译码器在O列线上输出一个“0”,其余均为“1”;
而计数器的低二位(D1D0)通过4选1多路选择器控制0—3行的扫描。
计数器计一个数则扫描一行,计4个数全部行线扫描一遍,同时由计数器内部向D2进位,使另一列线1变低,行线再扫描一遍。
只要没有键按下,多路选择器就一直输出高电平,则时钟一直使计数器循环计数,对键盘轮番扫描。
当有一个键被按下时,若扫描到该键所在的行和列时,多路选择器就会输出一个低电平,去封锁时钟门,使计数器停止计数。
这时计数器输出的数据就是被按键的位置码(即扫描码)。
8048利用程序读取这个键码后,在最高位添上一个“O”,组成一个字节的数据,然后从P22引脚以串行方式输出。
在8048检测到键按下后,还要继续对键盘扫描检测,以发现该键是否释放。
当检测到释放时,8048在刚才读出的7位位置码的前面(最高位)加上一个“1”,作为“释放扫描码”,也从P22引脚串行送出去,以便和“按下扫描码”相区别。
送出“释放扫描码”的目的是为识别组合键和上、下档键提供条件。
同时,主机还向键盘发送控制信号,主机CPU响应键盘中断请求时,通过外围接口芯片8255A一5的PA口读取键盘扫描码并进行相应转换处理和暂存;
通过PB口的PB6和PB7来控制键盘接口工作。
从用途上看,键盘可分为台式机键盘、笔记本电脑键盘和工控机键盘三大类;
其中台式机键盘从按键结构上又可分为两类,即机械键盘和电容键盘(又称有触点键盘和无触点键盘)。
机械键盘存在着开关容易损坏、易污染、易老化的缺点,现已基本淘汰。
电容键盘在可靠性上比前者有质的飞跃,使用寿命较长,目前大多为电容键盘。
早期的键盘是由美国IBM公司推出的,当时采用的计算机键盘为83键键盘。
不久IBM又推出了84键的键盘设计标准,将键盘分为三个区,即功能区、打字键区及负责光标控制和编辑的副键盘区,这种键盘主要区域的划分标准一直沿用至今。
随着微软Windows视窗操作系统的广泛应用,IBM公司于1986年首次推出了101键的标准键盘,除添加了F11、F12两个功能键之外,还在键盘的中部多加了一组专用的光标控制和编辑的键,使键盘功能得到了进一步扩充,成为当时业界的标准键盘。
后来,为与微软的Win95操作系统相配合,IBM又推出了104键键盘,新增了3个功能键(亦称Windows快捷键或热键<
HotKey>
),使以前需要打开好几个窗口才能完成的某些功能,通过快捷键的设定直接启动菜单完成,而不必再点击鼠标,这样就使计算机的操作更加便易。
目前,这种104键的键盘(亦称Win95键盘)的设计已成为业界和市场上最为普遍、最为流行的一种标准,业界通称为标准键盘。
实际上,所谓的标准键盘并没有标准,只因其应用较为广泛而被业界通称为标准键盘。
由于软件的不断升级更新,为配合软件的需要,所谓的标准键盘的键数也在随之扩增,并因其又被业界所通常采纳而又被业界通称为标准键盘。
但是,无论是机械键盘或者电容键盘,还是从早期的83键键盘发展到目前通称的标准键盘104键键盘,其应用都是主要依赖于硬件CPU和软件操作系统。
以下就键盘的构造及工作原理等问题进行介绍。
(一)键盘构造及工作原理
PS/2设备履行一种双向同步串行协议。
换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。
设备可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自设备的通信,只需把时钟线电平拉低即可。
键盘的内部结构主要包括控制电路板、按键、底板和面板等。
电路板是整个键盘的控制核心,位于键盘的内部,主要担任按键扫描识别、编码和传输接口工作;
它将各个键所表示的数字或字母转换成计算机可以识别的信号,是用户和计算机之间主要的沟通者之一。
键盘主要由键开关矩阵、单片机和译码器三大部分组成。
键开关矩阵即键盘按键由一组排列成矩阵方式的按键开关组成,所输入的信号由按键所在的位置决定。
单片机即键盘内部采用的Intel 8048单片机微处理器,这是一个40引脚的芯片,内部集成了8位CPU、1024×
8位的RAM以及8位的定时器/计数器等。
译码器即信号编码转译装置,把键盘的字符信号通过编码翻译转换成相应的二进制码。
由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。
根据键盘向主机送入的二进制代码类型,可把键盘分为编码键盘和非编码键盘两种。
IBMPC机的键盘属于非编码键盘,其特点是不直接提供所按键的编码信息,而是用较为简单的硬件和一套专用程序来识别所按键的位置,并提供与所按键相对应的中间代码,然后再把中间代码转换成要对应的编码。
这样,非编码键盘就为系统软件在定义键盘的某些操作功能上提供了更大的灵活性。
计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。
所谓行列扫描法是指,把键盘按键排列成n行×
m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。
按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。
如有键按动,键盘就会向主机发送被按键所在的行列点阵的位置编码,称为键扫描码。
单片机通过周期性扫描行、列线,读回扫描信号结果,判断是否有键按下,并计算按键的位置以获得扫描码。
键被按下时,单片机分两次将位置扫描码发送到键盘接口:
按下一次,叫接通扫描码;
按完释放一次,叫断开扫描码。
这样,通过硬件或软件的方法对键盘分别进行行、列扫视,就可以确定按下键所在位置,获得并输出扫描位置码,然后转换为ASCII码,经过键盘I/O电路送入主机,并由显示器显示出来。
键盘要增加键数是很容易的,任何矩阵键盘通过增加键盘的行或列便可实现增加按键数。
如64键的键盘排列成8行×
8列的行列点阵,128键的键盘排列成8行×
16列的行列点阵,256键的键盘排列成16行×
16列的行列点阵,这在1992年7月出版的《微处理机为基础之设计》出版物上已作介绍(此对比文献在2001年12月13日已递交)。
因此,键盘结构采用矩阵式早已是公有技术。
(二)键盘的按键增加及功能改进
随着计算机CPU(硬件)和Windows操作系统(软件)的不断升级换代,计算机的发展进入到了包括多媒体在内的高速多功能时代。
与此相适应,计算机键盘也出现了一些新的变化,主要表现在键盘键数的增加及功能的整合。
美国苹果(Apple)公司早在1992年就曾推出过设有调整音量按键的键盘。
时下流行的多媒体键盘,也叫多功能键盘,其特征是增加了一些快捷键(或功能键),通过设定主板BIOS或软件设定,使这些新增的键可以实现开关电脑、休眠启动、CD播放、音量调整、一键上网等特殊功能。
此外还出现了一些多功能集成的键盘,如将扫描仪、录音设备或手写板、鼠标等整合为一体的键盘,以及带有文字编辑或指纹识别功能的智能键盘等。
如前所述,IBM定义的101键键盘与微软(Microsoft)所定义的三键共同形成的104键Win95键盘一般被称作标准键盘,那么标准键盘的104键之外如何增加按键扩充功能呢?
从目前键盘发展情况看,可以有多种方法。
单就增加键盘按键的设定技术看,一般来讲,按键的增加取决于三个方面的因素:
一是CPU能识别,二是操作系统能响应,三是键盘内部电路结构能安排。
从前面的介绍可知,CPU和操作系统这两个因素是计算机必备的现成技术,不成问题。
这样,增加键盘按键的关键就在于键盘的内部结构。
以下两种方法可以直接简便地增加键盘按键。
目前PC机键盘按键一直沿用IBM的行列矩阵方式布局排列,称为扫描矩阵,其内部电路结构的核心是8048(包括其后续升级系列)单片机微处理器。
根据单片机微处理器特定的I/O(即Input/Output输入/输出)电路,IBM将键盘按键的行列矩阵定义为8行×
16列=128键,而现行的标准键盘只使用了其中的104键,故尚有128-104=24键的阵点闲余,尚未定义。
因此,增加按键的方法之一是,直接在这尚未定义的24个闲余按键阵点中继续定义新键以扩增新的功能键。
方法之二是,通过改变单片机微处理器I/O电路的配线方式,可以把IBM的原8行×
16列扫描矩阵变为(8+n)行×
16列,如(8+1)行×
16列=144键等,这样就会在128键之外获得新增加的一行16个键位,再根据需要为其定义功能。
以上两种方法都可以达到增加104键的标准键盘的按键数的目的。
简而言之,第一种方法是在原扫描矩阵8行×
16列的行列点阵中尚未利用的24个点上,根据需要可任意增加1至24个新键;
第二种方法是在单片机微处理器原扫描矩阵8行×
16列基础上再增加一行,变为9行×
16列扫描矩阵,再根据需要任意增加新键,并不会带来单片机微处理器本身原有功能的更新。
如IBM的83键盘发展到原来的标准键盘101键,其要增加的键数只要通过增加键盘的行或列,并在增加的行列阵点上进行定义便可实现;
而原来的101键的标准键盘后发展到目前的104键的标准键盘,其增加的3个键数可以不增加键盘的行和列,只要在原扫描矩阵中尚未定义的点上直接定义就可以。
无论是第一种方法还是第二种方法,都已经属于公有技术领域的技术。
什么是键盘的键位冲突?
简单的说,也就是当你同时按下键盘上的几个键的时候,这几个键不能同时反映出来,这就叫做键盘的键位冲突。
例如说,你能想象当你按下Ctrl-Alt-Del时,系统只能接收到前两个键,而死活不承认你按了Del键吗?
当然,现实中是不会有这样的键盘的,按不下Ctrl-Alt-Del的键盘根本就没法出厂,但其他一些常见的键位冲突就不稀奇了。
例如,经常有一些键盘不能同时对例如A-S-空格这样的按键组合作出反应,这样在FPS游戏中,使用者就会大为吃亏。
对于键位冲突问题,电脑用户中有两种完全不同的态度,绝大多数人根本意识不到键位冲突问题的存在,直到遇到冲突的时候才叫苦不迭,并且大呼“为什么他就能做这个动作?
”;
而另一部分人,特别是一些游戏高手,又在孜孜不倦的寻找“没有键位冲突的键盘”。
这两种人都是对键位冲突的原因认识不清楚的。
键位冲突的直接起因,是键盘的非编码结构。
在2月号的专题中,我们提到过现在的键盘几乎都是非编码的薄膜接触式键盘,那么什么是非编码键盘呢?
在专题里我们没有详细的解释,下面我们就来详细说明一下非编码键盘的原理与结构。
传统的键盘,是编码式键盘,它的每个键按下时都会产生唯一的按键编码,并且通过专有的一组导线传输到键盘接口电路,由于其线路和编码的唯一性,这种键盘是不存在键位冲突的问题的,但是编码键盘结构复杂,现在已经很少使用了。
而现代的薄膜接触式键盘,任何一个按键都有上下两层薄膜的触点,我们将它拆开来仔细看一看(如图),就会发现在任何一层薄膜上,导线数都远少于按键数,而且每一条导线都同时连通多个按键的触点,而且,上层和下层的任何两条导线都最多只在一个按键上重合。
也就是说,上层的1号导线可能会同时经过1、2、3、4、5……等按键,而下层的1号导线可能同时经过1、Q、A、Z……等按键,且两条导线只在1键上重合。
什么是键盘的键位冲突?
当然,现实中是不会有这样的键盘的,按不下Ctrl-Alt-Del的键盘根本就没法出厂,但其他一些常见的键位冲突就不稀奇了。
也就是说,上层的1号导线可能会同时经d过1、2、3、4、5……等按键,而下层的1
所以,当你购买键盘的时候,绝对不要忽略“键位冲突”的问题,一定要把键盘装到电脑上,试一试自己常玩的游戏是否能够正常使用(只有实际试用才能试出键位冲突问题,由于它与键位表相关,所以看外表是看不出来的)。
同时,一些游戏高手朋友也不要白费心机去寻找什么“没有键位冲突的键盘”了,只要它依然是非编码键盘,那么键位冲突就是不可避免的,只要它的键位冲突不对你所玩的游戏构成影响,这就足够了。
PS/2协议分析
ThePS/2mouseandkeyboardimplementabidirectionalsynchronousserialprotocol.
PS/2鼠标和键盘执行一个双向同步串行协议。
Thebusis"
idle"
whenbothlinesarehigh(open-collector).
总线空闲时,两条线都是高电平(集电极开路)。
Thisistheonlystatewherethekeyboard/mouseisallowedbegintransmittingdata.
在这种状态下,键盘/鼠标才允许开始传输数据。
ThehosthasultimatecontroloverthebusandmayinhibitcommunicationatanytimebypullingtheClocklinelow.
主机对总线有最高的控制权,在任何时候通过将时钟线拉低就可以禁止通信。
Thedevicealwaysgeneratestheclocksignal.
时钟信号总是由设备端生成的。
Ifthehostwantstosenddata,itmustfirstinhibitcommunicationfromthedevicebypullingClocklow.
如果主机想发送数据,它必须先将时钟拉低来禁止来自设备端的通信。
ThehostthenpullsDatalowandreleasesClock.
然后主机再拉低数据线,释放时钟。
<
--CETagParser~color=red~-->
<
--/CETagParser-->
注释:
释放时钟,就是再恢复时钟为高<
--CETagParser~/color~-->
Thisisthe"
Request-to-Send"
stateandsignalsthedevicetostartgeneratingclockpulses.
这就是"
请求发送(Request-to-Send)"
状态,提示设备端开始生成时钟信号。
Summary:
BusStates
Data=high,Clock=high:
Idlestate.
Data=high,Clock=low:
CommunicationInhibited.
Data=low,Clock=high:
HostRequest-to-Send
总结:
总线状态
数据
0
1
---------通信禁止-----------
时钟
1
主机要求发送
总线空闲
Theclockanddatapinsarebidirectional,open-collector
signalsthatarepulledto5Vbypullupresistorsinthekeyboard.
时钟和数据引脚时双向集电极开路的信号,可以被键盘内部的上拉电阻拉高到5V
Datasentfromthedevicetothehostisreadonthefallingedgeoftheclocksignal;
datasentfromthehosttothedeviceisreadontherisingedge.
从设备发送给主机的数据时在时钟信号的下降沿读取的;
从主机发给设备的数据是在上升沿读取的。
Theclockfrequencymustbeintherange10-16.7kHz.Thismeansclockmustbehighfor30-50microsecondsandlowfor30-50microseconds..
时钟频率必须在10-16.7KHz之间。
这意味着时钟必须是高电平持续30~50毫秒,低电平持续
30~50毫秒。
Ifyou'
redesigningakeyboard,mouse,orhostemulator,youshouldmodify/sampletheDatalineinthemiddleofeachcell.I.e.15-25microsecondsaftertheappropriateclocktransition.
如果你设计一个键盘鼠标或者主机模拟器,你必须在每个单元的中间时刻(也就是,在时钟跳变之后的15~25毫秒后)修改/取样数据线.
Again,thekeyboard/mousealwaysgeneratestheclocksignal,butthehostalwayshasultimatecontrolovercommunication.
重复一遍,键盘/鼠标总是生成时钟信号,而主机控制着整个通信过程。
Timingisabsolutelycrucial.EverytimequantityIgiveinthisarticlemustbefollowedexactly.
时序是非常重要的。
在本文中给出的时间数必须严格遵循。
设备发送数据到主机
TheDataandClocklinesarebothopencollector.
数据和时钟线都是集电极开路的。
Aresistorisconnectedbetweeneachlineand+5V,sotheidlestateofthebusishigh.
在+5V和每根线之间连接着一个电阻,所以总线的空闲状态是高电平。
Whenthekeyboardormousewantstosendinformation,itfirstcheckstheClocklinetomakesureit'
satahighlogiclevel.
当键盘或者鼠标想发送数据时,它首先必须检查时钟线,确认它处于高电平。
Ifit'
snot,thehostisinhibitingcommunicationandthedevicemustbufferanyto-be-sentdatauntilthehostreleasesClock.
如果不是,主机禁止通信,设备必须缓冲任何要发送的数据,直到主机释放时钟。
TheClocklinemustbecontinuouslyhighforatleast50microsecondsbeforethedevicecanbegintotransmititsdata.
在设备开始传输数据之前,时钟线必须持续为高电平的时间必须至少50ms
Thekeyboard/mousewritesabitontheDatalinewhenClockishigh,anditisreadbythehostwhenClockislow.
当时钟为高电平时,键盘/鼠标写一个bit到数据线上;
当