【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块

0?wx_fmt=gif

在电机控制领域,我们经常需要得到电机的转速,位置来执行算法,那么想知道转速是如何获得的吗?看过来,猿来你在这里O(∩_∩)O~

正交编码器简介

飞思卡尔增强型正交编码器模块为多种电机控制的应用提供转速和位置型号的感应。正交编码器也叫增量式编码器或者光电编码器,大量应用于检测旋转运动系统的位置和转速,像电机控制,智能小车等。典型的增量式编码器 包括一个放置在电机传动轴上的开槽的轮子和一个用于检测该轮上槽口的发射器/检测器模块,飞思卡尔的正交编码器模块(ENC)提供与正交编码器的接口,为电机控制的应用提供了很大的方便,有五个输入信号,分别为PHASEAPHASEBINDEX, TRIGGER,HOME. ENC模块可以用来解码传动旋转轴的位置转速信息,供控制算法使用,像倍加福,国产的长春禹衡等都有大量应用。

系统框图

简单了解正交编码器后,那么在MCU系统上正交编码器模块的构成是什么呢,下面框图带你轻松理解

【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块_第1张图片

大体分为三个部分,输入信号经过XBAR,解码器模块,以及计数模块。

正交编/解码器框图

了解了片上系统的框图之后,通过下图可以清楚的看出正交解码器的构成

【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块_第2张图片

输入信号经过滤波,进入检测,再触发计数比较,得出位置信息,需要注意一点的是有一个看门口定时器,确保算法的正确的表明轴的运动,两次连续的计数会清掉复位看门口定时器,定时器的定时溢出值是可以编程的,定时溢出的产生会引发中断。

PHASEA 的输入即是正交编码器的输出,PHASEAPHASEB联合计算方向,在正向旋转的时候,PHASEA是主导相,PHASEB是尾随相,当反方向的时候,PHASEB是主导相,PHASEA是尾随相。也可以应用在单相的输入情况下,当编码器是作为单相脉冲累加器的时候。

通常情况下,INDEX信号会连接到编码器脉冲索引输出口。HOME输入信号,可以用来初始化位置寄存器的上下限。TRIGGER信号输入可以用来清除位置计数器的上下限值,这个信号还会经常连接到定时脉冲发生器,或者定时器表明一个时间周期已消逝。

其他信号的详细信息以及寄存器的详细信息请参阅飞思卡尔官方参考手册。与ENC相关的期存器大概有二十来个,不算多,仔细阅读手册应该很快会掌握驱动操作原理。

中断源

飞思卡尔ENC模块有五个中断源如下表所示:

【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块_第3张图片

基本时序图

下图可以看出增量型编码器的基本时序图,关于工业上的应用,推荐大家下载正式的编码器的数据手册仔细研读。

【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块_第4张图片

软件解决方案

自己可以根据数据参考手册的描述一步步开发完成编码器的驱动程序,也可以快速参考甚至直接使用飞思卡尔SDK里面的对ENC模块的驱动,推荐大家使用SDK,可以快速评估你的方案,也可以快速上手学习ENC的驱动开发。在SDK1.2版本里面有专门针对ENC的例程。如果是默认路径则打开

C:\Freescale\KSDK_1.2.0\examples\twrkv46f150m\demo_apps\enc_demo\iar

工程如下图所示,使用我们前面反复提到的批处理编译整个工程样例,对照手册学习,甚至可以用示波器抓几个波形跟编码器手册对比,这样你会印象更加深刻。

【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块_第5张图片

如果你喜欢嵌入式程序猿,欢迎推荐身边更多猿友加入。

0

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

0?wx_fmt=jpeg

你可能感兴趣的:(【电机控制不得不学习的干货:】 飞思卡尔MCU正交编/解码器模块)