当前位置: 首页 > news >正文

基于 STM32+FPGA 的多轴运动控制器的设计

运动控制器是数控机床高端机器人等自动化设备控制系统的核心为保证控制器的实用性实时性和稳定 性,提出一种以 STM32 为主控制器FPGA 为辅助控制器的多轴运动控制器设计方案给出了运动控制器的硬件电路设计, 将 S 形加减速算法融入运动控制器提高了控制精度可有效避免过冲振荡等现象的发生在三维点胶机平台上对运动 控制器的性能进行了测试,结果表明: 点胶机各轴能按照设定的轨迹运动运行平稳且实时性高具备良好的应用前景
运动控制器性能的好坏直接对自动化系统整体性能的 发 挥 起 决 定 性 作 用[1-2]克 莱 斯 勒西 门 子、 FANUC、MAZAK 占据我国 90%左右的工业用运动控 制器市场。随着运动控制技术的发展FPGAARM、 DSP、专用芯片等逐渐成为运动控制器的核心部件, 并日益朝着开放式方向发展[3-4]以单片机为核心的运动控制器运算速度慢、控制精度低一般用于低 速、运动轨迹简单的场合; 以专用芯片为核心的运动 控制器只是发出脉冲信号,无法接收反馈信号处于开环状态,不能满足多轴联动和高速高精度的轨迹 插补要求[5-7]基于 PC 的以 FPGAARMDSP 为核心处理器的运动控制器,如固高科技 GH-800数据处理速度快、实时性高可完成多轴协同控制复杂轨迹运动和加减速。 以 STM32 为主控器FPGA 为辅助控制器,搭建硬件平台及进行外围电路设计。利用 STM32 丰富的外设资源,完成运动轨迹规划、人机交互、数据存储、数据交互等控制; 利用 FPGA 丰富的逻辑资源,实现各个运动轴脉冲并行输出、输入信号和原点位置的检测、输出开关量控制等功能。控制器设计中引入S 形加减速算法,可有效避免实际运行过程中的过冲、失步及振荡等现象。该运动控制器硬件结构简单,在保证精度、实时性、可靠性的前提下,能有效缩短研发周期。
1 运动控制器结构
运动控制器采用 STM32+FPGA 的硬件结构形式,主控制芯片选用 ST 公司的 STM32F4xx辅助控制芯片选择 Altera 公司的 EP2 系列芯片主要模块包括数据存储 模 块、外部输入检测模块电 机 驱 动 模块、接口模块人机交互模块等其结构框图如图1 所示

主控制器以 STM32 为核心将电机运行过程中的数据存入外部存储器,使用触摸屏和按键相结合的方式实现人机交互; 触摸屏作为上位机通过串口与 STM32 通信可对整个系统进行调试按键通过 I/O 接口与 FPGA 相连主控制器处理外部数据存储器的插补信息后,经总线发送给 FPGAFPGA 接到控制指令或插补数据后进行插补运算,然后通过隔离电路将信号发送到各个电机驱动器,对各轴电机进行驱动,完成目标运动轨迹.
STM32 FPGA 的通信接口
STM32 FPGA 之间可以通过可变静态存储控制器 ( Flexible Static Memory ControllerFSMC) 进行通信,如图 4 所 示根 据 FSMC 的 功 能 特 性设 定STM32 的地址线和数据线宽度为 16 STM32 片选选中 FPGA 进行数据读写FPGA 通过中断反馈数据处理情况。
STM32 芯片的配置
STM32 芯片外围硬件看门狗能有效监控 CPU 的运行情况。STM32 需要配置 2 个外部晶振: 一个频率为 32. 768 kHz主要给芯片内部时钟部件提供低速、 高精度的时钟; 另一个频率为 25 MHz产生主时钟,通过分频、倍频模块后供给各个模块[4,6]
2. 2
FPGA 模块电路设计
FPGA 主要负责插补算法信息的处理脉冲信号的输出、开关量的输入和输出接收编码器的差分信 号等。
( 1) 差分输入接口电路
U6 为四路差动信号接收器用来接收编码器输出的差分信号,将电机的位置信息反馈给 FPGA接口电路如图 5 所示

