Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_UDPNetworkManagement.md
T

9.1 KiB

UDP 网络管理规范 (Specification of UDP Network Management)

AUTOSAR CP Release 4.4.0 文档 ID 446: AUTOSAR_SWS_UDPNetworkManagement

元信息

项目 内容
文档标题 UDP 网络管理规范
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 446
文档状态 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 增加 PNC 支持
2015-07-31 4.2.2 AUTOSAR Release Management 编辑修正
2014-10-31 4.2.1 AUTOSAR Release Management 初始正式版本

目录


1. 介绍与功能概述

本规范规定了 AUTOSAR 基础软件模块 UDP 网络管理 (UdpNm) 的功能、API 和配置。

UdpNm 实现基于 UDP 的网络管理协议,功能上与 CanNm 类似,但运行在 IP/UDP 网络上。

1.1 主要功能

  • 协调网络节点同步进入睡眠
  • 通过周期 NM 消息维持网络状态
  • 部分网络通信(PNC)支持
  • 远程睡眠指示
  • 主动/被动启动

2. 缩略语

缩略语 描述
BSW Basic Software
CBV Control Bit Vector
ComM Communication Manager
DEM Diagnostic Event Manager
DET Default Error Tracer
EcuM ECU State Manager
IP Internet Protocol
ISR Interrupt Service Routine
Nm Network Management
PNC Partial Network Cluster
SoAd Socket Adaptor
UDP User Datagram Protocol
UdpNm UDP Network Management

3. 相关文档

3.1 输入文档

  • [1] Layered Software Architecture
  • [2] General Requirements on Basic Software Modules
  • [3] Specification of Network Management Interface
  • [4] Specification of CAN Network Management
  • [5] Specification of Communication Stack Types
  • [6] Specification of Socket Adaptor
  • [7] Specification of ECU Configuration
  • [8] Specification of Communication Manager
  • [9] Specification of Default Error Tracer
  • [10] General Specification of Basic Software Modules
  • [11] Requirements on Network Management

3.2 相关规范

SWS BSW General [10] 适用。


4. 约束与假设

4.1 限制

UdpNm 仅在 IP/UDP 网络上工作。

4.2 适用车域

适用于所有使用以太网通信的车域。


5. 与其他模块的依赖

模块 依赖关系
Nm 上层 NM 接口
SoAd 下层 UDP 通信
BswM 模式管理
EcuM 唤醒源
Det 错误上报
Dem 生产错误

6. 需求可追溯性

需求 ID 描述 满足者
SRS_BSW_00101 初始化 SWS_UdpNm_00009
SRS_BSW_00407 版本信息 SWS_UdpNm_00069
SRS_Nm_00040 状态机 SWS_UdpNm_00098
SRS_Nm_00042 协调睡眠 SWS_UdpNm_00104
SRS_Nm_00045 NM 消息 SWS_UdpNm_00032
SRS_Nm_00150 PNC SWS_UdpNm_00350

[摘要] 完整需求追溯表见原文 PDF 第 20-32 页。


7. 功能规范

7.1 状态机

UdpNm 状态机:

状态 描述
BUS_SLEEP 总线睡眠
PREPARE_BUS_SLEEP 准备睡眠
READY_SLEEP 准备进入睡眠
NORMAL_OPERATION 正常运行
REPEAT_MESSAGE 重复消息(关闭后重新加入)
OFFLINE 离线

7.2 状态转换

  • 启动:BUS_SLEEP → NETWORK_MODE (REPEAT_MESSAGE)
  • 收到 NM 消息:维持 NETWORK_MODE
  • 静默超时:NORMAL_OPERATION → READY_SLEEP
  • 准备睡眠超时:READY_SLEEP → PREPARE_BUS_SLEEP → BUS_SLEEP

7.3 NM 消息

NM 消息格式:

  • Source Node ID (1 字节)
  • Control Bit Vector (1 字节)
  • User Data (可变,0-N 字节)

CBV 位

  • Bit 0: Repeat Message Request
  • Bit 4: PN Information Bit
  • Bit 5: Active Wakeup Bit
  • Bit 6-7: 保留

7.4 部分网络通信(PNC)

  • [SWS_UdpNm_00350] ⌈UdpNm 应支持 PNC,使用 NM 消息中的 PN bit。⌋
  • PNC 启用后,节点根据 PNC 状态保持网络或释放。

7.5 远程睡眠指示

监测远程节点是否准备睡眠。

7.6 主动/被动启动

  • 主动启动:本节点请求保持网络唤醒
  • 被动启动:其他节点请求,本节点跟随

7.7 错误分类

7.7.1 开发错误

错误名 错误码 含义
UDPNM_E_NO_INIT 0x01 未初始化
UDPNM_E_INVALID_CHANNEL 0x02 无效通道
UDPNM_E_INVALID_PDUID 0x03 无效 PDU ID
UDPNM_E_NET_START_IND 0x04 启动指示错误
UDPNM_E_NULL_POINTER 0x12 NULL 指针

7.7.2 运行时错误

错误名 含义
UDPNM_E_NETWORK_TIMEOUT 网络超时

8. API 规范

