Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_NetworkManagementInterface.md
T

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 不适用需求