当前位置:首页 > 测试测量 > 测试测量
[导读]本文介绍HDNS2000的功能、特点,从硬件与软件两个方面讨论HDNS2000与AVR单片机的接口设计。

   摘要:安捷伦(Agilent)公司的HDNS2000芯片是一种高性能的运动检测器件,在目前的光学鼠标中应用广泛,其易用性和廉价性使其非常适合应用于中低精度的运动和位置检测中。本文介绍HDNS2000的功能、特点,从硬件与软件两个方面讨论HDNS2000与AVR单片机的接口设计。

    关键词:HDNS2000 运动检测 AVR

在机电产品设计中,有时需要检测物体间的相对运动,包括运动方向和运动距离。若采用机械式的结构,比如机械鼠标中的滚轮和轨迹球,则会由于频繁的机械运动而发生故障,导致精度下降甚至失效,维修起来也不方便。另外它需要两个物体表面相接触,靠相互间的摩擦进行工作,这在某些场合是不能允许的。解决方案之一就是采用光电器件,运用光学原理来测定运动。安捷伦公司的HDNS2000就是为此而设计的,虽然它的市场是针对光学鼠标,但也可以作为一种高性能而又廉价的器件运用于工业控制领域中。

1 HDNS2000芯片介绍

1.1 主要功能与特性

HDNS2000是安捷伦推出的高性能的光学感测芯片,它的内部包含三个基本模块:图像拾取系统、DSP处理器、PS/2或四状态输出转换器,如图1所示。在HDNS2000芯片的底部有一个感光眼,如同一个小型的摄像头,不断地对物体表面进行拍照,接着将前后两次的图像送入DSP中进行处理,以判断物体移动的方向和大小,最后将数据转化为PS/2格式或者以两通道四状态格式输出。图2中的(a)与(b)分别为芯片前后两次拾取的图像。比较图2中的(a)和(b)可以看出,物体向左下方移动了一点。

HDNS2000的图像拾取系统每秒钟可以拾取1500张图像,可以精确地测量最高30.48 cm/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.3 V直流电源输入。

REFB:内部参考引脚,通过电容与VDD3相连。

PS2_D :PS/2接口的数据端。

NRESET:低电平复位引脚。

VDD5:5 V直流电源输入。

GND:电源地。

OSC2:晶振输出。

OSC1:晶振输入,外接18.432 MHz晶振。

2 HDNS2000与AVR单片机接口设计

2.1 HDNS2000与AT90S8015接口

HDNS2000直接提供有PS/2接口,方便了PS/2鼠标的设计;但在机电控制中,为了提高效率,宜直接采用HDNS2000的另一种输出模式,即X向与Y向两通道四状态输出模式。此时XA、XB指示X向移动状态,而YA、YB指示Y向移动状态。图 4为HDNS2000与AVR单片机AT90S8515的接口原理图。接口主要占用了4个引脚,其它两个是可选的,所以,即使是AVR中最低档的ATtiny系列也可以方便地与HDNS2000连接。

图4 HDNS2000与AT90S8015接口原理图

    另外在对节能要求不高的场合,可以将激光LED的一端直接与地相连接,而通过控制开关三极管2N3906来主动控制HDNS2000的工作状态。本文作者在设计时正是采用的这种方式。在进行系统设计时,最好采用安捷伦公司提供的套件,其中包括HDNS2000芯片、HDNS2100透镜、HDNS2200 激光LED卡件及HLMP-ED80激光LED,激光波长为639 nm。

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个外部中断引脚,这种要求显然较为苛刻。

另一种方式就是降低精度要求,仅在XA与YA的上升沿进行检测,此时仅需要2个外部中断引脚。但这种方式在一种极端条件下会出错,读者可以自行分析。若只检测X一个方向,则可以同时检测上下沿中断,这样不会出错。这种方式牺牲了一点对运动换向和震颤的敏感度;但编程简单,不失为一种好方法。

本文采用的是查询方式,这种方式不占用任何中断,且能够不损精度地同时检测X向与Y向运动。前面已经提过,每个状态的最小保持时间为133 μs,所以,只要将查询的周期控制在60μs之下就可以抓住每个状态的变化。对于AT90S8515,若按晶振为8 MHz计算,则只需将查询周期汇编指令数控制在450条以下就可以了。实际上,以下给出的C语言程序经过编译后只有不大于60条汇编指令,完全能够满足系统要求。

该方法的基本思想是将状态机的前一状态与现在的状态组合在同一字节内,如表1所列,寻找其中的规律,简化程序设计。表1中以PRE开头的表示前一状态的对应值。

表1 组合前后两状态在同一字节

位bit 3 2 1 0
XA XB PRE_XA PRE_XB
位bit 7 6 5 4
YA YB PRE_YA PRE_YB

以X向移动为例(仅看前半字节),正向移动时对应的值为0b1000、0b1110、0b0111、0b0001,负向移动时对应的值为0b0010、0b1011、0b1101、0b0100。假设状态不变的情况已经排除,且查询周期足够短,不会出现相对周期的组合值。所以只要能将以上两组值区分开来就可以了,这也正是程序中两条条件判断语句的目的。读者可以对照程序自行验证。接口程序如下:

while(1){

state=PINA&0xcc;

state_change=state^pre_state;

combo_state=sate | (pre_state>>2);

if(state_change & 0x0c)

{

if((combo_state & 0x06) == 0x06)

{asm("INC R20");goto next;}

if((combo_state | 0x09) == 0x09)

{asm("INC R20");goto next;}

asm("DEC R20");

}

next:

if(state_change & 0xc0)

{

if((temp & 0x60) == 0x60)

{asm("INC R21");goto end;}

if((temp | 0x90) == 0x90)

{asm("INC R21");goto end;}

asm("DEC R21");

}

end:pre_state=state;}

程序已经事先定义了寄存器R20与R21分别为X、Y向的计数器,用来表示X、Y向移动的距离。以上程序段利用内嵌汇编语句优化了程序结构。实际上,还可以对编译器生成的汇编代码进行优化,这里就不再详述了。

结 语

以上软硬件接口设计虽然是以功能强大的AVR单片机作为例子,但通过仔细分析不难发现,在简单的应用场合,用普通的51单片机,甚至如AT89C2051在12 MHz晶振频率下也可以实现其功能。所以整个系统会是相当廉价的。

安捷伦公司最近在继HDNS2000之后,又推出了升级芯片HDNS2051和适于无线应用的芯片HDNS2030,除了更强的处理能力外,主要改进还在于采用了单电源供电,提供了省电模式,去掉了不实用的PS/2接口,引入了同步串行口,允许用户对分辨率进行设置等。这些改进极大地方便了用户的使用,一方面扩大了其光学感测芯片市场占有率,另一方面无疑也为机电产品设计者提供了一种更强大、更方便、更廉价的运动检测方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