- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【精选】intel_8042芯片编程
ps/2 键盘硬件概述
对于驱动来说,和键盘相关的最重要的硬件是两个芯片。一个是 intel 8042 芯片,位于主板 CPU 通过 IO 端口直接
和这个芯片通信,获得按键的扫描码或者发送各种键盘命令。另一个是 intel8048 芯片或者其兼容芯片,位于键盘中,
这个芯片主要作用是从键盘的硬件中得到被按的键所产生的扫描码,与 i8042 通信,控制键盘本身。
当键盘上有键被按下时,i8048 直接获得键盘硬件产生的扫描码。i8048 也负责键盘本身的控制 比如点亮 LED 指示
,
灯,熄灭 LED 指示灯。i8048 通过 ps/2 口和 i8042 通信,把得到的扫描码传送给 i8042 。CPU 通过读写端口,可以直
接把 i8042 中的数据读入到 CPU 的寄存器中,或者把 CPU 寄存器中的数据写入 i8042 中。ps/2 口一共有 6 个引脚,
可以拔下 ps/2 插头看一下,这 6 个引脚分别为 时钟,数据,电源地,电源+5V ,还有2 个引脚没有被用到。由于只有
,
一个引脚传输数据,所以 ps/2 口上的数据传输是串行的。
下面几幅图是一个键盘的内部,可以看到用来产生扫描码的按键矩阵( Key Martix ) ,可以看到键盘中的芯片(这里
不是 i8048 ,是一个兼容的其他型号的芯片)。
i8042 键盘控制器
键盘驱动直接读写 i8042 芯片,通过 i8042 间接的向键盘中的 i8048 发命令。所以对于驱动来说,直接发生联系的
只有 i8042 ,因此我们只介绍 i8042 ,不介绍 i8048 。
象 i8042 ,i8048 这样的芯片,本身就是一个小的处理器,它的内部有自己的处理器,有自己的 Ram ,有自己的寄存
器,等等。
i8042 有 4 个 8 bits 的寄存器,他们是 Status Registe (状态寄存器),Output Buffe (输出缓冲器),Input Buffe
(输入缓冲器),Control Registe (控制寄存器)。使用两个 IO 端口,60h 和 64h。
Status Registe (状态寄存器)
状态寄存器是一个 8 位只读寄存器,任何时刻均可被 cpu 读取。其各位定义如下
Bit7: PARITY-EVEN(P_E): 从键盘获得的数据奇偶校验错误
Bit6: RCV-TMOUT(R_T): 接收超时,置 1
Bit5: TRANS_TMOUT(T_T): 发送超时,置 1
Bit4: KYBD_INH(K_I): 为 1 ,键盘没有被禁止。为0 ,键盘被禁止。
Bit3: CMD_DATA(C_D): 为 1 ,输入缓冲器中的内容为命令,为0 ,输入缓冲器中的内容为数据。
Bit2: SYS_FLAG(S_F): 系统标志,加电启动置 0 ,自检通过后置1
Bit1: INPUT_BUF_FULL(I_B_F): 输入缓冲器满置 1 ,i8042 取走后置 0
BitO: OUT_BUF_FULL(O_B_F): 输出缓冲器满置 1 ,CPU 读取后置 0
Output Buffe (输出缓冲器)
输出缓冲器是一个 8 位只读寄存器。驱动从这个寄存器中读取数据。这些数据包括,扫描码,发往 i8042 命令的响应 ,
间接的发往 i8048 命令的响应。
Input Buffe (输入缓冲器)
输入缓冲器是一个 8 位只写寄存器。缓冲驱动发来的内容。这些内容包括,发往 i8042 的命令,通过 i8042 间接发往
i8048 的命令,以及作为命令参数的数据。
Control Registe (控制寄存器)
也被称作 Controller Command Byte (控制器命令字节)。其各位定义如下
Bit7: 保留,应该为 0
Bit6: 将第二套扫描码翻译为第一套
Bit5: 置 1 ,禁止鼠标
Bit4: 置 1 ,禁止键盘
Bit3: 置 1 ,忽略状态寄存器中的 Bit4
Bit2: 设置状态寄存器中的 Bit2
Bit1: 置 1 ,enable 鼠标中断
BitO: 置 1 ,enable 键盘中断
2 个端口 0x60,0x64
驱动中把 0x60 叫数据端口
驱动中把 0x64 叫命令端口
1.5 命令
驱
您可能关注的文档
- 【精选】by guy s - 关于难民地位的公约及其议定书.pdf
- 【精选】busy tone.doc
- 【精选】c 语言.doc
- 【精选】C 语言中可移植且可靠的指针运算.pdf
- 【精选】C#中的多线程-入门.doc
- 【精选】C#操作xml:增,删,改,查.doc
- 【精选】c++八皇后问题课程设计.doc
- 【精选】C++语言程序设计__期末考试试题及答案 2.doc
- 【精选】Cable Modem维修技能要求及注意事项.doc
- 【精选】C75烟雾分析仪操作手册.pdf
- 【精选】input子系统学习笔记.pdf
- 【精选】intermediate accounting TB.pdf
- 【精选】IOS开发之如何使用第三方库ASIHTTPRequest.pdf
- 【精选】iOS中如何创建一个滑出式导航面板.doc
- 【精选】IPAD 视频聊天,网上看视频指南 适合老年人.pdf
- 【精选】iPhone SE 上手体验,印象最深就是小.pdf
- 【精选】iOS游戏开发:从创意到实现+第1章:Xcode简介.pdf
- 【精选】IPA方法的应用.ppt
- 【精选】IPTV常见错误代码.doc
- 【精选】IR11682STRPBF;IR11682SPBF;中文规格书,Datasheet资料.pdf
文档评论(0)