讲述kubler库伯勒编码器常用测速方法 因为我司在德国、美国都有自己的公司,专业从事进口贸易行业,我司销售的产品均为国外原厂原装,很多朋友们对库伯勒编码器测速不太明白,下面是我司讲述kubler库伯勒编码器常用测速方法产品内容,详情如下: kubler编码器接口配置中,要初始化两个结构体, 其中时基初始化结构体TIM_ _Handle' TypeDef{很简单,而且在其他应用中都用涉及到,直接 看注释理解即可。 重点是编码器接口结构体TIM_ Encoder_ InitTypeDef的初始化。 对于STM32定时器的编码器接口,我们首先需要设置编码器的倍频数,即 成员EncoderMode,它可把编码器接口设置为2倍频或4倍频,根据bsp_ encoder .h的宏定义我们将其设置为4倍频,倍频原理在上面已有 讲解这里不再赘述。 对于库伯勒编码器接口输入通道的配置,我们只讲解通道1的配置情况,通道2是一样的。首先是输入信号极性,成员IC1Polarity在输入捕获模式 中是用来设置触发边沿的,但在编码器模式中是来设置输入信号是否反相的。设置为RISING表示不反相, FALLING表示反相。此成员 与编码器的计数触发边沿无关,只用来匹配编码器和电机的方向,当设定的电机正方向与编码器正方向不一致时不必更改硬件连接,直 接在程序中修改IC1Polarity即可。 接下来是成员IC1Selection ,这个成员用于选择输入通道, IC1可以是TI1输入的TI1FP1 ,也可以是从TI2输入的TI2FP1 , 我们这里选择直 连( DIRECTTI) ,即TI1FP1映射到C1,在编码器模式下这个成员只能设置为DIRECTTI ,其他可选值都是不起作用的。 最后是成员IC1Prescaler和成员IC1Filter ,我们需要对编码器的每个脉冲信号都进行捕获,所以设置成不分频。根据STM32编码器接口2 倍频或4倍频的原理,接口在倍频采样的过程中也会对信号抖动进行补偿,所以输入滤波器也很少会用到。 配置完编码器接口结构体后清零计数器,然后开启定时器的更新事件中断,并把更新事件中断源配置为定时器溢出,也就是仅当定时器溢 出时才触发更新事件中断。然后配置 定时器的中断优先级并开启中断,后启动编码器接口。 首先来看一下增量式编码器的输出信号和它的信号倍频技术。增量式编码器输出的脉冲波形信号形式常见的有两种: 一种是占空比50%的方波,通道A和B相位差为90°; 另一种则是正弦波这类模拟信号,通道A和B相位差同样为90°。 对于第1种形式的方波信号,如果把两个通道组合起来看的话,可以发现A和B各自的上升沿和下降沿都能计数,至少在1/2个原始方波周期内就可以计数一次, 最多1/4个原始方波周期。这样计数频率就是原始方波信号的2倍或4倍,换句话说就是,将编码器的分辨率提高了2到4倍,具体如下图所示。 图中的方波信号如果只看其中一个通道的上升沿,那计数频率就等于这个通道信号的频率。如果在通道A的上升沿和下降沿都进行计数,计数频率就是通道A的两倍,即2倍频。 如果同时对两个通道的上升沿和下降沿都计数,那计数频率就变成了原始信号的4倍,即4倍频。 假设有个库伯勒增量式编码器它的分辨率是600PPR,能分辨的最小角度是0.6°,对它进行4倍频之后就相当于把分辨率提高到了600*4=2400PPR,此时编码器能够分辨的最小角度为0.15°。 编码器倍频技术还可用来扩展一些测速方法的速度适用范围。例如电机测速通常使用M法进行测量(M法在下节介绍),编码器4倍频后可以扩展M法的速度下限。 讲述kubler库伯勒编码器常用测速方法 |