操作系统版本】: Windows XP (Service Pack 3 Builder 5.1.2600) 【QVOD安装目录】: C:\Program Files\Qvo

发布网友

我来回答

2个回答

热心网友

你几M的宽带啊 最好是2M以上

热心网友

/blog/upload/2009/03/29/a99f30d73c4cd3c0e4ee3f88e9e54859.gif" onClick="window.open('')" onerror="this.src=''" onload="addjustimg(this)" TYPE="audio/mpeg">

鼠标资料(转载)

2009-02-18 19:191 光电鼠标的原理

光电鼠标的原理

光电鼠标集现代高分辨率成像技术和数字图像处理技术于一体,是鼠标技术的重大发明,以其独特的技术和价格优势迅速成为计算机的标准配置。

光电鼠标是由成像系统IAS、信号处理系统DSP、接口系统SPI三大系统组成。其中IAS系统由光源、光学透镜和光感应器件CMOS三部分组成。鼠标工作时通过内部的光源(一个发光二极管),照亮鼠标底部,底部表面反射一部分光线经光学透镜传到CMOS感光芯片上,CMOS感光芯片是由数百个光电器件组成的矩阵,映像就在CMOS上转换为矩阵电信号,传输到信号处理系统DSP,DSP将此影像信号与存储的上一采样周期的影像进行比较,如果某一采样点在先后两个影像中的位置有移动,就发出纵、横两方向位移信号到接口系统SPI,否则继续进行下一周期采样。接口系统SPI对DSP发来的信号进行处理输出。 光电鼠标有两个主要技术参数,一个是分辨率,单位是dpi(像素/英寸),比如一个1600dpi的鼠标能分辨的最小间距为25.4mm/1600=0.015875mm;另一个是采样频率,即每秒钟CMOS对采样面拍摄图像的帧数和DSP芯片每秒钟能处理图像的帧数。比如微软IE4光电鼠标采样频率为9000帧/秒,可提供1409.7mm/秒的追踪速度。

光电鼠标技术在汽车领域应用的可行性

光电鼠标测量的位移变化,与真实的物理位移之间存在光学透镜造成得实物与成像之间的比例变换。计算机配置的光电鼠标的光学部分是一个高曲光率透镜,是近距成像,使用者在桌面较小的移动,光标在计算机屏幕上有较大的反应。通过改变光学透镜曲光率k,增大透镜与实物距离,可以是其追踪速度成k倍增加。当然,由于改变鼠标近距成像为远距成像,鼠标本身的分辨率也随之改变,但这种改变并不影响在汽车上的应用。

以微软IE4光电鼠标CMOS感光芯片为例,假设最大车速为200km/h,则光学透镜系数k=2001000/3600/1.4097=39.4,此时分辨率为0.01587539.4=0.625mm。由此可以看出,当光学透镜系数k=39.4时,其最大追踪速度可达200km/h,分辨率小于1 mm,其测量精度仍然很高,能满足车速测量要求。

比如在光电鼠标底部直接加上相机变焦镜头在路面上实验,设定一个相同的鼠标输出值,结果表明鼠标距离路面越远,采样范围则越大,鼠标本身需要移动的距离也越大;不加镜头鼠标紧贴路面的移动距离最小。采取远距成像时,在光线不足时需要辅助照明。在本实验中用普通的手电筒就能满足要求。

光电鼠标是近距成像,采样面很小,在很小的采样面内有时缺少特征点,造成对于较均质的表面如镜面等的适应性差。汽车行驶的路面相对粗燥得多,每一点的特征都与其它点有明显的区别,而且由于是远距成像,采样面大,特征点更多,不存在适应性问题,大量的实验也证明了这一点。

光电鼠标的图像处理技术中没有机械运动,全是半导体电路,科技含量高,重量只有两三百克,体积小,把其应用到汽车领域十分方便。因为从图像采集、处理到数据输出,深圳店铺装修,完全由现成的光电鼠标技术实现,只需对其相关输出数据加以利用即可,开发应用特别简单。

在ABS、ESP上的应用

汽车防抱死制动系统ABS是在车轮将要抱死时降低制动力,而当车轮不会抱死时增加制动力,反复动作,以达到安全制动。汽车制动过程中,车轮与地面之间有滑移现象,即滑移率=(Vt-Va)/Vt100%(式中:---滑移率;Vt---汽车车轮线速度;Va---汽车行驶速度。)

