18 KiB
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. 简介和功能概述
本规范描述了硬件测试管理启动和关闭(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
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
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
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
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 强制接口
API function Header File Description
Mcu_GetResetReason Mcu.h Service to read the reset type from the hardware,
if supported.
8.6.2 可选接口
API function Header File Description
Det_ReportError Det.h Service to report development errors.
8.6.3 可配置接口
无。
8.7 服务接口
8.7.1 客户端-服务器接口 – GetTestStatus
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)
- 文档间交叉引用
- 需求 ID(如
- 术语对照表:
- 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 → 关闭测试