作者:Altaf Hussain
移动机器人的应用场景日益增多,覆盖工业自动化到服务型机器人等领域。保障移动机器人的操作安全可靠至关重要,因为它们承载的任务更加复杂,且运行环境不可控。
恩智浦新一代MCX系列微控制器助力应对机器人安全挑战。MCX MCU基于高性能Arm®Cortex®-M33内核,具有先进的错误检测和纠正功能,非常适合开发对可靠性和安全性要求极高的移动机器人。
移动机器人常见的可靠性和安全问题
移动机器人搭载的电子系统允许机器人感知周围环境、进行智能决策,并精确控制自身的动作。然而,移动机器人在执行任务时可能会面临极端温度、振动和电磁干扰等多种挑战,随着时间的推移,这些压力源会导致机器人的内存出现错误和损坏。考虑到移动机器人预期使用寿命较长,确保电子组件长期的可靠性至关重要。
工业机械臂
移动机器人的内存错误可能导致各种可靠性和安全性问题。机器人控制固件中的位翻转也可能导致执行错误的指令,进而引发意外行为。传感器数据损坏,可能导致解读错误,让机器人做出错误的决策。电机控制出错可能会导致机器人进行计划之外的运动,或者对机器人本身或其周围环境造成损害。
在安全关键应用中,例如在人类周围工作的移动机器人,此类故障可能带来严重的后果。为了确保移动机器人的操作安全可靠,必须采取严密措施规避内存错误。
利用边缘处理实现实时决策并增强自主性。了解恩智浦移动机器人解决方案。
MCX面向闪存和RAM的纠错功能
恩智浦MCX A系列微控制器包含几个关键功能,可用于检测和纠正内存错误。MCX A内置了高达128KB的闪存,具有纠错码(ECC)功能(MCX A参考手册,第4.5节)。MCX N系列闪存最高达2MB,带有ECC功能。闪存的每个128位字包含额外的9位ECC数据。
ECC是指在每个数据字旁边存储额外冗余位的技术。每次数据读取时,额外冗余位将重新生成ECC位,并与原先存储的ECC进行比较,从而验证数据的完整性。如果重新生成的ECC位与存储的ECC位不匹配,则意味着存在错误,ECC能够纠正该错误。单个比特出错时,ECC能确定具体的出错比特。但出现双比特错误时,ECC只能检测,不能纠正。
移动机器人示例
如果微控制器检测到ECC错误,则系统控制器(SYSCON)模块会生成总线故障或使用中断来处理该错误。灵活的故障处理能力允许开发人员根据自己的具体应用自定义处理方式。
MCX A还提供32KB的片上SRAM,其中有一个8KB的块(RAMA0)具有ECC功能,能够进行单错误纠正和双错误检测(SEC-DED——MCX A参考手册,第9.1.2节)。当配置为ECC时,MCX N系列提供高达416KB的RAM,在VBAT模式下,其中的32KB RAM可以保持数据不丢失。该功能可保护关键的运行时数据,如传感器输入和算法状态变量。微控制器中部署了一个错误报告模块(ERM),可提供全面的错误报告和控制功能。ERM从ECC逻辑捕获并记录错误事件,为监测内存子系统的健康状况提供清晰的视图。开发人员可以利用错误信息进行诊断和预测性维护。
错误注入模块(EIM)在读取具有ECC功能的RAM时具有注入错误的能力,可实现自我诊断。这种自检功能允许开发人员进行定期自检,确保微控制器的可靠运行。
除了ECC之外,MCX A系列还包括一个内存块检查器(MBC),为不同内存区域的读、写和执行权限提供运行时安全控制(MCX A参考手册,第45.1节)。通过定义内存访问策略,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支持基于数据驱动的机器人维护。它能够记录内存错误事件,实现机器人电子组件的健康状态监测。纠正错误的频率增加可能表明即将发生故障,机器人可得到主动维护。
应用场景示例
以在工业环境中工作的移动服务机器人为例。机器人必须自主导航,在执行任务时避开障碍物和人。
扩展板移动服务机器人
然而,工业环境可能具有挑战性,设备会产生电磁干扰(EMI)。这些干扰随时间累积,可能会在机器人的内存中引发比特错误。
MCX的ECC将检测并纠正由EMI引起的任何单比特错误,确保机器人正确执行其控制逻辑。面对更为严重的双比特错误,MCX也能够及时发现并阻止使用受损的数据,从而使机器人能够安全地进入关断状态。
在这些事件中,MCX的ERM将记录发生的错误。维护人员可以监测ERM日志,观察任何潜在故障的迹象。通过主动维护机器人,可以最大限度地减少停机时间,同时提高安全性。
MCUXpresso Developer Experience (MCUXpresso开发人员体验)
恩智浦提供了低成本的FRDM开发平台,可使用MCX快速进行原型设计。FRDM开发板具有标准规格和接头,便于连接MCU的输入/输出端口,并内置了MCU-Link调试器,带有USB-C线缆。
恩智浦的GitHub 还允许访问应用示例,可以使用应用代码中心门户 (ACH)访问这些示例。MCUXpresso IDE和MCUXpresso for VS Code内置了ACH浏览功能,开发人员可以轻松搜索可用的演示和示例,并在直接加载项目使用之前按设备、应用技术或外设/功能进行筛选。
扩展板中心 (EBH)是NXP SDK Builder网站的扩展,开发人员可以在其中找到恩智浦及其合作伙伴提供的一系列附加板,以扩展所选评估板的功能。 该中心提供直观的筛选功能,可快速查找板卡和可用的支持软件。开发人员可以将他们的板与不同类型的扩展板配对,以评估特定用例或应用程序并进行快速原型设计。
恩智浦赋能安全可靠的移动机器人
移动机器人自动化程度日益提高,确保其操作的可靠性和安全性变得尤为关键。如果忽视这一点,复杂的操作环境所引发的内存错误可能会导致机器人出现预期外的行为。
恩智浦的MCX系列微控制器具有纠错功能,可满足对可靠性有着严格要求的机器人。MCX系列不仅提供了ECC保护的闪存和SRAM,还包括了运行时内存访问控制和错误事件的日志记录,为内存错误构建了多重防护屏障。
对于致力于提升移动机器人可靠性和安全性的设计人员来说,恩智浦MCX值得考虑。恩智浦MCX具有先进的架构和全面的功能集,为开发可靠的自动机器人提供强大平台。
作者:
Altaf Hussain
恩智浦半导体运输与移动细分市场市场总监
Altaf在企业、服务提供商和工业应用的应用工程、产品营销和业务开拓方面拥有30多年的经验。他目前担任恩智浦运输与移动部门的负责人,该部门专注于移动机器人、机器视觉和仓库物流自动化领域。Altaf致力于制定系统解决方案,帮助客户借助自主移动机器人加速自动化进程。他拥有英国伦敦南岸大学的电气与电子工程学士学位