基于STM32 ARM+FPGA伺服控制系统总体设计方案(一)

news/2024/4/29 16:09:30/文章来源:https://blog.csdn.net/YEYUANGEN/article/details/131730439
设计需求
一套完整的伺服控制方案包括了上位机、驱控一体控制器和功率板三者。操作人员
通过上位机发送各种不同指令,然后控制器解析指令后执行相应的伺服功能,其次控
制器将驱动信号传输至功率板驱动电机,最后控制器采集反馈信息进行闭环控制并上
传数据。
结合国内外嵌入式伺服控制器的发展现状和功能需求,制定了本文伺服控制系统的
主要功能需求如下:
1 )开发一款驱控一体控制板卡。
(2)开发刚柔耦合平台伺服控制系统的同时兼顾对普通刚性平台的控制。
(3)兼容多种数字编码器反馈。
(4)能够驱动 1KW 功率以内的旋转电机和直线电机。
(5)能够驱动两路及以上的永磁同步电机。
(6)能够支持多种控制模式,如单闭环伺服或多闭环混合伺服。
(7)支持开发人员开发自定义控制算法。
(8)能够支持配套的上位机在线控制,包括控制电机启停、复位归零功能和设定
目标控制等功能。如设置目标位置、目标速度和目标电流等。
(9)采集反馈信息上传至上位机显示,如位置信息、转速信息和电流信息等。
控制效果的好坏涉及多方面影响因素,而本文着重于软硬件架构的基础开发,目的
在于开发一款功能完善的驱控一体控制器,基础控制算法采用了传统的 PID 算法,因
此更高级的控制算法不在本文做重点研究。
3.2 嵌入式系统概述
嵌入式系统在现今社会中运用的领域越来越多 [41] ,上至航天航空领域,下至穿戴式
设备,嵌入式产品都能随处可见。特别是其灵活性高,设计人员可以根据实际情况对
系统进行功能添加或删除,使得基于嵌入式的产品开发越来越多。
由于嵌入式系统并不像电脑系统一样要求功能强劲和通用性好,嵌入式系统主要是
根据用户功能需求而进行灵活组建而成的专用计算机系统。现实项目中往往受到环境、
成本、功耗和体积等要求限制,如此多因素的影响带来了差异性的设计,以至于很难
做到一套方案适配各种应用场合。因此根据项目实际需求的不同,灵活裁剪所需的软
硬件模块,组成最终符合生产要求的系统。
嵌入式系统可以概括为以下几个发展阶段:
第一阶段:该阶段的嵌入式系统主打价格低和功能简单领域。这种系统大部分应用
于低端场合,如简单的监测功能、指示功能以及精度要求低的工业控制领域。
第二阶段:以高性能嵌入式内核和嵌入式操作系统为标志。该阶段的低功耗高性能
的内核能够运行嵌入式系统,能够执行复杂的多任务事件。并且兼容性和扩展性得到
极大的提高,能够实现快速原型开发,缩短开发时间和降低成本。
第三阶段:该阶段主要特点芯片制造技术得到重要突破。越来越多功能都集成在单
片芯片中形成片上系统,该片上系统集成度越来越高,体积和功耗降低的同时功能却
越来越强。随着互联网的迅速发展,万物联网的时代已经快到了,工业控制等技术与
互联网的结合日益密切,嵌入式技术迎来快速发展时期。
制造业的核心在于工业控制,再加上现在工业互联网的快速发展以及 5G 通信的普
及,对于操作系统的实时性和快速响应性的要求也更高了。因此为了满足工程对实时
性的要求,需要移植合适的实时操作系统,同时安全性和可靠性要求也日益提高。
实时操作系统的工作原理大致为在一定的时间内完成设定的功能,因此有较高的可
靠性和实时性。当有外界突发事件或者系统内部中断事件产生时,能够快速响应及处
理。其通过任务调度器的工作方式决定多任务的执行顺序,判断各种任务的状态以及
其执行紧急性,尽可能地对某一事件做出快速响应。同时,使用实时操作系统可以可
以将工程分割为若干独立的子任务,在不需要大的改动情况下非常容易添加新的功能,
极大地简化了程序设计使得程序的设计和扩展变得容易。
3.3 总体硬件方案设计
3.3.1 硬件架构设计
当前电子制造行业的加工精度不断提高,无论是算法复杂程度还是加工复杂程度,
都给主控核心的计算、控制性能带来极大的挑战。以前的单控制核心如 ARM DSP
FPGA 都无法单独完全胜任工作需求。 ARM 的特长是事务管理功能,配合实时操作系
统能够进行多任务实时处理而互不影响; DSP 擅长于计算能力,能够快速对数据进行
处理、加密及调制等; FPGA 的优势在于灵活性强和并行处理能力,非常适用于数据加
速、硬实时性要求高和通信接口设计等场合。为适应工业控制行业的发展需求,现今
的主控解决方案通常是相互搭配取长补短。目前高端嵌入式伺服控制器的主控架构主
要有以下几种: ARM+DSP DSP+FPGA ARM+FPGA
1 ARM+DSP 架构。结合了事务管理功能和数据处理功能, CPU 承担了任务执
行压力而 DSP 则分担数据计算任务,保证了系统的实时性。但同时也带来了扩展能力
差的特点,一旦外设资源分配完成后,如果后续想添加新的功能则非常麻烦,甚至只
能用资源更多的芯片来替换。
2 DSP+FPGA 架构。 DSP 负责算法运算功能,而 FPGA 则承担数据采集和通信
接口功能,将采集的数据传输至 DSP 进行统一运算,最后 DSP 输出控制信号。但缺点
是任务管理能力差,对于功能越来越多的工控行业来说显然是有所欠缺的。
3 ARM+FPGA 架构。兼顾了事务管理功能和数字信号处理功能,不仅实时处
理能力强而且扩展性也提升了。现今出现了很多高级辅助型设计工具,通过高级语言
或者搭建模型进行 FPGA 开发,可以有效地简化 FPGA 的设计流程。因此该种方案中
FPGA 能够替代 DSP 的数据运算功能,经过优化后,运算时间还能更快,而且实时性
更强。
当然市面上还包括 ARM+DSP+FPGA SoC 等架构,这些更高级的解决方案毫无
疑问功能更加完善强大,但带来的缺点也十分明显。虽然兼顾了任务处理能力、数据
处理能力和接口扩展能力,但是系统的复杂程度也直线上升,不仅兼顾硬件设计,也
要考虑软件配合。另一方面,在人力成本和物料成本上考虑也是十分不划算的,开发
难度和维护性都比较差,所以这些架构不在本文考虑范围。
本文所设计的伺服控制系统目的是为了开发一款能够适配刚柔耦合平台特点的伺
服控制器,满足所需的功能设计和性能测试。通过对比多种架构的优缺点和结合多种
因素考虑,最终决定选用 ARM+FPGA 架构作为开发对象。具体原因如下:
(1) 本文所开发的伺服控制系统需要满足多任务处理功能,因此选用 ARM 主控核
心并配上实时操作系统,满足了控制系统的功能要求。
(2) 为了适配刚柔耦合平台控制算法,需要同步采样多路传感器数据,这要求了实
时性和并行性的重要性。由于 FPGA 结构特殊,决定了它在众多主控核心中的实时性
能是最强的,而且具备并行处理的优点,满足了系统的功能要求和扩展要求。
(3) 半导体的快速发展使得 ARM 内核的性能也越来越强,而且微处理器的出货量
也逐年递增,种类丰富可供选择。高级的 ARM 内核不仅工作主频得到极大提升,而且
也集成了硬核浮点计算单元,所以高级的 ARM 芯片有足够的性能处理数据,再配合
FPGA 强大的并行性和扩展性,满足了系统的性能要求。
(4) 最后一点是考虑性能与成本之间的关系,共性能带来了高成本,而低成本也限
制了控制性能。高性能和低成本犹如鱼与熊掌,两者不可兼得,因此需要选择一个折
中的方案。 ARM+FPGA 方案在一定的设计处理后,功能和性能方面能够媲美
ARM+DSP+FPGA 或者 SoC 等高级方案,但成本却降低了许多。
综上所述, ARM+FPGA 架构更加符合本文所设计的伺服控制系统。
3.3.2 主控芯片选型
主控核心是整个系统的大脑,占据着重要地位。一款合适的主控核心会使后续的开
发变得简单可靠,因此选择一款合适的主控核心非常重要。但由于微处理的种类层出
不穷,不同品牌不同系列的芯片种类高达上千种,因此给选型带来了极大挑战。那么
可以从通用性、性价比、可持续、可替代和采购方便等原则考虑。一款合适的处理器
不仅考虑自身的性能和资源问题,更需要考虑处理器的配套设施完善。处理器的配套
设施包括开发工具是否齐全,学习资源是否丰富以及是否有成功的实施例子。如图 *
示,各大半导体厂商的微处理器在国内的市场份额。
图中可知,份额最高的是 ST 公司,市场占有率高达 21% ,该公司旗下主打 STM32
系列微处理器。 STM32 芯片根据内核架构不同可分为不同系列 , 其中高性能 M4 M7
内核系列通用性较强,可以只需要改动小许地方即能够相互替代。
而且 STM32 芯片的开发环境比较完善和成熟,不仅有丰富的官方手册和开发例程,
而且也有很多移植好的嵌入式系统。所以经过多方面分析和总结,采用 STM32 微处理
器是一个较好的方案,能够满足挑选微控制器的五个原则。
结合设计需求考虑,最终选择型号为 STM32H743IIT6 芯片作为 ARM 端的主控核
心。该芯片是 Cortex-M7 内核的高性能系列产品,具有丰富的硬件外设资源,并且其
具备高频率工作时钟,能够快速有效执行各种指令。
FPGA 芯片的选型则相对比较简单,全球两大 FPGA 生产厂商 Intel Xilinx
生产对标的芯片性能都差不多,因此主要考虑逻辑资源是否足够和选择一款自己熟悉
的芯片开发即可。本文所选的 FPGA 芯片型号为 EP4CE22F17C8 。该芯片具有丰富的
片上资源、存储资源、以及多个全局时钟网络和锁相环。
3.3.3 硬件系统架构设计
硬件系统架构可以分为 ARM FPGA 部分,如图 3-2 所示。 FPGA 中主要集成了
主控制器、 FOC 模块和反馈模块三大模块。主控制器负责整个 FPGA 系统的控制,各
个模块的参数设置、驱动控制和数据交换都通过主控制器进行处理; FOC 模块是电机
控制的核心算法,分别对采样的电流进行坐标变换处理及脉宽调制处理,最后输出
PWM 波输出至智能功率模块中对电机进行控制;反馈模块则集成了所需的编码器种
类,分别有数字编码器和模拟编码器,通过设置编码器类型,然后经过滤波处理,最
后将数据回传到主控制器进行统一处理。
ARM 中主要由应用层、驱动层和系统层组成,外设通过高速总线与内核互联,主
要处理了控制算法、通信功能及任务管理。通信方式有串口、 RS485 CAN 和以太网
四种,与上位机进行指令和数据传输; SPI_FLASH EEPROM SDRAM 用于系统任
务管理,存储系统必要的配置信息和大量运算数据缓存;最后,所有任务事件由
FreeRTOS 操作系统进行统一调度。
ARM FPGA 之间通过总线进行互联通信,该总线称为灵活存储控制器(简称
FMC )。其具体的功能框图如图 3-3 所示,包含了常用的存储芯片的控制器。控制器
通过 AXI 总线和 AHB 总线实现了芯片对存储单元的读写操作。
FPGA 可以看作是 ARM
的一块外接 SRAM ,因此可以用 SRAM 的控制方式对 FPGA 进行读写操作。
FMC 综合了多种存储芯片的读写信号特点,根据不同存储芯片的性能参数,设置
主要的时间参数:地址建立时间、数据建立时间和地址保持时间。实际工程中利用芯
片性能指标,计算出所需的时间,最后设置对应的寄存器。在本文中选用了模式 A
时序模型,模式 A 支持独立的读写时序控制,其读写时序如图 3-4 3-5 所示。
结合本文硬件方案采用的主控核心是 STM32H743IIT6 ,因此最终选择更加合适的
FreeRTOS 作为本伺服控制器的操作系统。
FreeRTOS 顾名思义是一款免费的实时操作系统,这对于一款产品来说是非常友好
的,可以有效地降低了成本。 FreeRTOS 具有可裁剪、小巧和易用等优点,并且多种任
务调度模式,更重要的是用户可以根据任务的实时程度来人为给各个任务分配优先执
行等级,系统能够根据任务优先程度优先执行,因此非常适用于工业控制场合。
3.4.2 软件系统架构设计
如图 3-7 所示是本文所设计的驱动一体控制器的软件架构。该软件系统从低到高共
分为四大层次,各层之间不能夸层调用。而且各个模块之间耦合性低,同时模块提供
统一的 API 接口供上层调用。
硬件驱动层用于板卡硬件资源驱动,保证其能正常运行工作,并将 API 提供给功
能模块调用。该层主要由通信部分和事务管理部分组成,伺服控制器可以通过多种通
信方式与上位机进行数据交互,另一部分则用于系统文件管理,用于保存配置信息数
据和缓存运算过程中产生的中间变量。
功能模块层包含实现具体功能函数,主要有通信库模块、算法库模块、电机库模块
和升级模块。通信库用于解析上位机与控制器之间的通信数据帧,从而执行相应的操
作;升级模块则用于后续系统功能增加,通过远程升级伺服控制器的固件;算法库模
块和电机库模块包含了一些高级的运动控制算法,用于控制伺服电机,后续开发新的
控制算法可以直接添加到相应的库文件中而不会影响其他模块。
系统层采用的是 FreeRTOS 实时操作系统,其中任务调度机制是其核心技术。在
FreeRTOS 中的任务状态永远处于下图中四种状态中的的其中一种,其切换关系如图
3-8 所示。
应用层面向的对象是操作者,操作人员通过使用上层软件,经过实时操作系统进行
任务调度,然后调用对应的 API 函数,最终实现对底层硬件的调用和驱动。
整个软件系统的控制流程如图 3-9 所示。开始系统上电进行初始化配置, ARM
EEPROM SPI_FLASH 中的配置信息,
FPGA 芯片则可以通过 ARM 进行配置或者
通过 EPCS 芯片进行配置;然后通过与上位机进行连接,在上位机中进行一些参数设
置然后传输到 ARM 上;之后 ARM 通过 FMC 总线将电流控制指令传输给 FPGA 的寄
存器模块中,然后主控制器将所接收到的数据配置给 FPGA 中的各个模块;在载波同
步电路的控制下, FPGA 同步读取编码器位置信号和电流信号,然后进行坐标变换后,
最后调制输出 PWM 波;同时, FPGA 将收集到的数据放在寄存器模块中, ARM 再通
FMC 读取模块中的数据,用于进行高级的运动控制算法运算并且将数据回传到上位
机中用作数据分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_331078.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解PostgreSQL sql shell和VACUUM命令

