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

发布者:灵感狂舞最新更新时间:2011-12-15 关键字:光栅传感器  测量  细分 手机看文章 扫描二维码
随时随地手机看文章
   

1 引言

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

有很多采取纯硬件进行细分的方法,如,电阻链细分,空间细分,锁相倍频,还有两种方法的结合使用等。上述几种方法在实际应用中被广泛采用,特别是电阻链细分,在低倍频的情况下是一种很好的方案。但是在高倍频的情况下,不可避免地出现大量使用比较器的情况,以及比较器死区(滞后区)问题,难以调节。空间细分的方法中,主要解决的问题是切割电平精准的问题,其中的三角波切割三角波的方案有很多优点,可以改变使用过零比较造成的细分误差。但是仍然存在大量使用比较器的问题,调节起来比较繁琐。锁相倍频细分的方法,一方面,成本较前两种高,另一方面,受环境温度的影响比较大,实际的应用中很少采用。

高速数字处理器件DSP的应用可以极大地改善系统的实时性,DSP中集成了16路10位A/D转换,同时有丰富的硬件资源,比较器、定时器,和两个专门用于产生PWM波的事件管理器。DSP中丰富的指令集为做除法提供了条件。设DSP(2407a)的时钟频率是40MHZ,除法程序可以在35个指令周期内执行完,两路A/D转换需要29个指令周期,查询数据得细分值需要两个指令周期。共69个指令周期,DSP中程序执行是流水线执行的,一个时钟周期最多可以执行4条指令。则需要不到1.6us就可以得到精确的光栅位移值。对于一般的应用场合,用DSP细分可以足够保证控制器500KHz的频带,和定位的精确性。

本文从原理上考虑在DSP中完成细分的方案,使用取绝对值,八卦限理论,利用DSP器件(速度为25纳秒)对信号进行逻辑运算和处理等一整套信号细分方案。

2 细分及框图

通过软件查询的方式进行细分。从光电编码器输出的两路角位移信号首先进行滤波整型,硬件辨向,提取整周期信号,得到粗位移;同时对两路信号进行A/D转换,通过U函数得到计数脉冲,从而得到卦限值,通过V函数得到精位移的地址信号,查询得到精位移。系统框图如下:

    输入的两路信号分别是x1=2.5*sin(fai)+2.5(v),x2=-2.5*cos(fai)+2.5(v);在DSP中有专门的16路A/D转换电路,因而不用再设计A/D转换电路。A/D转换后得到y1=|2.5*sin(fai)|,y2=|-2.5*cos(fai)|。对其进行卦限计数,

A/D转换周期由软件设定,而在硬件电路实现时,必须要考虑卦限信号,控制信号的高度同步,但在实际电路中是很难做到的。

如果将该数据与相位之间的对应关系用一张表来描述,就是我们所建立的细分表,放在DSP中的SRAM中,DSP中集成了2K×16的SRAM,足够放置查询表。两者之间并不是一一对应关系。

(FAI)(t)=arctanθt∝sinxt/cosxt;

软件流程图如下:

    软件程序流程图:

U函数取为U=y1*y2*(y2-y1);当U为零时,卦限信号就增加1

; ;;;;;;;;;;-------细分程序

XIFEN: LDP #0E1h;

CLRC SXM ; 抑制符号位扩展

LACC RESULT0,10

SACH X1 ; 存X1值

LACC RESULT1,10 ;

SACH X2; 存X2值

SETC SXM ;允许符号位扩展

LACL R1SIN;

SUB #JUNZHI ;(2.5V);

ABS

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标志来表示卦限信号是否刚记过。刚刚记过,就舍弃掉。改正的程序流程如下图。

3 软件辨向 

要精确的控制电机,就必须精确判断当电机转动出现来回摆动时的方向。对硬件辨向只能做到在整周期计数时知道电机的转动方向,当在一个整周期内方向改变时,硬件辨向就不能及时的传递方向信息。我们根据判方向的规则,在软件中完成辨向,在1,2,7,8卦限,x2小于等于2.5v时为顺时针转动,大于2.5v为逆时针转动;在3,4,5,6卦限,x2大于2.5v时为顺时针转动, 小于等于2.5v为逆时针转动;程序流程:

 

direction=1,表示顺时针,为0是逆时针;

若做到1024细分, 分八个卦限,每个卦限有256个细分值。在DSP中只需要256×16个单元存储细分值即可。

细分码

地址码

卦限地址

A/D转换得到的地址

000,0000,0000

000 3

00,0000,0000~00,0000,0010

000,0000,0001

000 6

00,0000,0011~0000,0010~101

000,0000,0010

。 9

1001

000,0000,0011

。13

1101

000,0000,0100

。16

10000

000,0000,0101

19

1

000,0000,0110

22

 

000,0000,0111

25

 

000,0000,1001

28

 

000,0000,1010.....

31

 

000,0000,1011

35

 

000,0000,1100

38

 

000,0000,1101

41

 

000,0000,1110

44

 

000,0000,1111

47

 

000,0001,0000

