深析AutosarNM 网络管理

news2024/12/23 23:10:16

深析AutosarNM 网络管理

  • 深析AutosarNM 网络管理
    • 1. AutosarNM 网络管理相关的专业术语
    • 2. 各种模式下的各种状态下,报文的收发情况汇总如下表:
    • 3. AutosarNM网络管理使用的时间参数:
    • 4. AutosarNM网络管理唤醒请求(Wake Up Request)
    • 5. ​​​​​​​AutosarNM网络管理的网络状态(Network States)
    • 6. ​​​​​​​AutosarNM网络管理状态机步说明:
    • 总结:

深析AutosarNM 网络管理

在这里插入图片描述

1. AutosarNM 网络管理相关的专业术语

如上图所示,状态机中有三个主状态,分别是BusSleep、PreSleep、Network三个状态;其中 Network状态又分为三个子状态,分别是RepeatMsg、NormalOperate、ReadySleep。(大家经常说的三大三小)下面来讲一下每个状态它的作用。

睡眠模式(Bus-Sleep Mode): 此状态就是我们所说的休眠状态,当ECU没有本地网络唤醒源以及远程唤醒请求源时,控制器就会进入此睡眠模式,ECU在该状态下就是一个低功耗的状态,大部分耗电外设均已经关闭,仅仅留下一些唤醒源的检测,此模式下NM报文只收不发,APP报文不收不发,这是整车上所有ECU的协同睡眠状态,当ECU上电初始化时默认进入该状态。

预休眠模式(Prepare Bus-Sleep Mode): 从字面意思可以知道这是一个准备进入休眠的一个状态(应用报文不收不发,网络管理报文只收不发),ECU进入到这个状态时处于只收NM帧的状态,它会等待一段时间 T_WAIT_BUS_SLEEP让车上所有的ECU实现一起休眠,为什么要一起休眠呢?因为有些ECU之间的工作是彼此关联的,如果不等待其他ECU自己完全进入休眠,会导致其关联的ECU会出现DTC或者是警告信息,AutosarNM网络管理因为是直接网络管理,它与OSEK NM的间接网络管理不同,AutosarNM中的每个节点都可以作为主节点自己来管理自己,所以ECU会等待一段时间让大家同步进入休眠,当等待T_WAIT_BUS_SLEEP超时就进入睡眠模式。

网络模式(Network Mode): 网络模式其实就是ECU基本处于一种工作的状态中,网络模式里面又包含3个子状态

**1> 重复报文状态(RMS) :**里面包含两种状态 NM PDU Normal immediate state 和 NM PDU Normal Transmit State , NM PDU Normal immediate state主要是ECU作为主唤醒节点时,当它检测到本地唤醒源时(例如开关检测/蓝牙建立连接/NFC卡片靠近等等唤醒 条件)它就会首先从整车网络上先醒过来,此时会以快速周期发送若干次NM帧(例如10ms周期发送5次)目的是快速通知到其它ECU自己已"上线"准备要进行网络通讯了。快速发送完成之后就进入NM PDU Normal Transmit State状态,此时就是正常周期发送NM报文了。 NM PDU Normal immediatestat(快速周期:N_immediateNMCycleTime 快速帧的次数:N_immediateNM_times这个一般都是由整车厂来规定的) NM PDU Normal Transmit State(正常周期:NM_MessageCycleTime 发送时长: T_REPEAT_MESSAGE)

**2> 正常工作状态(NOS) :**ECU在进入 RMS一段时间后,会跳转到正常工作状态,此状态 下NM报文可收可发,APP报文可收可发,NOS可以说明ECU处于一种真正的唤醒状 态,可正常进行通讯。

**3> 准备睡眠状态(RSS):**当ECU从工作状态准备进入休眠时必须要经过这个状态,主要 是做休眠之前的一些准备工作,就比如说有些数据要存储EEPROM还在写操作中, ESCL电子转向柱锁解闭锁动作还未完成,也有可能是电机控制器检测到电机未处于停 止状态,也就是说这个状态是要让休眠前的准备工作都要完成即ECU的外设要都处于空 闲的状态,在RSS状态时NM报文只收不发,APP报文可收可发。

2. 各种模式下的各种状态下,报文的收发情况汇总如下表:

在这里插入图片描述

3. AutosarNM网络管理使用的时间参数:

在这里插入图片描述

4. AutosarNM网络管理唤醒请求(Wake Up Request)

