可以手动操纵车身的机器人装有多个安全防护装置,以保护工人。已经开发出新的软件体系结构,以使这些系统可靠且易于管理。
穆罕默德·沙菲克 | 导师图形•嵌入式系统部门。
工业自动化行业正在迅速利用当今的异构多核片上系统(SoC)架构。这些多核环境通过组合由单独的处理器处理的功能并将它们放在单个多功能SoC(片上系统)中,从而帮助降低了运营和维护成本。
但是,当以这种方式在SoC上组合功能时,可能会出现问题:每个功能都可能有竞争的要求-以安全认证,实时响应,丰富的UI / HMI和网络连接功能(仅举几例)的形式稀缺资源。但是,有多种方法可以使用虚拟机监控程序,ARM 信任区或多核框架等技术在单个硅片上隔离离散功能。要了解这些方法,研究示例可能会有所帮助。因此,请考虑在IIoT(工业物联网)工厂环境中使用由自动化机械臂组成的混合安全关键应用程序的情况。
传统的嵌入式控制系统在设计时仅考虑了一个处理器和一个功能。如今,嵌入式系统通常包含多个离散处理器。以工业机械手为例。除了机械臂本身之外,它还包括一个电子控制单元和HMI(人机界面)显示器。 HMI通过编写一系列无需人工干预即可进行的移动(脚本)来实现手动操作或移动。
机械臂控制器处理HMI和过程控制,并实现安全输入/互锁。这些联锁装置可用于在紧急情况下关闭手臂,并可进行编程以从各种类型的传感器(例如,接近开关,压力传感器和安全梁)获取输入。 IIoT连接意味着机器人与外部网络连接。因此,可以并入一个附加处理器来执行网络通信并处理防火墙和各种其他相关活动。
请务必注意,每个机械手臂功能都有不同的处理需求。因此,它需要不同类型的处理器。让我们确定和/或解释这些需求:
•HMI /操作员控制台:处理器应该是具有丰富图形支持的高端应用处理器,例如带有GPU的ARM Cortex-A。
•流程控制器:这是具有用例特定功能的相对高端的处理器。例如,如果主要功能涉及像在图像处理中那样处理大量数据,则可以是DSP。该控制器可以是ARM Cortex-A,Cortex-R或DSP内核。
•安全控制器:需要相对低端的处理器,因为其唯一目的是执行安全互锁。这可能是ARM Cortex-R或Cortex-M。在此处理器上运行的软件通常需要通过安全认证,例如IEC 61508。
•网络控制器:处理器可能具有一些其他网络通信功能,例如,用于与其他物联网节点通信的无线电或通信接口。这可以是ARM Cortex-A或Cortex-M设备。
这是一个工业机器人的相当简单的视图。该设计将需要多处理器PCB或多块PCB,定义处理器之间的通信体系结构,并在硬件和软件级别进行集成测试。
嵌入式多核
在过去的几年中,多核SoC激增了。但是,嵌入式空间中的多核并不完全与计算性能有关。在某些明显的情况下,嵌入式系统可以使用更多的计算能力,例如网络吞吐量或丰富的图形。但是,在大多数情况下,嵌入式系统的设计都擅长于其他因素,例如可靠性,响应能力,实时行为,安全性,安全性,功耗,低成本和低维护成本。
因此,可以说嵌入式多核技术的主要驱动因素是功能的融合。这里的融合意味着将技术的不同形式/组成部分组合为一个实体。在机器人示例中,如果单个多核处理器可以处理上面概述的四个功能,则可以节省大量成本。
融合的另一个好处是简单的软件体系结构,其中各种功能可以使用处理器间通信(IPC)机制相互通信。与在分立处理器之间实现复杂的通信协议相比,这要简单得多。与多个分立处理器相比,单个多核处理器还需要更少的功率,并且支持电路也更少。而且,不需要时可以关闭各个内核。
多核融合的关键挑战是保持每个离散功能的个性。例如,当查看机械臂场景时,用作安全控制器的处理器不需要太多的计算能力。最重要的要求是可靠地从安全传感器读取数据,并在需要时驱动相关的执行器。执行安全功能的代码通常要遵循合规性要求(工业标准为IEC 61508,汽车标准为ISO 26262)。另一方面,HMI /操作员控制台需要具有更高计算能力的环境,以支持丰富的图形框架或多媒体功能,而没有安全要求。
如果要使用一个多核处理器来实现安全控制器和HMI /操作员控制台功能,则需要强大的分隔或可以创建不同执行上下文的分区机制。安全控制器的一个高优先级上下文和HMI的另一个优先级上下文(不太重要)。确保运行HMI的非关键代码绝不会干扰或阻止安全控制器的任何功能,这一点很重要。
各种技术选项可以实现这种分隔。