50

 

000,0001,0001

53

 

000,0001,0010

57

 

 

60

 

 

63

 

 

66

 

 

69

 

000,0110,1111

366

 

000,0111,0000

370

 

000,0111,0001

373

 

000,0111,0010

377

 

000,0111,0011

381

 

000,0111,0100

384

 

000,0111,0101

388

 

000,0111,0110

391

 

000,0111,0111

395

 

000,0111,1000

399

 

000,0111,1001

402

 

000,0111,1010

406

 

000,0111,1011

410

 

000,0111,1100

413

 

000,0111,1101

417

 

000,0111,1110

420

 

000,0111,1111

424

 

000,1000,0000

 

 

......

 

 

000,1111,1000(248)

945

 

000,1111,1001

981

 

000,1111,1010

987

 

000,1111,1011

993

 

000,1111,1100

999

 

000,1111,1101

1005

 

000,1111,1110

1012

 

000,1111,1111

1018

00

001,0000,0000

1024

11,1111,1111~11,1111,1

 

细分码

地址码

卦限地址

A/D转换得到的地址

000,0000,0000

000 3

00,0000,0000~00,0000,0010

000,0000,0001

000 6

00,0000,0011~0000,0010~101

000,0000,0010

。 9

1001

000,0000,0011

。13

1101

000,0000,0100

。16

10000

000,0000,0101

19

1

000,0000,0110

22

 

000,0000,0111

25

 

000,0000,1001

28

 

000,0000,1010.....

31

 

000,0000,1011

35

 

000,0000,1100

38

 

000,0000,1101

41

 

000,0000,1110

44

 

000,0000,1111

47

 

000,0001,0000

50

 

000,0001,0001

53

 

000,0001,0010

57

 

 

60

 

 

63

 

 

66

 

 

69

 

000,0110,1111

366

 

000,0111,0000

370

 

000,0111,0001

373

 

000,0111,0010

377

 

000,0111,0011

381

 

000,0111,0100

384

 

000,0111,0101

388

 

000,0111,0110

391

 

000,0111,0111

395

 

000,0111,1000

399

 

000,0111,1001

402

 

000,0111,1010

406

 

000,0111,1011

410

 

000,0111,1100

413

 

000,0111,1101

417

 

000,0111,1110

420

 

000,0111,1111

424

 

000,1000,0000

 

 

......

 

 

000,1111,1000(248)

945

 

000,1111,1001

981

 

000,1111,1010

987

 

000,1111,1011

993

 

000,1111,1100

999

 

000,1111,1101

1005

 

000,1111,1110

1012

 

000,1111,1111

1018

00

001,0000,0000

1024

11,1111,1111~11,1111,1

关键字:光栅传感器  测量  细分 引用地址:用DSP实现增量式光电编码器的细分

上一篇:基于TMS320F2812的变频调压功率信号源
下一篇:基于DSP的变频调速系统电磁干扰问题研究

推荐阅读最新更新时间:2024-05-02 21:47

精确测量蓄电池内阻的方法研究
 1.引言   蓄电池作为电源系统停电时的备用电源,已广泛的应用于工业生产、交通、通信等行业。如果电池失效或容量不足,就有可能造成重大事故,所以必须对蓄电池的运行参数进行全面的在线监测。蓄电池状态的重要标志之一就是它的内阻。无论是蓄电池即将失效、容量不足或是充放电不当,都能从它的内阻变化中体现出来。因此可以通过测量蓄电池内阻,对其工作状态进行评估。目前测量蓄电池内阻的常见方法有:   (1)密度法   密度法主要通过测量蓄电池电解液的密度来估算蓄电池的内阻,常用于开口式铅酸电池的内阻测量,不适合密封铅酸蓄电池的内阻测量。该方法的适用范围窄。   (2)开路电压法   开路电压法是通过测量蓄电池的端电压来估计蓄电池内阻,精
[测试测量]
精确<font color='red'>测量</font>蓄电池内阻的方法研究
测量领域的基本的电子标准
测量的国际单位制 美国国家标准局(目前叫美国国家标准技术研究院(NIST))于1964年采纳了国际单位制。 1)米(m)----长度。米是与氪-86原子的2P10和5d5能级之间跃迁相对应的再真空中辐射的1650763.73个波长的长度。 2)千克(kg)-----质量。千克等于千克国际原器的质量。 3)秒(s)----时间。秒是与铯-133原子基态两个超精细能级之间跃迁相对应的辐射的9192631770个周期的持续时间。 4)安 (A)----电流。安培是在真空中对截面可忽略的两根相距1m的无限长平行圆直导线内通以恒定电流,则恒定电流将在两根导线之间每米长度上产生2x10e-7 N的力此时每根导线中
[测试测量]
<font color='red'>测量</font>领域的基本的电子标准
基于LabWindows /CVI的电压闪变测量研究
  0 引言   电力系统中具有冲击性(快速变动)功率的负荷会引起电网电压的波动和闪变,引起许多电工设备不能正常工作.严重影响电网的电能质量。因此,对电压波动和闪变的准确测量显得越来越重要。   国际电工委员会(IEC)给出了闪变测量和评估的国际统一规范,但IEC并未给出其具体实现方法。本文应用 虚拟仪器 开发平台LabWindows/CVI开发了基于IEC闪变测量原理的闪变测量模块,经验证测量精度完全满足IEC标准。   1 IEC闪变测量原理   IEC推荐的闪变仪原理框图如图1所示。输入量为电压信号,经过框1至框4的 滤波 器处理后获得输出信号瞬时闪变视感度S(t),该信号反映了电压波动引起灯光闪烁对人视觉的