3 运动控制器软件设计
通过触摸屏 ( HMI) 发送指令给 STM32STM32 接收到指令后通过动态链表的形式将指令存储于外部存储器; 实时读取存储器将运动轴的位置信息速度信息返回给触摸屏显示,同时将指令信息和插补算法数据,FSMC 传到 FPGA 处理; 最后由脉冲发生器产生脉冲指令给电机驱动器,驱动电机转动运动控制器软件设计框图如图 8 所示
4
S 形速度规划算法的实现
S 形加减速可充分发挥电机性能因其在加减速阶段速度曲线呈 S 形而得名令加速度的导数为常 数,改变其 大 小可最大限度减小系统冲击[10-11]。 整个加减速过程由 7 个部分构成[12-13]如图 9 所示。 图中: l 为运动的位移v 为速度a 为加速度,j 为
加加速度A 表示匀加速阶段的加速度值M 表示匀减速阶段的加速度值,Ti ( i = 123,......,7) 为各阶段的运行时间,τi ( i = 123
......7) 为以各个起点作为 0 点的时刻ti ( i = 123
......7) 为各个过渡点时刻。实际应用时m1 m4 的各阶段
都需要判断减速点一般情况下0 加速到最大速度和从最大速度减速到 0 所用的时间相同T1 = T3T5 = T7

 

结合图 10 所示的流程算法实现过程如下:
步骤 1初始化相关的参数包括初始速度目标速度 ( 最大运行速度) 加加速度 j最大加速度 A
步骤 2计算减速距离 decdec与剩余距离 Ls 比较,其中 Ls = Le LcLe 表示指定目标位置值Lc 表示当前位置值。
步骤 3Ls dec 则减速否则加速或者匀 速 ( 此时如果到达最大速度则匀速未到达则加速)
步骤 4根据步骤 3 的判断重新计算 avvv、jv 并输出。
步骤 5Lc = Le 到达终点运动停止否则重复步骤 2~ 5

6 结束语
本文作者提出了一种以 STM32 为主控制器FPGA 为辅助控制器的运动控制器设计方案完成了控制器硬件平台及外围电路设计,S 形加减速控制算法融入到运动控制器中,有效避免了运动时由于速度突变引起的过冲、抖动等现象提高了控制精度对运动控制器进行测试,结果表明: STM32+FPGA 为硬件架构的运动控制器实时性好、可靠性高能满足工业运动控制的要求。
信迈支持STM+FPGA运动控制器、ethercat总线定制。

http://www.lryc.cn/news/5511.html

相关文章:

  • 《爆肝整理》保姆级系列教程python接口自动化(十三)--cookie绕过验证码登录(详解
  • soapui + groovy 接口自动化测试
  • Linux内存管理(三十五):内存规整简介
  • Java连接Redis
  • Python语言零基础入门教程(十六)
  • SAP ERP系统SD模块常用增强之一:VA01/VA02创建或修改SO的输入检查
  • 深度学习知识补充
  • Vue笔记(1)——数据代理与绑定
  • LeetCode题目笔记——2563. 统计公平数对的数目
  • 【MySQL Shell】8.9.5 将集群重新加入到 InnoDB ClusterSet
  • 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
  • 访问学者在新加坡访学生活日常花销大吗?
  • XCP实战系列介绍11-几个常用的XCP命令解析
  • 全志V853芯片 如何在Tina V85x平台切换sensor?
  • 2023全网最火的接口自动化测试,一看就会
  • 华为OD机试真题JAVA实现【最小传递延迟】真题+解题思路+代码(20222023)
  • Transformer
  • 并发包工具之 批量处理任务 CompletionService(异步)、CompletableFuture(回调)
  • 验收测试分类
  • 因新硬件支持内核问题Ubuntu 22.04.2推迟发布
  • agent扩展-自定义外部加载路径
  • Elasticsearch使用篇 - 指标聚合
  • Python生命周期及内存管理
  • Elasticsearch7.8.0版本进阶——数据写流程
  • 化学试剂Glutaric Acid-PEG-Glutaric Acid,GA-PEG-GA,戊二酸-聚乙二醇-戊二酸
  • 知识图谱业务落地技术推荐之国内知识图谱平台汇总(竞品)[阿里、腾讯、华为等】
  • ABC 289 G - Shopping in AtCoder store 数学推导+凸包
  • ARM Linux 如何在sysfs用户态命令行中控制 GPIO 引脚?
  • 【Linux】生产者消费者模型 - 详解
  • 源码深度解析Spring Bean的加载