主动唤醒请求(Active Wake up):ECU 作为主唤醒节点,当检测到本地唤醒源时就会主动请求使用网络。主动唤醒节点的网络管理报文必须先于应用报文发送。这个可以参开时间参数 T_STARTTx_AppFrame = 20ms,也就是说ECU主动唤醒时会进入RMS模式,这个时候网络管理报文和应用报文都可收发,此参数就是要求从休眠唤醒后发出第一帧NM报文后最大间隔多长时间需要发出应用报文。

**被动唤醒请求(Passive Wake up):**ECU 作为从唤醒节点自己不能主动唤醒自己,只能来自总线上其他模块对该模块的网络请求。被动唤醒的节点,发送网络管理报文和应用报文的先后顺序无特别要求。为什么主动唤醒需要优先发送NM帧然后发出应用报文呢?主要是需要快速发出NM帧来唤醒其它ECU节点与自己进行通讯。

5. ​​​​​​​AutosarNM网络管理的网络状态(Network States)

● **网络请求(Network Request):**当ECU 处于网络请求状态时,说明ECU有网络通讯的需求,会一直持续发送NM Frame,保持着唤醒。

● **网络释放(Network Rleased):**当ECU 处于网络释放状态时,说明ECU没有网络通讯的需求,不再发送NM报文,只发送应用报文,等待所有节点释放网络后同时进入预睡眠状态。

6. ​​​​​​​AutosarNM网络管理状态机步说明:

在这里插入图片描述

Step NM_01: IG ON

ECU POWER ON 上电之后就会初始化进入休眠模式(Bus-Sleep Mode),此时如果没有唤醒 源来唤醒此节点,那ECU就会一直处于休眠状态下。

Step NM_02: Passive wakeup(被动唤醒)

被动唤醒是ECU作为从唤醒节点,自己不能主动唤醒自己,只能通过接收到其它ECU发来的NM网络管理帧来唤醒自己。被动唤醒时会启动两个计时器 Repeat_message timer && NM_timeout timer,这里需要说明这两个计时的作用,从状态机可知当 ECU 从睡眠状态或预睡眠状态跳转到网络状态时都需要先进入重复报文状态(RMS),Repeat_message timer计时是ECU保持在RMS状态的最大时间,超时之后ECU就会进入NOS模式或者RSS模式,NM_timeout timer是ECU保持在网络模式下的最长时间,不管是发送自身的NM帧还是接收到其它ECU的NM帧都会启动NM_timeout timer计时,ECU成功发送或者成功接收一帧NM报文后都会重启该定时器。如果自身不在发送NM同时也没有接收到其它节点的NM帧,那么NM_timeout timer就会超时,超时之后ECU就会退出NM模式(network mode)进入到预休眠的模式了。

Step NM_03: Active wakeup(主动唤醒)

主动唤醒是ECU检测到本地唤醒源时,也就是自身有网络通讯的需求,也是会从休眠模式进入RMS模式,但是与被动唤醒的不同点是,主动唤醒节点ECU会以较快的周期发送若干次NM帧,并且主动唤醒节点在发送完第一帧NM帧之后需要在相对短的时间内发出自己的应用报文。

Step NM_04: NM_Immediate State(NM快发模式)

出现本地唤醒源时,ECU就会处于NM 快发模式,NM快发周期和快发次数如T_NM_ImmediateCycleTime 和 N_immediateNM_times所定义的,一般这两个数值由 Vehicle OEM来指定。

Step NM_05: RMS 超时且 NetworkRequest

当RMS超时后,如果控制器维持有本地唤醒条件(有请求网络通讯的需求)则会进入正常工作状态(NOS)状态。

Step NM_06: RMS 超时且 NetworkReleased网络释放

当RMS超时后,如果控制器没有本地唤醒条件(没有请求网络通讯的需求)则会进入准备睡眠状态RSS。该状态是用来等待其它节点停止网络请求并同时进入预休眠状态,在该状态中ECU正常发送应用报文,不再发送网络管理报文,正常接收NM和APP报文,当成功接收到一帧网络管理报文后会重启NM_TIMEOUT Timer,使自身维持在准备睡眠RSS状态。

Step NM_07: RMS 超时且 NetworkRequest网络请求

当RMS超时后,ECU进入RSS等待休眠状态,在这个状态下NM只收不发,APP报文可收可发,在等待其它节点停止网络请求同步进入休眠的期间,当ECU有网络通讯的需求,会一直持续发送NM Frame,保持着唤醒,又从RSS回到NOS模式。

Step NM_08: RMS 超时且 NetworkRequest网络请求

当RMS超时后,ECU如果没有网络通讯需求则直接进入RSS状态。

Step NM_09: RMS 超时且 NetworkRequest网络请求

