AUTOSAR硬件测试管理集成指南
目录
- 文档概述
1.1 文档范围
1.2 局限性 - 目标与动机
2.1 目标
2.2 动机
2.3 用例 - 约束与假设
- 缩略语与术语
- 相关文档
- HTMSS AUTOSAR集成方法
- HTMSS功能描述
- AUTOSAR架构解决方案
8.1 HTMSS系统架构
8.2 HTMSS启动流程
8.3 HTMSS关闭流程
8.4 HTMSS状态转换 - AUTOSAR软件架构集成需求
9.1 ECU状态管理器
9.2 BSW模式管理器
9.3 MCU驱动 - 性能和软件行为影响
1. 文档概述
本文档提供了在AUTOSAR环境中实现硬件测试管理启动和关闭(HTMSS)模块的简要说明。它旨在作为按照AUTOSAR方法和流程实现HTMSS模块的用户指南。
1.1 文档范围
本文档主要描述以下内容:
- 在基于AUTOSAR的ECU中集成硬件特定测试的主要特性描述
- AUTOSAR架构影响和解决方案
- 为了在标准AUTOSAR软件平台中集成HTMSS而需要考虑的受影响模块需求
- 以及相应的ECU软件行为
1.2 局限性
HTMSS模块本身的需求在HTMSS SRS和SWS文档中描述。
2. 目标与动机
2.1 目标
在AUTOSAR系统开发过程中,需要考虑半导体制造商特定测试在标准AUTOSAR环境中的集成技术方法。
目标是标准化与微控制器特定测试包(可能是非AUTOSAR软件模块)的可访问接口,并集成到配置测试、触发测试执行和收集测试结果的AUTOSAR系统中。因此,这个概念引入了一个称为HTMSS的BSW模块来实现其功能。
2.2 动机
HTMSS概念的动机是支持系统对特定功能的可信度感知。例如,资源是否可用、是否处于操作条件下以及是否检测到故障。即使检测到某些故障,系统仍可能能够执行某些活动并信任其结果。系统应如何对这些故障做出反应的确定性必须根据系统分析和建议来实施。HTMSS概念应提供支持以实现这种感知。
从多个测试中收集结果可以提供有关系统中资源条件和方面的事实。在安全关键系统中,潜在故障的诊断对于实现功能安全目标至关重要。它需要集成测试、执行测试并在预期功能之外传播结果。这意味着需要在系统服务层中引入新组件,一个称为硬件测试管理器(HTMSS)的基本软件模块。它实现测试和监控编排,并将结果传播给利益相关的软件组件。
2.3 用例
该概念应满足以下要求:
- 应能够在AUTOSAR之前运行测试
- 应能够在AUTOSAR启动和关闭时运行测试,并传播其结果
- 测试结果应传播以供后续分析
3. 约束与假设
硬件测试应与整体系统行为和谐执行。它们不应对预期功能产生负面影响。这就是为什么需要精确选择执行测试的点。通常,测试分为两个基本组:
- 非破坏性测试:执行此类测试后,可以将项目转回到测试执行前的状态,无需完全重新初始化项目或系统。
- 破坏性测试:执行此类测试后,项目无法返回到已知的操作状态,除非对项目或整个系统应用严格的初始化程序。
HTMSS的目标是为收集和报告特定硬件模块或外设操作状态提供必要的环境和基础设施。操作状态是对这些硬件模块和外设进行测试评估的结果。
该概念要求使用的微控制器能够在执行破坏性测试期间在专用内存地址/寄存器中维护测试结果完整性。测试结果可由HTMSS访问。如果检测到硬件模块的严重故障(核心或RAM/ROM故障),MSTP可能会决定不继续执行软件。在这种情况下,系统必须进入安全状态。连续复位被视为安全状态。MSTP负责维护安全状态。
MSTP的设计规范和实现由微控制器供应商提供。计划在AUTOSAR初始化中执行的测试可以由微控制器供应商提供(微控制器特定测试),也可以由系统集成商设计和实现(ECU功能特定测试)。它们由HTMSS本身编排和评估。
4. 缩略语与术语
缩略语/缩写 | 描述 |
---|---|
HTMSS | 硬件测试管理启动和关闭 |
MSTP | 微控制器特定测试包 |
DEM | 诊断事件管理器 |
ECU | 电子控制单元 |
BIST | 内置自测试 |
CDD | 复杂设备驱动 |
5. 相关文档
[1] ECU状态管理器规范 (AUTOSAR_SWS_ECUStateManager.pdf)
[2] MCU驱动规范 (AUTOSAR_SWS_MCUDriver.pdf)
[3] BSW模式管理器规范 (AUTOSAR_SWS_BSWModeManager.pdf)
[4] 硬件测试管理启动和关闭规范 (AUTOSAR_SWS_HTMSS.pdf)
在AUTOSAR软件平台中实现HTMSS和受影响模块的关联扩展需求时,应考虑其他AUTOSAR通用规范。
6. HTMSS AUTOSAR集成方法
硬件测试管理启动和关闭建议以下列方式将微控制器特定测试包(MSTP)集成到AUTOSAR软件环境中。标准AUTOSAR模块与MSTP之间的交互应通过在BSW服务层中引入一个称为HTMSS的新模块来管理。HTMSS的基本功能包括:
- HTMSS模块初始化(包括MSTP模块,如果需要)
- 基于HTMSS模块配置配置MSTP测试的接口
- 启动MSTP测试执行的接口
- 收集并向所需模块和应用SWC提供MSTP测试结果,以评估结果并做出相关决策
7. HTMSS功能描述
本节描述硬件测试管理启动和关闭在AUTOSAR中的主要功能和集成。
[FS_HTMSS_00001] AUTOSAR应提供一种标准化的安全机制,与微控制器特定测试包(以下称为MSTP)交互,收集MSTP测试结果并将结果提供给相关BSW模块和应用SWC。
描述: AUTOSAR应提供一种机制,用于收集在启动和关闭阶段执行的微控制器特定测试,评估测试状态并将其提供给利益相关的SW-C。
原理: 硬件测试中的故障可能导致安全状态。
用例: 例如,关键硬件资源测试决定MCU的健康状况。
类型: 草案
8. AUTOSAR架构解决方案
集成硬件测试管理启动和关闭需要扩展几个BSW模块的功能,以及在BSW层中引入一个新模块"HTMSS"。
HTMSS与MSTP之间的接口应是特定于供应商的,可以通过在AUTOSAR开发过程中实现的MSTP包装器处理。
8.1 HTMSS系统架构
图1:AUTOSAR HTMSS架构图
HTMSS架构图展示了硬件测试管理模块在AUTOSAR分层架构中的位置和与其他模块的关系。关键组件包括:
应用层
- 安全SWC:负责处理硬件测试结果并执行安全相关的动作
BSW服务层
- HTMSS(硬件测试管理启动和关闭):核心模块,负责与微控制器特定测试包交互
- EcuM(ECU状态管理器):管理ECU启动和关闭流程,调用HTMSS相关服务
- BswM(基础软件模式管理器):触发关机流程,管理BSW模式
- DEM(诊断事件管理器):接收并处理HTMSS上报的诊断事件
MCAL层
- MCU驱动:提供与微控制器核心功能交互的接口
- 复杂设备驱动(CDD):提供与特定设备的交互接口
硬件层
- 微控制器特定测试包(MSTP):非AUTOSAR模块,由微控制器供应商提供
- 微控制器硬件BIST:内置自测试功能
HTMSS模块与其他AUTOSAR组件之间的主要交互包括:
- EcuM调用HTMSS_Init()、HTMSS_StartTest()和HTMSS_GetTestStatus()等服务
- HTMSS通过供应商特定接口与MSTP交互
- 安全SWC访问HTMSS提供的测试结果
- HTMSS向DEM上报诊断事件
8.2 HTMSS启动流程
图2:AUTOSAR HTMSS启动阶段序列图
HTMSS启动序列图详细展示了系统启动阶段HTMSS的工作流程:
初始化阶段
- EcuM调用Mcu_GetResetReason()获取复位原因
- 根据复位原因(如MCU_POWER_ON_RESET、MCU_SW_RESET、MCU_HWTEST_RESET等)决定后续操作
- EcuM调用HTMSS_Init()初始化HTMSS模块
启动测试执行
- 如果需要执行启动测试,EcuM调用HTMSS_StartTest(HTMSS_STARTUP_TEST)
- HTMSS通过MSTP执行非破坏性启动测试
- 测试完成后,EcuM调用HTMSS_GetTestStatus()获取测试结果
测试结果处理
- 如果测试结果为HTMSS_STATUS_NOK(测试失败),则调用HTMSS_StartupTestErrorHook()
- HTMSS通知安全SWC测试失败情况,可能触发安全机制
继续正常启动
- 如果测试通过,系统继续AUTOSAR正常启动流程
8.3 HTMSS关闭流程
图3:AUTOSAR HTMSS关闭阶段序列图
HTMSS关闭序列图展示了系统关闭阶段HTMSS的工作流程:
关闭触发
- 应用层请求BswM关闭ECU
- BswM通知EcuM进入无通信模式(NO_COM)
- BswM通过EcuM_SelectShutdownTarget()选择关闭目标类型
关闭测试执行
- 如果关闭目标为ECUM_SHUTDOWN_HWTEST_RESET或ECUM_SHUTDOWN_HWTEST_OFF,EcuM调用HTMSS_StartTest(HTMSS_SHUTDOWN_TEST)
- HTMSS通过MSTP启动关闭阶段测试,这通常是破坏性测试
- MSTP执行测试并存储结果,可能触发硬件复位(MCU_HWTEST_RESET)
复位后启动检查
- 系统复位后,EcuM检测到MCU_HWTEST_RESET复位原因
- EcuM调用HTMSS_GetTestStatus()获取上一次关闭测试的结果
- 如果测试结果为HTMSS_STATUS_NOK(测试失败),则调用HTMSS_ShutdownTestErrorHook()
- 系统可能进入降级模式或其他安全状态
8.4 HTMSS状态转换
图4:AUTOSAR HTMSS状态转换图
HTMSS状态转换图描述了HTMSS模块在不同操作条件下的状态流转:
初始化流程
- 系统从MCU上电/复位状态开始
- 进入微控制器自检阶段
- 通过EcuM_Init()进入检查复位原因状态
- 通过HTMSS_Init()初始化MSTP模块
启动测试流程
- 如果需要执行启动测试,调用HTMSS_StartTest(STARTUP)进入非破坏性启动测试状态
- 收集测试结果后,系统可能进入两种状态:
- 如果检测到严重故障(HTMSS_STATUS_NOK),进入安全状态
- 如果测试通过(HTMSS_STATUS_OK),进入硬件资源监控的正常运行状态
关闭流程
- 系统请求关闭时,从正常运行状态进入准备关机状态
- 如果配置了关闭测试,调用HTMSS_StartTest(SHUTDOWN)进入破坏性关闭测试状态
- 测试结果保存后,系统可能触发MCU_HWTEST_RESET复位
安全状态处理
- 安全状态表示系统检测到严重故障,可能处于连续复位或受限功能模式
- 从安全状态可以直接进入系统关闭状态
测试复位处理
- 如果是测试复位导致的系统重启,将检查上次关闭测试的结果
- 根据测试结果决定系统的后续行为
9. AUTOSAR软件架构集成需求
本节描述需要在受影响的标准AUTOSAR模块中实现的基本需求,以便在AUTOSAR架构中集成HTMSS模块和相应的微控制器特定测试包。
以下AUTOSAR模块在此环境中受到影响:
- ECU状态管理器 – 扩展EcuM UP和DOWN阶段
- BSW模式管理器 – 扩展关闭目标
- MCU驱动 – 扩展复位原因
9.1 ECU状态管理器
EcuM模块需要扩展以在AUTOSAR软件环境中集成HTMSS。扩展需要满足以下功能集成方法:
- EcuM启动阶段需要准备HTMSS和MSTP模块并执行启动测试。
- EcuM关闭阶段需要在BswM触发的关闭目标序列流程中集成HTMSS关闭测试。
- EcuM_ShutdownTargetType需要扩展ECUM_SHUTDOWN_REST和ECUM_HWTEST_OFF以处理关闭测试执行导致的复位。
9.1.1 一般需求
[SWS_EcuM_04136_EXTENSION]
名称: 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
9.1.2 EcuM启动阶段
[SWS_EcuM_HTMSS_00001] 在Init块1中,EcuM应调用HTMSS_Init()初始化HTMSS模块。
[SWS_EcuM_HTMSS_00002] ECU管理器模块应根据Mcu_GetResetReason API的返回值调用HTMSS_StartTest()触发MSTP启动测试执行。
[SWS_EcuM_HTMSS_00003] ECU管理器模块应根据Mcu_GetResetReason API的返回值调用HTMSS_GetTestStatus()收集MSTP启动测试结果或关闭测试结果。
[SWS_EcuM_HTMSS_00004] 如果函数HTMSS_GetTestStatus()返回HTMSS_STATUS_NOK,ECU管理器模块应调用HTMSS_StartupTestErrorHook()。
9.1.3 EcuM关闭阶段
[SWS_EcuM_HTMSS_00005] ECU管理器模块应根据EcuM_ShutdownTarget调用HTMSS_StartTest服务函数触发MSTP关闭测试执行。
[SWS_EcuM_HTMSS_00006] ECU管理器模块应根据Mcu_ResetType调用HTMSS_GetTestStatus()。
提示:通常关闭测试执行会导致硬件复位。复位后,在EcuM_Init中,EcuM将调用Mcu_GetReason()。如果复位原因是MCU_HWTEST_RESET,则EcuM应调用HTMS_GetTestStatus()收集关闭测试结果。
[SWS_EcuM_HTMSS_00007] 如果函数HTMSS_GetTestStatus()返回HTMSS_STATUS_NOK,ECU管理器模块应调用HTMSS_ShutdownTestErrorHook()。
9.2 BSW模式管理器
BswMEcuMSelectShutdownTarget应扩展HWTEST_OFF和HWTEST_RESET以处理关闭测试执行导致的复位。
ECUC_BswM_00993_EXTENSION:
名称 BswMEcuMShutdownTarget
类型 EcucEnumerationParamDef
多重性 1
描述 此参数包含BswM在EcuM选择的关闭目标。
范围
- OFF
- RESET:如果配置参数BswMEcuMShutdownTarget设置为RESET,则配置参数BswMEcuMResetModeRef应存在并包含对EcuM复位模式的有效引用。
- SLEEP:如果配置参数BswMEcuMShutdownTarget设置为SLEEP,则配置参数BswMEcuMSleepModeRef应存在并包含对EcuM睡眠模式的有效引用。
- HWTEST_OFF:如果配置参数BswMEcuMShutdownTarget设置为HWTEST_OFF,则配置参数BswMEcuMSleepModeRef应存在并包含对EcuM关闭硬件测试的有效引用。
- HWTEST_RESET:如果配置参数BswMEcuMShutdownTarget设置为HWTEST_RESET,则配置参数BswMEcuMSleepModeRef应存在并包含对EcuM关闭硬件测试的有效引用。
9.3 MCU驱动
Mcu_ResetType应扩展MCU_HWTEST_RESET以处理关闭测试导致的复位。
SWS_Mcu_00252_EXTENSION:
名称: Mcu_ResetType
类型: 枚举
范围:
- MCU_POWER_ON_RESET:上电复位(默认)
- MCU_SW_RESET:软件复位
- MCU_WATCHDOG_RESET:内部看门狗定时器复位
- MCU_HWTEST_RESET:由关闭测试导致的复位
- MCU_RESET_UNDEFINED:复位未定义
描述: 这是复位枚举器的类型,包含复位类型的子集。不要求硬件支持所有复位类型。
10. 性能和软件行为影响
HTMSS在AUTOSAR中的集成对ECUM启动和关闭行为有影响。这将导致:
- 在各自的EcuM阶段(例如更长的EcuM初始化阶段,更长的EcuM关闭阶段)完成HTMSS功能所需的额外时间
- 如果检测到关键故障(即当MSTP测试状态被判断为关键故障时),ECU启动序列可能被中止
因此,集成者可以自由决定AUTOSAR中的HTMSS集成需求,这被提议为符合AUTOSAR软件环境的可选功能。