您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

HDNS2000光学感测芯片在运动检测中的应用

时间:2007-1-20栏目:电子通信论文

  摘要:安捷伦(Agilent)公司的HDNS2000芯片是一种高性能的运动检测器件,在目前的光学鼠标中应用广泛,其易用性和廉价性使其非常适合应用于中低精度的运动和位置检测中。本文介绍HDNS2000的功能、特点,从硬件与软件两个方面讨论HDNS2000与AVR单片机的接口设计。
  关键词:HDNS2000运动检测AVR
  
  在机电产品设计中,有时需要检测物体间的相对运动,包括运动方向和运动距离。若采用机械式的结构,比如机械鼠标中的滚轮和轨迹球,则会由于频繁的机械运动而发生故障,导致精度下降甚至失效,维修起来也不方便。另外它需要两个物体表面相接触,靠相互间的摩擦进行工作,这在某些场合是不能允许的。解决方案之一就是采用光电器件,运用光学原理来测定运动。安捷伦公司的HDNS2000就是为此而设计的,虽然它的市场是针对光学鼠标,但也可以作为一种高性能而又廉价的器件运用于工业控制领域中。
  
  1HDNS2000芯片介绍
  
  1.1主要功能与特性
  
  HDNS2000是安捷伦推出的高性能的光学感测芯片,它的内部包含三个基本模块:图像拾取系统、DSP处理器、PS/2或四状态输出转换器,如图1所示。在HDNS2000芯片的底部有一个感光眼,如同一个小型的摄像头,不断地对物体表面进行拍照,接着将前后两次的图像送入DSP中进行处理,以判断物体移动的方向和大小,最后将数据转化为PS/2格式或者以两通道四状态格式输出。图2中的(a)与(b)分别为芯片前后两次拾取的图像。比较图2中的(a)和(b)可以看出,物体向左下方移动了一点。
  
  HDNS2000的图像拾取系统每秒钟可以拾取1500张图像,可以精确地测量最高30.48cm/s(12英寸/s)的运动,解析度为400点每英寸。
  
  1.2引脚介绍
  
  HDNS2000的主要引脚框图如图3所示。
  
  PS2_C:PS/2接口的时钟端。
  
  MODE/XA:复用引脚,接高电平时表示选择PS/2模式;否则,为XA输出。
  
  RB/XB:复用引脚,PS/2模式时为鼠标右键输入;否则,为XA输出。
  
  MB/YB:复用引脚,PS/2模式时为鼠标中键输入;否则,为YB输出。
  
  LB/YA:复用引脚,PS/2模式为鼠标左键输入;否则,为YA输出。
  
  XY_LED:激光LED控制输出,在物体长时间不移动时,HDNS2000可以控制LED关闭,以节约能量。
  
  VDD3:3.3V直流电源输入。
  
  REFB:内部参考引脚,通过电容与VDD3相连。
  
  PS2_D:PS/2接口的数据端。
  
  NRESET:低电平复位引脚。
  
  VDD5:5V直流电源输入。
  
  GND:电源地。
  
  OSC2:晶振输出。
  
  OSC1:晶振输入,外接18.432MHz晶振。
  
  2HDNS2000与AVR单片机接口设计
  
  2.1HDNS2000与AT90S8015接口
  
  HDNS2000直接提供有PS/2接口,方便了PS/2鼠标的设计;但在机电控制中,为了提高效率,宜直接采用HDNS2000的另一种输出模式,即X向与Y向两通道四状态输出模式。此时XA、XB指示X向移动状态,而YA、YB指示Y向移动状态。图4为HDNS2000与AVR单片机AT90S8515的接口原理图。接口主要占用了4个引脚,其它两个是可选的,所以,即使是AVR中最低档的ATtiny系列也可以方便地与HDNS2000连接。
  
  图4HDNS2000与AT90S8015接口原理图
  
  另外在对节能要求不高的场合,可以将激光LED的一端直接与地相连接,而通过控制开关三极管2N3906来主动控制HDNS2000的工作状态。本文作者在设计时正是采用的这种方式。在进行系统设计时,最好采用安捷伦公司提供的套件,其中包括HDNS2000芯片、HDNS2100透镜、HDNS2200激光LED卡件及HLMP-ED80激光LED,激光波长为639nm。
  
  2.2四位状态机的工作过程
  
  在HDNS2000内部有两个状态机分别指示X、Y两个方向,每个状态机又有四个稳定的状态。图5是状态机的示意图。由图5可见,一开始系统处于状态0,每当检测到物体向正向或反向移动1个单位时就转移到下一个状态,所以只要连续监测状态机状态的变化就可以判断物体移动的方向和距离。图6(a)和(b)分别为负向移动和正向移动时状态机输出的波形。值得注意的是,每个状态的最少停留时间为133μs。
  
  2.3接口软件设计
  
  由状态机输出波形图可以看出,有一种很简单自然的接口设计方法,就是将状态输出引脚接到单片机的外部中断引脚上,使其在每个波形的上下边沿都产生中断,再在中断处理程序中,检测另一对应波形的电平高低,就可以判断移动方向。比如在XA的上升沿时,若XB是低电平就是左移,若XB是高电平就是右移。这种方法需要单片机提供足够多的外部中断。若同时检测X向与Y向运动,且单片机1个引脚不能同时提供上升沿和下降沿中断的情况下,就需要占用8个中断、8条引脚;而目前许多单片机仅提供2个外部中断引脚,这种要求显然较为苛刻。

[1] [2] 下一页

下页更精彩:1 2 3 4 下一页