首页 > 其他分享 >【车载开发系列】NM网络管理基础知识

【车载开发系列】NM网络管理基础知识

时间:2024-06-16 19:32:12浏览次数:14  
标签:NM 网络管理 报文 总线 模式 基础知识 ECU 唤醒

【车载开发系列】NM网络管理基础知识

【车载开发系列】NM网络管理基础知识

  • 【车载开发系列】NM网络管理基础知识
    • 一. NM网络管理的作用
    • 二. 网络管理如何实现省电
    • 三. 什么是ECU的睡眠唤醒
    • 四. 关于唤醒请求
    • 五. 总线唤醒(Bus wake up)
    • 六. 直接间接网络管理
    • 七. 网络管理的目标
    • 八. 网络管理的三种模式
      • 1)总线休眠模式
      • 2)总线预休眠模式
      • 3)网络模式
        • 1)准备睡眠状态
        • 2)正常运行状态
        • 3)重复报文状态

一. NM网络管理的作用

NM是Network Management也就是网络管理的简称。
不管是传统的燃油车还是新能源车,车上都有各种各样的ECU,而所有这些ECU都是需要用电的,而车上的供电单元一般是蓄电池,因此蓄电池的电量是有限的,对于新能源车来说太耗电无疑会给电池的续航里程带来巨大影响,因此为了尽可能的省电,所以就提出了网络管理,也就是说网络管理一个最重要的作用就是为了省电。
在这里插入图片描述

二. 网络管理如何实现省电

网络管理就是通过在各个ECU的网络上,发送一些命令制定一套规则,来实现各个ECU的协同睡眠和唤醒,从而实现省电的效果。
总结一句话,其实网络管理就是用来节约能源,有效的实现车上的ECU的协同睡眠和唤醒。

三. 什么是ECU的睡眠唤醒

为了支持睡眠和唤醒,ECU的芯片必须支持低功耗模式和正常工作模式的切换。低功耗模式(ECU睡眠)指一个ECU断电或者处于极少数的外围器件工作的模式;唤醒指的是ECU处于全工作模式。

四. 关于唤醒请求

唤醒请求可分为主动唤醒和被动唤醒两种。
主动唤醒请求(本地唤醒请求):来自模块内部对网络的请求。主动唤醒节点的网络管理报文必须先于应用报文发送。主动唤醒节点必须确保网段上ECU被唤醒了,此时他再发应用报文才有人收。
被动唤醒请求(远程唤醒请求):来自总线上其他模块对该模块的网络请求。被动唤醒的节点,发送网络管理报文和应用报文的先后顺序无特别要求。

五. 总线唤醒(Bus wake up)

ECU处于低功耗模式,仅在总线上出现符合ISO 11898-5标准定义的唤醒序列,且该 ECU成功接收到该网段定义的唤醒报文时才能够被总线唤醒。这里这条唤醒报文必须是该网段中ECU的网络管理报文。

六. 直接间接网络管理

直接网络管理:节点醒了之后发NM报文,其他所有节点收到NM报文全都唤醒。(同起同睡)
间接网络管理:节点醒了之后发应用报文,其它节点就会上一下子电,然后跑到检测唤醒源代码,检测到不是有效唤醒,最后就会马上又休眠下去。

七. 网络管理的目标

网络管理(Network Management )的目标是对电源的管理,CAN NM模块处于CP AUTOSAR中的通讯服务层。网络管理和电源管理是两套不同的逻辑,但彼此又有关联。

八. 网络管理的三种模式

网络管理包含如下三种模式: 睡眠模式(Bus-Sleep Mode) 、预睡眠模式(Prepare Bus-Sleep Mode) 、网络模式(Network Mode)。
在这里插入图片描述

1)总线休眠模式

在TwaitBusSleep超时,模块进入该模式。在该模式下不发送网络管理报文和应用报文,与总线预休眠模式不同的是,它也不监听总线上的报文。当然它需要保证所有节点都能停止总线活动。
在此状态,模块可以管理I/O口去完成不需要访问CAN总线。

2)总线预休眠模式

不发网络管理报文和应用报文。
如果模块收到有效网络管理报文或者模块需要请求网络,进入网络模式,模块进入重复报文状态。

3)网络模式

网络模式一共包含了三个状态:分别是重复报文状态,正常运行状态和准备睡眠状态。
在总线休眠模式或总线预睡眠模式时,模块接收到任意的有效本地唤醒条件,或者远程唤醒条件,或有效网络管理报文,则进入网络模式。
在网络模式当中,模块接收到网络管理报文或者成功发送网络管理报文,模块的网络管理应该重置NM-Timeout。

1)准备睡眠状态