嵌入式管理程序:A 管理程序 是一个软件组件,可以在硬件之上创建抽象,并允许多个来宾操作系统同时并行运行。虚拟化技术或虚拟机管理程序的使用已经成为桌面和服务器域的融合促成因素。虚拟化扩展可在多核SoC上使用,因此当然可以考虑使用它。

多核框架:可以为运行在非对称多处理(AMP)配置中的处理核分配单独的功能。多核框架有助于生命周期管理,并有助于促进各个参与的核之间的通信,这可能是有用的。
ARM 信任区: 信任区 是一项基于硬件的功能,正常运行的软件被阻止直接访问安全的世界资源。带有TrustZone的ARM处理器可以从单个内核或多个内核同时运行安全操作系统(安全世界)和正常操作系统(正常世界),从而实现一种分区。

这些组件会使设计看起来有些复杂和压倒性。但是好消息是,有嵌入式软件供应商可以提供帮助。半导体供应商的多核SoC和Mentor Graphics等公司的嵌入式软件平台提供了支持融合的软件技术组件,这些组件经过了预先测试,加固,认证,并提供长期支持和维护选项。通常,这些平台还打包有必需的工具,以使所有这些工作正常进行。
为了说明使用嵌入式软件平台的嵌入式多核支持和融合,让我们继续以自动化机械手为例。
在机械臂移动时,应远离人类,以防止发生危险情况。因此,工业机器人经常使用安全光束互锁装置,其中激光束会束缚机器人工作区域的入口。任何人进入该区域都会阻挡安全光束,使机械臂停下来并将其锁定到安全位置。此外,系统还会在HMI /操作员控制台上生成警报,以便操作员可以采取纠正措施。

在这种情况下,三个主要组件是机械手臂操作(过程),HMI /操作员控制台和安全横梁。构建该系统的传统方法是使用一个离散处理器来驱动HMI /操作员控制台,一个处理器来控制机械臂,一个处理器来实现安全域。但是,让我们采用多核方法。
首先,我们选择NXP i.MX6同质四核处理器来实现该系统。在此设计中,每个TrustZone分隔的分区都运行Nucleus实时操作系统(RTOS)的独立实例。 Nucleus使用ARM 信任区技术和基于OpenAMP的多核框架进行生命周期管理,并实现安全世界与正常世界之间的通信。
世界安全Nucleus应用程序负责运行安全光束并在HMI /操作员控制台上渲染安全图形。这称为安全域,由附近图中的红色虚线和阴影框表示。因此,每当安全世界Nucleus检测到安全光束障碍时,它都会向机器人发送命令以停止移动并进入警报状态。安全光束的实时状态和警报状态在HMI /操作员控制台上显示为动画。
普通的世界Nucleus应用程序用于用户界面来驱动机器人并控制其运动。该应用程序还提供有关机器人运动的信息。
需要注意的有趣一点是,安全的和普通的Nucleus应用程序都写入单个显示单元(HMI /操作员控制台)。此实现使用分层的图形体系结构,其中安全图形覆盖在非安全图形之上。由于ARM 信任区安全世界比普通世界具有更高的优先级,因此即使非安全或正常世界发生故障或损坏,安全功能也始终可用。
因此,实际上,我们只有一个i.MX6 SoC,可以同时实现丰富的图形,实时控制和安全功能,而不会损害任何这些离散功能(例如,充当安全控制器和HMI /操作员控制台)。
当今有许多可用的多核同类和异构SoC,它们可以融合并结合嵌入式软件功能。融合的软件架构带来了显着的优势并节省了成本。虚拟机管理程序,多核框架和ARM 信任区等技术组件可帮助维护组合的离散功能的个性,并提供所需的隔离。为了缩短产品上市时间并简化维护,值得一看的是从可信赖的软件供应商那里预购多核嵌入式软件平台,以补充当今更为复杂的SoC。
参考文献