当前位置: 首页 > news >正文

图解AUTOSAR_CP_NetworkManagementInterface

AUTOSAR 网络管理接口(Nm)详解

AUTOSAR 网络管理接口规范与实现指南

目录

  • 1. 概述
    • 1.1. 网络管理接口的作用
    • 1.2. 网络管理接口的特点
  • 2. 网络管理接口架构
    • 2.1. 架构概览
    • 2.2. 模块交互关系
  • 3. 网络管理状态机
    • 3.1. 状态定义
    • 3.2. 状态转换
  • 4. 协调算法
    • 4.1. 协调关闭流程
    • 4.2. 同步点机制
    • 4.3. 协调关闭中断处理
  • 5. 网络管理交互序列
    • 5.1. 网络启动流程
    • 5.2. 网络关闭流程
    • 5.3. 协调关闭流程
  • 6. 配置模型
    • 6.1. 配置结构
    • 6.2. 配置参数
  • 7. 总结
    • 7.1. 网络管理接口的优势
    • 7.2. 应用场景

在这里插入图片描述

1. 概述

1.1. 网络管理接口的作用

AUTOSAR网络管理接口(Nm)是AUTOSAR通信栈中的一个关键组件,它为不同总线类型的网络管理提供了统一的接口。网络管理接口的主要作用包括:

  • 提供统一的API接口,屏蔽不同总线类型网络管理的差异
  • 管理网络的启动和关闭过程
  • 协调多个网络的关闭过程,确保系统有序地进入低功耗模式
  • 支持网络唤醒功能,使系统能够从低功耗模式恢复

1.2. 网络管理接口的特点

网络管理接口具有以下特点:

  • 通用性:支持多种总线类型,包括CAN、FlexRay、以太网等
  • 可配置性:提供丰富的配置选项,满足不同应用场景的需求
  • 协调功能:支持多网络协调关闭,确保系统有序进入低功耗模式
  • 状态管理:提供完整的网络状态管理机制
  • 可扩展性:支持通过CDD(Complex Device Driver)扩展支持其他网络管理协议

2. 网络管理接口架构

2.1. 架构概览

AUTOSAR网络管理接口位于通信管理(ComM)和总线特定网络管理模块(如CanNmFrNm等)之间,作为一个通用接口层,提供统一的API。
在这里插入图片描述

2.2. 模块交互关系

网络管理接口与其他模块的交互关系如下:

  1. 向上接口

    • ComM提供网络状态通知和网络管理服务
    • 接收来自ComM的网络请求和释放命令
  2. 向下接口

    • 调用总线特定网络管理模块(CanNmFrNmUdpNmJ1939Nm等)的API
    • 接收来自总线特定网络管理模块的状态通知
  3. 横向接口

    • 支持通过CDD扩展其他网络管理协议(如OSEK NM)

网络管理接口通过这种分层架构,实现了对不同总线类型网络管理的统一抽象,简化了上层应用的开发。


3. 网络管理状态机

3.1. 状态定义

网络管理接口定义了一个状态机来管理网络状态。状态机包含以下状态:
在这里插入图片描述
网络管理状态机包含以下主要状态:

  1. NM_STATE_BUS_SLEEP

    • 总线睡眠状态,网络处于低功耗模式
    • 此状态下无通信活动
    • 系统初始化后默认进入此状态
  2. NM_STATE_PREPARE_BUS_SLEEP

    • 准备总线睡眠状态
    • 等待进入睡眠模式的超时
    • 可被网络请求或接收到的NM消息中断
  3. NM_STATE_READY_SLEEP

    • 准备睡眠状态
    • 节点已准备好进入睡眠,但等待其他节点也准备好
  4. NM_STATE_NORMAL_OPERATION

    • 正常运行状态
    • 网络完全激活,支持正常通信
  5. NM_STATE_REPEAT_MESSAGE

    • 重复消息状态
    • 节点重复发送NM消息,确保网络激活
  6. NM_STATE_SYNCHRONIZE

    • 同步状态
    • 用于网络同步过程

3.2. 状态转换

状态机的主要转换包括:

  1. 网络启动转换

    • NM_STATE_BUS_SLEEPNM_STATE_REPEAT_MESSAGE:通过Nm_NetworkRequest或被动唤醒触发
    • NM_STATE_BUS_SLEEPNM_STATE_NORMAL_OPERATION:通过Nm_PassiveStartUp触发
  2. 网络关闭转换

    • NM_STATE_NORMAL_OPERATIONNM_STATE_READY_SLEEP:通过Nm_NetworkRelease且所有节点准备睡眠触发
    • NM_STATE_READY_SLEEPNM_STATE_PREPARE_BUS_SLEEP:当所有节点准备睡眠时触发
    • NM_STATE_PREPARE_BUS_SLEEPNM_STATE_BUS_SLEEP:超时后触发
  3. 中断关闭转换

    • NM_STATE_PREPARE_BUS_SLEEPNM_STATE_REPEAT_MESSAGE:通过Nm_NetworkRequest或接收到NM消息触发
    • NM_STATE_READY_SLEEPNM_STATE_REPEAT_MESSAGE:通过Nm_NetworkRequest触发
    • NM_STATE_READY_SLEEPNM_STATE_NORMAL_OPERATION:接收到无睡眠指示的NM消息触发
  4. 其他转换

    • NM_STATE_NORMAL_OPERATIONNM_STATE_REPEAT_MESSAGE:通过Nm_RepeatMessageRequest触发
    • NM_STATE_REPEAT_MESSAGENM_STATE_NORMAL_OPERATION:重复消息完成后触发
    • NM_STATE_SYNCHRONIZENM_STATE_NORMAL_OPERATION:同步完成后触发

