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

设计需求
一套完整的伺服控制方案包括了上位机、驱控一体控制器和功率板三者。操作人员
通过上位机发送各种不同指令,然后控制器解析指令后执行相应的伺服功能,其次控
制器将驱动信号传输至功率板驱动电机,最后控制器采集反馈信息进行闭环控制并上
传数据。
结合国内外嵌入式伺服控制器的发展现状和功能需求,制定了本文伺服控制系统的
主要功能需求如下:
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.hqwc.cn/news/28535.html

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

相关文章

尚硅谷大数据Flink1.17实战教程-笔记03【Flink运行时架构】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】尚硅谷…

宋浩线性代数笔记(一)行列式的计算

本帖更新b站宋浩老师的线代网课笔记,内容较为细致详细,参考书用的是科学出版社的第三版,之后会附加同济出版社第六版的教材内容。 (字不好看大家将就看吧QAQ)

css+js实现点击特效效果

话不多说&#xff0c;先上效果图 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

Linux(CentOS7)下源码编译 PostgreSQL13.10 安装手册

Linux&#xff08;CentOS7&#xff09;下PostgreSQL安装手册 文章目录 一、准备PostgreSQL二、安装PostgreSQL2.1解压安装包2.2编译PG2.3查看PG安装目录2.4配置PG环境变量2.5查看PG版本2.6创建postgres用户2.7创建PG数据库数据存放目录2.8授权PG数据库数据存放目录2.9切换postg…

在Windows下安装Anaconda平台

Anaconda介绍 安装Python的方法有很多&#xff0c;其中利用Anaconda来安装&#xff0c;是最为安全和便捷的方法之一。在Python中安装类库&#xff0c;各个类库之间可能存在相互依赖、版本冲突等问题。为了解决这个问题&#xff0c;Python社区提供了方便的软件包管理工具&#…

《数据结构》数据结构概念,顺序表,链表

目录 1. 为什么学习数据结构&#xff1f; 2. 数据结构 2.1. 数据 2.2. 逻辑结构 2.3. 存储结构 2.4. 操作 3. 算法 3.1. 算法与程序 3.2. 算法与数据结构 3.3. 算法的特性 3.4. 如何评价一个算法的好坏 4. 线性表 4.1. 顺序表 4.2. 单向链表 4.3. 单向循环链表&…

如何在Windows中将任务导入任务计划程序

任务计划程序使你能够在选定的计算机上自动执行例行任务。任务调度程序通过监视你选择的启动任务的任何条件&#xff08;称为触发器&#xff09;&#xff0c;然后在满足条件时执行任务来实现这一点。 你可以导入导出的任务&#xff0c;这将把导入的任务添加到任务文件夹中&…

复习java基础

复习一天有点忘了的知识&#xff1a; 结构化编程 结构化程式设计(英语:Structured programming)是1960年代开始发展起来的一种编程典范。它采用子程序、程式码区块、for循环以及while循环等结构来取代传统的goto。 指导思想 自顶向下、逐步求精、模块化 编程过程 流程图是…

SOMEIP协议----第一节(概述)

SOMEIP协议 概述 1.什么是SOME/IP? SOME/IP: 如上图所述,连起来就是基于车载以太网技术的面向服务的可扩展中间件 汽车某ECU软件算法如果需要和其他ECU交互,大部分都通过跨ECU之间的服务来实现,即可以通过车载以太网异步调用其他ECU上的服务,应用开发者只需要关注服务…

Linux下安装Mysql (CentOS 7) 详解

文章目录 前言环境检查查看是否安装MySql查看系统版本 源安装安装mysql的yum源官网下载从windows上传到linuxrz命令 方法2&#xff1a; 安装Mysql常见错误密钥问题安装后查看mysql是否可以工作查看是否安装成功启动服务 登录mysql配置文件方法&#xff08;免密码&#xff09; 使…

【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

文章目录 Cortex-M 系列介绍Cortex-M0/M0 介绍Cortex-M3/M4 介绍Cortex-M7 介绍Cotex-M33 介绍 下篇文章&#xff1a;ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M 系列介绍 Cortex-M0/M0 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器&#xff08;MCU&#xff0…

http连接处理(下)(四)

1.结合代码分析请求报文响应 下面我们将介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。首先介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&…