从SQL Shell进入PostgreSQL;没用过这东西,看一下; 一直回车;最后输入口令就登入了;此时是登入默认的数据库postgres;这个数据库是默认安装的; 看一下有没有表,根据资料可以用 \d 或…

大坝安全监测中需要做好检查监测

大坝安全监测是人们了解大坝运行状态和安全状况的有效手段和方法。它的目的主要是了解大坝安全状况及其发展态势,是一个包括由获取各种环境、水文、结构、安全信息到经过识别、计算、判断等步骤,最终给出一个大坝安全 程度的全过程。 此过程包括&#xf…

Linux中常用的监控性能的命令(sar、mpstat,vmstat, iostat,)详解

Linux中常用的监控性能的命令有: sar:能查看CPU的平均信息,还能查看指定CPU的信息。与mpstat相比,sar能查看CPU历史信息 mpstat:能查看所有CPU的平均信息,还能查看指定CPU的信息。 与sar相比&#xff0c…

九五从零开始的运维之路(其二十)

[TOC](文章目录) 文章目录 前言一、LAMP是什么二、配置环境及安装1.配置yum源2.关闭防火墙、网络图形化工具及SElinux3.安装软件包 三、配置apache服务器内容四、启动服务五、访问验证总结 前言 本篇将简述的内容:Linux系统下的LAMP平台部署 基于discuz框架的论坛搭…