试验表明,为了取得最佳制动效果,滑移率应控制在15%~20%范围内。显而易见,控制滑移率必须知道车速。由于能精确测量车速的传感器(如多普勒测速仪)十分昂贵,大多车辆都只测轮速,根据轮速估计车速,把ABS的双参数(车速、轮速)测量简化成单参数(轮速)测量,缺少必要的参数,很大程度上影响了ABS的效果。

把光电鼠标图像传感器技术应用到ABS系统测量车速,在汽车某一处安装图像传感器,并向下对路面采样,同时根据安装高度调整光学透镜系数k,使其成为远距成像,再把输出的位移数据转化为速度。

应用到ESP系统上,需要在车身纵向或横向直线上两个位置(如两个后视镜支座)分别设置图像传感器,同时测量该两点纵、横两个方向的加速度变化,也就是说当车身上述两点在纵方向上的加速度基本一致且横向无位移时,车身作前行直线运动;当该两点测量出横向加速度时,车身有侧向滑移;当两点的纵向加速度值有差别时,车身伴随有横向旋转,数值大的一边在旋转外侧,根据两点的位移差与车身横向宽度等可计算旋转角度。

在倒车后视上的应用

在倒车后视上的应用是利用图像传感器对车身位置及方向的测量定位方法。

现有的倒车后视装置都是通过车后的摄像头,把车后环境显示在显示屏上;有的在显示屏上同时显示车身方向及行车轨迹,以帮助驾驶员判断车身与外界环境的位置关系。上述装置的特点是实际车身位置与显示屏上看到的环境是隔离的,驾驶员在显示屏上并不能看到整个车身与环境的关系。

与上述装置不同,利用光电鼠标技术的方法是利用图像传感器首先对车身位置及方向进行跟踪定位,动画模拟实际车辆的倒车过程,并与外界环境照片叠加。其做法是如前所述在车身上两个后视镜支座分别设置图像传感器,根据开始到车时的车身纵横方向假设一个大地坐标系,并设定其中一个图像传感器为坐标原点(坐标系可根据计算方法需要任意假设)。开始到车时首先对车后拍照,并计算出此时的照相机坐标;同时根据倒车过程中两个图像传感器点的位移变化量,计算出车身的坐标,两个坐标点可以同时确定汽车位置及车身方向。一个汽车的模型根据汽车位置坐标及车身方向模拟倒车过程,并与环境照片叠加。这样,实际汽车在地面运动,车身模型在照片上随之运动,在显示屏上看到的是一张环境照片中有一个运动的车身模型,驾驶员仿佛置身车外,俯视整个车身四周环境,倒车过程一目了然。倒车中照相机不断拍照,当车辆运动到当前照片边缘时,根据车辆位置坐标调用对应照片。需要说明的是,在车身模型与照片的叠加中,模拟汽车运动的车身模型应当是三维,而且追踪模型的虚拟摄像机与车后拍照的实际照相机的角度、高度、镜头参数等等要一致,以使车模与环境相融,模拟出的整个过程才可能准确、*真。同时,尽可能压低车模高度,以免遮挡车后环境。

总结

作为光电鼠标的核心技术--图像处理的发展还在继续。据报道,深圳一家公司已研发成功第三代光电鼠标,最大移动速度提高了一个数量级,分辨率可达十万dpi。图像传感器体积小,价格低,测量精度高,在汽车上应用的空间很大。本文仅简单介绍了图像传感器在测速、定位方面的应用实例,更多的应用技术可以登录国家知识产权局网站,查阅相关图像测量法专利文献。

光电鼠标的工作原理

光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。

光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。

光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍:

光学感应器

光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷*司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷*司的光学感应器。

光电鼠标的控制芯片

控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的"管家婆"。

这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低,深圳福田写字楼装饰公司;dpi越大,用来定位点数就多,定位精度就高,深圳罗湖厂房装修。

通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。

光学透镜组件

光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。

圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标"失明"。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。

发光二极管

光学感应器要对缺少光线的鼠标底部进行连续的"摄像",自然少不了"摄影灯"的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。

通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。

轻触式按键

没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的"文档"或"网页"上下滚动。而当滚轮按下时,则会使PCB上的"中键"产生作用。注意:"中键"产生的动作,可由用户根据自己的需要进行定义。

