# 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. 介绍与功能概述](#1-介绍与功能概述) - [2. 缩略语](#2-缩略语) - [3. 相关文档](#3-相关文档) - [4. 约束与假设](#4-约束与假设) - [5. 与其他模块的依赖](#5-与其他模块的依赖) - [6. 需求可追溯性](#6-需求可追溯性) - [7. 功能规范](#7-功能规范) - [8. API 规范](#8-api-规范) - [9. 时序图](#9-时序图) - [10. 配置规范](#10-配置规范) --- ## 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 ```c typedef struct UdpNm_ConfigType UdpNm_ConfigType; ``` #### 8.2.2 UdpNm_StateType, UdpNm_ModeType 继承 Nm 模块定义。 ### 8.3 函数定义 #### 8.3.1 UdpNm_Init ```c void UdpNm_Init(const UdpNm_ConfigType* udpnmConfigPtr) ``` | Service ID | 0x01 | | --- | --- | #### 8.3.2 UdpNm_DeInit ```c void UdpNm_DeInit(void) ``` #### 8.3.3 UdpNm_PassiveStartUp ```c Std_ReturnType UdpNm_PassiveStartUp(NetworkHandleType nmChannelHandle) ``` #### 8.3.4 UdpNm_NetworkRequest ```c Std_ReturnType UdpNm_NetworkRequest(NetworkHandleType nmChannelHandle) ``` #### 8.3.5 UdpNm_NetworkRelease ```c 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 ```c 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 章配置