真正自主的移动机器人曾经是科幻小说中的情节,但最近在处理、传感和控制方面的进步使其更接近现实。然而,这项技术面临的一个主要障碍是,如果机器人在处理操作中出现错误,它是否能够自我纠正。本文探讨了 NXP 的 MCX MCU 如何利用先进的纠错功能使移动机器人更加安全可靠。
移动机器人的应用范围越来越广泛,从工业自动化到服务机器人。由于这些机器人承担着更复杂的任务并且在不受控制的环境中运行,因此确保其可靠和安全运行至关重要。
NXP 的新型 MCX 微控制器产品组合有助于应对这些挑战。MCX MCU 基于高性能 Arm® Cortex®-M33 内核,具有先进的错误检测和纠正功能,非常适合开发要求高可靠性和高安全等级的移动机器人。
移动机器人常见的可靠性和安全性问题
移动机器人主要依靠板载电子设备来感知环境、做出决策和控制行动。然而,由于极端温度、振动和电磁干扰等各种因素,它们的运行条件可能具有挑战性。随着时间的推移,这些压力可能会导致机器人内存出现位错误和损坏。因此,我们需要考虑电子设备的长期可靠性,因为移动机器人预计具有较长的使用寿命。
工业 AMR
内存错误会导致移动机器人出现各种可靠性和安全性问题。机器人控制固件中的位翻转可能导致其执行错误的指令,从而导致意外行为。损坏的传感器数据可能被误读,导致机器人做出错误的决定。错误的电机控制输出可能会导致意外运动,或对机器人或其周围环境造成潜在损害。
在安全关键型应用中,例如在人们附近操作的移动机器人,此类故障的后果可能是严重的。移动机器人需要强大的保护措施来防止内存错误,以确保可靠和安全的运行。
闪存和 RAM 的 MCX 纠错功能
NXP MCX A 微控制器系列包含多种关键功能来检测和纠正内存错误。MCX A 嵌入了高达 128KB 的闪存,具有纠错编码 (ECC) 功能。MCX N 系列具有高达 2MB 的带 ECC 的闪存。闪存的每个 128 位字包含额外的 9 位 ECC 数据。
ECC 是一种在每个数据字中存储冗余位的技术。在每次读取操作时,通过重新生成 ECC 位并将其与存储的 ECC 进行比较,这些冗余位有助于检查数据的完整性。如果重新生成的 ECC 位与存储的 ECC 位不匹配,则意味着存在错误,而 ECC 可以纠正错误。ECC 还能在出现单比特错误时确定哪个比特出错。但是,它只能检测双位错误,而不能纠正双位错误。
移动机器人示例
如果微控制器检测到 ECC 错误,系统控制器 (SYSCON) 模块可以生成总线故障或使用中断来处理错误。灵活的故障处理方式允许开发人员定制最适合其应用的处理方式。
MCX A 还提供 32KB 的片上 SRAM,其中一个 8KB 块 (RAMA0) 包含 ECC,用于单错误纠正和双错误检测。MCX N 系列在配置为 ECC 时可提供高达 416KB 的 RAM,其中 32KB 可保留在 VBAT 模式下。此功能可保护关键的运行时数据,例如传感器输入和算法状态变量。微控制器实现了错误报告模块 (ERM),以提供全面的错误报告和控制。ERM 捕获并记录来自 ECC 逻辑的错误事件,提供对内存子系统健康状况的可视性。开发人员可以利用这些错误信息进行诊断和预测性维护。
对于自我诊断,错误注入模块 (EIM) 提供在读取 ECC RAM 时注入错误的功能。此自检功能允许开发人员实施定期自检,以确保微控制器可靠运行。
除了 ECC,MCX A 系列还包括内存块检查器 (MBC),它为不同内存区域的读、写和执行权限提供运行时安全控制。通过定义内存访问策略,MBC 可以防止未经授权的内存访问。
MCX 错误纠正如何实现可靠的机器人技术
MCX 的纠错功能共同作用,提高移动机器人的可靠性和安全性。通过自动纠正闪存中的单位错误,MCX 可保持机器人控制固件的完整性。这种完整性可以防止机器人执行可能导致意外行为的错误控制逻辑。
MCX 配备了检测双位错误的功能,这对于确保其运行的安全性和可靠性至关重要。虽然无法纠正双位错误,但检测它们有助于防止使用损坏的指令或数据。当检测到双位错误时,机器人可以从容地进入安全状态,从而避免潜在的危险或故障。
MCX 的 ECC 将其内存保护功能从闪存扩展到 SRAM。MCX A 的 8KB RAMA0 SRAM 块集成了 ECC,而 MCX N 可以重新使用 RAMG 和 RAMH 进行 ECC 修正,提供高达 416KB 的 ECC RAM。ECC RAM 支持对运行时数据进行单位错误校正和双位错误检测。此功能可保护关键数据(例如传感器读数、控制输出和中间算法变量)免受单比特错误的积累,否则可能会导致机器人的感知、规划和控制逻辑不一致。通过维护此运行时数据的完整性,MCX 的 SRAM ECC 有助于确保机器人的态势感知和决策保持准确可靠。MCX N 还提供高达 32KB 的 ECC RAM,可保留在 VBAT 模式下,使数据在低功耗状态下仍能受到保护。
MBC 通过实施内存保护策略提供了额外的安全层。它可以阻止未经授权的内存访问,帮助控制故障,防止故障导致机器人行为失控。
最后,ERM 支持以数据为驱动的机器人维护方法。通过记录内存错误事件,ERM 提供了机器人电子设备健康状况的可见性。错误纠正率的上升可能预示着故障即将发生,从而可以对机器人进行前瞻性维护。
使用案例示例
考虑在工业环境中运行的移动服务机器人。机器人必须自主导航,在执行任务时避开障碍物和人员。
移动服务机器人
然而,工业环境充满挑战,设备会产生电磁干扰 (EMI)。随着时间的推移,EMI 可能会导致机器人内存中出现比特错误。
MCX 的 ECC 可检测并纠正电磁干扰引起的任何单位错误,确保机器人正确执行其控制逻辑。如果发生更严重的双位错误,MCX 将检测到并阻止使用损坏的数据。然后,机器人就可以启动安全关机。
在这些事件中,MCX 的 ERM 会记录错误发生情况。维护人员可以监控这些日志,注意任何表明潜在故障的趋势。通过主动维护机器人,可最大限度地减少停机时间,并确保安全。
MCUXpresso 开发人员体验
NXP 提供低成本的 FRDM 开发平台,以便利用 MCX 快速制作原型。FRDM 开发板采用标准外形尺寸和接头,可轻松访问 MCU I/O、板载 MCU-Link 调试器和 USB-C 电缆。
NXP 的 GitHub 还提供应用示例访问权限,可使用应用代码中心门户 (ACH) 进行访问。MCUXpresso IDE 和 MCUXpresso for VS Code 内置了 ACH 浏览功能,因此开发人员可以轻松搜索可用的演示和示例,并在直接加载项目以供使用之前按设备、应用技术或外设/功能进行筛选。
扩展板中心 (EBH) 是 NXP SDK Builder 网站的扩展,开发人员可在此找到一系列来自 NXP 及其合作伙伴的附加板,以扩展所选评估板的功能。该中心提供直观的过滤功能,可快速查找电路板和可用的支持软件。开发人员可将评估板与不同类型的屏蔽板配对,针对特定用例或应用进行快速原型开发。
恩智浦助力实现可靠、安全的移动机器人
随着移动机器人变得越来越自主,确保其可靠和安全的运行至关重要。如果不加以解决,具有挑战性的操作环境所引发的内存错误可能会导致意想不到的机器人行为。
NXP 的 MCX 微控制器产品组合具有纠错功能,能够满足可靠机器人的需求。从 ECC 保护的闪存和 SRAM 到运行时内存访问控制和错误事件记录,MCX 提供了多层针对内存错误的保护。
旨在优化可靠性和安全性的移动机器人设计人员应考虑 NXP MCX。其先进的架构和全面的功能集使其成为开发可靠自主机器人的强大平台。
