利用MCX的错误校正功能设计可靠且安全的移动机器人
真正的自主移动机器人曾经是科幻小说中的产物,但随着处理、感知和控制技术的最新进展,它们离现实越来越近。然而,这项技术面临的一个主要障碍是,机器人在处理操作中出现错误时,自我纠错的能力。本篇文章探讨了恩智浦(NXP)的MCX微控制器(MCU)如何利用先进的错误校正功能,使移动机器人变得更加安全和可靠。
移动机器人在越来越多的应用中得到广泛使用,从工业自动化到服务机器人领域。这些机器人执行更复杂的任务并在非受控环境中运行,因此确保其可靠且安全的操作至关重要。
NXP 最新的 MCX 微控制器产品组合有助于解决这些挑战。基于高性能的 Arm® Cortex®-M33 内核,MCX 微控制器集成了先进的错误检测和校正功能,非常适合开发需要高可靠性和安全性水平的移动机器人。
移动机器人中的常见可靠性和安全问题
移动机器人在很大程度上依赖其车载电子设备来感知环境、做出决策并控制其行为。然而,由于温度极端、振动和电磁干扰等各种因素,其运行条件可能会相当严峻。这些压力因素可能随着时间的推移导致机器人内存中的位错误和数据损坏。因此,我们需要考虑电子设备的长期可靠性,因为移动机器人通常被期望拥有较长的运行寿命。
工业AMR
图 1
内存错误可能会导致移动机器人出现各种可靠性和安全性问题。机器人控制固件中的位翻转可能会导致其执行错误的指令,从而引发意外行为。损坏的传感器数据可能会被误解,导致机器人做出错误的决策。错误的电机控制输出可能会导致意外的运动,甚至可能损坏机器人或其周围环境。
在诸如在人群附近运行的移动机器人等安全关键型应用中,此类故障的后果可能是严重的。移动机器人需要强大的内存错误防护机制,以确保可靠和安全的运行。
用于闪存和RAM的MCX错误校正功能
NXP MCX A 系列微控制器集成了多个关键功能来检测和纠正内存错误。MCX A 嵌入了最高达 128KB 的具备错误校正编码(ECC)功能的闪存。MCX N 系列则具有最高达 2MB 的具备 ECC 的闪存。每 128 位的闪存字包含额外的 9 位 ECC 数据。
ECC是一种为每个数据字存储冗余位的技术。这些冗余位通过在每次读取操作中重新生成ECC位并将其与存储的ECC进行比较来帮助检查数据完整性。如果重新生成的ECC位与存储的ECC位不匹配,这意味着存在错误,ECC可能能够纠正该错误。在单比特错误的情况下,ECC还可以确定哪个比特是错误的。然而,它只能检测双比特错误,而无法纠正它们。
移动机器人示例
图 1
如果微控制器检测到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 提供了对机器人电子设备健康状况的可见性。校正错误率的上升可能表明即将发生故障,从而能够让机器人得到提前维护。
示例用例
考虑一个在工业环境中运行的移动服务机器人。机器人必须自主导航,在执行任务的同时避开障碍物和人群。
移动服务机器人
图 1
然而,工业环境可能具有挑战性,设备会产生电磁干扰(EMI)。随着时间的推移,EMI可能会在机器人存储器中引发位错误。
MCX 的 ECC 会检测并纠正由 EMI 引起的任何单比特错误,确保机器人能够正确执行其控制逻辑。如果发生更严重的双比特错误,MCX 会检测到该错误并阻止使用受损数据。随后,机器人可以启动安全关机程序。
在这些事件中,MCX 的企业风险管理(ERM)将记录错误发生情况。维护人员可以监控这些日志,观察是否有任何趋势表明潜在故障。通过主动维护机器人,可以将停机时间降至最低,并保持安全性。
MCUXpresso 开发者体验
为了快速使用MCX进行原型开发,NXP提供了低成本的FRDM开发平台。FRDM开发板具有标准的外形尺寸和接口,引脚易于访问MCU的I/O,还配备了板载的MCU-Link调试器和一根USB-C数据线。
NXP 的 GitHub 同样提供了应用示例,可以通过 Application Code Hub 门户 (ACH) 访问。MCUXpresso IDE 和 MCUXpresso for VS Code 内置了 ACH 浏览功能,因此开发人员可以轻松搜索可用的演示和示例,并可根据设备、应用技术或外设/功能进行筛选,然后直接加载项目以供使用。
扩展板集线器 (EBH) 是 NXP 的 SDK Builder 网站的一个扩展功能,开发者可以在此找到来自 NXP 及其合作伙伴的各种附加板,以扩展所选评估板的功能。该集线器提供直观的筛选功能,便于快速查找板卡并定位可用的支持软件。开发者可以将其评估板与不同类型的扩展板(shields)配对,以便针对特定的使用场景或应用进行评估和快速原型开发。
NXP助力实现可靠且安全的移动机器人技术
随着移动机器人变得更加自主,确保其可靠和安全的运行至关重要。如果不加以解决,由具有挑战性的操作环境引发的内存错误可能会导致机器人出现意外行为。
NXP 的 MCX 微控制器产品组合通过其错误校正功能,可以很好地满足可靠机器人技术的需求。从配备 ECC(错误校正码)保护的闪存和 SRAM,到运行时内存访问控制和错误事件记录,MCX 提供了多重内存错误保护层。
致力于优化可靠性和安全性的移动机器人设计者应考虑使用NXP MCX。其先进的架构和全面的功能集使其成为开发可信赖的自主机器人的一大强有力平台。
文章标签