12 KiB
网络管理接口规范 (Specification of NetworkManagement Interface)
AUTOSAR CP Release 4.4.0 文档 ID 228: AUTOSAR_SWS_NetworkManagementInterface
元信息
| 项目 | 内容 |
|---|---|
| 文档标题 | 网络管理接口规范 |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 228 |
| 文档状态 | Final |
| 所属 AUTOSAR 标准 | Classic Platform |
| 所属标准版本 | 4.4.0 |
文档变更历史
| 日期 | 版本 | 变更方 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 同步模式增强;细微更正 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 修正/澄清 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 通用总线类型支持 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 编辑修正 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | NM 协调器增强 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 编辑变更 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | car wake-up 添加 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 协调器逻辑增强 |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | NM 协调器初始版本 |
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 抽象层 |
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | 初始发布 |
目录
1. 介绍与功能概述
本文档描述网络管理接口模块的概念、接口和配置。
网络管理接口是 AUTOSAR 通信管理器 (ComM) 与 AUTOSAR 总线特定网络管理模块(如 CAN Network Management、FlexRay Network Management)之间的适配层。这称为 基本功能 (Basic functionality)。
此外,本文档还描述了连接到同一(协调器)ECU 的多个网络之间的互操作性,这些网络运行 AUTOSAR NM。"互操作性"意味着这些网络可以同步进入睡眠。这称为 NM 协调器功能 (NM Coordinator functionality)。
支持 NM 协调器功能是可选的。NM 接口实现可以仅支持 Basic functionality,或同时支持 Basic 和 NM Coordinator functionality。
NM 接口设计支持通用底层模块,允许第三方提供对 OEM 特定或传统 NM 协议(如直接 OSEK NM)的支持。
2. 缩略语
| 缩略语 | 描述 |
|---|---|
| CanIf | CAN Interface |
| CanNm | CAN Network Management |
| CC | Communication controller |
| ComM | Communication Manager |
| EcuM | ECU State Manager |
| DEM | Diagnostic Event Manager |
| Nm | Generic Network Management Interface |
| NM | Network Management |
| OEM | Original Equipment Manufacturer |
| CBV | Control Bit Vector in NM-message |
术语
| 术语 | 定义 |
|---|---|
| Bus-Sleep Mode | 所有互连通信控制器都处于睡眠模式的网络模式 |
| NM-Channel | 与 NM-cluster 关联的逻辑通道 |
| NM-Cluster | 使用 NM 算法协调的 NM 节点集 |
| NM-Coordinator | Nm 功能,允许协调多个 NM 通道的网络睡眠 |
| NM-Message | 用于 NM 算法目的的信息包 |
| NM-Timeout | NM 算法中发起向 Bus-Sleep 模式过渡的超时 |
| NM User Data | 附加在每个 NM 消息上的应用特定数据 |
| Node Identifier | 用于 NM 算法的节点地址信息 |
| Node Identifier List | NM 算法识别的节点标识符列表 |
| Bus | NM 节点/ECU 连接到的物理通信媒介 |
| network | 连接到同一总线的所有 NM 节点/ECU |
| channel | NM 节点/ECU 连接到的逻辑总线 |
| Coordinated shutdown | 两个或更多总线的同步关闭 |
| Coordination algorithm | 所有条件满足时启动协调关闭 |
3. 相关文档
3.1 输入文档
- [1] Glossary — AUTOSAR_TR_Glossary
- [2] General Specification of Basic Software Modules
- [3] Specification of CAN Network Management
- [4] Specification of FlexRay Network Management
- [5] Specification of UDP Network Management
- [6] Specification of Network Management for SAE J1939
- [7] General Requirements on Basic Software Modules
- [8] Requirements on Network Management
3.2 相关规范
SWS BSW General [2] 适用。
4. 约束与假设
4.1 限制
- 仅支持每个网络一个 NM 实例
- NM 协调器仅在 ECU 连接多个网络时使用
4.2 适用车域
适用于所有车域。
5. 与其他模块的依赖
| 模块 | 依赖关系 |
|---|---|
| ComM | NM 接口与 ComM 协作管理通信模式 |
| CanNm/FrNm/UdpNm/J1939Nm | 底层 NM 模块 |
| EcuM | 唤醒源通知 |
| DEM | 错误事件上报 |
6. 需求可追溯性
| 需求 ID | 描述 | 满足者 |
|---|---|---|
| SRS_Nm_00040 | 启动协调 | SWS_Nm_00041 |
| SRS_Nm_00041 | 网络释放 | SWS_Nm_00057 |
| SRS_Nm_00042 | 协调睡眠 | SWS_Nm_00046 |
| SRS_Nm_00043 | NM 协调器 | SWS_Nm_00050 |
| SRS_BSW_00101 | 初始化 | SWS_Nm_00030 |
| SRS_BSW_00407 | 版本信息 | SWS_Nm_00220 |
[摘要] 完整需求追溯表见原文 PDF 第 30-45 页。
7. 功能规范
7.1 NM 接口的基本功能
7.1.1 状态管理
- Bus-Sleep:所有节点睡眠
- Prepare-Bus-Sleep:准备进入睡眠
- Network:网络运行中
7.1.2 模式控制
- Nm_PassiveStartUp:被动启动
- Nm_NetworkRequest:请求保持唤醒
- Nm_NetworkRelease:释放网络
7.2 NM 协调器功能
NM 协调器协调多个网络同步睡眠。
7.2.1 协调算法
- 检测所有协调网络是否准备睡眠
- 协调发送 SleepReady 通知
- 所有网络同步进入睡眠
7.2.2 协调器与网络
NM 协调器在多个网络间共享状态。
7.3 NM 消息处理
NM 接口将底层 NM 消息转发给上层。
7.4 同步模式
新增同步模式用于多通道协调。
7.5 错误分类
7.5.1 开发错误
| 错误名 | 错误码 | 含义 |
|---|---|---|
| NM_E_NO_INIT | 0x01 | 未初始化 |
| NM_E_INVALID_CHANNEL | 0x02 | 无效通道 |
| NM_E_INVALID_PARAMETER | 0x03 | 无效参数 |
| NM_E_PARAM_POINTER | 0x12 | NULL 指针 |
8. API 规范
8.1 导入类型
| 模块 | 头文件 | 导入类型 |
|---|---|---|
| ComM | ComM.h | ComM_ModeType |
| ComStack_Types | ComStack_Types.h | NetworkHandleType |
| Std_Types | Std_Types.h | Std_ReturnType, Std_VersionInfoType |
8.2 类型定义
8.2.1 Nm_ConfigType
typedef struct Nm_ConfigType Nm_ConfigType;
8.2.2 Nm_ModeType
typedef enum {
NM_MODE_BUS_SLEEP,
NM_MODE_PREPARE_BUS_SLEEP,
NM_MODE_SYNCHRONIZE,
NM_MODE_NETWORK
} Nm_ModeType;
8.2.3 Nm_StateType
typedef enum {
NM_STATE_UNINIT,
NM_STATE_BUS_SLEEP,
NM_STATE_PREPARE_BUS_SLEEP,
NM_STATE_READY_SLEEP,
NM_STATE_NORMAL_OPERATION,
NM_STATE_REPEAT_MESSAGE,
NM_STATE_SYNCHRONIZE,
NM_STATE_OFFLINE
} Nm_StateType;
8.2.4 Nm_BusNmType
typedef enum {
NM_BUSNM_CANNM,
NM_BUSNM_FRNM,
NM_BUSNM_UDPNM,
NM_BUSNM_GENERICNM,
NM_BUSNM_J1939NM
} Nm_BusNmType;
8.3 函数定义
8.3.1 服务函数
Nm_Init
void Nm_Init(const Nm_ConfigType* nmConfigPtr)
| Service ID | 0x01 |
|---|
Nm_PassiveStartUp
Std_ReturnType Nm_PassiveStartUp(NetworkHandleType nmChannelHandle)
Nm_NetworkRequest
Std_ReturnType Nm_NetworkRequest(NetworkHandleType nmChannelHandle)
Nm_NetworkRelease
Std_ReturnType Nm_NetworkRelease(NetworkHandleType nmChannelHandle)
Nm_DisableCommunication / Nm_EnableCommunication
启用/禁用 NM 通信。
8.3.2 协调器服务
Nm_NetworkGwEraRequest
网关 ERA 请求。
8.3.3 其他服务
Nm_SetUserData
Std_ReturnType Nm_SetUserData(
NetworkHandleType nmChannelHandle,
const uint8* nmUserDataPtr
)
Nm_GetUserData
Std_ReturnType Nm_GetUserData(
NetworkHandleType nmChannelHandle,
uint8* nmUserDataPtr
)
Nm_GetPduData
Std_ReturnType Nm_GetPduData(
NetworkHandleType nmChannelHandle,
uint8* nmPduDataPtr
)
Nm_RepeatMessageRequest
Std_ReturnType Nm_RepeatMessageRequest(NetworkHandleType nmChannelHandle)
Nm_GetNodeIdentifier
Std_ReturnType Nm_GetNodeIdentifier(
NetworkHandleType nmChannelHandle,
uint8* nmNodeIdPtr
)
Nm_GetLocalNodeIdentifier
Std_ReturnType Nm_GetLocalNodeIdentifier(
NetworkHandleType nmChannelHandle,
uint8* nmNodeIdPtr
)
Nm_CheckRemoteSleepIndication
Std_ReturnType Nm_CheckRemoteSleepIndication(
NetworkHandleType nmChannelHandle,
boolean* nmRemoteSleepIndPtr
)
Nm_GetState
Std_ReturnType Nm_GetState(
NetworkHandleType nmChannelHandle,
Nm_StateType* nmStatePtr,
Nm_ModeType* nmModePtr
)
Nm_GetVersionInfo
void Nm_GetVersionInfo(Std_VersionInfoType* versioninfo)
8.4 回调通知
8.4.1 标准回调通知
- Nm_NetworkStartIndication
- Nm_NetworkMode
- Nm_BusSleepMode
- Nm_PrepareBusSleepMode
- Nm_SynchronizeMode
- Nm_RemoteSleepIndication
- Nm_RemoteSleepCancellation
- Nm_SynchronizationPoint
- Nm_CoordReadyToSleepIndication
- Nm_CoordReadyToSleepCancellation
8.4.2 额外回调通知
- Nm_PduRxIndication
- Nm_StateChangeNotification
- Nm_RepeatMessageIndication
- Nm_TxTimeoutException
- Nm_CarWakeUpIndication
8.5 调度函数
8.5.1 Nm_MainFunction
void Nm_MainFunction(void)
8.6 期望接口
8.6.1 强制接口
- ComM_Nm_NetworkMode
- ComM_Nm_BusSleepMode
- 各 NM 模块函数(CanNm/FrNm/UdpNm/J1939Nm)
- Det_ReportError
8.6.2 可选接口
8.6.3 可配置接口
- NmCarWakeUpCallout
8.7 版本检查
9. 时序图
9.1 基本功能
启动序列、网络请求/释放、Bus Sleep 转换。
9.2 NM 协调器功能时序
多通道协调睡眠。
[摘要] 详细时序图见原文 PDF 第 86-87 页。
10. 配置规范
10.1 如何阅读本章
10.2 配置参数
10.2.1 Nm
根容器。
10.3 全局可配参数
10.3.1 NmGlobalConfig
全局配置。
10.3.2 NmGlobalConstants
| 参数 | 类型 | 说明 |
|---|---|---|
| NmDevErrorDetect | bool | DET 启用 |
| NmVersionInfoApi | bool | 版本信息 API |
| NmMainFunctionPeriod | float | main 周期 |
10.3.3 NmGlobalProperties
全局属性配置。
10.3.4 NmGlobalFeatures
| 参数 | 类型 | 说明 |
|---|---|---|
| NmCarWakeUpRxEnabled | bool | 启用 Car WakeUp |
| NmComControlEnabled | bool | 启用通信控制 |
| NmCoordinatorSupportEnabled | bool | 启用协调器 |
| NmRemoteSleepIndEnabled | bool | 启用远程睡眠指示 |
| NmStateChangeIndEnabled | bool | 启用状态变化指示 |
| NmSynchronizationPointEnabled | bool | 启用同步点 |
| NmUserDataEnabled | bool | 启用用户数据 |
10.4 通道可配参数
10.4.1 NmChannelConfig
| 参数 | 类型 | 说明 |
|---|---|---|
| NmChannelId | int | 通道 ID |
| NmBusType | enum | 总线类型 |
10.4.2 NmBusType
| 参数 | 类型 | 说明 |
|---|---|---|
| NmBusNmType | enum | 选择底层 NM 模块 |
10.4.3 NmGenericBusNmConfig
通用 NM 总线配置。
10.4.4 NmStandardBusNmConfig
标准 NM 总线配置(CAN/FlexRay/UDP/J1939)。
[摘要] 完整配置详见原文 PDF 第 88-104 页。
10.5 已发布信息
按 BSW General。
A. 不适用需求
详见原文 PDF 第 105 页。
翻译说明
- 本译本基于 AUTOSAR CP 4.4.0 的网络管理接口规范 (Document ID 228,共 105 页)
- 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置、附录 A 不适用需求