[测试测量]
安捷伦展示移动通信测试与测量解决方案
安捷伦科技公司在 2010 年移动通信世界大会上展示了适用于 LTE、TD-LTE、3GPP W-CDMA、HSPA+、E-EDGE(EDGE 演进)、UMA/GAN、WiMAX和 毫微微蜂窝基站的通信测试与测量解决方案。2010 年移动通信世界大会(Mobile World Congress)于 2010 年 2 月 15 日至 19 日在西班牙巴塞罗那举行。安捷伦新的测试与测量解决方案可以为研发、制造、安装与维护工程师提供支持,帮助他们开发和推出创新产品,满足快速演进的移动通信市场当前与未来的需求。   安捷伦电子测量事业部总裁 Ron Nersesian 表示:“作为测试与测量行业的领导者,安捷伦致力于提供能够覆盖每种
[测试测量]
基于单片机的多参数测量仪设计
本文给出了一种由单片机MSP430F149和部分外围电路来构成多参数 测量仪 的设计方案。详细介绍了测量RLC、频率及相位差的具体方法,同时给出了硬件电路和软件程序框图。   引言   现在常用的仪表一般还是传统的模拟式仪表,漂移大,程控性能不好,而有些仪表功能过于单一,不能满足实际需求。为此,本文考虑到实际的科研实验需要,给出了一种可同时测量RLC、频率及相位差的测量仪的设计方法。   1 系统组成与硬件电路设计   1.1 系统组成   该仪器包括信号产生与接收模块、信号的放大整形滤波处理模块、单片机中央处理器、显示模块LCD12864和外部按键控制模块等几个部分,其系统组成结构框图如图1所示。   
[单片机]
基于单片机的多参数<font color='red'>测量</font>仪设计
互联大时代中的福禄克小测量
昨天,福禄克店面2015年全国巡回培训会北京站顺利落下帷幕,现场座无虚席,而美女工程师的演讲更是让当场的很多男士听得更加入神。此次巡回培训将在全国20多个城市举办,如果有兴趣赶紧去报名。 图1 福禄克美女工程师演讲 此次培训主要针对福禄克万用表、钳形表、红外测温仪以及福禄克环境专家系列,这些仪表的应用领域都特别广,从过程行业、核电、交通,到数据中心以及最近很火的制造行业(工业4.0)。 互联时代的万用表 相对于其他同类测试工具,福禄克数字万用表的使用更广,故障查找更全面。所有设计均经过极限测试:跌落、冲击、湿度等等。福禄克数字万用表满足您的所有需求:精准的测量结果;一致
[测试测量]
互联大时代中的福禄克小<font color='red'>测量</font>仪
三星Watch 4和Apple Watch 7或将能测量血糖
糖尿病患者为了避免发生低血糖,必须每天多次检查血糖水平,而这其实可以交给智能手表来处理。据外媒WinFuture报道,三星和苹果公司目前都在研发可以测量糖含量的智能穿戴设备,包括Apple Watch 7和三星Galaxy Watch 4、Watch Active3。   报道称,这几款智能手表没有用来戳使用者皮肤以获取血液样本的针。三星和苹果两家公司可能会借助光学传感器,然后可以借助拉曼光谱法确定血糖水平,该功能是否实际可行还有待观察。两家公司的开发人员正在与麻省理工学院的科学家合作,从而提高该方法的可靠性。   三星很可能会在今年下半年的一次活动中展示Galaxy Watch 4、Watch Active3,而新的
[手机便携]
用STM32测量频率和占空比的几种方法
由于我们当时的题目除了测量频率之外,更麻烦的是测量占空比。而这两个的测量方法联系比较紧密,所以也一并把测量占空比的方法写出来。 使用平台:官方STM32F429DISCOVERY开发板,180MHz的主频,定时器频率90MHz。 相关题目: (1)测量脉冲信号频率f_O,频率范围为10Hz~2MHz,测量误差的绝对值不大于0.1%。(15分) (2)测量脉冲信号占空比D,测量范围为10%~90%,测量误差的绝对值不大于2%。(15分) 思路一:外部中断 思路:这种方法是很容易想到的,而且对几乎所有MCU都适用(连51都可以)。方法也很简单,声明一个计数变量TIM_cnt,每次一个上升沿/下降沿就进入一次中断,对TIM_cn
[单片机]
用STM32<font color='red'>测量</font>频率和占空比的几种方法
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved