键盘鼠标驱动.docxVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本篇文章主要介绍了关于键盘鼠标驱动的相关技术,包括PS2键盘驱动的技术介绍以及模块驱动的基本概念,以及鼠标驱动的方式同时,也指出了当前主流的鼠标驱动程序及驱动器的相关资料最后,还介绍了如何编写和管理驱动程序的相关技巧

班级:10集成学号:

班级:10集成

学号:1015251015

学院:信息学院

姓名:连炳发

PAGE

PAGE10

Linux操作系统课程报告

串行端口程序设计

姓 名:连炳发

班 级:集成电路设计与集成系统学 号:1015251030

指导教师:李国刚

PS/2键盘鼠标驱动实验

一、实验目的

了解PS/2键盘鼠标协议和接口;

了解模块驱动方法,掌握交叉编译的概念及方法,学习鼠标驱动的方法。

二、实验内容

加载PS/2驱动模块,观察键盘鼠标的接管情况。

三、预备知识

C语言的基础知识。

Linux的基本操作。

了模块驱动的基本命令。

四、实验设备及工具

硬件:UP-NETARM2410-S嵌入式实验仪,PC机Pentumn500以上,硬盘40G以上,内存大于

128M。

软件:PC机操作系统REDHATLINUX9.0+MINICOM+AMRLINUX开发环境

五、实验原理

1、PS/2 协议

PS/2设备接口广泛用于现代的鼠标和键盘,它由IBM开发,现在是大多数键盘、鼠标与PC机通讯的标准协议。物理上的PS/2接口是两类连接器的一种:5脚的DIN或6脚的mini

-DIN。这两种连接器(在电气特性上)是十分类似的,实际上两者只有一点不同那就是管脚的排列。这就意味着这两种连接器可以很容易用一种简单的硬件连线的适配器来转换。DIN标准是由德国标准化组织建立的。PC键盘可以有6脚的mini-DIN或5脚的DIN连接器。

具有6脚的mini-DIN的键盘通常叫做“PS/2”键盘,而那些有5脚的DIN的叫做“AT”设备(“XT”键盘也是用5脚DIN,但它们非常古老并且多年前就不再生产了)。所以现代的为PC生产的键盘不是PS/2,AT就是USB的。鼠标流行着大量的形状和大小、接口,最流行的类型可能算是PS/2鼠标,现在USB鼠标渐渐开始流行起来了。

每种连接器的引脚定义如图5.4.1所示:在刚才提到的连接器上有四个有趣的管脚:地、

+5V、数据和时钟。主机提供+5V,并且键盘/鼠标的地连接到主机的地上。数据和时钟都是集电极开路的,这就意味着它们通常保持高电平而且很容易下拉到地(逻辑0)。任何你连接到PS/2鼠标、键盘或主机的设备在时钟和数据线上要有一个大的上拉电阻。把线拉低

就置“0”,让线上浮成高电平就置“1”。参考图5.4.2中数据和时钟线的一般接口结构。PS/2鼠标和键盘履行一种双向同步通信协议。换句话说,每次数据线上发送一位数据并且没在时钟线上发一个脉冲就被读入。键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自键盘/鼠标的通信,只要把时钟位拉低即可。

图5.4.1连接器的引脚定义

图5.4.2数据和时钟线的一般接口结构

2、模块

模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。

Linux下对于一个硬件的驱动,可以有两种方式:直接加载到内核代码中,启动内核时就会驱动此硬件设备。另一种就是以模块方式,编译生成一个.o文件。当应用程序需要时再加载进内核空间运行。所以我们所说的一个硬件的驱动程序,通常指的就是一个驱动模块。对于一个设备,它可以在/dev下面存在一个对应的逻辑设备节点,这个节点以文件的形式存在,但它不是普通意义上的文件,它是设备文件,更确切的说,它是设备节点。这个节点是通过mknod命令建立的,其中指定了主设备号和次设备号。主设备号表明了某一类设备,一般对应着确定的驱动程序;次设备号一般是区分不同属性,例如不同的使用方法,不同的位置,不同的操作。这个设备号是从/proc/devices文件中获得的,所以一般是先有驱动程序在内核中,才有设备节点在目录中。这个设备号(特指主设备号)的主要作用,就是声明设备所使用的驱动程序。驱动程序和设备号是一一对应的,当你打开一个设备文件时,操作系统就已经知道这个设备所对应的驱动程序。

对于一个硬件,Linux是这样来进行驱动的:首先,我们必须提供一个.o的驱动模块文件

(这里我们只说明模块方式,其实内核方式是类似的)。我们要使用这个驱动程序,首先要加载运行它(insmod*.o)。这样驱动就会根据自己的类型(字符设备类型或块设备类型,例如鼠标就是字符设备而硬盘就是块设备)向系统注册,注册成功系统会反馈一个主设备号,这个主设备号就是系统对它的唯一标识(例如硬盘块设备在/proc/devices中显示的主

您可能关注的文档

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档