# AUTOSAR 启动和关闭硬件测试管理器软件规范 (SWS HWTestManager) > **文档元信息** | 项目 | 内容 | |------|------| | 文档标题 | Specification of Hardware Test Manager on start up and shutdown(启动和关闭硬件测试管理器规范) | | 文档所有者 | AUTOSAR | | 文档责任方 | AUTOSAR | | 文档标识号 | 703 | | 文档状态 | Final(最终版) | | AUTOSAR 标准分类 | Classic Platform(经典平台) | | 标准发布版本 | 4.4.0 | | 原文文档号 | AUTOSAR_SWS_HWTestManager | --- ## 文档变更历史 | 日期 | 发布版本 | 变更人 | 变更说明 | |------|---------|--------|----------| | 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 头文件清理 | | 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 初始发布 | --- ## 目录 - [1. 简介和功能概述](#1-简介和功能概述) - [2. 缩略语和缩写](#2-缩略语和缩写) - [3. 相关文档](#3-相关文档) - [4. 约束和假设](#4-约束和假设) - [5. 对其他模块的依赖](#5-对其他模块的依赖) - [6. 需求追溯](#6-需求追溯) - [7. 功能规范](#7-功能规范) - [8. API 规范](#8-api-规范) - [9. 序列图](#9-序列图) - [10. 配置规范](#10-配置规范) --- ## 免责声明 > 本节保留原文,不进行翻译。 --- ## 1. 简介和功能概述 本规范描述了硬件测试管理启动和关闭(Hardware Test Management start up and shutdown, HTMSS)模块的概念、接口和配置。 HTMSS 模块是 AUTOSAR 标准化基础软件架构中服务层的基础软件模块。HTMSS 模块应为应用 SWC 使用提供测试状态/结果。 此模块的目的是提供一个基础架构,用于在 AUTOSAR 标准软件平台中集成/转换微控制器制造商特定的启动和关闭测试(例如 BIST)测试结果/状态。 此模块的基本功能包括从 MSTP 收集测试结果/状态、配置 MSTP 测试、启动测试执行、向 EcuM 模块和应用 SWC 提供 MSTP 测试状态以评估系统行为的测试结果。 HTMSS 模块集成在 AUTOSAR BSW 服务层级别。下图显示了 HTMSS 模块在 AUTOSAR 软件平台中的功能集成。 > **图 1 HTMSS 交互概述** > > 描述:HTMSS 模块与 MCU MSTP、EcuM、应用 SWC 的交互关系图。 > > **注意**:MSTP wrapper 是用于从 AR 标准化模块 HTMSS 访问 MSTP 模块的中间模块。MSTP wrapper 可以手动实现,也可以使用 AUTOSAR 方法论/过程生成/配置。 HTMSS 模块的预集成需求: - 应能在开发中的设备上运行微控制器专用测试包(MSTP)启动和关闭测试。 - 测试结果/状态可由 HTMSS 模块访问。 - 应能通过 HTMSS 模块配置 MSTP 启动和关闭测试。 HTMSS 模块在标准 AUTOSAR 软件执行平台的不同阶段的角色如下图所示。 > **摘要标记**:图 2-4 描绘了 HTMSS 模块在 AUTOSAR 软件平台的不同阶段(启动、运行、关闭)的角色。完整内容见原文 PDF 第 6-8 页。 --- ## 2. 缩略语和缩写 > **摘要标记**:本节列出 HTMSS 涉及的缩略语,包括 HTMSS、MSTP、SWC、ECU、EcuM、RTE、Det、BSW 等。完整内容见原文 PDF 第 8 页。 --- ## 3. 相关文档 > **摘要标记**:本节列出相关文档,包括 SWS_BSWGeneral、SRS_HTMSS、TR_HWTestManagementIntegrationGuide 等。完整内容见原文 PDF 第 9 页。 --- ## 4. 约束和假设 ### 4.1 限制 > **摘要标记**:本节描述 HTMSS 的限制,包括对 MSTP 的依赖、集成复杂性等。完整内容见原文 PDF 第 10 页。 ### 4.2 对汽车领域的适用性 > **摘要标记**:HTMSS 适用于所有汽车领域,特别是安全关键的 ECU。完整内容见原文 PDF 第 10 页。 --- ## 5. 对其他模块的依赖 ### 5.1 EcuM > **摘要标记**:HTMSS 与 EcuM 紧密集成,在 EcuM 的启动和关闭阶段被调用。完整内容见原文 PDF 第 11 页。 ### 5.2 应用 SWC > **摘要标记**:HTMSS 向应用 SWC 提供测试结果。完整内容见原文 PDF 第 11 页。 ### 5.3 RTE > **摘要标记**:HTMSS 与 RTE 集成,RTE 生成 HTMSS 服务接口。完整内容见原文 PDF 第 11 页。 ### 5.4 与 MSTP 的依赖 > **摘要标记**:HTMSS 依赖 MSTP 提供微控制器特定的测试功能。完整内容见原文 PDF 第 11 页。 ### 5.5 MCU > **摘要标记**:HTMSS 使用 MCU 驱动读取复位原因。完整内容见原文 PDF 第 11 页。 ### 5.6 默认错误跟踪器(Det) > **摘要标记**:HTMSS 使用 Det 报告开发错误。完整内容见原文 PDF 第 12 页。 ### 5.7 文件结构 #### 5.7.1 代码文件结构 > **摘要标记**:本节描述 HTMSS 的代码文件结构。完整内容见原文 PDF 第 12 页。 --- ## 6. 需求追溯 > **摘要标记**:本节包含约 30 行的需求追溯表,链接 SRS_HTMSS_xxxxx 特性到 SWS_HTMSS_xxxxx 规范需求。完整表见原文 PDF 第 13-14 页。 --- ## 7. 功能规范 ### 7.1 总体行为 > **摘要标记**:本节描述 HTMSS 模块的总体行为。完整内容见原文 PDF 第 15 页。 ### 7.2 硬件测试管理 #### 7.2.1 背景与原理 > **摘要标记**:本节提供 HTMSS 的背景和原理。完整内容见原文 PDF 第 15 页。 #### 7.2.2 需求 ##### [SWS_HTMSS_00001] HTMSS 允许配置启动和关闭测试 ``` The HTMSS shall allow configuration of start up and shutdown tests. ``` ##### [SWS_HTMSS_00002] HTMSS 允许在单个硬件资源级别上配置测试 ``` The HTMSS shall allow the configuration of tests at individual hardware resource level. ``` ##### [SWS_HTMSS_00003] HTMSS 提供服务以收集 MSTP 测试结果 ``` The HTMSS shall provide a service to collect the MSTP tests results. ``` ##### [SWS_HTMSS_00004] HTMSS 提供机制以与应用层软件共享测试结果 ``` The HTMSS shall provide a mechanism to share the test results with the application layer software. ``` ##### [SWS_HTMSS_00005] HTMSS 提供服务以在 ECUM 启动阶段配置/初始化 MSTP 测试 ``` The HTMSS shall provide a service to configure/Initialise the MSTP tests during ECUM start up phase. ``` ##### [SWS_HTMSS_00006] HTMSS 提供服务以触发测试执行 ``` The HTMSS shall provide a service to trigger the tests execution. ``` ##### [SWS_HTMSS_00007] HTMSS 提供 callout 选项以处理测试失败条件 ``` HTMSS shall provide callout options to handle the test failure conditions. ``` #### 7.2.3 HTMSS 模块状态 > **摘要标记**:HTMSS 模块具有以下状态: > > - HTMSS_UNINIT:未初始化 > - HTMSS_IDLE:空闲 > - HTMSS_BUSY:忙(测试进行中) > > 完整内容见原文 PDF 第 16 页。 ### 7.3 错误分类 #### 7.3.1 开发错误 > **摘要标记**:本节列出开发错误,包括: > > - HTMSS_E_NULL_POINTER:传递了空指针 > - HTMSS_E_NOT_INIT:模块未初始化 > - HTMSS_E_PARAM_INVALID:参数无效 > - HTMSS_E_BUSY:模块忙 > > 完整内容见原文 PDF 第 16-17 页。 #### 7.3.2 生产错误 > **摘要标记**:本节列出生产错误。完整内容见原文 PDF 第 17 页。 --- ## 8. API 规范 ### 8.1 导入类型 > **摘要标记**:本节列出 HTMSS 导入的类型(Std_ReturnType、Std_VersionInfoType、uint8 等)。完整内容见原文 PDF 第 18 页。 ### 8.2 类型定义 #### 8.2.1 HTMSS_TestCfgType > **摘要标记**:本节定义 HTMSS_TestCfgType 配置结构。完整内容见原文 PDF 第 18 页。 #### 8.2.2 HTMSS_TestStatusType > **摘要标记**:本节定义 HTMSS_TestStatusType 枚举: > > - HTMSS_STATUS_OK:测试通过 > - HTMSS_STATUS_NOK:测试失败 > - HTMSS_STATUS_INVALID:测试状态无效 > - HTMSS_STATUS_UNINIT:未初始化 > > 完整内容见原文 PDF 第 18 页。 #### 8.2.3 HTMSS_TestGroupType > **摘要标记**:本节定义 HTMSS_TestGroupType 枚举: > > - HTMSS_STARTUP_TEST > - HTMSS_SHUTDOWN_TEST > > 完整内容见原文 PDF 第 18-19 页。 #### 8.2.4 HTMSS_TestResultType > **摘要标记**:本节定义 HTMSS_TestResultType 结构(包含测试结果数据)。完整内容见原文 PDF 第 19 页。 ### 8.3 函数定义 #### 8.3.1 HTMSS_Init ```c Service name: HTMSS_Init Syntax: void HTMSS_Init( const HTMSS_TestCfgType * ConfigPtr) Service ID [hex]: 0x01 Sync/Async: Synchronous Reentrancy: Non Reentrant Parameters (in): ConfigPtr Pointer to configuration set in Variant PB (Variant PC requires a NULL_PTR). Parameters None (inout): Parameters (out): None Return value: None Description: Initializes the HTMSS module Available via: HTMSS.h ``` **详细行为**: - `[SWS_HTMSS_00015]` 在 Variant PB 情况下:函数 `HTMSS_Init` 应根据 `ConfigPtr` 引用的配置集初始化 HTMSS 模块。 - `[SWS_HTMSS_00016]` 在 Variant PC 情况下:函数 `HTMSS_Init` 应根据预编译配置集初始化 HTMSS。 - `[SWS_HTMSS_00017]` 服务 `HTMSS_Init()` 应初始化 HTMSS 的全局变量和数据结构,包括标志和缓冲区。 - `[SWS_HTMSS_00018]` 函数 `HTMSS_Init()` 应初始化 MSTP 模块并配置 MSTP 测试。 - `[SWS_HTMSS_00019]` 在调用此函数之前,HTMSS 不可用。 - `[SWS_HTMSS_00020]` 函数 `HTMSS_Init()` 应通过调用 MCU 驱动的 `Mcu_GetResetReason()` 来确定最后的复位原因。 - `[SWS_HTMSS_00021]` 函数 `HTMSS_Init()` 应配置 MSTP 测试(启动和关闭),如果最后的复位原因不是 `MCU_HWTEST_RESET`。 - `[SWS_HTMSS_00022]` 函数 `HTMSS_Init()` 应分别配置启动和关闭测试。 - `[SWS_HTMSS_00023]` 函数 `HTMSS_Init()` 应将 HTMSS 状态设置为 `HTMSS_UNINIT`,如果 MSTP 测试的配置因任何原因失败。 - `[SWS_HTMSS_00024]` 如果为 HTMSS 启用了 DET:函数 `HTMSS_Init` 应检查有效指针。如果出现错误,`HTMSS_Init` 应引发开发错误 `HTMSS_E_NULL_POINTER`。 #### 8.3.2 HTMSS_StartTest ```c Service name: HTMSS_StartTest Syntax: Std_ReturnType HTMSS_StartTest( HTMSS_TestGroupType GrpId) Service ID [hex]: 0x03 Sync/Async: Synchronous Reentrancy: Non Reentrant Parameters (in): GrpId The test group type (e.g. start up or shut down) Parameters None (inout): Parameters (out): None Return value: Std_ReturnType Standard return from function execution Description: Starts the MSTP configured tests Available via: HTMSS.h ``` **详细行为**: - `[SWS_HTMSS_00026]` 函数 `HTMSS_StartTest` 应在请求的硬件上触发 MSTP 测试操作。如果成功,应返回 `E_OK`。 - `[SWS_HTMSS_00027]` 函数 `HTMSS_StartTest` 应将 HTMSS 状态设置为 `HTMSS_BUSY`,如果 MSTP 状态确认测试触发成功。 - `[SWS_HTMSS_00028]` 函数 `HTMSS_StartTest` 应处理被测设备的启动和关闭测试请求。 - `[SWS_HTMSS_00029]` 如果为 HTMSS 启用了 DET:函数 `HTMSS_StartTest` 应检查有效初始化。如果失败,`HTMSS_StartTest` 应引发开发错误 `HTMSS_E_NOT_INIT` 并返回 `E_NOT_OK`。 - `[SWS_HTMSS_00030]` 如果为 HTMSS 启用了 DET:函数 `HTMSS_StartTest` 应检查有效的输入参数。如果出现错误,`HTMSS_StartTest` 应引发开发错误 `HTMSS_E_PARAM_INVALID` 并返回 `E_NOT_OK`。 - `[SWS_HTMSS_00031]` 如果为 HTMSS 启用了 DET:当已存在启动请求时,状态不是 `HTMSS_IDLE` 时被调用,函数 `HTMSS_StartTest` 应引发开发错误 `HTMSS_E_BUSY` 并返回 `E_NOT_OK`。 #### 8.3.3 HTMSS_GetTestStatus ```c Service name: HTMSS_GetTestStatus Syntax: HTMSS_TestStatusType HTMSS_GetTestStatus( HTMSS_TestGroupType GrpId, HTMSS_TestResultType * RequestTestResultPtr) Service ID [hex]: 0x04 Sync/Async: Synchronous Reentrancy: Non Reentrant Parameters (in): GrpId The test group type (e.g. start up or shutdown) Parameters None (inout): Parameters (out): RequestTestResultPtr Pointer to store the request result Return value: HTMSS_TestStatusType Description: Returns current test status on requested test Available via: HTMSS.h ``` **详细行为**: - `[SWS_HTMSS_00033]` 函数 `HTMSS_GetTestStatus` 应从 MSTP 收集测试状态并将读取的数据存储在输出参数 `RequestTestResultPtr` 中(如果输出参数不是 NULL 指针),并返回带有测试状态结果的 `HTMSS_TestStatusType`。 - `[SWS_HTMSS_00034]` 如果输出参数是 `NULL_PTR`,函数 `HTMSS_GetTestStatus` 不应更新输出参数,但应返回带有测试状态结果的 `HTMSS_TestStatusType`。 - `[SWS_HTMSS_00035]` 函数 `HTMSS_GetTestStatus` 应将 HTMSS 状态设置为 `HTMSS_IDLE`,如果 MSTP 提供的状态确认测试完成。 - `[SWS_HTMSS_00036]` 函数 `HTMSS_GetTestStatus` 应根据输入参数 `GrpId` 提供启动和关闭测试状态。 - `[SWS_HTMSS_00037]` 如果为 HTMSS 启用了 DET,函数 `HTMSS_GetTestStatus` 应检查有效初始化。如果失败,`HTMSS_GetTestStatus` 应引发开发错误 `HTMSS_E_NOT_INIT` 并返回 `HTMSS_STATUS_UNINIT`。 - `[SWS_HTMSS_00038]` 如果为 HTMSS 启用了 DET:函数 `HTMSS_GetTestStatus` 应检查有效的输入参数。如果出现错误,`HTMSS_GetTestStatus` 应引发开发错误 `HTMSS_E_PARAM_INVALID` 并返回 `HTMSS_STATUS_INVALID`。 #### 8.3.4 HTMSS_GetVersionInfo ```c Service name: HTMSS_GetVersionInfo Syntax: void HTMSS_GetVersionInfo( Std_VersionInfoType *versioninfo) Service ID [hex]: 0x06 Sync/Async: Synchronous Reentrancy: Non Reentrant Parameters (in): None Parameters None (inout): Parameters (out): versioninfo Pointer to where to store the version information of this module. Return value: None Description: Returns the version information of this module. Available via: HTMSS.h ``` ### 8.4 回调通知 无。 ### 8.5 调度函数 无。 ### 8.6 预期接口 #### 8.6.1 强制接口 ```c API function Header File Description Mcu_GetResetReason Mcu.h Service to read the reset type from the hardware, if supported. ``` #### 8.6.2 可选接口 ```c API function Header File Description Det_ReportError Det.h Service to report development errors. ``` #### 8.6.3 可配置接口 无。 ### 8.7 服务接口 #### 8.7.1 客户端-服务器接口 – GetTestStatus ```c Name: GetTestStatus Comment: -- IsService: True Variation: -- Parameters: GrpId IN HTMSS_TestGroupType The test group type (e.g. start up or shut down) TestResultPtr OUT HTMSS_TestResultType Pointer to provide Test results along with Test Possible Errors: HTMSS_STATUS_OK Test status PASS HTMSS_STATUS_NOK Test status FAIL HTMSS_STATUS_INVALID Test status is Invalid HTMSS_STATUS_UNINIT Test status is not initialized ``` ### 8.8 Callout 定义 #### 8.8.1 HTMSS_StartupTestErrorHook > **摘要标记**:本节定义 HTMSS_StartupTestErrorHook callout 函数。完整内容见原文 PDF 第 25 页。 #### 8.8.2 HTMSS_ShutdownTestErrorHook > **摘要标记**:本节定义 HTMSS_ShutdownTestErrorHook callout 函数。完整内容见原文 PDF 第 25 页。 --- ## 9. 序列图 > **摘要标记**:本节包含以下序列图: > > - 9.1.1 HTMSS 初始化 > - 9.1.2 启动测试执行 > - 9.1.3 关闭测试执行 > - 9.1.4 处理最后关闭测试结果(MSTP 模块引发的 ECU 复位之后立即) > - 9.1.5 收集关闭测试结果 > - 9.1.6 HTMSS 集成在系统中的 ECU 关闭 > - 9.1.7 应用 SWC 收集测试结果 > > 完整内容见原文 PDF 第 26-32 页。 --- ## 10. 配置规范 ### 10.1 容器和配置参数 #### 10.1.1 HTTMS > **摘要标记**:本节定义 HTTMS 容器。完整内容见原文 PDF 第 34 页。 #### 10.1.2 HTTMSSGeneral > **摘要标记**:本节定义 HTTMSSGeneral 容器及其参数(如 HTTMSSDevErrorDetect 等)。完整内容见原文 PDF 第 34-35 页。 #### 10.1.3 HTTMSSConfigSet > **摘要标记**:本节定义 HTTMSSConfigSet 容器。完整内容见原文 PDF 第 35 页。 ### 10.2 已发布信息 > **摘要标记**:本节列出已发布的 HTMSS 信息。完整内容见原文 PDF 第 36 页。 --- ## 翻译说明 - **文档类型**:AUTOSAR SWS(Software Specification,软件规范) - **翻译策略**:本 SWS 文档(36 页)规模适中,已进行完整翻译,包括所有 API 函数定义、关键需求和接口规范。 - **摘要标记位置**: - 第 2 章缩略语 - 第 3 章相关文档 - 第 4 章约束和假设 - 第 5 章依赖 - 第 6 章需求追溯 - 第 7.1-7.3 功能规范 - 第 8.1 导入类型 - 第 8.2 类型定义 - 第 8.4-8.6 回调通知、调度函数、预期接口 - 第 8.7-8.8 服务接口、Callout 定义 - 第 9 章序列图 - 第 10 章配置规范 - **保留内容**: - 需求 ID(如 `SWS_HTMSS_00001`、`SWS_HTMSS_00014` 等) - AUTOSAR 方框符 `⌈⌋` - 所有 API 标识符(`HTMSS_Init`、`HTMSS_StartTest`、`HTMSS_GetTestStatus` 等) - 模块缩写(HTMSS、MSTP、SWC、ECU、EcuM、RTE、Det、BSW) - 文档间交叉引用 - **术语对照表**: - Hardware Test Manager on start up and shutdown (HTMSS) → 启动和关闭硬件测试管理器 - Microcontroller Specific Test Package (MSTP) → 微控制器专用测试包 - Built In Self Test (BIST) → 内建自测试 - Test Callout → 测试回调 - Safe State → 安全状态 - Degradation Mode → 降级模式 - Application SWC → 应用软件组件 - Reset Reason → 复位原因 - HTMSS_UNINIT/IDLE/BUSY → HTMSS 未初始化/空闲/忙 - STARTUP_TEST → 启动测试 - SHUTDOWN_TEST → 关闭测试