引言
当前,步进电机已经在工业应用,如自动剥线机、工业机器人、雕刻机、植毛机工作台等涉及到精确定位的场合,得到广泛的应用。常用的步进电机控制系统由驱动模块和控制器模块组成。驱动模块实现功率放大,控制器模块用于产生电机转动的控制信号,上述控制方法将会大量占用控制核心的资源,影响控制系统的实时性及灵活性。本文设计的步进电机驱动器,将控制电路和驱动模电路集成在同一个模块上,减少系统中主控核心的负担,提高系统的实时性、可靠性,可以使系统设计变得更加灵活、方便。
1、 CAN中继器硬件的设计
1.1 系统的硬件结构
本文设计的基于 CAN 总线的一体化两相步进电机驱动器系统框图如图 1 所示,包括 CAN 收发器 L9616、MCU STM32F103C6、光耦隔离、驱动芯片 SLA7033M、温度传感器和 D/A 转换。CAN 收发器 L9616 接收主控核心发送过来的帧数据包后,再把数据包发送给 MCU。STM32F103C6 是一体化步进电机驱动器的核心,负责对 CAN 收发器 L9616 传送过来的数据包进行解析,同时做出相应的操作,生成对应的驱动信号和转动方向;另一面 MCU 控制高精度 D/A 转换器,经 D/A 转换输出的电压送给驱动芯片 SLA7033M,使 SLA7033M 输出电流恒定,同时在 SLA7033M 的输出端加入采样电阻,MCU 实时监控 SLA7033M 的输出电流,当输出电流大于阈值时,关闭驱动信号,保护芯片 SLA7033M;另外 MCU 还对加在芯片 SLA7033M 上面的散热器进行温度实时监控,当散热片上的温度超过预设值时关闭驱动信号,起保护 SLA7033M 的作用。MCU 对 SLA7033M 的输出电流进行采样以及对温度实时监控,有效地保护了 SLA7033M,使 SLA7033M 工作的寿命更加长,工作更加稳定。由于 MCU 输出的信号属于弱的信号,而 SLA70 33M 输出的信号是大电压大电流信号,为了确保 MCU 正常工作,采用光耦隔离,使控制信号与驱动信号分离,同时控制和驱动两部分的电路采用独立的电源供电,它们之间互不干扰,信号通过光耦传输。
![81c06897e447f09adb2153cb03ccf747.png](https://i-blog.csdnimg.cn/blog_migrate/76ece05fdc6ac75f08257c5ac42a929a.jpeg)
1.2 STM32F105 微控制器
STM32F105 是基于最新 ARM V7.0 内核 Cortex-M3 的 32 位闪存微控制器,这是一款专为嵌入式应用而开发的内核,带有用于电机控制的 PWM 输出,特别适合在电机控制场合的应用。STM32F10 内置 CAN 收发 FIFO,可以降低采用外置 CAN 控制器的成本以及提高系统的稳定性。STM32F103 具有较大容量的 FLASH 和 RAM,以及丰富的外设,因此采用 STM32F103 作为主控芯片可以方便地实现 CAN 数据收发、A/D 转换、D/A 转换、PWM 输出等。
1.3 CAN 收发电路
CAN 收发器采用 ST 公司的 L9616。终端匹配电阻采用跳线的方式供用户安装时自行选择。在差分信号线上并上瞬态抑制二极管,可以起到对 L9616 的 I/O 的保护作用。光电隔离部分采用最高转换速率可达 10Mbit/s 的高速光耦 6N137,电阻 R2、R5 起到限流作用。VCC5_1 是由 DC/DC 隔离电源单独产生的 5V 电压。
![a42f4c25b0bc0d49396cbaad4e95fc13.png](https://i-blog.csdnimg.cn/blog_migrate/c0c90e1f439cd003bb5d977b086b0843.jpeg)
1.4 电源电路
步进电机采用 5V 供电。用开关稳压集成芯片 LM2596 代替传统的三段稳压器,仅需要极少的外围器件即可构成高效的稳压电路且不需加散热片。LM2576 产生的 5V 电压供给电机驱动芯片,主控 CPU 工作所需的 3.3V 电压由 LDO 芯片 LM1117-3.3 产生。CAN 收发电路单独供电的 DC/DC 电路采用隔离电源模块,使驱动器和和 CAN 总线接口实现完全的电气隔离。
![861445ddd33f6c123e78daabf7a99aea.png](https://i-blog.csdnimg.cn/blog_migrate/a6420f403c61a68301e58368f866efcd.jpeg)
1.5 光电隔离电路
连接在控制芯片与驱动芯片之间的光耦隔离电路,主芯片负责产生驱动芯片需要的控制信号。当输入端为高电平时光耦中的光敏二极管导通,同时光敏三极管也导通,使对应的输出端也为高电平。使用了光耦隔离,使得驱动电路的高压电路与控制电路的低压电路完全隔离,互不干扰,提高了系统的抗干扰能力和稳定性。
1.6 SLA7033M 驱动电路
SLA7033M 是高性能步进电机集成功率放大器,该芯片由参考电压电路、触发脉冲产生电路、电压比较放大电路、电流控制电路、激励信号放大电路、电动势补偿电路等组成。INA、Ina、INB、INb 为四个驱动信号输入端,OUT/a、OUTa、OUT/b、OUTb 为四个驱动信号输出端,在输出端接二相步进电机作为负载。VREF 为经过 D/A 转换后的基准电压输入端,通过调整 D/A 的输出基准电压,即可调整驱动器的输出电流的大小。电阻 R11、R12 为电流检测电阻,当主控芯片检测到该电阻上的电压超过阈值时,重新调整输出的电流大小,使输出电流不能超过最大值,以保护驱动芯片 SLA7033M。
![80fa35fe1a8bec8a9a43da3997ac273a.png](https://i-blog.csdnimg.cn/blog_migrate/34caa20cccc2095e243203a9c13ecaa6.jpeg)
2 、CAN 中继器软件的设计
程序开始时先初始化各个输出端口以及各个相关的外设模块。程序以模块化进行设计,主程序只需循环检测相应的状态,当对应的状态满足要求时执行相应的操作,使得程序简洁以及实时性更强。当程序出现异常情况时,异常处理程序检查相应的异常情况,判断是哪些情况出现异常,记录相应的情况,同时可以把异常情况打包成数据发送到 CAN 总线,方便主控核心进行异常情况的分析及处理。无异常情况则检查是否有数据包的标志位,假如有数据包,则数据包处理程序对数据包进行分析,并进行相应的操作。数据包处理程序具有识别是发送数据包还是接收到的数据包,如果是发送数据包,则把相应的数据包经过处理生成标准报文帧格式,随后经过 CAN 收发器发送帧数据给主控核心;如果接收到的数据包则要对该数据包进行解析,按照标准报文帧格式进行提取相应的数据,以及对相应的数据进行处理,假如收到的数据里的 ID 和该设备号 ID 一致,表明是该设备的数据,即对该设备进行操作;反之,表明不是该设备的数据,则对收到的数据不处理,同时推出数据包处理程序。主程序假如没有数据包处理或者数据包处理程序完成则检查温度是否超过预设值,假如已经超过预设的值,则执行超温处理程序;假如没有超温则往下执行。当没有超温或者超温处理程序完成后查询电流是否超过预设值,假如已经超过了输出电流的预设值则执行调整输出电流程序,对输出电流输出调整,即对 D/A 的输出值进行调整,使输出电流减少;若没有超过输出电流的预设值则返回检查异常情况,程序进行循环检测。
![d65d84df4877c90bd438549d762815bc.png](https://i-blog.csdnimg.cn/blog_migrate/46abc680d5cfa981906dd89aaa17d338.jpeg)
3 、结束语
文采用了以高性能的 ARM 处理器STMF103 为一体化步进电机主控 CPU,SLA7033M 作为驱动芯片,将控制电路和驱动模电路集成在同一个模块上,减少系统中主控核心的负担,提高系统的实时性、可靠性,有一定的社会效益和广泛的推广价值。