基于STM32F429 + ECM-XFU搭建运动控制平台,实现1ms插补周期的24轴EtherCAT控制

笔者最近在做一个运动控制器项目,其最核心的要求是实现24轴的EtherCAT控制。本文记录整个项目的制作过程,笔者才疏学浅,如有错误还请指正。

一、项目整体要求

通过 EtherCAT 总线实现多轴电机运动控制功能,具有功能如下:

  • 最多达24轴运动控制,支持国内外主流厂家伺服电机EtherCAT接口控制;
  • 支持点动、回零、速度、位置等控制模式;
  • 支持各种插补运动算法,可实现多轴联动控制;
  • 支特电子凸轮、电子齿轮、位置锁存、同步跟随、虚拟轴等功能。

对控制器底层程序进行封装,实现不同通讯接口与外部设备数据交互,功能如下:

  • 通过 EtherCAT 接口实现与伺服电机驱动器通讯并具备多种应用功能调用接口;
  • 通过 RS232 或 485 接口实现与触摸屏或其他设备通讯,支持 MODBUS RTU 协议:
  • 通过以太网接口实现与示教器、上位机等设备通讯,支特 MODEUS TCP协议;
  • 通过 CAN 总线,支持CANopen的IO控制功能。

二、硬件总体设计方案

2.1 最小系统设计

MCU选用STM32F429IGT6芯片为LQFP-176封装,该芯片的详细介绍可查看以下链接:

STM32F429/439 - 意法半导体STMicroelectronics

考虑到STM32F429自带的2M FLASH不够使用,通过FSMC映射添加NAND FLASH和SDRAM。

NAND FLASH选用MT29F4G08,该芯片具有4GB的储存空间,详见介绍以下链接:

MT29F4G08ABADAH4 Datasheet(PDF) - Micron Technology (alldatasheet.com)

SDRAM选用W9825G6KH-6芯片,该芯片存储容量为256M(16M * 16)、速度为166MHz。详细介绍见以下链接:

W9825G6KH-6_(WINBOND(华邦))W9825G6KH-6中文资料_PDF手册

同时添加VBAT外围电路复位电路SWD调试接口;配置BOOT0和BOOT1为低电平,程序从FLASH启动。相关电路笔者参考了正点原子的设计,在此不展开赘述。

2.2 外围接口设计

以太网选用LAN8720A作为PHY芯片,芯片介绍如下:

LAN8720A-CP-TR_(MICROCHIP(美国微芯))LAN8720A-CP-TR中文资料_PDF手册

DAC使用DAC8532IDGKR,该芯片为双通道、16位轨到轨工作电压,芯片介绍如下:

DAC8532 datasheet (Rev. B) (ti.com.cn)

DAC使用ADS8684IDBT该芯片为4 通道16 位、500kSPS,芯片介绍如下:

ADS868x  datasheet (Rev. B) (ti.com.cn)

DI和DO使用STM32的GPIO口。通过使用不同的电路拓扑实现PNP、NPN、干触点信号输入。

通过SPI控制主站芯片ECM-XF,实现24轴的EtherCAT控制。该主站芯片最大可连接128个从站,最快循环周期125us,详细介绍可以查阅以下链接:

Master Chip & Module – 訊成科技股份有限公司 (nextw.com.tw)

RS485、RS232和CAN电路按常规搭建即可。

 2.3 供电方案设计

电源供电满足芯片需求即可,这是本文制作的驱动器的供电方案:

  • 外部输入24V电源
  • 24V转12V供电
  • 24V转±15V供电
  • 24V转5V供电
  • 5V转3.3V供电

三、可行性验证

为验证可行性,首先使用开发板搭建电路进行验证。使用正点原子的 STM32F429 阿波罗开发板通过 SPI ECM-XFU-SK 开发板通讯,两块板子的介绍可以参考以下链接:

stm32f429阿波罗开发板 — 正点原子资料下载中心 1.0.0 文档

Master Chip & Module – 訊成科技股份有限公司 (nextw.com.tw)

伺服驱动器分别使用了1台英威腾DA200和2台台达A2-E,常规的环形拓扑结构,如下图所示:

四、软件系统框架

 本运动控制器为裸奔系统,主要涉及以下几个内容:

  • 实时操作系统(笔者基于定时器中断和轮询实现的裸奔系统)
  • 基于 LWIP 协议的以太网通讯
  • 基于 FreeModbus 实现 Modbus TCP 和 Modbus RTU
  • 基于 CanFestival 实现 CanOpen 通讯

上位机使用C++语言编写函数库,并基于QT制作交互界面。

五、EtherCAT功能的实现

运动控制器设计——基于FreeModbus在STM32F4平台实现ModbusTCP协议_河狸打捞员的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_48501028/article/details/132472701

EtherCAT运动控制——电子凸轮的实现(原理介绍、附代码)_河狸打捞员的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_48501028/article/details/132758163?spm=1001.2014.3001.5502

 六、运动控制器功能演示

经过三个多月的加班加点研究,这个运动控制器已初具模型. 界面是简陋了些,不过已经实现了基本的功能。主要包括直线插补,圆弧插补,同步运动,电子齿轮,电子凸轮的功能。之后有时间的话我再细致展开运动控制器的实现过程。 

运行控制器-案例展示

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河狸打捞员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值