829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_软件架构

       4.4 诊断贡献

       DiagnosticContributionSet 是 DiagnosticExtract 的核心部分

       DiagnosticExtract 概念形式化的核心部分是 DiagnosticContributionSet。

       在某种程度上,它在通信领域扮演着与系统 [6] 类似的角色。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_02

       DiagnosticContributionSet 维护对 DiagnosticCommonElement 的引用,这意味着诊断贡献程度的实际定义发生了。

       换句话说,给定贡献的实际范围是由 DiagnosticContributionSet 引用的 DiagnosticCommonElements 集合创建的。

       DiagnosticContributionSet 定义了 DiagnosticExtract 的范围

       DiagnosticContributionSet 能够定义给定的 DiagnosticExtract 的范围。 这意味着 DiagnosticContributionSet 代表 AUTOSAR 模型其余部分的 DiagnosticExtract。

       范围可能在整个系统的范围内有所不同,直到特定的一级供应商对更大范围的贡献。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_03

       DiagnosticContributionSet.category 的标准化值

       另一方面,DiagnosticContributionSet 的范围由其类别的值确定。 以下值由AUTOSAR 预定义:

       • DIAGNOSTICS_ABSTRACT_SYSTEM_DESCRIPTION:此DiagnostICS_ABSTRACT_SYSTEM_DESCRIPTION:此DiagnostICS_ABSTRACT_SYSTEM_DESCRIPTION:此DiagnosticContributionSet 表示或多或少的高级定义,可以将其用作创建类别DIAGNOSTICS_SYSTEM_EXTRACT 或DIAGNOSTICS_ECU_EXTRACT 的具体DiagnosticContributionSets 的模板。

       • DIAGNOSTICS_SYSTEM_EXTRACT 的DIAGNOSTICS_SYSTEM_EXTRACT 范围的DIAGNOSTICS_SYSTEM_EXTRACT:  .

       • DIAGNOSTICS_ECU_EXTRACT:此DiagnosticContributionSet 的范围由单个EcuInstances 组成。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_堆栈_04

       DiagnosticContributionSet.ecuInstance 的多样性

       如果封闭的DiagnosticContributionSet 属于DIAGNOSTICS_ECU_EXTRACT 类别,则DiagnosticContributionSet.ecuInstance 的多样性应限制为1。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_05

       应在角色 DiagnosticServiceTable.ecuInstance 中定义对 EcuInstance 的引用,该 EcuInstance 在角色 DiagnosticContributionSet.ecuInstance 中也由上述 DiagnosticContributionSet 引用。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_软件架构_06

       请注意,[constr_1328] 解决了元模型中的有意冗余。DiagnosticContributionSet 和 DiagnosticServiceTable 都能够引用 EcuInstance,因为 DiagnosticContributionSet 和 DiagnosticServiceTable 都可以相互独立建模。

       当然,一旦将DiagnosticContributionSet 和DiagnosticServiceTable 集成到同一上下文中(特别是通过建立引用DiagnosticContributionSet.serviceTable),对适用EcuInstance 的各个引用需要保持一致。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_07

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_08

       DiagnosticContributionSet 可以独立存在

       DiagnosticContributionSet 已被建模为 ARElement,因此其实例可以独立于给定 ARPackage 中提供上下文的模型元素的存在而存在。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_建模_09

       [TPS_DEXT_01005] 详细阐述了使 DiagnosticExtract 独立于上下文的存在的一个重要方面。 例如,可以在某处聚合 DiagnosticContributionSet,例如在系统。

       这种建模有意将 DiagnosticContributionSet 置于与例如就模型粒度而言相同的级别的系统。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_建模_10

       829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_11

       DiagnosticServiceTables 在 DiagnosticContributionSet 上下文中的作用

       DiagnosticContributionSet 还指的是 DiagnosticServiceTables 的集合。 这些形式化了诊断提取的通信协议相关部分。

       换句话说,服务表在 DiagnosticServiceInstances 集合和 DiagnosticConnection 之间创建正式关系,该关系正式化了特定诊断请求和响应消息对的管道,用于将诊断服务调用从测试仪传输到适用的 AUTOSAR 诊断实例堆栈并将诊断堆栈的响应传送回测试仪。

       这意味着,服务表描述了可通过诊断连接获得的一组诊断服务,最终是将诊断服务寻址到 ECU 的请求消息和 ECU 用于响应服务的响应消息。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_12

       这是诊断服务列表的一个例子。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_13

       诊断贡献集

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_建模_14

       诊断服务表

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_15

       诊断连接

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_16

       诊断的常见属性

       DiagnosticExtract 的常见属性

       DiagnosticExtract 的一些属性在 DiagnosticExtract 的所有元素之间共享。 这些属性通过元类 DiagnosticCommonProps 建模。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_建模_17

       图 4.6:常见诊断属性

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_18

       DiagnosticContributionSet 定义了通用诊断属性的应用范围

       DiagnosticContributionSet聚合 DiagnosticCommonProps 并通过这种方式定义通用诊断属性的应用范围。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_11

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_20

       该元类聚合了诊断提取之间共享的许多公共属性。

       标签: vh.latestBindingTime=codeGenerationTime

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_21

       用于分配事件内存条目的触发器类型。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_软件架构_22

       数据触发类型

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_堆栈_23

       冻结帧记录枚举类型

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_24

       DEM_ClearDTC Api的范围

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_软件架构_25

       定义置换策略。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_26

       发生计数器触发类型。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_软件架构_27

       支持的dtc类型

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_28

       除了已经描述的常见诊断属性之外,还有特定于单个 EcuInstance 的其他属性。

       特定于单个 EcuInstance 的诊断属性

       特定于单个 EcuInstance 的诊断属性通过元类 DiagnosticEcuProps 建模,该元类在 EcuInstance 中的角色diagnosticProps 中聚合。

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_autosar_29

       图 4.7:ECU 特定的诊断属性

829_AUTOSAR_TPS_DiagnosticExtractTemplate7_诊断贡献以及常见属性_属性设置_30

       该元类被定义为收集适用于整个 ECU 范围的诊断相关属性。

       这部分小结暂且到此,这次主要看了一些常规的诊断属性设置。而这里面的设置,在我之前的工程实践中很多都是定死的。看起来,这个软件架构在设计的时候考虑的层面的确是非常完全的。下一章节,会介绍诊断的服务,因此这个章节草草做一个小结。