什么是嵌入式实时系统的确定性?简析EDMS中的确定性

描述

 

前言

ETAS Deterministic Middleware Solution(EDMS,前身为AOS) 确定性中间件解决方案,是一个中间件框架,旨在面向汽车领域内应用程序的独特挑战和需求,尤其是在高级驾驶辅助系统 (ADAS)和自动驾驶 (AD)的背景下,为开发人员提供了创建高性能和高安全性应用程序所需的工具、运行时环境和集成能力。

 

嵌入式实时系统中的确定性

什么是嵌入式实时系统的确定性

嵌入式实时系统中的确定性,是指系统行为在特定条件下的可预测性可重复性。在确定性系统中,给定相同的初始状态和输入,系统将始终产生相同的输出,并遵循相同的动作序列。可预测性在实时系统中尤为重要,必须在满足时间要求的前提下执行任务,并确保可靠且正确的操作。

什么是时间确定性

时间确定性是指系统行为相对于时间的可预测性和可重复性。当时序行为一致并且可以被精确预测时,系统被认为是时间确定的。

时间确定的系统行为所依赖的因素有:

1.固定的执行时间:

(Fixed Execution Time)

系统中的每个任务或进程都应该具有已知的固定执行时间。这确保完成任务所需的时间是一致的,并且可以预测。

2.可预测的任务调度:

(Predictable Task Scheduling)

系统中使用的调度算法应该是可预测的,任务的执行顺序应该是确定的。这有助于预测每个任务的执行时刻点和所需时长。

3.最低的中断延迟:

(Minimal Interrupt Latency)

中断是可以抢占系统正常执行流的事件。在确定性系统中,中断延迟(中断发生和处理开始之间的时间)应最小化并可预测。

4.一致的硬件性能:

(Consistent Hardware Performance)

系统的硬件组件,包括处理器、内存和外围设备,应表现出一致和可重复的性能特征。硬件行为的可变性将会导致不确定的系统行为。

5.实时时钟精度:

(Real-time Clock Accuracy)

系统中使用的实时时钟的精度是一个重要环节。确定性系统需要稳定的时钟源,并提供精确的计时,以确保精准的时序测量和任务调度。

6.确定性通信:

(Deterministic Communication)

在组件之间需要通信的系统中,通信协议应设计为具备确定性。其中包括有保证的递送时间、有限的通信延迟和最小的抖动。

7.资源预留和分配:

(Resource Reservation and Allocation)

采用资源预留机制,比如为特定任务分配固定的时隙,可以确保任务在已知的时间范围内接收所需的资源,进而有助于确定性行为。

8.避免非确定性延迟:

(Avoidance of Non-deterministic Delays)

为保持确定性行为,应尽量减少或谨慎管理非确定性延迟,例如不可预测的I/O访问次数,或等待外部事件。

实现时间确定的系统行为是极为复杂的,但对于汽车控制系统、航空电子设备、医疗设备和工业自动化等领域,时间精度对安全和性能意义重大。

什么是数据确定性

数据确定性是指系统行为在数据处理方面的一致性和可预测性。具体而言,这意味着给定相同的输入数据集,并假设在相同的初始条件和执行环境情况下,系统将一致且可预测的产生相同的输出

嵌入式实时系统中所谓的数据确定性,包含如下方面:

1.一致的数据处理:

(Consistent Data Processing)

嵌入式系统通常处理传感器数据、控制信号及其他类型的输入。数据确定性确保了对此类数据处理的一致性,从而在相同情况下对相同输入产生相同结果。

2.确定性算法:

(Deterministic Algorithms)

用于数据处理的算法应设计为具备确定性。假使系统依赖于非确定性算法,则即使在相同的输入数据下,结果也可能不同,会引入不确定性,难于满足实时约束条件。

3.避免不确定元素:

(Avoidance of Non-deterministic Elements)

不确定元素(如随机数生成器、异步外部事件或不可预测的中断处理),会在数据处理中引入可变性。在嵌入式实时系统中,通常试图最小化或谨慎管理上述不确定元素。

4.可复现性:

(Reproducibility)

