键盘鼠标驱动.docVIP

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

Linux操作系统课程报告 串行端口程序设计 姓 名:连炳发 班 级:集成电路设计与集成系统 学 号:1015251030 指导教师:李国刚 PS/2 键盘鼠标驱动实验 一、实验目的 ?? 了解 PS/2 键盘鼠标协议和接口; ?? 了解模块驱动方法,掌握交叉编译的概念及方法,学习鼠标驱动的方法。 二、实验内容 加载 PS/2 驱动模块,观察键盘鼠标的接管情况。 三、预备知识 ?? C 语言的基础知识。 ?? Linux 的基本操作。 ?? 了模块驱动的基本命令。 四、实验设备及工具 硬件:UP-NETARM2410-S 嵌入式实验仪,PC 机Pentumn500 以上, 硬盘40G 以上,内存大于 128M。 软件:PC 机操作系统REDHAT LINUX 9.0 +MINICOM + AMRLINUX 开发环境 五、实验原理 1、PS/2 协议 PS/2 设备接口广泛用于现代的鼠标和键盘,它由IBM 开发,现在是大多数键盘、鼠标与P C机通讯的标准协议。物理上的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)。这样驱动就会根据自己的类型(字符设备类型或块设备类型, 例如鼠标就是字符设备而硬盘就是块设

文档评论(0)

cbf96793 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档