当我们卸下翻页滚轮之后,可以看到滚轮位置上,"藏"有一对光电"发射/接收"装置。"滚轮"上带有栅格,由于栅格能够间隔的"阻断"这对光电"发射/接收"装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了

用3字节表示移动数据,P1,P2,P3表示字节,D0-D7表示位

P1_D7D6固定值01;D1D0=11本次鼠标移动包含左右移动分量;D3D2=11本次鼠标移动包含上下移动分量;D4=1目前鼠标右键呈按下状态;D5=1目前鼠标左键呈按下状态(D4D5=00则键呈释放状态)。

P2_D7D6固定值00;其余六位表示一个有符号二进制数,反映左右移动量,大于0为向右移动,小于0为向左移动。

P3_D7D6固定值00;其余六位表示一个有符号二进制数,反映上下移动量,大于0为向下移动,小于0为向上移动。

例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反馈出鼠标向右移动了2个单位,深圳罗湖厂房装饰公司,向上移动了6个单位,目前左键按下。

1: 数据

2: 空

3:地

4:+5V

5:时钟

6: 空

鼠标数据包简析2008年08月01日 星期五 上午 03:12

对i8042进行编程,以完成对鼠标的初始化操作,那么当鼠标的初始化完成之后,如果有鼠标动作发生,比如用户移动了一下鼠标,或者按下了鼠标键,那么鼠标将把数据包发回给主机,现在我们就来看看鼠标发回给主机的数据包的结构,在了解这个结构之前,我们先要知道现存的总共有两类鼠标,一类就是所谓的2D(二维)鼠标,它就是我们平常用的那种没有滚轮的鼠标,由于这种鼠标在位移上只有X与Y两个方向,所以称之为2D(二维)鼠标;还有一类就是现在比较常见的3D(三维)鼠标,它们中间存在有一个滚轮,而这个滚轮会产生一个额外的Z位移量,因此,它在位移上有X、Y、Z三个方向,所以又称之为3D(三维)鼠标。下面,我们就来看看这两类鼠标发给主机的数据包有什么不同。下面,我们先来看看二维鼠标。

第1个数据包

位7

位6

位5

位4

位3

位2

位1

位0

第2个数据包

X 位移量

第3个数据包

Y 位移量

位0:左键按下标志位,为1表示左键被按下。

位1:右键按下标志位,为1表示右键被按下。

位2:中键按下标志位,为1表示中键被按下。

位3:保留位,总是为1。

位4:X符号标志位,为1表示X位移量为负。

位5:Y符号标志位,为1表示Y位移量为负。

位6:X溢出标志位,为1表示X位移量溢出了。

位7:Y溢出标下位,为1表示Y位移量溢出了。

下面,我们再来看看三维鼠标的数据包结构。

第1个数据包

位7

位6

位5

位4 位3 位2 位1 位0 第2个数据包

X 位移量

第3个数据包

Y 位移量

第4个数据包

Z 位移量

三维鼠标数据包中第一个数据包每位的含义与二维鼠标数据包中第一个数据包中每位含义完全相同,唯一不同的就在于它每次会多发送一个数据包,即第4个数据包,这个数据包包含了Z的位移量,同X、Y位移量相同的是,它们都是以补码表示的。不过与X及Y位移量不同的是,Z位移量是4位的,其中最高位(第四位)是符号位,因此,Z位移量的有效的范围为:-8~7。而X与Y的位移量是9位的,最高一位(第9位)是符号位,这个符号位在第一个数据包中表示,故,X与Y的位移量的有效范围为:-256~255。

看到这里,你或许有疑问了,系统是怎么来知道到我到底应当接收3个数据包还是接收4个数据包的呢?三维鼠标的标准是由微软制定的,最初,这种三维的鼠标只工作在标准的PS/2模式下,如果你想让它工作在三维模式下,你需要用0xF3这个设置鼠标采样率的命令,按如下的顺序进行操作:

1. 设置鼠标采样率为200

2. 设置鼠标采样率为100

3. 设置鼠标采样率为80

这之后,如果你的鼠标是个三维鼠标,那么,它将转到三维模式下进行工作,这个时候,主机向它发送0xF2(获得鼠标类型ID)命令,你的工作在三维模式下的鼠标将向主机返回它的类型ID,但如果你的鼠标不支持三维模式,即如果你的鼠标只是一个二维鼠标,它返回给主机的类型ID将是0,这样,主机就能够知道现在你用的鼠标是什么类型的鼠标,并由此知道应当接受3个还是4个数据包了。本实验将只操作标准的二维鼠标,如果你有兴趣,你可以对程序进行改动,以让它支持三维鼠标。

