3、核心器件选型与原理
器件选型这事儿,说难不难,说简单也不简单。我见过不少新手,一上来就盯着数据手册里的最大电流看,结果板子调出来发热严重,或者干脆跑不起来。核心器件的选择,直接决定了这块运动控制卡的性能和可靠性。
我个人习惯把选型分成四块:电机驱动器、编码器、功率器件、隔离器件。咱们一块一块聊。
3.1 电机驱动器选型:步进 vs 伺服
先问个问题:你的应用到底需要多高的精度?
步进电机驱动器,说白了就是开环控制。你给一个脉冲,它走一步。我早期做过一个3D打印机项目,用的就是步进驱动器+57步进电机。成本低,控制简单,丢步了也不怕——加个限位开关回零就行。
但如果你做的是数控机床或者机器人关节,那就得上伺服了。伺服驱动器带编码器反馈,位置闭环,扭矩大,高速性能好。
选型核心参数对比
| 参数 | 步进驱动器 | 伺服驱动器 |
|---|---|---|
| 控制方式 | 开环(脉冲+方向) | 闭环(位置/速度/扭矩) |
| 低速扭矩 | 大(低频特性好) | 一般(需匹配减速机) |
| 高速性能 | 差(扭矩随转速下降) | 好(恒扭矩区宽) |
| 精度 | 取决于步距角(通常1.8°) | 取决于编码器线数(可达亚角秒) |
| 成本 | 低 | 高(约3-5倍) |
| 典型应用 | 3D打印、雕刻机、送料机构 | 数控机床、机器人、AGV |
我建议你根据负载惯量比来选。步进电机一般建议负载惯量比不超过10:1,伺服可以到30:1甚至更高。嗯,这个经验值是我在调试一台贴片机时踩坑踩出来的。
小技巧:用STM32的TIM输出PWM时,注意驱动器的脉冲宽度要求。大部分步进驱动器要求脉冲宽度≥2.5μs,伺服驱动器要求≥1μs。我习惯把PWM频率设在100kHz-200kHz之间,这样分辨率够用,又不至于让CPU太忙。
3.2 编码器选型:增量式 vs 绝对式
编码器是运动控制的眼睛。你想想看,没有反馈,你怎么知道电机实际转到了哪里?
增量式编码器输出A、B两相正交脉冲,Z相是零位信号。我做过一个项目,用2000线的增量式编码器配合4倍频,分辨率达到了8000脉冲/圈。对于大多数应用来说,这个精度已经足够了。
但增量式有个致命问题:断电后位置丢失。每次上电都得回零。如果你做的是绝对值位置控制,比如机器人关节,那就得用绝对式编码器。
注意:绝对式编码器分单圈和多圈。单圈的只能记录一圈内的位置,多圈的可以记录多圈旋转圈数。我建议在电池供电或需要长期断电保持位置的场合,优先选多圈绝对式编码器。我曾经因为选了单圈编码器,导致设备断电重启后机械臂撞了限位——教训深刻。
编码器接口方面,STM32的TIM支持编码器模式,可以直接读取增量式编码器的A、B相。对于绝对式编码器,常用SSI、BiSS、EnDat等协议,需要用SPI或UART模拟。
编码器选型速查表
| 类型 | 输出信号 | 分辨率 | 断电保持 | 接口 | 典型价格 |
|---|---|---|---|---|---|
| 增量式光电 | A/B/Z | 100-5000线 | 否 | TTL/HTL | 低 |
| 增量式磁 | A/B/Z | 32-1024线 | 否 | TTL | 极低 |
| 绝对式单圈 | SSI/BiSS | 12-17位 | 是 | RS422/SPI | 中 |
| 绝对式多圈 | SSI/BiSS | 12位+12位圈数 | 是 | RS422/SPI | 高 |
3.3 功率器件选型:MOSFET vs IGBT
功率器件是驱动电机的核心。你想想看,STM32的IO口只能输出3.3V/几mA,怎么驱动几十伏/几安的电机?
MOSFET和IGBT是两种最常见的功率开关管。我个人的经验是:
- 低压小功率(≤60V,≤10A):用N沟道MOSFET。导通电阻低,开关速度快。比如IRF540、IRFZ44N,便宜又好买。
- 高压大功率(≥200V,≥20A):用IGBT。饱和压降低,耐压高。比如IRGP4063、FGA25N120。
- 中间地带(60V-200V,10A-20A):两者都可以,看具体应用。MOSFET开关损耗小,适合高频PWM;IGBT导通损耗小,适合低频大电流。
避坑指南:我曾经在选MOSFET时只看Rds(on),忽略了Qg(栅极电荷量)。结果驱动电路设计得太弱,开关速度上不去,MOSFET工作在放大区,发热严重。后来换了低Qg的管子,问题就解决了。记住:高频应用优先看Qg,低频应用优先看Rds(on)。
驱动电路方面,STM32的PWM输出不能直接驱动功率管。需要加一级驱动芯片,比如IR2104、IR2110。半桥驱动芯片内部有自举电路,可以产生上管需要的栅极电压。
MOSFET vs IGBT 对比
| 参数 | MOSFET | IGBT |
|---|---|---|
| 耐压范围 | 20V-1000V | 600V-6500V |
| 电流密度 | 低 | 高 |
| 开关频率 | 高(可达MHz) | 低(一般≤50kHz) |
| 导通特性 | 电阻型(Rds(on)) | 二极管型(Vce(sat)) |
| 驱动功率 | 低(电压驱动) | 中(电流驱动) |
| 典型应用 | DC-DC、低压电机驱动 | 变频器、高压电机驱动 |
3.4 隔离器件选型
隔离是运动控制卡设计中容易被忽视的一环。你想想看,电机驱动部分有高压、大电流、强干扰,如果不做隔离,STM32很容易被烧掉或者死机。
隔离器件主要分三类:
- 光耦:最传统,速度慢(一般≤10Mbps),但隔离电压高(可达5000Vrms)。适合低速信号隔离,比如步进电机的脉冲方向信号。
- 磁耦:速度快(可达150Mbps),功耗低,但隔离电压相对低(一般≤3000Vrms)。适合高速通信隔离,比如SPI、UART。
- 容耦:速度快,功耗低,寿命长。比如TI的ISO系列,Silicon Labs的Si86xx系列。我最近的项目都在用容耦,体积小,性能好。
注意:隔离不只是信号隔离,还有电源隔离。我建议在电机驱动侧和STM32控制侧之间,使用隔离DC-DC模块供电。比如B0505S系列,输入5V,输出5V,隔离电压3000V。我曾经因为偷懒没做电源隔离,结果电机刹车时产生的反电动势通过地线串到了STM32的ADC引脚,导致采样值跳变——排查了整整两天。
隔离器件的选型参数:
- 隔离电压:一般要求≥2500Vrms,工业应用建议≥3750Vrms
- 数据传输速率:根据信号频率选择,步进脉冲一般≤200kHz,SPI通信需要≥10Mbps
- 共模瞬态抑制(CMTI):≥25kV/μs,防止高压瞬变导致误触发
- 通道数:根据实际信号数量选择,一般预留1-2个备用通道
小技巧:在STM32和驱动器之间,我习惯用6N137光耦隔离脉冲方向信号。6N137速度10Mbps,足够用。对于编码器反馈信号,用磁耦或者容耦,因为编码器频率可能高达几MHz,光耦跟不上。