4. 协调算法

4.1. 协调关闭流程

网络管理接口提供了协调关闭功能,用于协调多个网络的关闭过程,确保系统有序地进入低功耗模式。
在这里插入图片描述

协调关闭流程的主要步骤包括:

  1. 触发协调关闭

    • ComM请求网络释放,调用Nm_NetworkRelease
    • Nm检查是否为协调网络
  2. 计算全局协调时间

    • 全局协调时间 = 所有协调网络中最大的关闭时间
    • 确保所有网络有足够的时间完成关闭过程
  3. 同步点处理

    • 如果配置为使用同步点,等待同步网络的同步点
    • 同步点通过Nm_SynchronizationPoint回调函数通知
    • 如果未配置使用同步点,立即开始协调关闭
  4. 并行关闭处理

    • 启动协调关闭定时器
    • 并行处理多个网络的关闭流程
    • 每个网络等待全局协调时间
    • 所有网络同时进入准备睡眠状态
  5. 完成关闭

    • 所有网络进入总线睡眠状态
    • 系统进入低功耗模式

4.2. 同步点机制

同步点机制用于确保协调关闭过程的同步性,特别是在处理非确定性总线时。同步点的主要特点包括:

  1. 同步网络配置

    • 每个协调集群只能配置一个网络作为同步网络
    • 同步网络通过NmSynchronizingNetwork参数配置
  2. 同步点通知

    • 同步网络在适当的时间点调用Nm_SynchronizationPoint回调
    • 回调函数通知协调器开始协调关闭过程
  3. 同步用例

    • 同步命令:所有网络同时收到关闭命令
    • 同步启动:协调关闭过程同时启动
    • 同步网络睡眠:所有网络同时进入睡眠状态

4.3. 协调关闭中断处理

协调关闭过程可能会被网络唤醒中断。中断处理的主要步骤包括:

  1. 检测唤醒

    • 检查是否发生网络唤醒事件
    • 唤醒事件可能来自外部唤醒或协调唤醒
  2. 中断处理

    • 如果发生唤醒,中断协调关闭流程
    • 重新激活所有协调网络
    • 恢复正常通信
  3. 继续关闭

    • 如果未发生唤醒,继续协调关闭流程
    • 完成网络关闭过程

5. 网络管理交互序列

5.1. 网络启动流程

在这里插入图片描述

网络启动流程的主要步骤包括:

  1. 启动请求

    • ComM调用Nm_NetworkRequest请求启动网络
    • Nm接收请求并处理
  2. 总线特定处理

    • Nm调用相应的总线特定网络管理模块(如CanNm_NetworkRequest)
    • 总线特定模块发送NM消息激活网络
  3. 状态通知

    • 总线特定模块进入重复消息状态
    • 通过Nm_NetworkMode回调通知网络已激活
    • Nm将通知转发给ComM(ComM_Nm_NetworkMode)

5.2. 网络关闭流程

网络关闭流程的主要步骤包括:

  1. 关闭请求

    • ComM调用Nm_NetworkRelease请求关闭网络
    • Nm接收请求并处理
  2. 总线特定处理

    • Nm调用相应的总线特定网络管理模块(如CanNm_NetworkRelease)
    • 总线特定模块设置睡眠指示位
    • 发送带睡眠指示的NM消息
  3. 准备睡眠

    • 总线特定模块等待所有节点准备睡眠
    • 通过Nm_PrepareBusSleepMode回调通知准备进入睡眠模式
    • Nm将通知转发给ComM(ComM_Nm_PrepareBusSleepMode)
  4. 进入睡眠

    • 总线特定模块等待超时
    • 通过Nm_BusSleepMode回调通知已进入睡眠模式
    • Nm将通知转发给ComM(ComM_Nm_BusSleepMode)

5.3. 协调关闭流程

协调关闭流程的主要步骤包括:

  1. 协调关闭请求

    • ComM对多个通道调用Nm_NetworkRelease
    • Nm计算全局协调时间
  2. 并行处理

    • Nm对多个通道调用总线特定的NetworkRelease函数
    • 总线特定模块等待全局协调时间
  3. 同步通知

    • 所有通道同时通过回调函数通知状态变化
    • 包括PrepareBusSleepModeBusSleepMode通知
    • Nm将通知转发给ComM
  4. 完成关闭

    • 所有网络同时进入总线睡眠状态
    • 系统进入低功耗模式