现在,我们来看看,这个数据包是怎么被主机获得的。在《保护模式下的8259A芯片编程及中断处理探究(上下)》这篇实验报告中我们知道了,鼠标中断是通过IRQ12提出的,因此,在操作系统中,深圳福田装修公司,我们需要为IRQ12这号中断编写一个中断处理程序,然后在这个中断处理程序中读取鼠标发来的数据包。相关的主题文章:

杨同学在其博客发了篇关于北京奥运期间单双号行车的文

在此次金融危机和经济衰退的打击下

中国石油化工股份有限公司

热心网友

你几M的宽带啊 最好是2M以上

热心网友

/blog/upload/2009/03/29/a99f30d73c4cd3c0e4ee3f88e9e54859.gif" onClick="window.open('')" onerror="this.src=''" onload="addjustimg(this)" TYPE="audio/mpeg">

鼠标资料(转载)

2009-02-18 19:191 光电鼠标的原理

光电鼠标的原理

光电鼠标集现代高分辨率成像技术和数字图像处理技术于一体,是鼠标技术的重大发明,以其独特的技术和价格优势迅速成为计算机的标准配置。

光电鼠标是由成像系统IAS、信号处理系统DSP、接口系统SPI三大系统组成。其中IAS系统由光源、光学透镜和光感应器件CMOS三部分组成。鼠标工作时通过内部的光源(一个发光二极管),照亮鼠标底部,底部表面反射一部分光线经光学透镜传到CMOS感光芯片上,CMOS感光芯片是由数百个光电器件组成的矩阵,映像就在CMOS上转换为矩阵电信号,传输到信号处理系统DSP,DSP将此影像信号与存储的上一采样周期的影像进行比较,如果某一采样点在先后两个影像中的位置有移动,就发出纵、横两方向位移信号到接口系统SPI,否则继续进行下一周期采样。接口系统SPI对DSP发来的信号进行处理输出。 光电鼠标有两个主要技术参数,一个是分辨率,单位是dpi(像素/英寸),比如一个1600dpi的鼠标能分辨的最小间距为25.4mm/1600=0.015875mm;另一个是采样频率,即每秒钟CMOS对采样面拍摄图像的帧数和DSP芯片每秒钟能处理图像的帧数。比如微软IE4光电鼠标采样频率为9000帧/秒,可提供1409.7mm/秒的追踪速度。

光电鼠标技术在汽车领域应用的可行性

光电鼠标测量的位移变化,与真实的物理位移之间存在光学透镜造成得实物与成像之间的比例变换。计算机配置的光电鼠标的光学部分是一个高曲光率透镜,是近距成像,使用者在桌面较小的移动,光标在计算机屏幕上有较大的反应。通过改变光学透镜曲光率k,增大透镜与实物距离,可以是其追踪速度成k倍增加。当然,由于改变鼠标近距成像为远距成像,鼠标本身的分辨率也随之改变,但这种改变并不影响在汽车上的应用。

以微软IE4光电鼠标CMOS感光芯片为例,假设最大车速为200km/h,则光学透镜系数k=2001000/3600/1.4097=39.4,此时分辨率为0.01587539.4=0.625mm。由此可以看出,当光学透镜系数k=39.4时,其最大追踪速度可达200km/h,分辨率小于1 mm,其测量精度仍然很高,能满足车速测量要求。

比如在光电鼠标底部直接加上相机变焦镜头在路面上实验,设定一个相同的鼠标输出值,结果表明鼠标距离路面越远,采样范围则越大,鼠标本身需要移动的距离也越大;不加镜头鼠标紧贴路面的移动距离最小。采取远距成像时,在光线不足时需要辅助照明。在本实验中用普通的手电筒就能满足要求。

光电鼠标是近距成像,采样面很小,在很小的采样面内有时缺少特征点,造成对于较均质的表面如镜面等的适应性差。汽车行驶的路面相对粗燥得多,每一点的特征都与其它点有明显的区别,而且由于是远距成像,采样面大,特征点更多,不存在适应性问题,大量的实验也证明了这一点。