阿里云无影云电脑价格_企业办公型1元_云桌面入口

阿里云无影云电脑配置费用,4核8G企业办公型云电脑可以免费使用3个月,无影云电脑地域不同费用不同,无影云电脑是由云桌面配置、云盘、互联网访问带宽、AD Connector、桌面组共用桌面session等费用组成,阿里云百科分享阿里云无影云电…

中文数据下载

研究AI离不开数据,数据库可以说是AI的半壁天下。有链接的数据库下载是很nice的。 语音数据集整理 目录 1.Mozilla Common Voice. 2 2.翻译和口语音频的大型数据库Tatoeba. 2 3.VOiCES Dataset 3 4. LibriSpeech. 4 5.2000 HUB5 English:... 4 6.…

如何用Three.js + Blender打造一个web 3D展览馆

作者:vivo 互联网前端团队- Wei Xing 运营活动新玩法层出不穷,web 3D炙手可热,本文将一步步带大家了解如何利用Three.js和Blender来打造一个沉浸式web 3D展览馆。 一、前言 3D展览馆是什么,先来预览下效果: 看起来像…

Linux离线环境Jenkins部署SpringBoot

Jenkins服务器 把Jar包上传到Linux服务器的/jenkins/目录下 Dashboard----》新建任务----》构建一个自由风格的软件项目----》test 修改jenkins工作空间 新建构建前执行命令stop.sh,停止SpringBoot并备份 (这里是目标服务器,即部署项目的…

激斗云计算:互联网大厂打响新一轮排位战

大模型如同一辆时代列车,所有科技大厂都想上车。 自去年底ChatGPT一炮而红,国内外数十家科技大厂、创业公司、机构相继下场,一时间掀起大模型的热浪。 《中国人工智能大模型地图研究报告》显示,截至今年5月28日,中国…

第八章:SegNet——一个用于强大的语义像素级标注的深度卷积编码-解码架构

0.摘要 我们提出了一种新颖的深度架构SegNet,用于语义像素级图像标注。SegNet具有一些吸引人的特性: (i)它只需要对完全学习的函数进行前向评估,就可以获得平滑的标签预测; (ii)随着深度增加,像素标注考虑了更大的上下…

SpringBoot+actuator和admin-UI实现监控中心

使用SpringBoot很久了&#xff0c;但是很少使用到SpringBoot的查看和监控&#xff0c;将来八成也不会用到&#xff0c;万一有机会用到呢&#xff1f;所以记录一下以前学习SpringBootactuator和adminUI实现监控中心的方式 Springboot的版本2.0.x <parent><groupId>…

keepalived安装配置详解

文章目录 高可用介绍keepalived安装、使用vip漂移抓包脑裂脑裂有没有危害&#xff1f;如果有危害对业务有什么影响&#xff1f; keepalived架构双vip架构 Healthcheck实现 notifyVRRP选举格式 高可用 介绍 高可用性&#xff08;High Availability&#xff09;是指系统或服务能…

Word2Vec实现文本识别分类

深度学习训练营之使用Word2Vec实现文本识别分类 原文链接环境介绍前言前置工作设置GPU数据查看构建数据迭代器 Word2Vec的调用生成数据批次和迭代器模型训练初始化拆分数据集并进行训练 预测 原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&…

pycharm新建分支并提送至GitHub

文章目录 前言pycharm创建本地分支Push至远程分支 前言 当我们写的项目代码越来越多时&#xff0c;一个master分支无法满足需求了&#xff0c;这个时候就需要创建分支来管理代码。 创建分支可以快速的回滚到某个节点的版本&#xff0c;也可以多个开发者同时开发一个项目&#…

剑指oferr68-II.二叉树的最近公共祖先

为什么这道题的难度是easy&#xff0c;我感觉挺难的啊&#xff0c;我想了挺久没有一点思路就直接看题解了。题解有两种解法&#xff0c;先看第一种存储父节点 class Solution {Map<Integer,TreeNode> parent new HashMap<Integer,TreeNode>();Set<Integer>…

windows nodejs 版本切换

一、按健winR弹出窗口&#xff0c;键盘输入cmd,然后敲回车。然后进入命令控制行窗口&#xff0c;并输入where node查看之前本地安装的node的路径。 二、找到上面找到的路径&#xff0c;将node.exe所在的父目录里面的所有东西都删除。 三、从官网下载安装包 https://github.com/…

Raft算法之日志复制

Raft算法之日志复制 一、日志复制大致流程 在Leader选举过程中&#xff0c;集群最终会选举出一个Leader节点&#xff0c;而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息&#xff0c;还会处理客户端的请求&#xff0c;并将客户端的更…

AP5193 DC-DC宽电压LED降压恒流驱动器 LED电源驱动IC

产品 AP5193是一款PWM工作模式、外围简单、内置功率MOS管&#xff0c;适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流2.5A。AP5193可实现线性调光和PWM调光&#xff0c;线性调光脚有效电压范围0.55-2.6V.AP5193 工作频率可以通过RT 外部电阻编程来设定&#xff0c;同时…

linux下一个iic驱动(按键+点灯)-互斥

一、前提&#xff1a; 硬件部分&#xff1a; 1. rk3399开发板&#xff0c;其中的某一路iic&#xff0c;这个作为总线的主控制器 2. gd32单片机&#xff0c;其中的某一路iic&#xff0c;从设备。主要是按键上报和灯的亮灭控制。&#xff08;按键大约30个&#xff0c;灯在键的…

day34-servlet 分页

0目录 servlet 1.分页 分页逻辑1&#xff1a;数据库中20条记录&#xff0c;要求每页5条数据&#xff0c;则一共有4页 分页逻辑2&#xff1a;数据库中21条记录&#xff0c;要求每页5条数据&#xff0c;则一共有5页 分页逻辑3&#xff1a;数据库中19条记录&#xff0c;要求每页…