操作系统中鼠标操作原理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统中鼠标操作原理课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 鼠标 操作 原理 课件
- 资源描述:
-
1、1.操作系统下鼠标操作原理软件组整理 2.目 录1、鼠标的类型及与主板的连接关系2、鼠标工作原理3、鼠标硬件原理图4、HID协议与操作系统HID驱动简介5、操作系统HID接口6、图形显示基本原理与操作系统焦点模型7、应用程序鼠标捕获与程序处理3.鼠标的类型按照与电脑的连接方式来分的话有串口鼠标、PS/2鼠标和USB鼠标。如下图所示:4.鼠标与主板的连接关系鼠标分别连接到主板的串口、PS2、USB口。串口PS2口USB口5.鼠标工作原理光电鼠标工作原理示意图,激光鼠标原理与之类似。6.鼠标光学跟踪引擎部分横截面示意图7.光学鼠标主要由四部分的核心组件构成,分别是发光二极管、透镜组件、光学引擎(O
2、ptical Engine)以及控制芯片组成。光学鼠标通过底部的LED灯,灯光以30度角射向桌面,照射出粗糙的表面所产生的阴影,然后再通过平面的折射透过另外一块透镜反馈到传感器上。8.当鼠标移动的时候,成像传感器录得连续的图案,然后通过“数字信号处理器”(DSP)对每张图片的前后对比分析处理,以判断鼠标移动的方向以及位移,从而得出鼠标x,y方向的移动数值。再通过SPI传给鼠标的微型控制单元(Micro Controller Unit)。鼠标的处理器对这些数值处理之后,传给电脑主机。传统的光电鼠标采样频率约为3000 Frames/sec(帧/秒),也就是说它在一秒钟内只能采集和处理3000张图
3、像。9.鼠标硬件原理图110.鼠标硬件原理图211.HID协议简介一、应用场合USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以很多简单的USB设备,喜欢枚举成HID设备,这样就可以不用安装驱动而直接使用。12.HID协议简介二、USB HID类可采用的通信管道所有的HID设备通过USB的控制管道(
4、默认管道,即端点0)和中断管道与主机通信。USB HID规范定义的HID设备可用端点包含三种管道:1、控制(端点0)(必选)传输USB描述符、类请求代码以及供查询的消息数据等2、中断输入(必选)传输从设备到主机的输入数据3、中断输出(可选)传输从主机到设备的输出数据13.HID协议简介控制管道主要用于以下3个方面:1、接收/响应USB主机的控制请示及相关的类数据。2、在USB主机查询时传输数据(如响应Get_Report请求等)。3、接收USB主机的数据。中断管道主要用于以下两个方面:1、USB主机接收USB设备的异步传输数据。2、USB主机发送有实时性要求的数据给USB设备;从USB主机到U
5、SB设备的中断输出数据传输是可选的,当不支持中断输出数据传输时,USB主机通过控制管道将数据传输给USB设备。14.HID协议简介三、USB HID设备的描述符HID设备的描述符除了5个USB的标准描述符(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符,还包括3个HID设备类特定描述符:HID描述符、报告描述符、实体描述符。15.HID协议简介除了HID的三个特定描述符组成对HID设备的解释外,5个标准描述符中与HID设备有关的部分有:设备描述符中bDeviceClass、bDeviceSubClass和bDeviceProtocol三个字段的值必须为零。接口描述符中bInter
6、faceClass的值必须为0 x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为Boot Device。如果为0则只有在操作系统启动后才能识别并使用您的HID设备),bInterfaceProtocol的取值含义如下表所示:表2、HID接口描述符中bInterfaceProtocol的含义bInterfaceProtocol的取值(十进制)含义0 NONE1 键盘2 鼠标3255 保留16.HID协议简介下面仅对这3个
7、HID设备类特定描述符中的HID描述符进行说明。HID描述符关联于接口描述符,因而如果一个设备只有一个接口描述符,则无论它有几个端点描述符,HID设备只有一个HID描述符。HID设备描述符主要描述HID规范的版本号、HID通信所使用的额外描述符、报表描述符的长度等。其他信息请自行百度。17.操作系统HID驱动简介 HID 设备驱动简介为简化USB设备的开发过程,USB提出了设备类的概念。HID设备类,即人机接口设备。典型的HID设备如键盘、鼠标。所有设备类都必须支持标准USB描述符和标准USB设备请求。如果有必要,设备类还可以自行定义其专用的描述符和设 备请求,这分别被称为设备类定义描述符和设
8、备类定义请求。另外,一个完整的设备类还将指明其接口和端点的使用方法,如如接口所包含端点的个数、端点的最大 数据包长度等。18.操作系统HID驱动简介HID设备既可以是低速设备也可以是全速设备,其典型的数据传输类型为中断IN传输,即它适用于主机接收USB设备 发来的小量到中等量的数据。HID具有以下的功能特点:1)适用于传输少量或中量的数据;2)传输的数据具有突发性;3)传输的最大速率有限制;4)无固 定的传输率。HID设备类除支持标准USB描述符外(设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符),还自行 定义了3种类描述符,分别为HID描述符(主要用于识别HID设备所包含的其他
9、类描述符)、报告描述符(提供HID设备和主机间交换数据的格式)和物理描 述符。一个HID设备只能支持一个HID描述符;可以支持一个或多个报告描述符;物理描述符是可选的,大多数HID设备不需要使用它。19.操作系统HID驱动简介 USB HID设备驱动原理设备的USB 人机交互设备必须遵循以下的USB开始程序,如右图所示:1)插入设备 USB设备第一次连接到总线时,虽然接上了电源,但是总线仍然没有任何功能,一定要到重置总线为止才可以开始运作。注意,一旦USB在D端使用了 1.5k的提升电阻,就会立即通知总线的集线器,有一个低速设备(1.5Mb/s)刚被连接上。而程序以设备地址0开始运行。设备插上
10、时,电源打开重置的过程:重置执行初始设置并出发总线重置中断-位于中止模式下知道总线被重置为止等待设备列举执行程序循环20.操作系统HID驱动简介2)总线重置 接着主机将会辨认新的USB设备并重置它。在总线重置过程中,除了设定堆栈指针外,也出发所有被使用到的中断。(总线重置的中断服务程序ISR功能)3)设备列举。主机会负责检测与设定所有连接至根集线器的设备,辨别与设定一个USB设备的程序,称为设备列举。主机首先会送出SETUP封包以读取默认地址0的设备描 述符。当收到描述符后,主机将会指定新的USB地址给设备。从设备所返回的信息中,主机就会知道设备所支持的数据端点的数量。完成设备列举。21.操作
11、系统HID驱动简介4)数据捕捉与转换 这里以键盘为例,在固件中将以周期性的方式,把扫描的形式写入到扫描矩阵的列I/O端口伤(接口2),并且在行I/O接口伤读取结果值以决定哪个键被按下 了。通过键盘扫描后所得到的数据码,可以使用中断传输以端点1来传送给主机。设备就将键盘的8B数据放置在IN令牌包随后跟随的资料封包的数据域位内,再 返回给主机。当含有LED的按键(如NumLock,Caps lock 与 Scroll lock)被按下或放开时,主机就会送出含有设定报告(Set_Report)要求的SETUP封包,通过控制传输传至设备的端口0上。22.操作系统HID驱动简介 USB HID设备驱动程
12、序设计的流程说明USB总线与设备间的交互都是通过USBD即USB总线驱动程序完成。USBD起着中间桥梁作用,解释USB设备类驱动程序发来的命令并将其划分为一系列的USB事务,然后发送给USB主控制器驱动程序。具体流程是插入一个USB设备后,主机检测到有设备接入,USBD就从链表中查找匹配HID设备类。为每一个接入的 HID设备驱动建立一个对应的USB_HID_SIO_CHAN结构来对该HID设备驱动进行管理。这里的USB_HID_SIO_CHAN结构是 USBD为每一个HID设备所分配的一个关键的内部数据结构。此后由USB主控制器驱动程序来负责硬件底层的驱动。而HID设备移除时,会调用函数us
13、bHIDDeviceAttachCallback(),这时先判断是否有与该HID设备绑定的结构,有则清除该结构。而HID设备移除时,会调用函数usbHIDDeviceAttachCallback(),这时先判断是否有与该HID设备绑定的结构,有则清除该结构。23.操作系统HID驱动简介从框图中,可以看出除了USB标准定义的一些描述符外,HID设备还必须定义HID描述符。另外设备和主机的通信是通过报告的形式来实现的,所以还必须定义报告描述符;而物理描述符不是必需的。还有就是HID描述符是关联于接口(而不是端点)的,所以设备不需要为每个端点都提供一个HID描述符。接口描述符中bInterfaceC
14、lass的值必须为0 x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为Boot Device。如果为0则只有在操作系统启动后才能识别并使用您的HID设备)。24.操作系统HID驱动简介成功注册一个没有被初始化的HID设备的程序流程如右图所示。USB HID设备驱动程序的简单介绍见下页。25.操作系统HID接口设备文件一般注册为“/dev/input/mouse0”,对应的驱动程序及接口如下:/输入子系统层的操作-dri
15、vers/input/input.copen/dev/input/mouse0mousedev_open()/drivers/input/mousedev.c/*打开鼠标类输入设备*/input_open_device()input_handle-dev-open/驱动层物理设备的操作-drivers/usb/input/usbmouse.cusb_mouse_open()注册Input Handler 驱动层只是把输入设备注册到输入子系统中,在驱动层的代码中本身并不创建设备结点。应用程序用来与设备打交道的设备结点的创建由Event Handler层调用Input core中的函数来实现。26
16、.操作系统HID接口而在创建具体的设备节点之前,Event Handler层需要先注册一类设备的输入事件处理函数及相关接口static int _init mousedev_init(void)/注册输入事件处理、连接、断开、设备(文件)操作函数 input_register_handler(&mousedev_handler);/创建输入设备节点devfs_mk_cdev(MKDEV(INPUT_MAJOR,MOUSEDEV_MINOR_BASE+MOUSEDEV_MIX),S_IFCHR|S_IRUGO|S_IWUSR,input/mice);static struct input_han
展开阅读全文