光电鼠标的图像处理技术中没有机械运动,全是半导体电路,科技含量高,重量只有两三百克,体积小,把其应用到汽车领域十分方便。因为从图像采集、处理到数据输出,深圳店铺装修,完全由现成的光电鼠标技术实现,只需对其相关输出数据加以利用即可,开发应用特别简单。

在ABS、ESP上的应用

汽车防抱死制动系统ABS是在车轮将要抱死时降低制动力,而当车轮不会抱死时增加制动力,反复动作,以达到安全制动。汽车制动过程中,车轮与地面之间有滑移现象,即滑移率=(Vt-Va)/Vt100%(式中:---滑移率;Vt---汽车车轮线速度;Va---汽车行驶速度。)

试验表明,为了取得最佳制动效果,滑移率应控制在15%~20%范围内。显而易见,控制滑移率必须知道车速。由于能精确测量车速的传感器(如多普勒测速仪)十分昂贵,大多车辆都只测轮速,根据轮速估计车速,把ABS的双参数(车速、轮速)测量简化成单参数(轮速)测量,缺少必要的参数,很大程度上影响了ABS的效果。

把光电鼠标图像传感器技术应用到ABS系统测量车速,在汽车某一处安装图像传感器,并向下对路面采样,同时根据安装高度调整光学透镜系数k,使其成为远距成像,再把输出的位移数据转化为速度。

应用到ESP系统上,需要在车身纵向或横向直线上两个位置(如两个后视镜支座)分别设置图像传感器,同时测量该两点纵、横两个方向的加速度变化,也就是说当车身上述两点在纵方向上的加速度基本一致且横向无位移时,车身作前行直线运动;当该两点测量出横向加速度时,车身有侧向滑移;当两点的纵向加速度值有差别时,车身伴随有横向旋转,数值大的一边在旋转外侧,根据两点的位移差与车身横向宽度等可计算旋转角度。

在倒车后视上的应用

在倒车后视上的应用是利用图像传感器对车身位置及方向的测量定位方法。

现有的倒车后视装置都是通过车后的摄像头,把车后环境显示在显示屏上;有的在显示屏上同时显示车身方向及行车轨迹,以帮助驾驶员判断车身与外界环境的位置关系。上述装置的特点是实际车身位置与显示屏上看到的环境是隔离的,驾驶员在显示屏上并不能看到整个车身与环境的关系。

与上述装置不同,利用光电鼠标技术的方法是利用图像传感器首先对车身位置及方向进行跟踪定位,动画模拟实际车辆的倒车过程,并与外界环境照片叠加。其做法是如前所述在车身上两个后视镜支座分别设置图像传感器,根据开始到车时的车身纵横方向假设一个大地坐标系,并设定其中一个图像传感器为坐标原点(坐标系可根据计算方法需要任意假设)。开始到车时首先对车后拍照,并计算出此时的照相机坐标;同时根据倒车过程中两个图像传感器点的位移变化量,计算出车身的坐标,两个坐标点可以同时确定汽车位置及车身方向。一个汽车的模型根据汽车位置坐标及车身方向模拟倒车过程,并与环境照片叠加。这样,实际汽车在地面运动,车身模型在照片上随之运动,在显示屏上看到的是一张环境照片中有一个运动的车身模型,驾驶员仿佛置身车外,俯视整个车身四周环境,倒车过程一目了然。倒车中照相机不断拍照,当车辆运动到当前照片边缘时,根据车辆位置坐标调用对应照片。需要说明的是,在车身模型与照片的叠加中,模拟汽车运动的车身模型应当是三维,而且追踪模型的虚拟摄像机与车后拍照的实际照相机的角度、高度、镜头参数等等要一致,以使车模与环境相融,模拟出的整个过程才可能准确、*真。同时,尽可能压低车模高度,以免遮挡车后环境。

总结

作为光电鼠标的核心技术--图像处理的发展还在继续。据报道,深圳一家公司已研发成功第三代光电鼠标,最大移动速度提高了一个数量级,分辨率可达十万dpi。图像传感器体积小,价格低,测量精度高,在汽车上应用的空间很大。本文仅简单介绍了图像传感器在测速、定位方面的应用实例,更多的应用技术可以登录国家知识产权局网站,查阅相关图像测量法专利文献。

光电鼠标的工作原理

光电鼠标与机械式鼠标最大的不同之处在于其定位方式不同。

光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。