可复现性是数据确定性的关键特性之一。在需要测试、调试或验证系统的场景中,数据确定性的系统行为能够实现一致的复现、诊断和验证问题。

5.实时约束:

(Real-time Constraints)

满足实时约束不仅需要确定的时序行为,还需要确定的数据处理。例如在控制系统中,决策基于传感器数据,数据处理的确定性对于在指定的时间范围内实现正确的系统响应至关重要。

6.确定性通信协议:

(Deterministic Communication Protocols)

嵌入式系统中组件之间的通信可能涉及数据交换。使用确定性的通信协议可以确保可靠且可预测的传输和接收数据,将有助于实现整个系统层面的确定性。

7.验证和确认:

(Validation and Verification)

在安全关键型应用中,验证和确认过程依赖于数据处理的可预测性和一致性,确保数据确定性关乎于证明系统的正确性。在嵌入式实时系统中实现数据确定性需要仔细考量软件和硬件两方面,这需要将算法、数据结构和通信机制设计为具备确定性,并且通常还会涉及处理系统中的不确定性来源。

EDMS中的确定性

使用EDMS构建的ADAS/AD系统引入了数据确定性这一概念,因为系统行为在数据处理方面的一致性和可预测性,对于验证系统的正确性有突出的意义。

下面将分别介绍ETAS确定性中间件,EDMS中的调度机制,以及确定性重算如何加速ADAS/AD开发。

EDMS中的调度机制

——在延迟和可预测性之间实现最优权衡

什么是调度

在汽车嵌入式软件这个范畴,调度是指对于需要由嵌入式系统执行的任务和进程,确定执行顺序和时间的过程。汽车嵌入式系统通常具有严格的实时要求,必须在特定的时限内完成任务,以确保车辆功能的正常运行。

为什么需要调度

汽车嵌入式软件中的调度对于确保系统的安全性、可靠性和可预测性有着重要意义。调度有助于满足各种汽车应用程序所附加的时间约束,适当的调度技术对于确保关键任务在特定时间内执行,以及系统在所有操作条件下的可靠运行来说是至关重要的。

数据驱动型调度

数据驱动调度是一种基于数据和运行时信息做出任务执行决策的方法,而不是仅仅依赖于预定义的优先级和固定的调度表。

嵌入式系统

时间驱动型调度

时间驱动调度是一种基于预定义调度表来执行任务的调度方法,通常在运行之前就已确定。在时间驱动的调度中,任务被分配特定的时隙或间隔,在这些时隙或间隔内,期望任务被执行。

嵌入式系统

ADAS/AD功能的典型架构 

大量传感器(例如摄像头、雷达、激光雷达、超声波传感器)产生高负载的测量数据。

处理传感器数据,检测和提取对象,并将数据传输到坐标系。这期间需要使用带有微处理器(uP)和硬件加速器(HWA)的系统级芯片(SoC)

之后对预处理的传感器数据进行融合(Sensor fusion),形成周围空间的整体画面。并以此,计算驾驶场景(Planning)

最终在激活执行器之前,同步计算得出的驾驶动作。这通常需要基于微控制器(uC)

嵌入式系统

选择最佳调度机制 

基于ADAS/AD系统的架构,不同的子系统对其调度有不同的要求:

包括特征提取的感知是传感器驱动的。对于此类任务,事件驱动型调度最适合,可以提供低延迟。

传感器数据融合和规划是执行器驱动的。对于此类任务,时间触发激活最适合,因为可以确保执行的高可预测性,这对于预期功能的安全性(SOTIF)至关重要。

嵌入式系统

基于EDMS的系统中的调度

为了满足ADAS/AD系统的调度需求,EDMS支持时间和数据两种类型触发的活动(Activities)

嵌入式系统

确保数据一致性

为了确保数据一致性,EDMS实施了如下概念:

活动开始时冻结输入数据:活动的输入数据是固定的,并且在活动开始后保持不变。

延迟到活动结束时输出数据:活动生成的输出数据将被保留,并且在活动完成之前不会对外释放。

一个活动中的全部数据或无数据对另一个活动可见:活动之间的数据可见性遵循全有或全无的方式,这意味着一个活动的所有数据都可以被另一个活动访问,又或者是任何数据都不能被访问。

