跳转至

时序扩展规范(Timing Extension)

1. 简介

1.1. 概述

本 AUTOSAR 文档包含 AUTOSAR 时序扩展的规范,并描述了用于为相应 AUTOSAR 平台创建时序模型的 AUTOSAR 元模型 [1] 的元素。它是通过 AUTOSAR 元模型对时序扩展的正式定义的补充。换句话说,除了正式定义之外,本文档还提供了与创建时序模型相关的 AUTOSAR 元模型部分的介绍性和原理。

1.2. 模板含义

所有 AUTOSAR 模板都使用通用元模型(meta-model),该模型使用统一建模语言 (UML) 定义。为了将时序信息集成到 AUTOSAR 元模型中,我们必须在两个可行的替代方案之间做出决定:一方面是扩展现有模板,另一方面是定义单独的时序模板。

经过多次讨论,我们决定明确不定义单独的时序模板。这种方法最有价值的优势在于当前模板组合背后的理念。它们高度适应 AUTOSAR 方法(有关 AUTOSAR 方法的更多详细信息,请参阅 [2]),并且多个模板处理该方法中的特定流程步骤。由于我们的范围不在于提供时序增强开发流程的提案,所以定义一个独立的新流程步骤(例如:时序流程步骤)也不在我们的范围内。我们的项目结果会对一些现有模板产生影响。因此增强现有模板而不是创建新的时序模板可以减少元模型中模板之间的依赖关系。

1.3. 范围

时序扩展的主要目的是支持构建满足给定时序要求的嵌入式实时系统,并在这些系统建立后对其进行时序分析/验证。

AUTOSAR 时序扩展为基于合同的开发过程提供了一个时序模型作为规范基础,其中开发由不同组织在不同地点和时间范围内进行。在项目早期阶段(当尚未开发相应的解决方案时)输入的约束应被视为开发合作伙伴之间商定的额外功能要求。这样,时序规范支持自上而下的设计方法。但是由于在大多数情况下,纯粹的自上而下的设计是不可行的。(例如:由于遗留代码),时序规范也允许自下而上的设计方法。

最终的总体规范(AUTOSAR 模型和时序扩展)应能够分析系统的时序行为,并根据时序约束验证分析结果。因此分析所需的时序属性应包含在时序增强系统模型中。例如:任务的优先级、中断的激活行为、PDU 和帧的发送方时序等。此类时序属性可在整个 AUTOSAR 中找到。例如:系统模板提供了配置和指定通信堆栈时序行为的方法。此外还可以指定可执行实体的执行时间。总体规范应提供描述时序约束的方法。时序约束定义了系统时序行为的限制(例如:限制从传感器采样到执行器访问的最大延迟)。使用 AUTOSAR 时序扩展将时序约束添加到系统模型中。在执行标称值/实际值比较时,在验证系统的时序行为期间,将考虑约束以及时序分析的结果。

注意:时序规范应能够分析和验证 AUTOSAR 系统的时序行为。但是,本文档未涉及分析和验证结果(例如 ECU 的最大资源负载等)的规范。

2. 基础知识

AUTOSAR 时序扩展提供了一些描述和指定时序信息的基本方法:时序描述(通过事件和事件链表达)以及施加于这些事件和事件链上的时序约束。时序描述和时序约束这两种方法都组织在时序视图中,用于特定目的。总的来说,时序扩展的目的有两个方面:第一个目的是提供时序要求,指导系统的构建,最终满足这些时序要求。第二个目的是提供足够的时序信息来分析和验证系统的时间行为。

事件(Event)

事件:事件是指系统中观察到事件发生的位置。AUTOSAR 时序扩展规范为此类可观察位置定义了一组预定义的事件类型。这些事件类型用于不同的时序视图,每个时序视图都对应于 AUTOSAR 平台视图之一:VFB 时序和虚拟功能总线 (VFB) 视图:

  • SW-C 时序和软件组件视图
  • 系统时序和系统视图
  • BSW 模块时序和基本软件模块视图
  • ECU 时序和 ECU 视图。