光电鼠标通常由以下部分组成:光学感应器、光学透镜、发光二极管、接口微处理器、轻触式按键、滚轮、连线、PS/2或USB接口、外壳等。下面分别进行介绍:

光学感应器

光学感应器是光电鼠标的核心,目前能够生产光学感应器的厂家只有安捷伦、微软和罗技三家公司。其中,安捷*司的光学感应器使用十分广泛,除了微软的全部和罗技的部分光电鼠标之外,其他的光电鼠标基本上都采用了安捷*司的光学感应器。

光电鼠标的控制芯片

控制芯片负责协调光电鼠标中各元器件的工作,并与外部电路进行沟通(桥接)及各种信号的传送和收取。我们可以将其理解成是光电鼠标中的"管家婆"。

这里有一个非常重要的概念大家应该知道,就是dpi对鼠标定位的影响。dpi是它用来衡量鼠标每移动一英寸所能检测出的点数,dpi越小,用来定位的点数就越少,定位精度就低,深圳福田写字楼装饰公司;dpi越大,用来定位点数就多,定位精度就高,深圳罗湖厂房装修。

通常情况下,传统机械式鼠标的扫描精度都在200dpi以下,而光电鼠标则能达到400甚至800dpi,这就是为什么光电鼠标在定位精度上能够轻松超过机械式鼠标的主要原因。

光学透镜组件

光学透镜组件被放在光电鼠标的底部位置,从图5中可以清楚地看到,光学透镜组件由一个棱光镜和一个圆形透镜组成。其中,棱光镜负责将发光二极管发出的光线传送至鼠标的底部,并予以照亮。

圆形透镜则相当于一台摄像机的镜头,这个镜头负责将已经被照亮的鼠标底部图像传送至光学感应器底部的小孔中。通过观看光电鼠标的背面外壳,我们可以看出圆形透镜很像一个摄像头通过试验,笔者得出结论:不管是阻断棱光镜还是圆形透镜的光路,均会立即导致光电鼠标"失明"。其结果就是光电鼠标无法进行定位,由此可见光学透镜组件的重要性。

发光二极管

光学感应器要对缺少光线的鼠标底部进行连续的"摄像",自然少不了"摄影灯"的支援。否则,从鼠标底部摄到的图像将是一片黑暗,黑暗的图像无法进行比较,当然更无法进行光学定位了。

通常,光电鼠标采用的发光二极管(如图7)是红色的(也有部分是蓝色的),且是高亮的(为了获得足够的光照度)。发光二极管发出的红色光线,一部分通过鼠标底部的光学透镜(即其中的棱镜)来照亮鼠标底部;另一部分则直接传到了光学感应器的正面。用一句话概括来说,发光二极管的作用就是产生光电鼠标工作时所需要的光源。

轻触式按键

没有按键的鼠标是不敢想象的,因而再普通的光电鼠标上至少也会有两个轻触式按键。方正光电鼠标的PCB上共焊有三个轻触式按键(图8)。除了左键、右键之外,中键被赋给了翻页滚轮。高级的鼠标通常带有X、Y两个翻页滚轮,而大多数光电鼠标还是像这个方正光电鼠标一样,仅带了一个翻页滚轮。翻页滚轮上、下滚动时,会使正在观看的"文档"或"网页"上下滚动。而当滚轮按下时,则会使PCB上的"中键"产生作用。注意:"中键"产生的动作,可由用户根据自己的需要进行定义。

当我们卸下翻页滚轮之后,可以看到滚轮位置上,"藏"有一对光电"发射/接收"装置。"滚轮"上带有栅格,由于栅格能够间隔的"阻断"这对光电"发射/接收"装置的光路,这样便能产生翻页脉冲信号,此脉冲信号经过控制芯片传送给Windows操作系统,便可以产生翻页动作了

用3字节表示移动数据,P1,P2,P3表示字节,D0-D7表示位

P1_D7D6固定值01;D1D0=11本次鼠标移动包含左右移动分量;D3D2=11本次鼠标移动包含上下移动分量;D4=1目前鼠标右键呈按下状态;D5=1目前鼠标左键呈按下状态(D4D5=00则键呈释放状态)。

P2_D7D6固定值00;其余六位表示一个有符号二进制数,反映左右移动量,大于0为向右移动,小于0为向左移动。

P3_D7D6固定值00;其余六位表示一个有符号二进制数,反映上下移动量,大于0为向下移动,小于0为向上移动。

