STM32编码器在光栅尺测速场合的实际应用
STM32编码器在光栅尺测速场合的实际应用
邓军
上海201114)(上海宝宜威机电,
摘要:STM32103F系列微控制器的定时器有一种特有工作模式———编码器接口模式,此模式可以用来反馈马达的实时转子位
在工业控制场合,尤其是需要精确定位的压机、机置,测量马达的转速,也可以反馈光栅尺的实时位置,测量光栅头的移动速度,
(HEIDENHAIN)床等使用场合,有着非常实用的价值。现以STM32103F微控制器与海德汉光栅尺LS1378C为例,详细介绍定时
器的编码器工作原理,以及双定时器配合测速度的编
程
算
法。
关键词:STM32编码器;光栅尺;
测速M3有内STM32103F核,主要面向系工列业是控ST制公司领域采推用高出性能的32位ARM通用Cortex-定时器PWM以下一种有模几别于式、种单工其脉冲作模式:计数器模式、
输的入微捕控他通模用式、ARM编码控器制接口器以及模式DSP。
其中,获制模器式、芯片控制编码输。器的器出特接口比较有模模模式式式、,
是此模式可以用来反馈马达的实时转子位置,
测量马达的转速,也可以反馈光栅尺的实时位置,测量光栅头的移动速度,
在工业控制场合,尤其是需要精确定位的压机、机床等使用场合,
有着非常实用的价值。
光栅尺位移传感器(简称光栅尺)
,是利用光栅的光学原理工作的测量反馈装置。光栅尺位移传感器经常应用于机床与现在加工中心以及测量仪器等方面,可用作直线位移或者角位移的检测。其测量输出的信号为数字脉冲,具有检测范围大,检测精度高,响应速度快的特点。例如,在数控机床中常用于对刀具和工件的坐标进行检测,来观察和跟踪走刀误差,以起到一个补偿刀具的运动误差的作用。
在这里需要说明的是,光栅尺只是一个反馈装置,
它可以将位移量和位移方向通过脉冲信号输出的方式反馈出来,
但它不能直接显示出来,它还需要一个显示装置,
比如通过CPLD来识别,或者本文中的微控制器STM32103F来识别。光栅尺的输出信号为相位角
相差90毅的两路方波信号,如果A路超前B路90毅,表示光栅尺在正
向移动,反之,A路落后B路90毅,表示反向移动。这两路方波信号都
为TTL差分信号,需要经过差分输入芯片,比如TI的TIM3-CH1电平的和方波TIM3-CH2之后,才能进两个定引时器脚。
的输入引脚
。此MC3486例中接,转化为
入的是1um量程距为,海即德0.25um一个汉方LS1378C。波直对应为观来说1um增,STM32103F,量经式后续直线电子光栅尺,220mm,信号周期
识设备进别到一个行4周期分频的之后方波脉冲测量步,计数器增长4次,表示光栅尺移动了1um。
图1编码器模式下的计数器操作实例
此例中,
定时器Timer3配置成编码器接口模式,提供传感器当前实时位置的信息。另外再开一个定时器Timer2,配置成10ms的定
时工作模式,读取10ms之内的位置之差,即可获得动态的信息,
比如速度、加速度。
这个算法思想的前提,也就是本文讨论的核心,是10ms内定时器655353计数们通过计,如何器不算保来证溢说明10ms出,因,比内为定时器为16位,最大可计数的范围为如实已际知增长的计数光栅尺连接不的超过机械这一运动最部大件值的最呢?大我速度不0.25um=40000可能超过1m/s,那么10ms内走的位移量为10mm,立。如果运动次部计数,件的实40000际运小动速于度65536可能,更所快以这一,
那么把算法10ms的前10mm/定提成
位改为5ms即可,以此类推,但定时间隔不可无限制缩小,
以免加重CPU负荷。
首先,初始化定时器Timer3为编码器模式,
同时在TI1和TI2边6浮脚沿空和计数,输入7脚PA,设口用置的
来为连接编码器输入信号,定时器3计数周期65535Period置为零,预设置为(不分分频频数)。
设接着,Timer2配置为10ms的定时,计数周期Period设置为2000,预分频数设置为360,向下计数模式。
下面是编码器读10ms取方法,在每段:
定时调用次此下面是定时器2的中断处理函MAX_COUNT
#define
数:30000//10ms可能超过的计数内不器最大值
CODER_TIM_PE#defineENRIOD器的period65535//值定原原,
时
最好比MAX_COUNT要大
speed_maxint16_t
全局变量,=统0计;瞬
//时速度最大值,
需要在每次重新测量之前清rentCountint32_t零
全局变量,=计数0cur;原器实时//
值,
有正负,总量程220mm对应88万个计数,1umcurrentCount对应4个speed_max除计数
以4000,即为光单位为mm;结束语
为最大瞬时速度,
单栅位尺为当mm/s前位。置,
在实际的项目使用中,如果光栅尺移动速度过快,
超过了硬件反应速度,可能导致脉冲丢失,显示出一个错误的位移量,
这种错误是不可接受的。为了避免超过光栅尺及硬件电路的极限处理能力,我们通过试验测出这一极限速度,并告知用户,用户可采用其他机械辅助的方法限制运动速度,在极限速度与生产效率之间找到一个合适的平衡点,使光栅尺工作在正常状态。如果实际生产中的最大
瞬时移动速度超过这一限制,
将发出报警以示提醒。[1]制器嵌的入式系系统设计统及其应与开发用[M].-基参考文献
上于海Cortex-M3:同济大学出版社,内核和STM32F1032011,5.
微控-53-