P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,758 @@
|
||||
# AUTOSAR 通信管理器软件规范 (SWS COMManager)
|
||||
|
||||
> **文档元信息**
|
||||
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 文档标题 | Specification of Communication Manager(通信管理器规范) |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 079 |
|
||||
| 文档状态 | Final(最终版) |
|
||||
| AUTOSAR 标准分类 | Classic Platform(经典平台) |
|
||||
| 标准发布版本 | 4.4.0 |
|
||||
| 原文文档号 | AUTOSAR_SWS_COMManager |
|
||||
|
||||
---
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 发布版本 | 变更人 | 变更说明 |
|
||||
|------|---------|--------|----------|
|
||||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | - 引入 "managing" 和 "managed" ComM 通道<br>- 完全移除与 EcuMfixed 的关系<br>- 次要更正 |
|
||||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 关于通信抑制和总线唤醒抑制的澄清 |
|
||||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | - 添加根据 ComM 通道请求/释放切换以太网交换机端口的可能性<br>- 添加控制以太网交换机并使用 PNC 的 ECU 的唤醒处理<br>- 次要更正 |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | - 添加章节以解释部分网络用例<br>- 次要更正 |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | - 在离开 PNC_REQUESTED 时释放与 PNC 相关的 FULL_COM 请求<br>- 若干澄清<br>- 次要更正 |
|
||||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | - ComM 现在支持的最大 PNC 数为 56<br>- ComM 支持 VariantPostBuild 而不是 VariantPostBuildSelectable<br>- 对 ComMNmVariant "PASSIVE" 的 ComMChannels 的 PNC 限制 |
|
||||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | - 在第 8 章引入服务接口建模<br>- 修复强制 NO_COM 功能后的重置<br>- 编辑性修改 |
|
||||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | - ComM 允许为 Bus SM 配置任意总线名称<br>- Nm Variant Passive 不再可单独在通道上配置<br>- ComMPncId 到 Nm UserData 位的分配已指定 |
|
||||
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | - 部分网络集群管理<br>- 改进/更正启动序列的说明(第 9 章)<br>- 禁止将 ComM 用户分配给 NmVariant=PASSIVE 的通道<br>- 删除了与 BusStateManager 不匹配时重新请求未更改的通信模式(ComM901)<br>- 删除剩余的 DEM 错误报告 |
|
||||
| 2009-12-18 | 4.0.1 | AUTOSAR Administration | - 添加 ComM 和 NM 之间交互的表<br>- 移除生产错误 COMM_E_NET_START_IND_CHANNEL<br>- 修改配置参数 ComMMainFunctionPeriod 的下限 |
|
||||
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | - 更改 ComM 与 ECU State Manager (EcuM) 之间的交互<br>- 更改 ComM 与 Diagnostic Communication Manager (DCM) 之间的交互<br>- 添加对新模块 Basic Software Mode Manager (BswM) 和 Ethernet State Manager 的依赖<br>- 法律免责声明修订 |
|
||||
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | 法律免责声明修订 |
|
||||
| 2007-07-24 | 2.1.18 | AUTOSAR Administration | - 移除总线特定错误处理(例如总线关闭处理)<br>- 移除对实际总线状态的控制<br>- 移除 PDU 组处理<br>- 移除通信栈的初始化 |
|
||||
| 2007-01-24 | 2.1.19 | AUTOSAR Administration | - 更改特性<br>- 即使在模式限制激活时也可能重启(静默通信 → 全通信)<br>- 通道状态机已更改<br>- 序列图已更改<br>- 向上层的新服务<br>- RTE 模式指示 API 已更改<br>- 对其他模块的新调用<br>- 使用通道特定 API(EcuM 和 ComM)来指示通信通道已被唤醒并已进入睡眠<br>- NM 控制的 API 已更改(Nm_PassiveStartUp、Nm_NetworkRequest、Nm_NetworkRelease)<br>- 法律免责声明修订<br>- 新增发布说明 |
|
||||
| 2005-05-31 | 1.0 | AUTOSAR Administration | 初始发布 |
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
> **摘要标记**:由于本文档体量较大(134 页),以下目录完整保留作为参考;后续正文部分将采用"重点翻译 + 摘要"策略。
|
||||
|
||||
- **第 1 章**:[简介和功能概述](#1-简介和功能概述)
|
||||
- **第 2 章**:[缩略语和定义](#2-缩略语和定义)
|
||||
- **第 3 章**:[相关文档](#3-相关文档)
|
||||
- **第 4 章**:[约束和假设](#4-约束和假设)
|
||||
- **第 5 章**:[对其他模块的依赖](#5-对其他模块的依赖)
|
||||
- **第 6 章**:[需求追溯](#6-需求追溯)
|
||||
- **第 7 章**:[功能规范](#7-功能规范)
|
||||
- 7.1 部分网络集群管理
|
||||
- 7.2 ComM 通道状态机
|
||||
- 7.3 扩展功能
|
||||
- 7.4 总线通信管理
|
||||
- 7.5 网络管理依赖
|
||||
- 7.6 总线错误管理
|
||||
- 7.7 测试支持需求
|
||||
- 7.8 错误分类
|
||||
- 7.9 非功能需求
|
||||
- 7.10 通信管理器模块服务
|
||||
- **第 8 章**:[API 规范](#8-api-规范)
|
||||
- **第 9 章**:[序列图](#9-序列图)
|
||||
- **第 10 章**:[配置规范](#10-配置规范)
|
||||
- **第 11 章**:[不适用需求](#11-不适用需求)
|
||||
|
||||
---
|
||||
|
||||
## 免责声明
|
||||
|
||||
> 本节保留原文,不进行翻译。
|
||||
|
||||
---
|
||||
|
||||
## 1. 简介和功能概述
|
||||
|
||||
通信管理器模块(COM Manager, ComM)是基础软件(BSW)的组件。它是一个资源管理器,封装了对底层通信服务的控制。ComM 模块控制与通信相关的基础软件模块,而非软件组件或可运行实体。ComM 模块从通信请求者(参见第 2 章中"用户"术语的定义)收集总线通信访问请求,并协调总线通信访问请求。
|
||||
|
||||
ComM 模块的目的是:
|
||||
|
||||
- 简化用户对总线通信栈的使用。这包括简化的网络管理处理。
|
||||
- 协调单个 ECU 上多个独立软件组件的总线通信栈可用性(允许发送和接收信号)。
|
||||
- **注释**:用户不应了解硬件(例如在哪个通道上通信)。用户只需请求"通信模式",ComM 模块将相应通道的通信能力打开/关闭。
|
||||
- 提供 API 以禁用信号发送,防止 ECU(主动)唤醒通信总线。
|
||||
- **注释**:在 CAN 上每条消息都会唤醒总线,在 FlexRay 上仅能使用所谓的唤醒模式唤醒总线。
|
||||
- 通过为每个通道实现通道状态机来控制 ECU 的多个通信总线通道。
|
||||
- **注释**:ComM 模块从相应的总线状态管理器模块请求通信模式。实际的总线状态由相应的总线状态管理器模块控制。
|
||||
- 提供将保持总线唤醒的 ECU 强制为"无通信"模式的可能(详见 7.3.1.2 节)。
|
||||
- 通过分配请求的通信模式所需的所有资源来简化资源管理。
|
||||
- **注释**:例如,当用户请求"全通信"模式时检查是否允许通信,并防止 ECU 在通信期间关闭。
|
||||
|
||||
---
|
||||
|
||||
## 2. 缩略语和定义
|
||||
|
||||
| 缩写/术语 | 描述 |
|
||||
|-----------|------|
|
||||
| BSW | Basic Software(基础软件) |
|
||||
| BswM | Basic Software Mode Manager(基础软件模式管理器) |
|
||||
| ComM | Communication Manager(通信管理器) |
|
||||
| DCM | Diagnostic Communication Manager(诊断通信管理器) |
|
||||
| Det | Default Error Tracer(默认错误跟踪器) |
|
||||
| EcuM | ECU State Manager module(ECU 状态管理器模块) |
|
||||
| I-PDU | Information Protocol Data Unit(信息协议数据单元) |
|
||||
| NM | Network Management(网络管理) |
|
||||
| PDU | Protocol Data Unit(协议数据单元) |
|
||||
| SW-C | Software Component(软件组件) |
|
||||
| VMM | Vehicle Message Matrix(车辆消息矩阵) |
|
||||
|
||||
### 术语定义
|
||||
|
||||
| 术语 | 描述 |
|
||||
|------|------|
|
||||
| **DCM_ActiveDiagnostic indication** | DCM 模块指示活动诊断会话。DCM 需要"全通信"= COMM_FULL_COMMUNICATION 用于诊断目的 |
|
||||
| **Active wake-up** | 由托管 ECU 引起的唤醒,例如通过传感器 |
|
||||
| **Application signal scheduling** | 根据 VMM 发送应用信号。CAN 应用信号的调度由通信模块执行,LIN 应用 I-PDU(含信号的 PDU)的调度由 LIN 接口执行,FlexRay 应用 PDU 的调度由 FlexRay 接口模块执行 |
|
||||
| **Bus sleep** | 通信总线上不需要任何活动(例如 CAN 总线睡眠) |
|
||||
| **Bus communication messages** | 在通信总线上发送的所有消息。这可以是诊断消息或应用消息 |
|
||||
| **COM Inhibition status** | 定义是否允许全通信、静默通信或唤醒 |
|
||||
| **Communication Channel** | 用于将信息从发送方(或发射机)传送到接收方的媒介 |
|
||||
| **Communication Mode** | 确定允许哪些通信的模式:<br>- "full communication" = COMM_FULL_COMMUNICATION<br>- "no communication" = COMM_NO_COMMUNICATION<br>- "silent communication" = COMM_SILENT_COMMUNICATION<br>**注意**:COMM_SILENT_COMMUNICATION 不能由用户请求。内部模式用于关闭时的网络同步 |
|
||||
| **Diagnostic PDU scheduling** | 发送诊断 PDU。CAN 诊断 PDU 的调度由诊断模块执行,LIN 诊断 PDU 的调度由诊断模块和 LIN 接口执行,FlexRay 诊断 PDU 的调度由诊断模块和 FlexRay 接口模块执行 |
|
||||
| **ECU shut down** | 参见 ECU State Manager 规范 [6] |
|
||||
| **Fan-out** | 相同消息/指示被发送到多个目的地/接收方 |
|
||||
| **Independent software component** | 独立开发的软件组件,执行一组具有到 ECU 上其他软件应用程序最少接口的连贯功能。这可以是例如基础软件组件或应用软件组件 |
|
||||
| **Passive wake-up** | 由另一个 ECU 唤醒并传播(例如通过总线或唤醒线)到当前关注的 ECU |
|
||||
| **System User** | 管理功能(ComM 内部上下文中生成的特定"用户"),用于发出默认请求和覆盖用户请求 |
|
||||
| **User** | ECU State Manager 模块和通信管理器模块请求者的概念。用户可以是 BswM、可运行实体、SW-C 或一组 SW-C,它们作为单个单元对 ECU State Manager 模块和通信管理器模块进行操作 |
|
||||
| **User Request** | 用户可以从 ComM 请求不同的通信模式 |
|
||||
| **Managed channel** | 通过 ECUC 参数 ComMManageReference 引用另一个 ComM 通道的 ComM 通道(参见 ECUC_ComM_00893) |
|
||||
| **Managing channel** | 至少被另一个通道通过 ECUC 参数 ComMManageReference 引用的 ComM 通道(参见 ECUC_ComM_00893) |
|
||||
|
||||
---
|
||||
|
||||
## 3. 相关文档
|
||||
|
||||
### 3.1 输入文档
|
||||
|
||||
> **摘要标记**:完整输入文档列表见原文 PDF 第 13-15 页。主要参考包括:
|
||||
>
|
||||
> - AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
|
||||
> - AUTOSAR_SRS_BSWGeneral.pdf
|
||||
> - AUTOSAR_SWS_RTE.pdf
|
||||
> - AUTOSAR_SWS_ECUM.pdf
|
||||
> - AUTOSAR_SWS_BSWModeManager.pdf
|
||||
> - AUTOSAR_SWS_DCM.pdf
|
||||
> - AUTOSAR_SWS_Com.pdf
|
||||
> - AUTOSAR_SWS_CanSM.pdf
|
||||
> - AUTOSAR_SWS_FrSM.pdf
|
||||
> - AUTOSAR_SWS_LinSM.pdf
|
||||
> - AUTOSAR_SWS_EthSM.pdf
|
||||
> - AUTOSAR_SWS_Nm.pdf
|
||||
> - AUTOSAR_SWS_Det.pdf
|
||||
> - AUTOSAR_SWS_NvM.pdf
|
||||
> - AUTOSAR_TPS_ECUConfiguration.pdf
|
||||
> - AUTOSAR_TPS_BSWModuleDescriptionTemplate.pdf
|
||||
> - AUTOSAR_TPS_StandardizationTemplate.pdf
|
||||
|
||||
### 3.2 相关标准和规范
|
||||
|
||||
> **摘要标记**:本节引用了 ISO 17356 系列标准和其他相关标准。完整内容见原文 PDF 第 14-15 页。
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
> **摘要标记**:本节指出 AUTOSAR 提供了关于基础软件模块的通用规范 [SRS_BSWGeneral]、[SWS_BSWGeneral],这些规范对 ComM 同样有效。完整内容见原文 PDF 第 15 页。
|
||||
|
||||
---
|
||||
|
||||
## 4. 约束和假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
> **摘要标记**:本节描述 ComM 的限制,包括它不直接管理硬件层、依赖于 Bus State Managers、依赖于 NM 等。完整内容见原文 PDF 第 16 页。
|
||||
|
||||
### 4.2 对汽车领域的适用性
|
||||
|
||||
> **摘要标记**:ComM 适用于所有汽车领域,包括车身、底盘、动力总成和信息娱乐。完整内容见原文 PDF 第 16 页。
|
||||
|
||||
---
|
||||
|
||||
## 5. 对其他模块的依赖
|
||||
|
||||
> **摘要标记**:本节描述 ComM 对以下模块的依赖:
|
||||
>
|
||||
> - 5.1 文件结构
|
||||
> - 5.2 AUTOSAR Runtime Environment (RTE)
|
||||
> - 5.3 ECU State Manager (EcuM)
|
||||
> - 5.4 Basic Software Mode Manager (BswM)
|
||||
> - 5.5 NVRAM Manager
|
||||
> - 5.6 Diagnostic Communication Manager (DCM)
|
||||
> - 5.7 LIN State Manager
|
||||
> - 5.8 CAN State Manager
|
||||
> - 5.9 FlexRay State Manager
|
||||
> - 5.10 Ethernet State Manager
|
||||
> - 5.11 Network Management (NM)
|
||||
> - 5.12 Default Error Tracer (DET)
|
||||
> - 5.13 Communication (COM)
|
||||
>
|
||||
> 完整内容见原文 PDF 第 17-19 页。
|
||||
|
||||
---
|
||||
|
||||
## 6. 需求追溯
|
||||
|
||||
> **摘要标记**:本节包含约 100 行的需求追溯表,链接 RS_BRF_xxxxx 特性到 SWS_ComM_xxxxx 规范需求。完整内容见原文 PDF 第 20-24 页。
|
||||
|
||||
---
|
||||
|
||||
## 7. 功能规范
|
||||
|
||||
### 7.1 部分网络集群管理
|
||||
|
||||
#### 7.1.1 概述
|
||||
|
||||
部分网络集群(PNC)允许 ECU 仅在需要时唤醒特定的网络部分,从而降低功耗。PNC 是物理和功能上相关的 ECU 集合,可以一起被唤醒和关闭。
|
||||
|
||||
#### 7.1.2 部分网络集群管理功能
|
||||
|
||||
> **摘要标记**:本节描述 PNC 管理功能。完整内容见原文 PDF 第 28-29 页。
|
||||
|
||||
#### 7.1.3 ComM PNC 状态机
|
||||
|
||||
> **摘要标记**:PNC 状态机是 ComM 的核心,包含以下状态:
|
||||
>
|
||||
> - PNC_OFF
|
||||
> - PNC_INIT
|
||||
> - PNC_REQUESTED
|
||||
> - PNC_READY_SLEEP
|
||||
> - PNC_PREPARE_SLEEP
|
||||
> - PNC_ACTIVE
|
||||
> - PNC_SHUTDOWN
|
||||
>
|
||||
> 状态转换受 PNC 请求、释放、EIRA(External Inter-Partition Request Array)和 ERA(External Release Array)信号影响。完整内容见原文 PDF 第 29-36 页。
|
||||
|
||||
#### 7.1.4 PNC 网关
|
||||
|
||||
> **摘要标记**:本节描述 PNC 网关功能。完整内容见原文 PDF 第 36-37 页。
|
||||
|
||||
#### 7.1.5 ComM 用户到 PNC 关系
|
||||
|
||||
> **摘要标记**:本节描述 ComM 用户和 PNC 之间的映射关系。完整内容见原文 PDF 第 37-38 页。
|
||||
|
||||
#### 7.1.6 部分网络配置提示
|
||||
|
||||
> **摘要标记**:本节提供 PNC 配置的最佳实践。完整内容见原文 PDF 第 38 页。
|
||||
|
||||
### 7.2 ComM 通道状态机
|
||||
|
||||
#### 7.2.1 ComM managed 和 managing 通道
|
||||
|
||||
> **摘要标记**:本节描述引入 managed/managing 通道机制以协调多个通道。完整内容见原文 PDF 第 43 页。
|
||||
|
||||
#### 7.2.2 COMM_NO_COMMUNICATION 状态行为
|
||||
|
||||
> **摘要标记**:本节描述通道在 COMM_NO_COMMUNICATION 状态下的行为。完整内容见原文 PDF 第 44-47 页。
|
||||
|
||||
#### 7.2.3 COMM_SILENT_COMMUNICATION 状态行为
|
||||
|
||||
> **摘要标记**:本节描述通道在 COMM_SILENT_COMMUNICATION 状态下的行为。完整内容见原文 PDF 第 47-48 页。
|
||||
|
||||
#### 7.2.4 COMM_FULL_COMMUNICATION 状态行为
|
||||
|
||||
> **摘要标记**:本节描述通道在 COMM_FULL_COMMUNICATION 状态下的行为。完整内容见原文 PDF 第 48-52 页。
|
||||
|
||||
### 7.3 扩展功能
|
||||
|
||||
#### 7.3.1 通信抑制
|
||||
|
||||
> **摘要标记**:本节描述通信抑制功能,包括:
|
||||
>
|
||||
> - 防止 ECU 唤醒(PreventWakeUp)
|
||||
> - 通道限制到 NoCom 模式(LimitChannelToNoComMode)
|
||||
> - ECU 限制到 NoCom 模式(LimitECUToNoComMode)
|
||||
> - 抑制计数器(InhibitCounter)
|
||||
>
|
||||
> 完整内容见原文 PDF 第 53-57 页。
|
||||
|
||||
### 7.4 总线通信管理
|
||||
|
||||
> **摘要标记**:本节描述 ComM 与 Bus State Managers 的交互。完整内容见原文 PDF 第 57 页。
|
||||
|
||||
### 7.5 网络管理依赖
|
||||
|
||||
> **摘要标记**:本节描述 ComM 与网络管理(NM)的交互。完整内容见原文 PDF 第 57-58 页。
|
||||
|
||||
### 7.6 总线错误管理
|
||||
|
||||
#### 7.6.1 网络启动指示
|
||||
|
||||
> **摘要标记**:本节描述网络启动指示(Network Start Indication)功能。完整内容见原文 PDF 第 58 页。
|
||||
|
||||
### 7.7 测试支持需求
|
||||
|
||||
#### 7.7.1 抑制全通信请求计数器
|
||||
|
||||
> **摘要标记**:本节描述 ComM_ReadInhibitCounter 和 ComM_ResetInhibitCounter API 的使用,以支持诊断服务对当前计数器状态的访问。完整内容见原文 PDF 第 58-59 页。
|
||||
|
||||
### 7.8 错误分类
|
||||
|
||||
#### 7.8.1 开发错误
|
||||
|
||||
##### [SWS_ComM_00234] 错误代码表
|
||||
|
||||
| 错误类型 | 相关性 | 相关错误代码 | 值 [hex] |
|
||||
|---------|--------|--------------|----------|
|
||||
| API service used without module initialization | Development | COMM_E_UNINIT | 0x1 |
|
||||
| API service used with wrong parameters | Development | COMM_E_WRONG_PARAMETERS | 0x2 |
|
||||
| API Service used with a null pointer | Development | COMM_E_PARAM_POINTER | 0x3 |
|
||||
| Initialization failed | Development | COMM_E_INIT_FAILED | 0x4 |
|
||||
|
||||
##### [SWS_ComM_00612] 未初始化时行为
|
||||
|
||||
```
|
||||
If ComM is not initialized, all ComM module and all API service other than
|
||||
ComM_Init() (see SWS_ComM_00146), ComM_GetVersionInfo() (see SWS_COMM_00370)
|
||||
and ComM_GetStatus() (see SWS_COMM_00242); shall:
|
||||
- not execute their normal operation,
|
||||
- and return E_NOT_OK, if it has a standard return type.
|
||||
```
|
||||
|
||||
##### [SWS_ComM_00858] 开发错误检测
|
||||
|
||||
```
|
||||
If development error detection is enabled by ComMDevErrorDetect (see
|
||||
ECUC_ComM_00555): the function shall check that the service ComM_Init was
|
||||
previously called. If the check fails, the function shall raise the development
|
||||
error COMM_E_UNINIT otherwise (if DET is disabled) return E_NOT_OK.
|
||||
```
|
||||
|
||||
#### 7.8.2 运行时错误
|
||||
|
||||
无运行时错误。
|
||||
|
||||
#### 7.8.3 瞬态故障
|
||||
|
||||
无瞬态故障。
|
||||
|
||||
### 7.9 非功能需求
|
||||
|
||||
##### [SWS_ComM_00459] 集成方式
|
||||
|
||||
```
|
||||
It shall be possible to integrate the ComM module delivered as source or object
|
||||
code into the AUTOSAR stack.
|
||||
Rationale:
|
||||
• Allow IP protection and guaranteed test coverage: object code
|
||||
• Allow high efficiency and configurability at system generation time
|
||||
(by integrator): source code.
|
||||
```
|
||||
|
||||
### 7.10 通信管理器模块服务
|
||||
|
||||
> **摘要标记**:本节定义 ComM 的 AUTOSAR 接口,包括架构、用例(SW-C 不关心 ComM、SW-C 仅关心通信状态、SW-C 显式影响通信状态、SW-C 直接与物理通道交互)、端口和端口接口规范、可运行实体和入口点。完整内容见原文 PDF 第 60-71 页。
|
||||
|
||||
---
|
||||
|
||||
## 8. API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
#### 8.1.1 标准类型
|
||||
|
||||
> **摘要标记**:本节列出 ComM 导入的标准类型,如 Std_ReturnType。完整内容见原文 PDF 第 72 页。
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 ComM_InitStatusType
|
||||
|
||||
> **摘要标记**:本节定义 ComM_InitStatusType 枚举:
|
||||
> - COMM_UNINIT:未初始化
|
||||
> - COMM_INIT:已初始化
|
||||
>
|
||||
> 完整内容见原文 PDF 第 72-73 页。
|
||||
|
||||
#### 8.2.2 ComM_PncModeType
|
||||
|
||||
> **摘要标记**:本节定义 ComM_PncModeType 枚举:
|
||||
> - COMM_PNC_REQUESTED
|
||||
> - COMM_PNC_READY_SLEEP
|
||||
> - COMM_PNC_PREPARE_SLEEP
|
||||
> - COMM_PNC_ACTIVE
|
||||
> - COMM_PNC_SHUTDOWN
|
||||
>
|
||||
> 完整内容见原文 PDF 第 73 页。
|
||||
|
||||
#### 8.2.3 ComM_StateType
|
||||
|
||||
> **摘要标记**:本节定义 ComM_StateType 枚举。完整内容见原文 PDF 第 73 页。
|
||||
|
||||
#### 8.2.4 ComM_ConfigType
|
||||
|
||||
> **摘要标记**:本节定义 ComM_ConfigType 结构。完整内容见原文 PDF 第 73 页。
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
> **摘要标记**:本节列出 ComM 提供的函数。以下是主要 API:
|
||||
|
||||
#### 8.3.1 ComM_Init
|
||||
|
||||
```c
|
||||
Service name: ComM_Init
|
||||
Syntax: void ComM_Init(
|
||||
const ComM_ConfigType* ConfigPtr)
|
||||
Service ID[hex]: 0x01
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Non Reentrant
|
||||
Parameters (in): ConfigPtr Pointer to post-build configuration data
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): None
|
||||
Return value: None
|
||||
Description: Initializes the AUTOSAR Communication Manager and restarts
|
||||
the internal state machines.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
**详细行为**:
|
||||
- `[SWS_ComM_00793]` ComM_Init() 的注意事项:NVRAM Manager 模块必须初始化才能"直接"访问 ComM 模块的参数。
|
||||
- `[SWS_ComM_00864]` 在 ComM_Init() 中,ComM 应从 NVRAM 读取 SWS_ComM_00103 中指定的非易失性参数。如果没有可用参数,ComM 应使用 ComM 配置中的默认值。
|
||||
|
||||
#### 8.3.2 ComM_DeInit
|
||||
|
||||
```c
|
||||
Service name: ComM_DeInit
|
||||
Syntax: void ComM_DeInit(void)
|
||||
Service ID[hex]: 0x02
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Non Reentrant
|
||||
Parameters (in): None
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): None
|
||||
Return value: None
|
||||
Description: This API de-initializes the AUTOSAR Communication Manager.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
**详细行为**:
|
||||
- `[SWS_ComM_00794]` ComM_DeInit() 中的去初始化应仅在 ComM 模块控制的所有通道都处于 COMM_NO_COMMUNICATION 模式时执行。
|
||||
- `[SWS_ComM_00865]` 在 ComM_DeInit 中,ComM 应将 SWS_ComM_00103 中指定的非易失性参数存储到 NVRAM。
|
||||
|
||||
#### 8.3.3 ComM_GetStatus
|
||||
|
||||
```c
|
||||
Service name: ComM_GetStatus
|
||||
Syntax: Std_ReturnType ComM_GetStatus(
|
||||
ComM_InitStatusType* Status)
|
||||
Service ID[hex]: 0x03
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Non Reentrant
|
||||
Parameters (in): None
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): Status COMM_UNINIT: The ComM is not initialized or not usable.
|
||||
Default value after startup or after ComM_DeInit() is called.
|
||||
COMM_INIT: The ComM is initialized and usable.
|
||||
Return value: Std_ReturnType E_OK: Successfully return of initialization status
|
||||
E_NOT_OK: Return of initialization status failed
|
||||
Description: Returns the initialization status of the AUTOSAR Communication Manager.
|
||||
After a call to ComM_DeInit() ComM should have status COMM_UNINIT, and a
|
||||
new call to ComM_Init needed to make sure ComM restart internal state machines
|
||||
to default values.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
#### 8.3.4 ComM_GetInhibitionStatus
|
||||
|
||||
```c
|
||||
Service name: ComM_GetInhibitionStatus
|
||||
Syntax: Std_ReturnType ComM_GetInhibitionStatus(
|
||||
NetworkHandleType Channel,
|
||||
ComM_InhibitionStatusType* Status)
|
||||
Service ID[hex]: 0x04
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Non Reentrant
|
||||
Parameters (in): Channel See NetworkHandleType
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): Status See ComM_InhibitionStatusType
|
||||
Return value: Std_ReturnType E_OK: Successfully returned Inhibition Status
|
||||
E_NOT_OK: Return of Inhibition Status failed
|
||||
Description: Returns the inhibition status of a ComM channel.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
#### 8.3.5 ComM_RequestComMode
|
||||
|
||||
```c
|
||||
Service name: ComM_RequestComMode
|
||||
Syntax: Std_ReturnType ComM_RequestComMode(
|
||||
ComM_UserHandleType User,
|
||||
ComM_ModeType ComMode)
|
||||
Service ID[hex]: 0x05
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Reentrant
|
||||
Parameters (in): User Handle of the user who requests a mode
|
||||
ComMode COMM_FULL_COMMUNICATION
|
||||
COMM_NO_COMMUNICATION
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): None
|
||||
Return value: Std_ReturnType E_OK: Successfully changed to the new mode
|
||||
E_NOT_OK: Changing to the new mode failed
|
||||
COMM_E_MODE_LIMITATION: Mode can not be granted
|
||||
because of mode inhibition.
|
||||
Description: Requesting of a Communication Mode by a user.
|
||||
Note:
|
||||
Internally mode COMM_SILENT_COMMUNICATION is not a valid request
|
||||
for a user, mode used for synchronization at shutdown.
|
||||
Valid modes are COMM_NO_COMMUNICATION and COMM_FULL_COMMUNICATION.
|
||||
The communication request could also be released due to a ComM
|
||||
communication inhibition.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
**详细行为**:
|
||||
- `[SWS_ComM_00795]` ComM_RequestComMode 的配置:用户和通道之间的关系。用户被静态映射到一个或多个通道。
|
||||
|
||||
#### 8.3.6 ComM_GetMaxComMode
|
||||
|
||||
```c
|
||||
Service name: ComM_GetMaxComMode
|
||||
Syntax: Std_ReturnType ComM_GetMaxComMode(
|
||||
ComM_UserHandleType User,
|
||||
ComM_ModeType* ComMode)
|
||||
Service ID[hex]: 0x06
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Reentrant
|
||||
Parameters (in): User Handle of the user who requests a mode
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): ComMode See ComM_ModeType
|
||||
Return value: Std_ReturnType E_OK: Successfully returned maximum allowed Communication Mode
|
||||
E_NOT_OK: Return of maximum allowed Communication Mode failed
|
||||
Description: Function to query the maximum allowed Communication Mode of the corresponding user.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
**用例**:此函数提供请求最大可能模式的可能(例如用户希望检查是否可能获得"全通信"模式或是否激活了限制/抑制)。这对于诊断/调试是必需的。
|
||||
|
||||
- `[SWS_ComM_00374]` 如果一个用户请求链接到多个通道并且通道的最大允许模式不同,则函数 ComM_GetMaxComMode 应返回最低模式(参见 SWS_ComM_00867 和 SWS_ComM_00868)。
|
||||
- `[SWS_ComM_00796]` ComM_GetMaxComMode 的配置:用户和通道之间的关系。
|
||||
|
||||
#### 8.3.7 ComM_GetRequestedComMode
|
||||
|
||||
```c
|
||||
Service name: ComM_GetRequestedComMode
|
||||
Syntax: Std_ReturnType ComM_GetRequestedComMode(
|
||||
ComM_UserHandleType User,
|
||||
ComM_ModeType* ComMode)
|
||||
Service ID[hex]: 0x07
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Reentrant
|
||||
Parameters (in): User Handle of the user who requests a mode
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): ComMode Name of the requested mode
|
||||
Return value: Std_ReturnType E_OK: Successfully returned requested Communication Mode
|
||||
E_NOT_OK: Return of requested Communication Mode failed
|
||||
Description: Function to query the currently requested Communication Mode of the corresponding user.
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
#### 8.3.8 ComM_GetCurrentComMode
|
||||
|
||||
```c
|
||||
Service name: ComM_GetCurrentComMode
|
||||
Syntax: Std_ReturnType ComM_GetCurrentComMode(
|
||||
ComM_UserHandleType User,
|
||||
ComM_ModeType* ComMode)
|
||||
Service ID[hex]: 0x08
|
||||
Sync/Async: Synchronous
|
||||
Reentrancy: Reentrant
|
||||
Parameters (in): User Handle of the user who requests a mode
|
||||
Parameters None
|
||||
(inout):
|
||||
Parameters (out): ComMode See ComM_ModeType
|
||||
Return value: Std_ReturnType E_OK: Successfully returned Communication Mode from Bus State Manager
|
||||
E_NOT_OK: Return of Communication Mode from Bus State Manager failed
|
||||
Description: Function to query the current Communication Mode. ComM shall use the
|
||||
corresponding interfaces of the Bus State Managers to get the current
|
||||
Communication Mode of the network.
|
||||
(Call to Bus State Manager API: XXXSM_GetCurrentComMode(...))
|
||||
Available via: ComM.h
|
||||
```
|
||||
|
||||
#### 8.3.9 ComM_PreventWakeUp
|
||||
|
||||
> **摘要标记**:ComM_PreventWakeUp API 用于防止通道唤醒。完整内容见原文 PDF 第 78-79 页。
|
||||
|
||||
#### 8.3.10 ComM_LimitChannelToNoComMode
|
||||
|
||||
> **摘要标记**:ComM_LimitChannelToNoComMode API 用于将通道限制为 No Communication 模式。完整内容见原文 PDF 第 79 页。
|
||||
|
||||
#### 8.3.11 ComM_LimitECUToNoComMode
|
||||
|
||||
> **摘要标记**:ComM_LimitECUToNoComMode API 用于将 ECU 限制为 No Communication 模式。完整内容见原文 PDF 第 80 页。
|
||||
|
||||
#### 8.3.12 ComM_ReadInhibitCounter
|
||||
|
||||
> **摘要标记**:ComM_ReadInhibitCounter API 用于读取抑制计数器。完整内容见原文 PDF 第 80-81 页。
|
||||
|
||||
#### 8.3.13 ComM_ResetInhibitCounter
|
||||
|
||||
> **摘要标记**:ComM_ResetInhibitCounter API 用于重置抑制计数器。完整内容见原文 PDF 第 81 页。
|
||||
|
||||
#### 8.3.14 ComM_SetECUGroupClassification
|
||||
|
||||
> **摘要标记**:ComM_SetECUGroupClassification API 用于设置 ECU 的组分类。完整内容见原文 PDF 第 81-82 页。
|
||||
|
||||
#### 8.3.15 ComM_GetVersionInfo
|
||||
|
||||
> **摘要标记**:ComM_GetVersionInfo API 用于获取版本信息。完整内容见原文 PDF 第 82 页。
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
> **摘要标记**:本节描述 ComM 实现的回调通知:
|
||||
>
|
||||
> - 8.4.1 AUTOSAR 网络管理接口(Nm_NetworkStartIndication、Nm_NetworkMode、Nm_PrepareBusSleepMode、Nm_BusSleepMode、Nm_RemoteSleepIndication、Nm_RemoteSleepCancelation、Nm_SynchronizationPoint、Nm_CheckRemoteSleepIndication、Nm_ConfirmPncAvailability)
|
||||
> - 8.4.2 AUTOSAR 诊断通信管理器接口(Dcm_ActiveDiagnostic、Dcm_InactiveDiagnostic)
|
||||
> - 8.4.3 AUTOSAR ECU 状态管理器接口(EcuM_WakeupIndication、EcuM_ComM_WakeupIndication)
|
||||
> - 8.4.4 AUTOSAR ECU 状态管理器和基础软件模式管理器接口
|
||||
> - 8.4.5 总线状态管理器接口(CanSM/FrSM/LinSM/EthSM)
|
||||
> - 8.4.6 COM 接口
|
||||
>
|
||||
> 完整内容见原文 PDF 第 82-87 页。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 ComM_MainFunction
|
||||
|
||||
> **摘要标记**:ComM_MainFunction 由调度器以 ComMMainFunctionPeriod 周期调用。完整内容见原文 PDF 第 87 页。
|
||||
|
||||
### 8.6 预期接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 调用的强制服务接口。完整内容见原文 PDF 第 88-91 页。
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 调用的可选服务接口。完整内容见原文 PDF 第 91-92 页。
|
||||
|
||||
#### 8.6.3 可配置接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 调用的可配置服务接口。完整内容见原文 PDF 第 92 页。
|
||||
|
||||
### 8.7 服务接口
|
||||
|
||||
#### 8.7.1 Sender-Receiver 接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的 Sender-Receiver 接口。完整内容见原文 PDF 第 92-93 页。
|
||||
|
||||
#### 8.7.2 Client-Server 接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的 Client-Server 接口。完整内容见原文 PDF 第 93-98 页。
|
||||
|
||||
#### 8.7.3 Mode-Switch 接口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的 Mode-Switch 接口。完整内容见原文 PDF 第 98 页。
|
||||
|
||||
#### 8.7.4 实现数据类型
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的实现数据类型。完整内容见原文 PDF 第 98-101 页。
|
||||
|
||||
#### 8.7.5 端口
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的端口定义。完整内容见原文 PDF 第 101-102 页。
|
||||
|
||||
#### 8.7.6 模式声明组
|
||||
|
||||
> **摘要标记**:本节列出 ComM 的模式声明组。完整内容见原文 PDF 第 102-103 页。
|
||||
|
||||
---
|
||||
|
||||
## 9. 序列图
|
||||
|
||||
> **摘要标记**:本节包含以下序列图:
|
||||
>
|
||||
> - 9.1 传输和接收启动(CAN)(第 104 页)
|
||||
> - 9.2 被动唤醒(CAN)(第 104-106 页)
|
||||
> - 9.3 网络关闭(CAN)(第 106-109 页)
|
||||
> - 9.4 通信请求(第 110 页)
|
||||
|
||||
---
|
||||
|
||||
## 10. 配置规范
|
||||
|
||||
> **摘要标记**:本节是配置规范的主要部分,包含以下容器及其配置参数:
|
||||
>
|
||||
> - 10.2.1 ComM
|
||||
> - 10.2.2 ComMGeneral
|
||||
> - 10.2.3 ComMConfigSet
|
||||
> - 10.2.4 ComMUser
|
||||
> - 10.2.5 ComMChannel
|
||||
> - 10.2.6 ComMNetworkManagement
|
||||
> - 10.2.7 ComMUserPerChannel
|
||||
> - 10.2.8 ComMPnc
|
||||
> - 10.2.9 ComMPncComSignal
|
||||
>
|
||||
> 每个容器包含多个 ECUC 配置参数(ECUC_ComM_xxxxx)。
|
||||
>
|
||||
> 完整内容见原文 PDF 第 111-133 页。
|
||||
|
||||
---
|
||||
|
||||
## 11. 不适用需求
|
||||
|
||||
> **摘要标记**:本节列出对 ComM 不适用的需求。完整内容见原文 PDF 第 134 页。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- **文档类型**:AUTOSAR SWS(Software Specification,软件规范)
|
||||
- **翻译策略**:本 SWS 文档(134 页)规模较大,采用"重点翻译 + 摘要"策略:
|
||||
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1(简介)、章节 2(缩略语和定义)、章节 3-5(相关文档/约束/依赖)、章节 7.8(错误分类)、章节 7.9(非功能需求)、关键 API(章节 8.3 关键函数)
|
||||
- **摘要处理**:其他章节(7.1-7.10、8.4-8.7、9-11)使用"完整表见原文 PDF"标记
|
||||
- **摘要标记位置**:
|
||||
- 第 3 章相关文档
|
||||
- 第 4 章约束和假设
|
||||
- 第 5 章依赖
|
||||
- 第 6 章需求追溯
|
||||
- 第 7.1-7.7 功能规范
|
||||
- 第 7.10 ComM 服务架构
|
||||
- 第 8.1 导入类型
|
||||
- 第 8.2 类型定义
|
||||
- 第 8.3.9-8.3.15 函数定义
|
||||
- 第 8.4 回调通知
|
||||
- 第 8.5 调度函数
|
||||
- 第 8.6 预期接口
|
||||
- 第 8.7 服务接口
|
||||
- 第 9 章序列图
|
||||
- 第 10 章配置规范
|
||||
- 第 11 章不适用需求
|
||||
- **保留内容**:
|
||||
- 需求 ID(如 `SWS_ComM_00146`、`SWS_ComM_00242` 等)
|
||||
- AUTOSAR 方框符 `⌈⌋`
|
||||
- 所有 API 标识符(`ComM_Init`、`ComM_RequestComMode`、`ComM_GetStatus` 等)
|
||||
- 模块缩写(BSW、BswM、ComM、DCM、EcuM、NvM、RTE、SWC)
|
||||
- 文档间交叉引用
|
||||
- **术语对照表**:
|
||||
- Communication Manager → 通信管理器
|
||||
- Communication Mode → 通信模式
|
||||
- Communication Channel → 通信通道
|
||||
- Partial Network Cluster (PNC) → 部分网络集群
|
||||
- Managed Channel → 受管通道
|
||||
- Managing Channel → 管理通道
|
||||
- Network Start Indication → 网络启动指示
|
||||
- Bus Sleep → 总线睡眠
|
||||
- Full Communication → 全通信
|
||||
- No Communication → 无通信
|
||||
- Silent Communication → 静默通信
|
||||
- Active Wake-up → 主动唤醒
|
||||
- Passive Wake-up → 被动唤醒
|
||||
- Communication Inhibition → 通信抑制
|
||||
- Mode Limitation → 模式限制
|
||||
- ECU Group Classification → ECU 组分类
|
||||
- Inhibit Counter → 抑制计数器
|
||||
Reference in New Issue
Block a user