最近我的光电鼠标老是出问题,一会是单击变双击一会就是又击无效,把我搞得烦死了。于是我上网查下了光电鼠的工作原理,虽然我知道和那个无关,只是一个接触的问题。但是我还是学到了很多东西,
光电鼠标在主体结构上与传统的光机鼠标是一样的,所不同的就是它的定位机构。光学鼠标的定位机构也就是所说的光电引擎,它
由三个主要的子系统组成:IAS 系统,即成像系统(Image Acquisition System),这是光电引擎的的核心部分,也是决定光电引擎性能的主要系统,各代光电引擎几乎全是在IAS 系统上进行的改进。同时,这也是光电引擎上{wy}一个光学电子系统,结构最为复杂;DSP 系统,即信号处理系统(Digital Signal Processor)。这是将IAS 系统生成的图像进行除噪与对比分析,得出位移数据的系统,是光电引擎中的主要 运算部件。DSP 的算法效率决定了光电引擎的数据处理能力,IAS 引擎能提供的扫描数据越多,就越是需要高效率的DSP 能力;SPI系统,即接口系统(Serial Peripheral Interface)。这是光电引擎上最传统的系统,它的作用就是将 DSP系统生成的位移信号和按键系统的按键信号进行编码然后传输给电脑。在安捷伦引擎上,SPI 系统就是如光机鼠标一样的独立芯片。而微软引擎则将它与 IAS中的电子部分、DSP 系统整合到了一块芯片上。由于光电引擎没有机械部分,所以它的重量要小各种机电鼠标结构,为了使重量符合传统的需求,所以一般在光电鼠标内部上壳处后部都会安装一块用于配重的铁块以保证稳定。 IAS 系统是三个系统中最核心也是最复杂的。它一般由三个部分组成:光源部分、纯光学部分、光学电子部分。光源部分的作用是为了 CMOS 的成像提供一个稳定可靠的光源。它一般由IAS 系统后部的一个高亮度LED 和一组光学管道以及与采样表面呈30 度角的聚光透镜组成,可以在成像镜头下方的采样表面上形成强烈的照射光。这样在粗糙的漫反射表面上就会形成有阴影的对比度强烈的影像,成为 DSP 判断移动的依据。为了节省电能,一般来说光电引擎都具有自动节能功能,当 DSP 长时间没有测出移动时就会将 LED 转为低发光状态以节省电力。 光源LED的选择与光电鼠标的"色盲"现象 一直以来,在很多人的心中都有一个疑惑——为什么几乎所有的光电鼠标的LED都是红色的? 其实,往往正确的答案就是最简单的答案——选择红色原因就是因为红色的高亮度LED是最成熟和{zpy}的!由于红色的高亮LED最早问世,所以它的成本要比其他颜色的更低,而且其制造材料发展成熟,使得红色高亮LED的使用寿命最长。而光电引擎的成像是单色的,无论什么颜色的光源都不会产生影响。在这种情况下,除了少数厂商为了制造卖点以外,大多数厂商当然会选择红色的产品了。 但使用红色LED也带来一个问题,由于有色光在不同颜色表面上的反射率并不一致,这就导致光电鼠标在某些颜色表面上由于光线反射率低导致DSP不能识别的"色盲"问题。要根本解决这个问题,只能从根部入手,提高DSP的分析能力,但目前的光电引擎除微软自己以外,几乎所有的厂商都采用的安捷伦设计,其DSP算法xx一致。但在DSP相同的情况下,有些产品却没有这样的"色盲"问题,这是怎么回事呢? 其实原理非常简单——既然是光线反射率低带来的识别失败,简单的加大光源功率不就成了?就象旧光驱调大激光头的功率来提升读盘能力一样,换用更大功率的发光二极管——答案就是这么简单!光电鼠标的光学部分主要就是指的它的成像透镜,由于是近距成像,所以这是一个高曲光率的透镜,其制造材料一般是有机玻璃。光电系统就是IAS 系统中的CMOS 传感器,它是一个由数百个光电器件组成的矩阵,经透镜形成的采样表面图像就在CMOS 上转换为矩阵电信号,然后传输至DSP 进行处理。而光电引擎的工作原理,简单说起来就是:光源照亮采样表面,生成对比度强烈的待采样影像——通过透镜在CMOS 上成像——CMOS 将光学影像转化为矩阵电信号传输给DSP ——DSP 将此影像信号与存储的上一采样周期的影像进行比较,寻找相似点——如果发现存在移动,就发送一个位移距离信号到SPI,否则就什么也不做——继续下一个采样周期。而SPI 则对由DSP 发来的位移信号进行整合处理,按鼠标接口采样频率将每个接口采样周期内积累的位移信号统一计算后输出到鼠标接口,然后再清零准备接收下一个周期的数据。由于光学成像式光电鼠标的工作原理和传统鼠标有很大的不同,所以它的参数与传统鼠标相比也有很大的差别,我们下面就来看一看。光电鼠标的参数 CPI:与光机式鼠标一样,CPI 也是光电鼠标的一个重要指标。不过对于光电鼠标的 CPI,一直以来都有一种误解,例如当初在某个xx网站上曾有过的争论——为何安捷伦二代引擎比微软二代引擎的CMOS 尺寸小,其 CPI 反而更高?其实我们想一下就很容易明白了,光电引擎的成像其实就象是显微镜照像,其 CPI 水平就相当于照像的细节放大清晰度。那么——显微镜照像的放大清晰度会和照片的尺寸有关系吗?当然不会,它只会取决于显微镜的放大率,就算你把底片换成只有原来一半大的,也只会使得原来照片上的一些东西照不出来了,但照片的细节也不会变得更清晰或更模糊。所以,上面的问题也就一点也不奇怪了,因为光电鼠标的 CPI 与 CMOS 的像素数毫无关系,它xx是由透镜的曲光率决定的。同样,提高透镜的曲光率就可以提高鼠标的 CPI数值,但是这种提升是有限制的,因为在CMOS 尺寸不变的情况下,CPI 越高,能够成像的范围就会越小,这样对下面我们将要提到的各项参数的要求也就越高。同时,由于光电引擎的成像是单镜头近距成像,所以它的图像实际为鱼眼图像,透镜曲光率越是提升,其图像变形和像差也就越严重,最终其图像就会变得毫无用处。所以除非对其光学结构作出大的调整,否则很难期望光电鼠标的CPI 达到与高CPI 机电鼠标相当的水平。 采样频率:这是光电鼠标独有的参数,它代表的是CMOS 每秒钟对采样表面"拍照"的次数和DSP 相应的每秒运算处理能力。早期的光电鼠标,存在着高速移动鼠标时,就会出现鼠标指针不动甚至满屏幕乱飞的情况,出现这种情况,其道理也很简单,就是因为当鼠标高速移动时,很可能会出现CMOS 相邻两次拍摄的图像中没有任何共同采样点的情况,没有共同的采样点,当然也就无从比较移动的方向,就好像一个人在长途汽车上睡觉醒来不知身在何方一样。这样 DSP 当然无法正常处理,从而产生大量的错误信号。 解决这个问题的一个主要方法就是提升"拍照"的频率,"连拍"的频率越快,就越能在鼠标移出上次拍照的地区之前拍下下一张照片。微软的第二代 IntelliEye 引擎就一举将采样频率由1500Hz 提升到了6000Hz,彻底解决了这个问题。但是,从严格意义上说,只谈采样频率其实是不科学的,这也就是为什么光电引擎的原始设计者安捷伦公司现在已经不使用这个参数的原因,而道理就在伦公司现在已经不使用这个参数的原因,而道理就在下面。 CMOS像素数:罗技{zx1}的MX 系列鼠标采样频率不及微软的鼠标(其实际采样频率应该在 5000Hz 左右,曾有的8000Hz 传言被证实为谣言),但它们能承受的{zd0}移动速度却比微软鼠标更快?为什么? 因为要保证在高速移动鼠标下不出现相联两次采样下无共同采样点的情况,除了加快"拍照"速度以外,还有另一种方法,就是增大"照片"的尺寸。只要能够一次得到足够大范围的特征点,那么少"拍"几张也没什么大不了。MX 光电引擎就是依靠比微软更大的 CMOS 像素 数取得了同样的效果,但提高 CMOS 像素数的意义并不只在于此。前面说过,提高光电鼠标的 CPI 会缩小成像的范围,而成像范围的缩小又会减小采样的面积,这样为了防止指针失灵,就必须用两种方法来减小它的影响,即提升采样频率或是增大 CMOS 尺寸,而后者显然比前者在技术上容易得多。老的{dy}代光电鼠标产品还存在着对表面适应力的问题,它们无法在镜面和透明材料上使用,同时也无法在具有复杂花纹的表面(如木纹表面)上准确定位,而且还时不时的存在指针莫名其妙抖动的问题。之所以出现这种问题,还要从光电引擎的DSP 对于图像的分析说起。 DSP 系统之所以能够对前后两张图片作出准确的判断,除了DSP 本身的模糊运算能力之外,更主要的还是依赖特征点的取样,越是能够取得更多的准确的特征点,就越是能够作出准确的判断。在透明表面和镜面上不存在可以使用的特征点,而复杂花纹表面的特征点重复性太强,也难以作出准确的判断。而在特征点不足的情况下,任何外界的影响如光照变化等都会引起"蛇影杯弓"的反应,从而引发自动的抖动。 要提高特征点的数量,有两种途径。一是提升引 擎的CPI,CPI 越高,对采样表面的细节分析就越透彻。但是正如前面所说的,单一提高CPI 乃是一把双刃剑,带来的副作用也是很大的,而且对 CPI 的单一提升其实反倒会影响对细密的重复性表面的识别能力。那么可选的方法也就只剩下了一种,那就是提升CMOS 像素数,"能拍的照片"越大,可采用的特征点当然也就越多。所以,新一代的光电引擎全都提升了CMOS 像素 数,其中微软的第二代IntelliEye 引擎提升到了22X22,而安捷伦的MX 引擎则提升到了30X30(推算) 像素处理能力:正因为传统的采样频率已经不能说明光电引擎的实际性能,所以罗技和安捷伦已经废除了这个参数,将其与CMOS 尺寸、DSP 处理能力结合,整合为"像素处理能力"这个指标。代表其光学引擎的综合采样运算性能。应该说,这个参数是非常科学的。目前,安捷伦MX引擎的像素处理能力是最强的,为470万/秒。微软没有使用这个参数,但估算其第二代IntelliEye引擎应该约为300万/秒左右。其他的老式引擎当然就更低了。 {zd0}速度&{zd0}加速度:像素处理能力虽然十分科学,但毕竟不很直观,所以将其与 CPI 参数相结合,可以派生出{zd0}速度和{zd0}加速度两个参数,它们代表了鼠标在移动中不会出现误移动的{zg}速度和可以被识别的{zd0}加速度。 根据实验,人手在使用鼠标时,{zg}的移动速度约为30 英寸/s,但早期的光电鼠标可以承受的{zd0}移动速度只有15英寸/s,这也就难怪它会到处乱跑。而微软第二代IntelliEye 引擎的{zd0}移动速度达到了37英寸/ s,MX 引擎则高达40 英寸/s,{zd0}加速度达到了 10g,所以它们都不存在这些问题了。 接口速率:在这个指标上,光电鼠标和传统的鼠标并无不同,之所以要在这里单独提出来是因为关系到微软IntelliEye 为什么只停留在在400CPI 上的问题。首先,要做到更高的 CPI 数值,其实只是设计更高放大率的镜头的问题,所以 IntelliEye 引擎只采用400CPI 是与其光电处理能力无关的。按照前面我们介绍接口速率时所述的,USB 接口对于鼠标移动参数的{zd0}传输速率是有限制的。也就是说,每秒钟最多传输移动127X125点的记录。这样,要达到{zd0}40 英寸/s 的速度,则 CPI 不能超过400。 按照微软的看法,要作到400CPI 以上的分辨率而又不影响移动性能,只能通过在高速移动时丢弃某些采样数据来做到,换句话说,也就是在高速移动时,实际 CPI 达不到理论的{zd0}值。所以微软很可能认为与其在最需要高 CPI 的高速运动中达不到理论值,还不如根本不考虑提升 CPI 以换取在其他方面的性能。 对于此观点的正确性,笔者难以给予评价,但至少说明微软迟迟不肯在光电引擎上加入高分辨率设计,也是有所考虑的。 机械式鼠标的工作原理:在机械式鼠标底部有一个可以自由滚动的球,在球的前方及右方装置两个支成90度角的内部编码器滚轴,移动鼠标时小球随之滚动,便会带动旁边的编码器滚轴,前方的滚轴代表前后滑动,右方的滚轴代表左右滑动,两轴一起移动则代表非垂直及水平方向的滑动。编码器由此识别鼠标移动的距离和方位,产生相应的电信号传给电脑,以确定光标在屏幕上的正确位置。若按下鼠标按键,则会将按下的次数及按下时光标的位置传给电脑。电脑及软件接收到此信号后,可依此进行工作其中机械鼠标编码器的形式又有机电式和光电式两种。机电式编码器采用机械接触式触点,精度低,易磨损。目前大量使用的是光电式编码器,这样的鼠标也就是我们常说的光机鼠标。
光电式鼠标的工作原理:它是利用一块特制的光栅板作为位移检测元件,光栅板上方格之间的距离为0.5mm。鼠标器内部有一个发光元件和两个聚焦透镜,发射光经过透镜聚焦后从底部的小孔向下射出,照在鼠标器下面的光栅板上,再反射回鼠标器内。当在光栅板上移动鼠标器时,由于光栅板上明暗相间的条纹反射光有强弱变化,鼠标器内部将强弱变化的反射光变成电脉冲,对电脉冲进行计数即可测出鼠标器移动的距离。 光电式鼠标定位精度较高,防尘性能好,可用于工程绘图等专业领域使用,不过价格比较昂贵。 |