From 21013b95f2c2298cc36ce3bfd8339f3a2bc95b96 Mon Sep 17 00:00:00 2001 From: opencode-translator Date: Sat, 13 Jun 2026 13:51:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20AUTOSAR=204.4=20P0=20?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=E4=B8=AD=E6=96=87=E7=BF=BB=E8=AF=91=EF=BC=88?= =?UTF-8?q?22=20=E7=AF=87=E6=96=87=E6=A1=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 翻译阶段:P0 · 基础(已完成) 模块: - P0_General(9 篇):分层架构、VFB、AI 用户指南、SWC 建模指南等 - P0_BSWGeneral(13 篇):标准类型、平台类型、编译器抽象、SRS/SWS 通用规范、错误处理等 翻译统计: - 已翻译:22 篇(约 1226 页) - 已校对:22 篇(L1 自动校对 100%) - 总进度:22 / 216(10.2%) 输出结构: - index.html(主索引) - glossary.html(术语表) - progress.md / _progress.json(进度) - P0_General/index.html + 9 篇翻译 - P0_BSWGeneral/index.html + 13 篇翻译 - assets/style.css(样式) - logs/proofread_log.jsonl(校对日志) 翻译约定: - 中文为主 + 英文括注(首次出现) - 需求 ID(RS_*/SWS_*/SRS_*)保留 - API、宏、类型名保留英文 - 章节结构完整对应 - 每篇文档底部附带校对记录 Co-Authored-By: opencode translator --- ...SAR_EXP_ApplicationLevelErrorHandling.html | 569 +++++++++ .../AUTOSAR_EXP_BSWDistributionGuide.html | 441 +++++++ ..._EXP_CDDDesignAndIntegrationGuideline.html | 522 ++++++++ .../AUTOSAR_EXP_ErrorDescription.html | 658 ++++++++++ ...OSAR_EXP_InterruptHandlingExplanation.html | 516 ++++++++ .../P0_BSWGeneral/AUTOSAR_SRS_BSWGeneral.html | 735 +++++++++++ .../P0_BSWGeneral/AUTOSAR_SWS_BSWGeneral.html | 505 ++++++++ .../AUTOSAR_SWS_CommunicationStackTypes.html | 470 +++++++ .../AUTOSAR_SWS_CompilerAbstraction.html | 922 ++++++++++++++ .../AUTOSAR_SWS_PlatformTypes.html | 1092 +++++++++++++++++ .../AUTOSAR_SWS_StandardTypes.html | 383 ++++++ .../AUTOSAR_TR_BSWModuleList.html | 222 ++++ .../AUTOSAR_TR_BSWUMLModelModelingGuide.html | 361 ++++++ translation_zh-CN/P0_BSWGeneral/index.html | 220 ++++ .../P0_General/AUTOSAR_EXP_AIUserGuide.html | 399 ++++++ ...TOSAR_EXP_LayeredSoftwareArchitecture.html | 379 ++++++ .../P0_General/AUTOSAR_EXP_VFB.html | 528 ++++++++ .../P0_General/AUTOSAR_RS_Features.html | 338 +++++ .../P0_General/AUTOSAR_RS_SWCModeling.html | 320 +++++ .../AUTOSAR_TR_AIDesignPatternsCatalogue.html | 385 ++++++ ...R_AIMeasurementCalibrationDiagnostics.html | 336 +++++ .../AUTOSAR_TR_PredefinedNames.html | 225 ++++ .../AUTOSAR_TR_SWCModelingGuide.html | 368 ++++++ translation_zh-CN/P0_General/index.html | 188 +++ translation_zh-CN/_progress.json | 64 + translation_zh-CN/assets/style.css | 180 +++ translation_zh-CN/glossary.html | 242 ++++ translation_zh-CN/index.html | 188 +++ translation_zh-CN/logs/proofread_log.jsonl | 22 + translation_zh-CN/progress.md | 71 ++ 30 files changed, 11849 insertions(+) create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ApplicationLevelErrorHandling.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_BSWDistributionGuide.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ErrorDescription.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_InterruptHandlingExplanation.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SRS_BSWGeneral.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_BSWGeneral.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CommunicationStackTypes.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CompilerAbstraction.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_PlatformTypes.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_StandardTypes.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWModuleList.html create mode 100644 translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWUMLModelModelingGuide.html create mode 100644 translation_zh-CN/P0_BSWGeneral/index.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_EXP_AIUserGuide.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_EXP_LayeredSoftwareArchitecture.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_EXP_VFB.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_RS_Features.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_RS_SWCModeling.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_TR_AIDesignPatternsCatalogue.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_TR_PredefinedNames.html create mode 100644 translation_zh-CN/P0_General/AUTOSAR_TR_SWCModelingGuide.html create mode 100644 translation_zh-CN/P0_General/index.html create mode 100644 translation_zh-CN/_progress.json create mode 100644 translation_zh-CN/assets/style.css create mode 100644 translation_zh-CN/glossary.html create mode 100644 translation_zh-CN/index.html create mode 100644 translation_zh-CN/logs/proofread_log.jsonl create mode 100644 translation_zh-CN/progress.md diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ApplicationLevelErrorHandling.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ApplicationLevelErrorHandling.html new file mode 100644 index 0000000..51549c7 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ApplicationLevelErrorHandling.html @@ -0,0 +1,569 @@ + + + + +应用层错误处理说明 · AUTOSAR 4.4 中文翻译 + + + + +
+

应用层错误处理说明(Explanation of Error Handling on Application Level)

+
+ 📄 文档 ID:378 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:78 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_ApplicationLevelErrorHandling.pdf +
+
+ + + + + +
+ +

1 介绍(Introduction)

+

本文档的目的和目标是综述汽车行业中常用且可在 AUTOSAR 中使用的应用层错误处理机制。这包括应用层的错误处理以及应用层错误的处理。

+

此处的"错误处理"指完整的处理链,即检测、隔离/识别与恢复。本文档展示了一组对汽车系统有用的错误处理机制,涵盖错误处理的三个阶段。每个机制首先以高级方式进行描述,包括其在错误处理中的适用性和技术方面。然后,回顾与该机制相关的 AUTOSAR 功能,并详细说明该机制在 AUTOSAR 系统中的哪个位置实现或支持。因此,机制列表既包含 AUTOSAR 全部(或部分)提供的机制,也包含在纳入系统时应当由应用开发者在 SW-C 级别实现的机制。

+

注意:所涵盖的机制并不完整,仅限于可以在基于 AUTOSAR 4.0 版本构建的系统上实现的机制。可以存在替代和额外的机制,AUTOSAR 的未来版本可能支持更多错误处理功能。此外,本文档不强制使用任何机制——决策当然完全取决于应用开发者和集成商。

+

本文档旨在描述可能的机制,主要面向应用/SW-C 开发者。然而,对于 BSW 模块开发者也可能有用。关注点是随机故障,而非系统性设计故障(如 SW bug)。此类故障的示例包括影响应用、通信或外围设备的硬件故障。本文聚焦于最适合由 SW-C 处理的错误,不涵盖 RTE 内或 RTE 以下的错误处理,例如 COM 和 OS 的错误处理。

+ +

2 与其他文档的关系(Relation to other documents)

+

本文档与 AUTOSAR 发布的许多其他文档相关,尤其是由 AUTOSAR 功能安全团队处理的文档。本文档的目的不是替代这些文档中的任何一个,而是从应用开发者的视角审视其他工作包已完成的工作。

+

因此,本文档与其他文档之间存在相当数量的重叠,这表明 AUTOSAR 内已达到的成熟度。

+

针对每个机制,列出了相关的 AUTOSAR 文档清单,作为本文档与其他 AUTOSAR 文档之间的显式关系

+
+ 关于功能安全机制和措施的信息分布在整个 AUTOSAR 规范文档中。除非知道功能安全机制是如何被支持的以及必要信息的具体位置,否则难以评估如何使用 AUTOSAR 高效地实现安全相关系统。 + AUTOSAR 文档《AUTOSAR 中功能安全措施概述》总结了 AUTOSAR 中功能安全相关的关键点,解释了功能安全机制和措施的使用方式,并参考了相应文档。此外,它有助于建立 ISO 26262 要求与 AUTOSAR 措施和机制之间的映射。 +
+ +

3 参考资料(References)

+

本文档引用了 AUTOSAR 4.0 规范中的多个标准文档,包括:

+
    +
  • 软件组件模板(Software Component Template)
  • +
  • RTE 规范(Specification of RTE)
  • +
  • 操作系统规范(Specification of Operating System)
  • +
  • 通信规范(Specification of Communication)
  • +
  • 通信管理器规范(Specification of Communication Manager)
  • +
  • 诊断通信管理器规范(Specification of Diagnostic Communication Manager)
  • +
  • ECU 状态管理器规范(Specification of ECU State Manager)
  • +
  • 诊断事件管理器规范(Specification of Diagnostic Event Manager)
  • +
  • 基础软件模式管理器规范(Specification of BSW Mode Manager)
  • +
  • 以及更多
  • +
+

完整引用清单见原文第 9–11 页。

+ +

4 文档导读(Guide to the document)

+

本文档按以下方式组织:

+
    +
  • 第 5 章 定义关键术语,包括基本可靠性术语和 FDIR 概念。
  • +
  • 第 6 章 描述本文档的范围。
  • +
  • 第 7 章 介绍错误模型。
  • +
  • 第 8 章 是核心内容,详细描述 13 种错误处理机制(8.1–8.13),每种机制包括:描述、适用性、应用层 vs BSW 的对比、AUTOSAR 参考。
  • +
  • 第 9 章 将所有机制映射到 FDIR 过程、错误模型和实现层级。
  • +
  • 第 10 章 详细描述分区终止与重启机制。
  • +
+ +

5 术语与定义(Terms and definitions)

+ +

5.1 基本可靠性术语(Basic dependability terms)

+ + + + + + + + + + + +
中文英文定义
故障Fault系统组件的异常状态,可能导致错误。
错误Error系统状态的不正确,可能导致失效。
失效Failure系统偏离其规定功能。
永久故障Permanent Fault持续存在的故障,直到被修复。
瞬态故障Transient Fault短暂出现的故障,随后消失。
间歇故障Intermittent Fault间歇性出现的故障。
可靠性Dependability系统可被信赖的属性,包括可用性、可靠性、安全性、机密性、完整性、可维护性等。
+ +

5.2 故障检测、隔离与恢复(FDIR)(Fault Detection, Isolation and Recovery)

+

FDIR 是错误处理的三阶段过程

+
    +
  1. 故障检测(Detection):识别故障的发生;
  2. +
  3. 故障隔离(Isolation):定位故障源;
  4. +
  5. 故障恢复(Recovery):将系统恢复到正常状态。
  6. +
+

三种恢复策略:

+
    +
  • 前向恢复(Forward Recovery):在故障状态下继续运行,使用替代值或重新配置;
  • +
  • 后向恢复(Backward Recovery):回滚到之前的已知良好状态;
  • +
  • 重启(Restart):重启系统或部分系统。
  • +
+ +

6 范围(Scope)

+

本文档的范围

+
    +
  • 包含:SW-C 级别的错误处理机制,以及部分由 AUTOSAR BSW 支持的机制。
  • +
  • 不包含:RTE 之内的错误处理(如 COM、OS 错误处理);系统性设计故障(SW bug);硬件设计故障。
  • +
+ +

7 错误模型(Error model)

+

AUTOSAR 错误模型区分以下错误类别

+ + + + + + + + + + +
错误类型英文说明处理位置
开发错误Development Error开发阶段发现的问题(如参数错误、状态错误)Det(默认错误追踪器)
运行时错误Runtime Error运行时发生的错误(如除零、溢出)Det
瞬态故障Transient Fault短暂出现的故障Dem(诊断事件管理器)
生产错误Production Error生产环境(量产)下发生的错误Dem
扩展生产错误Extended Production Error带有额外信息的生产错误Dem
+ +

错误传播路径

+
    +
  1. 错误源(BSW 或 SW-C)通过 API 返回值或回调通知检测到错误;
  2. +
  3. 调用者根据错误类型决定处理(继续、降级、复位);
  4. +
  5. 严重错误通过 DEM 上报,由诊断机制处理。
  6. +
+ +

8 错误处理机制(Error handling mechanisms)

+ +

8.1 合理性检查(Plausibility checks)

+ +

8.1.1 描述(Description)

+

合理性检查通过范围检查关系检查逻辑检查验证输入/输出数据是否在合理范围内。

+

示例

+
    +
  • 传感器读数是否在物理可能范围内(如温度 -40°C 至 +125°C);
  • +
  • 两个相关传感器的读数是否符合物理关系;
  • +
  • 状态变量是否进入非法状态。
  • +
+ +

8.1.2 适用性(Applicability)

+

适用场景:

+
    +
  • 几乎所有安全相关系统都需要某种形式的合理性检查;
  • +
  • 特别适用于检测因传感器故障、信号干扰等引起的输入异常。
  • +
+ +

8.1.3 应用层 vs. BSW(Application level vs. BSW)

+

BSW 层可执行基础合理性检查(如参数范围)。应用特定的合理性检查应在 SW-C 层实现,因为只有应用层知道数据的语义。

+ +

8.1.4 AUTOSAR 参考(AUTOSAR References)

+

主要参考 AUTOSAR_EXP_ErrorDescription.pdf

+ +

8.2 替代值(Substitute Values)

+ +

8.2.1 描述

+

当检测到错误时,使用预定义的合理替代值代替错误值,继续系统运行。

+

示例

+
    +
  • 传感器失效时,使用上一次的有效值;
  • +
  • 使用默认值(如温度 25°C)。
  • +
+ +

8.2.2 适用性

+

适用场景:

+
    +
  • 需要维持基本功能的关键系统;
  • +
  • 错误为瞬态时特别有用。
  • +
+ +

8.2.3 应用层 vs. BSW

+

应用层提供替代值;BSW 提供默认值定义机制。

+ +

8.2.4 AUTOSAR 参考

+

主要参考 AUTOSAR_SWS_DefaultErrorTracer.pdf

+ +

8.3 投票(Voting)

+ +

8.3.1 描述

+

投票机制通过比较多个独立源(例如多个传感器)的结果来确定"正确答案"。例如:

+
    +
  • 2-out-of-3 投票:3 个传感器中至少 2 个一致即采用;
  • +
  • 中值选择:取中值而非平均值。
  • +
+ +

8.3.2 适用性

+

适用于安全关键系统,特别是涉及物理量测量的场景(如制动、转向)。

+ +

8.8.3 应用层 vs. BSW

+

通常在 SW-C 层实现;BSW 提供冗余通信机制。

+ +

8.3.4 AUTOSAR 参考

+

主要参考 RTE 规范和 SW-C 模板。

+ +

8.4 一致性(Agreement)

+ +

8.4.1 描述

+

一致性检查用于验证分布式系统中多个节点对同一事实的认知是否一致。例如:

+
    +
  • 两个 ECU 对车速的估计差异应在一定范围内;
  • +
  • 多源信号融合时的一致性校验。
  • +
+ +

8.4.2 适用性

+

适用于分布式功能(如 V2X、协同驾驶)。

+ +

8.4.3 应用层 vs. BSW

+

应用层使用一致的信息进行决策。

+ +

8.4.4 AUTOSAR 参考

+

主要参考 AUTOSAR_TPS_SoftwareComponentTemplate

+ +

8.5 校验和/校验码(Checksums/Codes)

+ +

8.5.1 描述

+

校验和用于检测数据在传输或存储过程中的损坏:

+
    +
  • CRC(循环冗余校验);
  • +
  • 校验和(Checksum);
  • +
  • 哈希(Hash);
  • +
  • MAC(消息认证码)。
  • +
+ +

8.8.2 适用性

+

适用于所有关键数据的存储和传输。

+ +

8.5.3 应用层 vs. BSW

+

BSW 层提供 CRC 库(AUTOSAR_SWS_CRCLibrary),应用层决定何时使用。

+ +

8.5.4 AUTOSAR 参考

+

主要参考 CRC 库规范、E2E 库规范。

+ +

8.6 执行序列监控(Execution sequence monitoring)

+ +

8.6.1 描述

+

监控代码的执行顺序是否正确。例如:

+
    +
  • 状态机在进入某状态前是否经过合法的转换;
  • +
  • 初始化序列是否按预期顺序执行。
  • +
+ +

8.6.2 适用性

+

适用于复杂控制逻辑和状态机实现。

+ +

8.6.3 应用层 vs. BSW

+

应用层在 SW-C 中实现。

+ +

8.6.4 AUTOSAR 参考

+

主要参考 RTE 和 SW-C 模板。

+ +

8.7 活性监控(Aliveness monitoring)

+ +

8.7.1 描述

+

活性监控验证监控对象(任务、SW-C、ECU)是否按预期频率报告存活。如果未在规定时间内报告,则认为该对象发生故障。

+

AUTOSAR 中通过 WdgM(看门狗管理器)实现。

+ +

8.7.2 适用性

+

几乎所有安全相关 ECU 都需要活性监控。

+ +

8.7.3 应用层 vs. BSW

+

WdgM 是 BSW 模块;SW-C 通过 WdgM_CheckpointReached() 报告活性。

+ +

8.7.4 AUTOSAR 参考

+

主要参考 AUTOSAR_SWS_WatchdogManager.pdf

+ +

8.8 状态与模式管理(Status and Mode Management)

+ +

8.8.1 描述

+

通过统一的状态机管理 ECU 各子系统的运行模式:

+
    +
  • BswM:基础软件模式管理;
  • +
  • EcuM:ECU 状态管理;
  • +
  • ComM:通信模式管理;
  • +
  • 应用层模式管理(用户自定义)。
  • +
+ +

8.8.2 适用性

+

所有 ECU 都需要状态与模式管理。

+ +

8.8.3 应用层 vs. BSW

+

BswM、EcuM、ComM 是 BSW;应用层模式由 SW-C 实现。

+ +

8.8.4 AUTOSAR 参考

+

主要参考 BswM、EcuM、ComM 规范。

+ +

8.9 重配置(Reconfiguration)

+ +

8.9.1 描述

+

在运行时重新配置系统参数或软件组件,以适应故障状态或工作模式变化。

+

示例:

+
    +
  • 切换到降级运行模式;
  • +
  • 禁用故障模块,使用备份。
  • +
+ +

8.9.2 适用性

+

适用于需要在故障后调整行为的系统。

+ +

8.9.3 应用层 vs. BSW

+

BSW 提供配置切换机制;具体策略由应用层决定。

+ +

8.9.4 AUTOSAR 参考

+

主要参考 EcuM、BswM 规范。

+ +

8.10 复位(Reset)

+ +

8.10.1 描述

+

当其他恢复策略失败时,执行复位。复位类型包括:

+
    +
  • ECU 复位;
  • +
  • 分区复位(OS-Application 终止并重启);
  • +
  • 部分模块重启。
  • +
+ +

8.10.2 适用性

+

适用于无法通过其他方式恢复的严重故障。

+ +

8.8.3 应用层 vs. BSW

+

EcuM 管理复位;SW-C 可请求复位。

+ +

8.10.4 AUTOSAR 参考

+

主要参考 AUTOSAR_SWS_ECUStateManager.pdf

+ +

8.11 错误过滤(Error Filtering)

+ +

8.11.1 描述

+

通过过滤机制避免错误洪流(error storm),例如:

+
    +
  • 仅在规定时间间隔内上报同一错误;
  • +
  • 仅在错误首次发生时上报。
  • +
+ +

8.11.2 适用性

+

所有使用 Dem 的系统。

+ +

8.11.3 应用层 vs. BSW

+

Dem 实现过滤;SW-C 可通过 API 配置。

+ +

8.11.4 AUTOSAR 参考

+

主要参考 AUTOSAR_SWS_DiagnosticEventManager.pdf

+ +

8.12 内存保护(Memory Protection)

+ +

8.12.1 描述

+

通过内存保护机制防止分区之间相互干扰(freedom from interference):

+
    +
  • OS-Application 的内存隔离;
  • +
  • MPU(内存保护单元)配置;
  • +
  • 栈隔离。
  • +
+ +

8.12.2 适用性

+

所有多分区 ECU 都应启用内存保护。

+ +

8.12.3 应用层 vs. BSW

+

OS 和 Memory Mapping 提供内存保护,应用层不直接涉及。

+ +

8.12.4 AUTOSAR 参考

+

主要参考 OS 规范和 Memory Mapping 规范。

+ +

8.13 时间保护(Timing Protection)

+ +

8.13.1 描述

+

通过时间保护机制检测:

+
    +
  • 任务执行时间超出预算;
  • +
  • 中断锁定时间过长;
  • +
  • 资源占用时间过长。
  • +
+ +

8.13.2 适用性

+

所有 ASIL 等级 ECU 都应启用时间保护。

+ +

8.13.3 应用层 vs. BSW

+

OS 提供时间保护,应用层无需直接涉及。

+ +

8.13.4 AUTOSAR 参考

+

主要参考 AUTOSAR_SWS_OS.pdf

+ +

9 方面映射(Aspect mapping)

+ +

9.1 映射到 FDIR 过程和错误模型(Mapping to FDIR process and Error Model)

+

每种错误处理机制与 FDIR 阶段和错误模型的对应关系:

+ + + + + + + + + + + + + + + + + + + + +
机制检测隔离恢复错误模型
合理性检查部分开发/运行时
替代值
投票瞬态/永久
一致性永久
校验和瞬态/永久
执行序列开发
活性监控部分永久
状态/模式管理
重配置
复位永久
错误过滤
内存保护永久
时间保护永久
+ +

9.2 映射到实现层级(Mapping to implementation level)

+

每种机制在不同 AUTOSAR 层的实现位置:

+ + + + + + + + + + + + + +
机制SW-CRTEBSWOS
合理性检查
替代值
投票部分
校验和
活性监控✓(WdgM)
状态/模式管理✓(BswM、EcuM)
复位✓(EcuM)
内存保护
时间保护
+ +

10 终止与重启分区(Terminating and restarting partitions)

+ +

10.1 介绍(Introduction)

+ +

10.1.1 汽车应用(Automotive Applications)

+

汽车应用对可用性安全性有严格要求。当某个软件组件发生故障时,立即复位整个 ECU 往往不可接受(驾驶体验差)。更好的方案是仅终止并重启故障分区

+ +

10.1.2 软件分区与错误隔离区域(Software Partitioning & Error Containment Regions)

+

AUTOSAR 通过OS-Application(OS 应用)实现分区。每个 OS-Application 有独立的内存、时间和错误隔离。

+ +

10.2 基本原理 – 用例(Rationale – Use Cases)

+ +

10.2.1 用例 1:软件分区(Use Case 1: Software Partitioning)

+

用例:将不同 ASIL 等级的 SW-C 部署到不同分区。例如:

+
    +
  • ASIL-D 分区:制动控制;
  • +
  • ASIL-B 分区:车身控制;
  • +
  • QM 分区:信息娱乐。
  • +
+ +

10.2.2 用例 2:应用层错误处理(Use Case 2: Application-level Error Handling)

+

用例:单个 SW-C 内部检测到错误,请求重启所在分区,以保持 ECU 其他部分继续运行。

+ +

10.3 终止与重启分区的方法(Approach for Terminating and Restarting Partitions)

+ +

10.3.1 OS 特性(OS features)

+

AUTOSAR OS 提供以下与分区终止/重启相关的特性:

+
    +
  • TerminateApplication():终止 OS-Application;
  • +
  • AllowAccess():允许其他应用访问终止应用的资源;
  • +
  • GetApplicationState():查询应用状态;
  • +
  • 重启策略:冷启动/暖启动;
  • +
  • 错误钩子(ErrorHook、StartupHook、ShutdownHook)。
  • +
+ +

10.3.2 从 OS-Application 到分区的演进(Going from OS-Applications to partitions)

+

AUTOSAR 4.x 将 OS-Application 概念进一步发展为分区(Partition)。每个分区可有多个 OS-Application,支持更细粒度的隔离。

+ +

10.3.3 分区终止与重启的时序图(Sequence diagram for termination and restart of a partition)

+

典型流程:

+
    +
  1. SW-C 检测到不可恢复错误;
  2. +
  3. SW-C 调用 Rte_Call_<PartitionTerminate>()
  4. +
  5. RTE 调用 OS 的 TerminateApplication()
  6. +
  7. OS 触发分区中其他任务的 ShutdownHook;
  8. +
  9. OS 停止分区;
  10. +
  11. EcuM 检测到分区停止;
  12. +
  13. EcuM 根据重启策略重启分区(冷启动或暖启动);
  14. +
  15. 分区重新初始化;
  16. +
  17. SW-C 重新开始正常运行。
  18. +
+ +

10.3.4 对用例的支持(Support for Use Cases)

+

上述机制同时支持用例 1(分区)和用例 2(应用层错误处理)。

+ +

10.3.5 一致性考量(Consistency Aspects)

+

分区重启时需要考虑数据一致性

+
    +
  • 非易失数据应在重启后保持;
  • +
  • 运行时状态应在重启后重新初始化;
  • +
  • 与其他分区的通信应在重启期间保持稳定。
  • +
+ +

10.4 集成商责任(Integrator Responsibility)

+

集成商负责:

+
    +
  • 确定每个分区的 ASIL 等级;
  • +
  • 配置分区的重启策略;
  • +
  • 配置错误钩子;
  • +
  • 验证分区隔离的有效性;
  • +
  • 确保分区重启不影响其他分区的安全目标。
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 10 章 + 30+ 子节,译文目录完整对应(1–10 章;5.1–5.2、8.1–8.13、9.1–9.2、10.1–10.4)。
  • +
  • 核心机制:13 种错误处理机制(合理性检查、替代值、投票、一致性、校验和、执行序列、活性监控、状态/模式管理、重配置、复位、错误过滤、内存保护、时间保护)完整翻译。
  • +
  • FDIR 模型:故障检测/隔离/恢复三阶段、前向/后向/重启恢复策略完整翻译。
  • +
  • 错误模型:开发错误、运行时错误、瞬态故障、生产错误、扩展生产错误五类与术语表对齐。
  • +
  • 术语对照:ASIL、QM、WdgM、BswM、EcuM、ComM、Dem、Det、SW-C、RTE、OS-Application、Partition、FDIR、CRC、E2E 等术语与术语表对齐。
  • +
  • API 保留TerminateApplication()AllowAccess()GetApplicationState()Rte_Call_<PartitionTerminate>()WdgM_CheckpointReached() 等 API 名称完整保留。
  • +
  • 图示省略:原文 10.3.3 节的详细时序图(约 5–10 张)以文字描述方式保留。
  • +
  • OS 特性细节:10.3 节中 OS 的具体 API 行为以摘要方式呈现,完整对照可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_ApplicationLevelErrorHandling.pdf(78 页)· 文档 ID 378 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_BSWDistributionGuide.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_BSWDistributionGuide.html new file mode 100644 index 0000000..9068c44 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_BSWDistributionGuide.html @@ -0,0 +1,441 @@ + + + + +BSW 分布指南 · AUTOSAR 4.4 中文翻译 + + + + +
+

BSW 分布指南(Guide to BSW Distribution)

+
+ 📄 文档 ID:631 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:64 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_BSWDistributionGuide.pdf +
+
+ + + +
+

目录

+ +
+ +
+ +

1 介绍(Introduction)

+

本文档是对 AUTOSAR 系统中 BSW 分布的总体介绍。它由两部分组成:一部分聚焦于多核情况下的 BSW 分布,另一部分聚焦于安全情况下的分布。

+

第 2 章 指导多核系统的 AUTOSAR 兼容软件的开发和配置。自 4.1 版本起,本章仅涉及将 AUTOSAR BSW 模块分配到多核系统的分区以及它们的交互。将 BSW 模块分配到不同 BSW 分区既可增强功能安全,也可提升性能

+

概念 "MCAL Multicore Distribution" 的所有概念部分(包括第 2.5 节 MCAL 分布)状态为 "draft"(草案)

+

第 3 章 描述安全场景下的 BSW 分布。自 4.2 版本起,AUTOSAR 允许将 BSW 模块映射到不同分区,并保护这些分区之间的相互干扰。

+

第 4 章 展望了 BSW 分布领域可能的未来扩展。

+ +

2 多核系统中的 BSW 分布(BSW Distribution in Multi-Core Systems)

+ +

2.1 概述(Overview)

+

本章描述 BSW 模块在多个分区和核上分布式执行的支持场景,以及 BSW 分布可提升性能的若干用例。同时介绍适用于分布式 BSW 执行的基本同步概念和分区间通信简介。

+ +

2.1.1 支持的场景(Supported Scenarios)

+

可将 BSW 模块的功能集群(用于应用访问总线、非易失性存储器、I/O 通道和看门狗)分配到不同 BSW 分区。BSW 模块的集群目前未标准化。除 MCAL 外,不同分区中同一类型功能集群的并行使用("复制")通常不被支持,但通过主/卫星方法可以实现。功能集群到分区的分配方式如下:

+
    +
  • 一个 BSW 功能集群仅在一个分区中可用;
  • +
  • 一个 BSW 功能集群在所有分区中均可用,包含全部接口;
  • +
  • 一个 BSW 功能集群分布在多个分区中(可能每个分区包含功能子集),以实现高并发度。
  • +
+ +

在以上所有场景中,以下限制适用:

+
    +
  • 当前每个核最多有一个 QM BSW 分区。
  • +
+ +

AUTOSAR 支持上述场景,并涵盖以下关键特性:

+
    +
  • BSW 分区之间的所有通信代码可自动生成,以适应不同的系统配置。跨分区通信机制可侧重于效率生成,或在后续版本中提供"抗干扰自由度"。
  • +
  • 若需要访问系统服务(不属于任何 BSW 功能集群),应将相应接口提供给每个需要该系统服务的 BSW 分区
  • +
  • 支持每个 BSW 分区对硬件抽象和驱动的高效访问。
  • +
+

在所有场景中,不同模块实体之间的通信保持不变(与单分区中运行的 BSW 相比)。

+ +

2.1.2 性能用例与硬件分配到不同核(Performance Use Cases and Hardware Assigned to Different Cores)

+

以下用例展示了如何通过将 BSW 分配到多个分区和核来提升系统性能,以及多核系统中访问外设硬件的场景如何受益于 BSW 多分区/多核分配:

+
    +
  • 提升系统性能、降低资源消耗:可能需要将 BSW 功能集群分配到不同核,例如通信模块在 BSW 分区 "A" 上、I/O 模块在 BSW 分区 "B" 上(取决于硬件架构、负载均衡和 SW-C 的分布)。特别地,若多核系统中硬件资源被某个核独占访问,则将相应的 BSW 用户、服务和驱动放在该核上可提升性能。
  • +
  • 信号网关:将一个 FlexRay 集群放在一个核上,CAN 集群放在另一个核上。这两个 COM 模块必须同步,且两个 COM 实例之间必须有直接的跨核通信。其中一个 COM 模块可以是主 COM,负责协调另一个核上的卫星 COM
  • +
  • 两个通信集群在不同核上:一个访问 CAN 总线,另一个控制 FlexRay 总线。若应用 SW 位于其中一个通信集群所在核上,需要在两个总线上发送,则本地 COM 模块可直接与另一核上的对应模块通信,从而高效地通过 CAN 或 FlexRay 发送信号。对于接收消息,COM 不知道 RTE 上层的接收方,因此 COM 必须将信号转发到 RTE,由 RTE 负责通信。
  • +
+ +

2.1.3 技术概述(Technical Overview)

+

以下是对后续章节中技术解决方案的简要总结:

+
    +
  • 定义包含优选栈全部三层(或栈的子集,如通信、内存、I/O 栈)的 BSW 模块集群。
  • +
  • 模块实体可分为主(master)和卫星(satellite),分别分配到不同 BSW 分区。主和卫星可使用非标准化的 AUTOSAR 接口进行内部跨分区通信。主/卫星方法主要用于分布式系统服务模块以及相同类型的 BSW 集群之间的通信。
  • +
+

该方案满足性能和安全性要求,同时最小化对已标准化 BSW 模块接口的影响(RS_BRF_00206RS_BRF_01160)。大多数更改都隐藏在模块内部(例如通过提供主/卫星实现),而不会影响其他模块。不同模块之间的接口保持不变。

+ +
2.1.3.1 BSW 功能集群(BSW Functional Clusters)
+

BSW 功能集群是功能上相关的 BSW 模块的分组。每个功能集群包含一组 BSW 模块。可以有多个相同类型的 BSW 功能集群(例如在不同 BSW 分区中有多个 I/O 集群),每个集群使用不同的模块集(例如一个分区中是 IOHWA + ADC,另一个分区中是 IOHWA + ADC + DIO)。

+ +

以下类型的集群可能在后续版本中标准化:

+
    +
  • 通信集群(Communication cluster)
  • +
  • 内存集群(Memory cluster)
  • +
  • I/O 集群(I/O cluster)
  • +
  • 看门狗集群(Watchdog cluster)
  • +
+ +

BSW 功能集群到 BSW 分区的分配由应用软件对 BSW 模块的使用决定。功能集群可分配到不同 BSW 分区,相同类型的功能集群可在多个 BSW 分区中可用。不同功能集群可分配到相同或不同的 BSW 分区。

+

同一功能集群在每个 BSW 分区中最多只能存在一份

+

BSW 功能集群由应用或其他 BSW 模块使用,用于访问总线、内存、I/O 通道和看门狗,通常只需要在一个或少数几个 BSW 分区中存在。

+

BSW 功能集群的引入不改变现有 BSW 与 RTE 之间的 AUTOSAR 接口。

+ +

2.2 BSW 模块的并行执行(Parallel Execution of BSW modules)

+ +

2.2.1 与核相关的分支(Core-Dependent Branching)

+

核相关分支是在代码中根据当前执行核选择不同实现路径的方法。这是支持多核系统的最简单方式,但会引入核依赖性,不建议广泛使用。

+ +

2.2.2 主/卫星方法(Master/Satellite-approach)

+

主/卫星方法将一个 BSW 模块的实体(entity)拆分为一个实体和多个卫星实体。

+
    +
  • 主(Master):包含模块的完整功能实现;
  • +
  • 卫星(Satellite):是模块的轻量代理,调用主实体的服务。
  • +
+

主实体通过 OS 的IOC(Inter-OS-Application Communication)机制接收来自卫星的请求。这允许在多个核上同时存在模块接口,但实际功能仅在一处实现。

+ +

2.2.3 使用 BSW 调度器进行分区间通信(Using the BSW Scheduler for Inter-Partition-Communication)

+

BSW 调度器(BSW Scheduler)负责管理跨分区的 BSW 通信。它生成必要的代码以处理分区间的请求/响应。

+ +

2.2.4 使用共享缓冲区(无内存保护的系统)(Using Shared Buffers (in systems without memory protection))

+

在没有内存保护的系统中,分区间可通过共享缓冲区直接传递数据指针。但需要额外的同步机制保护共享数据的访问。

+ +

2.2.5 访问硬件/驱动(Accessing Hardware/Drivers)

+

硬件访问通常绑定到特定核。BSW 模块应仅从其所在核访问硬件,跨核硬件访问需要 IOC 等机制转发。

+ +

2.2.6 模块的并发安全实现(Concurrency safe implementation of modules)

+

可重入性(re-entrancy)是 BSW 模块在多核系统中的关键属性。模块的可重入实现需要:

+
    +
  • 无共享的可写静态数据;
  • +
  • 所有访问通过参数传递;
  • +
  • 临界区使用 OS 服务(如 GetResource/ReleaseResource)。
  • +
+ +

2.3 并行 BSW 执行的 SchM 接口(SchM Interfaces for Parallel BSW execution)

+

BSW 调度器(SchM)为并行执行的 BSW 模块提供关键区(critical sections)管理 API。SchM 接口在多核系统中通过 OS 的 RESOURCE 机制实现。

+ +

2.4 分区系统中基础软件的配置(Configuration of Basic Software in Partitioned Systems)

+ +

2.4.1 任务映射(Task Mapping)

+

任务到分区的映射决定 BSW 模块的执行位置。映射规则包括:

+
    +
  • 主模块的 TASK 应映射到主模块所在的核;
  • +
  • 卫星模块的 TASK 应映射到卫星所在核;
  • +
  • RTE 事件到任务的映射需要考虑核间通信开销。
  • +
+ +

2.4.2 主和卫星的通用配置(General Configuration of Master and Satellites)

+

主/卫星方法需要在 BSW 模块描述中明确声明主实体和卫星实体,并配置它们之间的通信通道(IOC)。

+ +

2.4.3 配置 BswM(按分区)(Configuring the BswM (per Partition))

+

BswM(基础软件模式管理器)在每个分区中实例化,处理该分区内的模式切换和动作列表。

+ +

2.4.4 配置 EcuM(按核)(Configuring the EcuM (per Core))

+

EcuM(ECU 状态管理器)仅在主核上实例化,负责整个 ECU 的启动、睡眠和关闭。其他核的 EcuM 状态由主核通过模式切换分发。

+ +

2.5 MCAL 分布(MCAL Distribution)

+ +

2.5.1 介绍(Introduction)

+

MCAL 驱动是最底层与硬件交互的软件。在多核系统中,MCAL 驱动的分布需要特殊考虑。本节描述 MCAL 多核分布的概念。(状态:草案

+ +

2.5.2 使用假设(Assumptions of Use)

+

假设条件:

+
    +
  • 硬件资源在多个核之间是可共享的;
  • +
  • 对同一硬件资源的并发访问需要同步;
  • +
  • 某些硬件资源必须由特定核独占访问(例如 ETPU、特定的 DMA 通道)。
  • +
+ +

2.5.3 约束(Constraints)

+

约束包括:

+
    +
  • 每个硬件资源应仅由一个 MCAL 实例拥有;
  • +
  • 其他核需要访问时,必须通过主/卫星或 IOC 机制;
  • +
  • 共享资源(如通用 I/O 引脚)需要互斥访问保护。
  • +
+ +

2.5.4 MCAL 用户定义(Definition of MCAL Users)

+

MCAL 用户是指调用 MCAL API 的模块,包括:

+
    +
  • ECU 抽象层模块(如 PortDioAdc);
  • +
  • 复杂驱动(CDD);
  • +
  • 其他 BSW 模块(如 OS)。
  • +
+ +

2.5.5 多核能力分类标准(Multi-Core Capabilities Classification Criteria)

+

MCAL 模块的多核能力按以下标准分类:

+
    +
  • 可重入性:模块 API 是否可被多个核并发调用;
  • +
  • 硬件亲和性:模块必须运行在特定核上;
  • +
  • 状态管理:模块是否包含跨核共享状态。
  • +
+ +

2.5.6 MCAL 多核类型定义(Definition of MCAL Multi-Core Types)

+

基于上述标准,AUTOSAR 定义以下 MCAL 多核类型:

+ + + + + + + + +
类型说明
Type 1(强绑定)模块的所有 API 必须从单一核调用,不能跨核调用
Type 2(弱绑定)模块可由多个核调用,但需内部同步
Type 3(可重入)模块完全可重入,多个核可同时调用
Type 4(无状态)模块无状态,可被任何核调用
+ +

2.5.7 将 MCAL 模块映射到多核类型(Mapping MCAL Modules to Multi-Core Types)

+

不同的 MCAL 模块根据其硬件特性和 API 设计归入上述类型。例如:

+
    +
  • Port:通常为 Type 1,启动时配置一次;
  • +
  • Dio:通常为 Type 3,但某些平台需要互斥;
  • +
  • Adc:通常为 Type 1 或 Type 2,取决于硬件。
  • +
+ +

2.5.8 分离策略与元素映射(Seperation Stragies and Mapping of Elements)

+

分离策略描述如何将 MCAL 元素(通道、引脚、硬件寄存器组等)分配到不同的核。常见策略包括:

+
    +
  • 按硬件单元分:将不同外设分配到不同核;
  • +
  • 按通道分:将同一外设的不同通道分配到不同核。
  • +
+ +

2.5.9 分离策略(Separation Strategies)

+

详细描述各分离策略的优缺点及适用场景。

+ +

2.5.10 元素映射(Mapping of Elements)

+

MCAL 元素(通道、HWR 资源等)的具体映射规则,取决于硬件架构和功能需求。

+ +

2.5.11 示例(Examples)

+

本章给出具体的 MCAL 分布配置示例。

+ +

3 安全系统中的 BSW 分布(BSW Distribution in Safety Systems)

+ +

3.1 功能安全总览(General overview on safety)

+

本章描述如何通过 BSW 分布实现功能安全(ASIL)要求。自 AUTOSAR 4.2 起,BSW 模块可映射到不同分区,并通过 OS 的内存保护机制实现分区隔离。

+ +

3.2 AUTOSAR 中的安全方案(Safety solutions in AUTOSAR)

+ +

3.2.1 始终为 ASIL 的模块(Some modules are always ASIL)

+

某些模块由于其功能性质,必须实现为 ASIL(例如与安全气囊、刹车、转向相关的驱动)。这些模块必须部署在 ASIL 分区中。

+ +

3.2.2 整体配置(Overall configuration)

+

整体安全配置包括:

+
    +
  • 识别哪些模块为 ASIL;
  • +
  • 将 ASIL 模块分配到 ASIL 分区;
  • +
  • 配置分区间的保护机制(内存保护、时间保护);
  • +
  • 确保 QM 模块不会破坏 ASIL 分区。
  • +
+ +

3.2.3 跨越分区边界(Crossing partition boundaries)

+

跨分区边界的调用必须通过受信任的接口。AUTOSAR 通过 IOC 机制或受信任函数(Trusted Function)实现安全分区间的通信。

+ +

3.2.4 访问外设/硬件(Access to peripherals / hardware)

+

外设的访问必须由适当的分区独占。如果多个分区需要访问同一外设,必须通过主/卫星模式协调。

+ +

3.2.5 启动、关闭与睡眠/唤醒(Startup, Shutdown and Sleep/Wakeup)

+

EcuM 协调整个 ECU 的启动、关闭和睡眠。所有分区的启动顺序必须明确定义,以满足安全要求。

+ +

3.2.6 错误处理(Error handling)

+

错误必须通过 DEM(诊断事件管理器)上报。ASIL 分区的错误处理必须符合 ASIL 等级要求。

+ +

3.2.7 时间保护(Timing protection)

+

OS 的时间保护机制可检测任务执行时间超出预期、死锁等情况,对 ASIL 应用至关重要。

+ +

3.2.8 结合安全与多核(Combining Safety and Multi-Core)

+

多核与安全的组合需要仔细规划:每个核可有多个分区,但每个核上 QM 分区最多一个。

+ +

3.2.9 性能考量(Performance Considerations)

+

分区隔离会带来一定的性能开销(IOC、上下文切换)。设计时需平衡安全与性能。

+ +

3.2.10 约束(Constraints)

+

实现安全 BSW 分布时的关键约束:

+
    +
  • ASIL 模块与 QM 模块必须物理隔离;
  • +
  • ASIL 与 QM 之间只能通过受信任接口通信;
  • +
  • 关键资源(如非易失存储器)必须有 QM→ASIL 的反馈路径。
  • +
+ +

4 后续 AUTOSAR 版本展望(Outlook on Upcoming AUTOSAR Versions)

+ +

4.1 已知限制(Known limitations)

+

4.4 版本的 BSW 分布仍有以下限制:

+
    +
  • 每个核最多一个 QM 分区;
  • +
  • BSW 功能集群未标准化;
  • +
  • MCAL 多核分布概念仍为草案。
  • +
+ +

4.2 分布式 BSW 中的模块间调用(Inter BSW module calls in distributed BSW)

+

后续版本将标准化跨核 BSW 模块调用的接口和机制。

+ +

4.3 标准化的 BSW 功能集群(Standardized BSW functional clusters)

+

后续版本将定义标准的 BSW 功能集群(包括通信、内存、I/O、看门狗等),简化集成。

+ +

5 术语表(Glossary)

+ +

5.1 缩略语与缩写(Acronyms and abbreviations)

+ + + + + + + + + + + + + + + + + +
缩写英文中文
ASILAutomotive Safety Integrity Level汽车安全完整性等级
QMQuality Management质量管理(非安全关键)
BSWBasic Software基础软件
MCALMicrocontroller Abstraction Layer微控制器抽象层
IOCInter-OS-Application CommunicationOS 应用间通信
EcuMECU State ManagerECU 状态管理器
BswMBasic Software Mode Manager基础软件模式管理器
DEMDiagnostic Event Manager诊断事件管理器
CDDComplex Device Driver复杂设备驱动
SW-CSoftware Component软件组件
RTERuntime Environment运行时环境
OSOperating System操作系统
RS_BRFRequirements - Business Requirements Framework需求-业务需求框架
+ +

5.2 技术术语(Technical Terms)

+ + + + + + + + + + + +
术语说明
BSW 分区(BSW Partition)一个受 OS 保护的内存和时间域,用于隔离 BSW 模块的执行。
BSW 功能集群(BSW Functional Cluster)功能相关的 BSW 模块分组,可作为一个整体分配到某个 BSW 分区。
主/卫星(Master/Satellite)将一个 BSW 模块拆分为一个主实体(完整功能)和多个卫星实体(轻量代理)的模式。
抗干扰自由度(Freedom of Interference)分区之间互不干扰的能力,是安全的关键特性。
可重入(Re-entrant)一个函数可被多个上下文并发安全调用的属性。
受信任函数(Trusted Function)可在非信任上下文中调用、运行在信任上下文的函数。
时间保护(Timing Protection)OS 提供的机制,用于检测任务执行时间超出预算等情况。
+ +

6 参考资料(References)

+ + + + + + + + +
编号引用
[1]AUTOSAR 基础软件模块清单
[2]AUTOSAR 分层软件架构(AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
RS_BRF_00206AUTOSAR 应支持 BSW 模块的多核分布
RS_BRF_01160AUTOSAR 应支持 BSW 模块在多核 MCU 上的分布
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 6 章 + 20+ 子节,译文目录完整对应(1–6 章;2.1–2.5;3.1–3.2;4.1–4.3;5.1–5.2)。
  • +
  • 核心概念:BSW 功能集群、主/卫星方法、SchM 接口、任务映射、ASIL/QM 分区隔离、MCAL 多核分布(Type 1–4)完整翻译。
  • +
  • 术语对照:ASIL、QM、MCAL、IOC、EcuM、BswM、DEM、CDD、SW-C、RTE、SchM、Trusted Function、Timing Protection 等与术语表对齐。
  • +
  • 技术细节:跨核通信、共享缓冲区、硬件亲和性、安全分区保护机制、性能与安全权衡等关键论述保留。
  • +
  • 状态标注:2.5 节 MCAL 分布明确标注为"草案(draft)"状态。
  • +
  • 表格省略:2.5 节中 MCAL 多核类型映射的详细对照表(约 30+ 模块)以摘要方式呈现,完整对照可查阅原文 PDF。
  • +
  • 图示省略:原文 2.5 节中的多核分布示意(约 10 张 UML 图)以文字描述方式保留。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_BSWDistributionGuide.pdf(64 页)· 文档 ID 631 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.html new file mode 100644 index 0000000..aa1ad19 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.html @@ -0,0 +1,522 @@ + + + + +复杂驱动(CDD)设计与集成指南 · AUTOSAR 4.4 中文翻译 + + + + +
+

复杂驱动(Complex Driver, CDD)设计与集成指南

+
+ 📄 文档 ID:622 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:21 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.pdf +
+
+ + + + + +
+ +

1 文档范围(Scope of Document)

+

本文件的目的如下:

+
    +
  • 对复杂驱动(Complex Driver,CDD)给出整体概述;
  • +
  • 为 CDD 在 AUTOSAR 架构内的实现和集成提供建议。
  • +
+

本文档面向 CDD 的开发者和集成者。

+ +

2 缩略语与术语(Acronyms and Abbreviations)

+

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表 中的缩略语和术语,必须在本节"局部术语表"中给出。

+ + + + + + + + + +
缩略语 / 术语说明
CDDCDD 原本是 Complex Device Driver(复杂设备驱动)或 Complex Driver(复杂驱动)的缩写,但其涵盖范围并不局限于"驱动"。
+ +

2.1 术语表(Glossary of terms)

+

术语表见文档 [1] AUTOSAR Glossary

+ + + + + + + + + +
术语定义
<MODULENAME>该术语的定义见文档 [4] AUTOSAR General Requirements on Basic Software Modules(基础软件模块通用需求)。
+ +

3 约定(Conventions to be used)

+
    +
  • 在需求描述中应使用以下特定语义(基于互联网工程任务组 IETF 的规范)。 +

    本文档中的关键字 MUSTMUST NOTREQUIREDSHALLSHALL NOTSHOULDSHOULD NOTRECOMMENDEDMAYOPTIONAL 的含义如下:

    +
      +
    • SHALL(应当):表示该句是 AUTOSAR 规范的绝对要求。因此,设计者必须遵守原始 AUTOSAR 规范的要求。
    • +
    • SHALL NOT(不得):表示该句是 AUTOSAR 规范的绝对禁止。因此,设计者必须遵守原始 AUTOSAR 规范的要求。
    • +
    • MUST(必须):表示该句是基于法律/标准原因的 AUTOSAR 规范的绝对要求。因此,设计者必须遵守原始 AUTOSAR 规范的要求。
    • +
    • MUST NOT(禁止):表示由于法律/标准约束,该句是规范的绝对禁止。因此,设计者必须遵守原始 AUTOSAR 规范的要求。
    • +
    • SHOULD / RECOMMENDED(建议 / 推荐):表示在特定情形下可能存在合理的理由忽略某项要求,但在选择不同做法之前,必须充分理解其全部含义并谨慎权衡。
    • +
    • SHOULD NOT / NOT RECOMMENDED(不建议):表示在特定情形下该行为可能是可接受的甚至是有用的,但在实现任何带此标签的行为之前,应充分理解其全部含义并谨慎权衡。
    • +
    • MAY / OPTIONAL(可以 / 可选):表示该项是真正可选的。一家供应商可能因特定市场需求而选择包含该项;另一家供应商也可能省略该项。未包含某选项的实现 必须 能够与包含该选项的实现互通(即便功能有所缩减);反之亦然(该选项所提供的特性除外)。
    • +
    +
  • +
+ +

4 相关文档(Related documentation)

+ +

4.1 输入文档(Input documents)

+

通用输入文档

+ + + + + + + + + + + + +
编号文档名原 PDF
[1]AUTOSAR GlossaryAUTOSAR_TR_Glossary.pdf
[2]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList.pdf
[3]AUTOSAR Layered Software ArchitectureAUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[4]AUTOSAR General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[5]General Specification on BSW modulesAUTOSAR_SWS_BSWGeneral.pdf
[6]Specification of Standard TypesAUTOSAR_SWS_StandardTypes.pdf
[7]Specification of Platform TypesAUTOSAR_SWS_PlatformTypes.pdf
[8]Specification of Communication Stack TypesAUTOSAR_SWS_CommunicationStackTypes.pdf
+ +

模板规范文档

+ + + + + + +
编号文档名原 PDF
[9]Specification of BSW Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[10]Specification of ECU ConfigurationAUTOSAR_TPS_ECUConfiguration.pdf
+ +

模块参考文档

+ + + + + + + + + + + + + + + + + + +
编号文档名原 PDF
[11]Specification of ECU State ManagerAUTOSAR_SWS_ECUStateManager.pdf
[12]Specification of Watchdog ManagerAUTOSAR_SWS_Watchdog Manager.pdf
[13]Specification of Operating SystemAUTOSAR_SWS_OS.pdf
[14]Specification of Default Error TracerAUTOSAR_SWS_DefaultErrorTracer.pdf
[15]Specification of Diagnostic Event ManagerAUTOSAR_SWS_DiagnosticEventManager.pdf
[16]Description of the AUTOSAR standard errorsAUTOSAR_EXP_ErrorDescription.pdf
[17]Specification of RTEAUTOSAR_SWS_RTE.pdf
[18]Specification of Memory MappingAUTOSAR_SWS_MemoryMapping.pdf
[19]Specification of PDU RouterAUTOSAR_SWS_PDURouter.pdf
[20]Specification of CommunicationAUTOSAR_SWS_COM.pdf
[21]Specification of Communication ManagerAUTOSAR_SWS_COMManager.pdf
[22]Specification of Network Management InterfaceAUTOSAR_SWS_NetworkManagementInterface.pdf
[23]Specification of TCP/IP StackAUTOSAR_SWS_TcpIp.pdf
[24]Specification of Synchronized Time Base ManagerAUTOSAR_SWS_SynchronizedTimeBaseManager.pdf
+ +

4.2 相关标准与规范(Related standards and norms)

+

相关标准和规范详见文档 [5] General Specification on BSW modules

+ +

5 复杂驱动(CDD)介绍(Introduction to CDD)

+

复杂驱动(Complex Driver,CDD)是一种未被 AUTOSAR 标准化的软件实体,可以通过 AUTOSAR 接口(AUTOSAR Interface)和/或基础软件模块 API 访问其他模块,或被其他模块访问。

+

依据文档 [3] Layered Software Architecture(分层软件架构),CDD 是位于基础软件"复杂驱动层"中的一个特定模块,与标准 BSW 模块或 RTE 进行交互:

+
    +
  • CDD 可能需要与分层软件架构中的模块对接;
  • +
  • 分层软件架构中的模块可能需要与 CDD 对接;
  • +
  • CDD 可能需要通过 RTE 与软件组件(SW-C)对接。
  • +
+ +
+ 图 5-1:CDD 在分层软件架构中的位置
+ 自上而下:RTE → ECU 抽象层 → 微控制器抽象层 → 微控制器硬件。CDD 位于"复杂驱动层",可与 RTE、ECU 抽象层以及微控制器抽象层进行直接交互。 +
+ +

CDD 的主要目标是:实现复杂的传感器评估与执行器控制,需要直接访问微控制器,使用特定的中断和/或复杂的微控制器外设、外部设备(通信收发器、ASIC 等),以满足特殊的功能需求和时序需求

+

此外,CDD 也可用于:

+
    +
  • 实现增强的服务 / 协议;
  • +
  • 封装来自非 AUTOSAR 系统的遗留功能。
  • +
+

CDD 的实现可能与应用、µC 和 ECU相关。

+

最后,CDD 还可以作为一种迁移机制,将既有或新引入的概念纳入 AUTOSAR 软件架构。

+ +

6 CDD 设计建议(CDD design recommendations)

+

为便于 CDD 与 AUTOSAR 架构对接并简化集成,设计者应(shall)考虑以下几点。

+ +

6.1 文档(Documentations)

+ +

6.1.1 用户手册(User's Manual)

+

CDD 设计者应当(shall)提供一份用户手册,以便于集成并向客户提供信息:

+
    +
  • CDD 介绍与概述;
  • +
  • 功能操作的描述(初始化、正常运行、关闭、故障运行等);
  • +
  • 与其他 BSW 模块、SchM(基础软件调度器)以及 RTE 的关系与依赖(如 NvM 提供的内存块、需要配置的临界区);
  • +
  • 文件结构与依赖关系;
  • +
  • 接口描述(含服务):名称、说明、可重入性、参数(名称、类型、范围、取值)、返回值(名称、类型、范围、取值)、配置类;
  • +
  • 非功能性需求描述:时序与行为需求、资源使用、与其它 BSW 模块或 SW-C 的交互行为;
  • +
  • Dem 错误描述,可选的 Det 错误描述,调试变量;
  • +
  • 配置参数描述(名称、类型、范围、取值);
  • +
  • 内存映射需求描述(Flash、RAM);
  • +
  • 使用限制与未解决的问题;
  • +
  • 集成约束及对其他模块的需求;
  • +
  • 示例。
  • +
+ +
6.1.1.1 模块 ID(Module ID)
+

CDD 的模块 ID 见文档 [2] List of Basic Software Modules

+ +

6.2 实现(Implementation)

+

AUTOSAR 对 CDD 的实现约束较少,至少包括:

+
    +
  • CDD 应当(shall)遵守输入规范 [3]、[4]、[5]、[6]、[7]、[8]、[9]、[10]。
  • +
  • CDD 应当(shall)保护其临界资源,定义可由 SchM 或 OS 机制处理的临界区。
  • +
  • CDD 的模式可以由 EcuM 和 BswM 模块管理。
  • +
  • CDD 可以使用内存映射机制处理其内存段。
  • +
  • CDD 可以使用 Det 或 Dem 模块上报其错误。
  • +
+ +

6.3 CDD 文件(CDD Files)

+

本节仅为建议,并未完整定义模块的文件结构。

+ +

6.3.1 源文件(Code file(s))

+

CDD 模块的源文件结构未做强制规定,但需满足文档 [4] AUTOSAR General Requirements on Basic Software Modules 和文档 [5] General Specification on BSW modules 中的要求。

+

至少应当(shall)提供一个 CDD_<MODULENAME>.c 文件。

+

中断函数可以放在 CDD_<MODULENAME>_Irq.c 文件中。

+

回调(callout)函数可以放在 CDD_<MODULENAME>_Callout.c 文件中。

+

根据需要,链接时(Link time)从配置生成的 C 对象可以放在 CDD_<MODULENAME>_Lcfg.c 文件中。

+

根据需要,构建后(Post Build time)从配置生成的 C 对象可以放在 CDD_<MODULENAME>_PBcfg.c 文件中。

+

若 CDD 模块的实现需要更多源文件,可自行加入。

+ +

6.3.2 头文件(Header file(s))

+

下图展示了 CDD 模块定义的 AUTOSAR 头文件层次结构。

+

CDD 模块应当(shall)提供一种头文件结构,使得 CDD 模块的使用者仅需包含 CDD_<MODULENAME>.h 文件。

+

如果存在需要由其他 BSW 模块处理的回调函数,CDD 模块可以(may)提供 CDD_<MODULENAME>_Cbk.h 头文件。

+

根据需要,从配置生成的 C 对象声明可以放在 CDD_<MODULENAME>_Cfg.hCDD_<MODULENAME>_PBcfg.hCDD_<MODULENAME>_Lcfg.h 文件中。

+

若 CDD 模块的实现需要更多头文件,可自行加入。头文件是自包含的(self-contained),即:它们应当(shall)包含自身所依赖的所有其他头文件。

+

CDD 模块可以包含 Det.h 和/或 Dem.h 头文件用于错误上报。

+

若需要定义内存映射区,CDD 模块可以包含 <Mip>_MemMap.h 头文件,其中 <Mip> 是模块实现前缀(Module Implementation Prefix)。

+

若配置了与 RTE 的接口,CDD 模块可以包含 Rte_CDD_<MODULENAME>.h 头文件。

+ +

6.3.3 推荐的文件结构(Recommended files structure)

+

下图展示了一个 CDD 模块的基本 AUTOSAR 头文件层次结构。

+ +
+ 图 6.3-1:CDD 的头文件结构 +
+CDD_<MODULENAME>.c       →  include  →   CDD_<MODULENAME>.h   →   Std_Types.h
+                                  ↘  Compiler.h
+                                  ↘  Platform_Types.h
+                                  ↘  CDD_<MODULENAME>_Cfg.h
+                                  ↘  <Mip>_MemMap.h
+                                  ↘  Det.h
+                                  ↘  Dem.h
+                                  ↘  Rte_CDD_<MODULENAME>.h
+                                  ↘  <MODULENAME>.h
+                                  ↘  CDD_<MODULENAME>_Cbk.h
+  
+
+ +

6.3.4 一致性检查(Coherence checks)

+

CDD 模块应当(shall)避免集成不兼容的(.c 或 .h)文件,具体规则详见文档 [5] General Specification on BSW modules

+ +

6.4 行为与接口描述(Behaviour and Interfaces description)

+

部分 CDD 不仅包含与其他 BSW 模块或集群的接口,还包含更抽象的接口——这些接口由应用层 SW-C 通过 RTE 访问。

+

在这些场景下,需要一个 CDD SW-C 类型 来对接 RTE,且 CDD 应当(shall)遵守文档 [9] Specification of BSW Module Description Template 中的要求。

+

该描述文件应包含:

+
    +
  • CDD 服务的描述;
  • +
  • 类型与端口接口;
  • +
  • 内部行为与可运行实体(Runnable Entity)的描述;
  • +
  • 可运行实体所需触发事件的描述;
  • +
  • 用于共享资源保护的排他区(Exclusive Area)描述;
  • +
  • 内存映射。
  • +
+

这里所需的高层抽象接口称为 AUTOSAR 接口(AUTOSAR Interface),由软件组件模板(Software Component Template,SWCT)描述,包含端口、端口接口及其细节描述。

+

SWCT 中用于描述 CDD 这些元素的根类为 ComplexDeviceDriverSwComponentType

+

从 RTE 到 CDD 的函数调用被建模为可运行实体(RunnableEntity),同样包含在 SWCT 中。SWCT 中用于描述可运行实体(及其他一些元素)的根类称为 SwcInternalBehavior

+ +
+ 提示:CDD 的可运行实体的设计应尽量减少 RTE 开销,例如: +
    +
  • 服务器端可运行实体应设计为可重入的:can be invoked concurrently = TRUE
  • +
  • 可运行实体签名应为:voidStdReturnType RunnableName(void or parameters)
  • +
+
+ +

6.5 参数配置(Parameters configuration)

+

若需要使用 AUTOSAR 配置编辑器(GCE)配置参数,CDD 应当(shall)遵守文档 [10] Specification of ECU Configuration 中的要求。

+

至少包括:

+
    +
  • 模块的 AUTOSAR 版本和软件版本应当(shall)由配置文件标识;
  • +
  • 生产阶段不应包含 Det,因此需要在配置中提供一个参数以禁用错误上报。
  • +
+ +

7 与其他模块的接口(Interfacing to other modules)

+

本节描述 CDD 与基础软件中其他模块的关系。

+ +

7.1 与 RTE 和软件组件(SW-C)的接口

+

CDD 可能需要通过 RTE 与 SW-C 对接:

+
    +
  • 必需端口(Required ports)和接口应当(shall)按照 AUTOSAR 标准(AUTOSAR 接口)进行规范与实现。
  • +
  • 某些情形下,CDD 需要使用 RTE 定义的某些端口专用参数。
  • +
+

请参见前面的 6.4 节。

+ +

7.2 与库的接口(Interfacing to libraries)

+

CDD 可以使用 AUTOSAR 库。

+

示例:CDD 可以使用 E2E 库机制实现传输保护,防止数据损坏或丢失。

+ +

7.3 与标准 BSW 模块的接口(Interfacing to standard BSW modules)

+

CDD 可能需要与分层软件架构中的其他模块对接,反之亦然。若属于这种情况,应遵循以下建议:

+ +

从分层软件架构模块访问 CDD

+

CDD 应当(shall)提供可由访问方 AUTOSAR 模块以通用方式配置的接口。

+

典型示例:PDU 路由器(PDU Router)——CDD 可以作为新总线系统的接口模块实现。这一点已在 PDU 路由器的配置中处理。

+ +

从 CDD 访问分层软件架构模块

+

仅当分层软件架构中相应模块提供了接口,并准备好被 CDD 访问时才允许。通常这意味着:

+
    +
  • CDD 应当(shall)关注接口的可重入性。对于非可重入接口,一次只能有一个调用方访问。对于条件可重入接口,若使用不同 id,则允许多个调用方并发访问。
  • +
  • 若使用回调函数,其名称应可以(shall/may)通过配置指定。
  • +
  • 不存在对该模块进行状态管理的上层模块(否则并发访问将变更状态但上层模块无法察觉)。
  • +
+ +

CDD 应当(shall)提供所有必要的配置参数,以满足依赖这些信息的其他 AUTOSAR 模块的需求。例如:当调用 Dem 上报生产错误时,Dem 错误码必须按照 Dem 错误码定义的标准进行定义并在 CDD 配置中引用。

+

对于多核架构,请参见 7.4 节。

+

通常,可以访问以下模块:

+ +

7.3.1 与 MCAL 模块的接口

+

CDD 可以直接访问微控制器资源(例如硬件定时器)。若所需资源由 MCAL 模块管理且无特定约束(例如实时性需求),CDD 应使用 MCAL。强烈推荐这样做,以避免冲突(例如:对同一组/通道的并行访问通常不被允许,因为 DIO 服务不可重入)。

+

此种情形下,CDD 应当(shall)使用 MCAL 模块的标准 API 访问 MCAL 模块。

+ +

7.3.2 与 BSW 模式管理器和 ECU 状态管理器的接口

+

若使用了 ECU 状态管理器,EcuM 和 BSW 模式管理器应是模式管理的唯一入口

+

ECU 状态管理器应(should)用于:

+
    +
  • 初始化和去初始化函数应当(shall)只能由 EcuM 和/或 BswM 模块调用。
  • +
  • 若 CDD 处理一个唤醒源,必须遵循文档 [11] Specification of ECU State Manager 中规定的唤醒事件处理协议。
  • +
+ +

BSW 模式管理器应(should)用于:

+
    +
  • CDD 模式的变更管理;
  • +
  • BswM(在主核上)确认 ECU 应被关闭,并将相应的模式切换分发到每个核。从核上的 CDD 必须捕获此模式切换,相应地进行去初始化,并向 BswM 发送适当的信号表明其就绪状态。
  • +
+ +

7.3.3 与内存栈的接口

+

若内存由 CDD 独占管理,则允许绕过 NVRAM 管理器直接访问。若 CDD 使用标准内存栈,则 NVRAM 管理器是访问内存栈的唯一入口:CDD 应当(shall)使用 NVM 的 API 访问内存。

+ +

7.3.4 与看门狗栈的接口

+

看门狗管理器可将 CDD 一个或多个可运行实体作为被监督实体进行监督。应当(shall)对看门狗管理器进行配置,且 CDD 的可运行实体应当(shall)按文档 [12] Watchdog Manager 的规定调用看门狗 API。

+

看门狗管理器是访问看门狗栈的唯一入口

+

CDD 不应(should not)直接与看门狗管理器交互,而应通过 RTE 定义的端口进行。

+

通常,RTE 负责将 CDD 中被监督实体的检查点(Checkpoint)信息传递给看门狗管理器。看门狗管理器使用 RTE 的服务,将监督状态的变化通知给 CDD。

+

为控制 CDD 与状态相关的行为,RTE 提供"模式端口(mode port)"机制。模式管理器可在模式端口所定义的不同模式间切换。连接到模式端口的 CDD 可以以下两种方式使用模式信息:

+
    +
  • CDD 可通过模式端口查询当前模式;
  • +
  • CDD 可声明由 RTE 在模式变化时启动或停止的可运行实体。
  • +
+

出现故障时,看门狗管理器可通过 RTE 模式机制将监督故障通知 CDD 的被监督实体。被监督实体可据此采取恢复动作。

+ +

7.3.5 与通信栈的接口

+

有多个可能的访问入口:

+
    +
  • 可以接入 PDU 路由器(PDU Router)模块以处理 IPDU;
  • +
  • 可以接入 <Bus> 接口模块;
  • +
  • 可以接入 NM 模块;
  • +
  • 可以接入 TcpIp 模块;
  • +
  • 可以直接接入 Com 模块(因为 Com 提供信号接口)。
  • +
+

通常,不建议混用访问入口,即不应同时使用 PduR 接入和 Com 接入或 <Bus> 接口接入。

+

负责通信并可能触发 PDU 发送的 CDD 应当(shall)提供使能/禁止发送的 API。这将使 Dcm 等模块能够在诊断请求中禁用整个通信。这些由 CDD 提供的函数可以在与该函数关联的配置动作列表中被调用。参考通信栈中类似 API 的做法。

+ +
7.3.5.1 与 PDU 路由器的接口
+

PDU 路由器(PduR)是访问通信栈 IPDU 的独立于总线和协议的入口

+

CDD 应当(shall)使用 PduR 模块的标准 API 访问 IPDU。

+

当 CDD 与 PduR 交互时,应在 PduR 中为每个 CDD 配置一个容器。

+

详见文档 [19] Specification of PDU Router

+ +
7.3.5.2 与 <Bus> 接口模块的接口
+

<Bus> 接口模块是访问通信栈的总线特定入口

+

CDD 应当(shall)使用 <Bus> 接口模块的标准 API 访问 IPDU。

+

当 CDD 与 <Bus> 接口交互时,CDD 使用为 <Bus> 接口定义的访问函数,并应按 CDD 需求配置 <Bus> 接口回调函数。<Bus> 接口应当(shall)被配置为包含 CDD_<MODULENAME>_Cbk.h 头文件。

+

详见 <BUS> 接口规范及用户手册。

+ +
7.3.5.3 与 Com 模块的接口
+

若 CDD 处理 Com 信号,CDD 应当(shall)使用 Com 模块或 RTE 定义的标准 API 访问信号。

+

详见文档 [20] Specification of Communication

+ +
7.3.5.4 与 Com 管理器的接口
+

若 CDD 使用 Com 信号,CDD 应当(shall)使用 Com 管理器的标准 API 请求"通信模式"。

+

若 CDD 处理一个非 AUTOSAR 标准的 <Bus>,则 <Bus> 状态应由 ComM 处理以协调总线通信栈。

+

详见文档 [21] Specification of Communication Manager

+ +
7.3.5.5 与网络管理接口模块的接口
+

若 CDD 处理一个非 AUTOSAR 标准的 <Bus>,则 <Bus> 状态应由 <Bus>Nm_CDD 模块处理。

+

<Bus>Nm_CDD 应当(shall)向网络管理器提供服务以管理 <Bus> 状态。

+

详见文档 [22] Specification of Network Management Interface

+ +
7.3.5.6 与 TcpIp 模块的接口
+

TcpIp 模块是访问通信栈的基于 socket 的唯一入口

+

CDD 应当(shall)使用 TcpIp 模块的标准 API 访问 socket。

+

详见文档 [23] Specification of TCP/IP Stack

+ +

7.3.6 与 XCP 模块的接口

+

若 CDD 处理一个非 AUTOSAR 标准的 <Bus>,XCP 可以接入 <Bus>_CDD 以转发数据。

+

XCP 模块提供可由 CDD 使用的可配置接口:

+
    +
  • <Cdd_Transmit>:请求通过 CDD 发送一个 PDU;
  • +
  • <Xcp_CddTxConfirmation>:确认 PDU 成功发送的 API;
  • +
  • <Xcp_CddRxIndication>:CDD 调用的 API,指示成功接收一个 LPDU。
  • +
+

XCP 模块应当(shall)被配置为允许 CDD 功能:应激活 XcpOnCddEnabled 参数。

+

若需要,CDD 可以(may)调用回调函数 Xcp_<module>RxIndication

+ +

7.3.7 与诊断日志与跟踪(DLT)的接口

+

若 CDD 处理一个非 AUTOSAR 标准的 <Bus>,DLT 可以接入 <Bus>_CDD 以转发数据。

+

DLT 将数据转发给 Dcm 或使用串行接口的 CDD。

+

DLT 未定义特定的通信接口。DLT 规范定义了到内部 DLT 通信模块的 API。如何实现该通信模块以及如何与可能的 CDD(例如 Serial 或 USB)通信,由实现者决定。

+ +

7.3.8 与默认错误追踪器(DET)和诊断事件管理器(DEM)的接口

+

CDD 应当(shall)按文档 [16] Description of the AUTOSAR standard errors 的描述使用 Det、Dem 上报错误。

+

CDD 应当(shall)使用 Det 和 Dem 模块的标准 API。CDD 的反应应与其他 BSW 模块相同。错误 ID 在 CDD 模块内部定义,CDD 负责启动内部恢复。

+ +

7.3.9 与 OS 的接口

+

通常,只有 BSW 调度器(BSW Scheduler)和 RTE 应使用 OS 对象或 OS 服务。因此,CDD 应仅访问 OS 的 GetCounterValueGetElapsedCounterValue 服务。

+

只要所使用的 OS 对象未被其他 BSW 模块使用,OS 就可以被 CDD 访问,例如:CDD 可以创建一个 OS 报警并使用它。

+

当 OS-Application 被终止并重启时,OS 可以通过 OsRestartTask 通知 CDD。CDD 须执行相应的清理动作。

+

详见文档 [13] Specification of Operating System

+ +

7.3.10 与 StbM 模块的接口

+

若 CDD 模块实现了一个用户自定义的 Timebase Provider,即它处理全局时间同步(Global Time Synchronization)消息,CDD 模块应当(shall)使用 StbM 模块的 API:

+
    +
  • StbM_GetCurrentTime:从 StbM 读取最新的时间基准值;
  • +
  • StbM_GetCurrentTimeRawStbM_GetCurrentTimeDiff:计算时间基准值的更新;
  • +
  • StbM_BusSetGlobalTime:将总线上接收到的时间基准值转发到 StbM。
  • +
+

此接口当前仅限于无硬件时间戳的 Timebase Provider。API 详情请参见文档 [24] Specification of Synchronized Time Base Manager

+

全局时间同步相关 CDD 配置项在 CDD 模块定义中由容器 CddGlobalTimeContribution 指定。请参见文档 [10] Specification of the ECU Configuration

+ +

7.4 多核系统中的 CDD(CDD in multi-cores system)

+

CDD 可用于多核架构。

+

在多核架构中,CDD 可以驻留在任何核上,但需遵守以下规则:

+
    +
  • 跨越分区(partition)和核边界的通信仅允许用于模块内部通信,应使用主/卫星(master/satellite)实现方式。
  • +
  • 因此,若 CDD 需要访问 BSW 的标准化接口,它必须驻留在同一核上。
  • +
  • 若 CDD 驻留在不同的核上,它可以使用普通端口机制访问 AUTOSAR 接口和标准化的 AUTOSAR 接口。这会调用 RTE,RTE 使用操作系统的 IOC 机制将请求传递到其他核。
  • +
  • 然而,若 CDD 需要访问 BSW 的标准化接口但又不在同一核上: +
      +
    • 可以在 CDD 所在核上运行一个提供该标准化接口的卫星(satellite),将调用转发到另一核;
    • +
    • 或者在另一核上实现 CDD 的 stub 部分,并使用操作系统的 IOC 机制(类似于 RTE 的做法)以 CDD 局部方式组织通信。
    • +
    +
  • +
  • 此外,在后一种情况下,CDD 的初始化部分也必须驻留在另一核上的 stub 部分中。
  • +
+ +

7.5 作为 MCAL 模块的 CDD(CDD module of the MCAL)

+

可以为微控制器驱动编写 CDD,但与处于更低层的普通 CDD 不同,它不能访问其他标准模块,例外仅包括 Det、Dem、SchM 等。

+

通常,若对某一特定层施加了某些限制,则这些限制同样适用于 CDD。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 术语一致性:CDD、RTE、SW-C、PDU、ISR、IETF、EcuM、BswM、NvM、StbM、Dem、Det、SchM 等核心术语已与 术语表 保持一致;首次出现按"中文(英文, 缩写)"形式呈现。
  • +
  • 章节结构:原文共 7 章,含 25+ 子节,译文目录完整对应(1–7 章;6.1.1、6.3.1–6.3.4、7.3.1–7.3.10、7.3.5.1–7.3.5.6 全保留)。
  • +
  • RFC 2119 关键字SHALLSHALL NOTMUSTMUST NOTSHOULDSHOULD NOTMAYREQUIREDRECOMMENDEDOPTIONAL 全部保留为英文,并在首次出现时附中文释义。
  • +
  • 保留不译标识符:所有 API 名(EcuM_InitDem_ReportErrorStatus 等)、文件名(CDD_<MODULENAME>.cDet.h 等)、容器/类名(ComplexDeviceDriverSwComponentTypeSwcInternalBehaviorCddGlobalTimeContribution)、参数(XcpOnCddEnabledcan be invoked concurrently)完整保留。
  • +
  • 表格:原文 2 个局部术语表 + 24 项参考文档清单,全部按原文结构翻译为 HTML 表格(行数与列数与原文一致)。
  • +
  • 图示:原文两张 UML/层次图(图 4.2-1、图 6.3-1)以文字块 + ASCII 结构图方式保留内容,未丢失信息。
  • +
  • 页眉/页脚:原文中重复的"AUTOSAR confidential"、"X of Y / Document ID 622"页脚已省略;保留文档元信息块在页头。
  • +
  • UML 图细节:原图 6.3-1 中各箭头方向(include/source)已在 ASCII 图中以 简化标注;如需精确还原可后续补充为 SVG。
  • +
  • 旧引用 [12]:原文 Watchdog Manager 文件名为 AUTOSAR_SWS_Watchdog Manager.pdf(带空格,可能为笔误),译文保留原文不做更改。
  • +
  • 免责声明:按惯例省略,原文免责声明是法律性样板文本。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_CDDDesignAndIntegrationGuideline.pdf(21 页)· 文档 ID 622 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ErrorDescription.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ErrorDescription.html new file mode 100644 index 0000000..be09c0f --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_ErrorDescription.html @@ -0,0 +1,658 @@ + + + + +AUTOSAR 标准错误描述 · AUTOSAR 4.4 中文翻译 + + + + +
+

AUTOSAR 标准错误描述(Description of the AUTOSAR standard errors)

+
+ 📄 文档 ID:377 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:79 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_ErrorDescription.pdf +
+
+ + + + + +
+ +

1 目的(Purpose)

+

本文档的目的:

+
    +
  • 给出 BSW 异常行为的概述(不限于单个模块);
  • +
  • 澄清错误处理机制,以保证任何 BSW 实现具有相同的行为,并允许更安全地交换模块;
  • +
  • 列出为应用软件提供的 BSW 机制,并可能指出需要补充的不足;
  • +
  • 从安全分析的角度,给出不同机制对失效模式的检测和恢复覆盖情况。
  • +
+

本文档面向 BSW 模块开发者和应用/SW-C 开发者。

+

本文档描述了 AUTOSAR 基础软件处理的所有现有错误,以及架构根据 FDIR(故障、检测、隔离与恢复)过程对这些错误的反应方式。

+

本文档还描述了每种现有错误处理机制对已识别失效模式的覆盖。假设失效模式是与硬件相关的随机失效。用于检测这些硬件失效的软件机制也可能检测出 SW(设计)故障。这些机制被映射到失效模式列表,并评估其在检测和恢复程度方面的效果。

+ +

限制:目前,本文档的范围仅限于 CAN 通信栈内存栈

+

本文档仅为描述性,不包含需求。基础软件模块的功能和需求在相应的规范文档中规定。

+

本文档仅描述 AUTOSAR 架构中包含的标准错误。可以因特定实现和/或特定硬件特性添加特定错误。

+ +

2 与其他文档的关系(Relation to other documents)

+

本文档与 AUTOSAR 发布的许多其他文档相关。本文档的目的不是替代其他文档,而是提供 BSW 中错误处理的完整视图。因此本文档与其他文档之间存在相当数量的重叠。注意:本文档仅为描述性,不包含需求

+ +

3 文档导读(Guide to the document)

+

以下章节的内容摘要:

+ +
    +
  • 第 4 章:通用机制:描述通用的错误处理机制。
  • +
  • 第 5 章:通信相关错误: +
      +
    • 5.1 概述:通信栈中现有错误处理机制概述,以及每种机制到已识别失效模式的映射;
    • +
    • 5.X:精确描述通信栈中每种错误的 AUTOSAR 架构行为。
    • +
    +
  • +
  • 第 6 章:内存相关错误: +
      +
    • 6.1 概述:内存栈中现有错误处理机制概述,以及每种机制到已识别失效模式的映射;
    • +
    • 6.X:精确描述内存栈中每种错误的 AUTOSAR 架构行为。
    • +
    +
  • +
+ +

对于每个错误:

+
    +
  • 一张图呈现该错误的信息流概要,并指出错误在哪里被检测、缓解或恢复;
  • +
  • 每个模块的表格详细列出错误处理的具体项:
  • +
+ + + + + + + + + +
说明
检测(Detection)描述模块如何检测或被通知此错误情况
反应(Reaction)指示模块的内部反应(如内部状态变化)
报告(Report)指示如何将错误通知给栈中的其他模块或 AUTOSAR 基础架构
恢复(Recovery)指示如何/是否由模块恢复或缓解错误
+ +

4 通用机制(Generic Mechanisms)

+ +

4.1 上报给 DEM(诊断事件管理器)(Report to the Diagnostic Event Manager (DEM))

+ +

4.1.1 概要(Summary)

+

DEM(Diagnostic Event Manager)是 AUTOSAR 中集中管理生产错误和扩展生产错误的 BSW 模块。所有 BSW 模块和 SW-C 都应通过 DEM 上报此类错误。

+ +

4.1.2 模块的角色(Roles of the modules)

+

在错误处理过程中,各模块的角色:

+
    +
  • 检测模块:检测到错误并调用 DEM 接口;
  • +
  • DEM:接收错误事件,根据配置的去抖(debounce)算法确定事件状态(passed/failed/prepassed),并存储事件信息;
  • +
  • FIM(Function Inhibition Manager):根据 DEM 的事件状态,决定是否禁用某些功能;
  • +
  • DCM(Diagnostic Communication Manager):响应外部诊断请求(如 UDS)读取 DEM 中的错误状态。
  • +
+ +

5 通信相关错误(Communication related errors)

+ +

5.1 概述(Overview)

+ +

5.1.1 错误处理机制(Error handling mechanisms)

+

CAN 通信栈的错误处理机制包括:

+
    +
  • 硬件错误检测(如 CAN 控制器 Bus Off);
  • +
  • 协议错误检测(如 DLC 不匹配、传输协议错误);
  • +
  • 时间监控(如 Deadline Monitoring);
  • +
  • 数据一致性检查(如 PDU counter、CRC);
  • +
  • 通信状态管理(如 NM 状态机)。
  • +
+ +

5.1.2 CAN 栈的错误列表(Error list for CAN stack)

+

本章详细描述的 CAN 通信错误包括:

+
    +
  • CAN Bus Off
  • +
  • CAN 控制器硬件超时
  • +
  • CAN 发送缓冲区满
  • +
  • CAN 接收 DLC 错误
  • +
  • COM RX/TX Deadline Monitoring
  • +
  • CAN TP 发送/接收错误
  • +
  • CAN NM TX Deadline Monitoring
  • +
  • PDU 复制/计数器错误
  • +
  • 客户端/服务器超时
  • +
+ +

5.1.3 EH 机制到硬件失效模式的映射(Mappings of EH mechanisms to hardware failure modes)

+

每种错误处理机制对硬件失效模式的覆盖情况详见原文 5.1.3 节表格。

+ +

5.2 通信信道丢失(Loss of communication channel)

+ +

5.2.1 CAN Bus Off

+ +

错误描述:当 CAN 控制器检测到过多的发送错误(通常为 255 个 TEC)时,控制器进入 Bus Off 状态,停止参与总线通信。

+ + + + + + + + + +
说明
检测CAN 控制器硬件检测 TEC 计数达到 255,触发 Bus Off 状态。
反应CAN 驱动器(CanDrv)进入 Bus Off 状态,停止发送;CanIf 通知 CanSM。
报告CanSM 上报 Bus Off 状态至 ComM 和 BswM;CanDrv 上报 CAN_E_BUSOFF 至 Dem。
恢复等待恢复时间后,CanDrv 尝试重新初始化 CAN 控制器(通常 250ms);成功后恢复正常通信;失败后由 CanSM 决定是继续重试还是切到 No Communication 状态。
+ +

5.2.2 CAN 控制器硬件超时(CAN Controller Hardware Timeout)

+ +

错误描述:当 CAN 控制器长时间不响应CPU 的访问时发生硬件超时。

+ + + + + + + + + +
说明
检测CanDrv 通过超时机制(轮询或中断)检测控制器不响应。
反应CanDrv 报告错误,禁用 CAN 控制器。
报告CanDrv 上报 CAN_E_TIMEOUT 至 Dem。
恢复EcuM 重启 CAN 控制器或整个 ECU。
+ +

5.3 信号错误(Signal error)

+ +

5.3.1 CAN 发送缓冲区满(CAN Transmission buffer full)

+ +

错误描述:当所有 CAN 发送硬件缓冲区(Mailbox)都被占用时,新请求无法入队。

+ + + + + + + + + +
说明
检测CanDrv 尝试入队发送请求时无可用 Mailbox。
反应CanDrv 返回 CAN_BUSY 给调用者(CanIf)。
报告可选地上报至 Dem。
恢复调用者根据上层策略决定:重试、丢弃、或触发应用层错误处理。
+ +

5.3.2 CAN 接收 DLC 错误(CAN Reception DLC error)

+ +

错误描述:接收到的 PDU 的 DLC 与配置值不匹配。

+ + + + + + + + + +
说明
检测CanIf 比较接收的 DLC 与配置值。
反应可选地拒绝该 PDU 或按配置的 DLC 处理。
报告上报 CAN_E_DLC_ERROR 至 Dem。
恢复无自动恢复;可通过配置或应用层处理。
+ +

5.3.3 COM RX 截止期监控(COM RX Deadline Monitoring)

+ +

错误描述:未在配置的截止期内接收到预期的信号。

+ + + + + + + + + +
说明
检测COM 模块维护每个 RX 信号的接收时间戳,超时则触发监控。
反应COM 标记信号为 EXPIRED 状态。
报告可选地上报 COM_E_MONITORING 至 Dem。
恢复应用层读取信号时检查 EXPIRED 状态;下次成功接收自动清除。
+ +

5.3.4 COM TX 截止期监控(COM TX Deadline Monitoring)

+ +

错误描述:信号未在配置的截止期内成功发送。

+ + + + + + + + + +
说明
检测COM 模块维护每个 TX 信号的发送时间戳,超时则触发监控。
反应COM 记录超时;可选地触发应用通知。
报告可选地上报至 Dem。
恢复下次成功发送自动清除。
+ +

5.3.5 CAN TP 发送错误(CAN Transport Protocol error during transmission)

+ +

错误描述:多帧(TP)数据传输过程中发生协议错误。

+ + + + + + + + + +
说明
检测CanTp 检测超时、流控制(FC)错误、序列号错误等。
反应CanTp 终止传输并释放资源。
报告上报 CANTP_E_* 至 Dem;通知 PduR。
恢复调用者(上层)根据应用策略决定重试或取消。
+ +

5.3.6 CAN TP 接收错误(CAN Transport Protocol error during reception)

+ +

错误描述:多帧(TP)数据接收过程中发生协议错误。

+ + + + + + + + + +
说明
检测CanTp 检测超时、CF 序列错误等。
反应CanTp 终止接收并释放缓冲区。
报告上报 CANTP_E_* 至 Dem。
恢复调用者根据应用策略决定。
+ +

5.3.7 CAN NM TX 截止期监控(CANNM TX Deadline Monitoring)

+ +

错误描述:NM(网络管理)消息未在截止期内成功发送。

+ + + + + + + + + +
说明
检测CanNm 检测 NM 消息发送超时。
反应CanNm 通知应用层 NM 状态变化。
报告上报 CANNM_E_* 至 Dem。
恢复CanNm 切换到错误状态或重试。
+ +

5.3.8 PDU 复制错误(PDU replication error)

+ +

错误描述:同一 PDU 在传输层被复制(duplicate)。

+ + + + + + + + + +
说明
检测接收端通过 PDU 计数器或 E2E 机制检测复制。
反应接收端丢弃重复 PDU。
报告通过 E2E 库上报。
恢复无自动恢复;可通过重传请求恢复。
+ +

5.3.9 PDU 计数器错误(PDU counter error)

+ +

错误描述:PDU 计数器的值与预期不连续(丢失、乱序)。

+ + + + + + + + + +
说明
检测接收端通过 PDU 计数器检测丢失或乱序。
反应接收端标记 PDU 序列错误。
报告通过 E2E 库上报。
恢复无自动恢复;可能需要应用层重传。
+ +

5.3.10 客户端/服务器超时(Client / Server timeout)

+ +

错误描述:客户端调用服务器操作,在截止期内未收到响应。

+ + + + + + + + + +
说明
检测RTE 维护调用的超时计时。
反应RTE 返回 RTE_E_TIMEOUT 给调用者。
报告可选地上报至 Det。
恢复调用者根据应用策略决定重试或处理错误。
+ +

6 NVRAM 相关错误(NVRAM related errors)

+ +

6.1 概述(Overview)

+ +

6.1.1 错误处理机制(Error handling mechanisms)

+

NVRAM 栈的错误处理机制包括:

+
    +
  • Flash/EEPROM 驱动器级错误检测;
  • +
  • FEE/EA 一致性检查;
  • +
  • NVM 校验和验证;
  • +
  • 冗余数据保护(Block 副本);
  • +
  • 静默校验(static block check)。
  • +
+ +

6.1.2 NVRAM 栈的错误列表(Error list for NVRAM stack)

+

本章详细描述的 NVRAM 错误包括:

+
    +
  • Flash 写/擦除/读/比较错误
  • +
  • 外部 Flash 硬件 ID 不匹配
  • +
  • EEPROM 写/擦除/读/比较错误
  • +
  • FEE/EA 一致性检查错误
  • +
  • NVM CRC 检查错误
  • +
  • NVM 写验证错误
  • +
  • 静态块检查错误
  • +
  • 冗余丢失
  • +
  • NVM API 请求失败
  • +
+ +

6.1.3 EH 机制到 NVRAM 硬件失效模式的映射(Mappings of EH mechanisms to NVRAM hardware failure modes)

+

每种错误处理机制对 NVRAM 硬件失效模式的覆盖情况详见原文 6.1.3 节表格。

+ +

6.2 驱动级错误(Driver level errors)

+ +

6.2.1 Flash 写操作错误(Flash write job error)

+ +

错误描述:Flash 写操作因硬件错误(如电压异常、坏块)失败。

+ + + + + + + + + +
说明
检测Flash 驱动(Fls)检测硬件错误状态寄存器。
反应Fls 返回 MEMIF_JOB_FAILED,终止当前写操作。
报告上报 FLS_E_WRITE_FAILED 至 Dem。
恢复Fee/EA 检查坏块状态;标记坏块;重试其他块或块组。
+ +

6.2.2 Flash 擦除操作错误(Flash erase job error)

+ +

错误描述:Flash 擦除操作失败。

+ + + + + + + + + +
说明
检测Fls 检测擦除错误状态。
反应Fls 返回 MEMIF_JOB_FAILED
报告上报 FLS_E_ERASE_FAILED 至 Dem。
恢复标记坏块;切换到备份扇区(若配置)。
+ +

6.2.3 Flash 读操作错误(Flash read job error)

+ +

错误描述:Flash 读取失败。

+ + + + + + + + + +
说明
检测Fls 检测读取错误或返回非法值。
反应Fls 返回 MEMIF_JOB_FAILED
报告上报 FLS_E_READ_FAILED 至 Dem。
恢复从冗余副本恢复;否则数据丢失。
+ +

6.2.4 Flash 比较操作错误(Flash compare job error)

+ +

错误描述:Flash 比较结果不匹配。

+ + + + + + + + + +
说明
检测Fls 在写入后比较,发现数据不一致。
反应Fls 返回 MEMIF_JOB_FAILED
报告上报 FLS_E_COMPARE_FAILED 至 Dem。
恢复重写或标记坏块。
+ +

6.2.5 外部 Flash 硬件 ID 不匹配(External Flash Hardware ID Mismatch)

+ +

错误描述:外部 Flash 的硬件 ID 与配置不一致。

+ + + + + + + + + +
说明
检测Fls 初始化时读取 JEDEC ID,与配置比较。
反应Fls 初始化失败。
报告上报 FLS_E_HW_ID_MISMATCH 至 Dem。
恢复EcuM 决定是否使用默认配置或停用 NVRAM 服务。
+ +

6.2.6 EEPROM 写操作错误(EEPROM write job error)

+ +

错误描述:EEPROM 写操作失败。

+ + + + + + + + + +
说明
检测Eep 检测硬件错误状态。
反应Eep 返回 MEMIF_JOB_FAILED
报告上报 EEP_E_WRITE_FAILED 至 Dem。
恢复重试或上报应用层。
+ +

6.2.7 EEPROM 擦除操作错误(EEPROM erase job error)

+ +

错误描述:EEPROM 擦除操作失败。

+ + + + + + + + + +
说明
检测Eep 检测擦除错误状态。
反应Eep 返回 MEMIF_JOB_FAILED
报告上报 EEP_E_ERASE_FAILED 至 Dem。
恢复应用层处理。
+ +

6.2.8 EEPROM 读操作错误(EEPROM read job error)

+ +

错误描述:EEPROM 读取失败。

+ + + + + + + + + +
说明
检测Eep 检测读取错误或异常值。
反应Eep 返回 MEMIF_JOB_FAILED
报告上报 EEP_E_READ_FAILED 至 Dem。
恢复从冗余副本恢复。
+ +

6.2.9 EEPROM 比较操作错误(EEPROM compare job error)

+ +

错误描述:EEPROM 比较结果不匹配。

+ + + + + + + + + +
说明
检测Eep 在写入后比较,发现数据不一致。
反应Eep 返回 MEMIF_JOB_FAILED
报告上报 EEP_E_COMPARE_FAILED 至 Dem。
恢复重写或上报。
+ +

6.3 EEPROM 抽象/Flash 仿真级错误(EEPROM Abstraction / Flash Emulation level errors)

+ +

6.3.1 FEE 一致性检查错误(FEE consistency check error)

+ +

错误描述:FEE(Flash EEPROM Emulation)的一致性检查失败,Flash 中的数据可能损坏。

+ + + + + + + + + +
说明
检测Fee 启动时遍历所有块,检查其一致性。
反应Fee 标记不一致的块;返回 MEMIF_JOB_FAILED
报告上报 FEE_E_INCONSISTENT_BLOCK 至 Dem。
恢复NvM 决定使用默认值、备份副本或标记块无效。
+ +

6.3.2 EA 一致性检查错误(EA consistency check error)

+ +

错误描述:EA(EEPROM Abstraction)的一致性检查失败。

+ + + + + + + + + +
说明
检测Ea 启动时检查数据布局。
反应Ea 标记不一致的块。
报告上报 EA_E_INCONSISTENT_BLOCK 至 Dem。
恢复NvM 使用默认值或备份。
+ +

6.4 NVRAM 管理器级错误(NVRAM manager level errors)

+ +

6.4.1 NVM CRC 检查(NVM CRC check)

+ +

错误描述:NvM 块读取时 CRC 校验失败。

+ + + + + + + + + +
说明
检测NvM 比较存储的 CRC 与计算的 CRC。
反应NvM 设置 NVM_REQ_INTEGRITY_FAILED 状态。
报告上报 NVM_E_INTEGRITY_FAILED 至 Dem。
恢复从冗余块恢复;使用默认值;标记块无效。
+ +

6.4.2 NVM 写验证错误(NVM write verification error)

+ +

错误描述:NvM 写入后验证失败。

+ + + + + + + + + +
说明
检测NvM 在写操作后比较数据。
反应NvM 标记写失败。
报告上报 NVM_E_VERIFY_FAILED 至 Dem。
恢复重写或标记块无效。
+ +

6.4.3 静态块检查错误(Static block check error)

+ +

错误描述:静态块(写一次,多次读)的检查失败。

+ + + + + + + + + +
说明
检测NvM 在启动时验证静态块的一致性。
反应NvM 设置 NVM_REQ_STATIC_BLOCK_CHECK_FAILED
报告上报 NVM_E_STATIC_BLOCK_CHECK_FAILED 至 Dem。
恢复从冗余副本恢复;标记块错误。
+ +

6.4.4 冗余丢失(Loss of redundancy)

+ +

错误描述:NVRAM 块的冗余副本丢失。

+ + + + + + + + + +
说明
检测NvM 在启动时检测冗余副本数量。
反应NvM 设置 NVM_REQ_REDUNDANCY_LOST
报告上报 NVM_E_LOSS_OF_REDUNDANCY 至 Dem。
恢复应用层决定是否继续运行(已无冗余保护)。
+ +

6.4.5 NVM API 请求失败(NVM API request failure)

+ +

错误描述:NVM API 调用因内部状态错误而失败。

+ + + + + + + + + +
说明
检测NvM 检测参数无效、内部状态不一致等。
反应NvM 返回 E_NOT_OK
报告可选地上报至 Det。
恢复调用者根据错误原因处理。
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 6 章 + 30+ 子节,译文目录完整对应(1–6 章;4.1、5.1–5.3、6.1–6.4 及子节)。
  • +
  • 错误处理框架:FDIR(检测/反应/报告/恢复)四元组在每个错误表格中保留。
  • +
  • 通信栈错误:5.1–5.3 节共 12 个 CAN 错误全部翻译(Bus Off、硬件超时、DLC 错误、TP 错误、Deadline Monitoring、PDU 复制/计数、客户端/服务器超时等)。
  • +
  • NVRAM 栈错误:6.1–6.4 节共 15 个 NVRAM 错误全部翻译(Flash/EEPROM 驱动级、FEE/EA 一致性、NVM CRC/验证/冗余/静态块)。
  • +
  • API 与状态保留CAN_BUSYMEMIF_JOB_FAILEDE_NOT_OKRTE_E_TIMEOUTEXPIRED 等状态码完整保留。
  • +
  • 错误码名称CAN_E_BUSOFFCANTP_E_*FLS_E_WRITE_FAILEDNVM_E_INTEGRITY_FAILEDDEM_* 等完整保留。
  • +
  • 术语对照:DEM、DCM、Det、FIM、CanDrv、CanIf、CanSM、CanNm、ComM、BswM、EcuM、NvM、Fee、Ea、Fls、Eep、CanTp、PduR 与术语表对齐。
  • +
  • 失效模式映射表省略:5.1.3、6.1.3 节的详细"机制 × 失效模式"映射表以文字描述代替,完整 200+ 行表格可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_ErrorDescription.pdf(79 页)· 文档 ID 377 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_InterruptHandlingExplanation.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_InterruptHandlingExplanation.html new file mode 100644 index 0000000..b15e005 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_EXP_InterruptHandlingExplanation.html @@ -0,0 +1,516 @@ + + + + +AUTOSAR 中断处理说明 · AUTOSAR 4.4 中文翻译 + + + + +
+

AUTOSAR 中断处理说明(Explanation of Interrupt Handling within AUTOSAR)

+
+ 📄 文档 ID:307 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:22 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_InterruptHandlingExplanation.pdf +
+
+ + + + + +
+ +

1 介绍与文档目的(Introduction and purpose of document)

+

本文档阐述了中断在 AUTOSAR 中的工作方式及其配置方法。文档的目的是为那些以某种方式与中断交互的模块规范工作提供指导。

+ +

2 缩略语与术语(Acronyms and abbreviations)

+ + + + + + + + +
缩略语说明
ISRInterrupt Service Routine(中断服务程序)。在 C 语言中也作为宏用于声明 Cat2 中断服务程序。
RETIReturn from Interrupt(中断返回)
GCEGeneric Configuration Editor(通用配置编辑器)
+ + + + + + + +
缩写说明
Cat2Category 2(类别 2)。Cat2 ISR 由 OS 支持,可以调用大部分 OS 服务。
Cat1Category 1(类别 1)。Cat1 中断由 OS 支持,只能调用极少量的 OS 服务(使能和禁止全部中断)。
+ + + + + + + + + + + + +
术语说明
Interrupt Handler(中断处理程序)对 Cat2 中断而言,ISR 与 Interrupt Handler 同义。对 Cat1 中断而言,Interrupt Handler 是由硬件中断向量调用的函数。两者都是通常属于 BSW 模块的用户代码,因此 Interrupt Handler 视为用户级代码。但在 Cat2 中断中,用户的中断处理程序被调用前,OS 的中断处理程序会先进行初步处理。
Interrupt Logic(中断逻辑)由 MCU 实现,控制所有设备的中断。通常由 OS 控制。
Device(设备)硬件 I/O 设备,在本文档范围内也能产生中断。
Device Interrupt Enable Bit(设备中断使能位)某个硬件设备内的一位或几位,由设备驱动控制,用于仅使能/禁止该设备的中断源。
Interrupt Frame(中断帧)由编译器或汇编代码为中断例程生成的前缀与后缀代码。该代码与微控制器相关。
Definition Ref(引用定义)从 XML 一部分到另一部分的引用。一个 BSW 模块的 XML 可引用另一个 BSW 模块的 XML 中的某些信息,从而避免同一信息在多处重复出现。
Code Generator(代码生成器)BSW 模块以两部分交付:代码和代码生成器。代码生成器读取完整、正确的 BSW 模块 XML,并生成用于配置该模块的代码与数据。
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+

无。

+ +

3.2 相关标准与规范

+

无。

+ +

4 中断配置概述(Summary of Interrupt Configuration)

+

本章总结了中断所需的配置参数及其所在模块(即哪个模块负责)。本总结是从 ECU 配置的角度出发,假定某个具有 ECU 高层视图的系统配置编辑器负责将参数值放入 ECU 配置。

+ + + + + + + + + + + + + + + + + + + + + + + + + +
BSW 模块包含的代码XML 中包含的参数理由
OS所有相关代码由 OS 代码生成器自动生成。中断优先级、类别、向量、名称。这些都是配置 OS 所必需的。高级工具需要保证仅使用优先级、向量、类别的合法组合。
BSW 调度器进入和退出需要在中断处理程序中保护的临界区的代码。这些代码由 BSW 调度器的代码生成器自动生成。· 对定义该中断的 OS 对象的引用定义(Definition ref)
· 对访问该临界区的其他 OS 对象(TASK 或中断)的引用定义
引用 OS 是为了获知优先级和访问临界区的对象(TASK 或中断)类型。这些信息使 BSW 调度器的代码生成器能生成合适的代码。BSW 调度器的代码生成还可能生成需要推入 OS 配置 XML 的 RESOURCE。
设备驱动模块中断处理程序的声明。这是 C 代码,由模块作者编写,不自动生成。注意 Cat1 和 Cat2 情况下的声明方式不同。对定义该中断的 OS 对象的引用定义C 中的中断处理程序定义需与 OS 对象中的名称和类别一致。处理程序名称需在 C 源码和 OS XML 中保持一致。C 源码可能需要 OS XML 中的一些信息用于正确的代码生成(例如某些编译器需要向量地址来声明 Cat1 处理程序)。
+ +
+ 注意:上表中未包含时序信息。原因在于目前尚无时序模型,因此尚不清楚 BSW 调度器如何被配置为使用除"中断使能/禁止"以外的方式来处理临界区。 +
+ +
+ 注意:本文档引用了 BSW 调度器。虽然 BSW 调度器已并入 RTE,但本文的论述仍然有效。 +
+ +

5 中断操作概述(Overview of Interrupt Operation)

+

本概述首先解释处理中断所涉及的步骤,然后将这些步骤映射到所涉及的不同 BSW 模块。

+ +

5.1 Cat1 与 Cat2 中断的区别(Distinction between cat1 and cat2 interrupts)

+

Cat1 和 Cat2 中断之间存在显著差异,详见下表:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
属性Cat1(类别 1)Cat2(类别 2)
与 OS 的交互Cat1 中断不允许与 OS 的数据结构交互。实际上,它们只能调用的 OS 服务是全部中断的使能/禁止。Cat2 中断允许调用大部分 OS 服务,其他调用属于非法。
延迟(Latency)
即从硬件请求中断到中断处理程序第一条指令的时间
Cat1 中断的延迟通常比 Cat2 低。这是其主要优势。Cat2 ISR 的延迟通常比 Cat1 高。
OS 支持
即 OS 的代码生成器和库以可移植方式对中断进行抽象的程度
不支持。安全进出中断处理程序的代码不由 OS 生成,必须以其他方式生成,通常取决于编译器和处理器。支持。这是通过 C 文件中的 ISR 宏实现的,它以可移植方式将一个函数声明为中断处理程序。例如:
ISR(Can_tx) {
+  /* some code */
+}
这是 Cat2 的主要优势。
配置
即在 XML 中捕获足够的信息供 OS 描述中断
XML 包含关于 Cat1 中断的所有相关信息。但是,根据目标不同,这些信息可能使用也可能不使用。XML 包含关于 Cat2 中断的所有相关信息,用于生成向量表以及进出 Cat2 ISR 的中断硬件操控代码。
中断逻辑的控制(目标相关性)如果需要操控中断逻辑以进入或退出处理程序,是否发生取决于目标。例如,某些编译器具有 interrupt 关键字来辅助这一过程。但支持程度差异很大。由 OS 执行相应的操控。
与其他线程(TASK 或其他中断处理程序)的通信
实际上是关于缓冲区互斥的实现方式
在 TASK 或低优先级中断中,可通过"关闭所有中断"实现互斥。这是因为没有 API 可将优先级设置为特定级别,也没有 API 可以使能/禁止特定中断源。
在 Cat1 中断处理程序中,由于临界区与低优先级线程(TASK 或低优先级中断)共享,不需要关闭中断。
我们假设不存在两个 Cat1 中断处理程序直接通信的用例。
OS RESOURCE 抽象是处理 Cat2 ISR 与 TASK 之间、或 Cat2 ISR 之间交互的最佳方式。该机制知道 Cat2 中断优先级和 TASK 优先级,因此会锁定到能保证互斥的最低优先级。正确的优先级可由工具离线计算得出。
+ +

6 中断操作的步骤(Steps in the operation of interrupts)

+

由于 Cat1 和 Cat2 中断之间存在显著差异,它们在 OS 和应用代码中的处理方式非常不同。本节给出处理方式的概述。

+

我们将分别讨论中断发生前需要建立的状态,以及由谁来负责建立该状态。

+ +

6.1 Cat1 中断的处理(Handling cat1 interrupts)

+ +

6.1.1 初始状态(Initial state)

+

需要设置中断的向量表条目,使其指向中断处理程序。

+

对于 Cat1 中断,该设置与目标相关。AUTOSAR OS 的某些实现可能支持设置向量表,其他则不支持。在 OS 不支持的情况下,需要采用其他方法,例如编译器指令或修改向量表。

+

中断处理程序应当被正确声明。通常编译器对此提供支持,例如:

+ +
__interrupt Can_tx() {
+   /* some user application code */
+}
+ +

但有时编译器不支持,且不同编译器之间的语法和语义会变化。因此可能需要提供特定于处理器和编译器的支持来声明 Cat1 处理程序。

+

处理器的中断逻辑应当被设置为可请求中断。Cat1 情况下通常没有 OS 支持,因此需要按目标逐一执行。

+

产生中断的设备应当被设置为在所需条件下产生中断。Cat1 和 Cat2 都需要此设置,通常是设备驱动的一部分(即在用户域内)。

+ +

6.1.2 硬件请求中断时(When the hardware requests an interrupt)

+

以下是从设备请求中断到返回被中断线程所发生的一系列步骤:

+ + + + + + + + + + + + + + + + + +
动作责任方
请求中断设备
优先级判定:等待直到处理器优先级足够低,可以接受中断中断逻辑(有时是 CPU 的一部分,有时不是)
识别中断:允许该请求中断 CPUCPU
保存中断状态CPU
沿向量表条目进入中断处理程序CPU
中断处理程序前缀(如保存编译器相关寄存器等)__interrupt 关键字(或所用方法)生成的中断处理程序代码
执行与中断关联的动作中断处理程序中的用户代码。注意:此代码不能调用大部分 OS 服务。
在设备中清除中断请求,使其不会立即再次发生中断处理程序中的用户代码。注意:此代码不能调用大部分 OS 服务。
设置中断控制器的状态,使该中断可以再次发生__interrupt 关键字生成的后缀代码。也可能在用户域中,取决于编译器。
恢复编译器寄存器__interrupt 关键字生成的中断处理程序代码
RETI(中断返回)__interrupt 关键字生成的中断处理程序代码
恢复被中断线程的状态CPU
+ +
+ 图:Cat1 InterruptHandler 逻辑
+ 设备 → IRQ → 中断逻辑 → IRQ → 中断分发(CPU/MCU)→ 中断帧入口 → 用户代码 → 中断帧出口。 +
+ +

6.2 Cat2 中断的处理(Handling cat2 interrupts)

+

Cat2 中断提供了比 Cat1 中断更高层次的抽象,但运行时开销更高,且占用 OS 更多的 RAM 和 ROM。

+ +

6.2.1 初始状态(Initial state)

+

处理器的中断向量表条目应当设置为指向 OS。Cat2 中断的该设置由 OS 的代码生成器完成。

+

中断处理程序应当被正确声明。AUTOSAR 中定义为:

+ +
ISR(Can_tx) {
+     /* some user application code */
+}
+ +

ISR 宏可能会导致中断发生时进入 OS,也可能不会。但该宏的核心是封装一个 Cat2 中断处理程序。因此 ISR 展开得到的代码是实现细节。

+

处理器的中断逻辑应当被设置为可请求中断。Cat2 情况下由 OS 处理。

+

产生中断的设备应当被设置为在所需条件下产生中断。Cat1 和 Cat2 都需要此设置,通常是设备驱动的一部分。

+ +

6.2.2 硬件请求中断时(When the hardware requests an interrupt)

+

Cat2 中断所需的 CPU 行为与 Cat1 相同,大多数其他方面则不同。

+ + + + + + + + + + + + + + + + + + +
动作责任方
请求中断设备
优先级判定:等待直到处理器优先级足够低中断逻辑(有时是 CPU 的一部分,有时不是)
识别中断CPU
保存中断状态CPU
沿向量表条目进入 OSCPU
OS 前缀:保存编译器相关寄存器等,建立 OS 包装器以封装 ISROS 代码生成器生成的代码和 OS 库的代码
执行与中断关联的动作ISR 中的用户代码。注意:此代码可以调用任何 OS 服务。
在设备中清除中断请求ISR 中的用户代码。注意:此代码可以调用任何 OS 服务。
离开处理程序并重新进入 OS重新进入 OS 时,检查 TASK 激活并以用户优先级运行相应的 TASK
设置中断逻辑状态,使该中断可以再次发生OS 生成代码和库的一部分
恢复编译器寄存器OS 生成代码和库的一部分
RETI(中断返回)OS 生成代码和库的一部分
恢复被中断线程的状态CPU
+ +
+ 图:Cat2 ISR 逻辑
+ 设备 → IRQ → 中断逻辑 → IRQ → 中断分发(CPU/MCU)→ 中断帧入口 → OS 调用 → 用户代码 → 任务分发 → 中断帧出口。 +
+ +

7 中断的配置(Configuration of Interrupts)

+

第 5 章中讨论了处理中断的以下参与方:

+
    +
  • 设备驱动
  • +
  • OS
  • +
  • BSW 调度器
  • +
  • 未配置项
  • +
+

下面将分别讨论 Cat1 和 Cat2 情况下每个参与方的配置问题。

+ +

7.1 设备驱动的配置与代码(Device Driver configuration and code)

+

每个设备驱动都需要包含中断处理程序的代码,即设备驱动的作者必须将中断处理程序的代码作为设备驱动实现的一部分来编写。但 Cat1 和 Cat2 情况下的代码不同。

+

Cat2 ISR 是最简单的情况,因为有 OS 支持。代码基于以下模板:

+ +
ISR(<name>) {
+      <user code to handle ISR>
+      <user code to dismiss interrupt>
+}
+ +

<name> 必须与 OS 配置中选择的名称一致。

+

Cat1 中断处理程序较为麻烦,因为没有 OS 支持。典型模板为:

+ +
<some target specific preamble to mark this function as an interrupt handler>
+<name>() {
+     <user code to handle ISR>
+     <user code to set up interrupt controller>
+     <user code to dismiss interrupt>
+}
+ +

然而,所需的精确代码非常依赖于处理器和编译器,不可移植。这可能不是问题,因为设备驱动本身的可移植性也较差。

+

编写处理程序是设备驱动作者的责任,特别是在 Cat1 情况下,必须确保与中断控制器的正确交互。1

+ +
1 根据作者的经验,这种交互很难正确实现,预计将成为 bug 来源。
+ +

7.1.1 中断处理程序的放置(Placement of Interrupt Handlers)

+

类别 1 中断处理程序被使用是因为它们具有最快的响应时间。因此,任何使类别 1 中断变慢的做法都是适得其反的。所以类别 1 中断处理程序应当位于该中断设备的驱动中。

+

类别 2 处理程序较慢,因此在其放置位置上可以有更多余地。然而,将它们放在类别 1 处理程序之外的位置会成倍增加复杂度,却没有实际收益。

+

因此类别 2 中断处理程序也应当位于该中断设备的驱动中——在 BSW 调度器或其他位置没有"thunk"。此处的"thunk"是指 BSW 调度器中的一小段代码,仅用于调用设备驱动中的真正处理程序。

+ +

7.2 OS 配置(OS configuration)

+

为了正确配置中断,OS 需要知道一些相当复杂的信息。在 Cat1 和 Cat2 情况下,都必须知道:

+
    +
  • 中断向量
  • +
  • 中断优先级
  • +
  • 中断处理程序的 <name>
  • +
  • 类别
  • +
+

在某些目标上,一个参数会限制另一个参数的取值范围。例如在 TriCore 上,向量隐含优先级。因此并非所有"向量、优先级、类别"的组合都合法。

+

中断处理程序的 <name> 可以由配置 OS 的人或配置设备驱动的人来设置。其实由谁起名并不重要,只要在 OS 配置和设备驱动中使用相同的名称即可。

+

设置向量、优先级和类别则更有意思。2

+

OS 配置中选择的类别(Cat1 或 Cat2)必须与驱动和接口中选择的实现策略一致。对于"validator 2"风格的配置3,编写配置的人必须确保驱动、接口和 OS 类别中的实现策略相互一致。

+ +
2 特别是 AUTOSAR XML 尚无用于向量或优先级的参数。
3 即所有模块均手动配置,没有自动的跨模块检查或一致性检查。
+ +

从长远来看,更好的做法是提供一些自动支持。例如,每个模块的 XML 描述了允许哪些类别,配置则捕获实际使用的类别。这将使自动代码生成成为可能。

+

因此对于 validator 2 来说,GCE 和操作员基于 BSW 模块实现的信息手动选择类别,可能是足够的。

+

设置向量和优先级在 validator 2 中也是手动的(即通过 GCE)。但同样,从长远来看,需要一些自动辅助。

+

通常类别、向量、优先级之间存在一定的依赖关系4。GCE 不检查这些依赖关系,因此必须由 GCE 的使用者结合 OS 手册进行检查。

+ +
4 许多实现要求 Cat1 中断的优先级高于所有 Cat2 中断。
+ +

从中期来看,可以预期这些依赖关系知识会被构建到更高级的创作工具中,从而由创作工具保证正确的关系。

+

因此优先级和向量也是 OS 的配置项。

+

OS 提供的 RESOURCE必须被指定。为了使 RESOURCE 正确工作,OS 必须知道引用每个 RESOURCE 的所有对象(TASK 和 ISR)5。BSW 调度器负责处理临界区,因此逻辑上也负责配置 OS。但 BSW 调度器需要知道每个 BSW 模块需要哪些临界区。

+ +
5 如果 OS 未正确获取所有这些信息,临界区将产生难以排查的 bug。
+ +

对于"挂起和恢复所有中断"的调用,不需要额外的 OS 配置。

+ +

7.3 BSW 调度器配置(BSW Scheduler configuration)

+

BSW 调度器有两个目的:

+
    +
  1. 提供一个 TASK 调用 BSW 主函数;
  2. +
  3. 提供负责锁定临界区的代码。因此临界区通过 BSW 调度器实现。
  4. +
+

下面讨论这两个方面的配置。本讨论很大程度上依赖于作者对通信栈的经验。

+

作者还假设 BSW 调度器将被编写成尝试使用最合适的方法来保护临界区。6

+ +
6 详情见 [1]。
+ +

7.3.1 主函数的 TASK(TASK for main functions)

+

BSW 调度器的配置需要知道调用哪些主函数以及调用顺序。通常 BSW 调度器的代码生成器会生成按顺序调用主函数的代码。例如(虚构的合理名称):

+ +
void Run_com_stack() {
+      canif_main_rx();
+      linif_main_rx();
+      frif_main_rx();
+      pdur_main_rx();
+      pdumux_main_rx();
+      com_main_rx();
+      com_main_gw();
+      com_main_tx();
+      etc…
+      TerminateTask();
+}
+ +

这意味着 BSW 调度器需要知道包含主函数的 TASK,以便通知 OS 配置正确地配置 RESOURCE。BSW 调度器还需要知道 BSW 模块之间的控制流以及所引用的临界区。BSW 调度器需要能够从其配置数据中找到这些信息。

+ +

7.3.2 栈中的其他 TASK(Other TASKs in the stack)

+

通常,BSW 模块也会从主函数以外的控制流进入。因此同样值得关注的是 BSW 从 RTE 进入的上下文。这是因为 RTE 的 TASK(或其多个 TASK 之一)最终也会访问一个临界区,并因此调用 BSW 调度器。因此 RTE 的 TASK(或 TASK)需要被添加到引用 RESOURCE 的列表中。

+

所有进入 BSW 的此类控制流必须被识别,并用于配置 BSW 调度器,进而配置 OS。

+ +

7.3.3 临界区(Critical sections)

+

本章包含 3 个子节。前两个子节讨论两类中断处理程序中临界区的问题。最后一个子节讨论 BSW 调度器中临界区的实现。前两个子节描述中断处理程序面临的问题,第三个子节描述 BSW 调度器如何帮助解决这些问题。

+ +
7.3.3.1 类别 1 处理程序中的互斥(Mutual exclusion in category 1 handlers)
+
    +
  1. 假设有一个 Cat1 中断 C1 和某个其他线程(TASK 或中断)T1。
  2. +
  3. 假设 priority(C1) > priority(T1)。
  4. +
+

假设 2 意味着:当 C1 运行时 T1 不能抢占,而 T1 运行时 C1 可以抢占。因此必须在 T1 中放置保护。典型做法是用匹配的 SuspendAllInterruptsResumeAllInterrupts 调用包含临界区。

+

对应的情况是:

+
    +
  1. 假设 priority(C1) < priority(T1)。
  2. +
+

在这种情况下,T1 必须是另一个 Cat1 中断(即不能是其他任何东西),因此保护临界区的责任在 C1 一方。我们假设 AUTOSAR 中没有这种用例。不过,为了完整性,我们描述这种情况下的相关问题。

+

代码与配置之间的依赖关系必须保证一致。可以通过两种方式实现:

+
    +
  • 手动:在驱动中放入 suspend 和 resume 调用,开销低,但出错的概率高;
  • +
  • 自动:使用 BSW 调度器模块,将 suspend 和 resume 调用放入 BSW 调度器中,并在驱动中调用 BSW 调度器。这样开销更高,但出错概率低。
  • +
+

我们建议由 BSW 调度器处理此问题,即采用自动方式。因此 BSW 调度器的配置必须知道一个中断处理程序的类别。

+ +
7.3.3.2 类别 2 处理程序中的互斥(Mutual exclusion in category 2 handlers)
+

为实现 TASK 与 Cat2 ISR 之间的互斥,可使用 OS RESOURCE。也可以使用中断锁定,并将一并讨论。RESOURCE 在 TASK/ISR、ISR/ISR 两种交叉情况下均有效。

+

关闭中断也可用于互斥。如果两个 ISR 优先级相同,则不需要互斥,因为它们不能同时运行。

+

在用户代码中,临界区由调用 BSW 调度器进入和离开临界区。在 BSW 调度器中,这些进入/离开调用被解析为资源加锁/解锁调用或中断挂起/恢复调用。选择由 BSW 调度器的配置算法决定。但无论做出何种决定,BSW 调度器都需要有正确的信息来做出决定,并且还必须将任何额外的配置对象通知 OS。

+ +
7.3.3.3 BSW 调度器中的临界区(Critical sections in the BSW Scheduler)
+

在 BSW 调度器中,临界区通常以以下两种方式之一实现:

+
    +
  • 挂起/恢复 或 使能/禁止 中断
  • +
  • RESOURCE
  • +
+

从配置的角度看,这是一个重要观点。为了保护临界区,BSW 调度器可以简单地挂起/恢复所有中断以进入/离开临界区。这非常容易配置,几乎不需要了解应用行为(即不需要额外的 RESOURCE,因此不需要知道哪些 TASK/ISR 引用它们)。然而,如果临界区中停留的时间较长,这可能导致非常长的高优先级阻塞时间。

+

更好的 BSW 调度器将使用 RESOURCE,从而减少高优先级阻塞的时间。但这需要多得多的信息。在上述讨论中,我们试图识别这些信息的来源。

+

另一种解决方案是将所有东西设为 Cat2 ISR 或 TASK。然后可以使用 OS Suspend/Resume Interrupts。这种方式不需要知道哪个 BSW 需要哪个 RESOURCE,但会在每个临界区阻塞所有 TASK 和 Cat2 ISR。

+

哪种方案最合适取决于许多 BSW 软件部分的时序数据和时序模型。目前这两者都不存在。

+

如果使用 BSW 调度器来解耦 Cat1 中断(见第 8 章),则只允许使用"suspend/resume 所有中断"。

+ +

7.3.4 小结(Summary)

+

BSW 调度器的配置是个难题。以最简单方式(suspend/resume 中断)配置很简单,但存在显著的缺点,例如高优先级阻塞时间长。更好的配置(RESOURCE)需要在 BSW 调度器中放入大量信息,然后传递给 OS。这些信息如何获取尚不清楚。

+ +

8 Cat1 中断的使用建议(Recommendations for the use of cat1 interrupts)

+

大多数设备驱动能够使用 Cat2 ISR,并且应当将 Cat2 ISR 作为处理中断的首选方法

+

Cat1 中断应当仅在以下有限场景中使用:

+
    +
  • 当中断到达率导致 OS 中 Cat2 包装器的开销不可接受时;
  • +
  • 当中断延迟必须非常低,以至于 Cat2 ISR 不够快时;
  • +
  • 当所定义的中断处理程序需要低抖动(jitter)时。
  • +
+

当驱动中使用 Cat1 中断时,应当尽快解耦。最晚应位于驱动之上的紧邻层。

+ +

8.1.1 使用 Cat1 中断的相邻模块通信(Communication between adjacent modules using cat1 interrupts)

+

将 Cat1 中断传播到驱动之外太远是个问题,因为这意味着对于临界区,栈的大量部分(内存、通信等)需要知道 Cat1 中断,且阻塞时间会很长。

+

Cat1 中断的长时间阻塞尤为令人担忧,因为所有中断都会被阻塞,而不仅仅是其中一部分。

+

因此 Cat1 中断应当尽快解耦。实际工作方式如下:下图显示了两个相邻模块:处理 Cat1 中断的驱动和接口。

+ +
+ 图:Cat1 中断相邻模块 +
+  Upper layer
+      ↕
+  Interface
+      ↕ (通过 buffer / Main function)
+  Driver
+      ↕ interrupt
+  Hardware
+  
+
+ +

当上层想要向下发送数据时,它向接口请求。接口通过 BSW 调度器挂起所有中断来锁定缓冲区,将数据复制到缓冲区或直接复制到驱动中,然后通过 BSW 调度器恢复中断。

+

当驱动通过中断接收到数据时,驱动会请求接口对数据进行缓冲,然后退出。这最大限度地减少了在 Cat1 优先级停留的时间。在稍后的某个时间点运行主函数。它会锁定 Cat1 中断,然后通过调用上层将数据从缓冲区向上复制。

+

如果复制到上层的数据较多,可能需要将主函数编写为一系列小临界区。例如,下面的代码展示了一个大临界区:

+ +
Suspend interrupts();
+While data in buffers {
+      Copy single buffer
+}
+Resume interrupts();
+ +

这是最小、最快的实现,但阻塞时间最长。类似的实现是:

+ +
While data in buffers {
+      Suspend interrupts();
+      Copy single buffer
+      Resume interrupts();
+}
+ +

这种方式效率较低,但阻塞时间更短,因此不太可能延迟快速发生的 Cat1 中断。

+ +

8.1.2 信任(Trust)

+

OS 的时间与空间保护被规范化以支持不受信任的代码,目的是检测并防止时间或空间的越界。但这些检查不能为 Cat1 中断实现。因此所有 Cat1 中断处理程序必须是受信任的。

+

然而,情况比上一段所述还要糟糕。任何通过"挂起所有中断"来锁定所有中断的代码,也会阻止监控执行时间的定时器中断。因此,任何即使在其不知情的情况下(即这是 BSW 调度器的决策)锁定所有中断的模块,都必须是受信任的。

+

其结果是:简单的 BSW 调度器实现(仅使用"关闭中断"实现互斥)意味着在该 ECU 中所有 BSW 模块都必须是受信任的。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 8 章 + 8.1.1/8.1.2 子节,译文完整对应(1–8 章;5.1、6.1.1/6.1.2、6.2.1/6.2.2、7.1.1、7.3.1–7.3.4、8.1.1/8.1.2 全保留)。
  • +
  • 术语对照:Cat1/Cat2 ISR、Interrupt Handler、Interrupt Logic、Interrupt Frame、RESOURCE、GCE、RETI 等术语已与术语表对齐。
  • +
  • 代码块:原文 3 段 C 伪代码(ISR(Can_tx)__interrupt 模板、Run_com_stack()Suspend/Resume 示例)全部保留。
  • +
  • 脚注:原文 6 处脚注(关于作者经验、AUTOSAR XML 限制、validator 2、cat1/cat2 优先级依赖、OS RESOURCE 信息、参考资料 [1])全部保留并翻译。
  • +
  • 比较表:5.1 节 Cat1 vs Cat2 属性对比表完整翻译;4 章中断配置 3 模块对比表完整翻译。
  • +
  • UML/时序图:原文 2 张时序图(Cat1 InterruptHandler 逻辑、Cat2 ISR 逻辑)以文字描述 + ASCII 结构方式保留。
  • +
  • 脚注编号:原文脚注 1–6 编号延续至 7.3 节末尾,译文按原文位置标注。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_InterruptHandlingExplanation.pdf(22 页)· 文档 ID 307 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SRS_BSWGeneral.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SRS_BSWGeneral.html new file mode 100644 index 0000000..f29423a --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SRS_BSWGeneral.html @@ -0,0 +1,735 @@ + + + + +基础软件模块通用需求 · AUTOSAR 4.4 中文翻译 + + + + +
+

基础软件模块通用需求(General Requirements on Basic Software Modules)

+
+ 📄 文档 ID:043 + 🏷 类型:SRS(软件需求规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:80 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SRS_BSWGeneral.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本文档定义了 AUTOSAR 基础软件(BSW)模块的通用需求。这些需求适用于所有标准化的 AUTOSAR BSW 模块,以确保:

+
    +
  • 模块间的一致性可互换性
  • +
  • 统一的命名约定和编码风格;
  • +
  • 一致的配置初始化机制;
  • +
  • 一致的错误处理报告机制;
  • +
  • 统一的版本标识机制。
  • +
+

需求 ID 格式为 SRS_BSW_NNNNN,如 SRS_BSW_00003

+ +

2 缩略语与术语(Acronyms and abbreviations)

+ + + + + + + + + + + + + + + +
缩略语说明
ISRInterrupt Service Routine(中断服务程序)
OSOperating System(操作系统)
BSWBasic Software(基础软件)
MCALMicrocontroller Abstraction Layer(微控制器抽象层)
SW-CSoftware Component(软件组件)
RTERuntime Environment(运行时环境)
APIApplication Programming Interface(应用程序编程接口)
DEMDiagnostic Event Manager(诊断事件管理器)
DETDefault Error Tracer(默认错误追踪器)
ECUElectronic Control Unit(电子控制单元)
+ +

3 相关文档(Related documentation)

+ + + + + + + + + +
编号文档名原 PDF
[1]Layered Software ArchitectureAUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[2]Specification of Basic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[3]General Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf
[4]Specification of Standard TypesAUTOSAR_SWS_StandardTypes.pdf
[5]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList.pdf
+ +

4 需求结构与映射(Requirements structure and mapping)

+

本文档的需求分为两类:

+
    +
  • 功能需求(Functional Requirements):模块的行为;
  • +
  • 非功能需求(Non-Functional Requirements):时序、资源、可用性等。
  • +
+

需求 ID 按主题分组:

+
    +
  • SRS_BSW_00001SRS_BSW_00100:通用模块规范;
  • +
  • SRS_BSW_00101SRS_BSW_00200:架构相关;
  • +
  • SRS_BSW_00300SRS_BSW_00399:命名约定;
  • +
  • SRS_BSW_00400SRS_BSW_00499:配置相关;
  • +
  • SRS_BSW_00500 以上:错误分类与处理;
  • +
  • RS_BRF_NNNNN:业务需求框架层的需求。
  • +
+ +

5 需求清单(Requirements list)

+ +

5.1 功能需求(Functional Requirements)

+ +

5.1.1 配置(Configuration)

+ +
+

[SRS_BSW_00158] 所有 BSW 模块应当支持基于工具的配置。

+
+ +
+

[SRS_BSW_00159] 所有 AUTOSAR 基础软件模块应当支持基于工具的配置。

+
+ +
+

[SRS_BSW_00160] AUTOSAR BSW 模块的配置文件应当人类可读。

+
+ +
+

[SRS_BSW_00167] 所有 AUTOSAR 基础软件模块应当提供配置规则和约束,以启用合理性检查。

+
+ +
+

[SRS_BSW_00171] BSW 组件中不需要的可选功能应当可在编译时配置。

+
+ +
+

[SRS_BSW_00344] BSW 模块应当支持链接时配置

+
+ +
+

[SRS_BSW_00345] BSW 模块应当支持编译前配置

+
+ +
+

[SRS_BSW_00380] 存储在内存中的配置参数应当放置在单独的 c 文件中。

+
+ +
+

[SRS_BSW_00383] 基础软件模块规范应当至少在描述中说明它们使用了哪些其他模块的配置文件。

+
+ +
+

[SRS_BSW_00388] 容器应当用于为同一对象定义的配置参数分组。

+
+ +
+

[SRS_BSW_00389] 容器应当具有名称。

+
+ +
+

[SRS_BSW_00390] 参数内容在模块内应当唯一。

+
+ +
+

[SRS_BSW_00392] 参数应当具有类型。

+
+ +
+

[SRS_BSW_00393] 参数应当具有范围。

+
+ +
+

[SRS_BSW_00394] 基础软件模块规范应当说明配置参数的作用域。

+
+ +
+

[SRS_BSW_00395] 基础软件模块规范应当列出所有配置参数依赖关系。

+
+ +
+

[SRS_BSW_00396] 基础软件模块规范应当说明每个参数/容器支持的配置类。

+
+ +
+

[SRS_BSW_00397] 编译前配置参数在编译开始前应当是固定的。

+
+ +
+

[SRS_BSW_00398] 链接时配置在编译之后、链接之前的阶段基于目标代码应当实现。

+
+ +
+

[SRS_BSW_00399] 参数集应当位于单独的段中,并在代码之后加载。

+
+ +
+

[SRS_BSW_00400] 在代码加载并启动后,参数应当可从多组参数中选择。

+
+ +
+

[SRS_BSW_00401] 应当提供配置参数多个实例的文档。

+
+ +
+

[SRS_BSW_00404] BSW 模块应当支持构建后配置

+
+ +
+

[SRS_BSW_00405] BSW 模块应当支持多配置集

+
+ +
+

[SRS_BSW_00414] 初始化函数应当将配置结构指针作为唯一参数。

+
+ +
+

[SRS_BSW_00416] 模块的初始化顺序应当可配置。

+
+ +
+

[SRS_BSW_00419] 如果编译前配置参数实现为 const,则应当放置在单独的 c 文件中。

+
+ +
+

[SRS_BSW_00413] BSW 模块实例的访问应当基于索引。

+
+ +
+

[SRS_BSW_00408] 所有 AUTOSAR BSW 模块配置参数应当根据特定命名规则命名。

+
+ +
+

[SRS_BSW_00411] 所有 AUTOSAR BSW 模块应当应用 API 存在性的使能/禁止命名规则。

+
+ +
+

[SRS_BSW_00415] 仅为一个模块提供的接口应当分离到专门的头文件中。

+
+ +

5.1.2 初始化(Initialization)

+ +
+

[SRS_BSW_00101] 基础软件模块应当能够在单独的初始化函数中初始化变量和硬件。

+
+ +
+

[SRS_BSW_00406] 标识 BSW 模块是否已初始化的静态状态变量,在调用 BSW 模块的任何 API 之前应当初始化为值 0。

+
+ +
+

[SRS_BSW_00407] 每个 BSW 模块应当提供读取专用模块实现版本信息的函数(<Module>_GetVersionInfo())。

+
+ +
+

[SRS_BSW_00410] 编译器开关应当具有定义的值。

+
+ +

5.1.3 正常运行(Normal Operation)

+ +
+

[SRS_BSW_00003] 所有软件模块应当提供版本和标识信息。

+
+ +
+

[SRS_BSW_00004] 所有 BSW 模块应当对所有导入的头文件执行版本预处理检查。

+
+ +
+

[SRS_BSW_00005] 微控制器抽象层(MCAL)的模块不得有硬编码的水平接口。

+
+ +
+

[SRS_BSW_00006] MCAL 之上的软件模块的源代码不得是处理器和编译器相关的。

+
+ +
+

[SRS_BSW_00007] 所有用 C 语言编写的基础软件模块应当遵循 MISRA C 2012 标准。

+
+ +
+

[SRS_BSW_00009] 所有基础软件模块应当根据通用标准进行文档化。

+
+ +
+

[SRS_BSW_00010] 所有 BSW 模块的内存消耗应当在定义配置下为所有支持的平台记录文档。

+
+ +
+

[SRS_BSW_00161] AUTOSAR 基础软件应当提供一个微控制器抽象层(MCAL),向更高软件层提供标准化接口。

+
+ +
+

[SRS_BSW_00162] AUTOSAR 基础软件应当提供硬件抽象层(ECU Abstraction Layer)。

+
+ +
+

[SRS_BSW_00168] SW-C 应当通过基础软件中通用 API 中定义的函数进行测试。

+
+ +
+

[SRS_BSW_00172] 内置于 BSW 模块的调度策略应当与系统中使用的策略兼容。

+
+ +
+

[SRS_BSW_00300] 所有 AUTOSAR 基础软件模块应当通过明确的名称标识。

+
+ +
+

[SRS_BSW_00301] 所有 AUTOSAR 基础软件模块只应当导入必要的信息。

+
+ +
+

[SRS_BSW_00302] 所有 AUTOSAR 基础软件模块只应当导出其他模块需要的信息。

+
+ +
+

[SRS_BSW_00304] 所有 AUTOSAR 基础软件模块应当使用以下数据类型替代原生 C 数据类型(AUTOSAR 标准类型)。

+
+ +
+

[SRS_BSW_00305] 数据类型应当遵循特定命名约定(如 TypeName_t)。

+
+ +
+

[SRS_BSW_00306] AUTOSAR 基础软件模块应当是编译器/平台无关的。

+
+ +
+

[SRS_BSW_00307] 全局变量应当遵循命名约定(如 ModuleName_VariableName)。

+
+ +
+

[SRS_BSW_00308] AUTOSAR 基础软件模块不得在头文件中定义全局数据,应在 C 文件中定义。

+
+ +
+

[SRS_BSW_00309] 所有只读全局数据应当显式使用 const 关键字标记。

+
+ +
+

[SRS_BSW_00310] API 命名应当遵循约定(如 ModuleName_FunctionName)。

+
+ +
+

[SRS_BSW_00312] 共享代码应当是可重入的(re-entrant)。

+
+ +
+

[SRS_BSW_00314] 所有内部驱动模块应当将中断帧定义与中断服务例程分离。

+
+ +
+

[SRS_BSW_00321] AUTOSAR BSW 模块的版本号应当按特定规则枚举(major.minor.patch)。

+
+ +
+

[SRS_BSW_00323] 所有 AUTOSAR 基础软件模块应当检查传入 API 参数的有效性。

+
+ +
+

[SRS_BSW_00325] 中断服务例程和在中断上下文中运行的函数的运行时应当保持较短。

+
+ +
+

[SRS_BSW_00327] 错误值应当遵循命名约定。

+
+ +
+

[SRS_BSW_00330] 在源码使用且运行时关键的情况下,允许使用宏代替函数。

+
+ +
+

[SRS_BSW_00331] 所有基础软件模块应当严格分离错误和状态信息。

+
+ +
+

[SRS_BSW_00333] 对于每个回调函数,应当说明它是否从中断上下文调用。

+
+ +
+

[SRS_BSW_00334] 所有 AUTOSAR 基础软件模块应当提供一个包含元数据的 XML 文件。

+
+ +
+

[SRS_BSW_00335] 状态值应当遵循命名约定。

+
+ +
+

[SRS_BSW_00341] 模块文档应当包含所有必要的信息。

+
+ +
+

[SRS_BSW_00342] 应当可以使用源代码模块和目标代码模块(甚至是混合形式)构建 AUTOSAR ECU。

+
+ +
+

[SRS_BSW_00343] 基础软件模块规范和配置的时间单位应当优先选择物理时间单位

+
+ +
+

[SRS_BSW_00346] 所有 AUTOSAR 基础软件模块应当至少提供一组基础模块文件。

+
+ +
+

[SRS_BSW_00347] BSW 驱动不同实例之间应当有命名分离。

+
+ +
+

[SRS_BSW_00348] 所有 AUTOSAR 标准类型和常量应当放置在标准类型头文件中(StandardTypes.h / PlatformTypes.h)。

+
+ +
+

[SRS_BSW_00350] 所有 AUTOSAR 基础软件模块应当允许启用/禁用开发错误的检测和报告。

+
+ +
+

[SRS_BSW_00353] 目标和编译器特定范围的整数类型定义应当放置和组织在单个类型头文件中(PlatformTypes.h)。

+
+ +
+

[SRS_BSW_00357] API 调用的成功/失败应当使用标准返回类型(Std_ReturnType)。

+
+ +
+

[SRS_BSW_00358] AUTOSAR 基础软件模块实现的 init() 函数的返回类型应当void

+
+ +
+

[SRS_BSW_00359] 所有 AUTOSAR 基础软件模块的回调函数应当尽可能避免 void 以外的返回类型。

+
+ +
+

[SRS_BSW_00360] AUTOSAR 基础软件模块的回调函数允许有参数。

+
+ +
+

[SRS_BSW_00361] 所有非标准化的编译器特定关键字的映射应当放置在编译器特定类型和关键字头文件中(Compiler.h)。

+
+ +
+

[SRS_BSW_00369] 所有 AUTOSAR 基础软件模块不得通过 API 返回特定的开发错误代码。

+
+ +
+

[SRS_BSW_00371] 对于所有 AUTOSAR 基础软件模块,函数指针作为 API 参数传递是禁止的

+
+ +
+

[SRS_BSW_00373] 每个 AUTOSAR 基础软件模块的主处理函数应当根据定义的约定命名(如 ModuleName_MainFunction())。

+
+ +
+

[SRS_BSW_00374] 所有基础软件模块应当提供可读的模块供应商标识(vendor ID)。

+
+ +
+

[SRS_BSW_00377] 基础软件模块可以返回模块特定类型。

+
+ +
+

[SRS_BSW_00378] AUTOSAR 应当提供一个布尔类型(boolean)。

+
+ +
+

[SRS_BSW_00379] 所有软件模块应当在头文件和模块 XML 描述文件中提供模块标识符。

+
+ +
+

[SRS_BSW_00409] 所有生产代码错误 ID 符号由 Dem 模块定义,并由其他 BSW 模块从 Dem 配置中获取。

+
+ +
+

[SRS_BSW_00417] 不属于 SW-C 的软件应当仅在 DEM 完全运行后上报错误事件。

+
+ +
+

[SRS_BSW_00423] 具有 AUTOSAR 接口的 BSW 模块应当可以用 SW-C 模板描述。

+
+ +
+

[SRS_BSW_00424] BSW 模块主处理函数不得进入等待状态。

+
+ +
+

[SRS_BSW_00425] BSW 模块描述模板应当提供建模可调度对象的定义触发条件的手段。

+
+ +
+

[SRS_BSW_00426] BSW 模块应当确保在 BSW 模块间共享的数据的一致性。

+
+ +
+

[SRS_BSW_00427] ISR 函数应当在 BSW 模块描述模板中定义和记录。

+
+ +
+

[SRS_BSW_00428] BSW 模块应当说明其主处理函数是否必须按特定顺序或序列执行。

+
+ +
+

[SRS_BSW_00429] 对 OS 的访问应当受限制(仅 BSW 调度器和 RTE 可访问 OS 对象)。

+
+ +
+

[SRS_BSW_00432] 模块应当为读/接收和写/发送数据路径提供独立的主处理函数。

+
+ +
+

[SRS_BSW_00433] 主处理函数只应当由 BSW 调度器提供的任务体调用。

+
+ +

5.1.4 关闭操作(Shutdown Operation)

+ +
+

[SRS_BSW_00170] AUTOSAR SW-C 应当提供关于它们对故障、信号质量、驱动需求的依赖信息。

+
+ +
+

[SRS_BSW_00336] 基础软件模块应当能够关闭。

+
+ +
+

[SRS_BSW_00375] 基础软件模块应当上报唤醒原因。

+
+ +

5.1.5 故障操作(Fault Operation)

+ +
+

[SRS_BSW_00024] 头文件应当防止多次包含。

+
+ +
+

[SRS_BSW_00337] 开发错误应当分类。

+
+ +
+

[SRS_BSW_00339] 生产相关错误状态应当被报告。

+
+ +
+

[SRS_BSW_00369] (已在 5.1.3 中列出)

+
+ +
+

[SRS_BSW_00417] (已在 5.1.3 中列出)

+
+ +
+

[SRS_BSW_00422] 错误状态信息的预去抖在 DEM 中完成。

+
+ +
+

[SRS_BSW_00452] 运行时错误应当分类。

+
+ +
+

[SRS_BSW_00458] 生产错误应当分类。

+
+ +
+

[SRS_BSW_00466] 扩展生产错误应当分类。

+
+ +
+

[SRS_BSW_00473] 瞬态故障应当分类。

+
+ +
+

[SRS_BSW_00385] 基础软件模块应当列出可能的错误通知。

+
+ +
+

[SRS_BSW_00386] BSW 应当指定错误检测的配置。

+
+ +
+

[SRS_BSW_00456] 应当定义一个头文件以协调 BSW 模块。

+
+ +
+

[SRS_BSW_00457] 应用软件组件的回调函数应当由基础软件调用。

+
+ +
+

[SRS_BSW_00462] 所有标准化的 AUTOSAR 接口应当具有唯一的需求 ID/编号。

+
+ +
+

[SRS_BSW_00464] 文件名应当区分大小写,无论在哪个文件系统中使用。

+
+ +
+

[SRS_BSW_00469] 生产错误和扩展生产错误的故障检测和恢复。

+
+ +
+

[SRS_BSW_00470] 生产错误检测的执行频率。

+
+ +
+

[SRS_BSW_00471] 检测到生产错误时不得引起死锁——具备从先前检测到的生产错误恢复的能力。

+
+ +
+

[SRS_BSW_00472] 避免检测到同一根本原因的两个生产错误。

+
+ +

5.2 非功能需求(Non-Functional Requirements)

+ +

5.2.1 时序需求(Timing Requirements)

+ +
+

[SRS_BSW_00328] 所有 AUTOSAR 基础软件模块应当避免代码重复。

+
+ +
+

[SRS_BSW_00478] 主函数的时序限制。

+
+ +

5.2.2 资源使用(Resource Usage)

+ +
+

[SRS_BSW_00010] (已在 5.1.3 中列出)

+
+ +

5.2.3 可用性(Usability)

+ +
+

[SRS_BSW_00459] 应当可以在不同分区中并发执行 BSW 模块提供的服务。

+
+ +
+

[SRS_BSW_00460] BSW 分布式执行的机制。

+
+ +

5.2.4 其他工作包产出(Output for other WPs)

+ +
+

[SRS_BSW_00483] BSW 模块应当在内部处理缓冲区对齐。

+
+ +
+

[SRS_BSW_00480] 空指针错误应当遵循命名规则。

+
+ +
+

[SRS_BSW_00481] 无效配置集选择错误应当遵循命名规则。

+
+ +
+

[SRS_BSW_00482] GetVersionInfo 函数应当遵循命名规则。

+
+ +
+

[SRS_BSW_00479] 处理外部设备请求的接口。

+
+ +

6 需求追溯(Requirements traceability)

+

每条 SRS_BSW_* 需求至少被一个 SWS 规范文档满足。详细的满足关系在 SWS 文档(如 AUTOSAR_SWS_BSWGeneral.pdfAUTOSAR_SWS_*.pdf)中列出。

+ +

主要追溯原则:

+
    +
  • 每个 BSW 模块的 SWS 文档明确列出该模块满足的所有 SRS 需求;
  • +
  • 某些通用 SRS 需求(如命名约定)由所有 BSW 模块共同满足;
  • +
  • 特定 SRS 需求(如 OS 时间保护)由单个模块(如 OS)满足。
  • +
+ +

7 变更历史(Change history)

+

4.4.0 版本变更:

+
    +
  • 增加了安全事件分类的需求 SRS_BSW_00488
  • +
  • 增加了模块初始化错误的需求 SRS_BSW_00487
  • +
  • 清理头文件结构;
  • +
  • 移除过时引用;
  • +
  • 编辑性修订。
  • +
+ +

4.3.1 版本变更:

+
    +
  • 头文件生命周期的更新;
  • +
  • 更新相关标准和规范;
  • +
  • 编辑性修订。
  • +
+ +

4.3.0 版本变更:

+
    +
  • 为 C90 添加接口;
  • +
  • MISRA 2012 支持更新;
  • +
  • 移除过时引用;
  • +
  • 编辑性修订。
  • +
+ +

4.2.2 版本变更:

+
    +
  • 引入新需求 SRS_BSW_00403SRS_BSW_00351
  • +
  • 修改需求 SRS_BSW_00406SRS_BSW_00450
  • +
  • 调试支持标记为过时。
  • +
+ +

早期版本(4.2.1、4.2.0、4.1.x 等)包含了对 PBL/PBS ECU 配置支持、OSEK 引用更新、配置类改进、需求结构调整等大量变更。完整变更历史见原文第 5–6 页。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 需求清单:原文 ~100 条 SRS_BSW_NNNNN 需求按主题分组完整列出(配置、初始化、正常运行、关闭、故障、时序、资源、可用性)。
  • +
  • 章节结构:原文 7 章(含变更历史),译文目录完整对应。
  • +
  • 需求 ID 保留SRS_BSW_00003SRS_BSW_00488(约 100 条)完整保留编号。
  • +
  • 术语对照:BSW、MCAL、SW-C、RTE、ISR、OS、API、DEM、DET、ECU、MISRA C 2012、CDD、SchM、BswM、EcuM、ComM 等术语与术语表对齐。
  • +
  • 命名约定<Module>_GetVersionInfo()<Module>_MainFunction()<Module>_VariableName 等保留。
  • +
  • 配置类:编译前(Pre-Compile)、链接时(Link-Time)、构建后(Post-Build)三类完整保留。
  • +
  • 错误分类:开发错误、运行时错误、生产错误、扩展生产错误、瞬态故障五类与术语表对齐。
  • +
  • 追溯表省略:原文 6 节包含 ~100 行 × 3 列的"RS_BRF / SRS_BSW → 满足模块"大型追溯表,译文以概要说明代替。完整对照可查阅原文 PDF。
  • +
  • 变更历史细节:4.2/4.1/3.x 等早期版本的细节以摘要方式呈现。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SRS_BSWGeneral.pdf(80 页)· 文档 ID 043 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_BSWGeneral.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_BSWGeneral.html new file mode 100644 index 0000000..0ea8acd --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_BSWGeneral.html @@ -0,0 +1,505 @@ + + + + +基础软件模块通用规范 · AUTOSAR 4.4 中文翻译 + + + + +
+

基础软件模块通用规范(General Specification of Basic Software Modules)

+
+ 📄 文档 ID:578 + 🏷 类型:SWS(软件规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:85 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SWS_BSWGeneral.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本文档是关于 AUTOSAR 基础软件模块的通用规范。它是对各 BSW 模块规范的补充,提供了对各种 BSW 模块通用的规范。

+ +

1.1 追溯(Traceability)

+

本文档中的规范项描述了 BSW 模块实现的工作产物,关联到 AUTOSAR General Requirements on Basic Software Modules [3] 中描述的基础软件需求。

+

对于每个 BSW 模块,规范项与基础软件需求之间的追溯在本文档和相应的 BSW 模块规范文档的范围内。参见第 6 章"需求追溯"。

+

BSW 模块实现必须保证与本文档及相应 BSW 模块规范文档中的规范项可追溯。

+

某些规范项不适用于每个 BSW 模块。在这种情况下,其描述会明确说明适用条件。如果未提及条件,则该规范项适用于所有 BSW 模块。

+

更多信息参见 AUTOSAR 标准化模板 [13] 中"追溯支持"章节。

+ +

1.2 文档约定(Document conventions)

+

代码示例、符号和其他技术术语通常以等宽字体排版,例如 const

+

AUTOSAR 术语表 [7]、本规范(第 2 章)或相关文档中定义的术语和表达式以斜体排版,例如 Module implementation prefix

+

基础软件需求在文档 SRS BSW General [3] 中描述。这些需求使用 SRS_BSW_<n> 引用,其中 <n> 是需求 ID。例如:SRS_BSW_00009

+

每个规范项以 [SWS_BSW_<nr>] 开头,其中 <nr> 是规范项的唯一标识号。该编号后是规范项的标题。规范项描述的范围以半角括号 ⌈ ... ⌋ 标记,其后是在花括号中的来自 SRS BSW General 的相关需求列表。

+ +

示例

+ +
[SWS_BSW_<nr>] Specification item title
+⌈ Specification item description. ⌋ (SRS_BSW_<nr1>, SRS_BSW_<nr2>)
+ +

对其他 AUTOSAR 文档的规范项引用使用相应文档的约定,例如 [SWS_CANIF_00001]

+ +

2 缩略语与术语(Acronyms and abbreviations)

+ + + + + + + + + + + + + +
缩略语说明
BSW driverBSW 驱动:BSW 模块列表 [1] 中"AUTOSAR 软件层"列所列。
Camel case驼峰命名:本文档不定义具体规则。
ISRInterrupt Service Routine(中断服务例程)
MCALMicrocontroller Abstraction Layer(微控制器抽象层)
MIPModule Implementation Prefix(模块实现前缀)
SchMBSW Scheduler(BSW 调度器)
SFRSpecial Function Register(特殊功能寄存器)
VFBVirtual Functional Bus(虚拟功能总线)
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+ + + + + + + + + + + + + + + + + +
编号文档名原 PDF
[1]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList.pdf
[2]Layered Software ArchitectureAUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[3]General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[4]Basic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[5]Specification of ECU ConfigurationAUTOSAR_TPS_ECUConfiguration.pdf
[6]Specification of Standard TypesAUTOSAR_SWS_StandardTypes.pdf
[7]AUTOSAR Glossary
[8]Specification of RTEAUTOSAR_SWS_RTE.pdf
[9]Specification of Platform TypesAUTOSAR_SWS_PlatformTypes.pdf
[10]Specification of Compiler AbstractionAUTOSAR_SWS_CompilerAbstraction.pdf
[11]Specification of Communication Stack TypesAUTOSAR_SWS_CommunicationStackTypes.pdf
[12]Specification of Memory MappingAUTOSAR_SWS_MemoryMapping.pdf
[13]AUTOSAR Standardization Template
+ +

3.2 相关标准与规范

+
    +
  • ISO/IEC 9899:1990 Programming Language – C
  • +
  • MISRA C 2012 – Guidelines for the use of the C language in critical systems
  • +
+ +

4 约束与假设(Constraints and assumptions)

+ +

4.1 限制(Limitations)

+

本文档定义的是 BSW 模块的通用规范。每个 BSW 模块的具体规范在各自的 SWS 文档中定义。

+ +

4.2 对汽车领域的适用性(Applicability to car domains)

+

无限制。

+ +

5 对其他模块的依赖(Dependencies to other modules)

+ +

5.1 文件结构(File structure)

+ +

5.1.1 模块实现前缀(Module implementation prefix)

+

每个 BSW 模块都有一个实现前缀(Module Implementation Prefix,MIP),形式为 <Mip>。MIP 是模块短名称(缩写)的驼峰形式,例如:

+
    +
  • Can(用于 CAN 驱动);
  • +
  • CanIf(用于 CAN 接口);
  • +
  • WdgM(用于看门狗管理器)。
  • +
+ +

5.1.2 模块实现文件(Module implementation files)

+

每个 BSW 模块应当提供以下文件:

+
    +
  • <Mip>.c:模块实现;
  • +
  • <Mip>.h:模块对外接口;
  • +
  • <Mip>_Cfg.h:编译时配置(可选);
  • +
  • <Mip>_Lcfg.c:链接时配置(可选);
  • +
  • <Mip>_PBcfg.c:构建后配置(可选)。
  • +
+ +

5.1.3 导入与导出信息(Imported and exported information)

+

每个模块的 <Mip>.h 应当导入其依赖的其他模块的头文件。

+ +

5.1.4 BSW 模块描述(BSW Module Description)

+

每个模块有一个对应的 BSW Module Description XML 文件。

+ +

5.1.5 模块文档(Module documentation)

+

每个模块应附有用户手册和集成指南。

+ +

5.1.6 源文件结构(Code file structure)

+

源文件应包含:

+
    +
  • 包含头文件;
  • +
  • 文件版本检查;
  • +
  • 模块 ID 定义;
  • +
  • 模块内部数据;
  • +
  • 模块函数实现。
  • +
+ +

5.1.7 头文件结构(Header file structure)

+

头文件应包含:

+
    +
  • 包含保护;
  • +
  • 包含必要的头文件;
  • +
  • 类型定义;
  • +
  • 宏定义;
  • +
  • 函数声明。
  • +
+ +

5.1.8 版本检查(Version check)

+

模块应当使用 SWS_BSW_NNNNN 中的版本检查宏验证所依赖模块的版本。

+ +

6 需求追溯(Requirements traceability)

+

本文档的 SWS 规范项与 SRS 需求的对应关系详原文 6 章。本文档中约 100+ SWS_BSW_* 规范项满足 SRS_BSWGeneral 中约 100 条 SRS 需求。

+ +

关键追溯(摘录):

+ + + + + + + + + +
SWS 规范项满足 SRS 需求
SWS_BSW_00002配置规则(SRS_BSW_00167SRS_BSW_00344 等)
SWS_BSW_00010版本与标识(SRS_BSW_00003SRS_BSW_00379
SWS_BSW_00050初始化(SRS_BSW_00101SRS_BSW_00406
SWS_BSW_10000+ 等错误处理(SRS_BSW_00337SRS_BSW_00452SRS_BSW_00458SRS_BSW_00466SRS_BSW_00473
+ +

7 功能规范(Functional specification)

+ +

7.1 一般实现规范(General implementation specification)

+ +

7.1.1 MISRA C 与 C 标准合规(Conformance to MISRA C and C standard)

+

BSW 模块的 C 代码应当遵循 MISRA C 2012 标准。

+ +

7.1.2 AUTOSAR BSW 需求合规(Conformance to AUTOSAR BSW Requirements)

+

BSW 模块应当满足 AUTOSAR_SRS_BSWGeneral 中的所有适用需求。

+ +

7.1.3 AUTOSAR 方法论合规(Conformance to AUTOSAR Methodology)

+

BSW 模块的开发与集成应当遵循 AUTOSAR 方法论。

+ +

7.1.4 平台无关性与编译器抽象(Platform independency and compiler abstraction)

+

BSW 模块应当使用 Compiler.hPlatformTypes.h 实现平台无关性。MCAL 之上的模块代码不得使用处理器或编译器特定的关键字。

+ +

7.1.5 可配置性(Configurability)

+

BSW 模块应当支持以下三种配置类:

+
    +
  • 编译前(Pre-Compile):编译时确定;
  • +
  • 链接时(Link-Time):链接时确定;
  • +
  • 构建后(Post-Build):ECU 启动后可通过标定工具修改。
  • +
+ +

7.1.6 命名约定(Naming conventions)

+

AUTOSAR BSW 模块应当遵循以下命名约定:

+
    +
  • 类型<Mip>_TypeName_t<Mip>_TypeName
  • +
  • <MIP>_MACRO_NAME(大写);
  • +
  • 全局变量<Mip>_VariableName
  • +
  • 函数<Mip>_FunctionName()
  • +
  • 配置参数<Mip>_ParameterName
  • +
  • 文件<Mip>.c<Mip>.h
  • +
  • 头文件包含#include "<Mip>.h"
  • +
+ +

7.1.7 配置参数(Configuration parameters)

+

每个配置参数应当具有:

+
    +
  • 名称;
  • +
  • 类型;
  • +
  • 范围;
  • +
  • 默认值;
  • +
  • 配置类。
  • +
+ +

7.1.8 共享代码(Shared code)

+

共享代码应当是可重入的。

+ +

7.1.9 全局数据(Global data)

+

全局变量应当在 C 文件中定义(不在头文件中);只读数据应当标记为 const

+ +

7.1.10 宏与内联函数的使用(Usage of macros and inline functions)

+

在运行时关键的代码中允许使用宏代替函数。编译器抽象宏 INLINELOCAL_INLINE 应用于内联函数。

+ +

7.1.11 调度函数的调用(Calling Scheduled functions)

+

主处理函数(<Mip>_MainFunction()只应当由 BSW 调度器调用。

+ +

7.1.12 排他区(Exclusive areas)

+

共享资源的临界区应当通过 SchM 或 OS 机制处理。

+ +

7.1.13 回调(Callouts)

+

回调函数由模块提供,由其他模块或 RTE 调用。

+ +

7.1.14 AUTOSAR 接口(AUTOSAR Interfaces)

+

具有 AUTOSAR 接口的 BSW 模块应当可以用 SW-C 模板描述。

+ +

7.1.15 中断服务例程(Interrupt service routines)

+

ISR 应当由 OS、CDD 或硬件相关模块提供。Cat1 ISR 由驱动/应用直接管理;Cat2 ISR 由 OS 管理。

+ +

7.1.16 受限的 OS 功能访问(Restricted OS functionality access)

+

只有 BSW 调度器和 RTE 可以使用 OS 对象。BSW 模块的运行时不得直接调用 OS 服务(除少数允许的服务外)。

+ +

7.1.17 访问硬件寄存器(Access to hardware registers)

+

硬件寄存器只能由 MCAL 模块访问。其他模块通过 MCAL 提供的接口访问硬件。

+ +

7.1.18 数据类型(Data types)

+

BSW 模块应当使用 AUTOSAR 标准数据类型(uint8uint16 等),而非原生 C 类型。

+ +

7.1.19 多分区系统上的分布式执行(Distributed execution on multi-partitioned systems)

+

BSW 模块可以分布在多个分区上运行。详细机制见 AUTOSAR_EXP_BSWDistributionGuide

+ +

7.2 错误处理(Error Handling)

+ +

7.2.1 分类(Classification)

+

AUTOSAR 定义以下错误类别:

+
    +
  • 开发错误(Development Error):开发阶段发现的问题;
  • +
  • 运行时错误(Runtime Error):运行时发生的错误;
  • +
  • 瞬态故障(Transient Fault):短暂出现的硬件故障;
  • +
  • 生产错误(Production Error):生产环境发生的错误;
  • +
  • 扩展生产错误(Extended Production Error):带有额外信息的生产错误;
  • +
  • 安全事件(Security Event):安全相关事件。
  • +
+ +

7.2.2 开发错误(Development errors)

+

开发错误通过 Det(Default Error Tracer)报告。每个开发错误具有:

+
    +
  • 模块特定的错误代码;
  • +
  • 错误名称(如 <MIP>_E_PARAM_INVALID);
  • +
  • 严重性(如 DET_ERROR)。
  • +
+

开发错误在生产构建中应被禁用。

+ +

7.2.3 运行时错误(Runtime errors)

+

运行时错误也通过 Det 报告,与开发错误类似,但用于运行时检测到的违反约束情况。

+ +

7.2.4 瞬态故障(Transient faults)

+

瞬态故障是短时出现的硬件故障。模块可记录瞬态故障计数,并在超过阈值后升级为生产错误。

+ +

7.2.5 扩展生产错误与生产错误(Extended production errors and production errors)

+

生产错误和扩展生产错误通过 DEM(Diagnostic Event Manager)报告。模块应当使用 Dem_ReportErrorStatus() 上报生产错误,使用 Dem_SetEventStatus() 上报扩展生产错误。

+ +

7.2.6 安全事件(Security events)

+

安全事件通过 IdsM(Intrusion Detection System Manager)报告,适用于 4.4 引入的安全机制。

+ +

7.2.7 特定主题(Specific topics)

+

包括错误 ID 命名规则、错误回调、去抖(debounce)等。

+ +

7.3 元数据处理(Meta Data Handling)

+

BSW 模块应当通过 MetaData 提供关于其功能的信息,供 RTE、工具等使用。元数据在 BSW Module Description XML 中定义。

+ +

8 API 规范(API specification)

+ +

8.1 导入类型(Imported types)

+

每个 BSW 模块应当导入其依赖的 AUTOSAR 标准类型(Std_ReturnTypeStd_VersionInfoType)和模块特定类型。

+ +

8.2 类型定义(Type definitions)

+

模块特定类型应当<Mip>_TypeName 命名。

+ +

8.3 函数定义(Function definitions)

+ +

8.3.1 API 函数的一般规范

+

BSW 模块的 API 函数应当遵循:

+
    +
  • <Mip>_FunctionName 命名;
  • +
  • 首个参数为模块 ID(如 uint8 ModuleId);
  • +
  • 返回 Std_ReturnType
  • +
  • 使用 FUNC() 宏进行声明/定义。
  • +
+ +

8.3.2 初始化函数

+

每个模块应当提供 <Mip>_Init() 函数,用于初始化模块。

+ +

8.3.3 去初始化函数

+

每个模块应当提供 <Mip>_DeInit() 函数(如果适用),用于去初始化。

+ +

8.3.4 获取版本信息

+

每个模块应当提供 <Mip>_GetVersionInfo() 函数,用于返回模块的版本信息。

+ +

8.4 回调通知(Callback notifications)

+

模块可定义回调函数,由其他模块或 RTE 调用。回调函数应当在头文件中声明。

+ +

8.5 调度函数(Scheduled functions)

+

模块可声明主处理函数(如 <Mip>_MainFunction()),由 BSW 调度器周期性调用。

+ +

8.6 期望接口(Expected Interfaces)

+

每个模块应当声明它需要从其他模块获得的接口:

+
    +
  • 必需接口(Mandatory Interfaces):模块运行所必需;
  • +
  • 可选接口(Optional Interfaces):仅在某些配置中使用;
  • +
  • 可配置接口(Configurable Interfaces):可在配置中启用/禁用。
  • +
+ +

8.7 服务接口(Service Interfaces)

+

不适用。

+ +

9 时序图(Sequence diagrams)

+

不适用。

+ +

10 配置规范(Configuration specification)

+ +

10.1 配置规范介绍(Introduction to configuration specification)

+ +

10.1.1 配置与配置参数

+

每个 BSW 模块通过配置工具生成配置参数。

+ +

10.1.2 变体(Variants)

+

变体支持同一模块的多个配置实例,例如不同的 ECU 配置。

+ +

10.1.3 容器(Containers)

+

容器用于分组相关的配置参数。

+ +

10.1.4 配置参数表(Configuration parameter tables)

+

每个容器和参数在 BSW Module Description 中以表格形式定义。

+ +

10.1.5 配置类标签(Configuration class labels)

+

三种配置类:

+
    +
  • Pre-Compile:编译时确定;
  • +
  • Link-Time:链接时确定;
  • +
  • Post-Build:运行时可修改。
  • +
+ +

10.2 通用配置规范(General configuration specification)

+ +

10.2.1 配置文件(Configuration files)

+

每个模块的配置文件应当由配置工具生成,并符合 BSW Module Description 模板。

+ +

10.2.2 配置参数的实现名称(Implementation names for configuration parameters)

+

配置参数的 C 实现名应当遵循 <Mip>_Conf_ElementName 模式。

+ +

10.2.3 编译前配置(Pre-compile time configuration)

+

通过 #define 实现。

+ +

10.2.4 链接时配置(Link time configuration)

+

通过链接时的 C 对象实现。

+ +

10.2.5 构建后配置(Post-build time configuration)

+

通过构建后加载的数据结构实现。

+ +

10.2.6 配置变体(Configuration variants)

+

每个模块可定义多个配置变体,例如 VariantPreCompileVariantLinkTimeVariantPostBuild

+ +

10.3 发布信息(Published Information)

+

每个模块应当发布以下标准信息:

+ + + + + + + + + + + +
发布参数说明
<Mip>_PUBLISHED-INFORMATION发布信息的版本
<MIP>_MODULE_ID模块 ID(uint16)
<MIP>_VENDOR_ID供应商标识(uint16)
<MIP>_SW_MAJOR_VERSION软件主版本号
<MIP>_SW_MINOR_VERSION软件次版本号
<MIP>_SW_PATCH_VERSION软件补丁版本号
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 10 章 + 30+ 子节,译文目录完整对应(1–10 章;5.1、7.1.1–7.1.19、7.2.1–7.2.7、8.1–8.7、10.1–10.3)。
  • +
  • 核心规范:MISRA C 2012 合规、命名约定、文件结构、配置类、错误分类、API 规范、发布参数等核心内容完整翻译。
  • +
  • 命名约定<Mip>_TypeName_t<MIP>_MACRO_NAME<Mip>_VariableName<Mip>_FunctionName() 等保留。
  • +
  • 配置类:Pre-Compile、Link-Time、Post-Build 三类完整保留。
  • +
  • 错误分类:开发、运行时、瞬态、生产、扩展生产、安全事件六类与术语表对齐。
  • +
  • 标准 API<Mip>_Init()<Mip>_DeInit()<Mip>_GetVersionInfo()<Mip>_MainFunction() 等完整保留。
  • +
  • 发布参数<MIP>_MODULE_ID<MIP>_VENDOR_ID<MIP>_SW_*_VERSION 完整保留。
  • +
  • 追溯:~100 条 SWS 规范项与 SRS 需求的对应关系以摘录表格展示。
  • +
  • 详细 SWS 规范项:原文 6/7/8 章中包含 ~100 条 SWS_BSW_NNNNN 规范项,译文以概要描述呈现主要类别,详细内容可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SWS_BSWGeneral.pdf(85 页)· 文档 ID 578 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CommunicationStackTypes.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CommunicationStackTypes.html new file mode 100644 index 0000000..a3e6c5c --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CommunicationStackTypes.html @@ -0,0 +1,470 @@ + + + + +通信栈类型规范 · AUTOSAR 4.4 中文翻译 + + + + +
+

通信栈类型规范(Specification of Communication Stack Types)

+
+ 📄 文档 ID:050 + 🏷 类型:SWS(软件规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:26 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SWS_CommunicationStackTypes.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本规范定义了 AUTOSAR 通信栈类型头文件。它包含所有在基础软件通信栈多个模块中复用的类型,以及所有与平台和编译器无关的基础软件模块类型。

+

强烈推荐在 AUTOSAR 社区内统一使用这些通信栈类型文件,以保证类型的唯一性,并避免从供应商 A 切换到供应商 B 时类型发生变化。

+ +

2 缩略语与术语(Acronyms and abbreviations)

+

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表中的缩略语与术语,必须在本节"局部术语表"中列出。

+ + + + + + + + + + + + + + +
缩略语说明
APIApplication Programming Interface(应用程序编程接口)
DCMDiagnostic Communication Manager(诊断通信管理器)
I-PDUInteraction Layer PDU(交互层 PDU)。在 AUTOSAR 中,交互层等同于"通信服务层"(Communication Services Layer)。
L-PDUData Link Layer PDU(数据链路层 PDU)。在 AUTOSAR 中,数据链路层等同于"通信硬件抽象层"和"微控制器抽象层"。
N-PDUNetwork Layer PDU(网络层 PDU)。在 AUTOSAR 中,网络层等同于"传输协议"。
OSEK/VDXOffene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug(汽车电子开放系统及其接口)。1993 年 5 月由德国汽车行业联合发起,目标是为车辆分布式控制单元提供开放式架构标准。初始成员:BMW、Bosch、DaimlerChrysler、Opel、Siemens、VW 及卡尔斯鲁厄大学 IIIT;1994 年法国 PSA 与 Renault 携 VDX(Vehicle Distributed eXecutive)方案加入。
PDUProtocol Data Unit(协议数据单元)
SDUService Data Unit(服务数据单元),即 PDU 的有效载荷
TPTransport Protocol(传输协议)
+ + + + + + + + + +
缩写说明
ComCommunication(通信)
EcuCECU Configuration(ECU 配置)
e.g.[lat.] exempli gratia = [eng.] for example(例如)
i.e.[lat.] it est = [eng.] that is(即)
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+ + + + + + + + + + + + + + + + +
编号 / 标签文档名原 PDF
[1] GeneralSRSGeneral Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[2] SRSSPALGeneral Requirements on SPALAUTOSAR_SRS_SPALGeneral.pdf
[3] StdTypesSpecification of Standard TypesAUTOSAR_SWS_StandardTypes.pdf
[4] PltfTypesSpecification of Platform TypesAUTOSAR_SWS_PlatformTypes.pdf
[5] CompTypesSpecification of Compiler AbstractionAUTOSAR_SWS_CompilerAbstraction.pdf
[6] CANTPSpecification of CAN Transport LayerAUTOSAR_SWS_CANTransportLayer.pdf
[7] FlexRayTPSpecification of FlexRay Transport LayerAUTOSAR_SWS_FlexRayTransportLayer.pdf
[8] CANTRCVSpecification of CAN Transceiver DriverAUTOSAR_SWS_CANTransceiverDriver.pdf
[9] FRTRCVSpecification of FlexRay Transceiver DriverAUTOSAR_SWS_FlexRayTransceiverDriver.pdf
[10] BSMDTBasic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[11] BSWModuleList of Basic Software ModulesAUTOSAR_TR_BSWModuleList
[12] BSWGeneralGeneral Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf
+ +

3.2 相关标准与规范

+
    +
  • [CProgLang]:ISO/IEC 9899:1990 Programming Language – C
  • +
  • [ISONM]:ISO/IEC 15765-2; 2003 Diagnostics on Controller Area Networks (CAN) – Network layer services
  • +
+ +

3.3 相关规范

+

AUTOSAR 提供了通用基础软件模块规范(参见 3.1 节 [12],SWS BSW General),该规范对通信栈类型同样适用。

+

因此,SWS BSW General 应被视为通信栈类型的附加且必需的规范

+ +

4 约束与假设(Constraints and assumptions)

+ +

4.1 限制(Limitations)

+

无限制。

+ +

4.2 对汽车领域的适用性(Applicability to car domains)

+

无限制。

+ +

4.3 对功能安全相关环境的适用性(Applicability to safety related environments)

+

无限制,因为本规范的主题是定义类型的头文件,它不包含或实现任何功能

+ +

5 软件架构(Software Architecture)

+ +

5.1 对其他模块的依赖(Dependencies to other modules)

+

通信栈类型头文件基于平台类型 [PltfTypes](PlatformTypes.h)和编译器头文件 [CompTypes](Compiler.h)定义通信类型。为防止头文件被多次包含,通信栈头文件包含标准类型头文件 [StdTypes],而后者已经包含了上述两个文件。

+ +

6 需求追溯(Requirements traceability)

+

本规范引用了大量 SRS 需求,绝大多数通过 SWS_Comtype_NA_0SWS_Comtype_NA_5 声明"不适用"(详见 第 11 节)。

+ + + + + + + + + + + +
SRS 需求由以下满足
配置类相关(无配置参数):SRS_BSW_00158SRS_BSW_00159SRS_BSW_00160SRS_BSW_00167SRS_BSW_00171SRS_BSW_00342SRS_BSW_00343SRS_BSW_00344SRS_BSW_00345SRS_BSW_00346SRS_BSW_00380SRS_BSW_00381SRS_BSW_00383SRS_BSW_00388SRS_BSW_00389SRS_BSW_00390SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00396SRS_BSW_00397SRS_BSW_00398SRS_BSW_00399SRS_BSW_00400SRS_BSW_00401SRS_BSW_00404SRS_BSW_00405SRS_BSW_00408SRS_BSW_00412SWS_Comtype_NA_0
SW-C 依赖相关:SRS_BSW_00168SRS_BSW_00170SRS_BSW_00423SWS_Comtype_NA_1
中断/驱动/OS 相关(无中断实现):SRS_BSW_00005SRS_BSW_00101SRS_BSW_00161SRS_BSW_00162SRS_BSW_00164SRS_BSW_00172SRS_BSW_00314SRS_BSW_00325SRS_BSW_00347SRS_BSW_00361SRS_BSW_00375SRS_BSW_00406SRS_BSW_00410SRS_BSW_00413SRS_BSW_00416SRS_BSW_00424SRS_BSW_00425SRS_BSW_00426SRS_BSW_00427SRS_BSW_00428SRS_BSW_00429SWS_Comtype_NA_2
命名/类型/API 等通用规范:SRS_BSW_00006SRS_BSW_00007SRS_BSW_00009SRS_BSW_00010SRS_BSW_00300SRS_BSW_00301SRS_BSW_00302SRS_BSW_00304SRS_BSW_00306SRS_BSW_00307SRS_BSW_00308SRS_BSW_00309SRS_BSW_00310SRS_BSW_00312SRS_BSW_00321SRS_BSW_00323SRS_BSW_00330SRS_BSW_00331SRS_BSW_00333SRS_BSW_00334SRS_BSW_00335SRS_BSW_00341SRS_BSW_00348SRS_BSW_00353SRS_BSW_00357SRS_BSW_00358SRS_BSW_00359SRS_BSW_00360SRS_BSW_00371SRS_BSW_00373SRS_BSW_00374SRS_BSW_00377SRS_BSW_00378SRS_BSW_00379SRS_BSW_00407SRS_BSW_00411SRS_BSW_00414SRS_BSW_00415SRS_BSW_00432SRS_BSW_00433SRS_BSW_00328SWS_Comtype_NA_3
关闭功能:SRS_BSW_00336SWS_Comtype_NA_4
错误处理:SRS_BSW_00327SRS_BSW_00337SRS_BSW_00339SRS_BSW_00350SRS_BSW_00369SRS_BSW_00385SRS_BSW_00386SRS_BSW_00409SRS_BSW_00417SRS_BSW_00422SWS_Comtype_NA_5
+ +

7 功能规范(Functional specification)

+ +

7.1 通用问题(General issues)

+ +
+

[SWS_Comtype_00004]

+

本文件不得添加任何项目或供应商特定的扩展。任何扩展都将使 AUTOSAR 一致性失效。

+
+ +
+

[SWS_Comtype_00015]

+

由于许多通信栈类型依赖于具体的 ECU,本文件应根据每个 ECU 的具体配置独立生成

+
+ +
+

[SWS_Comtype_00030]

+

PduIdTypePduLengthType 的取值应当分别派生自 EcuC 虚拟层中 EcuCPduCollection 容器的 PduIdTypeEnumPduLengthTypeEnum

+
+ +

8 API 规范(API specification)

+ +

8.1 类型定义(Type definitions)

+ +

8.1.1 PduIdType

+ +
+

[SWS_COMTYPE_00005]

+ + + + + + + + +
名称(Name)PduIdType
类型(Type)uint8, uint16
取值(Range)0...<PduIdmax> —— 从零开始的整数。
该全局类型的大小取决于一个软件模块内使用的最大 PDU 数。此参数由生成工具根据 EcuC 虚拟层中配置的值生成,并写入 ComStack_Cfg.h 文件。
示例
· 若模块处理的 PDU 超过 256 个,可设为 uint8
· 若至少一个模块处理超过 256 个 PDU,则必须全局设为 uint16
说明(Description)该类型在整个 AUTOSAR 通信栈中使用,不包含总线驱动。
可获取于(Available via)ComStackTypes.h
+
+ +
+

[SWS_Comtype_00006]

+

此类型的变量用作软件模块(或其集合)内 PDU 的唯一标识符,也用于两个软件模块之间的交互——此时使用目标模块对应的 PduId 进行引用。

+
+ +
+

[SWS_Comtype_00007]

+

为支持在软件模块内进行表索引,此类型的变量应当从零开始且连续。模块内可以有多个 PduId 范围,每种操作类型(如发送与接收)对应一个范围。

+
+ +
+

[SWS_Comtype_00014]

+

PduIdmax(一个 PduId 范围的最大值)为该模块中相应操作类型所处理的 PDU 数减 1。

+
+ +

8.1.2 PduLengthType

+ +
+

[SWS_COMTYPE_00008]

+ + + + + + + + +
名称(Name)PduLengthType
类型(Type)uint8, uint16, uint32
取值(Range)0...<PduLengthmax> —— 从零开始的整数。
该全局类型的大小取决于一个 ECU 所发送 PDU 的最大长度。此参数由生成工具根据 EcuC 虚拟层中配置的值生成,并写入 ComStack_Cfg.h 文件。
示例
· 若不使用分段传输,长度取决于底层通信系统单帧的最大有效载荷(FlexRay 最大为 255,因此使用 uint8)。
· 若使用分段传输,则取决于分段 N-PDU 的最大长度(通常使用 uint16)。
说明(Description)该类型应当在一个 ECU 的整个 AUTOSAR 通信栈中使用,不包含总线驱动。
可获取于(Available via)ComStackTypes.h
+
+ +
+

[SWS_Comtype_00010]

+

此类型的变量用作 PDU 的长度信息。长度信息以字节数给出。

+
+ +
+

[SWS_Comtype_00017]

+

PduLengthmax(PDU 的最大长度)是该 ECU 所发送最大(可能分段的)PDU 的长度。

+
+ +

8.1.3 PduInfoType

+ +
+

[SWS_COMTYPE_00011]

+ + + + + + + + + + +
名称(Name)PduInfoType
类型(Type)Structure(结构体)
元素(Element)uint8* SduDataPtr     指向 PDU 的 SDU(即有效载荷数据)的指针。该指针的类型取决于编译时使用的内存模型。
uint8* MetaDataPtr     指向 PDU 的元数据(例如 CAN ID、socket ID、诊断地址)的指针,由一系列元数据项组成。每个 PDU 的元数据项的长度和类型在配置时静态确定。超过 8 位的元数据项使用平台字节序。
PduLengthType SduLength     SDU 的字节长度。
说明(Description)此类型的变量应当用于存储任意类型 PDU 的基本信息,即:一个指向其 SDU(有效载荷)的指针变量、一个指向 PDU 元数据的指针、以及 SDU 对应的字节长度。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.4 PNCHandleType

+ +
+

[SWS_COMTYPE_00036]

+ + + + + + + +
名称(Name)PNCHandleType
类型(Type)uint8
说明(Description)用于存储部分网络(Partial Network)集群的标识符。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.5 TPParameterType

+ +
+

[SWS_COMTYPE_00031]

+ + + + + + + + + + +
名称(Name)TPParameterType
类型(Type)Enumeration(枚举)
取值(Range)TP_STMIN     0x00     Separation Time(分隔时间)
TP_BS     0x01     Block Size(块大小)
TP_BC     0x02     FlexRay 传输协议模块中使用的带宽控制参数
说明(Description)指定要修改其值的参数(BS 或 STmin)。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.6 BufReq_ReturnType

+ +
+

[SWS_COMTYPE_00012]

+ + + + + + + + + + + +
名称(Name)BufReq_ReturnType
类型(Type)Enumeration(枚举)
取值(Range)BUFREQ_OK     0x00     缓冲区请求成功完成。该状态的取值必须为 0。
BUFREQ_E_NOT_OK     0x01     缓冲区请求不成功,无法访问缓冲区。该状态的取值必须为 1。
BUFREQ_E_BUSY     0x02     暂时无可用缓冲区。由请求方在一段时间后重试。该状态的取值必须为 2。
BUFREQ_E_OVFL     0x03     无法提供所需长度的缓冲区。该状态的取值必须为 3。
说明(Description)此类型的变量应当用于存储缓冲区请求的结果。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.7 TpDataStateType

+ +
+

[SWS_COMTYPE_00027]

+ + + + + + + + + + +
名称(Name)TpDataStateType
类型(Type)Enumeration(枚举)
取值(Range)TP_DATACONF     0x00     表示到目前为止已复制的数据都已确认,可以从 TP 缓冲区移除。本次 API 调用复制的数据除外,将在之后确认。
TP_DATARETRY     0x01     表示本次 API 调用应重新复制已复制的数据以从错误中恢复。此时 TxTpDataCnt 指定本次 API 调用要复制的第一个字节的偏移。
TP_CONFPENDING     0x02     表示之前复制的数据必须保留在 TP 中。
说明(Description)此类型的变量应当用于存储 TP 缓冲区的状态。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.8 RetryInfoType

+ +
+

[SWS_COMTYPE_00037]

+ + + + + + + + + +
名称(Name)RetryInfoType
类型(Type)Structure(结构体)
元素(Element)TpDataStateType TpDataState     用于存储 TP 缓冲区状态的枚举类型。
PduLengthType TxTpDataCnt     从当前位置开始的偏移,标识需要重传的字节数。
说明(Description)此类型的变量应当用于存储 TP 缓冲区处理的相关信息。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.9 NetworkHandleType

+ +
+

[SWS_COMTYPE_00038]

+ + + + + + + + + + +
名称(Name)NetworkHandleType
种类(Kind)Type(类型)
派生自(Derived from)uint8
说明(Description)NetworkHandleType 类型的变量应当用于存储通信通道的标识符。
取值(Range)0..255     从零开始的整数
变化(Variation)
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.10 IcomConfigIdType

+ +
+

[SWS_COMTYPE_00039]

+ + + + + + + +
名称(Name)IcomConfigIdType
类型(Type)uint8
说明(Description)IcomConfigIdType 定义配置 ID。ID 为 0 表示默认配置。ID 大于 0 应当用于识别"拟网络(Pretended Networking)"的一种配置。允许存在多种配置。
可获取于(Available via)ComStackTypes.h
+
+ +

8.1.11 IcomSwitch_ErrorType

+ +
+

[SWS_COMTYPE_00040]

+ + + + + + + + + +
名称(Name)IcomSwitch_ErrorType
类型(Type)Enumeration(枚举)
取值(Range)ICOM_SWITCH_E_OK     0x00     拟网络的激活成功。
ICOM_SWITCH_E_FAILED     0x01     拟网络的激活失败。
说明(Description)IcomSwitch_ErrorType 定义激活或去激活"拟网络"时可能发生的错误。
可获取于(Available via)ComStackTypes.h
+
+ +

8.2 函数定义(Function definitions)

+

不适用。

+ +

9 时序图(Sequence diagrams)

+

不适用。

+ +

10 配置规范(Configuration specification)

+ +

10.1 发布参数(Published parameters)

+

详细信息参见 SWS_BSWGeneral [12] 的 10.3 节"发布信息"。

+ +

11 不适用的需求(Not applicable requirements)

+ +
+

[SWS_Comtype_NA_0]

+

本条目引用的需求不适用,因为 ComStack_Types 既无可配置参数,也未引用其他模块的配置参数。

+

SRS_BSW_00344SRS_BSW_00404SRS_BSW_00405SRS_BSW_00345SRS_BSW_00159SRS_BSW_00167SRS_BSW_00171SRS_BSW_00380SRS_BSW_00381SRS_BSW_00412SRS_BSW_00383SRS_BSW_00388SRS_BSW_00389SRS_BSW_00390SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00396SRS_BSW_00397SRS_BSW_00398SRS_BSW_00399SRS_BSW_00400SRS_BSW_00342SRS_BSW_00343SRS_BSW_00160SRS_BSW_00408SRS_BSW_00346SRS_BSW_00158SRS_BSW_00401

+
+ +
+

[SWS_Comtype_NA_1]

+

本条目引用的需求不适用,因为 ComStack_Types 与软件组件(SW-C)之间没有依赖关系

+

SRS_BSW_00170SRS_BSW_00168SRS_BSW_00423

+
+ +
+

[SWS_Comtype_NA_2]

+

本条目引用的需求不适用,因为 ComStack_Types 不实现任何中断,不是驱动或 MCAL 抽象层,也未直接访问 OS。

+

SRS_BSW_00375SRS_BSW_00101SRS_BSW_00406SRS_BSW_00416SRS_BSW_00424SRS_BSW_00425SRS_BSW_00426SRS_BSW_00427SRS_BSW_00428SRS_BSW_00429SRS_BSW_00161SRS_BSW_00162SRS_BSW_00005SRS_BSW_00164SRS_BSW_00325SRS_BSW_00413SRS_BSW_00347SRS_BSW_00314SRS_BSW_00410SRS_BSW_00361SRS_BSW_00172

+
+ +
+

[SWS_Comtype_NA_3]

+

本条目引用的需求不适用,因为 ComStack_Types 不实现版本检查、主函数、API、标准类型等。

+

SRS_BSW_00323SRS_BSW_00415SRS_BSW_00007SRS_BSW_00300SRS_BSW_00307SRS_BSW_00310SRS_BSW_00373SRS_BSW_00335SRS_BSW_00411SRS_BSW_00348SRS_BSW_00353SRS_BSW_00301SRS_BSW_00302SRS_BSW_00328SRS_BSW_00312SRS_BSW_00006SRS_BSW_00357SRS_BSW_00377SRS_BSW_00304SRS_BSW_00378SRS_BSW_00306SRS_BSW_00308SRS_BSW_00309SRS_BSW_00371SRS_BSW_00358SRS_BSW_00407SRS_BSW_00432SRS_BSW_00433SRS_BSW_00414SRS_BSW_00359SRS_BSW_00360SRS_BSW_00330SRS_BSW_00331SRS_BSW_00009SRS_BSW_00010SRS_BSW_00333SRS_BSW_00374SRS_BSW_00379SRS_BSW_00321SRS_BSW_00341SRS_BSW_00334

+
+ +
+

[SWS_Comtype_NA_4]

+

本条目引用的需求不适用,因为 ComStack_Types 不包含任何关闭功能。

+

SRS_BSW_00336

+
+ +
+

[SWS_Comtype_NA_5]

+

本条目引用的需求不适用,因为 ComStack_Types 不实现开发错误和生产错误。

+

SRS_BSW_00337SRS_BSW_00369SRS_BSW_00339SRS_BSW_00422SRS_BSW_00417SRS_BSW_00409SRS_BSW_00385SRS_BSW_00386SRS_BSW_00327SRS_BSW_00350

+
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 类型定义PduIdTypePduLengthTypePduInfoTypePNCHandleTypeTPParameterTypeBufReq_ReturnTypeTpDataStateTypeRetryInfoTypeNetworkHandleTypeIcomConfigIdTypeIcomSwitch_ErrorType 共 11 个类型定义全部翻译。
  • +
  • 缩略语:I-PDU/L-PDU/N-PDU/PDU/SDU/OSEK-VDX/DCM/TP 等完整解释。
  • +
  • 章节结构:原文 11 章,译文目录完整对应;8.1.1–8.1.11 全保留。
  • +
  • 需求 ID 保留SWS_COMTYPE_00005SWS_COMTYPE_00040SWS_Comtype_NA_0SWS_Comtype_NA_5SWS_Comtype_00004/00006/00007/00010/00014/00015/00017/00030 完整保留。
  • +
  • 枚举取值BUFREQ_OKBUFREQ_E_NOT_OKBUFREQ_E_BUSYBUFREQ_E_OVFLTP_DATACONFTP_DATARETRYTP_CONFPENDINGTP_STMIN/BS/BCICOM_SWITCH_E_OK/FAILED 等完整翻译并保留取值说明。
  • +
  • 配置生成ComStack_Cfg.hComStackTypes.h 区别已说明。
  • +
  • 需求追溯:所有 SRS 追溯条目按 6 个 NA_* 类别归纳整理。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SWS_CommunicationStackTypes.pdf(26 页)· 文档 ID 050 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CompilerAbstraction.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CompilerAbstraction.html new file mode 100644 index 0000000..6710d06 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_CompilerAbstraction.html @@ -0,0 +1,922 @@ + + + + +编译器抽象规范 · AUTOSAR 4.4 中文翻译 + + + + +
+

编译器抽象规范(Specification of Compiler Abstraction)

+
+ 📄 文档 ID:051 + 🏷 类型:SWS(软件规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:53 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SWS_CompilerAbstraction.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本文档规范了用于抽象编译器特定关键字的宏,这些关键字用于声明和定义中的数据和代码寻址。

+

主要是针对 16 位平台(例如 Cosmic 和 Metrowerks for S12X、Tasking for ST10)的编译器使用特殊关键字来处理微控制器架构的特性,原因在于 16 位地址范围的限制。如果不将内存模型调整为 largehuge,编译器的分页(paging)和扩展寻址(用于访问 64K 边界以外的内存)等特性不会被自动启用。数据和代码的位置必须通过特殊关键字显式选择。如果直接在源代码中使用这些关键字,将导致每次移植到新的微控制器系列时都必须修改软件,违反了源代码的平台无关性要求。

+

如果默认将内存模型切换为 largehuge(以规避上述问题),则项目将承受增加的代码大小。

+

本文档规范了一个三步概念

+
    +
  1. 文件 Compiler.h 提供用于封装定义和声明的宏。
  2. +
  3. 每个单独的模块必须至少区分以下不同的内存类和指针类。每个类由一个 #define 表示。
  4. +
  5. 文件 Compiler_Cfg.h 允许根据模块描述和构建场景的内存设置,使用适当的编译器特定关键字来配置这些 #define
  6. +
+ +

2 缩略语与术语(Acronyms and abbreviations)

+

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表中的缩略语与术语,必须在本节"局部术语表"中列出。

+ + + + + + + + + +
缩略语说明
Large, huge微控制器编译器的内存模型配置。默认情况下,所有访问机制使用扩展/分页寻址。
某些编译器使用 huge 一词代替 far
Tiny, small微控制器编译器的内存模型配置。默认情况下,所有访问机制使用普通寻址。仅可访问平台架构地址范围内的数据和代码(例如 16 位架构上为 64K)。
far扩展/分页寻址方案的编译器关键字(用于可能位于平台架构普通寻址方案之外的数据和代码)。
near普通寻址方案的编译器关键字(用于位于平台架构地址范围内的数据和代码)。
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+ + + + + + + + + + + + + + + + + +
编号文档名原 PDF
[1]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList.pdf
[2]General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[3]Layered Software ArchitectureAUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
[4]Specification of ECU ConfigurationAUTOSAR_TPS_ECUConfiguration.pdf
[5]Cosmic C Cross Compiler User's Guide for Motorola MC68HC12, V4.5
[6]ARM ADS compiler manual
[7]GreenHills MULTI for V850 V4.0.5
[8]TASKING for ST10 V8.5
[9]Wind River (Diab Data) for PowerPC Version 5.2.1
[10]TASKING for TriCore TC1796 V2.0R1
[11]Metrowerks CodeWarrior 4.0 for Freescale HC9S12X/XGATE (V5.0.25)
[12]General Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf
[13]Specification of Memory MappingAUTOSAR_SWS_MemoryMapping.pdf
+ +

3.2 相关规范

+

AUTOSAR 提供了通用基础软件模块规范 [12](SWS BSW General),该规范对编译器抽象同样适用。

+

因此,SWS BSW General 应被视为编译器抽象的附加且必需的规范

+ +

4 约束与假设(Constraints and assumptions)

+ +

4.1 限制(Limitations)

+

在对抽象进行规范和概念验证时,已考虑了 3.1 节中列出的编译器。若任何其他编译器需要的关键字无法映射到本规范描述的机制,则该编译器将不被 AUTOSAR 支持。在这种情况下,编译器厂商必须调整其编译器。

+

如果物理存在的内存在代码空间或数据空间上大于逻辑可寻址内存,且使用了超过逻辑可寻址空间的部分,则逻辑地址必须被重用。C 语言(以及其他语言)无法处理这种情况。

+ +

4.2 对汽车领域的适用性(Applicability to car domains)

+

无限制。

+ +

4.3 对功能安全相关环境的适用性(Applicability to safety related environments)

+

无限制。编译器抽象文件不实现任何功能,仅包含符号和宏。

+ +

5 对其他模块的依赖(Dependencies to other modules)

+ +
+

[SWS_COMPILER_00048]

+

SWS 编译器抽象适用于每个 AUTOSAR 基础软件模块和应用软件组件。因此,内存类(memclass)和指针类(ptrclass)宏参数的实现(见 SWS_COMPILER_00040应当满足特定构建场景中每个软件模块的实现和配置需求。

+

参考:SRS_BSW_00328, SRS_BSW_00384

+
+ +

5.1 文件结构(File structure)

+ +
+ 图 1:Compiler.h 的包含结构 +
+«header»                    «header»
+Compiler.h                ←  Std_Types.h
+        «includes»
+                              «includes»
+                          «header»
+                       Compiler_Cfg.h
+  
+
+ +

以下说明描述了与其他间接链接模块的连接:

+
    +
  • 注 1:编译器抽象用于配置元素(指针、变量、函数等)的可寻址性
  • +
  • 注 2:内存映射用于执行内存的分段。用户可以为优化源代码而定义段。
  • +
  • 注 3:链接器设置负责将元素分类到相应的内存段。
  • +
+ +

6 需求追溯(Requirements traceability)

+

本规范中实际有效的 SRS 需求追溯如下:

+ + + + + + + + + + + + + + + + + + + + + +
SRS 需求由以下满足
SRS_BSW_00003:所有软件模块应当提供版本和标识信息SWS_COMPILER_00001
SRS_BSW_00004:所有基础软件模块应当对所包含的头文件版本进行预处理检查SWS_COMPILER_00999
SRS_BSW_00006:MCAL 之上模块的源代码不应是处理器/编译器相关的SWS_COMPILER_00010SWS_COMPILER_00035SWS_COMPILER_00036
SRS_BSW_00306:AUTOSAR 基础软件模块应是编译器/平台无关SWS_COMPILER_00010SWS_COMPILER_00035SWS_COMPILER_00036SWS_COMPILER_00058SWS_COMPILER_00062SWS_COMPILER_00064
SRS_BSW_00328:所有 AUTOSAR 基础软件模块应当避免代码重复SWS_COMPILER_00048
SRS_BSW_00347:不同实例的 BSW 驱动命名应分离SWS_COMPILER_00050
SRS_BSW_00348:AUTOSAR 标准类型应放在标准类型头文件中SWS_COMPILER_00003SWS_COMPILER_00004
SRS_BSW_00361:所有非标准化关键字的映射应放在编译器特定类型和关键字头文件中SWS_COMPILER_00003SWS_COMPILER_00004SWS_COMPILER_00040SWS_COMPILER_00041SWS_COMPILER_00046SWS_COMPILER_00047SWS_COMPILER_00053SWS_COMPILER_00054SWS_COMPILER_00055SWS_COMPILER_00057SWS_COMPILER_00059SWS_COMPILER_00060SWS_COMPILER_00061SWS_COMPILER_00062SWS_COMPILER_00063SWS_COMPILER_00064SWS_COMPILER_00065
SRS_BSW_00374:基础软件模块应提供可读的模块厂商标识SWS_COMPILER_00030
SRS_BSW_00384:BSW 模块和 SWC 应在类型定义中不重复信息SWS_COMPILER_00048
SRS_BSW_00388:容器用于分组为同一对象定义的配置参数SWS_COMPILER_00040
SRS_BSW_00404:BSW 模块应支持构建后配置SWS_COMPILER_00059
SRS_BSW_00456:应定义头文件以协调 BSW 模块SWS_COMPILER_00054
SRS_BSW_00464:文件名应区分大小写SWS_COMPILER_00004SWS_COMPILER_00055
SRS_BSW_00480:空指针错误应遵循命名规则SWS_COMPILER_00051
其余 ~90+ SRS 需求SWS_COMPILER_00999
+ +

7 功能规范(Functional specification)

+ +

7.1 一般行为(General behavior)

+ +
+

[SWS_COMPILER_00003]

+

对于每个编译器和平台应当提供一个编译器抽象。

+

参考:SRS_BSW_00348, SRS_BSW_00361

+
+ +

7.1.1 编译器符号清单(List of Compiler symbols)

+

下表根据 SWS_COMPILER_00010 定义了目标编译器符号。此表仅包含示例,并未列出 AUTOSAR 支持的所有可能编译器!

+ + + + + + + + + + + + + + +
平台编译器编译器符号
S12XCode Warrior_CODEWARRIOR_C_S12X_
S12XCosmic_COSMIC_C_S12X_
TC1796/TC1766Tasking_TASKING_C_TRICORE_
ST10Tasking_TASKING_C_ST10_
ST30ARM Developer Suite_ADS_C_ST30_
V850Greenhills_GREENHILLS_C_V850_
MPC5554Diab Data_DIABDATA_C_ESYS_
TMS470Texas Instruments_TEXAS_INSTRUMENTS_C_TMS470_
ARMTexas Instruments_TEXAS_INSTRUMENTS_C_ARM_
+ +

注意:为避免不兼容和/或不一致,编译器符号定义不得在符号后包含任何值。

+ +

7.1.2 对使用编译器抽象的实现的要求(Requirements on implementations using compiler abstraction)

+ +
+

[SWS_COMPILER_00040]

+

每个 AUTOSAR 软件模块和应用软件组件应当支持至少以下不同的内存类和指针类的区分。

+

参考:SRS_BSW_00361, SRS_BSW_00388

+
+ +

<PREFIX> 的组成

+
    +
  • 对于 BSW 模块:按 <snp>[_<vi>_<ai>] 构成,其中: +
      +
    • <snp>段名前缀(Section Name Prefix): +
        +
      • 若 BSW 模块描述或软件组件描述中的 MemorySection 未定义 SectionNamePrefix,则 <snp> 应为 BswModuleDescriptionshortName 转换为大写字母。
      • +
      • 若定义了 SectionNamePrefix,则 <snp> 应为与 MemorySection 关联的 SectionNamePrefix 的符号。
      • +
      +
    • +
    • <vi> 是 BSW 模块的 vendorId
    • +
    • <ai> 是 BSW 模块的 vendorApiInfix
    • +
    +

    方括号中的子部分 [_<vi>_<ai>] 在 BSW 模块未定义 vendorApiInfix(即不使用多实例化)时省略。

    +
  • +
  • 对于软件组件:<PREFIX> 是软件组件类型的 shortName(大小写敏感)。
  • +
+ +

<INIT_POLICY>(变量的初始化策略)的取值包括:

+
    +
  • NO_INIT:用于从不清除且从不初始化的变量;
  • +
  • CLEARED:用于在每次复位后清零的变量;
  • +
  • POWER_ON_CLEARED:用于仅在上电复位后清零的变量;
  • +
  • INIT:用于在每次复位后用值初始化的变量;
  • +
  • POWER_ON_INIT:用于仅在上电复位后用值初始化的变量。
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
内存类型memclass 与 ptrclass 宏参数语法说明所在文件
代码<PREFIX>_CODE[_<PERIOD>]用于代码。PERIOD 为可执行实体的典型周期时间值和单位,[_<PERIOD>] 部分可选;单位包括 US(微秒)、MS(毫秒)、S(秒)。示例:100US、400US、1MS、5MS、10MS、20MS、100MS、1S。需注意实际周期可能因集成决策偏离典型值。Compiler_Cfg.h
代码<PREFIX>_<CN>_CODE用于回调(callout)代码,其中 <CN> 是回调名称(含模块引用)的大写形式。Compiler_Cfg.h
代码<PREFIX>_CODE_FAST用于进入快速代码内存段的代码。适用于无固定周期、但访问频繁或执行时间高的场景(例如频繁通知的回调)。Compiler_Cfg.h
代码<PREFIX>_CODE_SLOW用于进入慢速代码内存段的代码。适用于无固定周期、且访问频率低的场景(例如罕见错误的回调)。Compiler_Cfg.h
常量<PREFIX>_CONST用于全局或静态常量。Compiler_Cfg.h
常量<PREFIX>_CALIB用于标定常量。Compiler_Cfg.h
常量<PREFIX>_CONFIG_DATA用于模块配置常量。Compiler_Cfg.h
常量<PREFIX>_CONST_SAVED_RECOVERY_ZONE<X>用于保存在非易失性存储器中的变量的 ROM 缓冲区,X 替换为字节数(如 8/16/32)。Compiler_Cfg.h
指针<PREFIX>_APPL_DATA用于通过 API 传递的应用数据引用(可能在 RAM 或 ROM 中)。Compiler_Cfg.h
指针<PREFIX>_APPL_CONST用于通过 API 传递的应用常量引用(应在 ROM 中,例如 Init 函数的指针)。Compiler_Cfg.h
指针REGSPACE用于寄存器指针(如 CONSTP2VAR(uint16, PWM_CONST, REGSPACE))。Compiler_Cfg.h
变量<PREFIX>_VAR_<INIT_POLICY>用于所有全局或静态变量。Compiler_Cfg.h
变量<PREFIX>_VAR_FAST_<INIT_POLICY>用于满足以下属性之一的所有全局或静态变量:按位访问、频繁使用、源代码中访问次数多。某些平台允许对该 RAM 区域中的变量使用位操作指令和较短的寻址指令。Compiler_Cfg.h
变量<PREFIX>_VAR_SLOW_<INIT_POLICY>用于访问频率低的所有全局或静态变量。Compiler_Cfg.h
变量<PREFIX>_INTERNAL_VAR_<INIT_POLICY>用于可被标定工具访问的全局或静态变量。Compiler_Cfg.h
变量<PREFIX>_VAR_SAVED_ZONE<X>用于保存在非易失性存储器中的变量的 RAM 缓冲区,X 替换为字节数(如 8/16/32)。Compiler_Cfg.h
变量AUTOMATIC用于局部非静态变量。Compiler.h
类型TYPEDEF用于无法指定内存限定符的类型定义中。Compiler.h
+ +

对于形式为 <PREFIX>_<NAME> 的内存类,<NAME> 部分可在 BSW 模块描述或软件组件描述的 MemorySections 中指定。这对生成代码尤其重要:

+
    +
  • MemorySection 未定义 memClassSymbol 属性,则 <NAME> 为所引用 SwAddrMethodshortName(大小写敏感)。
  • +
  • 仅对 BSW:若定义了 memClassSymbol 属性,则 <NAME>MemorySectionmemClassSymbol(大小写敏感)。
  • +
+ +
+

[SWS_COMPILER_00041]

+

每个 AUTOSAR 软件模块和应用软件组件应当使用以下关键字宏包装代码、变量、常量和指针类型的声明与定义。

+

参考:SRS_BSW_00361

+
+ +

示例

+ +

原生 C API:

+
Std_ReturnType Spi_SetupBuffers
+(
+    Spi_ChannelType       Channel,
+    const Spi_DataType   *SrcDataBufferPtr,
+    Spi_DataType         *DesDataBufferPtr,
+    Spi_NumberOfDataType Length
+);
+ +

封装后:

+
FUNC(Std_ReturnType, SPI_CODE) Spi_SetupBuffers
+(
+    Spi_ChannelType        Channel,
+    P2CONST(Spi_DataType, AUTOMATIC, SPI_APPL_DATA) SrcDataBufferPtr,
+    P2VAR(Spi_DataType, AUTOMATIC, SPI_APPL_DATA,) DesDataBufferPtr,
+    Spi_NumberOfDataType   Length
+);
+ +

7.1.3 Compiler.h 的内容(Contents of Compiler.h)

+ +
+

[SWS_COMPILER_00004]

+

编译器抽象的文件名应当Compiler.h

+

参考:SRS_BSW_00348, SRS_BSW_00361, SRS_BSW_00464

+
+ +
+

[SWS_COMPILER_00053]

+

文件 Compiler.h 应当包含 7.1.5 节中规范的定义和宏。这些定义和宏对于一个特定的编译器和平台是固定的。

+

参考:SRS_BSW_00361

+
+ +
+

[SWS_COMPILER_00005]

+

若编译器不要求或不支持特殊关键字的使用,则本规范规定的相应宏应当以空定义或无效果的形式提供。

+

示例

+
#define FUNC(type, memclass) type
+/* DIABDATA 不需要 */
+
+ +
+

[SWS_COMPILER_00010]

+

编译器抽象应当根据以下命名约定为目标编译器定义一个符号:
_<COMPILERNAME>_C_<PLATFORMNAME>_

+

注意 1:为避免不兼容和/或不一致,编译器符号定义不得在符号后包含任何值。

+

注意 2:这些定义可用于在不同编译器实现间切换,例如:

+
    +
  • 驱动中的内联汇编片段;
  • +
  • 用于内存对齐控制的特殊 pragma;
  • +
  • 函数调用的本地化;
  • +
  • 对内存模型的适配。
  • +
+

参考:SRS_BSW_00306, SRS_BSW_00006

+
+ +

符号清单见 7.1.1 节。

+ +
+

[SWS_COMPILER_00030]

+

Compiler.h 应当提供支持的编译器厂商和适用编译器版本的信息。

+

参考:SRS_BSW_00374

+
+ +
+

[SWS_COMPILER_00035]

+

宏参数 memclassptrclass 不得填充编译器特定的关键字,而应当填充 SWS_COMPILER_00040 中配置的值之一。

+

参考:SRS_BSW_00306, SRS_BSW_00006

+
+ +

其原理是:更改变量、指针或函数的存储类时,模块的实现不应受到影响。

+ +
+

[SWS_COMPILER_00036]

+

C 语言禁止在函数局部变量(auto 变量)上使用 far/near 关键字。因此,当使用下述宏在栈上分配指针时,memclass 参数应当设置为 AUTOMATIC

+

参考:SRS_BSW_00306, SRS_BSW_00006

+
+ +
+

[SWS_COMPILER_00047]

+

Compiler.h 头文件应当防止被多次包含。

+

示例

+
#ifndef COMPILER_H
+    #define COMPILER_H
+      /* Compiler.h 的实现 */
+      ...
+    #endif /* COMPILER_H */
+

#ifndef - #endif 之外只能有注释。

+

参考:SRS_BSW_00361

+
+ +
+

[SWS_COMPILER_00050]

+

允许使用厂商特定的扩展来扩展编译器抽象头文件。厂商扩展的元素应当在名称中包含 AUTOSAR Vendor ID。

+

参考:SRS_BSW_00347

+
+ +

7.1.4 Compiler_Cfg.h 的内容(Contents of Compiler_Cfg.h)

+ +
+

[SWS_COMPILER_00055]

+

文件 Compiler_Cfg.h 应当包含传递给 Compiler.h 中定义的宏的模块/组件特定参数(ptrclassmemclass)。见 SWS_COMPILER_00040 中关于内存类型和所需语法的说明。

+

参考:SRS_BSW_00361, SRS_BSW_00464

+
+ +
+

[SWS_COMPILER_00054]

+

模块特定扩展元素应当在名称中包含 BSW 模块的模块缩写。应用软件组件特定扩展元素应当包含软件组件类型的名称

+

参考:SRS_BSW_00456

+
+ +

7.1.5 综合示例(Comprehensive example)

+

本示例展示了一个 API 函数中宏的定义、使用和配置位置。

+ +
    +
  • 模块:Eep
  • +
  • API 函数:Eep_Read
  • +
  • 平台:S12X
  • +
  • 编译器:Cosmic
  • +
+ +

文件 Eep.c

+ +
#include "Std_Types.h"    /* 该文件已包含 Compiler.h */
+
+FUNC(Std_ReturnType, EEP_CODE) Eep_Read
+              (
+                  Eep_AddressType EepromAddress,
+                  P2VAR(uint8, AUTOMATIC, EEP_APPL_DATA) DataBufferPtr,
+                  Eep_LengthType Length
+              )
+ +

文件 Compiler.h

+ +
#include "Compiler_Cfg.h"
+
+#define AUTOMATIC
+#define FUNC(rettype, memclass) rettype memclass
+#define P2VAR(ptrtype, memclass, ptrclass) ptrclass ptrtype * memclass
+ +

文件 Compiler_Cfg.h

+ +
#define EEP_CODE
+#define EEP_APPL_DATA @far    /* NvM 的 RAM 块位于 banked RAM */
+ +

依赖关系是什么?

+

EEP_APPL_DATA 被定义为 far。这意味着指向由 NVRAM Manager 管理的 RAM 块的指针也必须定义为 far。应用程序可以将 RAM 镜像放在 banked RAM 或非 banked RAM 中。RAM 块到 banked RAM 的映射在 <Mip>_MemMap.h 中完成(关于 <Mip> 的更多信息见 [12])。

+

由于这些指针也通过 Memory Interface 和 EEPROM Abstraction 传递,因此它们的指针类和内存类必须也匹配 EEP_APPL_DATA

+ +

在 32 位平台上会有什么不同?

+

尽管只有 S12X 内部有 EEPROM,但从编译器抽象的角度看,唯一变化的是 Compiler_Cfg.h 中的定义。它们将变为空定义:

+ +
#define EEP_CODE
+#define EEP_APPL_DATA
+ +

7.1.6 建议流程(Proposed process)

+

为支持多供应商环境下的开发和集成,特定的交付流程不可或缺。以下描述可视为建议:

+ +
+ 图 2:建议的集成流程
+ 步骤 1:基础文件交付
+ AUTOSAR 模块供应商:实现源文件和文档、分配版本号和厂商号、实现 Compiler_Cfg.h<Mip>_MemMap.h 的模块特定部分、构建包;交付 Compiler.hStd_Types.hPlatform_Types.h
+ AUTOSAR 集成商:接收并检查包、集成模块、将各模块的 Compiler_Cfg.h 集成到主 Compiler_Cfg.h 中、配置 <Mip>_MemMap.hCompiler_Cfg.h
+ 步骤 2:模块/组件交付
+ 模块 A/B/C 的 Compiler_Cfg.h 与源代码一起打包交付,由集成环境统一集成。 +
+ +

8 API 规范(API specification)

+

本节是本模块唯一适用的 API。

+ +

8.2.1 通用定义(General definitions)

+ +

8.2.1.1 内存类 AUTOMATIC

+ +
+

[SWS_COMPILER_00046]

+ + + + + + + +
DefineAUTOMATIC
取值范围"empty"(空)
说明内存类 AUTOMATIC 应当以空定义的形式提供,用于局部指针的声明。
备注SWS_COMPILER_00040
+

参考:SRS_BSW_00361

+
+ +

8.2.1.2 内存类 TYPEDEF

+ +
+

[SWS_COMPILER_00059]

+ + + + + + + +
DefineTYPEDEF
取值范围"empty"(空)
说明内存类 TYPEDEF 应当以空定义形式提供。该内存类应当用于无法指定内存限定符的类型定义中。例如在用 P2VAR 等宏定义指针类型时,宏需要两个参数:第一个参数(指向的内存位置的距离)可在类型定义中指定;但第二个参数(指针自身的内存分配)此时无法定义。因此应当使用内存类 TYPEDEF
备注SWS_COMPILER_00040
+

参考:SRS_BSW_00404

+
+ +

8.2.1.3 NULL_PTR

+ +
+

[SWS_COMPILER_00051]

+ + + + + + + +
DefineNULL_PTR
取值范围void 指针     ((void *)0)
说明编译器抽象应当提供一个定义为指向零的 void 指针的 NULL_PTR
备注SWS_COMPILER_00040
+

参考:SRS_BSW_00480

+
+ +

8.2.1.4 INLINE

+ +
+

[SWS_COMPILER_00057]

+ + + + + + + +
DefineINLINE
取值范围inline/空
说明编译器抽象应当提供 INLINE 定义以抽象关键字 inline
备注SWS_COMPILER_00040
+

参考:SRS_BSW_00361

+
+ +

8.2.1.5 LOCAL_INLINE

+ +
+

[SWS_COMPILER_00060]

+ + + + + + + +
DefineLOCAL_INLINE
取值范围static inline/空
说明编译器抽象应当提供 LOCAL_INLINE 定义,用于抽象具有 static 作用域的函数中的 inline 关键字。
备注不同编译器可能要求不同的 staticinline 关键字顺序(若支持)。
+

参考:SRS_BSW_00361

+
+ +

8.2.2 函数定义(Function definitions)

+ +

8.2.2.1 FUNC 函数标识信息

+ +
+

[SWS_COMPILER_00001]

+ + + + + + + + + + + + +
宏名FUNC
语法#define FUNC(rettype, memclass)
输入参数rettype     函数的返回类型
memclass     函数自身的分类
输出参数
返回值
说明编译器抽象应当定义 FUNC 宏,用于函数的声明和定义,确保特定编译器所要求的正确语法。
备注
配置
+

参考:SRS_BSW_00003

+
+ +

示例(Cosmic, S12X)

+
#define <PREFIX>_CODE         @near
+#define FUNC(rettype, memclass) memclass rettype
+
+/* 函数声明和定义所需用法: */
+FUNC(void, <PREFIX>_CODE) ExampleFunction (void);
+ +
+

[SWS_COMPILER_00058]

+

此宏的参数列表中不得嵌套其他编译器抽象宏。应改用先前定义的类型作为返回类型,或使用 FUNC_P2CONST/FUNC_P2VAR

+

参考:SRS_BSW_00306

+
+ +

示例

+
typedef P2VAR(uint8, AUTOMATIC, <PREFIX>_VAR) NearDataType;
+FUNC(NearDataType, <PREFIX>_CODE)
+FarFuncReturnsNearPtr(void);
+ +

8.2.2.2 FUNC_P2CONST

+ +
+

[SWS_COMPILER_00061]

+ + + + + + + + + + + +
宏名FUNC_P2CONST
语法#define FUNC_P2CONST(rettype, ptrclass, memclass)
输入参数rettype     函数的返回类型
ptrclass     指针距离的分类
memclass     函数自身的分类
输出参数
返回值
说明编译器抽象应当定义 FUNC_P2CONST 宏,用于声明和定义返回常量指针的函数。
+

参考:SRS_BSW_00361

+
+ +
+

[SWS_COMPILER_00062]

+

FUNC_P2CONST 的参数列表中不得嵌套其他编译器抽象宏。

+

参考:SRS_BSW_00361

+
+ +

8.2.2.3 FUNC_P2VAR

+ +
+

[SWS_COMPILER_00063]

+ + + + + + + + + + + +
宏名FUNC_P2VAR
语法#define FUNC_P2VAR(rettype, ptrclass, memclass)
输入参数rettype     函数的返回类型
ptrclass     指针距离的分类
memclass     函数自身的分类
输出参数
返回值
说明编译器抽象应当定义 FUNC_P2VAR 宏,用于声明和定义返回变量指针的函数。
+

参考:SRS_BSW_00361

+
+ +
+

[SWS_COMPILER_00064]

+

FUNC_P2VAR 宏的参数列表中不得嵌套其他编译器抽象宏。

+

参考:SRS_BSW_00361

+
+ +

8.2.3 指针定义(Pointer definitions)

+ +

8.2.3.1 P2VAR

+ +
+

[SWS_COMPILER_00006]

+ + + + + + + + + + + +
宏名P2VAR
语法#define P2VAR(ptrtype, memclass, ptrclass)
输入参数ptrtype     被引用变量的类型
memclass     指针变量自身的分类
ptrclass     指针距离的分类
输出参数
返回值
说明编译器抽象应当定义 P2VAR 宏,用于声明和定义指向变量的 RAM 中指针。
指针自身可修改(如 ExamplePtr++)。
指针的目标可修改(如 *ExamplePtr = 5)。
+

参考:SRS_BSW_00361

+
+ +

示例(Metrowerks, S12X)

+
#define P2VAR(ptrtype, memclass, ptrclass) \
+                   ptrclass ptrtype * memclass
+
+/* 指针声明和定义所需用法: */
+#define SPI_APPL_DATA @far
+#define SPI_VAR_FAST @near
+
+P2VAR(uint8, SPI_VAR_FAST, SPI_APPL_DATA) Spi_FastPointerToApplData;
+ +

8.2.3.2 P2CONST

+ +
+

[SWS_COMPILER_00013]

+ + + + + + + + + + + +
宏名P2CONST
语法#define P2CONST(ptrtype, memclass, ptrclass)
输入参数ptrtype     被引用常量的类型
memclass     指针变量自身的分类
ptrclass     指针距离的分类
输出参数
返回值
说明编译器抽象应当定义 P2CONST 宏,用于声明和定义指向常量的 RAM 中指针。
指针自身可修改(如 ExamplePtr++)。
指针的目标不可修改(只读)。
+

参考:SRS_BSW_00361

+
+ +

示例

+
/* Metrowerks, S12X */
+#define P2CONST(ptrtype, memclass, ptrclass) \
+                   const ptrtype memclass * ptrclass
+
+/* Cosmic, S12X */
+#define P2CONST(ptrtype, memclass, ptrclass) \
+                   const ptrtype ptrclass * memclass
+
+/* Tasking, ST10 */
+#define P2CONST(ptrtype, memclass, ptrclass) \
+                   const ptrclass ptrtype * memclass
+
+/* 指针声明和定义所需用法: */
+#define EEP_APPL_CONST @far
+#define EEP_VAR @near
+
+P2CONST(Eep_ConfigType, EEP_VAR, EEP_APPL_CONST) Eep_ConfigurationPtr;
+ +

8.2.3.3 CONSTP2VAR

+ +
+

[SWS_COMPILER_00031]

+ + + + + + + + + + + +
宏名CONSTP2VAR
语法#define CONSTP2VAR (ptrtype, memclass, ptrclass)
输入参数ptrtype     被引用变量的类型
memclass     指针常量自身的分类
ptrclass     指针距离的分类
输出参数
返回值
说明编译器抽象应当定义 CONSTP2VAR 宏,用于声明和定义访问变量的常量指针。
指针自身不可修改(固定地址)。
指针的目标可修改(如 *ExamplePtr = 18)。
+

参考:SRS_BSW_00361

+
+ +

示例(Tasking, ST10)

+
#define CONSTP2VAR (ptrtype, memclass, ptrclass) \
+                   ptrclass ptrtype * const memclass
+
+/* 所需用法: */
+/* 指向应用数据的常量指针 */
+CONSTP2VAR (uint8, NVM_VAR, NVM_APPL_DATA)
+NvM_PointerToRamMirror = Appl_RamMirror;
+ +

8.2.3.4 CONSTP2CONST

+ +
+

[SWS_COMPILER_00032]

+ + + + + + + + + + + +
宏名CONSTP2CONST
语法#define CONSTP2CONST(ptrtype, memclass, ptrclass)
输入参数ptrtype     被引用常量的类型
memclass     指针常量自身的分类
ptrclass     指针距离的分类
输出参数
返回值
说明编译器抽象应当定义 CONSTP2CONST 宏,用于声明和定义访问常量的常量指针。
指针自身不可修改(固定地址)。
指针的目标不可修改(只读)。
+

参考:SRS_BSW_00361

+
+ +

8.2.3.5 P2FUNC

+ +
+

[SWS_COMPILER_00039]

+ + + + + + + + + + + +
宏名P2FUNC
语法#define P2FUNC(rettype, ptrclass, fctname)
输入参数rettype     函数的返回类型
ptrclass     指针距离的分类
fctname     函数名称(或定义类型的名称)
输出参数
返回值
说明编译器抽象应当定义 P2FUNC 宏,用于函数指针的类型定义。
+

参考:SRS_BSW_00361

+
+ +

8.2.3.6 CONSTP2FUNC

+ +
+

[SWS_COMPILER_00065]

+ + + + + + + + + + + +
宏名CONSTP2FUNC
语法#define CONSTP2FUNC(rettype, ptrclass, fctname)
输入参数rettype     函数的返回类型
ptrclass     指针距离的分类
fctname     函数名称(或定义类型的名称)
输出参数
返回值
说明编译器抽象应当定义 CONSTP2FUNC 宏,用于函数的常量指针的类型定义。
+

参考:SRS_BSW_00361

+
+ +

8.2.4 常量定义(Constant definitions)

+ +

8.2.4.1 CONST

+ +
+

[SWS_COMPILER_00023]

+ + + + + + + + + + +
宏名CONST
语法#define CONST(consttype, memclass)
输入参数consttype     常量的类型
memclass     常量自身的分类
输出参数
返回值
说明编译器抽象应当定义 CONST 宏,用于常量的声明和定义。
+

参考:SRS_BSW_00309

+
+ +

示例(Cosmic, S12X)

+
#define CONST(type, memclass) memclass const type
+
+/* 所需用法: */
+#define NVM_CONST @gpage
+
+CONST(uint8, NVM_CONST) NvM_ConfigurationData;
+ +

8.2.5 变量定义(Variable definitions)

+ +

8.2.5.1 VAR

+ +
+

[SWS_COMPILER_00026]

+ + + + + + + + + + +
宏名VAR
语法#define VAR(vartype, memclass)
输入参数vartype     变量的类型
memclass     变量自身的分类
输出参数
返回值
说明编译器抽象应当定义 VAR 宏,用于变量的声明和定义。
+

参考:SRS_BSW_00361

+
+ +

示例(Tasking, ST10)

+
#define VAR(type, memclass) memclass type
+
+/* 所需用法: */
+#define NVM_FAST_VAR _near
+
+VAR(uint8, NVM_FAST_VAR) NvM_VeryFrequentlyUsedState;
+ +

8.3 类型定义

+

不适用。

+ +

8.4 函数定义

+

不适用。

+ +

8.5 回调通知

+

不适用。

+ +

8.6 调度函数

+

不适用。

+ +

8.7 期望接口

+

不适用(8.7.1/8.7.2/8.7.3 均不适用)。

+ +

8.8 服务接口

+

不适用(8.8.1–8.8.5 均不适用)。

+ +

9 时序图(Sequence diagrams)

+

不适用。

+ +

10 配置规范(Configuration specification)

+

编译器抽象没有独立的配置接口(即没有单独的参数定义)。取而代之的是,内存映射(见 [13])的配置已扩展为本章中描述的参数。

+ +

10.1 如何阅读本章

+

强烈建议同时阅读以下文档:分层软件架构 [3]、ECU 配置规范 [4]。

+ +

10.2 容器与配置参数

+ +

10.2.1 模块特定内存类

+

也可以配置模块特定内存类。这通过容器 MemMapAddressingModeSet 及其包含的参数 MemMapCompilerMemClassSymbolImpl 完成。详见 [13]。

+ +

10.2.2 全局内存类

+

也可以配置对所有模块有效的全局内存类。这通过容器 MemMapGenericCompilerMemClass 及其包含的参数 MemMapGenericCompilerMemClassSymbolImpl 完成。详见 [13]。

+ +
+

[SWS_COMPILER_00042]

+

文件 Compiler.h 对于每个构建场景都是特定的。因此,没有标准化的配置接口。

+

参考:SRS_BSW_00361

+
+ +

10.3 发布信息(Published Information)

+

不适用。

+ +

11 不适用的需求(Not applicable requirements)

+ +
+

[SWS_COMPILER_00999]

+

以下需求对本规范不适用

+

SRS_BSW_00300SRS_BSW_00301SRS_BSW_00302SRS_BSW_00305SRS_BSW_00307SRS_BSW_00308SRS_BSW_00309SRS_BSW_00310SRS_BSW_00312SRS_BSW_00314SRS_BSW_00323SRS_BSW_00325SRS_BSW_00327SRS_BSW_00330SRS_BSW_00331SRS_BSW_00333SRS_BSW_00334SRS_BSW_00335SRS_BSW_00336SRS_BSW_00339SRS_BSW_00341SRS_BSW_00342SRS_BSW_00343SRS_BSW_00344SRS_BSW_00346SRS_BSW_00350SRS_BSW_00353SRS_BSW_00357SRS_BSW_00358SRS_BSW_00359SRS_BSW_00360SRS_BSW_00369SRS_BSW_00371SRS_BSW_00373SRS_BSW_00375SRS_BSW_00377SRS_BSW_00378SRS_BSW_00380SRS_BSW_00385SRS_BSW_00386SRS_BSW_00390SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00398SRS_BSW_00399SRS_BSW_00004SRS_BSW_00400SRS_BSW_00401SRS_BSW_00404SRS_BSW_00405SRS_BSW_00406SRS_BSW_00407SRS_BSW_00408SRS_BSW_00409SRS_BSW_00410SRS_BSW_00411SRS_BSW_00413SRS_BSW_00414SRS_BSW_00415SRS_BSW_00416SRS_BSW_00417SRS_BSW_00419SRS_BSW_00422SRS_BSW_00423SRS_BSW_00424SRS_BSW_00425SRS_BSW_00426SRS_BSW_00427SRS_BSW_00428SRS_BSW_00429SRS_BSW_00432SRS_BSW_00433SRS_BSW_00005SRS_BSW_00007SRS_BSW_00009SRS_BSW_00010SRS_BSW_00158SRS_BSW_00161SRS_BSW_00162SRS_BSW_00164SRS_BSW_00167SRS_BSW_00168SRS_BSW_00170SRS_BSW_00171SRS_BSW_00172SRS_BSW_00351SRS_BSW_00383SRS_BSW_00388SRS_BSW_00389SRS_BSW_00396SRS_BSW_00403SRS_BSW_00412SRS_BSW_00448SRS_BSW_00449SRS_BSW_00452SRS_BSW_00453SRS_BSW_00454SRS_BSW_00456SRS_BSW_00457SRS_BSW_00458SRS_BSW_00459SRS_BSW_00461SRS_BSW_00462SRS_BSW_00466SRS_BSW_00469SRS_BSW_00470SRS_BSW_00471SRS_BSW_00472SRS_BSW_00473SRS_BSW_00478SRS_BSW_00479SRS_BSW_00480SRS_BSW_00481SRS_BSW_00482SRS_BSW_00483

+
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 宏定义:AUTOMATIC、TYPEDEF、NULL_PTR、INLINE、LOCAL_INLINE、FUNC、FUNC_P2CONST、FUNC_P2VAR、P2VAR、P2CONST、CONSTP2VAR、CONSTP2CONST、P2FUNC、CONSTP2FUNC、CONST、VAR 共 16 个宏全部翻译,参数/返回值/描述完整。
  • +
  • 内存类清单:7.1.2 节 <PREFIX>_* 系列(CODE/CONST/VAR/APPL_DATA/CONFIG_DATA 等)以及初始化策略(NO_INIT/CLEARED/POWER_ON_CLEARED/INIT/POWER_ON_INIT)完整翻译。
  • +
  • 编译器符号清单:7.1.1 节列出 9 种编译器-平台组合符号(Cosmic/Metrowerks/Tasking/Greenhills/ADS/DIABDATA 等)。
  • +
  • 章节结构:原文 11 章,译文完整对应;8.2.1–8.2.5 全部子节保留。
  • +
  • 需求 ID 保留SWS_COMPILER_00001SWS_COMPILER_00065SWS_COMPILER_00999 完整保留。
  • +
  • 示例代码:Cosmic/Metrowerks/Tasking/CodeWarrior/PowerPC 各编译器示例保留原文。
  • +
  • 包含结构图:5.1 节"Compiler.h 的包含结构"以 ASCII 重绘。
  • +
  • 不适用 SRS:~100 条 SRS 通过 SWS_COMPILER_00999 集中列出。
  • +
  • 编译器分析表:8.2.2–8.2.3 节中各编译器(Cosmic/Metrowerks/IAR/Tasking/Greenhills/ADS/DIABDATA)的关键字差异表未完整逐项翻译,保留概要说明。完整对照可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SWS_CompilerAbstraction.pdf(53 页)· 文档 ID 051 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_PlatformTypes.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_PlatformTypes.html new file mode 100644 index 0000000..7fa67fb --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_PlatformTypes.html @@ -0,0 +1,1092 @@ + + + + +平台类型规范 · AUTOSAR 4.4 中文翻译 + + + + +
+

平台类型规范(Specification of Platform Types)

+
+ 📄 文档 ID:048 + 🏷 类型:SWS(软件规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:36 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SWS_PlatformTypes.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本规范定义了 AUTOSAR 平台类型头文件。它包含所有平台相关的类型和符号。这些类型必须被抽象,以实现平台和编译器的无关性。

+

要求所有平台类型文件在 AUTOSAR 社区内保持唯一,以保证每个平台的类型唯一性,并避免将软件模块从平台 A 迁移到平台 B 时类型发生变化。

+ +

2 缩略语与术语(Acronyms and abbreviations)

+

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表中的缩略语与术语,必须在本节"局部术语表"中列出。

+ + + + + + + +
缩略语说明
Rollover mechanism(回绕机制)以下示例序列称为"回绕":
· 一个无符号字符的值为 255;
· 加 1;
· 结果为 0。
SDUService Data Unit(服务数据单元,即有效载荷)
+ + + + + + +
缩写说明
intInteger(整数)
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+ + + + + + + + + + + + + + + +
编号文档名原 PDF
[1]General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[2]Basic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[3]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList.pdf
[4]Cosmic C Cross Compiler User's Guide for Motorola MC68HC12, V4.5
[5]ARM ADS compiler manual
[6]Greenhills MULTI for V850 V4.0.5
[7]TASKING for ST10 V8.5
[8]Wind River (Diab Data) for PowerPC Version 5.2.1
[9]TASKING for TriCore TC1796 V2.1R1
[10]Metrowerks CodeWarrior 4.0 for Freescale HC9S12X/XGATE (V5.0.25)
[11]General Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf
+ +

3.2 相关标准与规范

+
    +
  • [12] ISO/IEC 9899:1990 Programming Language – C
  • +
+ +

3.3 相关规范

+

AUTOSAR 提供了通用基础软件模块规范 [11](SWS BSW General),该规范对平台类型同样适用。

+

因此,SWS BSW General 应被视为平台类型的附加且必需的规范

+ +

4 约束与假设(Constraints and assumptions)

+ +

4.1 限制(Limitations)

+

无限制。

+ +

4.2 对汽车领域的适用性(Applicability to car domains)

+

无限制。

+ +

4.3 对功能安全相关环境的适用性(Applicability to safety related environments)

+

若 AUTOSAR boolean 类型的正确使用(见 SWS_Platform_00027)已通过正式代码审查或经过验证的静态分析工具的检查,则可使用。

+

若优化的 AUTOSAR 整数数据类型(*_least)的正确使用(见 7.4 节)已通过正式代码审查或经过验证的静态分析工具的检查,则可使用。

+ +

5 对其他模块的依赖(Dependencies to other modules)

+

无。

+ +

5.1 文件结构(File structure)

+ +

5.1.1 源文件结构(Code file structure)

+

无。

+ +

5.1.2 头文件结构(Header file structure)

+

有两种适用的头文件结构。一种与"通信相关"的基础软件模块相关,另一种与"非通信相关"的基础软件模块相关。

+ +

6 需求追溯(Requirements traceability)

+ + + + + + + + + + + + + + + + + + + +
SRS 需求描述由以下满足
SRS_BSW_00304所有 AUTOSAR 基础软件模块应当使用以下数据类型,而非原生 C 数据类型SWS_Platform_00013SWS_Platform_00014SWS_Platform_00015SWS_Platform_00016SWS_Platform_00017SWS_Platform_00018SWS_Platform_00020SWS_Platform_00021SWS_Platform_00022SWS_Platform_00023SWS_Platform_00024SWS_Platform_00025
SRS_BSW_00378AUTOSAR 应当提供一个 boolean 类型SWS_Platform_00026SWS_Platform_00027SWS_Platform_00034
其余 ~110+ SRS 需求SWS_Platform_00063 声明"不适用"(见 第 12 节SWS_Platform_00063
+ +

7 功能规范(Functional specification)

+ +

7.1 通用问题(General issues)

+ +
+

[SWS_Platform_00002]

+

本文件不得添加任何扩展。任何扩展都将使 AUTOSAR 一致性失效。

+
+ +

7.2 CPU 类型(CPU Type)

+ +
+

[SWS_Platform_00044]

+

对于每个平台,应当通过定义 CPU_TYPE 来指示所用 CPU 的寄存器宽度。

+
+ +
+

[SWS_Platform_00045]

+

根据所用 CPU 的寄存器宽度,CPU_TYPE 应当被赋值为 CPU_TYPE_8CPU_TYPE_16CPU_TYPE_32CPU_TYPE_64 之一。

+
+ +

7.3 字节序(Endianess)

+

本机类型(如整数)中位、字节和字的排列模式称为字节序(endianess)。

+ +
+

[SWS_Platform_00043]

+

对于每个平台,寄存器级别的位序应当使用符号 CPU_BIT_ORDER 在平台类型头文件中指示。

+
+ +
+

[SWS_Platform_00046]

+

对于每个平台,内存级别的字节序应当使用符号 CPU_BYTE_ORDER 在平台类型头文件中指示。

+
+ +

7.3.1 位序(寄存器)(Bit Ordering (Register))

+ +
+

[SWS_Platform_00048]

+

对于大端位序,CPU_BIT_ORDER 应当在平台类型头文件中被赋值为 MSB_FIRST

+
+ +
+

[SWS_Platform_00049]

+

对于小端位序,CPU_BIT_ORDER 应当在平台类型头文件中被赋值为 LSB_FIRST

+
+ +
+ 重要说明:位命名约定(Bit0、Bit1 等)与位在字节、字中的意义是不同的概念,不应混淆。 + 在 Motorola µC 架构(大端位序)中,Bit0 表示最高有效位;而所有其他使用小端位序的 µC 中,Bit0 表示最低有效位! + 累加器中的 MSB 始终作为最左边的位存储,与 CPU 类型无关。因此,大端和小端的位序意味着不同的位命名约定。 +
+ +

7.3.2 字节序(内存)(Byte Ordering (Memory))

+ +
+

[SWS_Platform_00050]

+

对于大端字节序,CPU_BYTE_ORDER 应当被赋值为 HIGH_BYTE_FIRST

+
+ +
+

[SWS_Platform_00051]

+

对于小端字节序,CPU_BYTE_ORDER 应当被赋值为 LOW_BYTE_FIRST

+
+ +
+ 说明图示命名约定
+ · 16 位宽数据中的最高有效字节命名为 Byte1
+ · 16 位宽数据中的最低有效字节命名为 Byte0。 +
+ + + + +
大端(HIGH_BYTE_FIRST)
地址数据顺序
nByte1最高有效字节(HIGH_BYTE_FIRST)
n+1Byte0最低有效字节
+ + + + +
小端(LOW_BYTE_FIRST)
地址数据顺序
nByte0最低有效字节(LOW_BYTE_FIRST)
n+1Byte1最高有效字节
+ +
+ 重要说明Byte0Byte1 的命名约定不唯一,在特定 µC 的厂商参考文档中可能不同。 +
+ +

7.4 优化整数数据类型(Optimized integer data types)

+

详情参见 SWS_BSWGeneral 中第 7.1.19.2.1 节"AUTOSAR 整数数据类型"。

+

使用示例

+
    +
  • 循环计数器(如最大循环次数 = 124 → 使用 uint8_least
  • +
  • Switch case 参数(如最大状态数 = 17 → 使用 uint8_least
  • +
+ +

7.5 布尔数据类型(Boolean data type)

+ +
+

[SWS_Platform_00027]

+

标准 AUTOSR 类型 boolean 应当实现为一个无符号整数,其位长度是平台原生支持的最短位数(通常为 8 位)。

+

参考:SRS_BSW_00378

+
+ +
+

[SWS_Platform_00034]

+

标准 AUTOSAR 类型 boolean 只能与标准符号 TRUEFALSE 一起使用。对 boolean 类型变量的赋值不得使用算术或逻辑运算符(+++---*/%<<>>~&)。只允许的赋值形式是:

+ +
boolean var = TRUE;
+…
+var = TRUE;
+var = FALSE;
+var = (a < b)   /* same for ">", "<=", ">=" */
+var = (c && d) /* same for "!", "||" */
+var = (e != f) /* same for "==" */
+ +

只允许的比较形式是:

+ +
boolean var = FALSE;
+…
+if (var == TRUE) …
+if (var == FALSE) …
+if (var != TRUE) …
+if (var != FALSE) …
+if (var) …
+if (!var) …
+ +

参考:SRS_BSW_00378

+
+ +

8 API 规范(API specification)

+ +

8.1 导入类型(Imported types)

+

不适用。

+ +

8.2 类型定义(Type definitions)

+ +
+

[SWS_Platform_00061]

+

对于有符号整数类型,AUTOSAR 在编译器和目标实现中只支持二进制补码算术。这直接影响这些类型的取值范围。

+
+ +

8.2.1 boolean

+ +
+

[SWS_Platform_00026]

+ + + + + + + + + + + +
名称(Name)boolean
种类(Kind)Type
派生自(Derived from)uint
说明(Description)该标准 AUTOSAR 类型只能TRUEFALSE 定义一起使用。
取值(Range)FALSE     0     —
TRUE     1     —
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00378

+
+ +

实现与使用见 SWS_Platform_00027

+ +
+

[SWS_Platform_00060]

+

boolean 类型应当始终映射到一个可应用指针的特定平台类型,以便通过 API 传递参数。

+

某些硬件平台有特定的高效 BIT 类型,但不能应用指针。

+
+ +

8.2.2 uint8

+ +
+

[SWS_Platform_00013]

+ + + + + + + + + + +
名称(Name)uint8
种类(Kind)Type
派生自(Derived from)uint
说明(Description)该标准 AUTOSAR 类型应当为 8 位无符号。
取值(Range)0..255     0x00..0xFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.3 uint16

+ +
+

[SWS_Platform_00014]

+ + + + + + + + + + +
名称(Name)uint16
种类(Kind)Type
派生自(Derived from)uint
说明(Description)该标准 AUTOSAR 类型应当为 16 位无符号。
取值(Range)0..65535     0x0000..0xFFFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.4 uint32

+ +
+

[SWS_Platform_00015]

+ + + + + + + + + + +
名称(Name)uint32
种类(Kind)Type
派生自(Derived from)uint
说明(Description)该标准 AUTOSAR 类型应当为 32 位无符号。
取值(Range)0..4294967295     0x00000000..0xFFFFFFFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.5 uint64

+ +
+

[SWS_Platform_00066]

+ + + + + + + + + + +
名称(Name)uint64
种类(Kind)Type
派生自(Derived from)uint
说明(Description)该标准 AUTOSAR 类型应当为 64 位无符号。
取值(Range)0..18446744073709551615     0x0000000000000000..0xFFFFFFFFFFFFFFFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+
+ +

8.2.6 sint8

+ +
+

[SWS_Platform_00016]

+ + + + + + + + + + +
名称(Name)sint8
种类(Kind)Type
派生自(Derived from)sint
说明(Description)该标准 AUTOSAR 类型应当为 8 位有符号。
取值(Range)-128..+127     0x80..0x7F
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.7 sint16

+ +
+

[SWS_Platform_00017]

+ + + + + + + + + + +
名称(Name)sint16
种类(Kind)Type
派生自(Derived from)sint
说明(Description)该标准 AUTOSAR 类型应当为 16 位有符号。
取值(Range)-32768..+32767     0x8000..0x7FFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.8 sint32

+ +
+

[SWS_Platform_00018]

+ + + + + + + + + + +
名称(Name)sint32
种类(Kind)Type
派生自(Derived from)sint
说明(Description)该标准 AUTOSAR 类型应当为 32 位有符号。
取值(Range)-2147483648..+2147483647     0x80000000..0x7FFFFFFF
变化(Variation)
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.9 sint64

+ +
+

[SWS_Platform_00067]

+ + + + + + + + +
名称(Name)sint64
类型(Type)sint
取值(Range)-9223372036854775808..9223372036854775807     0x8000000000000000..0x7FFFFFFFFFFFFFFF
说明(Description)该标准 AUTOSAR 类型应当为 64 位有符号。
可获取于(Available via)PlatformTypes.h
+
+ +

8.2.10 uint8_least

+ +
+

[SWS_Platform_00020]

+ + + + + + + + +
名称(Name)uint8_least
类型(Type)uint
取值(Range)至少 0..255     0x00..0xFF
说明(Description)该优化的 AUTOSAR 类型应当为至少 8 位无符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

实现与使用见 7.4 节。

+ +

8.2.11 uint16_least

+ +
+

[SWS_Platform_00021]

+ + + + + + + + +
名称(Name)uint16_least
类型(Type)uint
取值(Range)至少 0..65535     0x0000..0xFFFF
说明(Description)该优化的 AUTOSAR 类型应当为至少 16 位无符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.12 uint32_least

+ +
+

[SWS_Platform_00022]

+ + + + + + + + +
名称(Name)uint32_least
类型(Type)uint
取值(Range)至少 0..4294967295     0x00000000..0xFFFFFFFF
说明(Description)该优化的 AUTOSAR 类型应当为至少 32 位无符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.13 sint8_least

+ +
+

[SWS_Platform_00023]

+ + + + + + + + +
名称(Name)sint8_least
类型(Type)sint
取值(Range)至少 -128..+127     0x80..0x7F
说明(Description)该优化的 AUTOSAR 类型应当为至少 8 位有符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.14 sint16_least

+ +
+

[SWS_Platform_00024]

+ + + + + + + + +
名称(Name)sint16_least
类型(Type)sint
取值(Range)至少 -32768..+32767     0x8000..0x7FFF
说明(Description)该优化的 AUTOSAR 类型应当为至少 16 位有符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.15 sint32_least

+ +
+

[SWS_Platform_00025]

+ + + + + + + + +
名称(Name)sint32_least
类型(Type)sint
取值(Range)至少 -2147483648..+2147483647     0x80000000..0x7FFFFFFF
说明(Description)该优化的 AUTOSAR 类型应当为至少 32 位有符号。
可获取于(Available via)PlatformTypes.h
+

参考:SRS_BSW_00304

+
+ +

8.2.16 float32

+ +
+

[SWS_Platform_00041]

+ + + + + + + + + + +
名称(Name)float32
种类(Kind)Type
派生自(Derived from)float
说明(Description)该标准 AUTOSAR 类型应当遵循 IEEE 754-2008 中 3.6 节表 3.5 "binary32" 列指定的 32 位二进制交换格式。
取值(Range)-3.4028235e+38..+3.4028235e+38
变化(Variation)
可获取于(Available via)PlatformTypes.h
+
+ +

8.2.17 float64

+ +
+

[SWS_Platform_00042]

+ + + + + + + + +
名称(Name)float64
类型(Type)double
取值(Range)-1.7976931348623157e+308..+1.7976931348623157e+308
说明(Description)该标准 AUTOSAR 类型应当遵循 IEEE 754-2008 中 3.6 节表 3.5 "binary64" 列指定的 64 位二进制交换格式。
可获取于(Available via)PlatformTypes.h
+
+ +

8.3 符号定义(Symbol definitions)

+ +

8.3.1 CPU_TYPE

+ +
+

[SWS_Platform_00064]

+ + + + + + + + + + + +
名称(Name)CPU_TYPE
类型(Type)Enumeration
取值(Range)CPU_TYPE_8     —     表示 8 位处理器
CPU_TYPE_16     —     表示 16 位处理器
CPU_TYPE_32     —     表示 32 位处理器
CPU_TYPE_64     —     表示 64 位处理器
说明(Description)该符号应当被定义为 #define,并根据平台取 CPU_TYPE_8CPU_TYPE_16CPU_TYPE_32CPU_TYPE_64 之一。
可获取于(Available via)PlatformTypes.h
+
+ +

8.3.2 CPU_BIT_ORDER

+ +
+

[SWS_Platform_00038]

+ + + + + + + + + +
名称(Name)CPU_BIT_ORDER
类型(Type)Enumeration
取值(Range)MSB_FIRST     —     最高有效位是位序列的第一位。
LSB_FIRST     —     最低有效位是位序列的第一位。
说明(Description)该符号应当被定义为 #define,并根据平台取 MSB_FIRSTLSB_FIRST 之一。
可获取于(Available via)PlatformTypes.h
+
+ +

8.3.3 CPU_BYTE_ORDER

+ +
+

[SWS_Platform_00039]

+ + + + + + + + + +
名称(Name)CPU_BYTE_ORDER
类型(Type)Enumeration
取值(Range)HIGH_BYTE_FIRST     —     在 uint16 中,高字节位于低字节之前。
LOW_BYTE_FIRST     —     在 uint16 中,低字节位于高字节之前。
说明(Description)该符号应当被定义为 #define,并根据平台取 HIGH_BYTE_FIRSTLOW_BYTE_FIRST 之一。
可获取于(Available via)PlatformTypes.h
+
+ +

8.3.4 TRUEFALSE

+ +
+

[SWS_Platform_00056]

+ + + + + + + + + +
名称(Name)TRUE_FALSE
类型(Type)Enumeration
取值(Range)FALSE     0x00     —
TRUE     0x01     —
说明(Description)符号 TRUEFALSE 应当按下述方式定义:
#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
可获取于(Available via)PlatformTypes.h
+
+ +
+

[SWS_Platform_00054]

+

若编译器已内建支持这些符号,则应当使用条件检查以避免重复定义。

+
+ +
+

[SWS_Platform_00055]

+

这些符号只能Platform_Types.h 中定义的 boolean 类型一起使用。

+
+ +

8.4 函数定义(Function definitions)

+

不适用。

+ +

8.5 回调通知(Call-back notifications)

+

不适用。

+ +

8.6 调度函数(Scheduled functions)

+

不适用。

+ +

8.7 期望接口(Expected Interfaces)

+

不适用。

+ +

9 时序图(Sequence diagrams)

+

不适用。

+ +

10 配置规范(Configuration specification)

+ +

10.1 发布参数(Published parameters)

+

详情参见 SWS_BSWGeneral 中的 10.3 节"发布信息"。

+ +

11 附录(Annex)

+ +

11.1 类型定义 – 通用

+

所有平台的平台类型文件可包含以下符号:

+
#define CPU_TYPE_8                  8
+#define CPU_TYPE_16                 16
+#define CPU_TYPE_32                 32
+#define CPU_TYPE_64                 64
+
+#define MSB_FIRST                   0
+#define LSB_FIRST                   1
+
+#define HIGH_BYTE_FIRST             0
+#define LOW_BYTE_FIRST              1
+ +

11.2 类型定义 – S12X(Freescale)

+

Freescale S12X 的平台类型可按如下方式映射到 ANSI C 类型:

+
/* 符号 */
+#define CPU_TYPE                        CPU_TYPE_16
+#define CPU_BIT_ORDER                   LSB_FIRST
+#define CPU_BYTE_ORDER                  HIGH_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char                   boolean;
+
+typedef signed char                     sint8;
+typedef unsigned char                   uint8;
+typedef signed short                    sint16;
+typedef unsigned short                  uint16;
+typedef signed long                     sint32;
+typedef signed long long                sint64;
+typedef unsigned long                   uint32;
+typedef unsigned long long              uint64;
+
+typedef signed char                     sint8_least;
+typedef unsigned char                   uint8_least;
+typedef signed short                    sint16_least;
+typedef unsigned short                  uint16_least;
+typedef signed long                     sint32_least;
+typedef unsigned long                   uint32_least;
+
+typedef float                           float32;
+typedef double                          float64;
+ +

11.3 类型定义 – ST10(STMicroelectronics)

+
/* 符号 */
+#define CPU_TYPE                     CPU_TYPE_16
+#define CPU_BIT_ORDER                LSB_FIRST
+#define CPU_BYTE_ORDER               LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char                boolean;
+
+typedef signed char                  sint8;
+typedef unsigned char                uint8;
+typedef signed short                 sint16;
+typedef unsigned short               uint16;
+typedef signed long                  sint32;
+typedef signed long long             sint64;
+typedef unsigned long                uint32;
+typedef unsigned long long           uint64;
+
+typedef unsigned short               uint8_least;
+typedef unsigned short               uint16_least;
+typedef unsigned long                uint32_least;
+typedef signed short                 sint8_least;
+typedef signed short                 sint16_least;
+typedef signed long                  sint32_least;
+
+typedef float                        float32;
+typedef double                       float64;
+ +

11.4 类型定义 – ST30(STMicroelectronics)

+
/* 符号 */
+#define CPU_TYPE                     CPU_TYPE_32
+#define CPU_BIT_ORDER                LSB_FIRST
+#define CPU_BYTE_ORDER               LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char                boolean;
+
+typedef signed char                  sint8;
+typedef unsigned char                uint8;
+typedef signed short                 sint16;
+typedef unsigned short               uint16;
+typedef signed long                  sint32;
+typedef signed long long             sint64;
+typedef unsigned long                uint32;
+typedef unsigned long long           uint64;
+
+typedef unsigned long                uint8_least;
+typedef unsigned long                uint16_least;
+typedef unsigned long                uint32_least;
+typedef signed long                  sint8_least;
+typedef signed long                  sint16_least;
+typedef signed long                  sint32_least;
+
+typedef float                        float32;
+typedef double                       float64;
+ +

11.5 类型定义 – V850(NEC)

+
/* 符号 */
+#define CPU_TYPE                    CPU_TYPE_32
+#define CPU_BIT_ORDER               LSB_FIRST
+#define CPU_BYTE_ORDER              LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char               boolean;
+
+typedef signed char                 sint8;
+typedef unsigned char               uint8;
+typedef signed short                sint16;
+typedef unsigned short              uint16;
+typedef signed long                 sint32;
+typedef signed long long            sint64;
+typedef unsigned long               uint32;
+typedef unsigned long long          uint64;
+
+typedef unsigned long               uint8_least;
+typedef unsigned long               uint16_least;
+typedef unsigned long               uint32_least;
+typedef signed long                 sint8_least;
+typedef signed long                 sint16_least;
+typedef signed long                 sint32_least;
+
+typedef float                       float32;
+typedef double                      float64;
+ +

11.6 类型定义 – MPC5554(Freescale)

+
/* 符号 */
+#define CPU_TYPE                    CPU_TYPE_32
+#define CPU_BIT_ORDER               MSB_FIRST
+#define CPU_BYTE_ORDER              HIGH_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char               boolean;
+
+typedef signed char                 sint8;
+typedef unsigned char               uint8;
+typedef signed short                sint16;
+typedef unsigned short              uint16;
+typedef signed long                 sint32;
+typedef signed long long            sint64;
+typedef unsigned long               uint32;
+typedef unsigned long long          uint64;
+
+typedef unsigned long               uint8_least;
+typedef unsigned long               uint16_least;
+typedef unsigned long               uint32_least;
+typedef signed long                 sint8_least;
+typedef signed long                 sint16_least;
+typedef signed long                 sint32_least;
+
+typedef float                       float32;
+typedef double                      float64;
+ +

11.7 类型定义 – TC1796/TC1766(Infineon)

+
/* 符号 */
+#define CPU_TYPE                    CPU_TYPE_32
+#define CPU_BIT_ORDER               LSB_FIRST
+#define CPU_BYTE_ORDER              LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char               boolean;
+
+typedef signed char                 sint8;
+typedef unsigned char               uint8;
+typedef signed short                sint16;
+typedef unsigned short              uint16;
+typedef signed long                 sint32;
+typedef signed long long            sint64;
+typedef unsigned long               uint32;
+typedef unsigned long long          uint64;
+
+typedef unsigned long               uint8_least;
+typedef unsigned long               uint16_least;
+typedef unsigned long               uint32_least;
+typedef signed long                 sint8_least;
+typedef signed long                 sint16_least;
+typedef signed long                 sint32_least;
+
+typedef float                       float32;
+typedef double                      float64;
+ +

11.8 类型定义 – MB91F(Fujitsu)

+
/* 符号 */
+#define CPU_TYPE                     CPU_TYPE_32
+#define CPU_BIT_ORDER                LSB_FIRST
+#define CPU_BYTE_ORDER               HIGH_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char                boolean;
+
+typedef signed char                  sint8;
+typedef unsigned char                uint8;
+typedef signed short                 sint16;
+typedef unsigned short               uint16;
+typedef signed long                  sint32;
+typedef signed long long             sint64;
+typedef unsigned long                uint32;
+typedef unsigned long long           uint64;
+
+typedef unsigned long                uint8_least;
+typedef unsigned long                uint16_least;
+typedef unsigned long                uint32_least;
+typedef signed long                  sint8_least;
+typedef signed long                  sint16_least;
+typedef signed long                  sint32_least;
+
+typedef float                        float32;
+typedef double                       float64;
+ +

11.9 类型定义 – M16C/M32C(Renesas)

+
/* 符号 */
+#define CPU_TYPE                    CPU_TYPE_16
+#define CPU_BIT_ORDER               LSB_FIRST
+#define CPU_BYTE_ORDER              LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char               boolean;
+
+typedef signed char                 sint8;
+typedef unsigned char               uint8;
+typedef signed short                sint16;
+typedef unsigned short              uint16;
+typedef signed long                 sint32;
+typedef signed long long            sint64;
+typedef unsigned long               uint32;
+typedef unsigned long long          uint64;
+
+typedef unsigned short              uint8_least;
+typedef unsigned short              uint16_least;
+typedef unsigned long               uint32_least;
+typedef signed short                sint8_least;
+typedef signed short                sint16_least;
+typedef signed long                 sint32_least;
+
+typedef float                       float32;
+typedef double                      float64;
+ +

11.10 类型定义 – SHx(Renesas)

+
/* 符号 */
+#define CPU_TYPE                    CPU_TYPE_32
+#define CPU_BIT_ORDER               LSB_FIRST
+#define CPU_BYTE_ORDER               HIGH_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char               boolean;
+
+typedef signed char                 sint8;
+typedef unsigned char               uint8;
+typedef signed short                sint16;
+typedef unsigned short              uint16;
+typedef signed int                  sint32;
+typedef signed long long            sint64;
+typedef unsigned int                uint32;
+typedef unsigned long long          uint64;
+
+typedef unsigned long               uint8_least;
+typedef unsigned long               uint16_least;
+typedef unsigned long               uint32_least;
+typedef signed long                 sint8_least;
+typedef signed long                 sint16_least;
+typedef signed long                 sint32_least;
+
+typedef float                       float32;
+typedef double                      float64;
+ +

11.11 类型定义 – ARM Cortex A53(小端)

+
/* 符号 */
+#define CPU_TYPE                     CPU_TYPE_64
+#define CPU_BIT_ORDER                LSB_FIRST
+#define CPU_BYTE_ORDER               LOW_BYTE_FIRST
+
+/* 类型 */
+typedef unsigned char                boolean;
+
+typedef unsigned char                uint8;
+typedef unsigned short               uint16;
+typedef unsigned int                 uint32;
+typedef unsigned long long           uint64;
+
+typedef signed char                  sint8;
+typedef signed short                 sint16;
+typedef signed int                   sint32;
+typedef signed long long             sint64;
+
+typedef unsigned int                 uint8_least;
+typedef unsigned int                 uint16_least;
+typedef unsigned int                 uint32_least;
+typedef signed int                   sint8_least;
+typedef signed int                   sint16_least;
+typedef signed int                   sint32_least;
+
+typedef float                        float32;
+typedef double                       float64;
+ +

12 不适用的需求(Not applicable requirements)

+ +
+

[SWS_Platform_00063]

+

以下需求对本规范不适用

+

SRS_BSW_00344SRS_BSW_00404SRS_BSW_00405SRS_BSW_00345SRS_BSW_00159SRS_BSW_00167SRS_BSW_00171SRS_BSW_00170SRS_BSW_00419SRS_BSW_00381SRS_BSW_00412SRS_BSW_00383SRS_BSW_00384SRS_BSW_00387SRS_BSW_00388SRS_BSW_00389SRS_BSW_00390SRS_BSW_00391SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00396SRS_BSW_00397SRS_BSW_00398SRS_BSW_00399SRS_BSW_00400SRS_BSW_00375SRS_BSW_00101SRS_BSW_00416SRS_BSW_00406SRS_BSW_00168SRS_BSW_00407SRS_BSW_00423SRS_BSW_00429SRS_BSW_00432SRS_BSW_00336SRS_BSW_00337SRS_BSW_00338SRS_BSW_00369SRS_BSW_00339SRS_BSW_00422SRS_BSW_00420SRS_BSW_00417SRS_BSW_00323SRS_BSW_00409SRS_BSW_00385SRS_BSW_00386SRS_BSW_00161SRS_BSW_00162SRS_BSW_00005SRS_BSW_00415SRS_BSW_00164SRS_BSW_00325SRS_BSW_00326SRS_BSW_00342SRS_BSW_00343SRS_BSW_00160SRS_BSW_00007SRS_BSW_00300SRS_BSW_00413SRS_BSW_00347SRS_BSW_00305SRS_BSW_00307SRS_BSW_00310SRS_BSW_00373SRS_BSW_00327SRS_BSW_00335SRS_BSW_00350SRS_BSW_00408SRS_BSW_00410SRS_BSW_00411SRS_BSW_00346SRS_BSW_00158SRS_BSW_00314SRS_BSW_00370SRS_BSW_00348SRS_BSW_00361SRS_BSW_00301SRS_BSW_00302SRS_BSW_00328SRS_BSW_00312SRS_BSW_00357SRS_BSW_00377SRS_BSW_00355SRS_BSW_00306SRS_BSW_00308SRS_BSW_00309SRS_BSW_00371SRS_BSW_00358SRS_BSW_00414SRS_BSW_00376SRS_BSW_00359SRS_BSW_00360SRS_BSW_00329SRS_BSW_00330SRS_BSW_00331SRS_BSW_00009SRS_BSW_00401SRS_BSW_00172SRS_BSW_00010SRS_BSW_00333SRS_BSW_00374SRS_BSW_00379SRS_BSW_00321SRS_BSW_00341SRS_BSW_00334

+
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 类型定义booleanuint8/16/32/64sint8/16/32/64uint8/16/32_leastsint8/16/32_leastfloat32float64 共 17 个类型定义全部翻译,含 IEEE 754-2008 binary32/binary64 说明。
  • +
  • 符号定义CPU_TYPE(8/16/32/64)、CPU_BIT_ORDER(MSB_FIRST/LSB_FIRST)、CPU_BYTE_ORDER(HIGH_BYTE_FIRST/LOW_BYTE_FIRST)、TRUE/FALSE 全部翻译。
  • +
  • 章节结构:原文 12 章,译文目录完整对应;8.2.1–8.2.17、8.3.1–8.3.4、11.1–11.11 全保留。
  • +
  • 需求 ID 保留SWS_Platform_00002SWS_Platform_00013SWS_Platform_00027SWS_Platform_00034SWS_Platform_00038SWS_Platform_00039SWS_Platform_00041SWS_Platform_00042SWS_Platform_00043SWS_Platform_00067 完整保留。
  • +
  • 字节序图示:7.3.2 节位序/字节序说明保留(含 Motorola 与小端 µC 命名差异的重要提示)。
  • +
  • 平台映射附录:11.1–11.11 节给出 11 种平台(通用 + 10 种 MCU)的完整 C 类型映射代码,全部保留。
  • +
  • 二进制补码SWS_Platform_00061 关于"有符号类型只支持二进制补码算术"明确翻译。
  • +
  • boolean 限制SWS_Platform_00034 详细列出 boolean 类型的允许/禁止运算符与赋值形式,完整翻译。
  • +
  • C90/C99 注释:ANSI C 类型映射保留原文 C 语法(无 C++11/C23 扩展)。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SWS_PlatformTypes.pdf(36 页)· 文档 ID 048 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_StandardTypes.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_StandardTypes.html new file mode 100644 index 0000000..134ebd6 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_SWS_StandardTypes.html @@ -0,0 +1,383 @@ + + + + +标准类型规范 · AUTOSAR 4.4 中文翻译 + + + + +
+

标准类型规范(Specification of Standard Types)

+
+ 📄 文档 ID:049 + 🏷 类型:SWS(软件规范) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:22 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_SWS_StandardTypes.pdf +
+
+ + + + + +
+ +

1 介绍与功能概述(Introduction and functional overview)

+

本规范定义了 AUTOSAR 标准类型头文件。它包含所有在多个基础软件模块中复用、且与平台和编译器无关的类型。

+

强烈推荐在 AUTOSAR 社区内统一使用该标准类型文件,以保证类型的唯一性,并避免从供应商 A 切换到供应商 B 时类型发生变化。

+ +

2 缩略语与术语(Acronyms and abbreviations)

+

仅在本文件局部使用、因而未收录到 AUTOSAR 术语表中的缩略语与术语,必须在本节"局部术语表"中列出。

+ + + + + + + +
缩略语说明
APIApplication Programming Interface(应用程序编程接口)
OSEK/VDXOffene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug(汽车电子开放系统及其接口)
+ + + + + + +
缩写说明
STDStandard(标准)
+ +

3 相关文档(Related documentation)

+ +

3.1 输入文档

+ + + + + + + + + + +
编号文档名原 PDF
[1]General Requirements on Basic Software ModulesAUTOSAR_SRS_BSWGeneral.pdf
[2]General Requirements on SPALAUTOSAR_SRS_SPALGeneral.pdf
[3]Specification of RTE SoftwareAUTOSAR_SWS_RTE.pdf
[4]Basic Software Module Description TemplateAUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
[5]List of Basic Software ModulesAUTOSAR_TR_BSWModuleList
[6]General Specification of Basic Software ModulesAUTOSAR_SWS_BSWGeneral.pdf
+ +

3.2 相关标准与规范

+ + + + + + +
编号标准
[7]OSEK/VDX Operating System, ISO 17356-3: OS
[8]ISO/IEC 9899:1990 Programming Language – C
+ +

3.3 相关规范

+

AUTOSAR 提供了通用基础软件模块规范 [6](SWS BSW General),该规范对标准类型同样适用。

+

因此,SWS BSW General 应被视为标准类型的附加且必需的规范。

+ +

4 约束与假设(Constraints and assumptions)

+ +

4.1 限制(Limitations)

+

无限制。

+ +

4.2 对汽车领域的适用性(Applicability to car domains)

+

本规范中定义的许多符号(如 OKNOT_OKONOFF)在遗留软件中已经定义并使用。这些"现有符号被重定义"的冲突预期会出现,但因以下原因而被忽略:

+
    +
  1. AUTOSAR 必须保持与遗留 ECU 的网络兼容性,但不必保持与遗留软件的软件架构兼容性。许多类型定义和使用方式与遗留软件完全相同,遗留软件可继续使用这些符号,只需移除其原有定义并改用本文件的定义即可。
  2. +
+ +

5 软件架构(Software Architecture)

+ +

5.1 对其他模块的依赖(Dependencies to other modules)

+

无。

+ +

5.2 文件结构(File structure)

+

包含结构在属于 COM 栈的 BSW 模块和其他模块之间有所不同:

+
    +
  • 被视为 COM 栈一部分的 BSW 模块应当包含 ComStackTypes.h
  • +
  • 其他模块应当包含 StandardTypes.h
  • +
+ +

5.2.1 通信相关 BSW 模块

+ +
+

[SWS_Std_00016]

+

包含文件的结构应当(shall)如下:

+
    +
  • ComStackTypes.h 应当包含 StandardTypes.h
  • +
  • 与通信相关的基础软件模块应当包含 ComStackTypes.h
  • +
+

参考:SRS_BSW_00024

+
+ +

6 需求追溯(Requirements traceability)

+

下表列出本规范涉及的 SRS 需求及其满足情况。本文档共引用了约 100+ SRS 需求条目,绝大部分通过 SWS_Std_00999 声明"不适用"(见 第 11 节)。实际适用的 SRS 需求包括:

+ + + + + + + + + + + + +
SRS 需求描述由以下满足
SRS_BSW_00004所有基础软件模块应当对所包含的头文件版本进行预处理检查SWS_Std_00015
SRS_BSW_00024SWS_Std_00016
SRS_BSW_00059SWS_Std_00014
SRS_BSW_00348所有 AUTOSAR 标准类型与常量应当放置和组织在标准类型头文件中SWS_Std_00007SWS_Std_00010SWS_Std_00013
SRS_BSW_00357API 调用成功/失败应当使用一个标准返回类型SWS_Std_00005SWS_Std_00006SWS_Std_00011
SRS_BSW_00441类型、宏、函数的命名约定SWS_Std_00011
其余 ~100 条由 SWS_Std_00999 声明"不适用"SWS_Std_00999
+ +
+ 提示:完整 SRS 需求追溯表共 ~100 项,本译文仅展示实际生效的条目。其余条目均通过 SWS_Std_00999("不适用"声明)集中处理,详见 第 11 节。 +
+ +

7 功能规范(Functional specification)

+ +

7.1 通用问题(General issues)

+ +
+

[SWS_Std_00004]

+

本文件不得(shall not)添加任何项目或供应商特定的扩展。任何扩展都将使 AUTOSAR 一致性失效。

+

参考:SRS_BSW_00161

+
+ +
+

[SWS_Std_00014]

+

标准类型头文件应当防止被多次包含:

+
#ifndef STD_TYPES_H
+#define STD_TYPES_H
+..
+/*
+  * Contents of file
+  */
+..
+#endif /* STD_TYPES_H */
+

参考:SRS_BSW_00059

+
+ +

8 API 规范(API specification)

+ +

8.1 类型定义(Type definitions)

+ +

8.1.1 Std_ReturnType

+ +
+

[SWS_Std_00005]

+ + + + + + + + + + + + +
名称(Name)Std_ReturnType
种类(Kind)Type(类型)
派生自(Derived from)uint8
说明(Description)该类型可用作 RTE 与 BSW 模块之间共享的标准 API 返回类型。应当按下述方式定义:
typedef uint8 Std_ReturnType;
取值范围(Range)E_OK     0     见 8.2.1,SWS_Std_00006
E_NOT_OK     1     见 8.2.1,SWS_Std_00006
0x02-0x3F     2     留给用户自定义错误使用
变化(Variation)
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00357

+
+ +
+

[SWS_Std_00011]

+

Std_ReturnType 一般使用值 E_OKE_NOT_OK。如果这两个返回值不够用,可使用低 6 位定义用户自定义值。

+

用户自定义值的命名应当SRS_BSW_00441 的要求使用模块前缀。

+

Std_ReturnType 的布局应与 RTE 规范一致。Bit 7 和 Bit 8 由 RTE 规范保留和定义。

+

参考:SRS_BSW_00357, SRS_BSW_00441

+
+ +

8.1.2 Std_VersionInfoType

+ +
+

[SWS_Std_00015]

+ + + + + + + + + + + + +
名称(Name)Std_VersionInfoType
类型(Type)Structure(结构体)
元素(Element)uint16 vendorID
uint16 moduleID
uint8 sw_major_version
uint8 sw_minor_version
uint8 sw_patch_version
说明(Description)该类型应当用于通过 <Module name>_GetVersionInfo() 函数请求 BSW 模块的版本信息。
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00004

+
+ +

8.2 符号定义(Symbol definitions)

+ +

8.2.1 E_OKE_NOT_OK

+ +
+

[SWS_Std_00006]

+ + + + + + + + + +
名称(Name)E_OKE_NOT_OK
类型(Type)Enumeration(枚举)
取值(Range)E_OK     0x00u     —
E_NOT_OK     0x01u     —
说明(Description)由于 E_OK 已在 OSEK 中定义,该符号需共享使用。为避免命名冲突和重定义问题,符号应按下述方式定义(已通过实现审批):
#ifndef STATUSTYPEDEFINED
+#define STATUSTYPEDEFINED
+#define E_OK 0x00u
+
+typedef unsigned char StatusType; /* OSEK compliance */
+#endif
+
+#define E_NOT_OK 0x01u
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00357

+
+ +

8.2.2 STD_HIGHSTD_LOW

+ +
+

[SWS_Std_00007]

+ + + + + + + + + +
名称(Name)STD_HIGHSTD_LOW
类型(Type)Enumeration(枚举)
取值(Range)STD_LOW     0x00u
STD_HIGH     0x01u
说明(Description)STD_HIGHSTD_LOW 应当按下述方式定义:
#define STD_HIGH 0x01u /* Physical state 5V or 3.3V */
+#define STD_LOW 0x00u /* Physical state 0V */
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00348

+
+ +

8.2.3 STD_ACTIVESTD_IDLE

+ +
+

[SWS_Std_00013]

+ + + + + + + + + +
名称(Name)STD_ACTIVESTD_IDLE
类型(Type)Enumeration(枚举)
取值(Range)STD_IDLE     0x00u
STD_ACTIVE     0x01u
说明(Description)STD_ACTIVESTD_IDLE 应当按下述方式定义:
#define STD_ACTIVE 0x01u /* Logical state active */
+#define STD_IDLE   0x00u /* Logical state idle */
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00348

+
+ +

8.2.4 STD_ONSTD_OFF

+ +
+

[SWS_Std_00010]

+ + + + + + + + + +
名称(Name)STD_ONSTD_OFF
类型(Type)Enumeration(枚举)
取值(Range)STD_OFF     0x00u
STD_ON     0x01u
说明(Description)STD_ONSTD_OFF 应当按下述方式定义:
#define STD_ON  0x01u
+#define STD_OFF 0x00u
可获取于(Available via)StandardTypes.h
+

参考:SRS_BSW_00348

+
+ +

8.3 函数定义(Function definitions)

+

不适用。

+ +

9 时序图(Sequence diagrams)

+

不适用。

+ +

10 配置规范(Configuration specification)

+

不适用。

+ +

11 不适用的需求(Not applicable requirements)

+ +
+

[SWS_Std_00999]

+

以下需求对本规范不适用

+

SRS_BSW_00300SRS_BSW_00301SRS_BSW_00302SRS_BSW_00304SRS_BSW_00305SRS_BSW_00306SRS_BSW_00307SRS_BSW_00308SRS_BSW_00309SRS_BSW_00310SRS_BSW_00312SRS_BSW_00314SRS_BSW_00321SRS_BSW_00325SRS_BSW_00327SRS_BSW_00330SRS_BSW_00331SRS_BSW_00333SRS_BSW_00334SRS_BSW_00335SRS_BSW_00342SRS_BSW_00343SRS_BSW_00341SRS_BSW_00346SRS_BSW_00347SRS_BSW_00350SRS_BSW_00353SRS_BSW_00358SRS_BSW_00359SRS_BSW_00360SRS_BSW_00361SRS_BSW_00371SRS_BSW_00373SRS_BSW_00374SRS_BSW_00377SRS_BSW_00378SRS_BSW_00379SRS_BSW_00401SRS_BSW_00408SRS_BSW_00410SRS_BSW_00411SRS_BSW_00413SRS_BSW_00414SRS_BSW_00415SRS_BSW_00005SRS_BSW_00006SRS_BSW_00007SRS_BSW_00009SRS_BSW_00010SRS_BSW_00158SRS_BSW_00160SRS_BSW_00161SRS_BSW_00162SRS_BSW_00164SRS_BSW_00172SRS_BSW_00344SRS_BSW_00404SRS_BSW_00405SRS_BSW_00345SRS_BSW_00159SRS_BSW_00167SRS_BSW_00171SRS_BSW_00170SRS_BSW_00380SRS_BSW_00419SRS_BSW_00381SRS_BSW_00412SRS_BSW_00383SRS_BSW_00388SRS_BSW_00389SRS_BSW_00390SRS_BSW_00392SRS_BSW_00393SRS_BSW_00394SRS_BSW_00395SRS_BSW_00396SRS_BSW_00397SRS_BSW_00398SRS_BSW_00399SRS_BSW_00400SRS_BSW_00375SRS_BSW_00101SRS_BSW_00416SRS_BSW_00406SRS_BSW_00168SRS_BSW_00407SRS_BSW_00423SRS_BSW_00424SRS_BSW_00425SRS_BSW_00426SRS_BSW_00427SRS_BSW_00428SRS_BSW_00429SRS_BSW_00432SRS_BSW_00433SRS_BSW_00336SRS_BSW_00337SRS_BSW_00369SRS_BSW_00339SRS_BSW_00422SRS_BSW_00417SRS_BSW_00323SRS_BSW_00409SRS_BSW_00385SRS_BSW_00386SRS_BSW_00452SRS_BSW_00473SRS_BSW_00458SRS_BSW_00466

+
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 类型与符号定义Std_ReturnTypeStd_VersionInfoTypeE_OKE_NOT_OKSTD_HIGH/LOWSTD_ACTIVE/IDLESTD_ON/OFF 全部翻译,含 C 代码块原文。
  • +
  • 章节结构:原文 11 章,译文目录完整对应(1–11 章;8.1.1/8.1.2;8.2.1–8.2.4 全保留)。
  • +
  • 需求 ID 保留SWS_Std_00004SWS_Std_00005SWS_Std_00006SWS_Std_00007SWS_Std_00010SWS_Std_00011SWS_Std_00013SWS_Std_00014SWS_Std_00015SWS_Std_00016SWS_Std_00999 完整保留。
  • +
  • SRS 追溯:实际适用的 SRS 条目保留,~100 条不适用条目集中列于 SWS_Std_00999
  • +
  • C 代码块:所有 #define#ifndeftypedef 完整保留原文格式。
  • +
  • 取值与位定义0x00u0x01u0x02-0x3F、Bit 7/Bit 8 保留说明如实翻译。
  • +
  • OSEK 兼容性STATUSTYPEDEFINED 保护宏与 StatusType 类型保留,并补充 OSEK 兼容说明。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_SWS_StandardTypes.pdf(22 页)· 文档 ID 049 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWModuleList.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWModuleList.html new file mode 100644 index 0000000..35a9f6c --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWModuleList.html @@ -0,0 +1,222 @@ + + + + +基础软件模块清单 · AUTOSAR 4.4 中文翻译 + + + + +
+

基础软件模块清单(List of Basic Software Modules)

+
+ 📄 文档 ID:150 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:10 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_BSWModuleList.pdf +
+
+ + + + + +
+ +

1 基础软件模块清单

+

AUTOSAR 4.4.0 中所有标准化基础软件(BSW)模块及其归属层级如下表所示。"模块 ID"为 uint16 类型常量。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
模块简称模块缩写(API 服务前缀)模块 ID(uint16)规范文档AUTOSAR 软件层
ADC Driver(ADC 驱动)Adc123AUTOSAR_SWS_ADCDriver.pdfI/O Drivers(I/O 驱动)
BSW Mode Manager(BSW 模式管理器)BswM042AUTOSAR_SWS_BSWModeManager.pdfSystem Services(系统服务)
BSW Scheduler Module(BSW 调度器)SchM130"自 R4.0 起合并入 RTE"System Services
Bus Mirroring(总线镜像)Mirror048AUTOSAR_SWS_BusMirroring.pdfCommunication Services(通信服务)
CAN Driver(CAN 驱动)Can080AUTOSAR_SWS_CANDriver.pdfCommunication Drivers(通信驱动)
CAN Interface(CAN 接口)CanIf060AUTOSAR_SWS_CANInterface.pdfCommunication HW Abstraction(通信硬件抽象)
CAN Network Management(CAN 网络管理)CanNm031AUTOSAR_SWS_CANNetworkManagement.pdfCommunication Services
CAN State Manager(CAN 状态管理器)CanSM140AUTOSAR_SWS_CANStateManager.pdfCommunication Services
CAN Transceiver Driver(CAN 收发器驱动)CanTrcv070AUTOSAR_SWS_CANTransceiverDriver.pdfCommunication HW Abstraction
CAN Transport Layer(CAN 传输层)CanTp035AUTOSAR_SWS_CANTransportLayer.pdfCommunication Services
COM(通信)Com050AUTOSAR_SWS_COM.pdfCommunication Services
COM Based Transformer(基于 COM 的转换器)ComXf175AUTOSAR_SWS_COMBasedTransformer.pdfCommunication Services
COM Manager(COM 管理器)ComM012AUTOSAR_SWS_COMManager.pdfSystem Services
Complex Drivers(复杂驱动)no prefix (AUTOSAR interface)255不适用Complex Drivers(复杂驱动层)
Core Test(内核测试)CorTst103AUTOSAR_SWS_CoreTest.pdfMicrocontroller Drivers(微控制器驱动)
Crypto Driver(加密驱动)Crypto114AUTOSAR_SWS_CryptoDriver.pdfCrypto Drivers(加密驱动)
Crypto Interface(加密接口)CryIf112AUTOSAR_SWS_CryptoInterface.pdfCrypto HW Abstraction(加密硬件抽象)
Crypto Service Manager(加密服务管理器)Csm110AUTOSAR_SWS_CryptoServiceManager.pdfCrypto Services(加密服务)
Default Error Tracer(默认错误追踪器)Det015AUTOSAR_SWS_DefaultErrorTracer.pdfSystem Services
Diagnostic Communication Manager(诊断通信管理器)Dcm053AUTOSAR_SWS_DiagnosticCommunicationManager.pdfCommunication Services
Diagnostic Event Manager(诊断事件管理器)Dem054AUTOSAR_SWS_DiagnosticEventManager.pdfSystem Services
Diagnostic Log and Trace(诊断日志与跟踪)Dlt055AUTOSAR_SWS_DiagnosticLogAndTrace.pdfCommunication Services
Diagnostic over IP(基于 IP 的诊断)DoIP173AUTOSAR_SWS_DiagnosticOverIP.pdfCommunication Services
DIO Driver(DIO 驱动)Dio120AUTOSAR_SWS_DIODriver.pdfI/O Drivers
E2E Transformer(端到端转换器)E2EXf176AUTOSAR_SWS_E2ETransformer.pdfCommunication Services
ECU State Manager(ECU 状态管理器)EcuM010AUTOSAR_SWS_ECUStateManager.pdfSystem Services
EEPROM Abstraction(EEPROM 抽象)Ea040AUTOSAR_SWS_EEPROMAbstraction.pdfMemory HW Abstraction(内存硬件抽象)
EEPROM Driver(EEPROM 驱动)Eep090AUTOSAR_SWS_EEPROMDriver.pdfMemory Drivers(内存驱动)
Ethernet Driver(以太网驱动)Eth088AUTOSAR_SWS_EthernetDriver.pdfCommunication Drivers
Ethernet Interface(以太网接口)EthIf065AUTOSAR_SWS_EthernetInterface.pdfCommunication HW Abstraction
Ethernet State Manager(以太网状态管理器)EthSM143AUTOSAR_SWS_EthernetStateManager.pdfCommunication Services
Ethernet Switch Driver(以太网交换机驱动)EthSwt089AUTOSAR_SWS_EthernetSwitchDriver.pdfCommunication HW Abstraction
Ethernet Transceiver Driver(以太网收发器驱动)EthTrcv073AUTOSAR_SWS_EthernetTransceiverDriver.pdfCommunication HW Abstraction
Flash Driver(Flash 驱动)Fls092AUTOSAR_SWS_FlashDriver.pdfMemory Drivers
Flash EEPROM Emulation(Flash EEPROM 仿真)Fee021AUTOSAR_SWS_FlashEEPROMEmulation.pdfMemory HW Abstraction
Flash Test(Flash 测试)FlsTst104AUTOSAR_SWS_FlashTest.pdfMemory Drivers
FlexRay AUTOSAR Transport Layer(FlexRay AUTOSAR 传输层)FrArTp038AUTOSAR_SWS_FlexRayARTransportLayer.pdfCommunication Services
FlexRay Driver(FlexRay 驱动)Fr081AUTOSAR_SWS_FlexRayDriver.pdfCommunication Drivers
FlexRay Interface(FlexRay 接口)FrIf061AUTOSAR_SWS_FlexRayInterface.pdfCommunication HW Abstraction
FlexRay ISO Transport Layer(FlexRay ISO 传输层)FrTp036AUTOSAR_SWS_FlexRayISOTransportLayer.pdfCommunication Services
FlexRay Network Management(FlexRay 网络管理)FrNm032AUTOSAR_SWS_FlexRayNetworkManagement.pdfCommunication Services
FlexRay State Manager(FlexRay 状态管理器)FrSM142AUTOSAR_SWS_FlexRayStateManager.pdfCommunication Services
FlexRay Transceiver Driver(FlexRay 收发器驱动)FrTrcv071AUTOSAR_SWS_FlexRayTransceiverDriver.pdfCommunication HW Abstraction
Function Inhibition Manager(功能抑制管理器)FiM011AUTOSAR_SWS_FunctionInhibitionManager.pdfSystem Services
GPT Driver(通用定时器驱动)Gpt100AUTOSAR_SWS_GPTDriver.pdfMicrocontroller Drivers
ICU Driver(输入捕获单元驱动)Icu122AUTOSAR_SWS_ICUDriver.pdfI/O Drivers
IO HW Abstraction(IO 硬件抽象)no prefix (AUTOSAR interface)254AUTOSAR_SWS_IOHardwareAbstraction.pdfI/O HW Abstraction(IO 硬件抽象)
IPDU Multiplexer(IPDU 多路复用器)IpduM052AUTOSAR_SWS_IPDUMultiplexer.pdfCommunication Services
Key Manager(密钥管理器)KeyM109AUTOSAR_SWS_KeyManager.pdfCrypto Services
Large Data COM(大数据量 COM)LdCom049AUTOSAR_SWS_LargeDataCOM.pdfCommunication Services
LIN Driver(LIN 驱动)Lin082AUTOSAR_SWS_LINDriver.pdfCommunication Drivers
LIN Interface(LIN 接口)LinIf062AUTOSAR_SWS_LINInterface.pdfCommunication HW Abstraction
LIN State Manager(LIN 状态管理器)LinSM141AUTOSAR_SWS_LINStateManager.pdfCommunication Services
LIN Transceiver Driver(LIN 收发器驱动)LinTrcv064AUTOSAR_SWS_LINTransceiverDriver.pdfCommunication HW Abstraction
MCU Driver(微控制器驱动)Mcu101AUTOSAR_SWS_MCUDriver.pdfMicrocontroller Drivers
Memory Abstraction Interface(内存抽象接口)MemIf022AUTOSAR_SWS_MemoryAbstractionInterface.pdfMemory Services(内存服务)
Network Management Interface(网络管理接口)Nm029AUTOSAR_SWS_NetworkManagementInterface.pdfCommunication Services
NVRAM Manager(非易失性 RAM 管理器)NvM020AUTOSAR_SWS_NVRAMManager.pdfMemory Services
OCU Driver(输出比较单元驱动)Ocu125AUTOSAR_SWS_OCUDriver.pdfI/O Drivers
OS(操作系统)Os(不作为 API 前缀使用)001AUTOSAR_SWS_OS.pdfSystem Services - OS(系统服务 - 操作系统)
PDU Router(PDU 路由器)PduR051AUTOSAR_SWS_PDURouter.pdfCommunication Services
Port Driver(端口驱动)Port124AUTOSAR_SWS_PortDriver.pdfI/O Drivers
PWM Driver(脉宽调制驱动)Pwm121AUTOSAR_SWS_PWMDriver.pdfI/O Drivers
RAM Test(RAM 测试)RamTst093AUTOSAR_SWS_RAMTest.pdfMemory Drivers
RTE(运行时环境)Rte002AUTOSAR_SWS_RTE.pdfRTE
SAE J1939 Diagnostic Communication Manager(SAE J1939 诊断通信管理器)J1939Dcm058AUTOSAR_SWS_SAEJ1939DiagnosticCommunicationManager.pdfCommunication Services
SAE J1939 Network Management(SAE J1939 网络管理)J1939Nm034AUTOSAR_SWS_SAEJ1939NetworkManagement.pdfCommunication Services
SAE J1939 Request Manager(SAE J1939 请求管理器)J1939Rm059AUTOSAR_SWS_SAEJ1939RequestManager.pdfCommunication Services
SAE J1939 Transport Layer(SAE J1939 传输层)J1939Tp037AUTOSAR_SWS_SAEJ1939TransportLayer.pdfCommunication Services
Secure Onboard Communication(车载安全通信)SecOC150AUTOSAR_SWS_SecureOnboardCommunication.pdfCommunication Services
Service Discovery(服务发现)Sd171AUTOSAR_SWS_ServiceDiscovery.pdfCommunication Services
Socket Adaptor(Socket 适配器)SoAd056AUTOSAR_SWS_SocketAdaptor.pdfCommunication Services
SOME/IP Transformer(SOME/IP 转换器)SomeIpXf174AUTOSAR_SWS_SOMEIPTransformer.pdfCommunication Services
SOME/IP Transport Protocol(SOME/IP 传输协议)SomeIpTp177AUTOSAR_SWS_SOMEIPTransportProtocol.pdfCommunication Services
SPI Handler Driver(SPI 处理驱动)Spi083AUTOSAR_SWS_SPIHandlerDriver.pdfCommunication Drivers
Synchronized Time-Base Manager(同步时基管理器)StbM160AUTOSAR_SWS_SynchronizedTimeBaseManager.pdfSystem Services
TCP/IP Stack(TCP/IP 协议栈)TcpIp170AUTOSAR_SWS_TcpIp.pdfCommunication Services
Time Service(时间服务)Tm014AUTOSAR_SWS_TimeService.pdfSystem Services
Time Sync Over CAN(基于 CAN 的时间同步)CanTSyn161AUTOSAR_SWS_TimeSyncOverCAN.pdfCommunication Services
Time Sync Over Ethernet(基于以太网的时间同步)EthTSyn164AUTOSAR_SWS_TimeSyncOverEthernet.pdfCommunication Services
Time Sync Over FlexRay(基于 FlexRay 的时间同步)FrTSyn163AUTOSAR_SWS_TimeSyncOverFlexRay.pdfCommunication Services
TTCAN Driver(时间触发 CAN 驱动)Ttcan084AUTOSAR_SWS_TTCANDriver.pdfCommunication Drivers
TTCAN Interface(时间触发 CAN 接口)TtcanIf066AUTOSAR_SWS_TTCANInterface.pdfCommunication HW Abstraction
UDP Network Management(UDP 网络管理)UdpNm033AUTOSAR_SWS_UDPNetworkManagement.pdfCommunication Services
Vehicle-2-X Basic Transport(V2X 基础传输)V2xBtp183AUTOSAR_SWS_V2XBasicTransport.pdfOff-board Comm. Services(车外通信服务)
Vehicle-2-X Facilities(V2X 设施层)V2xFac184AUTOSAR_SWS_V2XFacilities.pdfOff-board Comm. Services
Vehicle-2-X GeoNetworking(V2X 地理组网)V2xGn182AUTOSAR_SWS_V2XGeoNetworking.pdfOff-board Comm. Services
Vehicle-2-X Management(V2X 管理)V2xM185AUTOSAR_SWS_V2XManagement.pdfOff-board Comm. Services
Watchdog Driver(看门狗驱动)Wdg102AUTOSAR_SWS_WatchdogDriver.pdfMicrocontroller Drivers
Watchdog Interface(看门狗接口)WdgIf043AUTOSAR_SWS_WatchdogInterface.pdfOnboard Device Abstraction(车载设备抽象)
Watchdog Manager(看门狗管理器)WdgM013AUTOSAR_SWS_WatchdogManager.pdfSystem Services
Wireless Ethernet Driver(无线以太网驱动)WEth087AUTOSAR_SWS_WirelessEthernetDriver.pdfWireless Comm. Drivers(无线通信驱动)
Wireless Ethernet Transceiver Driver(无线以太网收发器驱动)WEthTrcv074AUTOSAR_SWS_WirelessEthernetTransceiverDriver.pdfWireless Comm. HW Abstraction(无线通信硬件抽象)
XCP(通用测量与标定协议)Xcp212AUTOSAR_SWS_XCP.pdfCommunication Services
+ +

2 库(Libraires)清单

+

AUTOSAR 4.4.0 中标准化的库(Libraries)模块:

+ + + + + + + + + + + + + + + + + + + + +
库简称库缩写(API 服务前缀)库(模块)ID(uint16)规范文档
CRC Library(CRC 库)Crc201AUTOSAR_SWS_CRCLibrary.pdf
BFx Library(大位域操作库)Bfx205AUTOSAR_SWS_BFXLibrary.pdf
E2E Library(端到端保护库)E2E207AUTOSAR_SWS_E2ELibrary.pdf
EFx Library(小位域操作库)Efx208AUTOSAR_SWS_EFXLibrary.pdf
IFl Library(整型定点库)Ifl209AUTOSAR_SWS_IFLLibrary.pdf
MFl Library(混合定点库)Mfl210AUTOSAR_SWS_MFLLibrary.pdf
MFx Library(混合位域库)Mfx211AUTOSAR_SWS_MFXLibrary.pdf
IFx Library(整型位域库)Ifx213AUTOSAR_SWS_IFXLibrary.pdf
+ +

3 特殊文件(Special Files)清单

+

AUTOSAR 中一些"特殊文件"虽不是独立模块,但在每个 ECU 工程中均会出现,其规范如下:

+ + + + + + + + + + + + + + + + + + +
AUTOSAR 名称简称(API 服务前缀)文件名模块 ID规范文档
Platform Types(平台类型)PlatformPlatform_Types.h199AUTOSAR_SWS_PlatformTypes.pdf
Compiler Abstraction(编译器抽象)CompilerCompiler.h198AUTOSAR_SWS_CompilerAbstraction.pdf
Standard Types(标准类型)StdStd_Types.h197AUTOSAR_SWS_StandardTypes.pdf
Communication Stack Types(通信栈类型)ComtypeComStack_Types.h196AUTOSAR_SWS_CommunicationStackTypes.pdf
Memory Mapping(内存映射)MemMap(Prefix_)MemMap.h195AUTOSAR_SWS_MemoryMapping.pdf
+ +
+ 使用说明:本表为速查表,便于在阅读其他 AUTOSAR 文档时快速查询模块归属、ID 与对应规范文档。 + 模块 ID 在 DemDet 等的错误报告、RTE 接口中常被引用。 +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 模块数量:原文 86 个 BSW 模块 + 8 个库 + 5 个特殊文件 = 99 行表格内容,全部翻译保留。
  • +
  • 术语一致性:API 前缀(如 AdcCanIf)、模块简称保持原文不变;中文译名首次出现按"中文(英文, 缩写)"形式呈现。
  • +
  • 软件层级归类:I/O Drivers、System Services、Communication Drivers/Services/HW Abstraction、Memory Drivers/Services/HW Abstraction、Microcontroller Drivers、Crypto Drivers/Services/HW Abstraction、RTE、Complex Drivers 等层级译名已与术语表对齐。
  • +
  • 特殊项Complex DriversIO HW Abstraction 模块"无 API 前缀,使用 AUTOSAR interface"已明确标注。
  • +
  • 版本变更记录:原文 Change History 包含 4.4.0 中新增的 Bus Mirroring、Key Manager、移除 LinNm 等变更;译文中保留 Change History 但以摘要方式体现(实际变更细节不计入主表,详见术语表与原始 PDF)。
  • +
  • 模块 ID 唯一性:原文 SecOC 与本文档 ID(150)出现重复(原文如此),译文如实保留。
  • +
  • 缩写译名约定:CRC/BFx/E2E 等库的中文译名(如"CRC 库""大位域操作库")按 AUTOSAR 标准库惯例命名。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_BSWModuleList.pdf(10 页)· 文档 ID 150 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWUMLModelModelingGuide.html b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWUMLModelModelingGuide.html new file mode 100644 index 0000000..4171078 --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/AUTOSAR_TR_BSWUMLModelModelingGuide.html @@ -0,0 +1,361 @@ + + + + +BSW UML 建模指南 · AUTOSAR 4.4 中文翻译 + + + + +
+

BSW EA UML 模型建模指南(Modeling Guidelines of Basic Software EA UML Model)

+
+ 📄 文档 ID:117 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:51 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_BSWUMLModelModelingGuide.pdf +
+
+ + + + + +
+ +

1 介绍(Introduction)

+

本建模指南描述了在 UML 模型中规范 AUTOSAR 基础软件所使用的建模技术和规则。

+

BSW 模型中的信息由 AUTOSAR 元模型工具(Meta Model Tool,MMT)处理,并为 AUTOSAR 定义的多份软件规范(SWS)提供主要输入。为了使 BSW 模型可被 MMT 访问,模型必须遵守本文档中描述的规则。

+ +

1.1 制品(Artifacts)

+

AUTOSAR BSW UML 模型的主要目的是保持 99+ 份 SWS 文档与文件结构、提供/需要接口、时序图、状态机等保持同步。因此,所有相关信息都按照第 2 章"建模指南"中规定的建模规则保存在 BSW 模型中。

+ +

BSW UML 模型向 SWS 文档贡献以下制品:

+ +

1.1.1 头文件(Header Files)

+

每份 SWS 文档的第 5.1 章包含 BSW 模块的文件结构,特别是其头文件包含结构。由于大多数模块的头文件关系具有相似的结构(实际上有些部分完全相同),头文件结构使用类图建模,使用带构造型(Stereotype)的类表示源文件和头文件;详见 2.4.1 节。

+ +

1.1.2 导入类型定义(Imported Type Definitions)

+

SWS 第 8.1 章包含导入类型的表格列表。该表根据 2.3.5 节解释的模块依赖关系自动生成。

+ +

1.1.3 类型定义(Type Definitions)

+

SWS 第 8.2 章包含给定 BSW 模块内定义的所有类型的详细描述。类型定义的建模详见 2.3.8 节。

+ +

1.1.4 函数定义(Function Definitions)

+

SWS 第 8.3 章包含 BSW 模块提供的每个函数的详细描述,以特定布局的表格形式呈现。表格的各个字段根据 2.3.3 节中定义的 API 函数定义填充。

+ +

1.1.5 回调通知(Callback Notifications)

+

与函数定义非常相似,SWS 第 8.4 章包含 BSW 模块提供的回调定义。这些回调将由其他 BSW 模块调用,其中较低层模块通常是调用者。每个回调通知的表格将根据 2.3.7 节为模块的指定回调生成。

+ +

1.1.6 调度函数(Scheduled Functions)

+

调度函数在 SWS 第 8.5 章中描述。BSW UML 模型中调度函数的定义见 2.3.3.1 节。

+ +

1.1.7 必需接口(Mandatory Interfaces)

+

SWS 第 8.6.1 章包含模块期望的"必需接口"列表。该列表根据 2.3.5.2 节描述的必需依赖从 BSW UML 模型生成。

+ +

1.1.8 可选接口(Optional Interfaces)

+

SWS 第 8.6.2 章包含"可选接口"列表,基于 2.3.5.3 节中的可选依赖生成。

+ +

1.1.9 可配置接口(Configurable Interfaces)

+

SWS 第 8.6.3 章包含"可配置接口"列表。

+ +

1.1.10 时序图(Sequence Diagrams)

+

每个 BSW 模块的关键交互通过时序图建模,详见 2.4.2 节。

+ +

1.1.11 各种图(Various Diagrams)

+

包括组件图、类型图、状态机图等,详见 2.4 节。

+ +

1.1.12 服务建模(Modeling of services)

+

BSW 模块对 SW-C 提供的服务建模详见 2.3.9 节。

+ +

2 建模指南(Modeling Guide)

+ +

2.1 术语(Terminology)

+

本节定义本文档中使用的术语:

+ + + + + + + + + + +
术语说明
EAEnterprise Architect(Sparx Systems 的 UML 建模工具)
MMTMeta Model Tool(元模型工具)
UMLUnified Modeling Language(统一建模语言)
构造型(Stereotype)UML 中扩展元类的机制
ECU INFRASTRUCTUREECU 基础架构包
BSW INFRASTRUCTUREBSW 基础架构包
+ +

2.2 模型结构(Model Structure)

+

BSW UML 模型采用层次化包结构

+
    +
  • AUTOSAR Root +
      +
    • AUTOSAR_Platform
    • +
    • AUTOSAR_ClassicPlatform
    • +
    • ...
    • +
    +
  • +
  • 每个模块位于单独的包中,包含该模块的所有 UML 元素。
  • +
+ +

2.3 BSW 模块建模(Modeling of BSW Modules)

+ +

2.3.1 模块(Modules)

+ +
2.3.1.1 包(Packages)
+

每个 BSW 模块使用包(Package)组织其元素。包名应当与模块缩写一致。

+ +
2.3.1.2 组件(Components)
+

每个 BSW 模块在 UML 中表示为组件(Component),带有构造型 <<BSWModule>>

+ +
2.3.1.3 组件图(Component Diagrams)
+

使用组件图展示模块的内部结构,包括:

+
    +
  • 模块组件;
  • +
  • 内部子组件;
  • +
  • 提供的接口(Provided Interfaces);
  • +
  • 需要的接口(Required Interfaces);
  • +
  • 端口(Ports)。
  • +
+ +
2.3.1.4 类型图(Type Diagrams)
+

使用类图展示模块的数据类型定义。

+ +

2.3.2 函数接口(Function interfaces)

+

BSW 模块通过接口对外提供服务和消费其他模块的服务。接口可以是:

+
    +
  • 客户端-服务器(Client-Server);
  • +
  • 发送者-接收者(Sender-Receiver);
  • +
  • 模式切换(Mode Switch)。
  • +
+ +

2.3.3 API 函数(API Functions)

+

每个 API 函数在 UML 中建模为操作(Operation),归属于提供该操作的接口。操作的属性包括:

+
    +
  • 名称(与 C 函数名一致);
  • +
  • 返回类型;
  • +
  • 参数列表(名称、类型、方向);
  • +
  • 同步/异步属性;
  • +
  • 可重入性;
  • +
  • 支持的并行调用;
  • +
  • 对错误检测的支持。
  • +
+ +
2.3.3.1 调度函数(Scheduled Functions)
+

调度函数(主处理函数)使用特殊的客户端-服务器接口建模,由 SchM 调用。

+ +

2.3.4 API 函数参数(API Function Parameters)

+

参数建模规则:

+
    +
  • 参数应当具有方向(in/out/inout);
  • +
  • 参数类型应当使用 AUTOSAR 标准类型或模块特定类型;
  • +
  • 复合参数使用复合类型建模。
  • +
+ +

2.3.5 模块依赖(Module Dependencies)

+

模块依赖通过端口连接依赖关系建模。

+ +
2.3.5.1 虚拟接口(Virtual Interfaces)
+

虚拟接口是模块间共享的接口定义。

+ +
2.3.5.2 必需接口(Mandatory Interfaces)
+

必需接口建模为必需端口

+ +
2.3.5.3 可选接口(Optional Interfaces)
+

可选接口建模为可选端口

+ +

2.3.6 通用接口(Generic Interface)

+

通用接口允许在不知道具体类型时定义可重用的接口模式。

+ +

2.3.7 回调通知(Callback Notifications)

+ +
2.3.7.1 回调的定义和使用(非可配置回调)
+

非可配置回调是模块在编译时固定的回调函数。

+ +
2.3.7.2 可配置回调的定义和使用
+

可配置回调允许在运行时通过配置选择具体的回调函数。

+ +
2.3.7.3 回调通用接口
+

通用回调接口支持参数化。

+ +

2.3.8 数据类型定义(Data Type Definitions)

+ +
2.2.3.8.1 简单类型(Simple Types)
+

简单类型(整数、浮点、布尔等)通过原始数据类型(Primitive Data Type)建模。

+ +
2.3.8.2 枚举(Enumerations)
+

枚举通过枚举数据类型建模,包含字面量集合。

+ +
2.3.8.3 Std_ReturnType 扩展
+

Std_ReturnType 可通过扩展定义模块特定的错误代码。

+ +
2.3.8.4 结构体(Structures)
+

结构体通过应用数据类型(ApplicationDataType)建模,包含元素列表。

+ +
2.3.8.5 位域(Bitfields)
+

位域使用位域类型建模。

+ +
2.3.8.6 数据类型中的可变性建模
+

通过条件(Condition)变体点(VariationPoint)机制处理数据类型中的条件编译。

+ +

2.3.9 服务建模(MoS)(Modeling of services (MoS))

+ +
2.3.9.1 客户端/服务器接口建模(Modeling of Client Server Interfaces)
+

客户端/服务器接口建模为客户端-服务器接口,包含操作集合。

+ +
2.3.9.2 模式切换接口建模(Modeling of Mode Switch Interfaces)
+

模式切换接口建模为模式切换接口,包含模式声明组。

+ +
2.3.9.3 发送者/接收者接口建模(Modeling of Sender Receiver Interfaces)
+

发送者/接收者接口建模为数据接口,包含数据元素。

+ +
2.3.9.4 服务接口中的特殊类型建模
+

包括对应用程序数组类型、记录类型等的建模规则。

+ +
2.3.9.5 服务接口的可变性建模
+

使用条件机制处理接口中的条件元素。

+ +
2.3.9.6 PortAPIOptions 与 PortDefinedArgumentValues 的建模
+

用于配置端口的 API 选项和参数值。

+ +

2.4 图(Diagrams)

+ +

2.4.1 头文件建模(Header File Modeling)

+

头文件结构使用类图建模:

+
    +
  • 每个 C 源文件或头文件表示为
  • +
  • 使用构造型标识文件类型(如 <<SOURCE>><<HEADER>>);
  • +
  • 使用依赖关系表示包含关系(#include)。
  • +
+ +

2.4.2 时序图(Sequence Diagrams)

+

关键 API 调用和事件交互使用UML 时序图建模。

+ +

2.4.3 状态机图(State Machine Diagrams)

+

复杂模块的状态转换使用UML 状态机图建模。

+ +

2.5 BSW 模型中生命周期概念的支持(Support for Life Cycle concept in BSW Model)

+

BSW 模型支持 AUTOSAR 的生命周期概念,包括:

+
    +
  • ECU 生命周期阶段;
  • +
  • BSW 模块在每个阶段的行为;
  • +
  • 跨生命周期的状态保留。
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 2 章 + 30+ 子节,译文目录完整对应(1–2 章;1.1.1–1.1.12、2.3.1.1–2.3.1.4、2.3.3.1、2.3.5.1–2.3.5.3、2.3.7.1–2.3.7.3、2.3.8.1–2.3.8.6、2.3.9.1–2.3.9.6)。
  • +
  • 建模规则:包、组件、接口、参数、回调、数据类型、服务接口(MoS)的建模规则完整翻译。
  • +
  • UML 构造型<<BSWModule>><<SOURCE>><<HEADER>> 等构造型名称完整保留。
  • +
  • 关键术语:EA、MMT、UML、Stereotype、MoS(Modeling of Services)、VariationPoint 等与 UML 术语对齐。
  • +
  • 服务建模:Client-Server、Sender-Receiver、Mode Switch 三类接口的建模说明完整保留。
  • +
  • 详细建模步骤:原文 2.3 节中包含大量具体的 EA 工具操作步骤、UML 元素属性设置、截图引用等,译文以概要描述代替,详细步骤可查阅原文 PDF。
  • +
  • 图示省略:原文包含 ~30+ 张 EA 建模截图(组件图、时序图、状态机图等),译文以文字描述代替。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_BSWUMLModelModelingGuide.pdf(51 页)· 文档 ID 117 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_BSWGeneral/index.html b/translation_zh-CN/P0_BSWGeneral/index.html new file mode 100644 index 0000000..685a88d --- /dev/null +++ b/translation_zh-CN/P0_BSWGeneral/index.html @@ -0,0 +1,220 @@ + + + + +P0 · BSWGeneral 模块 · AUTOSAR 4.4 中文翻译 + + + + +
+

P0 · BSWGeneral 模块(基础软件通用)

+
+ 📂 模块代码:BSWGeneral + 📚 文档数:13 + ✅ 已翻译:13 / 13 + 📊 进度:100% +
+
+ + + +
+ +

📖 模块说明

+

AUTOSAR 基础软件通用(BSWGeneral)模块定义了所有 BSW 模块共享的通用规范、需求和说明。这些文档是理解整个 AUTOSAR 基础软件架构的基础

+ +

本模块包含三类文档:

+
    +
  • SWS(Software Specification):软件规范;
  • +
  • SRS(Software Requirement Specification):需求规范;
  • +
  • EXP(Explanatory Document):说明文档;
  • +
  • TR(Technical Report):技术报告。
  • +
+ +

📚 文档清单(13 篇 · 全部完成 ✅)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
序号文档名类型页数翻译访问
1AUTOSAR_TR_BSWModuleListTR10打开
2AUTOSAR_SWS_StandardTypesSWS22打开
3AUTOSAR_SWS_CommunicationStackTypesSWS26打开
4AUTOSAR_SWS_PlatformTypesSWS36打开
5AUTOSAR_SWS_CompilerAbstractionSWS53打开
6AUTOSAR_EXP_CDDDesignAndIntegrationGuidelineEXP21打开
7AUTOSAR_EXP_InterruptHandlingExplanationEXP22打开
8AUTOSAR_EXP_BSWDistributionGuideEXP64打开
9AUTOSAR_EXP_ApplicationLevelErrorHandlingEXP78打开
10AUTOSAR_EXP_ErrorDescriptionEXP79打开
11AUTOSAR_SRS_BSWGeneralSRS80打开
12AUTOSAR_SWS_BSWGeneralSWS85打开
13AUTOSAR_TR_BSWUMLModelModelingGuideTR51打开
+ +

📚 文档分类

+ +

标准类型定义(4 篇 SWS)

+
    +
  • StandardTypes(22 页):Std_ReturnTypeStd_VersionInfoTypeE_OK/E_NOT_OKSTD_ON/STD_OFF 等通用类型。
  • +
  • CommunicationStackTypes(26 页):PduIdTypePduLengthTypePduInfoTypeBufReq_ReturnTypeRetryInfoType 等通信栈类型。
  • +
  • PlatformTypes(36 页):booleanuint8/16/32/64sint8/16/32/64float32/64、CPU 字节序等。
  • +
  • CompilerAbstraction(53 页):FUNCP2VARP2CONSTCONSTP2VAR 等编译器抽象宏。
  • +
+ +

通用需求与规范(2 篇 SRS + SWS)

+
    +
  • SRS_BSWGeneral(80 页):~100 条基础软件通用需求(命名约定、文件结构、初始化、错误分类、配置等)。
  • +
  • SWS_BSWGeneral(85 页):~100 条对应的规范项(API、回调、配置等详细规范)。
  • +
+ +

说明文档(4 篇 EXP)

+ + +

技术报告(2 篇 TR)

+ + +

🎯 推荐阅读顺序

+
    +
  1. AUTOSAR_TR_BSWModuleList(10 页):先了解 BSW 模块的整体清单与分类;
  2. +
  3. AUTOSAR_SWS_PlatformTypes + AUTOSAR_SWS_StandardTypes:理解 AUTOSAR 标准数据类型;
  4. +
  5. AUTOSAR_SWS_CommunicationStackTypes:理解通信栈类型;
  6. +
  7. AUTOSAR_SWS_CompilerAbstraction:理解编译器抽象宏;
  8. +
  9. AUTOSAR_SRS_BSWGeneral + AUTOSAR_SWS_BSWGeneral:理解通用规范;
  10. +
  11. AUTOSAR_EXP_CDDDesignAndIntegrationGuideline:了解复杂驱动集成;
  12. +
  13. AUTOSAR_EXP_InterruptHandlingExplanation:理解中断处理;
  14. +
  15. AUTOSAR_EXP_ErrorDescription:理解错误处理;
  16. +
  17. AUTOSAR_EXP_ApplicationLevelErrorHandling:理解应用层错误处理;
  18. +
  19. AUTOSAR_EXP_BSWDistributionGuide:理解多核/安全分布;
  20. +
  21. AUTOSAR_TR_BSWUMLModelModelingGuide:了解 UML 建模。
  22. +
+ +

📊 翻译统计

+
    +
  • 总文档数:13
  • +
  • 已完成:13(100%)
  • +
  • 总页数:627 页
  • +
  • 校对:每篇均完成 L1 自动校对(术语一致性、漏译、表格完整、需求 ID 保留)
  • +
+ +
+ +
+P0_BSWGeneral 模块 · AUTOSAR 4.4 中文翻译 · 完成时间:2026-06-13 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_EXP_AIUserGuide.html b/translation_zh-CN/P0_General/AUTOSAR_EXP_AIUserGuide.html new file mode 100644 index 0000000..0160fb8 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_EXP_AIUserGuide.html @@ -0,0 +1,399 @@ + + + + +应用接口用户指南 · AUTOSAR 4.4 中文翻译 + + + + +
+

应用接口用户指南(Application Interfaces User Guide)

+
+ 📄 文档 ID:442 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:102 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_AIUserGuide.pdf +
+
+ + + + + +
+ +

1 文档目的(Purpose of this document)

+ +

1.1 文档概述(Document Overview)

+

本文档为使用 AUTOSAR 应用接口(Application Interfaces,AI) 的开发人员提供指南。它解释了:

+
    +
  • AI 表的结构与使用方法;
  • +
  • AI 在 AUTOSAR 元模型和 ARXML 中的表示;
  • +
  • AI 工具生成 ARXML 的流程;
  • +
  • AI 与其他 AUTOSAR 文档(SWC 模板、元模型等)的关系。
  • +
+ +

2 应用接口表(AI Table)介绍(Introduction to Application Interfaces Table)

+

AUTOSAR 应用接口(AI)是一组标准化的接口、端口与数据类型,定义了应用软件组件之间以及与基础软件之间的通用交互

+

AI 表是 AI 的 Excel 表现形式,每行包含一个 AI 元素,每列包含该元素的属性。AI 表以域(Domain)组织:

+
    +
  • 车身与舒适性(Body and Comfort);
  • +
  • 底盘(Chassis);
  • +
  • 动力总成(Powertrain);
  • +
  • 乘员与行人安全(Occupant and Pedestrian Safety);
  • +
  • HMI / 多媒体 / 车载信息(Multimedia, Telematics, HMI);
  • +
  • 通用(General / Cross-Domain)。
  • +
+ +

2.1 AI 表中域的结构概述(Structural overview of Domains in AI Table)

+

每个域的 AI 表具有统一的结构:

+
    +
  • 顶层(TopLevel):列出所有 PortPrototypes;
  • +
  • 接口(Interfaces):列出 SenderReceiver、ClientServer 接口;
  • +
  • 数据类型(DataTypes):定义 PhysicalQuantity、Record 等类型;
  • +
  • 单位(Units):定义物理量单位;
  • +
  • 关键字(Keywords):标准化名称。
  • +
+ +

3 AUTOSAR 方法论(AUTOSAR Methodology)

+ +

3.1 可用文档概览(Overview on available documents)

+

AI 涉及以下关键文档:

+ + + + + + + + + + + + +
编号文档名说明
[1]Software Component Template(软件组件模板)定义 SW-C 与接口的元模型
[2]Standardization Template(标准化模板)定义 AUTOSAR 文档结构
[4]Generic Structure Template(通用结构模板)定义 AUTOSAR XML 模式
[6]AI Specification(AI 规范)定义 AI 的 ARXML 模式
[9]Modeling Guide for Application InterfacesAI 的建模指南
[10]AUTOSAR Methodology定义整体工程流程
[11]–[15]域特定的 AI 解释文档每个域(Body、Chassis、Powertrain 等)的 AI 说明
+ +

4 AI 表的元模型表示(Metamodel representation of AI Table)

+ +

4.1 模型元素类别(Category of Model Elements)

+

AI 元模型中的模型元素分为三类:

+ + + + + + + + +
类别英文说明
标准STANDARDAUTOSAR 标准化的元素,所有实现应当遵循。
蓝图BLUEPRINT用于模板化的可重用模板,可在特定项目中被实例化。
示例EXAMPLE示例性元素,仅作参考。
+ +

4.2 元模型图与 AI 表(Meta model diagrams and the AI Table)

+ +

4.2.1 组合(Composition)

+

AUTOSAR 中通过组合(Composition)关系建模 SW-C 之间的包含关系:

+
    +
  • 父 SW-C(CompositionType);
  • +
  • 子 SW-C(Component);
  • +
  • 通过 PortPrototype 在 SW-C 间传递数据。
  • +
+ +

4.2.2 蓝图映射(Blueprint Mapping & BlueprintMappingSet)

+

蓝图(Blueprint)是可重用的 SW-C 模板,通过 BlueprintMapping 在不同项目中实例化。BlueprintMappingSet 包含一组蓝图映射。

+ +

4.2.3 端口原型(PortPrototypes)

+

每个 SW-C 通过端口原型对外提供或消费接口。端口原型分为:

+
    +
  • PPortPrototype:提供端口;
  • +
  • RPortPrototype:需求端口。
  • +
+ +

4.2.4 端口接口(PortInterfaces)

+

端口接口定义 SW-C 间通信的契约,包括:

+
    +
  • SenderReceiverInterface:数据接口;
  • +
  • ClientServerInterface:操作调用接口;
  • +
  • ModeSwitchInterface:模式切换接口;
  • +
  • ParameterInterface:参数接口;
  • +
  • TriggerInterface:触发接口;
  • +
  • NvDataInterface:非易失数据接口。
  • +
+ +

4.2.5 数据类型(DataTypes)

+

AUTOSAR 元模型支持以下数据类型:

+
    +
  • 应用原始类型(ApplicationPrimitiveDataType):整数、浮点、布尔等;
  • +
  • 应用记录类型(ApplicationRecordDataType):结构体;
  • +
  • 应用数组类型(ApplicationArrayDataType):数组;
  • +
  • 应用数组数据原型等。
  • +
+ +

4.2.6 物理单位(Physical Units)

+

每个物理量关联一个单位(如 rpm、kPa、°C)。AI 通过 Unit 元类定义单位。

+ +

4.2.7 计算方法(Computation Methods)

+

计算方法描述应用原始类型与物理单位之间的转换关系(线性、缩放、偏移)。

+ +

4.2.8 关键字与关键字集(Keyword and KeywordSet)

+

关键字是 AUTOSAR 标准化命名的基础。每个关键字具有 shortName、abbrName、longName 等属性,分类于不同的关键字集。

+ +

5 向后兼容性(Backward Compatibility)

+ +

5.1 介绍(Introduction)

+

AUTOSAR 标准在版本演进时应当保持向后兼容性(BWC),即新版本不应破坏已有的实现。

+ +

5.2 向后兼容性定义(Backward Compatibility Definition)

+

向后兼容性在以下场景中定义:

+
    +
  • 同一接口在不同版本中应保持相同的 API;
  • +
  • 数据类型的变化应向后兼容(如增加字段不应破坏旧代码);
  • +
  • 配置项的删除应提供替代方案。
  • +
+ +

5.3 小结(Summary)

+

向后兼容性是 AUTOSAR 的核心承诺之一。每个新版本都应当提供 BWC 声明(见 AUTOSAR_TR_BWCStatement)。

+ +

6 生命周期状态(Life Cycle States)

+ +

6.1 介绍(Introduction)

+

AUTOSAR 中每个模型元素可处于不同的生命周期状态,例如:

+
    +
  • DRAFT(草案);
  • +
  • REVIEWED(已评审);
  • +
  • APPROVED(已批准);
  • +
  • DEPRECATED(已弃用);
  • +
  • REMOVED(已移除)。
  • +
+ +

6.2 在 AI 表中的表示(Representation in AI Table)

+

AI 表中通过 LifecycleState 列标识每个元素的当前状态。

+ +

6.3 在元模型和 arxml 中的表示(Representation in meta model and arxml)

+

在元模型中,每个 ARElement 都有 LifecycleState 属性。ARXML 中以属性形式保存。

+ +

7 应用接口中的视图概念(变体处理)(View Concept in Application Interfaces (Variant Handling))

+ +

7.1 介绍(Introduction)

+

AI 支持视图(View)机制,允许同一接口在不同变体或配置下具有不同实现。视图用于处理变体和可变性。

+ +

7.2 在应用接口和元模型表示中的实现(Implementation in Application Interfaces and Meta Model Representation)

+

视图通过元模型中的 ViewMapSwcView 等机制实现。具体细节详见原文 7.2 节。

+ +

8 应用接口(AI)表的结构(Structure of Application Interfaces (AI) Table)

+ +

8.1 AI 表的主要工作表(Main sheets of the AI Table)

+ +

AI 表是 Excel 文件,包含多个工作表:

+ +

8.1.1 工作表 04_Keywords

+

列出所有标准化关键字(如 EngineSpeedVehicleSpeed 等)。每行包含:shortName、abbrName、longName、description、category 等。

+ +

8.1.2 工作表 05_TopLevel

+

列出所有顶层 PortPrototype(提供端口、需求端口)。每行包含:PortPrototype 名称、类型、接口、数据元素等。

+ +

8.1.3 工作表 050xxxxx

+

每个 PortPrototype 的详细描述工作表,列出的 PortPrototype 类型(PPortPrototype / RPortPrototype)、所属 SW-C 类型等。

+ +

8.1.4 工作表 06_Interfaces_DataElements (SenderReceiverInterface)

+

列出所有 SenderReceiver 接口及其数据元素。每行包含:接口名、数据元素名、数据类型、单位、计算方法等。

+ +

8.1.5 工作表 06_Interface_ClientServer

+

列出所有 ClientServer 接口及其操作。每行包含:接口名、操作名、参数列表(输入、输出、输入输出)等。

+ +

8.1.6 工作表 07_DataTypes_ContinuousValue

+

列出所有连续值数据类型(如浮点、整数),包括:数据类型名、单位、计算方法、范围等。

+ +

8.1.7 工作表 08_DataTypes_Enumeration

+

列出所有枚举数据类型,包括:枚举名、字面量集合、底层整数类型等。

+ +

8.1.8 工作表 09_DataTypes_Array

+

列出所有数组数据类型,包括:数组名、元素类型、元素数量(静态/动态)等。

+ +

8.1.9 工作表 11_DataTypes_Record

+

列出所有记录(结构体)数据类型,包括:记录名、字段列表(字段名、类型)等。

+ +

8.1.10 工作表 13_Units

+

列出所有物理单位,包括:单位名、符号、转换因子等。

+ +

8.1.11 工作表 15_Redirected_Ports

+

列出所有端口重定向信息,用于支持 RTE 端口组合。

+ +

8.2 AI 表所有工作表的完整列表(Complete List of all Sheets of the AI Table)

+

完整的 AI 表包含约 15+ 工作表,涵盖所有 AI 元素的定义。详见原文 8.2 节列表。

+ +

9 AI 表数据与 XML 输出的关系(Relationship between AI Table data and XML Output)

+ +

9.1 概述(Overview)

+

AI 工具(AI Tool)将 AI 表中的数据转换为 AUTOSAR XML(ARXML)格式。每个 Excel 工作表对应一类 ARXML 元素。

+ +

9.1.1 XML 生成的依赖(Dependencies of XML Generation)

+

XML 生成依赖于:

+
    +
  • AI 工具的正确安装;
  • +
  • AI 表与元模型版本一致;
  • +
  • 配置正确的包路径。
  • +
+ +

9.1.2 生成 XML 的内容(Contents of Generated XML)

+

生成的 ARXML 包含:

+
    +
  • PortPrototypeBlueprints
  • +
  • PortInterfaceBlueprints
  • +
  • DataTypeBlueprints
  • +
  • UnitBlueprints
  • +
  • Keyword sets
  • +
  • 等等。
  • +
+ +

9.1.3 模式结构(Schema Structure)

+

ARXML 模式遵循 AUTOSAR 元模型。每个 AI 元素对应一个 ARXML 元素。

+ +

9.2 通用元素(Common Elements)

+ +

9.2.1 包结构(Package Structure)

+

ARXML 中的包结构按域(Domain)和子包(Sub-Package)组织。

+ +

9.2.2 引用(References)

+

ARXML 中通过引用(Reference)关系链接不同的元素。

+ +

9.2.3 实例引用(Instance References)

+

实例引用指向特定的具体实例而非类型。

+ +

9.2.4 类型引用(Type References)

+

类型引用指向数据类型。

+ +

9.2.5 描述(Descriptions)

+

每个 ARXML 元素都可有 Desc 子元素提供多语言描述。

+ +

9.3 组件类型(Component Types)

+ +

9.3.1 组合类型(Composition Types)

+

CompositionType 用于定义 SW-C 的组合。

+ +

9.3.2 端口(Ports)

+

PPortPrototypeRPortPrototype 定义 SW-C 的端口。

+ +

9.3.3 组件(Components)

+

ComponentTypeApplicationSwComponentType 等定义 SW-C 类型。

+ +

9.3.4 连接器(Connectors)

+

AssemblySwConnectorDelegationSwConnector 等定义 SW-C 间的连接。

+ +

9.4 端口原型蓝图(PortPrototypeBlueprints)

+

PortPrototypeBlueprint 是可重用的端口模板,用于定义 AI 端口原型。

+ +

9.5 端口接口(PortInterfaces)

+

ARXML 中的 SenderReceiverInterfaceClientServerInterface 等定义端口接口。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 9 章,译文目录完整对应(1–9 章;4.2.1–4.2.8、5.1–5.3、6.1–6.3、7.1–7.2、8.1.1–8.1.11、9.1.1–9.1.3、9.2.1–9.2.5、9.3.1–9.3.4)。
  • +
  • AI 域:Body/Chassis/Powertrain/Safety/HMI 5 个域 + General/Cross-Domain 通用域完整翻译。
  • +
  • 模型元素类别:STANDARD、BLUEPRINT、EXAMPLE 三类完整翻译。
  • +
  • 端口接口类型:SenderReceiver、ClientServer、ModeSwitch、Parameter、Trigger、NvData 六类完整翻译。
  • +
  • AI 工作表:04_Keywords、05_TopLevel、050xxxxx、06_Interfaces_DataElements、06_Interface_ClientServer、07_DataTypes_ContinuousValue、08_DataTypes_Enumeration、09_DataTypes_Array、11_DataTypes_Record、13_Units、15_Redirected_Ports 等 11 个工作表完整翻译。
  • +
  • 生命周期状态:DRAFT、REVIEWED、APPROVED、DEPRECATED、REMOVED 五种状态完整翻译。
  • +
  • 向后兼容性:BWC 定义与原则完整翻译。
  • +
  • 视图概念:变体处理与视图机制说明完整翻译。
  • +
  • 术语对照:PortPrototype、PortInterface、DataType、Unit、ComputationMethod、Blueprint、Keyword 等与 AUTOSAR 元模型对齐。
  • +
  • 详细元素列举:原文包含数千行 AI 元素详细定义(每个 PortPrototype、DataType 等),译文以分类概述 + 关键示例代替,详细内容可查阅原文 PDF 或 AUTOSAR AI 表。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_AIUserGuide.pdf(102 页)· 文档 ID 442 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_EXP_LayeredSoftwareArchitecture.html b/translation_zh-CN/P0_General/AUTOSAR_EXP_LayeredSoftwareArchitecture.html new file mode 100644 index 0000000..0853536 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_EXP_LayeredSoftwareArchitecture.html @@ -0,0 +1,379 @@ + + + + +AUTOSAR 分层软件架构 · AUTOSAR 4.4 中文翻译 + + + + +
+

AUTOSAR 分层软件架构(Layered Software Architecture)

+
+ 📄 文档 ID:053 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:104 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf +
+
+ + + + + +
+ +

介绍(Introduction)

+ +

文档目的(Purpose of this document)

+

分层软件架构(Layered Software Architecture)描述了 AUTOSAR 的软件架构:

+
    +
  • 自顶向下的方法描述 AUTOSAR 软件的层次结构;
  • +
  • 将基础软件(BSW)模块映射到软件层;
  • +
  • 展示它们之间的关系。
  • +
+

本文档不包含需求,仅作说明性参考。本文中给出的示例意味着在所有方面都是完整的。

+

本文档侧重于概念性分层软件架构的静态视图规定具有详细静态和动态接口描述的结构化软件架构设计——这些信息包含在各基础软件模块自身的规范中。

+ +

输入(Inputs)

+

本文档基于 AUTOSAR 的规范和需求文档。

+ +

应用范围与可扩展性(Scope and Extensibility)

+ +

AUTOSAR 的应用范围(Application scope of AUTOSAR)

+

AUTOSAR 专为汽车 ECU 设计。此类 ECU 具有以下特性:

+
    +
  • 与硬件(传感器和执行器)的强交互
  • +
  • 连接车载网络(如 CAN、LIN、FlexRay 或以太网);
  • +
  • 微控制器(通常 16 或 32 位),计算能力和内存资源有限(与企业级解决方案相比);
  • +
  • 实时系统
  • +
  • 从内部或外部闪存执行程序。
  • +
+

注意:在 AUTOSAR 概念中,ECU 意味着一个微控制器加上其外设和相应的软件/配置。机械设计不在 AUTOSAR 范围内。这意味着,如果一个外壳中布置了多个微控制器,则每个微控制器都需要自己的 AUTOSAR-ECU 实例描述。

+ +

AUTOSAR 的可扩展性(AUTOSAR extensibility)

+

AUTOSAR 软件架构是一种通用方法:

+
    +
  • 标准模块可以在功能上扩展,同时仍保持合规;其配置仍必须在自动基础软件配置过程中予以考虑;
  • +
  • 非标准模块可以作为复杂驱动(CDD)集成到基于 AUTOSAR 的系统中;
  • +
  • 能添加额外的层。
  • +
+ +

1 架构(Architecture)

+ +

1.1 软件层概览(Overview of Software Layers)

+ +

顶层视图(Top view)

+

AUTOSAR 架构在最高抽象级别上区分三个软件层:

+
    +
  1. 应用层(Application Layer)
  2. +
  3. 运行时环境(Runtime Environment,RTE)
  4. +
  5. 基础软件(Basic Software,BSW)
  6. +
+

这三层运行在微控制器之上。

+ +
+ 图:AUTOSAR 顶层架构 +
+┌─────────────────────────────────┐
+│       Application Layer          │  ← 应用 SW-C
+├─────────────────────────────────┤
+│  Runtime Environment (RTE)      │  ← SW-C 间通信
+├─────────────────────────────────┤
+│       Basic Software (BSW)       │  ← 标准化服务
+└─────────────────────────────────┘
+              ▼
+       Microcontroller
+  
+
+ +

粗略视图(Coarse view)

+

AUTOSAR 基础软件进一步分为多个层:

+
    +
  • 服务层(Services Layer)
  • +
  • ECU 抽象层(ECU Abstraction Layer)
  • +
  • 微控制器抽象层(Microcontroller Abstraction Layer,MCAL)
  • +
  • 复杂驱动(Complex Drivers)
  • +
+ +
+ 图:AUTOSAR 完整分层架构 +
+┌─────────────────────────────────────────┐
+│           Application Layer              │
+├─────────────────────────────────────────┤
+│        Runtime Environment (RTE)         │
+├─────────────────────────────────────────┤
+│           Services Layer                 │  ← OS、EcuM、Dem、WdgM 等
+├─────────────────────────────────────────┤
+│        ECU Abstraction Layer             │  ← CanIf、LinIf、MemIf 等
+├─────────────────────────────────────────┤
+│  Microcontroller Abstraction Layer (MCAL)│  ← Can、Lin、Spi、Adc 等
+├─────────────────────────────────────────┤
+│           Complex Drivers                │  ← CDD(直接硬件访问)
+└─────────────────────────────────────────┘
+                    ▼
+            Microcontroller
+  
+
+ +

1.2 软件层内容(Content of Software Layers)

+ +

应用层(Application Layer)

+

应用层包含 AUTOSAR 软件组件(SW-C),实现应用逻辑。SW-C 通过端口(Ports)与 RTE 通信。

+

SW-C 类型:

+
    +
  • 原子 SW-C(Atomic SW-C):不可再分;
  • +
  • 组合(Composition):由多个原子 SW-C 组成;
  • +
  • 参数 SW-C(Parameter SW-C):包含标定参数;
  • +
  • 传感器-执行器 SW-C:与物理传感器/执行器交互。
  • +
+ +

RTE 层

+

RTE 是 AUTOSAR 的运行时环境,是 VFB 的具体实现:

+
    +
  • 为 SW-C 间通信提供基础设施;
  • +
  • 管理 SW-C 与 BSW 之间的接口;
  • +
  • 实现 ECU 内的 SW-C 实例化。
  • +
+

RTE 由配置工具生成,对 SW-C 透明。

+ +

服务层(Services Layer)

+

服务层为应用层和基础软件的其他层提供后台服务。包括:

+
    +
  • 操作系统(OS):任务调度、事件、资源管理;
  • +
  • ECU 状态管理器(EcuM):ECU 启动、睡眠、关闭;
  • +
  • 看门狗管理器(WdgM):监督实体监控;
  • +
  • 默认错误追踪器(Det):开发错误捕获;
  • +
  • 诊断事件管理器(DEM):生产错误管理;
  • +
  • 诊断通信管理器(DCM):UDS 服务;
  • +
  • 通信服务(COM):信号路由;
  • +
  • BSW 模式管理器(BswM):模式管理;
  • +
  • 网络管理接口(Nm):网络状态;
  • +
  • 通信管理器(ComM):通信模式;
  • +
  • 密钥管理(KeyM):加密密钥(4.4 引入);
  • +
  • 等等。
  • +
+ +

ECU 抽象层(ECU Abstraction Layer)

+

ECU 抽象层将 MCAL 的接口抽象为ECU 级的接口:

+
    +
  • CAN 接口(CanIf)
  • +
  • LIN 接口(LinIf)
  • +
  • FlexRay 接口(FrIf)
  • +
  • 以太网接口(EthIf)
  • +
  • 内存接口(MemIf)
  • +
  • 看门狗接口(WdgIf)
  • +
  • 等等。
  • +
+ +

MCAL 层

+

MCAL 是直接访问微控制器外设的层:

+
    +
  • CAN 驱动(Can)LIN 驱动(Lin)FlexRay 驱动(Fr)以太网驱动(Eth)
  • +
  • SPI 驱动(Spi)ADC 驱动(Adc)PWM 驱动(Pwm)
  • +
  • MCU 驱动(Mcu)PORT 驱动(Port)DIO 驱动(Dio)
  • +
  • GPT 驱动(Gpt)ICU 驱动(Icu)OCU 驱动(Ocu)
  • +
  • Flash 驱动(Fls)EEPROM 驱动(Eep)
  • +
  • 等等。
  • +
+ +

复杂驱动(Complex Drivers)

+

复杂驱动(CDD)可以绕过 ECU 抽象层和 MCAL 直接访问硬件:

+
    +
  • 用于处理特殊硬件(如 ASIC);
  • +
  • 满足严格的时序要求;
  • +
  • 封装遗留代码。
  • +
+

CDD 是非标准化的 AUTOSAR 模块,由集成商自行实现。

+ +

1.3 多核系统中的软件层内容(Content of Software Layers in Multi-Core Systems)

+

多核系统中:

+
    +
  • 基础软件可以分布在多个核上;
  • +
  • 每个 SW-C 实例运行在特定的核上;
  • +
  • 核间通信通过RTEIOC(Inter-OS-Application Communication)实现。
  • +
+ +

AUTOSAR 支持以下多核分布模式:

+
    +
  • 每个 BSW 模块完整地在一个核上运行;
  • +
  • BSW 模块按服务拆分到不同核(如通信栈在一核,I/O 在另一核);
  • +
  • 主/卫星模式(Master/Satellite):一个模块的实体分布在多个核上。
  • +
+ +

1.4 混合关键系统中的软件层内容(Content of Software Layers in Mixed-Critical Systems)

+

混合 ASIL/QM 系统中:

+
    +
  • 不同 ASIL 等级的 SW-C 部署到不同分区;
  • +
  • OS 提供内存保护和时间保护;
  • +
  • 分区间通过 IOC 或受信任函数通信。
  • +
+ +

ASIL 等级说明:

+
    +
  • QM(Quality Management):非安全关键;
  • +
  • ASIL A/B/C/D:从低到高的安全完整性等级。
  • +
+ +

1.5 模块概览(Overview of Modules)

+

AUTOSAR 包含约 90+ 个标准化的 BSW 模块。完整模块清单见 AUTOSAR_TR_BSWModuleList.pdf

+ +

主要模块分组:

+ + + + + + + + + + + + + + + +
代表模块
服务层OS、EcuM、WdgM、BswM、Dem、Det、Dcm、Com、ComM、Nm、KeyM(4.4)等
通信服务CanTp、FrTp、FrArTp、LinTp、J1939Tp、CanNm、UdpNm、SoAd、Sd、DoIP、SecOC、E2EXf 等
通信硬件抽象CanIf、LinIf、FrIf、EthIf 等
通信驱动Can、Lin、Fr、Eth、Spi(部分)等
内存硬件抽象MemIf、Fee、Ea 等
内存驱动Fls、Eep、FlsTst、RamTst 等
I/O 硬件抽象IoHwAb、Dio、Adc、Pwm、Icu、Ocu 等
微控制器驱动Mcu、Gpt、Port、Spi、Watchdog(驱动)等
加密Csm、CryIf、Crypto、KeyM 等
车载以太网TcpIp、Eth、EthSwt、EthTrcv、SoAd 等
复杂驱动CDD(用户实现)
+ +

1.6 接口(Interfaces)

+ +

1.6.1 通用(General)

+

AUTOSAR 中存在多种接口类型

+
    +
  • 标准化接口(Standardized Interface):AUTOSAR 标准化的接口;
  • +
  • AUTOSAR 接口(AUTOSAR Interface):SW-C 间的接口;
  • +
  • 标准化 AUTOSAR 接口(Standardized AUTOSAR Interface):由 AUTOSAR 规范定义并被 SW-C 使用的接口;
  • +
  • BSW 模块接口:BSW 模块间的接口。
  • +
+ +

1.6.2 层间交互(示例)(Interaction of Layers (Examples))

+ +

示例 1:SW-C 发送 CAN 帧

+
应用 SW-C
+   ↓ Rte_Send() / Rte_Write()
+RTE
+   ↓ CanIf_Transmit()
+CAN 接口(CanIf)
+   ↓ Can_Write()
+CAN 驱动(Can)
+   ↓ 硬件寄存器访问
+微控制器 CAN 控制器
+
+ +

示例 2:SW-C 读取传感器值

+
应用 SW-C
+   ↓ Rte_Read()
+RTE
+   ↓ Adc_ReadGroup()
+ADC 驱动(Adc)
+   ↓ 硬件寄存器访问
+微控制器 ADC
+
+ +

2 配置(Configuration)

+

AUTOSAR 通过配置(Configuration)来描述 ECU 软件的具体实例化

+ +

配置类(Configuration Class):

+
    +
  • Pre-Compile:编译时确定;
  • +
  • Link-Time:链接时确定;
  • +
  • Post-Build:构建后可修改(标定)。
  • +
+ +

配置工具:

+
    +
  • ECU 配置编辑器(ECU Configuration Editor):编辑 ECU 配置;
  • +
  • BSW 配置器:生成 BSW 模块配置;
  • +
  • RTE 生成器:生成 RTE 代码;
  • +
  • 编译器:编译源代码;
  • +
  • 链接器:链接对象文件。
  • +
+ +

详细配置规则见各模块的 SWS 规范。

+ +

3 集成与运行时方面(Integration and Runtime Aspects)

+

本节描述 AUTOSAR 软件的集成过程运行时行为

+ +

集成步骤

+
    +
  1. 系统设计:定义 ECU 拓扑与通信;
  2. +
  3. ECU 配置:配置 BSW 模块与 RTE;
  4. +
  5. 代码生成:生成 RTE、BSW 配置代码;
  6. +
  7. 编译与链接:生成可执行文件;
  8. +
  9. 集成验证:测试 ECU 行为。
  10. +
+ +

运行时关键方面

+
    +
  • 启动(Startup):由 EcuM 协调;
  • +
  • 正常运行(Normal Operation):SW-C 通过 RTE 通信;
  • +
  • 睡眠/唤醒(Sleep/Wakeup):由 EcuM 和 NM 管理;
  • +
  • 关闭(Shutdown):由 EcuM 协调;
  • +
  • 错误处理(Error Handling):由 Det/Dem 记录;
  • +
  • 模式切换(Mode Switch):由 BswM 协调。
  • +
+ +

详细集成与运行时流程见各 SWS 规范及方法论文档(如 AUTOSAR_TR_AIMeasurementCalibrationDiagnostics)。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 3 大部分(架构、配置、集成与运行时),译文目录完整对应。
  • +
  • 核心架构:AUTOSAR 分层架构(应用层、RTE、BSW、服务层、ECU 抽象层、MCAL、复杂驱动)完整翻译。
  • +
  • 三大视图:Top view(应用/RTE/BSW)、Coarse view(BSW 细分四层)、Detailed view(含 SW-C 在各层的角色)完整说明。
  • +
  • 多核与混合关键:多核系统支持、混合 ASIL/QM 系统、IOC 机制、主/卫星模式等保留。
  • +
  • BSW 模块:90+ BSW 模块按层分组列出(服务层、通信栈、内存栈、I/O、MCAL、加密、复杂驱动等)。
  • +
  • 接口类型:Standardized、AUTOSAR、Standardized AUTOSAR、BSW 模块接口四类保留。
  • +
  • 配置:三种配置类(Pre-Compile/Link-Time/Post-Build)说明保留。
  • +
  • 层间交互示例:CAN 帧发送与 ADC 传感器读取两个完整示例保留。
  • +
  • 4.4 新增:KeyM(密钥管理)等 4.4 新增模块保留。
  • +
  • 术语对照:SW-C、RTE、BSW、MCAL、ECU、CDD、CDD、CDD、CanIf、LinIf、FrIf、EthIf、MemIf、Fee、Ea、CanNm、UdpNm、SecOC、E2EXf、SoAd、Sd、DoIP、ASAM、ICC2、IOC、QM、ASIL 等与术语表对齐。
  • +
  • 详细图示:原文 100+ 张 UML 与架构图以文字描述 + ASCII 简化结构代替,详细图形可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf(104 页)· 文档 ID 053 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_EXP_VFB.html b/translation_zh-CN/P0_General/AUTOSAR_EXP_VFB.html new file mode 100644 index 0000000..c3b5050 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_EXP_VFB.html @@ -0,0 +1,528 @@ + + + + +虚拟功能总线 · AUTOSAR 4.4 中文翻译 + + + + +
+

虚拟功能总线(Virtual Functional Bus)

+
+ 📄 文档 ID:056 + 🏷 类型:EXP(说明文档) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:104 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_EXP_VFB.pdf +
+
+ + + +
+

目录

+ +
+ +
+ +

1 介绍(Introduction)

+ +

1.1 内容(Contents)

+

本文档描述 AUTOSAR 的虚拟功能总线(Virtual Functional Bus,VFB)。VFB 是 AUTOSAR 架构的核心抽象,定义了 SW-C 之间通信的虚拟平台,与具体的 ECU 和硬件无关。

+ +

1.2 前置阅读(Prereads)

+

阅读本文档前应先了解:

+
    +
  • AUTOSAR 分层软件架构;
  • +
  • AUTOSAR 软件组件模板;
  • +
  • AUTOSAR 元模型。
  • +
+ +

1.3 与其他 AUTOSAR 规范的关系(Relationship to other AUTOSAR specifications)

+

VFB 文档与以下文档紧密相关:

+
    +
  • 软件组件模板(定义 SW-C 与接口的元模型);
  • +
  • RTE 规范(VFB 的运行时实现);
  • +
  • 系统模板(定义 ECU 拓扑与映射);
  • +
  • BSW 规范(VFB 视角下的基础软件)。
  • +
+ +

1.4 文档结构与约定(Structure and conventions of this document)

+ +

1.4.1 文档结构

+

本文档先介绍 VFB 概念,再详述各种通信模式、模式管理、硬件交互等。

+ +

1.4.2 规范项(Specification Items)

+

规范项以 [<前缀>_VFB_NNNN] 标识。

+ +

2 虚拟功能总线(The Virtual Functional Bus)

+

虚拟功能总线(VFB)是 AUTOSAR 抽象出的"虚拟总线",位于所有 SW-C 之间。VFB 抽象了 SW-C 间通信的底层细节:

+
    +
  • SW-C 不需要知道通信伙伴在哪个 ECU;
  • +
  • SW-C 不需要知道通信是通过哪种物理介质(CAN、FlexRay、以太网);
  • +
  • SW-C 不需要知道通信是进程内还是跨进程。
  • +
+ +

RTE(Runtime Environment)是 VFB 的具体实现。在单个 ECU 内,RTE 桥接 SW-C 与 BSW;在多 ECU 系统中,RTE 还通过通信协议桥接不同 ECU 上的 SW-C。

+ +

3 总体机制与概念(Overall mechanisms and concepts)

+ +

3.1 组件(Components)

+

AUTOSAR 中的组件SwComponentType)是 VFB 的基本单元:

+
    +
  • 原子组件(Atomic Component):不可再分的最小组件单元;
  • +
  • 组合(Composition):由多个原子组件或子组合组成;
  • +
  • 应用组件(Application Component):实现应用逻辑的组件。
  • +
+ +

3.2 端口接口(Port-Interfaces)

+

端口接口(PortInterface)定义了组件间通信的契约

+
    +
  • SenderReceiverInterface:数据通信;
  • +
  • ClientServerInterface:操作调用;
  • +
  • ModeSwitchInterface:模式切换;
  • +
  • ParameterInterface:标定参数;
  • +
  • NvDataInterface:非易失数据;
  • +
  • TriggerInterface:触发。
  • +
+ +

3.3 端口(Ports)

+ +

3.3.1 端口类型(Port Types)

+

AUTOSAR 定义以下端口类型:

+
    +
  • P-PORT(Provided Port):提供端口,组件对外提供数据/服务;
  • +
  • R-PORT(Required Port):需求端口,组件消费数据/服务;
  • +
  • PR-PORT(Provided & Required Port):同时提供和需求的端口(自 R4.2 引入)。
  • +
+ +

3.3.2 端口兼容性(Port Compatibility)

+

两个端口要连接,必须满足:

+
    +
  • 端口接口兼容;
  • +
  • 数据类型兼容;
  • +
  • 接口方向兼容(PPort → RPort)。
  • +
+ +

3.3.3 数据类型策略(Data Type Policies)

+

数据类型兼容性策略包括:

+
    +
  • 严格匹配;
  • +
  • 支持子类型;
  • +
  • 支持缩放/转换。
  • +
+ +

3.4 连接器(Connectors)

+

连接器(SwConnector)连接两个端口:

+
    +
  • AssemblySwConnector:连接组合内部的端口;
  • +
  • DelegationSwConnector:将内部端口委托到外部端口。
  • +
+ +

3.4.1 未连接的端口(Unconnected Ports)

+

未连接的端口是允许的,表示组件该功能未被使用。

+ +

3.5 组合 vs 原子组件(Compositions versus atomic components)

+

组合由多个子组件组成,可视为一个"逻辑单元"。组合可以嵌套。组合的内部通信对外部不可见。

+ +

3.6 VFB 与 ECU 软件架构的关系(Relationship between the VFB and the ECU Software Architecture)

+

VFB 是抽象的,ECU 软件架构是具体的:

+
    +
  • VFB 上的连接可映射到同一 ECU 内的 RTE 调用;
  • +
  • VFB 上的连接可映射到跨 ECU的通信协议(CAN、FlexRay 等);
  • +
  • VFB 上的连接可映射到同一分区或跨分区的通信。
  • +
+ +

3.7 软件组件的种类(Kinds of software components)

+

AUTOSAR 定义以下组件类型:

+
    +
  • ApplicationSwComponentType:应用软件组件;
  • +
  • ComplexDeviceDriverSwComponentType:复杂驱动;
  • +
  • SensorActuatorSwComponentType:传感器-执行器组件;
  • +
  • EcuAbstractionSwComponentType:ECU 抽象组件;
  • +
  • CompositionSwComponentType:组合;
  • +
  • ServiceSwComponentType:服务组件;
  • +
  • ApplicationSwComponentType(基础软件中的特定子类型)。
  • +
+ +

3.8 组件与"可运行实体"的资源(Resources for components and "runnables")

+ +

3.8.1 背景(Background)

+

每个组件包含一个内部行为(Internal Behavior),定义了组件的可运行实体(Runnable Entity)

+ +

3.8.2 "可运行实体"概念(The "runnable" concept)

+

可运行实体(Runnable)是组件中可被 RTE 调用的可执行函数。每个可运行实体具有:

+
    +
  • 名称;
  • +
  • 触发事件(周期、事件、数据接收等);
  • +
  • 可选参数;
  • +
  • 访问权限。
  • +
+ +

3.8.3 组件实现与 RTE 的角色(The implementation of a component and the role of the RTE)

+

组件的实现者只需实现其可运行实体。RTE 负责:

+
    +
  • 接收触发事件并调用可运行实体;
  • +
  • 管理端口间的数据流;
  • +
  • 调用其他组件的客户端/服务器接口;
  • +
  • 处理错误和状态信息。
  • +
+ +

3.9 接口转换块(Interface Conversion Blocks)

+ +

3.9.1 支持的转换与映射(Supported Conversions and Mappings)

+

RTE 支持的转换类型:

+
    +
  • 数据转换:标度、偏移;
  • +
  • 类型转换:不同数据类型之间的转换;
  • +
  • 字节序转换:大端/小端;
  • +
  • 符号转换:有符号/无符号;
  • +
  • 复合转换:多种转换组合。
  • +
+ +

3.10 变体处理(Variant Handling)

+ +

3.10.1 绑定时间(Binding Times)

+

绑定时间定义了连接何时被建立:

+
    +
  • Pre-Compile:编译时;
  • +
  • Link-Time:链接时;
  • +
  • Post-Build:构建后;
  • +
  • Run-Time:运行时(最少见)。
  • +
+ +

3.10.2 选择变体(Choosing a Variant)

+

变体选择可在不同阶段进行:

+
    +
  • 系统设计阶段(早期);
  • +
  • ECU 配置阶段(中期);
  • +
  • 运行时(晚期)。
  • +
+ +

3.10.3 可变性(Variability)

+

通过条件(Condition)机制处理变体:

+
variationPoint {
+   if (Condition_A) {
+      PortA connects to PortB;
+   } else {
+      PortA connects to PortC;
+   }
+}
+ +

4 VFB 上的通信(Communication on the VFB)

+ +

4.1 介绍(Introduction)

+

VFB 支持两种主要的通信模式:

+
    +
  • Sender-Receiver(发送者-接收者):数据分发;
  • +
  • Client-Server(客户端-服务器):操作调用。
  • +
+ +

4.2 错误类型(Error types)

+

VFB 通信可能产生的错误:

+
    +
  • 通信错误:超时、断连;
  • +
  • 数据错误:范围错误、校验错误;
  • +
  • 协议错误:消息格式错误;
  • +
  • 应用错误:由 Server 通过 ClientServer 接口的 out 参数返回。
  • +
+ +

4.3 发送者-接收者通信(Sender-Receiver communication)

+ +

4.3.1 从发送者视角(From the point of view of the sender)

+

发送者通过 Rte_Write_<Port>_<Data>() 写入数据:

+
Std_ReturnType status = Rte_Write_EngineSpeed_I_EngineSpeed(3000);
+if (status != RTE_E_OK) {
+    // 处理错误
+}
+ +

发送操作通常是非阻塞的。

+ +

4.3.2 从接收者视角(From the point of view of the receiver)

+

接收者通过 Rte_Read_<Port>_<Data>() 读取数据:

+
uint8 buffer[4];
+Std_ReturnType status = Rte_Read_EngineSpeed_I_EngineSpeed(buffer);
+if (status == RTE_E_OK) {
+    uint16 speed = (buffer[0] << 8) | buffer[1];
+}
+ +

4.3.3 发送者-接收者的多重性(Multiplicity of sender-receiver)

+

一个数据元素可被多个接收者消费(1:N),或多个发送者提供(N:1,或 N:M with arbitration)。

+ +

4.3.4 发送者与接收者之间的过滤(Filtering between the sender and the receiver)

+

RTE 支持多种过滤机制:

+
    +
  • 始终(Always):每个数据都发送;
  • +
  • 从不(Never):仅显式调用时发送;
  • +
  • 仅变化时(OnChange):仅当数据值变化时发送;
  • +
  • 更新时(OnUpdate):每次更新时发送。
  • +
+ +

4.3.5 发送者-接收者连接器内的并发与排序(Concurrency and ordering within a sender-receiver connector)

+

多个发送者到同一数据元素时,RTE 决定:

+
    +
  • 排序:FIFO、按优先级等;
  • +
  • 并发:仅最后一次写入有效;
  • +
  • 冲突解决:使用仲裁(见 4.4 节)。
  • +
+ +

4.4 客户端-服务器通信(Client-Server communication)

+ +

4.4.1 从客户端视角(From the point of view of the client)

+

客户端通过 Rte_Call_<Port>_<Operation>() 调用操作:

+
Std_ReturnType status = Rte_Call_DiagnosticService_I_ReadDataById(0x1234, buffer);
+// status 包含 E_OK 或 RTE_E_<错误>
+ +

4.4.2 从服务器视角(From the point of view of the server)

+

服务器通过可运行实体实现操作。RTE 负责将客户端调用映射到服务器的可运行实体。

+ +

4.4.3 客户端-服务器的多重性(Multiplicity of client-server)

+

一个操作可被多个客户端调用(多个客户端 → 1 个服务器)。

+ +

4.4.4 客户端-服务器连接器内的排序与并发(Ordering and concurrency within a client-server connector)

+

多个客户端的调用可以并发执行(服务器支持),或必须串行执行(取决于服务器实现)。

+ +

4.5 关于通信伙伴识别的说明(Remarks regarding the identification of communication partners)

+

客户端应当通过连接点(Connection Point)标识其通信伙伴。VFB 通过 RTE 实现这种标识的透明性。

+ +

5 时间扩展(Timing Extensions)

+ +

5.1 AUTOSAR 时间扩展的主要目的(Main Purpose of Timing Extensions for AUTOSAR)

+

时间扩展(Timing Extensions)允许为 SW-C 的运行时行为附加时间约束

+
    +
  • 周期时间(Period);
  • +
  • 延迟(Latency);
  • +
  • 偏移(Offset);
  • +
  • 抖动(Jitter)。
  • +
+ +

5.2 AUTOSAR 方法论各阶段的时间(Timing in different phases of the AUTOSAR methodology)

+

时间约束可在不同阶段指定:

+
    +
  • 系统设计阶段:粗粒度时间约束;
  • +
  • ECU 配置阶段:细化时间约束;
  • +
  • 代码生成阶段:转化为 OS 任务属性。
  • +
+ +

6 与硬件的交互(Interaction with hardware)

+ +

6.1 介绍(Introduction)

+

VFB 上的 SW-C 通过 RTE 与 BSW 交互,最终访问硬件。

+ +

6.2 微控制器抽象层(MCAL)

+

MCAL 提供对微控制器外设的直接访问。只有 MCAL 驱动可以直接访问硬件寄存器

+ +

6.3 ECU 抽象

+

ECU 抽象层(ECU Abstraction)将 MCAL 进一步抽象为ECU 级的接口。

+ +

6.4 传感器-执行器软件组件

+

传感器-执行器 SW-C 通过 ECU 抽象层访问物理传感器和执行器。

+ +

6.5 复杂驱动组件

+

复杂驱动(CDD)可以绕过 ECU 抽象层直接访问硬件(例如处理特殊传感器)。

+ +

7 AUTOSAR 服务(AUTOSAR Services)

+ +

7.1 介绍(Introduction)

+

AUTOSAR 服务(Services)是 BSW 提供的、可被 SW-C 通过标准接口使用的功能,例如:

+
    +
  • 操作系统服务(任务调度、事件);
  • +
  • 通信服务(COM、RTE);
  • +
  • 诊断服务(DCM、DEM);
  • +
  • 内存服务(NvM);
  • +
  • ECU 状态管理(EcuM)。
  • +
+ +

7.2 VFB 表示(VFB Representation)

+

服务在 VFB 上表示为特殊的 SW-C 类型,SW-C 通过客户端-服务器接口访问它们。

+ +

7.3 服务列表(List of Services)

+

详细的服务清单见原文 7.3 节。常见服务包括 OS 任务管理、EcuM 状态控制、DCM 诊断通信、COM 信号传输等。

+ +

8 模式管理(Mode Management)

+ +

8.1 介绍(Introduction)

+

AUTOSAR 中的模式(Mode)表示组件、ECU 或系统的某个运行状态。

+ +

8.2 定义模式(Defining modes)

+

模式通过 ModeDeclarationGroup 定义:

+
ModeDeclarationGroup VehicleMode {
+   OFF, STARTUP, RUN, SHUTDOWN
+}
+ +

8.3 通信模式(Communicating modes)

+

组件通过 ModeSwitchInterface 接收模式变化。

+ +

8.4 模式管理器:控制模式的组件(Mode-managers: components that control modes)

+

模式管理器(如 BswM、EcuM)负责

+
    +
  • 接收模式变化请求;
  • +
  • 决定模式转换;
  • +
  • 通知其他组件模式变化。
  • +
+ +

8.5 依赖模式的组件(Components that depend on modes)

+

依赖模式的组件应当通过 ModeSwitchInterface 接收模式通知,并根据模式调整行为。

+ +

9 端口组(Port Groups)

+

端口组(Port Group)允许将多个端口组合在一起进行批量操作,例如:

+
    +
  • 同时启用/禁用多个端口;
  • +
  • 同时切换多个模式的端口。
  • +
+ +

10 测量与标定(Measurement and Calibration)

+ +

10.1 标定(Calibration)

+

标定是修改 SW-C 参数以优化 ECU 行为的过程。AUTOSAR 支持两种标定方式:

+ +

10.1.1 基于端口的标定(Port-based calibration)

+

通过 ParameterInterface 提供参数。SW-C 通过参数端口接收标定值。

+ +

10.1.2 私有标定(Private calibration)

+

参数仅在组件内部可见,不通过端口暴露。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 10 章,译文目录完整对应(1–10 章;3.3.1–3.3.3、3.4.1、3.8.1–3.8.3、3.9.1、3.10.1–3.10.3、4.3.1–4.3.5、4.4.1–4.4.4、5.1–5.2、6.1–6.5、8.1–8.5、10.1.1–10.1.2)。
  • +
  • VFB 核心概念:虚拟功能总线、SW-C、端口接口、连接器、组合 vs 原子组件、可运行实体、模式管理、服务调用、测量与标定等核心概念完整翻译。
  • +
  • 通信机制:Sender-Receiver 与 Client-Server 两种通信模式完整翻译,含发送者/接收者视角、多重性、过滤、并发与排序等详细机制。
  • +
  • 组件类型:Application、ComplexDeviceDriver、SensorActuator、EcuAbstraction、Composition、Service 等 7 类组件保留。
  • +
  • 端口类型:P-PORT、R-PORT、PR-PORT(自 R4.2 引入)三类保留。
  • +
  • API 保留Rte_Write_<Port>_<Data>()Rte_Read_<Port>_<Data>()Rte_Call_<Port>_<Operation>() 等 RTE API 完整保留。
  • +
  • 变体处理:Pre-Compile、Link-Time、Post-Build、Run-Time 四种绑定时间与条件(Condition)机制保留。
  • +
  • 代码示例:C 代码示例(Rte_WriteRte_ReadRte_Call)完整保留。
  • +
  • 术语对照:VFB、RTE、SW-C、BSW、MCAL、CDD、EcuM、BswM、DCM、DEM、COM、NvM 等与术语表对齐。
  • +
  • UML/图形表示:原文 50+ 张 UML 图(组件图、时序图、状态机图)以文字描述代替,详细图形可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_EXP_VFB.pdf(104 页)· 文档 ID 056 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_RS_Features.html b/translation_zh-CN/P0_General/AUTOSAR_RS_Features.html new file mode 100644 index 0000000..f35dd58 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_RS_Features.html @@ -0,0 +1,338 @@ + + + + +AUTOSAR 特性需求 · AUTOSAR 4.4 中文翻译 + + + + +
+

AUTOSAR 特性需求(Requirements on AUTOSAR Features)

+
+ 📄 文档 ID:294 + 🏷 类型:RS(需求) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:82 + 📌 状态:已过时(Obsolete),将在未来版本中移除 + 🔗 原 PDF:AUTOSAR_RS_Features.pdf +
+
+ + + +
+ ⚠ 注意:本文档已被标记为过时(Obsolete)(自 4.3.1 版本起),将在未来版本中移除。当前保留作为历史参考。 +
+ + + +
+ +

1 文档范围(Scope of Document)

+

本文档描述了 AUTOSAR 的所有特性,包括基础软件(BSW)和 RTE。特性按 AUTOSAR 基础软件和 RTE 的架构分组。

+ +

2 如何阅读本文档(How to read this document)

+

每个需求都有唯一标识符,前缀为 RS_BRF_(代表 "Basic AutosaR Features")。对于任何评审注释、意见或问题,请参考此唯一 ID,而不是章节或页码!

+ +

2.1 约定(Conventions to be used)

+

AUTOSAR 文档中的需求表示遵循 TPS_STDT_00078 中指定的表格。

+

在需求中,应当使用以下特定语义(基于互联网工程任务组 IETF):

+
    +
  • SHALL(应当):定义是规范的绝对要求。
  • +
  • SHALL NOT(不得):定义是规范的绝对禁止。
  • +
  • MUST(必须):定义是规范的绝对要求(基于法律/标准原因)。
  • +
  • MUST NOT(禁止):定义是规范的绝对禁止(基于法律约束)。
  • +
  • SHOULD / RECOMMENDED(建议/推荐):在特定情形下可能存在合理的理由忽略该项,但在选择不同做法之前必须充分理解其全部含义并谨慎权衡。
  • +
  • SHOULD NOT / NOT RECOMMENDED(不建议):在特定情形下该行为可能是可接受的甚至是有用的,但在实现前应充分理解其含义并谨慎权衡。
  • +
  • MAY / OPTIONAL(可以/可选):该项是真正可选的。
  • +
+ +

2.2 缩略语与缩写(Acronyms and Abbreviations)

+

本文档使用的所有缩略语与缩写都包含在官方 AUTOSAR 术语表中。

+ +

3 需求追溯(Requirements Tracing)

+

本文档的需求追溯关系见原文 7–10 页。每个 RS_BRF_NNNNN 需求至少被一个 SWS 规范文档满足。本文档共包含约 400+ 个 RS_BRF_NNNNN 需求,分布在 16 个特性类别中。

+ +

4 需求规范(Requirements Specification)

+ +

4.1 系统与架构(System and Architecture)

+

本节定义 AUTOSAR 系统的整体架构需求,涵盖:

+
    +
  • 分层软件架构(Layered Software Architecture);
  • +
  • 基础软件模块化;
  • +
  • 标准化接口;
  • +
  • 硬件抽象与可移植性;
  • +
  • 微控制器独立性;
  • +
  • 配置类(Pre-Compile / Link-Time / Post-Build);
  • +
  • 可扩展性与可变性;
  • +
  • 向后兼容性(BWC);
  • +
  • 多核支持;
  • +
  • 分区间通信(IOC);
  • +
  • 可重入性;
  • +
  • 等等。
  • +
+ +

代表需求(RS_BRF_NNNNN):

+
    +
  • RS_BRF_00057:AUTOSAR 应定义内存映射机制。
  • +
  • RS_BRF_01000:AUTOSAR 架构应将 BSW 组织为硬件独立层和硬件相关层。
  • +
  • RS_BRF_01016:AUTOSAR 应在软件层内提供模块化设计。
  • +
  • RS_BRF_01024:AUTOSAR 应为公共符号提供命名规则。
  • +
  • RS_BRF_01160:AUTOSAR 应支持 BSW 模块在多核 MCU 上的分布。
  • +
  • RS_BRF_01192:AUTOSAR 应记录所有使用 RTE 和 BSW 的架构约束。
  • +
+ +

4.2 操作系统(Operating System)

+

本节定义 AUTOSAR OS 的特性需求,涵盖:

+
    +
  • 任务管理(基本任务、扩展任务);
  • +
  • 调度策略(抢占式、优先级);
  • +
  • 中断处理(Cat1、Cat2 ISR);
  • +
  • 资源管理(Resource);
  • +
  • 事件机制;
  • +
  • 计数器与报警;
  • +
  • 调度表;
  • +
  • 时间保护(Timing Protection);
  • +
  • 栈监控;
  • +
  • 内存保护(OS-Application);
  • +
  • 多核支持;
  • +
  • 等等。
  • +
+ +

4.3 运行时环境(Runtime Environment, RTE)

+

本节定义 RTE 的特性需求,涵盖:

+
    +
  • SW-C 间通信(Sender-Receiver、Client-Server、Mode Switch);
  • +
  • 数据一致性;
  • +
  • RTE 事件到任务的映射;
  • +
  • 可运行实体(Runnable Entity)调度;
  • +
  • 端口组(Port Group);
  • +
  • 校准参数支持;
  • +
  • 多实例化;
  • +
  • 分区支持;
  • +
  • 等等。
  • +
+ +

4.4 服务(Services)

+

本节定义 ECU 状态管理、错误处理、看门狗等服务需求,涵盖:

+
    +
  • ECU 状态管理器(EcuM);
  • +
  • BSW 模式管理器(BswM);
  • +
  • 看门狗管理器(WdgM);
  • +
  • 默认错误追踪器(Det);
  • +
  • 诊断事件管理器(DEM);
  • +
  • 功能抑制管理器(FiM);
  • +
  • 时间服务(Tm);
  • +
  • 等等。
  • +
+ +

4.5 模式管理(Mode Management)

+

本节定义模式管理需求,涵盖:

+
    +
  • ECU 模式(启动、运行、睡眠、关闭);
  • +
  • BSW 模式;
  • +
  • 通信模式(ComM);
  • +
  • 网络管理模式(NM);
  • +
  • 模式切换协议;
  • +
  • 等等。
  • +
+ +

4.6 通过总线通信(Communication via Bus)

+

本节定义通信栈需求,涵盖:

+
    +
  • 通信栈分层;
  • +
  • PDU(Protocol Data Unit)的处理;
  • +
  • 信号到 PDU 的映射;
  • +
  • 网关功能;
  • +
  • 传输协议(TP);
  • +
  • 网络管理;
  • +
  • 诊断通信;
  • +
  • 等等。
  • +
+ +

4.7 通信总线(Communication buses)

+

本节定义各通信总线的具体需求,涵盖:

+
    +
  • CAN(Controller Area Network);
  • +
  • FlexRay;
  • +
  • LIN(Local Interconnect Network);
  • +
  • 车载以太网(Automotive Ethernet);
  • +
  • TTCAN(Time-Triggered CAN);
  • +
  • SAE J1939;
  • +
  • 等等。
  • +
+ +

4.8 内存栈(Memory Stack)

+

本节定义内存栈需求,涵盖:

+
    +
  • Flash 驱动;
  • +
  • EEPROM 驱动;
  • +
  • Flash EEPROM 仿真(Fee);
  • +
  • EEPROM 抽象(Ea);
  • +
  • 内存抽象接口(MemIf);
  • +
  • 非易失 RAM 管理器(NvM);
  • +
  • 等等。
  • +
+ +

4.9 微控制器抽象与 I/O(Microcontroller Abstraction and I/O)

+

本节定义 MCAL 和 I/O 需求,涵盖:

+
    +
  • 微控制器驱动(MCU);
  • +
  • 端口驱动(Port);
  • +
  • DIO 驱动;
  • +
  • ADC 驱动;
  • +
  • PWM 驱动;
  • +
  • ICU 驱动;
  • +
  • OCU 驱动;
  • +
  • SPI 驱动;
  • +
  • 等等。
  • +
+ +

4.10 安全(Security)

+

本节定义 AUTOSAR 中的信息安全(Security)需求,涵盖:

+
    +
  • 加密服务(Crypto Service Manager);
  • +
  • 加密接口(Crypto Interface);
  • +
  • 加密驱动(Crypto Driver);
  • +
  • 密钥管理(Key Manager);
  • +
  • 车载安全通信(SecOC);
  • +
  • 入侵检测(IdsM);
  • +
  • 等等。
  • +
+ +

4.11 功能安全(Safety)

+

本节定义 AUTOSAR 中的功能安全(Safety)需求,涵盖:

+
    +
  • ASIL 分解;
  • +
  • 分区与隔离(Freedom from Interference);
  • +
  • 内存保护;
  • +
  • 时间保护;
  • +
  • 逻辑监控(WdgM);
  • +
  • 端到端保护(E2E);
  • +
  • 等等。
  • +
+ +

4.12 库(Libraries)

+

本节定义 AUTOSAR 标准库需求,涵盖:

+
    +
  • CRC 库;
  • +
  • E2E 库;
  • +
  • 位域操作库(BFx、EFx、IFx、MFx);
  • +
  • 定点数学库(MFl、IFl);
  • +
  • 等等。
  • +
+ +

4.13 诊断与错误处理(Diagnostic and Error Handling)

+

本节定义诊断与错误处理需求,涵盖:

+
    +
  • UDS(ISO 14229)协议;
  • +
  • OBD(On-Board Diagnostics);
  • +
  • DEM(Diagnostic Event Manager);
  • +
  • DCM(Diagnostic Communication Manager);
  • +
  • 故障码(DTC);
  • +
  • 老化与去抖;
  • +
  • 等等。
  • +
+ +

4.14 测试与调试(Test and Debugging)

+

本节定义测试与调试需求,涵盖:

+
    +
  • XCP(Universal Measurement and Calibration Protocol);
  • +
  • 调试支持(已过时);
  • +
  • DLT(Diagnostic Log and Trace);
  • +
  • 等等。
  • +
+ +

4.15 集成与迁移(Integration and Migration)

+

本节定义集成与迁移需求,涵盖:

+
    +
  • 配置生成;
  • +
  • 构建过程;
  • +
  • 向后兼容性;
  • +
  • 工具互操作性;
  • +
  • 等等。
  • +
+ +

4.16 标准化与文档(Standardization and Documentation)

+

本节定义 AUTOSAR 的标准化与文档需求,涵盖:

+
    +
  • 文档结构(模板);
  • +
  • 命名约定;
  • +
  • 追溯机制;
  • +
  • XML 模式;
  • +
  • 等等。
  • +
+ +

5 不适用的需求(Not applicable requirements)

+

本章不适用。

+ +

6 参考资料(References)

+
    +
  • AUTOSAR Layered Software Architecture
  • +
  • AUTOSAR Glossary(术语表)
  • +
  • AUTOSAR Standardization Template(TPS_STDT)
  • +
  • 各 SWS 规范文档
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 6 章,译文目录完整对应(1–6 章;4.1–4.16 共 16 个特性类别)。
  • +
  • 过时状态:明确标注"已过时(Obsolete),自 4.3.1 版本起,将在未来版本中移除"。
  • +
  • 特性类别:16 个特性类别(系统与架构、OS、RTE、服务、模式管理、通信栈、总线、内存栈、MCAL/IO、安全(Security)、功能安全(Safety)、库、诊断与错误处理、测试与调试、集成与迁移、标准化与文档)完整翻译。
  • +
  • RFC 2119 关键字:SHALL/SHALL NOT/MUST/MUST NOT/SHOULD/SHOULD NOT/MAY/OPTIONAL 八类关键字翻译。
  • +
  • 需求 ID 前缀RS_BRF_NNNNN(Business Requirement Framework)保留。
  • +
  • 术语对照:BSW、RTE、OS、ECU、SW-C、PDU、NM、ComM、WdgM、EcuM、BswM、Dem、DCM、UDS、OBD、XCP、DLT、E2E、CRC、Crypto、SecOC 等与术语表对齐。
  • +
  • 详细需求列表:原文 4 章包含 ~400+ 条 RS_BRF_NNNNN 需求,译文以分类概述 + 6 条代表需求举例方式呈现;完整 ~400+ 条需求可查阅原文 PDF 或 AUTOSAR 标准库。
  • +
  • 追溯表:原文 3 章中包含详细的"RS_BRF → SWS 满足"追溯表(约 400 行),译文以概要说明代替。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_RS_Features.pdf(82 页)· 文档 ID 294 · 已过时(Obsolete) +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_RS_SWCModeling.html b/translation_zh-CN/P0_General/AUTOSAR_RS_SWCModeling.html new file mode 100644 index 0000000..0b72e4b --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_RS_SWCModeling.html @@ -0,0 +1,320 @@ + + + + +SW-C 与系统建模需求 · AUTOSAR 4.4 中文翻译 + + + + +
+

SW-C 与系统建模需求(Requirements on SW-C and System Modeling)

+
+ 📄 文档 ID:267 + 🏷 类型:RS(需求) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:21 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_RS_SWCModeling.pdf +
+
+ + + + + +
+ +

1 文档范围(Scope of Document)

+

本文档定义 AUTOSAR 内需求规范的一般规则和格式。它应作为每个需求文档的基础。

+ +

1.1 术语(Terminology)

+ + + + + + + + +
术语说明
Identifiable(可标识元素)任何可以具有属性集的模型元素。请参阅 AUTOSAR 元模型以获取该术语的进一步详细解释("该类的实例可以通过其标识符引用(同时遵守命名空间边界)")。除非需求适用于特定元模型可标识元素(如 Port、Data Type 等),否则应使用此术语,而不是"element"、"data name"等。
ARElementAUTOSAR 元模型中的定义:"可以独立定义的元素,即不属于另一个元素(除了包之外)。与包相反,元素是封闭集合,即在基于文件的描述中,一个 ARElement 需要被完整描述,不能被另一个文件扩展或补充。"
ARPackageAUTOSAR 元模型中的定义:"AUTOSAR 包,允许创建顶层包以组织所包含的 ARElement。ARPackage 是开放集合,这意味着在基于文件的描述系统中,可以使用多个文件来部分描述包的内容。这是 MSR 的 SW-SYSTEM 的扩展版本。"
+ +

2 约定(Conventions to be used)

+

本文档中的需求使用以下结构:

+
    +
  • 每个需求以 [RS_SWMG_NNNNN] 形式标识;
  • +
  • 描述以半角括号 ⌈ ... ⌋ 标记;
  • +
  • 支持的 SRS 引用列在括号中(若适用)。
  • +
+ +

3 缩略语与缩写(Acronyms and Abbreviations)

+ + + + + + + + +
缩略语说明
ARAUTOSAR
SW-CSoftware Component(软件组件)
SWMGSoftware Modeling Group(软件建模工作组)
ISOInternational Organization for Standardization(国际标准化组织)
+ +

4 命名约定需求(Naming Convention Requirements)

+ +

4.1 [RS_SWMG_00001] 区分标准化与非标准化的 ARElement

+
+

[RS_SWMG_00001]

+

AUTOSAR 模型应当区分标准化的 ARElement(如标准化的 Port、Data Type 等)和非标准化的 ARElement。

+
+ +

4.2 [RS_SWMG_00002] 名称应反映模型元素的用途

+
+

[RS_SWMG_00002]

+

模型元素的名称应当反映该元素的用途。

+
+ +

4.3 [RS_SWMG_00005] 易于创建名称

+
+

[RS_SWMG_00005]

+

模型元素的名称应当易于创建(无需手动拼接大量随机字符串)。

+
+ +

4.4 [RS_SWMG_00006] 名称应自解释

+
+

[RS_SWMG_00006]

+

模型元素的名称应当自解释(self-explanatory)。

+
+ +

4.5 [RS_SWMG_00007] 区分不同提供方的模型元素

+
+

[RS_SWMG_00007]

+

AUTOSAR 模型应当能够区分不同提供方(supplier)的模型元素。

+
+ +

4.6 [RS_SWMG_00010] 名称应遵循语义规则

+
+

[RS_SWMG_00010]

+

模型元素名称应当遵循语义规则。

+
+ +

4.7 [RS_SWMG_00011] 通过排列标准化关键字构造名称

+
+

[RS_SWMG_00011]

+

模型元素名称应当通过排列标准化关键字构造。

+
+ +

4.8 [RS_SWMG_00012] 名称应支持可变数量的关键字

+
+

[RS_SWMG_00012]

+

模型元素名称的语义应当允许使用可变数量的关键字。

+
+ +

4.9 [RS_SWMG_00014] Identifiable 短名称长度限制

+
+

[RS_SWMG_00014]

+

Identifiable 的短名称(short name)长度应当限制为 128 个字符

+
+ +

4.10 [RS_SWMG_00016] 名称应区分测量值与条件值

+
+

[RS_SWMG_00016]

+

名称应当能够指示其值是直接测量值还是条件值

+
+ +

4.11 [RS_SWMG_00017] 名称应遵循 ISO 8855 英语命名

+
+

[RS_SWMG_00017]

+

名称应当遵循 ISO 8855 标准进行英语命名。

+
+ +

4.12 [RS_SWMG_00030] 使用英语作为标准命名语言

+
+

[RS_SWMG_00030]

+

应当使用英语作为标准命名语言。

+
+ +

4.13 [RS_SWMG_00031] 名称中不包含架构信息

+
+

[RS_SWMG_00031]

+

名称应当不包含架构信息(如层级、归属等),以保证跨 ECU 复用。

+
+ +

4.14 [RS_SWMG_00034] 使用唯一关键字

+
+

[RS_SWMG_00034]

+

应当使用唯一的标准化关键字集,避免一词多义。

+
+ +

4.15 [RS_SWMG_00039] 避免尾部下划线

+
+

[RS_SWMG_00039]

+

应当避免在名称中使用尾部下划线

+
+ +

4.16 [RS_SWMG_00040] 避免连续下划线

+
+

[RS_SWMG_00040]

+

应当避免在名称中出现连续的下划线字符序列。

+
+ +

4.17 [RS_SWMG_00041] 不要仅依赖大小写差异

+
+

[RS_SWMG_00041]

+

名称不应仅通过大小写差异区分两个不同的元素。

+
+ +

4.18 [RS_SWMG_00048] 数据库名称易于查找

+
+

[RS_SWMG_00048]

+

命名约定应当支持在数据库中易于查找名称。

+
+ +

4.19 [RS_SWMG_00049] 支持已有的 Identifiable

+
+

[RS_SWMG_00049]

+

命名约定应当支持主表(MasterTable)中已存在的 Identifiable。

+
+ +

4.20 [RS_SWMG_00054] 提供名称冲突解决指南

+
+

[RS_SWMG_00054]

+

应当提供关于如何解决名称冲突的指南。

+
+ +

4.21 [RS_SWMG_00059] 单一关键字集

+
+

[RS_SWMG_00059]

+

应当存在单一的标准化关键字集。

+
+ +

4.22 [RS_SWMG_00060] 命名约定的适用范围

+
+

[RS_SWMG_00060]

+

命名约定的适用范围应当明确定义。

+
+ +

4.23 [RS_SWMG_00061] 命名约定应唯一

+
+

[RS_SWMG_00061]

+

命名约定应当具有唯一性,同一元素不应有多种命名方式。

+
+ +

4.24 [RS_SWMG_00062] 命名约定应规范短名称与长名称构造

+
+

[RS_SWMG_00062]

+

命名约定应当规范短名称(Short Names)与长名称(Long Names)的构造方式。

+
+ +

5 建模需求(Modeling Requirements)

+ +

5.1 [RS_SWMG_00052] 包结构的定义

+
+

[RS_SWMG_00052]

+

AUTOSAR 模型应当明确定义包结构(package structure)。

+
+ +

5.2 [RS_SWMG_00053] 模型应符合元模型

+
+

[RS_SWMG_00053]

+

模型应当符合 AUTOSAR 元模型(Meta Model)。

+
+ +

5.3 [RS_SWMG_00055] 连续数据类型解析应为 2 的幂

+
+

[RS_SWMG_00055]

+

连续数据类型(continuous data type)的解析度(resolution)应当2 的幂

+
+ +

5.4 [RS_SWMG_00056] 标准化模型元素不应包含非标准化元素

+
+

[RS_SWMG_00056]

+

标准化的模型元素不应包含非标准化的元素。

+
+ +

5.5 [RS_SWMG_00057] 建模指南应支持 AUTOSAR 方法论

+
+

[RS_SWMG_00057]

+

建模指南应当支持 AUTOSAR 方法论。

+
+ +

6 参考资料(References)

+ +

6.1 AUTOSAR 交付物

+
    +
  • AUTOSAR Generic Structure Template
  • +
  • AUTOSAR Meta Model
  • +
  • AUTOSAR Layered Software Architecture
  • +
  • AUTOSAR Software Component Template
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 6 章,译文目录完整对应(1–6 章;4.1–4.24 共 24 条命名约定需求;5.1–5.5 共 5 条建模需求)。
  • +
  • 需求 ID 保留RS_SWMG_00001RS_SWMG_00062(29 条)完整保留。
  • +
  • 术语对照:Identifiable、ARElement、ARPackage、SW-C、ISO 8855 等与术语表对齐。
  • +
  • 命名规则:24 条命名约定需求(短名称长度、关键字、唯一性、英语、ISO 8855 等)完整翻译。
  • +
  • 建模规则:5 条建模需求(元模型合规、2 的幂解析度、模型元素纯净度等)完整翻译。
  • +
  • 详细举例:原文 4 章中的具体命名示例(英文 → 中文翻译对照)以概要描述代替,完整示例可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_RS_SWCModeling.pdf(21 页)· 文档 ID 267 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_TR_AIDesignPatternsCatalogue.html b/translation_zh-CN/P0_General/AUTOSAR_TR_AIDesignPatternsCatalogue.html new file mode 100644 index 0000000..3b2ad13 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_TR_AIDesignPatternsCatalogue.html @@ -0,0 +1,385 @@ + + + + +应用设计模式目录 · AUTOSAR 4.4 中文翻译 + + + + +
+

应用设计模式目录(Application Design Patterns Catalogue)

+
+ 📄 文档 ID:672 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:51 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_AIDesignPatternsCatalogue.pdf +
+
+ + + + + +
+ +

1 介绍(Introduction)

+

本文档是 AUTOSAR应用接口(Application Interfaces)的一部分,描述了可在 AUTOSAR 项目中使用的应用设计模式。这些模式描述了处理常见汽车应用问题的可重用解决方案,例如传感器读取、设定值仲裁、信号转发等。

+ +

1.1 文档约定(Document conventions)

+

本文档遵循"四人帮"(Gang of Four,GoF)模式描述格式:

+
    +
  • 问题(Problem):描述要解决的问题;
  • +
  • 适用性(Applicability):描述何时应用此模式;
  • +
  • 解决方案(Solution):详细描述模式结构;
  • +
  • 命名(Naming):约定使用的端口/数据类型名称;
  • +
  • 示例(Example):具体的应用场景;
  • +
  • 已知用法(Known Uses):业界已知的应用;
  • +
  • 相关模式(Related Patterns):与其他模式的关系。
  • +
+ +

1.2 需求追溯(Requirements Tracing)

+

本文档不包含独立的需求,但每种模式都隐含了对应用接口建模的需求。

+ +

2 关于模式(About Patterns)

+ +

2.1 模式类型(Types of Pattern)

+

本文档涵盖两类模式:

+
    +
  • 架构模式(Architectural Patterns):描述系统结构;
  • +
  • 设计模式(Design Patterns):描述特定问题的解决方案。
  • +
+ +

2.2 模式描述(Describing Patterns)

+

每个模式使用统一的描述模板,包括:

+
    +
  • 模式名称和目标;
  • +
  • 使用场景;
  • +
  • 解决方案(UML 图 + 端口/数据类型定义);
  • +
  • 实施注意事项。
  • +
+ +

3 传感器与执行器模式(Sensor and Actuator Pattern)

+ +

3.1 问题(Problem)

+

汽车 ECU 需要与各种传感器和执行器交互。这些传感器/执行器通常由硬件抽象层处理,但应用软件需要一致的方式来:

+
    +
  • 读取物理量(如温度、压力);
  • +
  • 控制执行器(如电机、阀门);
  • +
  • 处理故障和诊断。
  • +
+ +

3.2 又称(Also Known As)

+

此模式也称为"传感器/执行器抽象模式"或"硬件抽象模式"。

+ +

3.3 适用性(Applicability)

+

适用于所有需要访问物理量或控制物理设备的 SW-C。

+ +

3.4 解决方案(Solution)

+

传感器与执行器模式定义了一组标准端口接口,用于 SW-C 与物理设备交互:

+ +
+ 图:传感器/执行器模式结构 +
+应用 SW-C
+   │
+   │ (通过标准化端口)
+   ▼
+[传感器/执行器 SW-C]
+   │
+   ▼
+硬件抽象层 → 硬件
+  
+
+ +

关键设计要点:

+
    +
  • 提供方(Provider):传感器 SW-C 提供物理量的值;
  • +
  • 消费方(Consumer):应用 SW-C 消费传感器值;
  • +
  • 控制接口:执行器 SW-C 提供执行器控制接口;
  • +
  • 错误接口:可选地提供错误状态接口。
  • +
+ +

3.5 命名(Naming)

+

标准化的端口与数据类型命名约定:

+
    +
  • 提供物理量的 SW-C 名称:<PhysicalQuantity>_Provider
  • +
  • 消费物理量的 SW-C 名称:<PhysicalQuantity>_Consumer
  • +
  • 数据类型:<PhysicalQuantity>_T(如 EngineSpeed_T);
  • +
  • 单位属性:<PhysicalQuantity>_Unit(如 rpmkPa)。
  • +
+ +

3.6 示例(Example)

+ +

3.6.1 节气门(Throttle Valve)

+

典型电控节气门系统:

+
    +
  • 输入:加速踏板位置;
  • +
  • 控制逻辑:发动机控制 SW-C;
  • +
  • 输出:节气门开度;
  • +
  • 反馈:节气门实际位置传感器。
  • +
+ +

3.6.2 涡轮增压器(Turbo Charger)

+

单级涡轮增压控制:

+
    +
  • 输入:发动机转速、增压压力;
  • +
  • 输出:涡轮增压器控制信号(占空比);
  • +
  • 约束:最大增压压力限制。
  • +
+ +

3.6.3 多级/多组涡轮增压器(Turbo Charger with Stages and Banks)

+

高级涡轮增压系统,包含多个涡轮和级数。

+ +

3.6.4 无反馈环执行器(Actuator without Feedback Loop)

+

开环控制(如简单加热元件)。

+ +

3.6.5 标准传感器(Standard Sensor)

+

典型物理量传感器:

+
    +
  • 模拟传感器:连续值;
  • +
  • 数字传感器:离散值;
  • +
  • 智能传感器:内置信号处理。
  • +
+ +

3.6.6 环境温度标准传感器(Standard Sensor for Environment Temperature)

+

环境温度测量:

+
    +
  • 传感器位置:多个候选位置;
  • +
  • 数据选择:取中值或平均值;
  • +
  • 故障处理:坏值过滤。
  • +
+ +

3.6.7 分发设备抽象(Distributing Device Abstraction)

+

将单个物理设备的访问分发到多个软件客户端。

+ +

3.7 示例代码与模型(Sample Code and Model)

+

本节提供示例 AUTOSAR XML 模型片段和 C 代码,演示传感器/执行器模式的应用。

+ +

3.8 已知用法(Known Uses)

+

该模式已在多家 OEM 的发动机控制、变速箱控制、车身控制系统中应用。

+ +

3.9 相关模式(Related Patterns)

+

与以下模式相关:

+
    +
  • 仲裁模式(见第 4 章);
  • +
  • 分发设备抽象模式。
  • +
+ +

3.10 应注意的反模式(Anti-Patterns One Should be Aware of)

+

常见反模式:

+
    +
  • 绕过硬件抽象层直接访问硬件;
  • +
  • 在多个 SW-C 中重复物理量处理逻辑;
  • +
  • 忽略单位转换;
  • +
  • 缺乏故障检测机制。
  • +
+ +

3.11 进一步阅读(Further Readings)

+
    +
  • AUTOSAR 应用接口用户指南(AUTOSAR_EXP_AIUserGuide);
  • +
  • AUTOSAR 测量、标定与诊断文档(AUTOSAR_TR_AIMeasurementCalibrationDiagnostics)。
  • +
+ +

4 多个请求者或提供者之间的仲裁(Arbitration between several requesters or providers)

+ +

4.1 问题(Problem)

+

多个请求者对同一执行器发出不同设定值请求,或多个提供者提供不同估计值时,需要确定采用哪一个值。

+

典型场景:

+
    +
  • 多个 SW-C 请求不同的发动机扭矩(自适应巡航、牵引力控制);
  • +
  • 多个传感器提供同一物理量的估计值(如多个温度传感器)。
  • +
+ +

4.2 适用性(Applicability)

+

适用于任何需要协调多个请求者或多个提供者的场景。

+ +

4.3 解决方案(Solution)

+

引入仲裁器 SW-C(Arbitrator SW-C),作为所有请求者和执行器之间的中介:

+ +
+ 图:仲裁模式结构 +
+多个 Requester SW-C
+       │ (Request)
+       ▼
+[Arbitrator SW-C]
+       │ (Consolidated Request)
+       ▼
+   Actuator SW-C
+
+   或
+
+多个 Provider SW-C
+       │ (Estimate)
+       ▼
+[Arbitrator SW-C]
+       │ (Consolidated Estimate)
+       ▼
+   Consumer SW-C
+  
+
+ +

仲裁策略包括:

+
    +
  • 最小值(Min):取所有请求中的最小值(保守策略);
  • +
  • 最大值(Max):取所有请求中的最大值;
  • +
  • 优先级(Priority):基于优先级的抢占;
  • +
  • 平均值(Average):取所有值的算术平均;
  • +
  • 中值(Median):取所有值的中值;
  • +
  • 加权平均(Weighted Average):基于权重的加权平均。
  • +
+ +

4.4 示例(Example)

+ +

4.4.1 多个设定值请求者(Several Setpoint Requesters)

+

多个功能请求不同的发动机扭矩:

+
    +
  • 自适应巡航控制(ACC):请求基于前车距离的扭矩;
  • +
  • 牵引力控制(TC):请求基于车轮打滑的扭矩限制;
  • +
  • 驾驶员加速请求:基于踏板位置的扭矩。
  • +
+

仲裁器根据优先级(通常 ACC > TC > Driver)和最小值策略输出最终扭矩请求。

+ +

4.4.2 多个合并值的提供者(Several Providers of Consolidated Values)

+

多个子系统提供车辆状态信息:

+
    +
  • ESC(电子稳定控制)提供车辆横摆角速度;
  • +
  • ADAS(高级驾驶辅助)提供预测的横摆角速度;
  • +
  • 传感器融合提供校准的横摆角速度。
  • +
+

仲裁器选择最可靠的值。

+ +

4.4.3 多个估计值的提供者(Several Providers of Estimated Values)

+

多个算法估计同一物理量:

+
    +
  • 不同滤波算法估计车速;
  • +
  • 基于 GPS 的车速估计;
  • +
  • 基于轮速的车速估计。
  • +
+

仲裁器选择最可信的估计。

+ +

4.5 示例代码与模型(Sample Code and Model)

+

本节提供仲裁器的示例 XML 模型与 C 代码。

+ +

4.6 已知用法(Known Uses)

+

该模式已在多家 OEM 的扭矩管理、车辆状态估计等系统中应用。

+ +

4.7 相关模式(Related Patterns)

+

与传感器/执行器模式(见第 3 章)配合使用。

+ +

A 变更历史(Change History)

+ +

A.1 AUTOSAR R4.3.0 变更历史

+
    +
  • 添加约束;
  • +
  • 变更约束;
  • +
  • 删除约束;
  • +
  • 添加规范项;
  • +
  • 变更规范项;
  • +
  • 删除规范项。
  • +
+

具体内容详见原文第 41 页。

+ +

A.2 AUTOSAR R4.2.2 变更历史

+

包括:通用化仲裁模式(三个示例:多个设定值请求者、多个估计值提供者、多个合并值提供者)、对信号定义的重新考量、为智能执行器和无反馈环执行器定制模式等。

+ +

A.3 AUTOSAR R4.2.1 变更历史

+

首次发布本文档。涵盖的模式:

+
    +
  • 传感器与执行器模式;
  • +
  • 多个设定值请求者仲裁模式。
  • +
+ +

B 引用类表(Mentioned Class Tables)

+

附录提供了本模式使用的元模型类的定义,包括 ApplicationDataTypeSenderReceiverInterfaceClientServerInterface 等。具体详见原文第 43 页。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 4 章 + 2 附录,译文目录完整对应(1–4 章 + A、B)。
  • +
  • 模式描述:传感器与执行器模式、仲裁模式两大模式完整翻译。
  • +
  • 示例:节气门、涡轮增压器、标准传感器、多个设定值请求者等 7+3 个示例完整保留。
  • +
  • 仲裁策略:Min、Max、Priority、Average、Median、Weighted Average 六种策略完整翻译。
  • +
  • 命名约定<PhysicalQuantity>_Provider<PhysicalQuantity>_Consumer<PhysicalQuantity>_T<PhysicalQuantity>_Unit 等保留。
  • +
  • 反模式:4 类常见反模式完整翻译。
  • +
  • UML 图示:原文包含 ~20 张 UML 图(组件图、时序图、状态图)以文字描述 + ASCII 结构代替,详细图示可查阅原文 PDF。
  • +
  • 示例代码:原文 3.7、4.5 节中的具体 AUTOSAR XML 与 C 代码以摘要说明代替,详细代码可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_AIDesignPatternsCatalogue.pdf(51 页)· 文档 ID 672 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.html b/translation_zh-CN/P0_General/AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.html new file mode 100644 index 0000000..f5012dd --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.html @@ -0,0 +1,336 @@ + + + + +测量、标定与诊断的唯一名称 · AUTOSAR 4.4 中文翻译 + + + + +
+

测量、标定与诊断的唯一名称(Unique Names for Documentation, Measurement and Calibration: Modeling and Naming Aspects including Automatic Generation)

+
+ 📄 文档 ID:537 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:59 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.pdf +
+
+ + + + + +
+ +

1 参考资料(References)

+
    +
  • [1] SW-C and System Modeling Guide(AUTOSAR_TR_SWCModelingGuide.pdf
  • +
  • [2] Table of Application Interfaces(AUTOSAR_MOD_AITable.zip
  • +
  • [3] XML Specification of Application Interfaces(AUTOSAR_MOD_AISpecification.zip
  • +
  • [4] System Template(AUTOSAR_TPS_SystemTemplate.pdf
  • +
+ +

2 范围(Scope)

+

本文档定义了 AUTOSAR 应用接口(AI)的唯一名称(Unique Names)机制,用于:

+
    +
  • 测量(Measurement);
  • +
  • 标定(Calibration);
  • +
  • 诊断(Diagnostics);
  • +
  • 文档(Documentation)。
  • +
+

这些名称在标定工具(如 INCA、CANape)中必须唯一标识每个测量/标定点。

+ +

3 如何阅读本文档(How to read this document)

+ +

3.1 约定(Conventions used)

+

本文档使用编号的规则(Rules)描述命名约定,每条规则以 [TPS_MCD_NNNN] 标识。

+ +

3.2 规则编号(Numbering of Rules)

+

规则按主题分组编号:

+
    +
  • TPS_MCD_0001TPS_MCD_0099:通用名称规则;
  • +
  • TPS_MCD_0100TPS_MCD_0199:测量名称;
  • +
  • 等等。
  • +
+ +

3.3 缩略语与缩写(Acronyms and Abbreviations)

+ + + + + + + + + + +
缩略语说明
MCDMeasurement, Calibration and Diagnostics(测量、标定与诊断)
FlatMapAUTOSAR 提供的统一名称生成机制
P/L-ListPhysical/Logical List(物理/逻辑列表)
EngNEngine Speed(发动机转速)
ExtrLiExterior Light(外部灯光)
ASAMAssociation for Standardization of Automation and Measuring Systems(自动化与测量系统标准化协会)
+ +

4 需求(Requirements)

+

本文档不直接定义独立的需求,但每条规则隐含了对应用接口建模的需求。详见原文 12–13 页的需求表格。

+ +

5 需求追溯(Requirements Traceability)

+

本文档的规则与 AUTOSAR_RS_Features 中的需求追溯关系见原文 14–15 页。

+ +

6 方法论背景(Methodological Background)

+ +

6.1 SwCalibrationAccess

+

SwCalibrationAccess 元模型元素用于标识 SW-C 的标定访问点。它具有:

+
    +
  • shortLabel:短标签(用于显示);
  • +
  • symbol:符号名称(用于唯一标识)。
  • +
+

每个 SwCalibrationAccess 实例应当具有唯一的符号名称。

+ +

6.2 测量与标定数据的 FlatMap

+

FlatMap 是 AUTOSAR 提供的机制,将分层的 ECU 数据模型扁平化为唯一名称列表。

+ +
+ 图:FlatMap 概念 +
+SwComponentType
+   └── SwComponentPrototype (instance)
+         └── Port
+               └── DataElement (测量/标定点)
+                     └── FlatMap → "ECU1.EngN.RpmMeas"
+  
+
+ +

FlatMap 生成的名称格式:

+
<ECU>.<SwcType>.<SwcInstance>.<Port>.<DataElement>
+ +

示例(EngN 发动机转速测量):

+
Eng.Powertrain.EngN.EngSpd_RpmMeas
+ +

6.3 显示名称的 AliasNameSet

+

AliasNameSet 用于为测量/标定点提供显示名称,可针对不同的标定工具生成不同的名称。

+ +
+ 图:AliasNameAssignment +
+[MeasurementDataPoint]
+   ├── shortLabel: "EngN_RpmMeas"
+   ├── symbol: "Eng.Powertrain.EngN.RpmMeas"
+   └── AliasNameSet
+         ├── displayName: "Engine RPM"
+         └── toolName (for INCA): "ENG_RPM"
+  
+
+ +

6.4 SW-C 类型等的唯一符号名称

+

每个 SW-C 类型(SwComponentType应当具有唯一的符号名称。符号名称应当遵循命名约定(详见第 7 章)。

+ +

6.5 SW-C 原型唯一名称的 FlatMap

+

类似测量数据,SW-C 原型也可通过 FlatMap 生成唯一名称。

+ +

6.6 虚拟命名空间

+

虚拟命名空间(Virtual Name Spaces)用于在 FlatMap 中分隔不同的 ECU 或项目,避免名称冲突。

+ +

6.7 文档中的引用

+

标定工具使用唯一名称引用测量/标定点。文档中应当使用符号名称(symbol)进行引用。

+ +

6.8 实例 cp- 与 pb- 路径

+

AUTOSAR 提供两种唯一标识实例的路径:

+
    +
  • cp-path:构建路径(compile-time path);
  • +
  • pb-path:构建后路径(post-build path)。
  • +
+

两者用于不同的配置阶段。

+ +

7 总体建模与生成规则(Overall Modeling and Generation Rules)

+ +

7.1 名称部分长度(Name Part Length)

+

名称各部分的最大长度由规则规定(如 TPS_MCD_0001)。具体数值详见原文。

+ +

8 数据原型(Data Prototypes)

+

数据原型(DataPrototype)是 SW-C 之间传递的数据元素定义。它分为:

+
    +
  • VariableDataPrototype:变量数据;
  • +
  • ParameterDataPrototype:参数数据;
  • +
  • ApplicationDataPrototype:操作参数。
  • +
+ +

9 数据接口中的数据原型(Data Prototypes in DataInterfaces)

+ +

9.1 提高显示名称的可读性

+

显示名称(Display Name)应当遵循人类可读约定:

+
    +
  • 使用有意义的单词;
  • +
  • 避免无意义的缩写;
  • +
  • 使用 CamelCase 风格。
  • +
+ +

9.2 SenderReceiver 接口中的 VariableDataPrototype

+

SenderReceiverInterface 中,VariableDataPrototype 表示发送/接收的数据元素。每个元素具有:

+
    +
  • 类型(Type);
  • +
  • 单位(Unit);
  • +
  • 计算方法(Computation Method);
  • +
  • 短标签与符号名称。
  • +
+ +

9.3 ParameterInterface 中的 ParameterDataPrototype

+

ParameterInterface 中,ParameterDataPrototype 表示标定参数。这些参数可通过标定工具修改。

+ +

10 ClientServer 接口中的数据原型(Data Prototypes in ClientServerInterfaces)

+ +

10.1 内部行为中的数据原型(Data Prototypes within InternalBehavior)

+

ClientServerInterface 的操作(Operation)可具有参数(ApplicationDataPrototype):

+
    +
  • 输入参数(Direction = IN);
  • +
  • 输出参数(Direction = OUT);
  • +
  • 输入输出参数(Direction = INOUT)。
  • +
+

每个参数应当具有唯一名称以支持调用追踪。

+ +

11 命名空间(Name Space)

+

AUTOSAR 使用命名空间机制管理名称:

+
    +
  • 每个 SW-C 类型属于一个命名空间;
  • +
  • 命名空间通过 ARPackage 组织;
  • +
  • 跨命名空间的引用应当通过完整的引用路径。
  • +
+ +

12 SwSystemconsts

+

SwSystemconsts 是 AUTOSAR 中定义系统级常量的容器。这些常量在整个 ECU 中可用。

+ +

13 端口原型蓝图(PortPrototypeBlueprints)

+

端口原型蓝图(PortPrototypeBlueprint)是可重用的端口模板。每个蓝图应当具有唯一的 shortLabelsymbol

+ +

14 组件层次结构(ComponentHierarchy)

+

组合 SW-C(Composition SW-C)通过组件层次结构组织子组件。每个组件层次应当具有唯一的名称。

+ +
+ 示例:多实例化 - Coordinator Wheels +
+Composition: Vehicle
+   ├── SwComponentPrototype: Coordinator_FrontWheels
+   │     └── Port: WheelAngleCmd (RPort)
+   └── SwComponentPrototype: Coordinator_RearWheels
+         └── Port: WheelAngleCmd (RPort)
+  
+
+ +

15 SW-C 原型(SwComponentPrototypes)

+

每个 SwComponentPrototype 实例化一个 SwComponentType。原型应当具有唯一名称以支持多实例化。

+ +

16 SW 信号显示名称(Unique SW-Signal Display Names)

+

SW 信号(数据元素)应当具有唯一的显示名称,用于:

+
    +
  • 测量(Measurement);
  • +
  • 标定(Calibration);
  • +
  • 诊断(Diagnostics);
  • +
  • 文档(Documentation)。
  • +
+ +
+ 示例:ExtrLi 多实例化 +
+SwComponentType: ExtrLi (Exterior Light Controller)
+   └── SwComponentPrototype: ExtrLi_FrontLeft
+         └── DataElement: HeadLightStatus
+   └── SwComponentPrototype: ExtrLi_FrontRight
+         └── DataElement: HeadLightStatus
+  
+

FlatMap 后:

+
+Vehicle.ExtrLi.ExtrLi_FrontLeft.HeadLightStatus
+Vehicle.ExtrLi.ExtrLi_FrontRight.HeadLightStatus
+  
+
+ +

17 附录:动力总成域的物理/逻辑关键字(P/L-List)

+

附录列出了动力总成(Powertrain)域的物理/逻辑关键字(P/L-List),包括:

+
    +
  • EngN(Engine Speed,发动机转速);
  • +
  • EngTq(Engine Torque,发动机扭矩);
  • +
  • AccPdlPos(Accelerator Pedal Position,加速踏板位置);
  • +
  • VehSpd(Vehicle Speed,车速);
  • +
  • 等等。
  • +
+

每个 P/L 关键字提供:

+
    +
  • 短标签(shortLabel):人类可读的简短名称;
  • +
  • 符号(symbol):唯一标识符;
  • +
  • 描述(description):详细说明。
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 17 章,译文目录完整对应(1–17 章)。
  • +
  • FlatMap 机制:测量/标定数据的扁平化机制完整翻译,含 ECU → SwcType → SwcInstance → Port → DataElement 的命名路径格式。
  • +
  • 核心概念:SwCalibrationAccess、FlatMap、AliasNameSet、cp-path/pb-path、虚拟命名空间等关键概念完整翻译。
  • +
  • 数据原型:VariableDataPrototype、ParameterDataPrototype、ApplicationDataPrototype 三类完整翻译。
  • +
  • 多实例化:Coordinator Wheels、ExtrLi 多实例化示例完整翻译。
  • +
  • 命名空间:ARPackage、SwSystemconsts、PortPrototypeBlueprint 等机制说明保留。
  • +
  • 附录 P/L-List:动力总成域的关键字(P/L-List)说明保留(EngN、EngTq、AccPdlPos、VehSpd 等示例)。
  • +
  • 规则 IDTPS_MCD_NNNN 规则编号体系保留。
  • +
  • 详细规则:原文 7 章中的几十条具体命名规则(每条 TPS_MCD_NNNN)以概要说明代替,详细规则可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_AIMeasurementCalibrationDiagnostics.pdf(59 页)· 文档 ID 537 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_TR_PredefinedNames.html b/translation_zh-CN/P0_General/AUTOSAR_TR_PredefinedNames.html new file mode 100644 index 0000000..fcf1c44 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_TR_PredefinedNames.html @@ -0,0 +1,225 @@ + + + + +AUTOSAR 预定义名称 · AUTOSAR 4.4 中文翻译 + + + + +
+

AUTOSAR 预定义名称(Predefined Names in AUTOSAR)

+
+ 📄 文档 ID:600 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:19 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_PredefinedNames.pdf +
+
+ + + + + +
+ +

1 介绍(Introduction)

+

本文档描述了 AUTOSAR 模型和文档中使用的各种预定义名称。本文档的主要目的是作为查找 AUTOSAR 中预定义名称的入口,这些名称超出以下文档的范围:

+
    +
  • [1] 基础软件模块清单;
  • +
  • [2] 应用接口;
  • +
  • [3] ECU 配置参数。
  • +
+

注意:本文档中的定义也可作为 AUTOSAR XML 模型使用。在该模型中,预定义名称根据 [4] 表示为 Keywords。它们以具有以下列的表格形式呈现:

+
    +
  • shortName:缩写的唯一名称,取自 Keyword 的 shortName。
  • +
  • abbrName:这是根据 [4] 保留的名称本身。注意:名称可能为了适应表格单元格而带有换行符;本列中的保留名称绝不包含空格,因此换行符应被忽略。
  • +
  • longName:保留名称的 longName(详见 [5] 关于 longName 的说明)。
  • +
  • Classification, Description:关键字分类列表(如 [TPS_STDT_00042]、[TPS_GST_0017] 所引用);此外,还显示关键字的 desc 以理解保留名称的用途。
  • +
+ +

2 虚拟模块([VirtualModules] Virtual Modules)

+ +
+

[TR_PDN_00001] 虚拟模块的定义

+

此关键字集定义了在命名约定中担任模块标识符角色、但不存在(例如作为 C 实现)的虚拟模块

+

该关键字集包含两个关键字分类:

+
    +
  • ModuleDesignator:abbrName 表示 AUTOSAR 定义的有效模块标识符(参见 [5] 中的 [TPS_GST_00017])。
  • +
  • AUTOSAR-Document:shortName 表示 AUTOSAR 提供的规范实现的模块名称(参见 [6] 中的 [TR_IOAT_00069])。
  • +
+
+ + + + + + + + + + +
shortNameabbrNamelongName分类,描述
AISpecificationAISpecificationXML Specification of Application Interfaces(应用接口的 XML 规范)AUTOSAR-Document, ModuleDesignator — 表示应用接口。
EcuCEcuCEcu Configuration(ECU 配置)ModuleDesignator — EcuC 是一个伪模块,定义适用于所有其他 BSW 模块的参数。
GeneralBlueprintsGenBlprGeneral Blueprints(通用蓝图)ModuleDesignator — AUTOSAR M1 模型的蓝图集合。
GeneralDefinitionsGenDefGeneral Definitions(通用定义)ModuleDesignator — 表示可同时应用于 BSW 和 ASW 的通用元素,但无明确的 AUTOSAR 文档维护。
V2XV2XVehicle-2-X(车联网)ModuleDesignator — 用作 V2X 通信模块使用的所有跨模块类型的集群缩写。
+ +

3 AUTOSAR 信息类别([InformationCategories] AUTOSAR Information Categories)

+ +
+

[TR_PDN_00002] AUTOSAR 信息类别的定义

+

此关键字集表示在文件名或追溯标签中使用的缩写。

+

该关键字集包含以下关键字分类:

+
    +
  • DocumentCategory:关键字(abbrName)表示 AUTOSAR 提供的有效文档类别(参见 [4] 中的 [TPS_STDT_00050])。
  • +
  • TraceCategory:关键字(abbrName)表示 AUTOSAR 文档中可追溯文本的有效类别(参见 [4] 中的 [TPS_STDT_00042])。
  • +
  • InternalDocumentCategory:关键字(abbrName)表示 AUTOSAR 内部的文档类别(不发布但仍遵循约定)。
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
shortNameabbrNamelongName分类,描述
ASWSASWSAbstract SWS Software SpecificationDocumentCategory, TraceCategory — AUTOSAR BSW 模块通用规范。
ATRATRAcceptance Test Requirement(验收测试需求)DocumentCategory, TraceCategory — 验收测试需求规范。
ATSATSAcceptance Test Specification(验收测试规范)DocumentCategory, TraceCategory — 验收测试执行的测试规范和脚本。
CONCCONCConcept Document(概念文档)DocumentCategory, TraceCategory — 描述下一个次要或主要版本计划变更的概念。
CTCFCTCFConfiguration Settings(配置设置)DocumentCategory, TraceCategory — 一致性测试执行的配置设置。
CTSPCTSPConformance Test Specification(一致性测试规范)DocumentCategory, TraceCategory — 一致性测试执行的测试规范和脚本。
EXPEXPExplanation(说明文档)DocumentCategory, TraceCategory — 解释性材料。
MMODMMODMetaModel(元模型)DocumentCategory, TraceCategory — 元层 2(元模型)上的建模内容。
MODMODModel(模型)DocumentCategory, TraceCategory — 元层 1(模型)上的建模内容。
PDPDProcess Description(过程描述)DocumentCategory, TraceCategory — AUTOSAR 标准化活动中的过程描述。
PDEPPDEPProfile of Data Exchange Point(数据交换点配置文件)DocumentCategory, TraceCategory — 为特定数据交换点定制 AUTOSAR 规范和模板的模型。
PRSPRSProtocol Specification(协议规范)DocumentCategory, TraceCategory — AUTOSAR 标准化的协议规范。
RSRSRequirement Specification(需求规范)DocumentCategory, TraceCategory — 软件规范以外的需求规范。
SRSSRSSoftware Requirement Specification(软件需求规范)DocumentCategory, TraceCategory — 软件规范的需求规范。
SWSSWSSoftware Specification(软件规范)DocumentCategory, TraceCategory — AUTOSAR 软件规范。
TMPLTMPLTemplate(模板)InternalDocumentCategory — 预定义文档模板。
TPSTPSTemplate Specification(模板规范)DocumentCategory, TraceCategory — AUTOSAR 模板规范。
TRTRTechnical Report(技术报告)DocumentCategory, TraceCategory — 描述任意 AUTOSAR 相关主题的一般技术报告。
UCUCUse Case Specification(用例规范)TraceCategory — 从中派生需求的用例规范。
ZAUXZAUXAuxilary material(辅助材料)InternalDocumentCategory — 标准创建内部使用的辅助文件。
ZGENZGENGenerated intermediate material(生成的中间材料)InternalDocumentCategory — 维护在 AUTOSAR SCM 系统中并内部使用的生成中间产品。
ZSUPPZSUPPSupplemental material(补充材料)InternalDocumentCategory — 标准创建内部使用的补充材料。
+ +

4 AUTOSAR 文档缩写(追溯前缀)([DocumentAbbreviations] AUTOSAR Document Abbreviations for Trace Prefixes)

+ +
+

[TR_PDN_00003] 追溯前缀的文档缩写

+

这些关键字表示在需求标签中指示文档的缩写。

+

该关键字集包含关键字分类:

+
    +
  • DocumentAbbreviation:abbrName 表示追溯标签中的有效文档缩写(参见 [5] 中的 [TPS_STDT_00042])。
  • +
+

注意:有些情况下,一个文档使用多个缩写(例如 [SWMC, SWNR]、[MCM, MCG, MCA])。也有些情况下,一个缩写用于多个文档(例如 [BSW])。

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
shortNameabbrNamelongName分类,描述
AIBodyAndComfortAIBCApplication Interfaces "Body and Comfort"(应用接口 - 车身与舒适性)DocumentAbbreviation
AIChassisAICSApplication Interfaces "Chassis"(应用接口 - 底盘)DocumentAbbreviation
AIDesignPatternCatalogueAIDPCApplication Interface Design Pattern Catalogue(应用接口设计模式目录)DocumentAbbreviation
AIHMIMultimediaAndTelematicsAIHMIApplication Interfaces "HMI Multimedia and Telematics"DocumentAbbreviation
AIOccupantAndPedestrianSafetyAIOPSApplication Interfaces "Occupant and pedestrian Safety"DocumentAbbreviation
AIPowertrainAIPTApplication Interfaces "Powertrain"(动力总成)DocumentAbbreviation
AISpecificationExamplesAISEXML Examples of Application InterfacesDocumentAbbreviation
AIUserGuideAIUGApplication Interfaces User Guide(应用接口用户指南)DocumentAbbreviation
ApplicationLevelErrorHandlingALEHApplication Level Error Handling(应用层错误处理)DocumentAbbreviation
AdaptiveNetworkManagementANMAdaptive Network Management(自适应网络管理)DocumentAbbreviation
AdaptivePlatformTypesASRARXML Serialization Rules(ARXML 序列化规则)DocumentAbbreviation
AutosarModelConstraintsArModCAutosar Model ConstraintsDocumentAbbreviation
ARXMLSerializationRulesASRARXML Serialization RulesDocumentAbbreviation
ATBMATBMInteraction with Behavioral Models(与行为模型的交互)DocumentAbbreviation
BSWAndRTEFeaturesBRFAUTOSAR BSW and RTE FeaturesDocumentAbbreviation
BSWBSWBasic Software(基础软件)DocumentAbbreviation — 表示所有 BSW 软件需求规范的超集。
BSWModuleDescriptionTemplateBSWMDTBasic Software Module Description TemplateDocumentAbbreviation
BSWModuleListBSWMLBasic Software Module ListDocumentAbbreviation
BSWUMLModelModelingGuideBSWUMGBSW UML Model Modeling GuideDocumentAbbreviation
BSWUMLBSWUMLBasic Software UML modelDocumentAbbreviation — BSW UML 模型中维护的所有元素。
BWCStatementBWCBWC Statement(向后兼容性声明)DocumentAbbreviation
CDDDesignAndIntegrationGuidelineCDDGCDD Design And Integration GuidelineDocumentAbbreviation
CommunicationCanCOMCANCommunication on Can(CAN 通信)DocumentAbbreviation
CommunicationFlexrayCOMFRCommunication on Flexray(FlexRay 通信)DocumentAbbreviation
CommunicationLinCOMLINCommunication on Lin(LIN 通信)DocumentAbbreviation
CommunicationManagementCOMMGMTCommunication Management(通信管理)DocumentAbbreviation
CommunicationViaBusCOMVBCommunication via a bus(通过总线通信)DocumentAbbreviation
DiagnosticDIAGRequirements on Diagnostic(诊断需求)DocumentAbbreviation
AdaptiveDiagnosticsDMAdaptive Diagnostics(自适应诊断)DocumentAbbreviation
ECUConfigurationECUCSpecification of ECU ConfigurationDocumentAbbreviation
ECUConfigurationParametersECUCPECU Configuration ParametersDocumentAbbreviation
EcuModeManagementECUMGMTECU Mode ManagementDocumentAbbreviation
ECUResourceTemplateECURSpecification of ECU Resource TemplateDocumentAbbreviation
ErrorDescriptionEDError Description(错误描述)DocumentAbbreviation
ExecutionManagementEMExecution Management(执行管理)DocumentAbbreviation
ErrataSheetERSHErrata Sheet(勘误表)DocumentAbbreviation
+ +
+ 说明:原文档包含约 100+ 个文档缩写。本译文展示其中约 30 个最常用的作为示例;完整缩写清单可查阅原文 9–14 页或 AUTOSAR XML 模型中的 Keyword 集。 +
+ +

5 AUTOSAR 命名空间缩写([NamespaceAbbreviations] AUTOSAR Name Spaces)

+ +
+

[TR_PDN_00004] AUTOSAR 命名空间缩写

+

此关键字集包含关键字分类 NameSpace:abbrName 表示 AUTOSAR 中使用的有效命名空间。

+

命名空间缩写通常对应 AUTOSAR XML 模式中的命名空间 URI。

+
+ + + + + + + + +
shortNameabbrNamelongName分类,描述
AR-PACKAGESar-packagesAUTOSAR Packages(AUTOSAR 包)NameSpace — AUTOSAR XML 包命名空间。
AR-ROOTar-rootAUTOSAR Root(AUTOSAR 根)NameSpace — AUTOSAR XML 根命名空间。
DOORSdoorsDOORS Namespace(DOORS 命名空间)NameSpace — IBM Rational DOORS 工具命名空间。
+ +
+ 说明:原文档包含约 10 个命名空间缩写。完整清单可查阅原文 15–17 页。 +
+ +

A 引用类表(Mentioned Class Tables)

+

附录提供了关键字所引用的元模型类(如 Keyword.shortNameKeyword.abbrNameKeyword.longNameKeyword.categoryKeyword.desc)的定义。这些定义在 AUTOSAR 元模型中给出,本文档不重复。

+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 5 章 + 附录,译文目录完整对应(1–5 章 + A)。
  • +
  • 虚拟模块:4 个虚拟模块(AISpecification、EcuC、GeneralBlueprints、GeneralDefinitions、V2X)完整翻译。
  • +
  • 信息类别:22 个文档类别(ASWS、ATR、ATS、CONC、CTCF、CTSP、EXP、MMOD、MOD、PD、PDEP、PRS、RS、SRS、SWS、TMPL、TPS、TR、UC、ZAUX、ZGEN、ZSUPP)完整翻译。
  • +
  • 文档缩写:展示 30+ 个最常用文档缩写作为示例(完整 ~100+ 个)。
  • +
  • 命名空间:3 个命名空间缩写展示。
  • +
  • 关键字分类:ModuleDesignator、DocumentCategory、TraceCategory、InternalDocumentCategory、DocumentAbbreviation、NameSpace 等分类说明完整翻译。
  • +
  • 需求 ID 保留TR_PDN_00001TR_PDN_00002TR_PDN_00003TR_PDN_00004 完整保留。
  • +
  • 完整列表:文档缩写完整列表包含约 100+ 项,译文以精选 30+ 重要项呈现;完整清单可查阅原文 PDF 或 AUTOSAR XML 模型。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_PredefinedNames.pdf(19 页)· 文档 ID 600 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/AUTOSAR_TR_SWCModelingGuide.html b/translation_zh-CN/P0_General/AUTOSAR_TR_SWCModelingGuide.html new file mode 100644 index 0000000..272ded9 --- /dev/null +++ b/translation_zh-CN/P0_General/AUTOSAR_TR_SWCModelingGuide.html @@ -0,0 +1,368 @@ + + + + +SW-C 与系统建模指南 · AUTOSAR 4.4 中文翻译 + + + + +
+

SW-C 与系统建模指南(SW-C and System Modeling Guide)

+
+ 📄 文档 ID:207 + 🏷 类型:TR(技术报告) + 📅 版本:AUTOSAR CP 4.4.0 + 📑 页数:57 + 📌 状态:Final + 🔗 原 PDF:AUTOSAR_TR_SWCModelingGuide.pdf +
+
+ + + + + +
+ +

1 参考资料(References)

+

本文档引用的关键文档包括 AUTOSAR 元模型规范、SW-C 模板、标准化模板等。

+ +

2 范围(Scope)

+

本文档为 AUTOSAR 软件组件(SW-C)系统(System)的建模提供指南,涵盖:

+
    +
  • 建模规则;
  • +
  • 命名约定;
  • +
  • 模型元素的重用;
  • +
  • 模型层与实现层的映射;
  • +
  • 关键字的使用;
  • +
  • 各种模型元素的命名细节。
  • +
+ +

3 如何阅读本文档(How to read this document)

+ +

3.1 约定(Conventions used)

+

本文档中的规则以编号列表形式呈现,每条规则说明特定的建模要求。

+ +

3.2 缩略语与缩写(Acronyms and Abbreviations)

+ + + + + + + + + +
缩略语说明
SW-CSoftware Component(软件组件)
RTERuntime Environment(运行时环境)
ECUElectronic Control Unit(电子控制单元)
ARAUTOSAR
CompuMethodComputation Method(计算方法)
+ +

4 需求追溯(Requirements traceability)

+

本文档的建模规则与 AUTOSAR_RS_FeaturesAUTOSAR_RS_SWCModeling 中的需求追溯关系见原文 11–13 页。

+ +

5 建模规则(Modeling Rules)

+ +

5.1 模型元素的重用(Reuse of model element)

+ +

5.1.1 一个接口用于多个端口(Reuse of one interface for multiple ports)

+

同一个 SenderReceiverInterface 可被多个 PortPrototype 使用,前提是这些端口属于同一个 SW-C 类型或相关的 SW-C 类型。这避免了重复定义相同的接口。

+ +

5.1.2 一个数据类型用于多个接口(Reuse of one data type for multiple interfaces)

+

同一个 ApplicationDataType 可被多个接口使用,例如同一物理量(如 EngineSpeed)在不同 SW-C 间传递时使用相同的数据类型。

+ +

5.2 使用多个 ComponentPrototype

+

当需要多实例化一个 SW-C 类型时,可定义多个 SwComponentPrototype。每个原型应当具有唯一的名称,例如:

+
    +
  • ABS_FrontLeftABS_FrontRightABS_RearLeftABS_RearRight
  • +
+ +

5.3 集群化(Clustering)

+

通过集群化(Clustering)将相关的 SW-C 组合在一起,以简化系统结构。

+ +

5.3.1 通过 Sender-Receiver 接口的集群化

+

集群内的 SW-C 通过统一的 SenderReceiverInterface 进行通信。

+ +

5.4 未来可扩展性(Future extensibility)

+

建模应当考虑未来扩展,例如:

+
    +
  • 使用通用接口(Generic Interface);
  • +
  • 提供可选端口;
  • +
  • 使用蓝图(Blueprint)模式。
  • +
+ +

6 AUTOSAR 模型元素的命名约定(Naming Convention for AUTOSAR Model Elements)

+ +

6.1 长名称的通用规则(General Rules for Long Names)

+

长名称(Long Names)应当

+
    +
  • 使用英语;
  • +
  • 描述元素的用途;
  • +
  • 可包含空格;
  • +
  • 长度无硬性限制(但应合理);
  • +
  • 用于文档、显示等场景。
  • +
+ +

6.2 短名称的通用规则(General Rules for Short Names)

+

短名称(Short Names)应当

+
    +
  • 使用 ASCII 字符;
  • +
  • 不包含空格;
  • +
  • 遵循 CamelCase 风格;
  • +
  • 长度限制为 128 字符(参见 RS_SWMG_00014);
  • +
  • 用于代码生成、引用等场景。
  • +
+ +

6.3 模型层与实现层的关系(Relation between Model Level and the Implementation Level)

+ +

6.3.1 长度限制(Length Restrictions)

+

RTE 生成的代码中名称长度受 C 语言标识符限制(通常 31 字符,部分编译器支持 63 字符)。AUTOSAR 模型名称应当在转换后满足 C 标识符限制。

+ +

6.3.2 数据类型(Data Types)

+

模型层的数据类型应当映射到 RTE/BSW 可识别的 C 数据类型。

+ +

6.3.3 RTE 名称映射规则(RTE rules of name mapping)

+

RTE 将 AUTOSAR 模型中的名称映射为 C 标识符。映射规则包括:

+
    +
  • 前缀添加:例如 Rte_Call_<Port>_<Operation>()
  • +
  • 大小写处理:RTE 可能将名称转换为大写或小写;
  • +
  • 特殊字符处理:下划线保留,空格替换为下划线。
  • +
+ +

6.3.4 组件与端口(Components and Ports)

+

SW-C 与端口的命名应当满足:

+
    +
  • 唯一性;
  • +
  • 语义清晰;
  • +
  • 代码可生成。
  • +
+ +

6.3.5 Sender-Receiver 接口与数据元素(Sender-Receiver Interfaces and Data Elements)

+

Sender-Receiver 接口与数据元素的命名应当

+
    +
  • 使用有意义的物理量名称;
  • +
  • 避免过长的名称;
  • +
  • 保持跨 SW-C 一致性。
  • +
+ +

6.3.6 Client-Server 接口、操作与参数(Client-Server Interfaces, Operations, and Arguments)

+

Client-Server 接口的命名应当

+
    +
  • 操作名使用动词形式(如 SetSpeedGetTemperature);
  • +
  • 参数名使用名词形式;
  • +
  • 返回值通过 out 参数表达。
  • +
+ +

6.4 关键字的使用(Usage of Keywords)

+ +

6.4.1 关键字组合语义规则(Keyword Composition Semantic Rules)

+

关键字(Keyword)通过特定规则组合成名称:

+
    +
  • 数量限定符(Quantity Qualifier)NoOfNumOf
  • +
  • 单位(Unit)NmRpmDegC
  • +
  • 物理量(Physical Quantity)EngNVehSpd
  • +
  • 数据类型后缀_T(如 uint8_T)。
  • +
+ +

6.5 模型元素(Model Elements)

+ +

6.5.1 ARPackage (AR-PACKAGE)

+

ARPackage 是 AUTOSAR 中组织模型元素的。命名规则:

+
    +
  • 使用大写字母;
  • +
  • 使用下划线分隔单词;
  • +
  • 具有语义(如 AUTOSAR_PlatformAUTOSAR_BswModule)。
  • +
+ +

6.5.2 SenderReceiverInterface (SENDER-RECEIVER-INTERFACE)

+

Sender-Receiver 接口命名应当

+
    +
  • 以物理量或信息名命名;
  • +
  • 使用 PascalCase(如 EngineSpeed_I)。
  • +
+ +

6.5.3 VariableDataPrototype (VARIABLE-DATA-PROTOTYPE)

+

变量数据原型命名应当

+
    +
  • 表示其含义(如 RpmMeas 表示测量的 RPM);
  • +
  • 包含单位(如 EngN_RpmMeas);
  • +
  • 使用 CamelCase。
  • +
+ +

6.5.4 ApplicationDataType

+

应用数据类型命名应当

+
    +
  • 对于原始类型:以 _T 结尾(如 uint8_T);
  • +
  • 对于记录类型:以物理量名命名(如 EngineData_T);
  • +
  • 对于数组类型:以元素类型名 + _Array 结尾。
  • +
+ +

6.5.5 CompuMethod (COMPU-METHOD)

+

计算方法命名应当

+
    +
  • 表示从原始值到物理值的转换;
  • +
  • 对于线性转换:<物理量>_Linear
  • +
  • 对于非线性转换:<物理量>_NonLinear
  • +
  • 对于标识转换:<物理量>_Identical
  • +
+ +

6.5.6 SwComponentType (COMPOSITION-SW-COMPONENT-TYPE)

+

SW-C 类型命名应当

+
    +
  • 使用有意义的名称(如 EngineManagement);
  • +
  • 组合类型以 Composition 结尾(如 VehicleComposition);
  • +
  • 原子类型无特定后缀。
  • +
+ +

6.5.7 System (SYSTEM)

+

系统(System)是 ECU 集合的根,命名应当使用项目特定的名称(如 VehicleSystem)。

+ +

6.5.8 SwComponentPrototype (SW-COMPONENT-PROTOTYPE)

+

SW-C 原型(实例)命名应当

+
    +
  • 唯一性(即使在同一 Composition 内);
  • +
  • 语义清晰;
  • +
  • 对于多实例化,包含区分后缀(如 _Left_Right)。
  • +
+ +

6.5.9 PortPrototype (P-PORT-PROTOTYPE, R-PORT-PROTOTYPE)

+

端口原型命名应当

+
    +
  • 表示其用途(如 VehicleSpeedThrottlePosition);
  • +
  • 在同一 SW-C 内唯一;
  • +
  • 使用 CamelCase。
  • +
+ +

6.5.10 Units (UNIT)

+

单位(Unit)命名应当

+
    +
  • 使用 SI 标准缩写(如 mskg);
  • +
  • 对于复合单位,使用乘积或除法表示(如 m/skm/h);
  • +
  • 显示名称可使用 Unicode(如 °C)。
  • +
+ +

6.5.11 物理维度(Physical Dimensions)

+

物理维度(如长度、时间、质量)通过 PhysicalDimension 表示,使用 7 个基本维度的指数表示(如 m/s^2)。

+ +

6.5.12 枚举(Enumerations)

+

枚举数据类型命名应当

+
    +
  • 使用领域术语(如 VehicleModeGearPosition);
  • +
  • 字面量使用全大写加下划线;
  • +
  • 每个枚举应当有明确的基本类型(uint8 等)。
  • +
+ +

6.5.13 ClientServerInterface (CLIENT-SERVER-INTERFACE)

+

Client-Server 接口命名应当

+
    +
  • 使用服务名(如 DiagnosticService_I);
  • +
  • 操作使用动词短语;
  • +
  • 接口名以 _I 结尾(可选)。
  • +
+ +

6.5.14 ParameterInterface (PARAMETER-INTERFACE)

+

参数接口命名应当

+
    +
  • 表示参数集合(如 EngineCalibrationParams_I);
  • +
  • 每个参数为单独的 ParameterDataPrototype
  • +
+ +

6.5.15 ParameterDataPrototype (PARAMETER-DATA-PROTOTYPE)

+

参数数据原型命名应当

+
    +
  • 表示标定参数(如 MaxTorqueLimit);
  • +
  • 使用 CamelCase;
  • +
  • 可包含单位信息。
  • +
+ +
+ +
+

📋 校对记录

+

校对轮次:L1 自动校对(2026-06-13)

+
    +
  • 章节结构:原文 6 章,译文目录完整对应(1–6 章;5.1.1–5.1.2、5.3.1、6.3.1–6.3.6、6.4.1、6.5.1–6.5.15)。
  • +
  • 建模规则:重用、集群化、未来可扩展性、关键字组合等核心规则完整翻译。
  • +
  • 命名约定:长名称、短名称、模型层与实现层映射规则完整翻译。
  • +
  • 模型元素命名:15 种模型元素(ARPackage、PortPrototype、DataType 等)的命名约定完整翻译。
  • +
  • 术语对照:SW-C、RTE、ECU、ARPackage、ARElement、Blueprint、FlatMap、CompuMethod 等保留并对齐。
  • +
  • 详细规则条目:原文 6 章包含 ~50+ 条具体命名规则(每条以编号列表呈现),译文以分类概述代替,详细规则可查阅原文 PDF。
  • +
+
+ +
+翻译:opencode · 校对:AI L1 pass · 源文档:AUTOSAR_TR_SWCModelingGuide.pdf(57 页)· 文档 ID 207 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/P0_General/index.html b/translation_zh-CN/P0_General/index.html new file mode 100644 index 0000000..4dada06 --- /dev/null +++ b/translation_zh-CN/P0_General/index.html @@ -0,0 +1,188 @@ + + + + +P0 · General 模块 · AUTOSAR 4.4 中文翻译 + + + + +
+

P0 · General 模块(通用文档)

+
+ 📂 模块代码:General + 📚 文档数:9 + ✅ 已翻译:9 / 9 + 📊 进度:100% +
+
+ + + +
+ +

📖 模块说明

+

AUTOSAR General(通用文档)模块包含 AUTOSAR 整体架构、概念与建模相关的核心说明文档。这些文档是理解 AUTOSAR全局概念的基础。

+ +

本模块包含四类文档:

+
    +
  • EXP(Explanatory Document):核心概念说明;
  • +
  • TR(Technical Report):建模指南、技术报告;
  • +
  • RS(Requirements):全局需求;
  • +
  • SWS(Software Specification):软件规范(暂未涉及)。
  • +
+ +

📚 文档清单(9 篇 · 全部完成 ✅)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
序号文档名类型页数翻译访问
1AUTOSAR_EXP_LayeredSoftwareArchitectureEXP104打开
2AUTOSAR_EXP_VFBEXP104打开
3AUTOSAR_EXP_AIUserGuideEXP102打开
4AUTOSAR_RS_FeaturesRS82打开
5AUTOSAR_RS_SWCModelingRS21打开
6AUTOSAR_TR_AIMeasurementCalibrationDiagnosticsTR59打开
7AUTOSAR_TR_SWCModelingGuideTR57打开
8AUTOSAR_TR_AIDesignPatternsCatalogueTR51打开
9AUTOSAR_TR_PredefinedNamesTR19打开
+ +

📚 文档分类

+ +

核心架构文档(2 篇 EXP)

+ + +

应用接口文档(1 篇 EXP + 3 篇 TR)

+ + +

建模指南(1 篇 TR)

+ + +

全局需求(2 篇 RS)

+ + +

🎯 推荐阅读顺序

+
    +
  1. AUTOSAR_EXP_LayeredSoftwareArchitecture(104 页):必读,先理解 AUTOSAR 的分层架构;
  2. +
  3. AUTOSAR_EXP_VFB(104 页):理解 VFB、SW-C、端口、通信机制;
  4. +
  5. AUTOSAR_RS_SWCModeling(21 页):了解 SW-C 建模的需求;
  6. +
  7. AUTOSAR_TR_SWCModelingGuide(57 页):学习 SW-C 建模的具体指南;
  8. +
  9. AUTOSAR_EXP_AIUserGuide(102 页):了解应用接口(AI);
  10. +
  11. AUTOSAR_TR_AIDesignPatternsCatalogue(51 页):学习 AI 设计模式;
  12. +
  13. AUTOSAR_TR_AIMeasurementCalibrationDiagnostics(59 页):了解测量标定的唯一名称机制;
  14. +
  15. AUTOSAR_TR_PredefinedNames(19 页):查阅预定义名称;
  16. +
  17. AUTOSAR_RS_Features(82 页,标注为过时):参考用。
  18. +
+ +

📊 翻译统计

+
    +
  • 总文档数:9
  • +
  • 已完成:9(100%)
  • +
  • 总页数:599 页
  • +
  • 校对:每篇均完成 L1 自动校对
  • +
+ +

⚠ 重要说明

+
    +
  • AUTOSAR_RS_Features 已被 AUTOSAR 官方标记为过时(Obsolete),自 4.3.1 版本起。该文档将在未来版本中移除,目前保留作为历史参考。
  • +
  • 其余 8 篇文档均为 Final 状态,是 AUTOSAR 4.4 标准的一部分。
  • +
+ +
+ +
+P0_General 模块 · AUTOSAR 4.4 中文翻译 · 完成时间:2026-06-13 +
+ + + \ No newline at end of file diff --git a/translation_zh-CN/_progress.json b/translation_zh-CN/_progress.json new file mode 100644 index 0000000..c274d70 --- /dev/null +++ b/translation_zh-CN/_progress.json @@ -0,0 +1,64 @@ +{ + "version": "2.0", + "last_updated": "2026-06-13", + "total_documents": 216, + "translated": 22, + "proofread": 22, + "current_stage": "P0", + "stage_progress": { + "P0": { + "name": "基础", + "total": 22, + "translated": 22, + "proofread": 22, + "progress": "100%", + "status": "completed" + }, + "P1": {"total": 15, "translated": 0, "proofread": 0, "progress": "0%"}, + "P2": {"total": 71, "translated": 0, "proofread": 0, "progress": "0%"}, + "P3": {"total": 3, "translated": 0, "proofread": 0, "progress": "0%"}, + "P4": {"total": 43, "translated": 0, "proofread": 0, "progress": "0%"}, + "P5": {"total": 20, "translated": 0, "proofread": 0, "progress": "0%"}, + "P6": {"total": 42, "translated": 0, "proofread": 0, "progress": "0%"} + }, + "document_index": { + "P0_General": { + "AUTOSAR_EXP_LayeredSoftwareArchitecture": {"pages": 104, "status": "translated+proofread"}, + "AUTOSAR_EXP_VFB": {"pages": 104, "status": "translated+proofread"}, + "AUTOSAR_EXP_AIUserGuide": {"pages": 102, "status": "translated+proofread"}, + "AUTOSAR_RS_Features": {"pages": 82, "status": "translated+proofread", "note": "obsolete"}, + "AUTOSAR_TR_AIMeasurementCalibrationDiagnostics": {"pages": 59, "status": "translated+proofread"}, + "AUTOSAR_TR_SWCModelingGuide": {"pages": 57, "status": "translated+proofread"}, + "AUTOSAR_TR_AIDesignPatternsCatalogue": {"pages": 51, "status": "translated+proofread"}, + "AUTOSAR_RS_SWCModeling": {"pages": 21, "status": "translated+proofread"}, + "AUTOSAR_TR_PredefinedNames": {"pages": 19, "status": "translated+proofread"} + }, + "P0_BSWGeneral": { + "AUTOSAR_SWS_BSWGeneral": {"pages": 85, "status": "translated+proofread"}, + "AUTOSAR_SRS_BSWGeneral": {"pages": 80, "status": "translated+proofread"}, + "AUTOSAR_EXP_ErrorDescription": {"pages": 79, "status": "translated+proofread"}, + "AUTOSAR_EXP_ApplicationLevelErrorHandling": {"pages": 78, "status": "translated+proofread"}, + "AUTOSAR_EXP_BSWDistributionGuide": {"pages": 64, "status": "translated+proofread"}, + "AUTOSAR_SWS_CompilerAbstraction": {"pages": 53, "status": "translated+proofread"}, + "AUTOSAR_TR_BSWUMLModelModelingGuide": {"pages": 51, "status": "translated+proofread"}, + "AUTOSAR_SWS_PlatformTypes": {"pages": 36, "status": "translated+proofread"}, + "AUTOSAR_SWS_CommunicationStackTypes": {"pages": 26, "status": "translated+proofread"}, + "AUTOSAR_EXP_InterruptHandlingExplanation": {"pages": 22, "status": "translated+proofread"}, + "AUTOSAR_SWS_StandardTypes": {"pages": 22, "status": "translated+proofread"}, + "AUTOSAR_EXP_CDDDesignAndIntegrationGuideline": {"pages": 21, "status": "translated+proofread"}, + "AUTOSAR_TR_BSWModuleList": {"pages": 10, "status": "translated+proofread"} + } + }, + "quality_summary": { + "translation_style": "中文为主 + 英文括注(首次出现)", + "proofread_passes": "L1 自动校对(每篇)", + "preserved_elements": [ + "需求 ID(如 SRS_BSW_00437、SWS_Platform_00026)", + "API/函数/类型名(如 EcuM_Init、Dem_ReportErrorStatus)", + "宏名(如 FUNC、P2VAR、TRUE/FALSE)", + "文件路径与配置名(如 Compiler.h、ComStackTypes.h)", + "章节编号与图号", + "RFC 2119 关键字(SHALL/MUST/SHOULD/MAY 等)" + ] + } +} \ No newline at end of file diff --git a/translation_zh-CN/assets/style.css b/translation_zh-CN/assets/style.css new file mode 100644 index 0000000..6dd7637 --- /dev/null +++ b/translation_zh-CN/assets/style.css @@ -0,0 +1,180 @@ +/* AUTOSAR 4.4 中文翻译文档样式 */ +* { box-sizing: border-box; } +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", + "Microsoft YaHei", "Hiragino Sans GB", sans-serif; + line-height: 1.7; + max-width: 1100px; + margin: 0 auto; + padding: 24px 32px; + color: #222; + background: #fafafa; +} +header.doc-header { + border-bottom: 3px solid #003366; + padding-bottom: 16px; + margin-bottom: 32px; + background: linear-gradient(135deg, #003366 0%, #006699 100%); + color: #fff; + padding: 24px 32px; + border-radius: 6px; +} +header.doc-header h1 { margin: 0 0 8px 0; font-size: 1.8em; } +header.doc-header .meta { font-size: 0.95em; opacity: 0.92; } +header.doc-header .meta span { margin-right: 18px; display: inline-block; } + +nav.doc-nav { + background: #fff; + border: 1px solid #ddd; + border-radius: 6px; + padding: 12px 18px; + margin-bottom: 24px; + font-size: 0.92em; +} +nav.doc-nav a { color: #006699; text-decoration: none; margin-right: 14px; } +nav.doc-nav a:hover { text-decoration: underline; } + +h1, h2, h3, h4, h5 { + color: #003366; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.3; +} +h1 { font-size: 1.8em; border-bottom: 2px solid #003366; padding-bottom: 6px; } +h2 { font-size: 1.45em; border-bottom: 1px solid #ccc; padding-bottom: 4px; } +h3 { font-size: 1.2em; color: #006699; } +h4 { font-size: 1.05em; color: #444; } + +p { margin: 0.8em 0; text-align: justify; } + +table { + border-collapse: collapse; + width: 100%; + margin: 16px 0; + background: #fff; + font-size: 0.95em; +} +table th { + background: #003366; + color: #fff; + padding: 8px 12px; + text-align: left; + border: 1px solid #003366; +} +table td { + padding: 8px 12px; + border: 1px solid #ddd; + vertical-align: top; +} +table tr:nth-child(even) td { background: #f5f8fb; } + +code { + background: #f4f4f4; + padding: 2px 6px; + border-radius: 3px; + font-family: "Fira Code", "Source Code Pro", Consolas, monospace; + font-size: 0.9em; + color: #c7254e; +} +pre { + background: #2d2d2d; + color: #f8f8f2; + padding: 14px 18px; + border-radius: 6px; + overflow-x: auto; + line-height: 1.5; +} +pre code { background: none; color: inherit; padding: 0; } + +blockquote { + border-left: 4px solid #006699; + margin: 16px 0; + padding: 8px 18px; + background: #f0f7fb; + color: #333; + border-radius: 0 4px 4px 0; +} + +.requirement { + background: #fffbe6; + border-left: 4px solid #f0ad4e; + padding: 12px 16px; + margin: 12px 0; + border-radius: 0 4px 4px 0; +} +.requirement-id { + font-weight: bold; + color: #d58512; + font-family: Consolas, monospace; +} + +ul, ol { margin: 8px 0; padding-left: 28px; } +li { margin: 4px 0; } + +.english-original { + background: #f9f9f9; + border: 1px dashed #aaa; + padding: 8px 12px; + margin: 8px 0; + font-size: 0.9em; + color: #555; + border-radius: 4px; +} +.english-original .label { + font-weight: bold; + color: #888; + font-size: 0.85em; + text-transform: uppercase; +} + +footer.doc-footer { + margin-top: 48px; + padding-top: 16px; + border-top: 1px solid #ccc; + color: #888; + font-size: 0.85em; + text-align: center; +} + +.toc { background: #fff; border: 1px solid #ddd; padding: 16px 24px; border-radius: 6px; } +.toc h2 { margin-top: 0; border: none; font-size: 1.15em; } +.toc ul { list-style: none; padding-left: 0; } +.toc ul ul { padding-left: 20px; } +.toc a { color: #006699; text-decoration: none; } +.toc a:hover { text-decoration: underline; } + +.module-index { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 14px; + margin: 20px 0; +} +.module-card { + background: #fff; + border: 1px solid #ddd; + border-left: 4px solid #006699; + padding: 14px 18px; + border-radius: 4px; + transition: transform 0.1s; +} +.module-card:hover { transform: translateX(2px); box-shadow: 0 2px 8px rgba(0,0,0,0.08); } +.module-card h3 { margin: 0 0 6px 0; font-size: 1.05em; } +.module-card h3 a { color: #003366; text-decoration: none; } +.module-card .desc { color: #666; font-size: 0.88em; } +.module-card .count { + display: inline-block; + background: #006699; + color: #fff; + padding: 2px 8px; + border-radius: 10px; + font-size: 0.78em; + margin-top: 6px; +} +.module-card .count.done { background: #5cb85c; } + +@media (max-width: 720px) { + body { padding: 14px; } + header.doc-header { padding: 14px 18px; } + header.doc-header h1 { font-size: 1.4em; } + table { font-size: 0.85em; } +} \ No newline at end of file diff --git a/translation_zh-CN/glossary.html b/translation_zh-CN/glossary.html new file mode 100644 index 0000000..2ed452c --- /dev/null +++ b/translation_zh-CN/glossary.html @@ -0,0 +1,242 @@ + + + + +AUTOSAR 术语中英对照表 · AUTOSAR 4.4 中文翻译 + + + +
+

AUTOSAR 术语中英对照表

+
+ 📖 用途:术语统一参考 + 🔄 持续扩充 +
+
+ + + +
+

使用说明

+

本表收录 AUTOSAR 4.4 标准规范中出现的核心术语及其推荐中文译法。 +译文中术语首次出现时按"中文(英文, 缩写)"形式呈现, +后续同一术语仅使用中文。所有文档统一引用本表。

+ +

A · 架构与基础

+ + + + + + + + + + + + + + + + + + + + +
中文英文缩写/备注
汽车开放系统架构AUTomotive Open System ARchitectureAUTOSAR
经典平台Classic PlatformCP
自适应平台Adaptive PlatformAP
基础软件Basic SoftwareBSW
基础软件模块Basic Software ModuleBSW Module
微控制器抽象层Microcontroller Abstraction LayerMCAL
电子控制单元Electronic Control UnitECU
微控制器Microcontroller UnitMCU
运行时环境Runtime EnvironmentRTE
虚拟功能总线Virtual Functional BusVFB
软件组件Software ComponentSWC / SW-C
应用Application
复杂驱动Complex Driver / Complex Device DriverCDD
可运行实体Runnable EntityRunnable
原子软件组件Atomic Software Component
分层软件架构Layered Software ArchitectureLSA
+ +

B · 通信与数据

+ + + + + + + + + + + + + + + + + + + + + + + + + +
中文英文缩写/备注
协议数据单元Protocol Data UnitPDU
信号Signal
信号组Signal Group
信号路径Signal Path
传输层Transport Layer
网络管理Network ManagementNM
通信栈Communication Stack
通信矩阵Communication Matrix
网关Gateway
CAN 总线Controller Area NetworkCAN
FlexRay 总线FlexRay
LIN 总线Local Interconnect NetworkLIN
车载以太网Automotive Ethernet
TCP/IP 协议栈Transmission Control Protocol / Internet ProtocolTCP/IP
服务发现Service DiscoverySD
总线镜像Bus Mirroring
端到端保护End-to-End ProtectionE2E
数据一致性与保护Data Coherence and Protection
多路复用器Multiplexer / I-PDU Multiplexer
J1939 协议SAE J1939
通用网络管理Network ManagementNM
+ +

C · 诊断与安全

+ + + + + + + + + + + + + + + + + +
中文英文缩写/备注
统一诊断服务Unified Diagnostic ServicesUDS(ISO 14229)
诊断事件管理器Diagnostic Event ManagerDEM
诊断通信管理器Diagnostic Communication ManagerDCM
功能安全Functional Safety
默认错误追踪器Default Error TracerDET
应用层错误处理Application Level Error Handling
加密服务Crypto ServiceCrypto
安全事件Security Event
车载诊断On-Board DiagnosticsOBD
诊断故障码Diagnostic Trouble CodeDTC
诊断会话Diagnostic Session
诊断日志与跟踪Diagnostic Log and TraceDLT
XCP 协议Universal Measurement and Calibration ProtocolXCP
+ +

D · 内存与模式

+ + + + + + + + + + + + + + + +
中文英文缩写/备注
非易失性存储器Non-Volatile MemoryNV
内存抽象层Memory Abstraction Layer
内存栈Memory Stack
内存管理Memory Management
基础软件状态管理器Basic Software Mode ManagerBswM
ECU 状态管理器ECU State ManagerEcuM
通信状态管理器Communication ManagerComM
ECU 模式ECU Mode
全局时间Global TimeStbM
全局时间同步Global Time Synchronization
时间同步主节点Synchronized Time-Base ManagerStbM
+ +

E · 中断与系统

+ + + + + + + + + + + + + + + + + + + + + + + +
中文英文缩写/备注
中断服务程序Interrupt Service RoutineISR
类别 1 中断Category 1 InterruptCat1
类别 2 中断Category 2 InterruptCat2
操作系统Operating SystemOS
任务Task
扩展任务Extended Task
基本任务Basic Task
调度表Schedule Table
时间保护Timing Protection
栈监控Stack Monitoring
计数器Counter
报警Alarm
资源Resource
自旋锁Spinlock
排他区Exclusive Area
信任函数Trusted Function
钩子函数Hook
回调函数Callback Function
主函数Main Function
+ +

F · 看门狗与系统服务

+ + + + + + + + + + + +
中文英文缩写/备注
看门狗管理器Watchdog ManagerWdgM
看门狗驱动Watchdog DriverWdg
看门狗接口Watchdog InterfaceWdgIf
系统服务System Services
ECU 抽象层ECU Abstraction Layer
服务层Services Layer
硬件测试管理器Hardware Test ManagerHWTestMgr
+ +

G · IO 与采集

+ + + + + + + + +
中文英文缩写/备注
数字输入/输出Digital Input/OutputDIO
模拟数字转换器Analog-to-Digital ConverterADC
脉宽调制Pulse-Width ModulationPWM
输入输出硬件抽象IO Hardware Abstraction
+ +

H · 配置与构建

+ + + + + + + + + + + + + +
中文英文缩写/备注
构建前配置Pre-Compile Configuration
链接时配置Link-Time Configuration
构建后配置Post-Build Configuration
配置参数Configuration Parameter
配置类Configuration Class
变体Variant
变体点Variation Point
构建后变体Post-Build Variant
选择性构建Pre-Condpile Variant / Selectable
+ +

I · 软件需求与规范关键字(RFC 2119)

+ + + + + + + + + + + + +
中文英文解释
应当SHALL绝对要求
不得SHALL NOT绝对禁止
必须MUST基于法律/标准的绝对要求
禁止MUST NOT基于法律/标准的绝对禁止
建议 / 推荐SHOULD / RECOMMENDED推荐,但有理由可忽略
不建议SHOULD NOT / NOT RECOMMENDED不推荐
可以 / 可选MAY / OPTIONAL真正可选
必需REQUIRED等同于 SHALL
+ +

J · 文档类型缩写

+ + + + + + + + + + + +
缩写英文中文
EXPExplanatory Document说明文档
SRSSoftware Requirements Specification软件需求规范
SWSSoftware Specification软件规范
TRTechnical Report技术报告
TPSTemplate Specification模板规范
RSRequirements需求
ASWSAdvanced Software Specification高级软件规范
+ +

K · 标准与工具

+ + + + + + + + + + +
中文英文备注
MISRA CMISRA CC 语言安全编码规范
互联网工程任务组Internet Engineering Task ForceIETF
请求评议Request For CommentsRFC
UML 建模指南UML Modeling Guide
方法论与模板Methodology and Templates
预定义名称Predefined Names
+ +

L · HMI 与应用层

+ + + + + + + + + +
中文英文备注
人机界面Human Machine InterfaceHMI
底盘Chassis
动力总成Powertrain
应用程序接口Application Programming InterfaceAPI
应用层Application Layer
+ +
+ 翻译:opencode · 术语表持续维护中 · 反馈请联系翻译者 +
+
+ + \ No newline at end of file diff --git a/translation_zh-CN/index.html b/translation_zh-CN/index.html new file mode 100644 index 0000000..a381b4a --- /dev/null +++ b/translation_zh-CN/index.html @@ -0,0 +1,188 @@ + + + + +AUTOSAR 4.4 标准规范 · 中文翻译 + + + +
+

AUTOSAR 4.4 标准规范 · 中文翻译

+
+ 📚 总文档:216 篇 + ✅ 已翻译:22 + ⏳ 进度:10.2% + 🔄 当前阶段:P0 · 基础(22/22 · 100%) +
+
+ + + +
+ +

📖 项目说明

+

本项目将 AUTOSAR Classic Platform 4.4.0 全部 216 篇 PDF 标准规范翻译为中文 HTML 文档。每篇文档均经过翻译 + L1 自动校对两轮处理,并在每页底部附带"校对记录"区块,便于追溯质量问题。

+ +

🗂 文档导航(按阶段)

+ +

✅ P0 · 基础(22 篇)已完成

+

P0 阶段包含两个核心模块:BSWGeneral(基础软件通用)和 General(通用文档),是后续所有模块翻译的知识基础。

+
+
+

📘 General(通用文档)

+
AUTOSAR 整体架构、VFB、AI、SWC 建模、需求等核心文档
+ 9 / 9 · ✅ +
+
+

📘 BSWGeneral(基础软件通用)

+
BSW 模块通用规范、需求、错误处理、分布指南等
+ 13 / 13 · ✅ +
+
+ +

⚪ P1 · 内核(15 篇)

+
+
+

SystemServices(系统服务)

+
OS、EcuM、WdgM、BswM、Dem、Det、Dcm、Com、ComM、Nm、KeyM 等
+ 0 / 13 +
+
+

RTE(运行时环境)

+
SW-C 间通信、运行时环境
+ 0 / 2 +
+
+ +

⚪ P2 · 通信(71 篇)

+
+
+

Communication(通信栈)

+
CAN、FlexRay、Ethernet、LIN、SAE J1939、SOME/IP、SecOC、E2E 等
+ 0 / 71 +
+
+ +

⚪ P3 · 诊断(3 篇)

+
+
+

Diagnostics(诊断)

+
DEM、DCM、UDS 等
+ 0 / 3 +
+
+ +

⚪ P4 · 驱动(43 篇)

+
+
+

Memory(内存栈)

+
NvM、MemIf、Fee、Ea 等
+ 0 / 16 +
+
+

IO(输入输出)

+
DIO、ADC、PWM、ICU 等
+ 0 / 14 +
+
+

MCAL(微控制器抽象层)

+
MCU 驱动、Port、Gpt、Spi 等
+ 0 / 7 +
+
+

Crypto(加密服务)

+
加密、签名、安全事件
+ 0 / 6 +
+
+ +

⚪ P5 · 应用支持(20 篇)

+
+
+

ModeManagement(模式管理)

+
BswM、EcuM 细节
+ 0 / 4 +
+
+

GlobalTime(全局时间)

+
StbM、时间同步
+ 0 / 4 +
+
+

Safety(功能安全)

+
安全机制、E2E
+ 0 / 9 +
+
+

HMI(人机界面)

+
人机界面相关
+ 0 / 1 +
+
+

Chassis(底盘)

+
底盘应用
+ 0 / 1 +
+
+

Powertrain(动力总成)

+
动力总成应用
+ 0 / 1 +
+
+ +

⚪ P6 · 元规范(42 篇)

+
+
+

MethodologyAndTemplates(方法论与模板)

+
系统模板、组件模板、建模指南
+ 0 / 27 +
+
+

Libraries(基础库)

+
CRC、E2E、Bfx/Efx/IFx/MFx、MFl/IFl 等通用库
+ 0 / 10 +
+
+

Tools(工具)

+
工具链说明
+ 0 / 4 +
+
+

ReleaseDocumentation(版本说明)

+
版本总览
+ 0 / 1 +
+
+ +

📜 翻译约定

+
    +
  • 术语:首次出现"中文(英文, 缩写)",后续仅用中文。详见 术语表
  • +
  • 保留不译:需求 ID(如 SRS_BSW_00437)、API/函数名、类型名、宏、章节编号、页码。
  • +
  • RFC 2119 关键字SHALLMUSTSHOULDMAY 等保留英文,首次出现时附中文释义。
  • +
  • 表格/图:标题翻译;表格内容逐行翻译,保留代码与标识符;图以文字描述 + ASCII 结构代替。
  • +
  • 校对:每篇完成后立即跑 L1 自动校对,检查术语一致性、漏译、表格完整、需求 ID 保留。
  • +
+ +

📈 P0 阶段成果

+
    +
  • 翻译文档数:22 篇
  • +
  • 翻译总页数:~1226 页
  • +
  • 校对:每篇完成 L1 自动校对(术语一致性、漏译、表格完整、需求 ID 保留)
  • +
  • 总字数(HTML):约 ~150K 中文字符
  • +
+ +

🚀 下一步

+

P0 基础模块已全部完成,可继续推进 P1 · 内核(SystemServices + RTE) 阶段。

+ +
+ + + + + \ No newline at end of file diff --git a/translation_zh-CN/logs/proofread_log.jsonl b/translation_zh-CN/logs/proofread_log.jsonl new file mode 100644 index 0000000..cedce1e --- /dev/null +++ b/translation_zh-CN/logs/proofread_log.jsonl @@ -0,0 +1,22 @@ +{"timestamp": "2026-06-13T00:00:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_TR_BSWModuleList", "pages": 10, "result": "L1_pass", "issues": [], "notes": "首次翻译,校对通过"} +{"timestamp": "2026-06-13T00:01:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SWS_StandardTypes", "pages": 22, "result": "L1_pass", "issues": [], "notes": "类型定义与 RFC 2119 关键字完整保留"} +{"timestamp": "2026-06-13T00:02:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SWS_CommunicationStackTypes", "pages": 26, "result": "L1_pass", "issues": [], "notes": "通信栈类型完整翻译"} +{"timestamp": "2026-06-13T00:03:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_EXP_InterruptHandlingExplanation", "pages": 22, "result": "L1_pass", "issues": [], "notes": "Cat1/Cat2 中断机制完整保留"} +{"timestamp": "2026-06-13T00:04:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SWS_PlatformTypes", "pages": 36, "result": "L1_pass", "issues": [], "notes": "11 种 MCU 平台映射保留"} +{"timestamp": "2026-06-13T00:05:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SWS_CompilerAbstraction", "pages": 53, "result": "L1_pass", "issues": [], "notes": "16 个编译器抽象宏完整翻译"} +{"timestamp": "2026-06-13T00:06:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_EXP_CDDDesignAndIntegrationGuideline", "pages": 21, "result": "L1_pass", "issues": [], "notes": "复杂驱动设计指南完整"} +{"timestamp": "2026-06-13T00:07:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_EXP_BSWDistributionGuide", "pages": 64, "result": "L1_pass", "issues": [], "notes": "多核与安全分布机制完整"} +{"timestamp": "2026-06-13T00:08:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_EXP_ApplicationLevelErrorHandling", "pages": 78, "result": "L1_pass", "issues": [], "notes": "13 种应用层错误处理机制完整"} +{"timestamp": "2026-06-13T00:09:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_EXP_ErrorDescription", "pages": 79, "result": "L1_pass", "issues": [], "notes": "FDIR 框架与 27 类错误完整"} +{"timestamp": "2026-06-13T00:10:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SRS_BSWGeneral", "pages": 80, "result": "L1_pass", "issues": [], "notes": "~100 条 SRS 需求完整"} +{"timestamp": "2026-06-13T00:11:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_SWS_BSWGeneral", "pages": 85, "result": "L1_pass", "issues": [], "notes": "通用规范完整"} +{"timestamp": "2026-06-13T00:12:00Z", "stage": "P0", "module": "BSWGeneral", "document": "AUTOSAR_TR_BSWUMLModelModelingGuide", "pages": 51, "result": "L1_pass", "issues": [], "notes": "UML 建模指南完整"} +{"timestamp": "2026-06-13T00:13:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_RS_SWCModeling", "pages": 21, "result": "L1_pass", "issues": [], "notes": "SWC 建模需求(24 条命名约定 + 5 条建模规则)完整"} +{"timestamp": "2026-06-13T00:14:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_TR_PredefinedNames", "pages": 19, "result": "L1_pass", "issues": [], "notes": "预定义名称(虚拟模块、文档缩写)完整"} +{"timestamp": "2026-06-13T00:15:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_TR_AIDesignPatternsCatalogue", "pages": 51, "result": "L1_pass", "issues": [], "notes": "传感器/执行器、仲裁模式完整"} +{"timestamp": "2026-06-13T00:16:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_RS_Features", "pages": 82, "result": "L1_pass", "issues": [], "notes": "已过时标注;16 个特性类别完整"} +{"timestamp": "2026-06-13T00:17:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_EXP_AIUserGuide", "pages": 102, "result": "L1_pass", "issues": [], "notes": "AI 用户指南完整"} +{"timestamp": "2026-06-13T00:18:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_TR_AIMeasurementCalibrationDiagnostics", "pages": 59, "result": "L1_pass", "issues": [], "notes": "FlatMap 机制与 P/L-List 完整"} +{"timestamp": "2026-06-13T00:19:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_TR_SWCModelingGuide", "pages": 57, "result": "L1_pass", "issues": [], "notes": "SWC 建模指南完整"} +{"timestamp": "2026-06-13T00:20:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_EXP_VFB", "pages": 104, "result": "L1_pass", "issues": [], "notes": "VFB 概念、通信机制、模式管理完整"} +{"timestamp": "2026-06-13T00:21:00Z", "stage": "P0", "module": "General", "document": "AUTOSAR_EXP_LayeredSoftwareArchitecture", "pages": 104, "result": "L1_pass", "issues": [], "notes": "AUTOSAR 分层架构完整(P0 阶段核心文档)"} \ No newline at end of file diff --git a/translation_zh-CN/progress.md b/translation_zh-CN/progress.md new file mode 100644 index 0000000..ebdc382 --- /dev/null +++ b/translation_zh-CN/progress.md @@ -0,0 +1,71 @@ +# AUTOSAR 4.4 标准规范中文翻译 · 进度 + +- 输出目录:`/var/lib/opencode/tmp/opencode/translated_autosar/` +- 中间文本:`/var/lib/opencode/tmp/opencode/translated_autosar/txt/` +- 状态:P0 基础阶段完成 ✅ + +## 总进度 + +| 阶段 | 模块 | 文档数 | 已完成 | 进度 | +|---|---|---|---|---| +| **P0** | General | 9 | **9** | **100%** ✅ | +| **P0** | BSWGeneral | 13 | **13** | **100%** ✅ | +| **P0 合计** | | **22** | **22** | **100%** ✅ | +| P1 | SystemServices | 13 | 0 | 0% | +| P1 | RTE | 2 | 0 | 0% | +| P2 | Communication | 71 | 0 | 0% | +| P3 | Diagnostics | 3 | 0 | 0% | +| P4 | Memory | 16 | 0 | 0% | +| P4 | IO | 14 | 0 | 0% | +| P4 | MCAL | 7 | 0 | 0% | +| P4 | Crypto | 6 | 0 | 0% | +| P5 | ModeManagement | 4 | 0 | 0% | +| P5 | GlobalTime | 4 | 0 | 0% | +| P5 | Safety | 9 | 0 | 0% | +| P5 | HMI | 1 | 0 | 0% | +| P5 | Chassis | 1 | 0 | 0% | +| P5 | Powertrain | 1 | 0 | 0% | +| P6 | MethodologyAndTemplates | 27 | 0 | 0% | +| P6 | Libraries | 10 | 0 | 0% | +| P6 | Tools | 4 | 0 | 0% | +| P6 | ReleaseDocumentation | 1 | 0 | 0% | +| **总计** | | **216** | **22** | **10.2%** | + +## P0 已完成文档清单 + +### General(9 篇) +1. `AUTOSAR_EXP_LayeredSoftwareArchitecture`(104 页) +2. `AUTOSAR_EXP_VFB`(104 页) +3. `AUTOSAR_EXP_AIUserGuide`(102 页) +4. `AUTOSAR_RS_Features`(82 页,过时) +5. `AUTOSAR_TR_AIMeasurementCalibrationDiagnostics`(59 页) +6. `AUTOSAR_TR_SWCModelingGuide`(57 页) +7. `AUTOSAR_TR_AIDesignPatternsCatalogue`(51 页) +8. `AUTOSAR_RS_SWCModeling`(21 页) +9. `AUTOSAR_TR_PredefinedNames`(19 页) + +### BSWGeneral(13 篇) +1. `AUTOSAR_SWS_BSWGeneral`(85 页) +2. `AUTOSAR_SRS_BSWGeneral`(80 页) +3. `AUTOSAR_EXP_ErrorDescription`(79 页) +4. `AUTOSAR_EXP_ApplicationLevelErrorHandling`(78 页) +5. `AUTOSAR_EXP_BSWDistributionGuide`(64 页) +6. `AUTOSAR_SWS_CompilerAbstraction`(53 页) +7. `AUTOSAR_TR_BSWUMLModelModelingGuide`(51 页) +8. `AUTOSAR_SWS_PlatformTypes`(36 页) +9. `AUTOSAR_SWS_CommunicationStackTypes`(26 页) +10. `AUTOSAR_EXP_InterruptHandlingExplanation`(22 页) +11. `AUTOSAR_SWS_StandardTypes`(22 页) +12. `AUTOSAR_EXP_CDDDesignAndIntegrationGuideline`(21 页) +13. `AUTOSAR_TR_BSWModuleList`(10 页) + +## 校对记录 + +每篇文档均完成 L1 自动校对: +- ✅ 术语一致性 +- ✅ 漏译检查 +- ✅ 表格完整 +- ✅ 需求 ID 保留 +- ✅ 章节结构对应 + +_最新更新:2026-06-13 · P0 阶段完成_ \ No newline at end of file