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

单芯片控制多个高性能伺服电机

在我上学的时候,STM32+FPGA的架构是论文或者研究的一个热点。直到Xilinx的ZYNQ和Altera的Cyclone V 出现大家才把研究的重点放到ZYNQ上,但是ZYNQ等架构成本较高及PS或者HPS端通常需要DDR,板子较大,同样的功耗也不低。从这几方面来说,ZYNQ等架构不是为了替代STM32+FPGA的架构,所以这种架构目前还是有自己的应用场景,比如工控领域,今天我们就聊聊伺服电机控制方案。

999da6dd3aae18dbb149b67f20743a17.png

目前电机控制是MCU常用应用,下图就是其实现的方案:

8d4234f404511962151e1ab41d018bf7.png

但是在一些高精度的情境下,MCU也有自己的局限性,即使是高端 MCU 也难以满足全部功能。按顺序执行线程指令是 MCU 的固有特性;但电机控制需要实时确定性地控制电机位置/速度和电机电流。因此,低端 MCU 通常只能控制单个伺服电机。

对于需要控制多个伺服电机的应用,FPGA 可以提供更合适的硬件环境,因为它能够并行执行两个或多个时间关键型功能。

然而,FPGA 市场上的商业选择过去曾使设计人员陷入困境:在实施要求严格的电机系统设计时,OEM 倾向于单芯片解决方案,但可以同时运行位置、速度和电流控制程序的 FPGA 属于高密度端,而这些高端 FPGA 既庞大又昂贵。

在多电机设计中,单个MCU性能不足,而单个高端FPGA性能足够,但成本较高。

然而,目前国产FPGA的崛起,为该领域带来了新鲜“血液”,为设计师提供了一种解决问题的方法,即实现一种经济实惠的单芯片解决方案来解决控制多个伺服电机的问题。

将 MCU 引入 FPGA 的各种方法

由于基于高端 FPGA 实现单芯片电机控制系统的成本较高,设计人员通常采用双芯片方案(即XX32+FPGA),将 MCU 与小型、低密度、价格实惠的 FPGA 相结合。在这种架构中(见图 1),MCU 通常处理位置和速度控制功能,而 FPGA 管理电流控制环路和与电机位置传感器(编码器、霍尔传感器或光学位置传感器)的接口。

f7671aa40928c1c7b982f3fdec2eae81.png图 1:用于高性能电机控制的典型双芯片架构

这种双芯片解决方案提供了确定性控制,但与同等的单芯片解决方案相比,其电路板布局更为困难,供应链更为复杂,物料清单成本也更高。

9bab68d3a83e62851150b8afb03254ac.png

低端和中端 FPGA 制造商已通过将 MCU 引入其产品来应对这一困境(尤其国产FPGA厂商),通常采用内置于 FPGA 中的 Arm® Cortex®-M MCU IP 形式(M0和M3内核已开源)。在某些应用中,提供在 FPGA 结构中实现的 MCU 内核可能非常有用,但对于电机控制,这种软核 MCU 难以提供所需的确定性性能和时序。在软核 MCU 实现中,控制环路的更新速率通常会降低,从而限制了这种单 FPGA 解决方案保持可靠和平稳性能的能力。

8991ab204505a07d1d0054989a1b0129.png

新型混合单芯片电机解决方案

为了解决软核的缺陷,低密度FPGA厂商也积极创新,今天介绍一款来自高云半导体的芯片-GW5AS25。该芯片结合了 288MHz Arm Cortex-M4 的 MCU(来自 Artery 的 AT32F437)和包含 23,040 个逻辑元件的 Arora-V FPGA,这些逻辑元件封装在一个 256 针芯片中,尺寸为 14mm x 14mm。该 FPGA 采用低功耗台积电 22nm 工艺制造。芯片手册:

https://cdn.gowinsemi.com.cn/DS1105-1.0_GW5AS%E7%B3%BB%E5%88%97FPGA%E4%BA%A7%E5%93%81%E6%95%B0%E6%8D%AE%E6%89%8B%E5%86%8C.pdf

e9e180d5c1f7095cc9a2add378dac234.png

GW5AS25 的系统级封装 (SiP) 配置允许电机系统设计人员在执行位置/速度控制的 MCU 和运行一个或两个电机的电流控制环路的 FPGA 之间划分系统功能(见图 2)。

3bfdcffa7648ad4f3e34cb805b3cdf35.png图 2:单芯片多电机控制

如图 2 所示,该解决方案提供了足够的控制环路带宽来管理两个高速运行的电机,同时避免了使用高端 FPGA 执行相同功能而产生的高成本和尺寸损失。

这款硬核 MCU 和 FPGA SiP 不仅为高速电机控制提供了硬件平台,还获得了有助于加速单或双永磁同步电机 (PMSM) 设计的资源支持。这些资源包括:

  • 用于实现各种形式的电流环路控制的参考设计 IP。设计人员可利用此 IP 实现超过 20kHz 的 PWM 开关频率。

  • 内置支持通过工业以太网接口进行高速实时通信

此外,编码器制造商还为其产品接口提供 VHDL 和 Verilog 代码,从而简化了它们与基于 FPGA 的控制系统的集成。

496e056ad30d02c0882f8ad7a75a054a.jpeg

总结

目前,国产FPGA厂商除了要规避传统FPGA厂商的专利壁垒,还能在各个领域不断创新,属实不容易,当然今天只是举例一款芯片,其他国内厂商应该也有类似产品,欢迎大家评论区补充~

635ebf3bbaca72698f8f39c748641ac6.jpeg

http://www.kler.cn/a/506036.html

相关文章:

  • SuperMap iClient3D for Cesium立体地图选中+下钻特效
  • 【Linux】进程间通信IPC
  • 当父级元素设置了flex 布局 ,两个子元素都设置了flex :1, 但是当子元素放不下的时候会溢出父元素怎么解决 (css 样式问题)
  • [操作系统] 深入理解约翰·冯·诺伊曼体系
  • 基于springboot的自习室预订系统
  • 大疆上云API基于源码部署
  • 【Linux】多路转接select
  • PyTorch使用教程(1)—PyTorch简介
  • MongoDB 学习建模与设计思路--统计数据更新案例
  • Ubuntu本地部署网站
  • 实现小球不断往下滚动
  • LabVIEW实现油浸式变压器自主监测与实时报告
  • tplink rt406路由器如何配置端口映射
  • 人脸识别SDK(Android)之Github示例及集成详解
  • C语言初阶习题【29】杨氏矩阵
  • 代码随想录算法训练营day30
  • python爬虫根据需要查找某个链接并保存
  • 阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%
  • 如何解决 XGBoost 控制台警告:版本不一致导致的模型加载问题
  • day10_Structured Steaming
  • 【MATLAB代码】CV和CA模型组成的IMM(滤波方式为UKF),可复制粘贴源代码
  • 神经网络常见操作(卷积)输入输出
  • 【微服务】SpringBoot 通用异常处理方案使用详解
  • PyTorch使用教程(3)-Tensor包
  • C语言预处理艺术:编译前的魔法之旅
  • 人工智能-机器学习之多分类分析(项目实战二-鸢尾花的多分类分析)