当ECU在RSS状态时,NM只收不发APP可收可发,当在准备休眠状态下,如果一段时间没有接收到其它节点的NM报文,就会出现NM_TIMEOUT 超时,此时ECU就会退出RSS状态其实也就是当NM模式超时后就进入预休眠模式。

Step NM_10: 预休眠模式下远程唤醒
当ECU在预休眠模式下,应用报文不发不收,NM报文只收不发,会在这种模式下等待一段时间T_WAIT_BUS_SLEEP 当等待的过程中有其它节点请求网络通讯时,则会立即从预休眠状态进入到RMS中的 NM PDU Normal Transmit State,再次按照上述流程往下跑状态机。

Step NM_11: 预休眠模式下本地唤醒

当ECU在预休眠模式下,应用报文不发不收,NM报文只收不发,会在这种模式下等待一段时间 T_WAIT_BUS_SLEEP 当等待的过程中有其它节点请求网络通讯时,则会立即从预休眠状态进入到RMS中的 NM PDU Normal immediate state快发然后正常发送,后面再次按照上述流程往下跑状态机。

Step NM_12: 再次回到休眠模式

当ECU在与休眠模式下等待 T_WAIT_BUS_SLEEP 超时后,再次回到休眠状态,也就是ECU此时处于一种低功耗的状态。

总结:

​​​​​​​ECU最初处于Bus-Sleep Mode中,当它有了通信需求(比如接收其他ECU的NM报文,或者它的逻辑功能要求自己唤醒,比如车门控制器收到了遥控钥匙的信号),它就会进入Network Mode,Repeat Message状态是Network Mode的入口状态,到达这个状态之后,ECU会启动一个Repeat Message Timer,在这个Timer定义的时间内,ECU会一直处于Repeat Message状态。当这个timer结束后,如果有通信需求,ECU则进入Normal Operation状态,如果没有通信需求,则进入Ready Sleep 状态。Normal Operation状态就是ECU正常运行的状态,此时它的应用报文和NM报文都会正常收发。当ECU没有通信需求,它会瞬间进入Ready Sleep状态,在Ready Sleep中,如果又出现了通信需求,ECU则瞬间再回复到Normal Operation,如果在一个Timeout Timer中一直没有通信需求,ECU就进入Prepare Bus-Sleep Mode,在Prepare Bus-Sleep状态中,也会启动一个Timeout Timer,如果在这段时间内有了通信需求,ECU又会立即回到Repeat Message状态,如果过了这个timer还没有通信需求,则ECU会回到Bus-Sleep Mode中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 5.7数据库下载与安装教程

说明: 安装环境:Win10 64位 软件版本:MySQL 5.7.35 解压版 一.下载 点击下载地址: MySQL :: Download MySQL Community Server (Archived Versions) https://downloads.mysql.com/archives/community/ 选择合适的版本下载 绿色框框 是正式版&#xff0…

第02讲:SpringCloudStream