6. 配置模型

6.1. 配置结构

网络管理接口的配置模型定义了如何配置网络管理功能。
在这里插入图片描述

配置模型的主要结构包括:

  1. Nm

    • 顶层配置容器
    • 包含NmGeneralNmGlobalConfig和多个NmChannelConfig
  2. NmGeneralType

    • 通用配置参数
    • 包括错误检测、版本信息API和主函数周期
  3. NmGlobalConfigType

    • 全局配置参数
    • 包括主函数周期时间、全局协调时间和协调同步支持
  4. NmChannelConfigType

    • 通道配置参数
    • 每个通道对应一个网络接口
    • 可配置为不同的总线类型和功能
  5. NmCoordinationSyncSupportType

    • 协调同步支持配置
    • 用于配置网络协调功能
    • 包括协调集群索引、活动协调器标志和同步网络标志
  6. NmBusNmType

    • 总线类型枚举
    • 支持CAN、FlexRay、UDP、J1939和本地NM

6.2. 配置参数

网络管理接口的主要配置参数包括:

  1. 通用参数

    • NmDevErrorDetect:是否启用开发错误检测
    • NmVersionInfoApi:是否支持版本信息API
    • NmMainFunctionPeriod:主函数周期时间
  2. 全局参数

    • NmCycletimeMainFunction:主函数调用周期
    • NmGlobalCoordinatorTime:全局协调时间
    • NmCoordinationSynchronizationSupport:是否支持协调同步
  3. 通道参数

    • NmChannelId:通道ID
    • NmBusType:总线类型(CAN、FlexRay、UDP、J1939或本地NM)
    • NmNodeDetectionEnabled:是否启用节点检测
    • NmNodeIdEnabled:是否启用节点ID
    • NmRepeatMessageSupport:是否支持重复消息
    • NmUserDataSupport:是否支持用户数据
    • NmComUserDataSupport:是否支持COM用户数据
    • NmPduRxIndicationEnabled:是否启用PDU接收指示
    • NmRemoteSleepIndEnabled:是否启用远程睡眠指示
    • NmBusSynchronizationEnabled:是否启用总线同步
    • NmCoordinationSupport:是否支持协调
    • NmStateChangeIndEnabled:是否启用状态变化指示
    • NmCarWakeUpRxEnabled:是否启用车辆唤醒接收
  4. 协调同步参数

    • NmCoordClusterIndex:协调集群索引
    • NmActiveCoordinator:是否为活动协调器
    • NmSynchronizingNetwork:是否为同步网络

7. 总结

7.1. 网络管理接口的优势

AUTOSAR网络管理接口具有以下优势:

  • 统一接口:提供统一的API,简化上层应用开发
  • 可配置性:丰富的配置选项,满足不同应用场景需求
  • 协调功能:支持多网络协调关闭,确保系统有序进入低功耗模式
  • 可扩展性:支持通过CDD扩展其他网络管理协议
  • 标准化:符合AUTOSAR标准,确保不同供应商组件的互操作性

7.2. 应用场景

网络管理接口适用于以下应用场景:

  1. 多网络ECU

    • 管理多个网络接口的ECU
    • 协调多个网络的关闭过程
  2. 低功耗管理

    • 需要精确控制网络进入和退出低功耗模式的系统
    • 支持部分网络唤醒功能
  3. 网关应用

    • 连接多个网络的网关ECU
    • 协调不同网络的状态
  4. 分布式系统

    • 多ECU分布式系统
    • 需要协调多个ECU的网络状态

相关文章:

  • 人工智能之数学基础:从线性变换理解矩阵范数和矩阵行列式
  • JavaScript 中的包装类型:概念、作用与使用场景
  • spring启动流程
  • 集成学习(上):Bagging集成方法
  • C# ManualResetEvent‌的高级用法
  • Pytorch学习笔记
  • 书摘 ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离
  • 案例驱动的 IT 团队管理:创新与突破之路:第二章 团队组建:从人才画像到生态构建-2.2.1星型架构 vs 网状架构对比
  • 华为中小型企业项目案例
  • Three.js学习
  • 5分钟快速申请一个EDU教育邮箱
  • Python 编程题 第十节:重复数字、相邻字符去重、2的幂、最长公共子串、冒泡排序
  • 【2025年3月最新】Cities_Skylines:城市天际线1全DLC解锁下载与教程
  • vue中父组件与子组件的created方法执行顺序
  • Linux内核实时机制28 - RT调度器11 - RT 组调度
  • C# PaddleOCR字符识别
  • Git 使用指南
  • OSPF-5 3类LSA SummaryLSA
  • MySQL---DDL(3.17)
  • 【工作记录】F12查看接口信息及postman中使用
  • 人民空军:网上出现的“运-20向外方运送物资”为不实消息
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 苏东坡:人生就是哈哈哈哈哈
  • 咸宁市委常委、市纪委书记官书云调任湖北省司法厅副厅长
  • 巴基斯坦称对印精准打击造成设施损坏和人员伤亡