1 文档范围(Scope of this document)
本文档简要介绍了硬件测试管理(Hardware Test Management)概念在标准 AUTOSAR 软件平台中的集成。它可作为那些希望按照 AUTOSAR 方法和过程实现硬件测试管理启动与关闭模块(作为 AUTOSAR BSW 模块)的人员的用户指南。
HTMSS 模块本身的需求在 HTMSS SRS 和 SWS 文档中描述。
本文档主要内容:
- 在基于 AUTOSAR 的 ECU 中集成硬件特定测试的主要特性描述;
- 对 AUTOSAR 架构和解决方案的影响;
- 受影响模块的需求定义,以便在标准 AUTOSAR 软件序列及其在 ECU 软件中的相应行为中集成 HTMSS。
1.1 限制(Limitations)
无。
2 目标(Objective)
每个 ECU 设计为在给定系统架构的上下文中提供预定义的功能。因此,ECU无故障运行极为重要,这可以通过简单监控预期故障来避免或在故障出现前检测到。监控 ECU 可操作性的一种策略是执行检查给定逻辑和条件的测试,并保存结果供进一步分析。
HTMSS 概念描述了应对此类测试结果的需求,并按需提供其状态。
该测试和监控活动集应当提供所需的诊断覆盖范围(针对潜在故障),以满足 ISO 26262 第 5 部分第 8 章对硬件架构指标的要求。
图 1:安全状态的维护
故障发生 ──→ 故障检测(预设时间)──→ 通知软件组件
│
▼
反故障反应
│
▼
维持安全状态
测试和监控设施的目标是保证在预定义时间间隔内执行故障检测(参见图 1)。故障检测后,相关的软件组件应当采取必要的行动;应用反故障反应以维持安全状态。
本文档提供了在标准 AUTOSAR 环境中集成启动与关闭测试的通用用例和需求。
3 目的(Goal)
在基于 AUTOSAR 的系统开发期间,应当考虑一种技术方法,用于在标准 AUTOSAR 中集成半导体厂商特定的测试。
目标是标准化可访问的接口,使用微控制器特定测试包(可能是非 AUTOSAR 软件模块),并集成到 AUTOSAR 系统中,该系统配置测试、触发测试执行并收集测试结果。因此,本概念引入了一个名为 HTMSS 的 BSW 模块来实现其功能。
4 动机(Motivation)
HTMSS 概念的动机是支持系统对给定功能可信性的感知。例如,资源可用、处于操作条件下且未检测到故障。即使检测到某些故障,系统仍可能能够执行某些活动并信任其结果。系统对这些故障的反应确定性必须基于系统分析和推荐实现。HTMSS 概念应当提供支持以实现此感知。收集多个测试的结果可以提供系统资源条件和方面的实际情况。
该概念应当满足以下需求:
- 应当能够在 AUTOSAR 之前运行测试;
- 应当能够在 AUTOSAR 启动和关闭时运行测试,并传播其结果;
- 测试结果应当被传播以供后续分析。
5 用例(Use Case)
在安全关键系统的上下文中,对潜在故障的诊断对于实现功能安全目标至关重要。它需要集成测试、执行和结果传播,与预期功能并行。这意味着有必要在系统服务层引入一个新组件——一个名为硬件测试管理器(HTMSS)的基础软件模块。它实现测试和监控编排,并将结果传播给利益相关者软件组件。
图 2:硬件测试管理器 — 用例概念
MSTP (µC Hardware BIST / µC Safety Library)
│
▼
HTMSS ────→ Safety SW-C ──→ Functional Degradation/Limp Home
│
▼
Custom Integrator Code
隐式故障报告:
- MCU 复位 / AUTOSAR 未启动
- 由于关键故障,AUTOSAR 在 HTM 初始化前停止
硬件测试应当与整体系统行为协调执行。它们不应负面影响预期功能。这是对需要执行的测试点进行精确选择的原因。通常测试分为两个基本组:
- 非破坏性测试——执行此类测试后,被测项目可以恢复到其先前的状态(执行前),无需对项目或系统进行完全重新初始化。
- 破坏性测试——执行此类测试后,被测项目无法恢复到已知的操作状态,除非对项目或整个系统应用严重的初始化程序。
系统中的故障影响需要考虑。一些故障(通用核故障、RAM 测试故障),此处称为关键故障,会使系统启动变得无意义。相反,MCU 可以保持在持续复位状态,或另一种静默模式,禁止其启动。所有其他检测到的故障由负责维护安全状态的相应应用软件组件识别。
诊断测试执行不应在 MCAL 的 Init() 函数中执行,它们应当在 Init() 函数执行之前执行:
- 通过 MCAL 诊断接口;
- 通过 µC Safety Library 支持。
6 约束与假设(Constraints and assumptions)
HTMSS 目标是为收集和报告特定硬件模块或外设的运行状态提供必要的环境和基础设施。运行状态是对这些硬件模块和外设测试评估的结果。基本上,根据其对系统/微控制器的影响,这些阶段执行两种类型的测试:破坏性和非破坏性。
该概念要求使用的微控制器具有在执行破坏性测试期间在专用内存地址/寄存器中维护测试结果完整性的能力。测试结果可供 HTMSS 访问。在硬件模块发生严重故障(核或 RAM/ROM 故障)的情况下,通过 MSTP 检测,可以决定不继续执行后续软件。在这种情况下,系统必须进入安全状态。持续复位被视为安全状态。MSTP 负责维护安全状态。MSTP 设计和实现由微控制器供应商提供。
计划在 AUTOSAR 初始化中执行的测试可以由微控制器供应商(微控制器特定测试)或系统集成商设计和实现(ECU 功能特定测试)。它们由 HTMSS 自身进行编排和评估。
7 缩略语与缩写(Acronyms and abbreviations)
| 缩略语 | 说明 |
|---|---|
HTMSS | Hardware Tests Management Start up and Shutdown(硬件测试管理启动与关闭) |
DEM | Diagnostic Event Manager(诊断事件管理器) |
ECU | Electronic Control Unit(电子控制单元) |
BIST | Built-In Self Tests(内建自检) |
CDD | Complex Device Driver(复杂设备驱动) |
MSTP | Microcontroller Specific Test Package(微控制器特定测试包) |
8 相关文档(Related Documents)
- [1] ECU 状态管理器规范(
AUTOSAR_SWS_ECUStateManager.pdf) - [2] MCU 驱动规范(
AUTOSAR_SWS_MCUDriver.pdf) - [3] BSW 模式管理器规范(
AUTOSAR_SWS_BSWModeManager.pdf) - [4] 硬件测试管理启动与关闭规范(
AUTOSAR_SWS_HTMSS.pdf)
在实现 HTMSS 和受影响模块中的相关扩展需求以保证 AUTOSAR 软件平台兼容性时,应当考虑其他 AUTOSAR 通用规范。
9 HTMSS AUTOSAR 集成方法(HTMSS AUTOSAR integration approach)
硬件测试管理启动与关闭提出了在 AUTOSAR 软件环境中集成微控制器特定测试包(MSTP)的方案。标准 AUTOSAR 模块与 MSTP 之间的交互通过在 BSW 服务层中引入新模块 HTMSS 来管理。
HTMSS 的基本功能:
- HTMSS 模块的初始化(包括 MSTP 模块,如果需要);
- 基于 HTMSS 模块配置,配置 MSTP 测试的接口;
- 启动 MSTP 测试执行的接口;
- 将 MSTP 测试结果收集并提供给所需模块和应用 SW-C,以评估结果并采取相关决策。
为实现功能集成,需要扩展某些 AUTOSAR 标准模块,特别是 ECU 状态管理器的 UP 阶段和 DOWN 阶段。
10 HTMSS 特性描述(HTMSS Feature Description)
[FS_HTMSS_00001] AUTOSAR 应当提供一种标准化的安全机制来集成微控制器特定的硬件测试。
| 类型 | Draft |
|---|---|
| 描述 | AUTOSAR 应当提供一种机制,用于收集启动与关闭阶段执行的微控制器特定测试、评估测试状态并将其提供给利益相关者 SW-C。 |
| 理由 | 硬件测试的失败可能导致进入安全状态。 |
| 用例 | 例如,关键硬件资源测试确定 MCU 的健康状况。 |
| 依赖 | 无 |
| 支持材料 | 无 |
11 AUTOSAR 架构解决方案(AUTOSAR Architecture solution)
启动与关闭的硬件测试管理集成需要功能扩展几个 BSW 模块,并在 BSW 层中引入新模块 HTMSS。
新模块 HTMSS 应当满足以下功能需求:
- 与微控制器特定测试包(Microcontroller Specific Test Package,MSTP)交互;
- 收集 MSTP 测试结果;
- 将结果提供给相关 BSW 模块和应用 SW-C。
HTMSS 与 MSTP 之间的接口应当是厂商特定的,可以通过 AUTOSAR 开发过程中实现的 MSTP wrapper 处理。
图 4:HTMSS 在 AUTOSAR 架构中的概览
┌─────────────────────────────────┐
│ 应用层 SW-C │
├─────────────────────────────────┤
│ RTE │
├─────────────────────────────────┤
│ Services │
│ ┌─────┐ ┌────┐ ┌──────┐ │
│ │EcuM │ │BswM│ │ HTMSS│◄──┼─→ MSTP(厂商特定)
│ └─────┘ └────┘ └──────┘ │
├─────────────────────────────────┤
│ ECU Abstraction │
├─────────────────────────────────┤
│ MCAL(MCU 驱动等) │
└─────────────────────────────────┘
▼
硬件
12 AUTOSAR 软件架构中的集成需求(Integration requirements in AUTOSAR SW architecture)
本节描述了为在标准 AUTOSAR 模块中集成 HTMSS 模块和相应的微控制器特定测试包,必须在受影响的 AUTOSAR 模块中实现的基本需求。
在此上下文中受影响的 AUTOSAR 模块:
- ECU 状态管理器——EcuM UP 和 DOWN 阶段的扩展;
- BSW 模式管理器——shutdown target 的扩展;
- MCU 驱动——复位原因的扩展。
12.1 ECU 状态管理器(ECU state manager)
EcuM 模块需要按以下方式扩展以将 HTMSS 纳入 AUTOSAR 软件环境:
扩展需要满足以下建议的功能集成方法:
- EcuM 启动阶段应当准备 HTMSS 和 MSTP 模块并执行启动测试;
- EcuM DOWN 阶段应当在由 BswM 触发的 shutdown target 序列流中集成 HTMSS 关闭测试。
EcuM 的详细需求在以下小节中描述。
12.1.1 通用需求(General requirements)
[SWS_EcuM_04136_EXTENSION]
EcuM_ShutdownTargetType 应当扩展 ECUM_SHUTDOWN_HWTEST_RESET 和 ECUM_SHUTDOWN_HWTEST_OFF,以处理由关闭测试执行引起的复位。
| 名称 | EcuM_ShutdownTargetType |
|---|---|
| 类型 | uint8 |
| 取值范围 | ECUM_SHUTDOWN_TARGET_SLEEP 0x0 |
ECUM_SHUTDOWN_TARGET_RESET 0x1 | |
ECUM_SHUTDOWN_TARGET_OFF 0x2 | |
ECUM_SHUTDOWN_HWTEST_RESET 0x3 | |
ECUM_SHUTDOWN_HWTEST_OFF 0x4 | |
| 描述 | — |
12.1.2 在 EcuM 启动阶段(During EcuM START UP PHASE)
[SWS_EcuM_HTMSS_00001]
在 Init block 1 中,EcuM 应当调用 HTMSS_Init() 来初始化 HTMSS 模块。(参考:HTMSS SWS 第 9.1.1 节)
[SWS_EcuM_HTMSS_00002]
ECU 管理器模块应当调用 HTMSS_StartTest() 来触发 MSTP 启动测试执行,基于 Mcu_GetResetReason API 的返回值。(参考:HTMSS SWS 第 9.1.2 节)
[SWS_EcuM_HTMSS_00003]
ECU 管理器模块应当调用 HTMSS_GetTestStatus() 来收集 MSTP 启动测试结果或关闭测试结果,基于 Mcu_GetResetReason API 的返回值。(参考:HTMSS SWS 第 9.1.2 节和 9.1.5 节)
[SWS_EcuM_HTMSS_00004]
ECU 管理器模块应当在 HTMSS_GetTestStatus() 返回 HTMSS_STATUS_NOK 时调用 HTMSS_StartupTestErrorHook()。(参考:HTMSS SWS 第 9.1.2 节)
12.1.3 在 EcuM 关闭阶段(During EcuM SHUTDOWN PHASE)
[SWS_EcuM_HTMSS_00005]
ECU 管理器模块应当调用 HTMSS_StartTest 服务函数,基于 EcuM_ShutdownTarget 触发 MSTP 关闭测试执行。(参考:HTMSS SWS 第 9.1.3 节)
[SWS_EcuM_HTMSS_00006]
ECU 管理器模块应当基于 Mcu_ResetType 调用 HTMSS_GetTestStatus()。(参考:HTMSS SWS 第 9.1.4 节和 9.1.5 节)
提示:通常关闭测试执行会导致硬件复位。复位后,在 EcuM_Init 中,EcuM 将调用 Mcu_GetReason()。如果复位原因是 MCU_HWTEST_RESET,则 EcuM 应当调用 HTMSS_GetTestStatus() 来收集关闭测试结果。
[SWS_EcuM_HTMSS_00007]
ECU 管理器模块应当在 HTMSS_GetTestStatus() 返回 HTMSS_STATUS_NOK 时调用 HTMSS_ShutdownTestErrorHook()。(参考:HTMSS SWS 第 9.1.5 节)
12.1.4 HTMSS 集成到 EcuM 的示例时序图(Example sequence diagrams for HTMSS integration in ECUM)
以下序列图应当作为将 HTMSS 集成到 EcuM UP 和 DOWN 阶段的参考。
[SWS_EcuM_HTMSS_00008]
关于在 EcuM 中集成 HTMSS init 函数,请参考:AUTOSAR_SWS_HWTestManager 第 9.1.1 节。
[SWS_EcuM_HTMSS_00009]
关于在 EcuM 中集成 HTMSS 启动测试,请参考:AUTOSAR_SWS_HWTestManager 第 9.1.2 节。
[SWS_EcuM_HTMSS_00010]
关于在 EcuM 中集成 HTMSS 关闭测试执行,请参考:AUTOSAR_SWS_HWTestManager 第 9.1.3 节。
[SWS_EcuM_HTMSS_00011]
关于为应用收集最后的关闭测试结果,请参考:AUTOSAR_SWS_HWTestManager 第 9.1.4 节和 9.1.5 节。
[SWS_EcuM_HTMSS_00012]
关于在 EcuM 关闭阶段集成关闭测试执行,请参考:AUTOSAR_SWS_HWTestManager 第 9.1.6 节。
12.2 BSW 模式管理器(BSW mode manager)
BswMEcuMSelectShutdownTarget 应当扩展 HWTEST_OFF 和 HWTEST_RESET,以处理由关闭测试执行引起的复位。
ECUC_BswM_00993_EXTENSION
| 名称 | BswMEcuMShutdownTarget |
|---|---|
| 描述 | 此参数包含 BswM 在 EcuM 处选择的关闭目标。 |
| 多重性 | 1 |
| 类型 | EcucEnumerationParamDef |
| 取值 | OFF |
RESET:若配置为 RESET,则 BswMEcuMResetModeRef 参数应当存在并包含对 EcuM 复位模式的有效引用。 | |
SLEEP:若配置为 SLEEP,则 BswMEcuMSleepModeRef 参数应当存在并包含对 EcuM 睡眠模式的有效引用。 | |
HWTEST_OFF:若配置为 HWTEST_OFF,则 BswMEcuMSleepModeRef 参数应当存在并包含对 EcuM 关闭硬件测试 OFF 模式的有效引用。 | |
HWTEST_RESET:若配置为 HWTEST_RESET,则 BswMEcuMSleepModeRef 参数应当存在并包含对 EcuM 关闭硬件测试 RESET 模式的有效引用。 | |
| 配置类 | Pre-compile time、Link time、Post-build time |
| 范围/依赖 | scope: local |
12.3 MCU 驱动(MCU driver)
SWS_Mcu_00252_EXTENSION
Mcu_ResetType 应当扩展 MCU_HWTEST_RESET,以处理由关闭测试执行引起的复位。
| 名称 | Mcu_ResetType |
|---|---|
| 类型 | Enumeration |
| 取值 | MCU_POWER_ON_RESET:上电复位(默认)。 |
MCU_WATCHDOG_RESET:内部看门狗定时器复位。 | |
MCU_SW_RESET:软件复位。 | |
MCU_HWTEST_RESET:由关闭测试引起的复位。 | |
MCU_RESET_UNDEFINED:复位未定义。 | |
| 描述 | 这是包含复位类型子集的复位枚举器类型。不要求硬件支持所有复位类型。 |
13 对 AUTOSAR 性能和软件行为的影响(Impact on performance and software behaviour in AUTOSAR)
HTMSS 集成到 AUTOSAR 中会影响 ECU 中的 EcuM 启动和关闭行为。其后果包括:
- 完成相应 EcuM 阶段所需的额外时间(例如更长的 EcuM 初始化阶段、更长的 EcuM 关闭阶段);
- 在检测到关键故障(即 MSTP 测试状态被判为关键故障)的情况下,ECU 启动序列可以被中止。
因此,集成商可以自主决定 AUTOSAR 中的 HTMSS 集成需求,该需求作为符合 AUTOSAR 软件环境的可选特性提出。