Files
autosar_standard_spec_v4.4/SystemServices/AUTOSAR_SWS_HWTestManager.md
T

507 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 SWSSoftware 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 → 关闭测试