DIY编程器网

标题: 一种简单实用的测角码盘设计方案 [打印本页]

作者: liyf    时间: 2014-10-5 09:48
标题: 一种简单实用的测角码盘设计方案
一种简单实用的测角码盘设计方案


摘要:介绍一种制作简单、价格便宜、应用面广的测角码盘设计方案;并以码盘信号的产生、处理和传输为主线,详细说明工作原理,进而再次证明其简单便宜的突出优点。
测控系统中,经常用到采集各种角度参数或对转动机构进行测速的角度传感器。目前,市场上一些具有成熟技术的角度传感器有自增角机、电位器、 码盘、霍尔元件和齿轮计数器等。这些产品中,有的精度很高,但价格昂贵,有的价格便宜,但结构复杂,往往难于同时满足结构简单、价格便宜的要求。本文介绍一种光电码盘设计方案,硬件结构非常简单、成本价格十分便宜,而且稳定性好、使用寿命长,又能满足多数情况下的精度要求。
1 工作原理
1.1 原始信号的产生
(1)信号产生原理
图1是码盘产生原始信号的原理示意图。
本码盘用于采集信号的器件是一对发光管和接收管,每个管内有两套收发装置。其功能实现过程为:在发光管和接收管之间放一圆形黑白相间且宽度相同的编码胶片,使三者分别处于相互平行的平面内,将发光管和接收管中心对正,并使编码胶片可以绕其轴心旋转。 上电后,发光管会连续不断地发射信号,但由于胶片是黑白相同的,所以当黑色部分正对发光管时,发光管发出的信号将被阻挡,使接收管接收不到信号;而当白色部分正对发光管时,发光管发出的信号将透过胶片射到接收管上。这样,在接收端就得到两路连续变化的正弦波。
(2)方向判别原理
图2为原理示意图。
编码胶片宽度是收发装置距离的两倍,两收发装置位置关系应满足B=(0.7n+0.35)+A,图中n=0。
同理,当胶片向右转动时,A、B信号变化恰好相反。这样,通过A、B信号不同的变化规律实现对方向的判别。
1.2 信号处理
图3是码盘信号处理电路图。

    该电路的主要任务是将产生的原始模拟信号转换为数字信号,即模数转换。由传感器产生的0V为振荡中心的正弦波信号,经跟随器处理后转换为以+2.5V为振荡中心的正弦波信号。通过调节电位器,使其波形达到最佳状态,然后,经过大器将正弦波信号放大10倍。此时,由于放大的拉伸作用,被钳位在0~5V之间的信号已具有非常陡的上升沿和下降沿,最后经施密特触发器整形后,以方波形式输给单片机。其波形关系如图4所示。
1.3 信号控制及传输
图5为控制传输电路图。

    这部分主要通过软件编程实现对信号的处理。硬件结构包括信号处理芯片AT89C2051、信号传输芯片75176和相应的复位电路。其中,复位电路采用由MAX813L芯片组成的看门狗电路。正常工作时,由89C2051为其定时提供触发信号,不产生复位;若发生错误,则在距上次触发信号1.6s后,该电路会自动产生复位信号,对89C2051进行复位。
信号处理电路产生的方波信号A、B由端口Px.m和Px.n输入,然后通过软件比较端口现在时刻和下一时刻的状态变化,实现功能选择。最后,通过端口Px.k控制的串行通信 芯片75176传给主控板,实现信号的控制传输。
[img=549 vspace=10 border=0,238 hspace=10 src=]http://www.diybcq.com/[/img]
2 软件设计

2.1 状态编码
由图4可知,A、B信号的相位相差1/4个周期,所以可得图6所示的状态变换图。
若规定顺序时针方向计数器为加,逆时针方向计数器为减。
这样,通过不同状态值的变换就可对数据进行加操作、减操作和不操作,从而实现对信号的连续处理功能。
2.2 软件编程
软件流程如图7所示。
主要可分为以下几部分。
①上电开始后,软件首先对AT89C2051的内部寄存器和RS422串行口进行初始化。通过对专用寄存器的赋值,设定工作状态和通信 方式,串行通信的波特率为9600b/s。
②初始化完成后,软件将检测端口Px.m和Px.n的状态,程序用两位记录端口相邻状态值,左一位代表前一状态,右一位代表当前状态,然后通过带进位的左循环指令进行状态更新。通过状态值变化,查表2,跳转进入执行程序。
③在执行程序中,可根据不同需要设定上下限进行数据处理。同时,由于处理程序很少,执行时间短,串行通信部分可采用查询方式完成。
3 应用实例
把该设计应用到笔者开发的项目—某型转达训练系统上。采用图3和图5所示的电路设计方案,用该码盘连续采集空中飞行目标的方位角和高低角。
以高低角采集为例,系统指标要求高低角变化范围是-50~1450密位,设计中采用的编码胶片精度是480单位/圈。如文中图1所示,由于编码胶片是圆形的,且一个黑色或一个魄区间均可称为一个单位,所以计算其精度时用每圈包含的黑白区间个数确定,因此用单位/圈。对高低角增减判断主要通过软件编程实现,这段程序如下。

    MAIN1:MOV A,R4 ;读骊盘A、B信号到码盘状态暂存器R4
MOV C,P3.3 ;P3.3为A信号采集端口,
RLCA ;用于A信号新旧状态转换
MOV C,P3.5 ;P3.5为B信号采集端口,
RLCA ;用于B信号新旧状态转换
MOV R4,A
ANL A,#0FH ;计算散转地址
MOV B,#03H
MUL AB
MOV DPTR,#TIM1;TIM1为状态真值表首地址
LJMP @A+DPTR ;散转至真值表
然后,通过查真值表状态值,转入处理程序实现角度的加减。若出现丢码现象,说明单片机采集速度低于码盘转动速度,可根据实际情况更换采集芯片或降低码盘转动速度。同时,通过规定编码胶片每旋转个单位对应的角度值变化1密位(密位是军事用语,一种更精确的划分角度方法,一周为360度,6000密位)和相应的单位转换。在软件中确定了码盘采集量的上下限和单位变化量,从而限定了高低角的变化范围,也达到了采集精度要求。

[attach]32100[/attach]
图8


    通过示波器检测硬件电路单个信号波形,得到图8所示关系。
说明实际应用电路中各级输出信号与原理电路的设计完全相符,软件采集的信号为真实值。
经实践检验,该方案设计的码盘能准确的采集目标参数,使系统对目标进行连续跟踪。
本文介绍的测角码盘设计方案使用的都是容易购买的简单器件,且软件编程任务量少。此外,可通过在旋转轴上安装微动开关实现码盘计数的快慢变化,还可通过采用绝对式编码胶片进一步提高采集精度。






欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2