如果活动正在运行,则延迟激活(无并行执行):如果当前有另一个活动正在运行,活动的激活将延迟,以确保活动不会并行执行。

基于EDMS的系统的特性

基于EDMS的系统在延迟和可预测性之间提供了最优折中,

状态比纯数据驱动的系统少得多:与纯数据驱动的系统相比,基于EDMS构建的系统具有明显少的可能状态。

延迟比纯时间驱动的系统低得多:基于EDMS构建的系统中的延迟比完全由时间驱动的系统要低很多。

基于EDMS的系统中的确定性

由于调度和计算的抖动,活动组成的系统不是完全时间确定的:调度和计算的抖动在系统中引入了非时间确定性行为。

然而,基于EDMS的系统能够对以下方面提供可复现的行为:

软件锁步(实时):系统可以在运行中实现同步、锁步执行软件中的活动(软件锁步)。

完全相同的重新计算:系统可以通过重算来复现完全相同的结果,确保开发相关场景的一致性,例如使用取证重算(Forensic Recompute)或验证,进行问题分析和调试。

确定性重算和仿真驾驶

——加速AD开发的革命性概念

嵌入式系统

自动驾驶(AD)系统在充满挑战的复杂地形中导航,开发和测试依赖精度和可靠性。具有革命性的“确定性重新计算”(Deterministic Recompute),配合具有创新性的“仿真驾驶”(Virtual Drives),为验证阶段面临的难题提供了强大的解决方案。

确定性重算和仿真驾驶

重算的核心任务,是由AD系统处理已记录的或人工生成的数据。确定性重算能够保证在给定相同输入的情况下,输出保持一致。基于这一功能特性,仿真驾驶提供了一个模拟环境来复制真实世界的驾驶场景,创建一个用于测试的受控数字空间,而无需进行广泛的真实道路验证。

ROS中的非确定性行为

机器人操作系统(Robot Operating System, ROS)是一个开源中间件框架,旨在开发机器人系统。在自动驾驶应用领域,ROS通常用于预开发车辆系统的各个组件,如感知系统(摄像头、激光雷达、雷达)、控制系统或路径规划算法。

嵌入式系统

虽然ROS提供了开发ADAS/AD系统所需的诸多关键功能,但使用相同的输入数据进行重新计算,系统可能会输出不同结果。

EDMS中的确定性行为

作为ETAS确定性中间件解决方案,EDMS是专为ADAS/AD系统的开发而设计的。

嵌入式系统

使用相同的输入数据重新计算将提供相同结果。

确定性与非确定性系统行为示例对比

确定性重新计算的应用

通常来说,确定性重新计算有三个主要应用:

问题分析/调试(Problem Analysis / Debugging)

功能开发(Function Development)

基于仿真的验证(Simulation-based Validation)

嵌入式系统

问题分析/调试:

在发生现场问题时,确定性重算和仿真驾驶的联合使用,允许开发人员在其桌面电脑的开发环境上即可复现问题缺陷。这种取证功能简化了问题调查,有助于调试和快速故障定位。

功能开发:

在仿真驾驶的环境下,确定性重算使开发人员能够快速分析新功能以及软件更改,缩短反馈周期并加速开发过程。这种组合确保了与虚拟环境的无缝集成,以进行精确测试。

基于仿真的验证

持续验证依赖于稳健的回归测试。确定性重算和仿真驾驶协作,以便于对每个软件更改进行大规模、可重复的回归测试。这不仅确保了软件可靠性,还可与更广泛的验证和确认(V&V)策略无缝协同。

确定性重算和仿真驾驶的意义

在安全关键型的汽车行业,遵守ISO 26262和ASIL–D标准是毋庸置疑的。确定性重算和仿真驾驶全面解决了这一需求。实时执行,配合大量数据的处理和长时间的记录,这些都是仿真测试不可或缺的工具。

确定性重算和仿真驾驶协同的意义将不仅限于满足仿真测试的要求。通过再现系统内部数据取代了存储大量数据集,不仅优化了测试过程,还最大限度的减少了数据存储需求,在加速AD系统开发领域这是一个关键里程碑。



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分