机器人对MCU有独特的需求。经过优化用于机器人的 MCU 通常包含多种功能,包括内置互联网协议 (IP) 连接、信息安全和功能安全保护以及高级控制算法。将 MCU 内核与现场可编程门阵列 (FPGA) 集成是优化机器人应用的一种手段。机器人操作系统 (ROS) 最初针对更高性能的中央处理器 (CPU) 进行了优化,现在已被简化并作为微型 ROS 发布,以便在嵌入式 MCU 和其他资源较少的环境中运行,进一步提高了 MCU 在机器人技术中的实用性。
用于机器人的 MCU 采购继续成倍增加。本 FAQ 将回顾基本的机器人平台架构,特别强调 MCU 的使用;它回顾了 MCU 内核与 FPGA 集成时打开的性能选项,并回顾了使用 micro-ROS 的好处。 MCU 是机器人设计中的重要元素。即使是简单的消费类机器人也可以包含多个 MCU,用于实现通信、用户界面、USB 和电机控制等专用功能(图 1)。
图 1:即使是相对简单的机器人真空吸尘器,也可以有多个 MCU 来处理专门的用户界面、连接和电机控制任务。 (图片:Microchip)
智能工厂和工业 4.0 的出现正在推动对日益精密和复杂的工业机器人的需求。包括网络通信、功能安全需求和预测性维护等需求增长,需要更高性能外设和加速器的 MCU 。通常运行频率为 800 MHz 至 1GHz 的异构多核 MCU。处理速度对于支持多轴机器人中电机位置、方向、速度和扭矩的高精度控制至关重要。
用于机器人的高性能 MCU 包括支持伺服控制所需计算的专用加速器硬件。在某些情况下,电流控制环路计算可以在 1.5µs 内完成。在伺服电机驱动系统中,控制回路可以分为多个层次,包括更高级别的运动控制回路、位置回路、速度回路和转矩/电流回路,以级联拓扑结构排列(图 2)。上游控制回路倍数于下游控制回路,并为下游提供参考数据,其中转矩或电流回路是最严密的控制回路。
图 2:伺服电机控制回路级联拓扑。 (图片:德州仪器)
上述架构中的控制回路可以在多核 MCU 中的不同内核实现,也可以在 MCU 内核和 FPGA 之间进行划分。分区的优化通过在独立计算资源之间扩展循环来最大化可用处理带宽。每个处理核心都可以快速运行其特定算法,将结果向下传递以供下一个循环使用。同时,它根据需要继续提供其他功能,直到下一组输入数据到达,算法再次开始。
单个 MCU 内核需要高水平的性能才能拥有可用于快速处理基本算法和提供系统所需的附加功能的带宽。由于循环时间在 32 kHz 控制回路中接近 31.25 µs,或者必须几乎同时处理来自多轴的输入,因此必须进行快速处理。有时,它可能需要一个或多个高性能 MCU 加上一个 FPGA 的组合。
MCU、FPGA 和 eFPGA
在机器人系统中,MCU 和 FPGA 的组合可以提供比单一产品更合适的解决方案。其中MCU 灵活且易于编程。 MCU 也可以处理某种级别的并行运算,但最终内核可能成为更高级别并行性能的瓶颈。 FPGA 由数千个逻辑块组成,这些逻辑块可以配置为大规模并行处理。 FPGA 还可以提供更高级别的灵活性,但它们往往更昂贵。
MCU 非常适合处理多轴伺服控制等常规功能。 FPGA 可包含大量 DSP 模块和可编程逻辑,可支持人工智能 (AI)、机器学习 (ML) 和卷积神经网络 (CNN) 推理算法所需的并行处理。机器人平台上需要的 AI/ML/CNN 功能越多,将 FPGA 与 MCU 一起结合的好处就越大。
用户可以使用多种微控制器软件开发工具中的一种。在 FPGA 的情况下,逻辑不是固定的,而是通过在硬件中设计互连结构来“编程”设备以执行特定功能。这些差异导致了 MCU 和 FPGA 之间的成本和性能权衡(图 3)。
图 3:FPGA 和 MCU 为机器人平台设计人员提供了多种性能和成本权衡。 (图片:Digilent)
根据具体设计的需要,MCU和FPGA的结合方式有以下三种:
MCU 和 FPGA 可以组合为两个分立组件
FPGA 可以包含一个集成的 MCU 内核
MCU 可以包括一个集成的 FPGA 部分
这些方法中的每一种都有其优点。对于同时需要高性能伺服控制能力和大量 AI/ML/CNN 功能的应用,高性能 MCU 可以与单独的大型 FPGA 相结合。 MCU 可能用于控制功能,而 FPGA 用于机器人平台上更密集的人工智能和机器学习活动。在需要大规模并行处理和 AI/ML/CNN 占主导地位的情况下,MCU 内核可以与大型 FPGA 集成。在 MCU 占主导地位且需要相对少量并行处理的情况下,可以将较小的嵌入式 FPGA (eFPGA) 与高性能 MCU 集成。
在许多机器人应用中,通常首选其中一种集成解决方案,集成解决方案可以提供更高的性能水平。当分立的 FPGA 与单独的 MCU 结合使用时,每个设备都需要其内存缓冲区来处理它们之间的数据传输。如果需要在 MCU 和 FPGA 之间传输大量数据,系统性能会受到影响。另一方面,如果 FPGA 和 MCU 集成在一块芯片中,它们可以共享 DDR 内存,并且数据传输不需要缓冲。在这种情况下,数据传输只涉及在 MCU 和 FPGA 之间传输存储器指针。
MCU 机器人操作系统
基本机器人操作系统 (ROS) 是一个用于机器人应用程序开发的开源软件框架,针对运行 Ubuntu Focal、macOS 和 Windows 10 等操作系统的微处理器进行了优化。ROS 2 是新一代的 ROS。 ROS 2 采用分层架构设计,将 ROS 客户端层与 ROS 中间件层分开。 ROS 领域的最新发展是 micro-ROS,它将 ROS 2 带入中档和更高级别的 MCU。需要具有数十 KB RAM 的 MCU 来实现微型 ROS。 MCU 中还需要支持 micro-ROS 客户端到代理通信的通信外围设备。
micro-ROS 提供了一个 ROS 2 开发生态系统,可以在实时操作系统 (RTOS) 之上运行,使它们能够满足需要时间期限或确定性响应的机器人系统任务的时间关键要求。FreeRTOS 是 micro-ROS 项目支持的首批 RTOS 之一,并已集成到其软件堆栈中。 FreeRTOS 社区开发的所有实现和工具都可以与 micro-ROS 兼容(图 4)。
图 4:微型 ROS 堆栈显示与 FreeRTOS 环境的兼容性。 (图片:FreeRTOS)
FreeRTOS 具有最小的内存和处理开销,RTOS 内核二进制映像仅需要 6K 到 12K 字节,非常适合运行 micro-ROS。除了 FreeRTOS 之外,micro-ROS 还可以与 Zepher RTOS 一起运行,并且 Zepher 由 micro-ROS 客户端库及其中间件支持。
总结
为机器人平台指定 MCU 是一个复杂的过程。通常需要多个 MCU 或具有多个内核的单个 MCU,以及可能添加的 FPGA,作为外部设备或 MCU 内的嵌入式元件。在考虑 MCU 和 FPGA 的集成时,需要进行多种权衡。例如,MCU 可用于控制功能,而 FPGA 则用于机器人平台上更密集的人工智能和机器学习。在 MCU 上运行的微型 ROS 机器人操作系统的发布是高级机器人平台设计人员可用的另一个重要工具。
上一篇:力源半导体首款32位MCU产品正式发布!
下一篇:最后一页
推荐阅读
史海拾趣
随着全球环保意识的日益增强,电子行业对环保的要求也越来越高。CDI积极响应这一趋势,将环保理念贯穿于产品研发、生产和销售的全过程。公司推出了一系列绿色环保型电子元件,并采用了环保材料和生产工艺。这一举措不仅赢得了客户的认可,还为公司的可持续发展奠定了坚实基础。
为了进一步拓展国际市场,Corstat Containers公司积极寻求与国际知名电子企业的合作。通过参加国际电子展会、建立海外销售渠道等方式,公司成功打开了多个国家的市场。同时,公司还与国外科研机构展开合作,共同研发更加先进的电子产品包装技术,为公司的长期发展奠定了坚实的基础。
在电子行业中,产品质量是企业生存和发展的关键。Directed Energy Inc深知这一点,因此始终将品质保障作为公司的核心竞争力之一。公司建立了严格的质量管理体系,从原材料采购到生产制造、再到产品检验和售后服务,每一个环节都严格把控,确保产品的高品质。这种对品质的执着追求赢得了客户的广泛信赖和好评,为公司赢得了更多的市场份额。
品质一直是EICHHOFF公司发展的核心竞争力。为了确保产品质量的稳定性和可靠性,公司建立了一套完善的质量管理体系,并持续进行改进和优化。从原材料采购到生产加工、从产品检测到售后服务,每一个环节都严格按照质量管理体系的要求进行。
此外,EICHHOFF公司还积极引入国际先进的品质管理工具和方法,如六西格玛、精益生产等,以进一步提高产品质量和生产效率。这些努力使得EICHHOFF的产品在行业中享有很高的声誉和信誉。
2013年,ELESTA公司更名为ELESTA GmbH,这一品牌重塑标志着公司进入了新的发展阶段。同时,ELESTA也开始实施全球化战略,积极拓展国际市场,通过不断提升产品质量和服务水平,赢得了全球客户的信赖和认可。
"无尾电视"是利用海尔国家重点实验室和国家工程实验室的平台与全球顶级专家共同研发的成果,同时采用了与麻省理工学院合作的无线电力传输技术,能够在不借助电线的情况下利用"非辐射性磁耦合共振"原理实现远距离高效无线电力传输,这也是无 ...… 查看全部问答∨ |
|
1.尽可能在整个设计中只使用一个主时钟,同时只使用同一个时钟沿,主时钟走全局时钟网络。2.在FPGA设计中,推荐所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑。3.当全部电路不能用同步电路思想设计时,即需要多个时钟来实现, ...… 查看全部问答∨ |
S3C2440 系统运行一段时间 晶振突然没波形输出,如何解释! 采用核心板和底板结构,核心板只包括SDRAM NOR NAND CPU等几个主要器件。操作系统在以前的底板上运行正常,目前修改底板,用于其它产品,采用同样的核心板,运行到一段时间后,系统跑飞(有时会自动重启,有时不能)。测量电源,3.3 和1.25V供电都 ...… 查看全部问答∨ |
StellarisWare Release Notes (Revision 7611) StellarisWare Release Notes 记录了 StellarisWare 的更新和修改,供大家参考。 [ 本帖最后由 Study_Stellaris 于 2011-9-15 23:09 编辑 ]… 查看全部问答∨ |
|
比如我要测三角波的频率,用外部中断和定时器。第一次中断定时器使能n++,第二次中断定时器失能n--,同时读取计数器的值,定时器初始化,这样反复循环。请问为什么我读不到计数器的值??我还要根据这个值做不一样的动作!!谁能帮我指点下!!!… 查看全部问答∨ |
|
CCS 导入 unresolved symbol Entry错误! Code Composer Studio Version: 5.4.0.00091 导入AM335X_StarterWare_02_00_01_01中的例子就出现错误!一直没找到原因 … 查看全部问答∨ |