增量式编码器抗抖动设计.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ if(P1IFG & BIT0) { Counter++; } if(P1IFG & BIT1) { Counter--; } P2IFG &=~(BIT0 + BIT1);
}
P1IE |= BIT0 + BIT1; P1IES &= ~(BIT0 + BIT1); }
float Get_Angle( ) { float angle; angle = Counter/25000*360; return angle; } #pragma vector=PORT1_VECTOR __interrupt void Port1_Interrupt(void)
被避免的。
图 2 编码器产生抖动示意图 编码器受外界干扰产生抖动时其输出波形如图 3 所示。
图 3 编码器抖动时输出波形 当然我们使用软件的方法也是可以把这种抖动干扰去除掉,但其浪费控制器 很大一部分软件资源(要求处理器响应速度异常的高),这就会给我们的软件设 计带来非常大的麻烦,本人已使用软件实现了设计要求,在性能方面不是很好, 一般干扰处理是没有问题,对于一些高频率的抖动干扰,软件响应还是不能够及 时,这里不讨论。这里我们借助一些逻辑硬件对编码器输出信号进行处理。其原 理如图 4 所示。
图 4 编码器去抖动硬件原理图
其设计的基本思想是,对编码器在没有抖动时的输出波形立为标准标准波 形,如图 1 所示波形,将编码器输出的波形与标准波形进行比对,如果其对应的 逻辑都相同,则认为是正常输出,否则确定为干扰,编码器输出为低电平。下面 以正旋运动时其对原理进行详细分析。当编码器正旋输出时(图 1 所示)当 A 相的上升沿到来时 B 相输出为低电平,B 相上升沿到来时 A 相输出高电平,A 相下降沿到来时 B 相输出为高电平,当 B 相下降沿到来时 A 相输出低电平,也 就是说在一个脉冲输出周期中,在 A、B 相的边沿到来时,令 A、B 输出结果为 1,其顺序为B!-A-B-A!,如果能判定出这几个信息则输出信号可以确定 为正常输出,否则判定为抖动输出。我们以图 5 中的波形结合图 4 中的硬件原理 进行分析,设触发器初始值为 1。图 5 中通过AB相的波形,我们很容易判定, 该编码器为正旋运动,正常输出2个脉冲,B相中的其余脉冲都为抖动造成。这 里用‘+’表示信号上升沿,‘-’表示信号下降沿。以 A+作为一个检测比对周期 的开始,以 B-作为检测周期的结束,共在 4 个边沿出将输出信号与标准波形进 行判定和比对。A+时 B 为 0,U6A 触发器(触发器的传递函数为 Q=D,Q!=D!) FQ1=Q!=B!=1,则可认为这个点的波形是正确的,B+时 A 为 1,U1A 触发器 FQ2=Q=A=1,此处波形也符合标准波形,A-时 B 为 1,U6B 触发器 FQ3=Q=B=1, 该点符合标准波形,B-时 A 为 1,U1B 触发器 FQ4=Q!=A=0,此处波形不符合
增量式编码器的抗抖动设计
作者:杨旭
本人在转子流量计智能转换器的设计过程中,需要对角位移传感器进行校验 分析,以确定其精确0.07°, 假设以此值作为其精度计算,则角度传感器的最大满度误差为 0.19‰。这里选用 一个欧姆龙的增量式编码器来设计角度测量仪,其分辨率为 25000P/R 理想状态 下以 1 个脉冲的误差(换算为角度值为 0.0144°)计算,其满度误差为 0.04‰, 足可以满足应用需求。
标准波形。当 B+时,FC=0,此处将计数波形拉低,加入一个比对周期内各点正 确,后续逻辑会将 FC 置位,如果为干扰 FC 保持为 0。当 B-时作为检测周期的 结束点,先进行 FT=FQ1 & FQ2 & FQ3 & FQ4,当 FT=1 时,说明在一个检测周期 内,各边沿点符合标准波形,否则该检测周期内的波形为干扰波形 FT=0,B-经 过 3 级缓冲器 U4A-U4C 触发由 JK 触发器构成的 T 触发器(T 触发器的逻辑关 系为 T=0 时 Q=Q,T=1 时 Q=Q!)U3A,当 FT=0 时,输出 FC=0,否则 FC=1。 这里缓冲器的作用是避免竞争,为了 B-时检测点的波形与标准波形的比对结果 有效。正旋时将扰动假设在 B 相中,反旋转时将扰动假设在 A 相中。反旋计数 原理与正旋相同这里不再叙述。由时序图 5 可知,经过逻辑判定后,最终输出结 果 FC 为 2 个脉冲输出,结果与之前分析一致。
图 1 旋转编码器输出波形 简单来讲,实现设计要求功能很简单,只需检测出 A、B 信号的相位差的状 态,然后将其和两路信号中任意一路一起接入到控制的外部中断引脚,再由控制 通过相位状态进行加减计数即可得到编码器的绝对角位移。关键问题出在当编码 器使用受到环境的干扰,比如如震动、启停瞬间,则编码器输出出现抖动。增量 式编码器产生抖动的原因是 A、B 相之间存在一定的间隙。如图 2 所示,假设 B 相中的某点,以检测点 L 为中心的位置来回震荡,而 A 相中对应点未被检测, 这时就产生了抖动干扰。编码器产生震荡的原因是由其物理结构决定的,是不可
转入正题,增量式编码通常有 A、B、Z 三相输出。以所选编码器为例,其 转动一周 Z 相输出一个脉冲信号,A、B 相输出 25000 个脉冲信号。其输出波形 如图 1 所示,图中为输出的 A、B 两路信号的波形图,这两路信号有 90°相位 差,后续逻辑电路可以通过相位差来判定编码器的转向。该编码器常应用于定位 设备中,图 1 中 A 信号超前 B 信号 90°,由此可判定该编码器顺时针旋转。
图 5 硬件信号处理时序图 将 FC 与 BC 分别接入到控制器的外中断中,将控制器外部中断检测设定为上升沿有效, 当进入中断后进行中断向量的判定,如果 FC+,则变量 Counter++,否则 Counter--。 这设 FC =P1^0,BC =P1^1,控制器使用 TI 的 MSP430F1611。其代码为如下。 float Counter; void Port_nit() {
相关文档
最新文档