在准备睡眠状态中,NM-Timeout超时之后,这个时候会从网络模式进入预休眠模式。
在这个模式下,模块只发送应用报文。
如果节点需要请求网络,节点应进入正常运行模式。

2)正常运行状态

模块可以请求网络,模块需要发送网络管理报文和应用报文。当模块不需要请求网络的时候,模块应该进入准备睡眠状态,并停发网络管理报文。
正常运行状态中如果NM-Timeout超时,应重置这个定时器。

3)重复报文状态

无论是总线休眠模式,还是总线预休眠模式进入网络模式,都应为重复报文状态。
不管是主动唤醒还是被动唤醒,都需要在这个状态下以Tnm-MessageCycle为周期发送网络管理报文。主动唤醒的场合还需要将网络管理报文中的主动唤醒标志位位置为1。

标签:NM,网络管理,报文,总线,模式,基础知识,ECU,唤醒
From: https://blog.csdn.net/Last_Impression/article/details/139663398

相关文章

  • 【1】测试基础知识
    【一】什么是软件测试以水杯为例【1】需求测试:【水杯的使用说明书】产品经理根据用户的需求写需求文档,测试人员对需求文档进行专业的测试分析哪些内容不太合理,哪里表达不清晰。【2】界面测试:【水杯的外观】公司中的ui设计工程师画原型图&画高保真图》让开发人员去用代码进行实......
  • lnmp
    一、编译安装Nginx1.前期准备#安装依赖yum-yinstallpcre-develzlib-develgccgcc-c++make#创建用户useradd-M-s/sbin/nologinnginx#获取源码包wgethttps://nginx.org/download/nginx-1.24.0.tar.gzcd/opttarxfnginx-1.24.0.tar.gz#解压2.开始编......
  • 全面的初级入门指南,从安装到基本使用,再到一些高级功能的介绍,帮助用户在实际操作中逐步
    大纲:WindowsNmap初级使用教程1.简介什么是Nmap?Nmap的主要功能和用途安全和法律注意事项2.安装Nmap前提条件从官方网站下载Nmap安装步骤验证安装3.基本使用打开命令提示符运行你的第一个Nmap扫描示例命令:nmap目标IP地址理解基本的输出结果4.常用扫......
  • Redis实战指南:基础知识、实战技巧、应用场景及最佳实践全攻略
    背景在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战:如何在有限的时间和精力下,高效地掌握并使用这些组件的核心功能,以实现......
  • 04.VisionMaster 机器视觉找圆工具
    VisionMaster机器视觉找圆工具定义先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量注意:找圆工具最好和【位置修正】模块一起使用。具体可以看下面的示例。参数说明:扇环半径:圆环ROI的内外圆半径边缘类型:最强-》只检测扫描范围内梯度最大的边缘点集合并拟合成圆......
  • 【学习笔记】爱立信SPO 1400 CRAFT软件基础知识2一图形用户界面之菜单栏
    一、前期准备提示:下面所有学习内容都是基于以下条件完成的条件1.已经正确安装并正常运行SPO1400CRAFT软件(以下简称LCT)条件2.确认已正确使用爱立信SPO1400CRAFT软件通过网络登录设备(以下简称NE)具体登录教程参考:使用爱立信SPO1400CRAFT软件通过网络登录设备的详细......
  • element-plus el-table spanMethod 行合并通用方法 可实现数据的自动整理
    importtype{TableColumnCtx}from'element-plus'interfaceSpanMethodProps<T>{row:T&Record<string,any>column:TableColumnCtx<T>rowIndex:numbercolumnIndex:number}/***el-table行合并方法*@par......
  • Vue基础知识:异步DOM更新是什么?$nextTick是什么?到底应该如何使用。什么是同步?什么是异
    要先了解异步dom更新是什么就必须先了解,什么是同步?什么是异步?1.什么是同步?什么是异步?同步(Synchronous):同步操作是按照代码的顺序执行的,每个操作都必须等待上一个操作完成后才能执行。在Vue中,同步操作通常指的是直接执行的代码,例如在方法中执行的普通JavaScript代码或同步......
  • C++基础知识总结
    一.c++的初始化intmian(){inta=10;intb(10);//用()来初始化intc{10};//用{}来初始化,较统一标准return0;}二.c++语言输入与输出#include<iostream>//输入输出流usingnamespacestd;intmain(){inta{0};charch{'0'};cin>>a>>ch;//提取符cout<<&......
  • SQL 基础知识
    **SQL基础知识**一、变量1、变量分类:局部变量,全局变量2、局部变量:局部变量以@开头,作用范围仅在程序内部。数据类型除(text,ntext,image)类型外的所有系统数据类型和用户自定义类型如:decalre@testnamechar(10)3、局部变量赋值:select语句,set语句......