用DSP实现增量式光电编码器的细分

时间:2010-12-22来源:网络

SACL Y1 ; 得到y1

LACL X2;

SUB #JUNZHI(2.5V);

ABS

SACL Y2 ; 得到y2

SUB Y1 ;

SACL Y ; 得到Y=y2-y1值,保存 ;用dsp中计数器T4记卦限

BCND ss,NEQ

Lacl y1

BCND ss,NEQ

Lacl y2

BCND ss,NEQ ;若U=0,卦限计数器计数

set t4clkin ; 为计数器提供脉冲

ss: LACL y

BCND DEVISION,GEQ ; 判断卦限,y2>=y1 时,直接y1/y2;否则y2/y1,除数变被除数

JIAOHUAN: LACC y1 ; y1和y2交换

SACL TEMP_AD ;

LACL y2 ;

SACL y1 ;

LACC TEMP_AD ;

SACL y2 ; y2/y1 ; 毫秒为Q8格式

DEVISION LACC R1SIN ,6;;;;取分子并左移6位;

RPT #15 ; 后面的指令执行15+1次。

SUBC R2COS ;16 CYCLE DIVIDED LOOP

; .ACC中的数据减去Demon 减10次,直到被减数小于0

SACL QUOT ; 得到商

SACH REMAIN ; 得到余数

LACC REMAIN; 取余数后再除

RPT #13 ; 后面的指令执行14次。

SUBC DENOM;

AND QUOT;

; SACL QUOT ;;;保存商。得到十位地址信号。用此信号得到RAM中对应地址细分值保存在DSP的sram中)

ADD #0800h ;SRAM 初始地址为#0800H(

SAL XIFEN_ADR ;

LACC #XIFEN_ADR

ADD #0800h ;SRAM 初始地址为#0800H

SAL XIFEN_ADR ;

LACL Y ;Y2>=Y1 ;

BCND yy2 ,GEQ

LACL #05h ;设编码最小栅格为40秒,一个卦限为5秒。

SUB #XIFEN_ADR

B YY

YY2: LACC #XIFEN_ADR

YY: Ldp #0eah ;

LT t4cnt ;卦限值

MPY #05h ; 一个卦限相差5秒,

APAC 得到精确细分值

根据得到的细分值与整周期值相加就可以得到对应的光栅编码信号。

当速度特别慢时,用软件判卦限会出现重复计数。也就是一个细分周期里,电机转动的位移小于20/1024秒,如下图。卦限函数使得卦限增1,产生错误。我们要舍弃这个计数。

为了解决这个问题,我们把软件的判卦限程序改以下:用一个flaggx标志来表示卦限信号是否刚记过。刚刚记过,就舍弃掉。改正的程序流程如下图。

1 2 3

关键词: 光栅传感器 测量 细分

1 引言

目前 各类伺服驱动器及其应用中广泛采用光栅装置作为速度测量、位置测量的敏感元件。而且 广泛采用两路正交方波的形式 系统的实时性要求极高。因此 对于光栅编码器的信号的细分等主要处理环节 一方面集中考虑提高分辨率的问题 同时 需要考虑实时性的问题。

有很多采取纯硬件进行细

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版