拆解一个伴随我两年多的鼠标,USB头出现了电问题,经常性失灵。看看哪天能发一个抢救的帖子吧。
下面进入正题,这就是拆解后的尸体。
鼠标尸体
下面的是鼠标的光源,红色的LED灯,小灯相对于普通LED来说光束会相对集中一些。这与鼠标的工作有关。
鼠标光源
下面的就是凸透镜是为了使光线能更加集中,光源发出的光通过放大后通过凸透镜,在鼠标垫上反射,反射光通过另外一点凸透镜。当鼠标在移动时,反射的光源会有所变化。在根据鼠标的光源检测器件获取光源信号进行处理,最后根据HID协议穿输出鼠标移动的数据。
此工作状况为根据器件猜测,无法作为专业参考。
凸透镜
光信号处理芯片
当然鼠标上还要有按键和滚轮,按键按下没使用时那么清脆,还有一些回升力应该是外壳提供的。
另外给大家一个USB鼠标通讯的格式,(此为vonly的博客转载)供大家参考。
鼠标发送给PC的数据每次4个字节:BYTE1 BYTE2 BYTE3 BYTE4。定义分别是:
BYTE1 --
|--bit7: 1 表示 Y 坐标的变化量超出-256~255的范围,0表示没有溢出
|--bit6: 1 表示 X 坐标的变化量超出-256~255的范围,0表示没有溢出
|--bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动
|--bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动
|--bit3: 恒为1
|--bit2: 1表示中键按下
|--bit1: 1表示右键按下
|--bit0: 1表示左键按下
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。
暂无评论,赶紧抢沙发吧