ABZ编码器入门指南:深入解析线与四倍频的核心原理与应用场景

1次阅读
没有评论

共计 1732 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

在电机控制系统中,编码器就像机器的 ” 眼睛 ”,它能实时反馈电机转轴的位置和速度信息。想象一下,如果没有编码器,我们就像蒙着眼睛开车,完全不知道车轮转了多少圈、速度有多快。而 ABZ 编码器作为最常用的增量式编码器,其中的 ” 线 ” 和 ” 四倍频 ” 技术直接决定了位置检测的精度。今天我们就来揭开它们的神秘面纱。

ABZ 编码器入门指南:深入解析线与四倍频的核心原理与应用场景

一、ABZ 信号中的 ’ 线 ’ 到底是什么?

  1. 物理意义 :编码器标称的 ” 线数 ”(如 100 线、500 线)指的是码盘上的物理刻线数量。每转一圈,编码器就会产生对应数量的脉冲信号。

  2. AB 相输出

  3. A、B 两路信号相位差 90°(正交信号)
  4. Z 相每转一圈输出一个脉冲(零点信号)
  5. 例如 100 线编码器,转动一周产生 100 个 A 相脉冲和 100 个 B 相脉冲

  6. 基础分辨率

  7. 单频计数:只检测 A 相上升沿,每线 1 个计数(100 线 =100 脉冲 / 转)
  8. 四倍频模式:利用正交信号相位关系,每线可检测 4 个边沿(100 线 =400 脉冲 / 转)

二、四倍频技术如何提高精度?

  1. 相位关系解析
  2. 当 A 相领先 B 相 90°时表示正转
  3. 当 B 相领先 A 相 90°时表示反转
  4. 通过检测两个信号的上升沿和下降沿,将分辨率提高 4 倍

  5. 时序示意图

     A 相: __|¯¯|____|¯¯|____|¯¯|__
    B 相: ____|¯¯|____|¯¯|____|¯¯|
            ↑    ↑    ↑    ↑ 
          四倍频检测点 

  6. 精度对比

  7. 单频计数:1.8°/ 脉冲(100 线编码器)
  8. 四倍频计数:0.45°/ 脉冲(同等编码器)

三、STM32 硬件实现实战

  1. 定时器编码器接口配置 (以 TIM3 为例):

    // 初始化结构体
    TIM_Encoder_InitTypeDef encoderConfig = {0};
    encoderConfig.EncoderMode = TIM_ENCODERMODE_TI12; // AB 相均计数
    encoderConfig.IC1Polarity = TIM_ICPOLARITY_RISING; // A 相上升沿触发
    encoderConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
    encoderConfig.IC1Prescaler = TIM_ICPSC_DIV1; // 不分频
    encoderConfig.IC1Filter = 0x0F; // 数字滤波 (可抑制毛刺)
    
    // 类似配置 IC2(B 相)HAL_TIM_Encoder_Init(&htim3, &encoderConfig);
    HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL); // 启动编码器接口 

  2. 关键寄存器说明

  3. SMCR 寄存器:设置编码器模式(TI1/TI2 边沿检测)
  4. CCMR1/2:配置输入捕获滤波参数
  5. CNT:16 位计数器(注意溢出处理)

四、开发中的避坑指南

  1. 信号抖动处理
  2. 硬件:在 AB 相添加 RC 滤波(典型值:1kΩ+100nF)
  3. 软件:启用定时器输入捕获滤波(如上例中 IC1Filter 参数)

  4. 转速计算防溢出

  5. 使用 32 位变量累加计数器溢出
  6. 示例代码:
    static int32_t totalCount = 0;
    static uint16_t lastCnt = 0;
    
    void UpdatePosition() {
      uint16_t current = TIM3->CNT;
      int16_t delta = (int16_t)(current - lastCnt);
      totalCount += delta;
      lastCnt = current;
    }

五、进阶应用思考

  1. 倍频模式选择原则
  2. 低速高精度场景:优先四倍频(如机器人关节控制)
  3. 高速场景:可降级到单频或双频(避免计数器溢出)

  4. Z 相校准技巧

  5. 在 Z 脉冲到来时重置计数器
  6. 结合机械限位实现绝对位置初始化

动手实验建议

准备材料:
– STM32 开发板(如 Nucleo 系列)
– 100 线 ABZ 编码器(带 5V 电源)
– 示波器(观察 AB 相信号)

实验步骤:
1. 分别配置单频和四倍频模式
2. 手动旋转编码器,记录 CNT 寄存器变化
3. 对比两种模式下的角度分辨率差异
4. 用示波器观察 AB 相正交波形

通过这个实验,你会直观感受到:四倍频模式下,同样的物理转动角度,计数器变化值是单频模式的 4 倍,这正是高精度控制的秘密所在。刚开始接触编码器时,我也曾被这些概念困扰,但实际动手测试后,一切就变得清晰明了。希望这篇指南能帮你少走弯路,快速掌握 ABZ 编码器的核心要点。

正文完
 0
评论(没有评论)