具体来说,这些事件用于指定:

  • 从特定 SWC 端口读取和写入数据
  • 调用服务并接收其响应(VFB、SW-C、系统和 ECU 时序)
  • 通过网络和通信堆栈发送和接收数据(系统和 ECU 时序)
  • 激活、启动和终止可执行实体(SW-C 时序和基本 SW 模块时序)
  • 调用基本软件服务并接收其响应(ECU 时序和基本 SW 模块时序)。

事件链(Event Chains)

事件链指定事件与其时间发生之间的因果关系。事件链的概念使人们能够指定两个事件之间的关系,例如,当事件 A 发生时,事件 B 也会发生,或者换句话说,当且仅当事件 A 之前发生时,事件 B 才会发生。在事件链的上下文中,事件 A 扮演刺激的角色,事件 B 扮演响应的角色。事件链可以由现有的事件链组成,也可以分解为进一步的事件链——在这两种情况下,事件链都扮演事件链片段的角色。

对事件施加的时间约束(Timing Constraints imposed on Events)

事件的概念用于描述系统中发生的特定事件以及在系统中观察到事件发生的位置。此外,事件触发约束对事件的发生施加了约束,这意味着事件触发约束指定了事件在时间空间中发生的方式。AUTOSAR 时间扩展规范提供了指定周期性和零星事件发生以及遵循特定模式(突发、具体和任意模式)的事件发生的方法。

对事件链施加的时间约束(Timing Constraints imposed on Event Chains)

与事件触发约束一样,对事件及其发生施加时间约束;延迟和同步时间约束对事件链施加约束。在前一种情况下,约束用于指定反应和年龄,例如,如果发生刺激事件,则相应的响应事件应不晚于给定的时间发生。而在后一种情况下,约束用于指定刺激或响应事件应在给定的时间间隔(容差)内发生,分别称为同时发生和同步发生。

额外的时间约束(Additional Timing Constraints)

除了对事件和事件链施加的时间约束之外,AUTOSAR 时间扩展还提供对可执行实体施加的时间约束,即执行顺序约束和执行时间约束。

这些基本概念勾勒出了元模型中的表述,并构成了后续章节描述的基础。

2.1. 时序行为的正式规范

与系统功能行为的规范相比,时序行为的规范需要捕获更多信息。不仅事件的最终发生,而且它们的确切时间或各种事件的并发性也变得很重要。因此,在 AUTOSAR 的时序扩展规范中,事件是基本实体。此事件用于指代系统在某个时间点的可观察行为。示例:(例如 RunnableEntity 的激活、帧的传输等)

必须处理不同的抽象级别和视图(参见第 3.1 章),并且为了避免与现有概念的语义混淆,引入了一种新的抽象类型 TimingDescriptionEvent(参见第 3.3.2 节)作为时序扩展的正式基础。根据模型实体和相关的可观察行为,定义特定的时序事件并将其链接到不同的视图。

对于系统时序行为的分析,通常不仅单个事件而且不同事件之间的关联都至关重要。为了将时序事件相互关联,引入了另一个概念,称为 TimingDescriptionEventChain(参见第 3.3.1 节)。在此,重要的是要注意,对于事件链的引用事件,隐式地假定了功能依赖性。这意味着链中的事件以某种方式导致后续链事件。第 3.1 章中的图 3.5 描述了具有总线通信的端到端事件链的示例。此事件链描述了从软件组件实例“SWC1”到软件组件实例“SWC3”的路径。

基于事件和事件链,可以表达从抽象类型 TimingConstraint 派生的各种特定时序约束。这些时序约束指定了预期的时序行为。由于时序约束应独立于实现细节有效,因此它们也通过引用上面介绍的 TimingDescriptionEvents 和 TimingDescriptionEventChains 的形式基础在抽象层面上表达。

因此,通过事件、事件链以及在此基础上定义的时序约束,可以提供单独的中央时序规范,将预期的时序行为与实际实施的行为分离开来。这种方法以自上而下和自下而上的方式支持 AUTOSAR 系统的时序契约。

建模

本章将介绍以下小节中时间扩展的元模型表示。