8.1 导入类型

模块 头文件 导入类型
ComStack_Types ComStack_Types.h NetworkHandleType, PduInfoType, PduIdType
Nm Nm.h Nm_StateType, Nm_ModeType
Std_Types Std_Types.h Std_ReturnType, Std_VersionInfoType

8.2 类型定义

8.2.1 UdpNm_ConfigType

typedef struct UdpNm_ConfigType UdpNm_ConfigType;

8.2.2 UdpNm_StateType, UdpNm_ModeType

继承 Nm 模块定义。

8.3 函数定义

8.3.1 UdpNm_Init

void UdpNm_Init(const UdpNm_ConfigType* udpnmConfigPtr)
Service ID 0x01

8.3.2 UdpNm_DeInit

void UdpNm_DeInit(void)

8.3.3 UdpNm_PassiveStartUp

Std_ReturnType UdpNm_PassiveStartUp(NetworkHandleType nmChannelHandle)

8.3.4 UdpNm_NetworkRequest

Std_ReturnType UdpNm_NetworkRequest(NetworkHandleType nmChannelHandle)

8.3.5 UdpNm_NetworkRelease

Std_ReturnType UdpNm_NetworkRelease(NetworkHandleType nmChannelHandle)

8.3.6 UdpNm_DisableCommunication

禁用 NM 通信。

8.3.7 UdpNm_EnableCommunication

启用 NM 通信。

8.3.8 UdpNm_SetUserData / UdpNm_GetUserData

设置/获取用户数据。

8.3.9 UdpNm_GetPduData

获取最新 NM PDU 数据。

8.3.10 UdpNm_RepeatMessageRequest

请求重复消息。

8.3.11 UdpNm_GetNodeIdentifier / UdpNm_GetLocalNodeIdentifier

获取节点标识符。

8.3.12 UdpNm_CheckRemoteSleepIndication

检查远程睡眠指示。

8.3.13 UdpNm_GetState

获取状态。

8.3.14 UdpNm_GetVersionInfo

获取版本信息。

8.3.15 UdpNm_RequestBusSynchronization

请求总线同步。

8.3.16 UdpNm_CheckRemoteSleepIndication

检查远程睡眠指示。

8.4 回调通知

8.4.1 UdpNm_SoAdIfRxIndication

SoAd RX 通知 UdpNm。

8.4.2 UdpNm_SoAdIfTxConfirmation

SoAd TX 确认。

8.4.3 UdpNm_TriggerTransmit

PduR 触发 UdpNm 提供数据。

8.5 调度函数

8.5.1 UdpNm_MainFunction

void UdpNm_MainFunction(void)

8.6 期望接口

8.6.1 强制接口

  • Nm_NetworkStartIndication
  • Nm_NetworkMode
  • Nm_BusSleepMode
  • Nm_PrepareBusSleepMode
  • SoAd_IfTransmit
  • Det_ReportError

8.6.2 可选接口

  • Nm_RemoteSleepIndication
  • Nm_RemoteSleepCancellation
  • Nm_RepeatMessageIndication
  • Nm_StateChangeNotification
  • Det_ReportRuntimeError

9. 时序图

[摘要] 详细时序图见原文 PDF 第 56-75 页。

主要场景:

  • Init → PassiveStartUp
  • NetworkRequest → NORMAL_OPERATION
  • 静默超时 → READY_SLEEP → PREPARE_BUS_SLEEP → BUS_SLEEP
  • RX 指示 → 维持 NORMAL_OPERATION
  • 远程睡眠指示

10. 配置规范

10.1 容器与配置参数

10.1.1 UdpNm

根容器。

10.1.2 UdpNmGlobalConfig

参数 类型 说明
UdpNmDevErrorDetect bool DET 启用
UdpNmVersionInfoApi bool 版本信息 API
UdpNmComControlEnabled bool 启用通信控制
UdpNmComUserDataSupport bool 启用用户数据
UdpNmPnEnabled bool 启用 PNC
UdpNmMainFunctionPeriod float main 周期

10.1.3 UdpNmChannelConfig

参数 类型 说明
UdpNmChannelId int 通道 ID
UdpNmMsgCycleTime float NM 消息周期(s)
UdpNmMsgTimeoutTime float 超时(s)
UdpNmTimeoutTime float NM 超时
UdpNmReadySleepCount int Ready Sleep 计数
UdpNmWaitBusSleepTime float 等待 Bus Sleep 时间
UdpNmNodeId int 节点 ID
UdpNmRepeatMessageTime float 重复消息时间

10.1.4 UdpNmRxPdu, UdpNmTxPdu

RX/TX PDU 配置。

10.1.5 UdpNmUserDataTxPdu

用户数据 TX PDU。

10.1.6 UdpNmPnInfo

PNC 信息配置。

[摘要] 完整配置详见原文 PDF 第 76-90 页。

10.2 已发布信息

按 BSW General。


翻译说明

  • 本译本基于 AUTOSAR CP 4.4.0 的 UDP 网络管理规范 (Document ID 446,共 91 页)
  • 摘要标记位置:第 6 章需求追溯、第 9 章时序图、第 10 章配置