例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反馈出鼠标向右移动了2个单位,深圳罗湖厂房装饰公司,向上移动了6个单位,目前左键按下。

1: 数据

2: 空

3:地

4:+5V

5:时钟

6: 空

鼠标数据包简析2008年08月01日 星期五 上午 03:12

对i8042进行编程,以完成对鼠标的初始化操作,那么当鼠标的初始化完成之后,如果有鼠标动作发生,比如用户移动了一下鼠标,或者按下了鼠标键,那么鼠标将把数据包发回给主机,现在我们就来看看鼠标发回给主机的数据包的结构,在了解这个结构之前,我们先要知道现存的总共有两类鼠标,一类就是所谓的2D(二维)鼠标,它就是我们平常用的那种没有滚轮的鼠标,由于这种鼠标在位移上只有X与Y两个方向,所以称之为2D(二维)鼠标;还有一类就是现在比较常见的3D(三维)鼠标,它们中间存在有一个滚轮,而这个滚轮会产生一个额外的Z位移量,因此,它在位移上有X、Y、Z三个方向,所以又称之为3D(三维)鼠标。下面,我们就来看看这两类鼠标发给主机的数据包有什么不同。下面,我们先来看看二维鼠标。

第1个数据包

位7

位6

位5

位4

位3

位2

位1

位0

第2个数据包

X 位移量

第3个数据包

Y 位移量

位0:左键按下标志位,为1表示左键被按下。

位1:右键按下标志位,为1表示右键被按下。

位2:中键按下标志位,为1表示中键被按下。

位3:保留位,总是为1。

位4:X符号标志位,为1表示X位移量为负。

位5:Y符号标志位,为1表示Y位移量为负。

位6:X溢出标志位,为1表示X位移量溢出了。

位7:Y溢出标下位,为1表示Y位移量溢出了。

下面,我们再来看看三维鼠标的数据包结构。

第1个数据包

位7

位6

位5

位4 位3 位2 位1 位0 第2个数据包

X 位移量

第3个数据包

Y 位移量

第4个数据包

Z 位移量

三维鼠标数据包中第一个数据包每位的含义与二维鼠标数据包中第一个数据包中每位含义完全相同,唯一不同的就在于它每次会多发送一个数据包,即第4个数据包,这个数据包包含了Z的位移量,同X、Y位移量相同的是,它们都是以补码表示的。不过与X及Y位移量不同的是,Z位移量是4位的,其中最高位(第四位)是符号位,因此,Z位移量的有效的范围为:-8~7。而X与Y的位移量是9位的,最高一位(第9位)是符号位,这个符号位在第一个数据包中表示,故,X与Y的位移量的有效范围为:-256~255。

看到这里,你或许有疑问了,系统是怎么来知道到我到底应当接收3个数据包还是接收4个数据包的呢?三维鼠标的标准是由微软制定的,最初,这种三维的鼠标只工作在标准的PS/2模式下,如果你想让它工作在三维模式下,你需要用0xF3这个设置鼠标采样率的命令,按如下的顺序进行操作:

1. 设置鼠标采样率为200

2. 设置鼠标采样率为100

3. 设置鼠标采样率为80

这之后,如果你的鼠标是个三维鼠标,那么,它将转到三维模式下进行工作,这个时候,主机向它发送0xF2(获得鼠标类型ID)命令,你的工作在三维模式下的鼠标将向主机返回它的类型ID,但如果你的鼠标不支持三维模式,即如果你的鼠标只是一个二维鼠标,它返回给主机的类型ID将是0,这样,主机就能够知道现在你用的鼠标是什么类型的鼠标,并由此知道应当接受3个还是4个数据包了。本实验将只操作标准的二维鼠标,如果你有兴趣,你可以对程序进行改动,以让它支持三维鼠标。

现在,我们来看看,这个数据包是怎么被主机获得的。在《保护模式下的8259A芯片编程及中断处理探究(上下)》这篇实验报告中我们知道了,鼠标中断是通过IRQ12提出的,因此,在操作系统中,深圳福田装修公司,我们需要为IRQ12这号中断编写一个中断处理程序,然后在这个中断处理程序中读取鼠标发来的数据包。相关的主题文章:

杨同学在其博客发了篇关于北京奥运期间单双号行车的文

在此次金融危机和经济衰退的打击下

中国石油化工股份有限公司

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com