一、什么是SpringCloudStream SpringCloudStream是SpringCloud的一个子项目,他提供了一套更加通用的操作MQ的解决方案 Destination Binder(目标绑定器) :微服务与消息中间件通信的组件Destination Bindings(目标绑定&…

2023爱分析・云原生 IDE 市场厂商评估报告-行云创新(CloudToGo)

1. 研究范围定义 企业数字化转型初期,通过资源池云化,解决了IDC时代运维、部署、扩容的难题,但传统应用单体架构厚重、烟囱式架构等带来的一系列应用层面的问题并没有得到有效解决,云对业务的价值主要还停留在资源供给的阶段…

Scaled dot-prodect Attention的原理和实现(附源码)

文章目录 背景什么是AttentionAttention权重的计算方法1. 多层感知机法2. Bilinear方法3. Dot Product4. Scaled Dot Product Scaled dot-prodect Attention的源码实现 背景 要了解深度学习中的Attention,就不得不先谈Encoder-Decoder框架(sequence to s…

拍立淘API接口说明文档 按图搜索淘宝商品API 实时数据返回

开发背景: 随着电商行业的不断发展,人们的购物需求日益增多。在购买商品时,很多人会通过搜索引擎、社交媒体等手段来获取信息或灵感。但是,在这些渠道中找到想要的商品并不容易,因为其中可能会混杂着一些广告或无关内…

Android内存优化检测工具LeakCanary使用

一、什么是LeakCanary leakCanary是Square开源框架,是一个Android和Java的内存泄露检测库。如果检测到某个activity有内存泄露,LeakCanary就是自动地显示一个通知,所以可以把它理解为傻瓜式的内存泄露检测工具。通过它可以大幅度减少开发中遇…

Java 并发队列详解

一,简介 1,并发队列两种实现 以ConcurrentLinkedQueue为代表的高性能非阻塞队列以BlockingQueue接口为代表的阻塞队列 2,阻塞队列与非阻塞队列的区别 当阻塞队列是空的时,从队列中获取元素的操作将会被阻塞,试图从…

【BFS】华子20230506笔试第三题(动态迷宫问题)Java实现

文章目录 题目链接思路BFS板子我的解答 题目链接 塔子哥的codeFun2000:http://101.43.147.120/p/P1251 测试样例1 输入 3 2 1 0 1 2 2 1 2 0 100 100 100 100 000 100 000 000 001输出 1测试样例2 输入 3 2 1 0 2 0 0 1 2 2 000 000 001 010 101 101 110 010 …

在docker容器中启动docker服务并实现构建多平台镜像的能力

在docker容器中启动docker服务并实现构建多平台镜像的能力 背景 在容器中运行docker,是devops中无法避免的场景,通常被应用于提供统一的镜像构建工具,出于安全考虑,不适合将主机的docker进程暴露给公司的内部人员使用&#xff0…

SpringCloud alibaba微服务b2b2c电子商务平台

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务、系统服务、中间件服务) 2. 核心架构 Spring Cloud、Spring Boot2、My…

飞书开发流程

1、进入飞书并创建一个应用 链接: 创建应用 创建应用成功后需要审核通过,如果你拥有管理权限则可以自己进入管理后台通过审核,否则需要联系管理员通过审核 2、进入开发者后台 链接: 发者后台 3、在该调试平台上测试 以这个订阅审批事件为例 这一步…

DHCP协议简单配置

实验原理 网络中主机需要与外界进行通信时,需要配置自己的IP地址、网关地址、DNS服务器等网络参数信息。手工在每台主机上配置维护成本高,容易出错,而且不利于管理员统一维护。 通过DHCP地址自动配置协议,使终端设备能自动获取地址,实现即插即用且IP地址统一由服务器管理…

springboot+java充电桩充电额维修管理系统

项目介绍 Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SSM(Spring MVC Spring MyBatis )框架进行开发的过程。 系统基于B/S即所谓浏览器/服务器模式…

STM32 学习笔记_9 定时器中断:编码器接口模式

TIM编码器接口 之前我们处理旋转编码器,是转一下中断一次,挺消耗资源的。 我们可以利用TIM的编码器功能,隔一段时间取一下旋转器值使得cnt或–,以此判断旋转位置以及计算速度,相比中断节约资源。相当于外接了一个有方…

Kubernetes那点事儿——暴露服务之Service

Kubernetes那点事儿——暴露服务之Service 前言一、Service二、Service与Pod关系三、Service常用类型ClusterIPNodePortLoadBalancer 四、Service代理模式IptablesIPVS修改代理模式 前言 K8s中,我们将应用跑在Pod里。多数情况下是一组Pod,用户如何访问这…

凌恩生物美文分享 | 提升科研有一套 | 宏基因组磷循环分析又出新!

磷是包括微生物在内的所有生命体中不可缺少的元素。在生物大分子核酸、高能量化合物ATP、以及生物体内糖代谢的某些中间体中,都有磷的存在。在自然界中,磷的循环包括可溶性无机磷的同化、有机磷的矿化、不溶性磷的溶解等。微生物分解含磷化合物的作用&am…

操作系统面试相关知识

目录 一、简介1、什么是操作系统2、操作系统主要有哪些功能? 二、操作系统结构1、什么是内核?2、什么是用户态和内核态?3、 用户态和内核态是如何切换的? 三、 进程和线程1、并行和并发有什么区别?2、什么是进程上下文…

无线传感器网络的时钟同步估计问题(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着无线传感器网络的快速发展,其应用领域也越来越广。在诸多的应用环境中都需要大量已同步的传感器节点通过协同作用执行一个…

Python 中IndexError: list assignment index out of range 错误解决

文章目录 Python IndexError:列表分配索引超出范围修复 Python 中的 IndexError: list assignment index out of range修复 IndexError: list assignment index out of range 使用 append() 函数修复 IndexError: list assignment index out of range 使用 insert()…

怎么把文本翻译成英文?安利三个文本翻译方法

在当今全球化的时代,跨国交流和合作已经成为常态。然而,不同语言之间的沟通障碍经常阻碍着信息传递和理解。为了帮助我们更好地进行国际交流,文本翻译英文软件应运而生。这类软件能够将各种语言的文本迅速准确地翻译成英文,使我们…