AUTOSAR网络管理报文(学习笔记)

文章分为三个部分来

简绍AUTOSAR的网络管理的优点或缺点

AUTOSAR全称AUTomotive Open System ARchitecture(汽车开放系统架构)。有一点需要注意

注意看全称中的英文大写部分,写全称时必须要按照上面的格式写,不能只写首字母大写。

网络管理的定义:指通讯节点之间,睡眠-唤醒-工作之间的模式管理和切换。进一步的理解就是

每个节点内部都有几种不同类型的状态机,分别管理节点在参与通讯时的行为和规范。

AUTOSAR NM是一种分布式直接网络管理。

分布式:是指一条总线上各个节点分离。网络管理也是分布式(即自己管理自己,不直接管理其他节点)

直接网络管理:我的理解就是,网络管理是直接根据网络管理帧携带的信号来管理的。

1:AUTOSAR NetworkManage概述:

网络管理可以分为以下三大模块

时序上如图所示:

图例解析 :在黄色的repeatMessage部分,是NM报文以快速的周期发送5帧(5帧也是通过软件工具配置的参数值,快速周期也是配置的定时器)

节点处于不同模式下,对NM报文和Application报文的收发能力如下表所示:

N:代表不能执行该操作

Y:代表可以执行该操作

总结:

网络管理帧:

网络管理帧TX,只能在网络模式下的的重复模式下(RMS),和正常操作状态(NOS)下可以由节点发送。换个说法,节点只有处于RMS,和NOS状态下,才能发送网络管理帧。

网络管理帧的接收RX:节点处于任何状态下,都必须能够接收网络管理帧。(也可以这么理解,节点在任何状态下都能被NM报文唤醒)

应用报文的发送TX:只有在NM(network Mode),模式下才能发送。唯一的例外是(当节点从NM模式跳转到Prepare Sleep Mode)时,如果TX buffer(缓存器中依然有报文未完成发送工作,则在PSM模式下,依然可以发送应用报文)。

应用报文的发送RX:只有在NM(network Mode),模式下才能接收。

  • 网络模式(Network Mode),简称NM
  • 预睡眠模式 (Prepare Sleep Mode)  简写大写英文字符PSM(停止应用报文的接收和发送)
  • 总线睡眠模式 (Bus-Sleep Mode)     简写BSM

  其中网络模式中又分为三个子状态

  • 重复消息状态(Repeat Message State),RMS
  • 正常运行状态(Normal Operation State),NOS
  • 准备睡眠状态(Ready Sleep State) , RSS(停止本模块网管报文的发送)

总结如下:网络管理帧无论何种情况下都能被接收,可以说网络管理帧到哪都吃得开。

预睡眠状态下,表明节点已经有点累,暂时只能接收网络管理帧,不能发生网络管理帧,也不能接收和发送应用帧

重复信息状态下,所有帧(包括应用报文)都能被发送和接收(这一点比较关键,也是容易混淆的点)重复状态下是指网络管理帧是以较快的速率连续发送若干帧信号。

正常运行状态下,网络管理帧以较慢的速率发送。

准备睡眠状态下,网络管理报文发送被禁止,只能接收网络管理报文。网络管理报文的接收和发送依然进行。

睡眠状态下,网络管理报文能被接收,但是不能发生网管报文,也不能收发应用报文

(测试时可以根据:“发送应用报文,查看被测样件是否产生ACK应答”)

2:应用层调用的两个接口和状态

AUTOSAR网络管理节点内部有两个状态,c,当节点的应用层需要使用总线进行通讯的时候,会调用接口使得节点进入请求状态,当应用层没有通信需求的时候,调用接口使得节点进入释放状态。

规范并没有规定,应用层何种情况下,需要调用接口进入被请求状态或被释放状态(只强制规定了,初始化上电的过程中,必须强制进入relaesed模式,其他状态下,由制造商自行编写程序判断是否需要进入某一种状态)

需要注意的是,即使节点当前处于释放状态,节点的通讯依然有可能是处于开启状态,因为网络上的其它节点有可能正在请求总线。所以这个状态代表的是节点应用层是否有通信需求,并不代表总线开启或关闭。有通讯需求的时候处于请求状态,无通讯需求的时候处于释放,但总线是否在通讯不仅仅取决于当前节点自己,而是取决于网络上的所有节点。

总结:

节点上电初始化后默认进入释放状态。

网络请求: 当ECU应用层需要总线通信时,它会调用CanNm_NetworkRequest请求网络;
网络释放: 当ECU应用层不需要总线通信时,它会调用CanNm_NetworkRelease释放网络。
触发这两个动作的条件由客户需求决定

当ECU已经处于released 时,但是还是在通讯时,说明总线上还有其他节点处于requested状态。

4:网络管理帧的结构:

只有Byte0和Byte1被使用

Byte0:代表的是,节点源地址(Source Node Identifier),是专门指,发送该NM帧的节点的源地址。

Byte1:包含的是一些控制信息和控制命令,具体命令如下:

Bit 0: Repeat Message Request
  • 0: Repeat Message State not requested
  • 1: Repeat Message State requested
    该位置1的时候表示当前节点请求所有节点进入报文重复阶段。(也就是接收这条网络唤醒报文的所有节点,都要进入报文重复阶段)
  • Bit 3: NM Coordinator Sleep Bit

        0: Start of synchronized shutdown is not requested by main coordinator
        1: Start of synchronized shutdown is requested by main coordinator
        该位置1时表示主协调节点(发送节点)请求(接收NM帧的节点)开始进入同步休眠。即这个位置1后,发送NM的节点自身也会开启一个计时器,并且同步要求接收节点也开启计时器。两个节点在计时器计时结束以后,同步进入睡眠状态。

  • Bit 4 Active Wakeup Bit(当节点被本地唤醒时,该bit=1)

        0: Node has not woken up the network (passive wakeup),即当前节点收到网络管理报文,被其它节点唤醒。(即网络唤醒)
        1: Node has woken up the network (active Wakeup),即当前节点主动唤醒网络(通过Request),亦称本地唤醒。

  • 本地唤醒:如KL15唤醒,或按键唤醒,或者是定时自动唤醒

  • Bit 6 Partial Network Information Bit (PNI)    Partial Network Information(PNI:子网网络管理信息位)

        0: NM PDU contains no Partial Network request information
        1: NM PDU contains Partial Network request information
        该位表示该条网络管理报文中是否包含部分网络激活信息。详细解释就是,被唤醒的节点,充当网关的作用,唤醒此网关时,需要同步唤醒网关下所处的另外一条CAN网络。又比如比如很多CAN总线上的节点,是充当了LIN网络主节点的作用。我们唤醒此节点时,也就是唤醒了LIN网络。这两个位是相关的请求位。

5:网络节点之间的相互转换

模式切换规律:

分别以3个Mode为例,来讲解。其中NM有拆分为3个子状态 

1:BSM模式下,可以直接跳转至NM下的RMS状态,(记住这是BSM唯一能够跳转到的一种状态),从外在看,就是存在本地唤醒,或远程报文唤醒。从应用层看,就是存在通讯的需求

注意:BSM不能直接跳转到,除RMS状态外的任何一种状态。如果能跳转说明存在BUG

2:RMS子状态下,

RMS->NOS,即在相关定时器,结束定时时和其他条件符合时(后面补充哪些计时器和条件)。自动进入NOS阶段。

3:RMS->RSS,即在相关定时器,结束定时时和其他条件符合时,节点会进入RSS状态,自身网管报文停止发送,能接收其他网管报文,正常发送APP报文。

6:网络管理的时间参数和配置参数

6.1 时间参数

T_STARIT_APPFrame,时间和初始化唤醒的时间之间的冲突,这里的初始化唤醒,是指报文中的信号发出有效值(比如,发出时刻下实际的发动机转速),故在实际完成初始化之前,报文中的信号可以发送初始默认值

2:表格里没有列举的一种时间,即在首诊NM报文发出后,必须在规定时间内,发出所有应用报文。

6.2 配置参数

7详细状态跳转状态图

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

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

相关文章

--- JAVA 多态 ---

多态,顾名思义就时有多种形态,那咋样才嫩共有多种形态呢,再java中就是用不同的对象去调用同一个方法,产生了不同的结果。 看这段代码,我调用的是同一个方法,且只是传入的对象的不同,但是产生了不…

Linux网络服务之SSH(远程访问及控制)

ssh远程管理: ssh是一种安全通道协议,用来实现字符界面的远程登录。远程复制,远程文本传输。 ssh对通信双方的数据进行了加密 用户名和密码登录 密钥对认证方式(可以实现免密登录) ssh 22 网络层 传输层 数据传输…

【成品设计】基于红外线的目标跟踪无线测温系统设计

《基于红外线的目标跟踪无线测温系统设计》 整体功能: A端:无线跟踪端 主控:采用STM32F103C8T6单片机作为核心控制。360度编码模块数字脉冲输出红外解码编码模块OLED屏幕。 B端:无线待测端 主控:采用STM32F103C8T…

C语言杂谈:函数栈帧,函数调用时到底发生了什么

我们都知道在调用函数时,要为函数在栈上开辟空间,函数后续内容都会在栈帧空间中保存,如非静态局部变量,返回值等。这段空间就叫栈帧。 当函数调用,就会开辟栈帧空间,函数返回时,栈帧空间就会被释…

SpringBoot——整合Servlet的三大组件:过滤器(Filter)

目录 过滤器 一、用过滤器检查用户是否登录 LoginFilter自定义过滤器 FilterConfig配置类 FilterController控制器 SpringbootFilterApplication启动类 二、用过滤器统计资源访问量 LoginFilter FilterController 在开发SpringBoot项目时,开发人员经常需…

数据动态变化时实现多选及回显

<template><el-dialog title"设置权限" :visible.sync"showDialog" :close-on-click-modal"false" :append-to-body"true" width"800px"><div v-loading"loading"><el-radio-group v-model&…

Servlet实现会话追踪登录功能(结合JDBC)

目录 1.技术要求 2.关于会话Session 生活例子 代码体现 1.存储到session 2.从session中拿出 3.完成登录功能 4.利用Session作追踪 关于jstl应用 关于EL表达式应用 注意 5.测试 1.技术要求 核心&#xff1a; &#xff08;1&#xff09;Servlet项目的搭建 &#x…

C++---模板进阶(非类型模板参数,模板的特化,模板分离编译)

我们都学习和使用过模板&#xff0c;而这篇文章我们来将一些更深入的知识。在此之前&#xff0c;我们在使用C编程时可以看到模板是随处可见的&#xff0c;它能支持泛型编程。模板包括函数模板和类模板&#xff0c;我们有的人可能会说是模板函数和模板类&#xff0c;但严格讲这样…

Ripple:使用Wavelet Approximations来加速FHE的Programmable Bootstraps

1. 引言 University of Delaware和Nillion团队的 Charles Gouert、Mehmet Ugurbil、Dimitris Mouris、Miguel de Vega 和 Nektarios G. Tsoutsos&#xff0c;2024年论文《Ripple: Accelerating Programmable Bootstraps for FHE with Wavelet Approximations》&#xff0c;开源…

关于一些优化的知识

1、凸优化&#xff1a;一定可找到全局最优解 非凸优化&#xff1a;一般是局部最优解 2、无约束优化问题求解方法&#xff1a;梯度下降、拟牛顿法、高斯牛顿法、LM算法 3、 解释&#xff0c;就是右边的式子对应于就是当前这个xk这个点基础上朝着pk取走步长为a得到了对应的值&…

vscode运行命令报错:标记“”不是此版本中的有效语句分隔符。

1. 报错问题 标记“&&”不是此版本中的有效语句分隔符。 2. 解决办法 将 terminal 中的 owershell 改成 cmd 就 ok

To C道路越走越夯实,1688彻底变身了?

在偌大的电商市场&#xff0c;消费者都是专业的“掘宝者”&#xff0c;热衷于发现各种新奇商品和采购新通路。 拼多多、1688等平台也正是在这种情况下&#xff0c;成为消费市场的“宠儿”。其中&#xff0c;1688的发展路径较为独特&#xff0c;据天眼查&#xff0c;其为源头厂…

《python-配置》在ubuntu系统上安装pycham并破解

阿丹&#xff1a; 因为ai开发要使用ubuntu系统&#xff0c;整理和总结一下如何在这里安装pycham 官网下载&#xff1a;pycham下载地址 PyCharm: the Python IDE for data science and web development 官网操作流程&#xff1a; 1&#xff0c;点击下载 2、下载其他版本 3、…

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第9章——可积性

第2 部分&#xff1a;数学分析中的基本概念 (Concepts in Analysis) 9. 可积性(Integrability) 本章讨论了可积性(integrability)的概念(它不同于积分过程)。研究了反导数(antiderivative&#xff0c;或称原函数)和函数图像下面积之间的关系&#xff0c;然后通过对面积的近似…

应用解析 | 面向智能网联汽车的产教融合解决方案

背景介绍 随着科技的飞速发展&#xff0c;智能网联汽车已成为汽车产业的新宠&#xff0c;引领着未来出行的潮流。然而&#xff0c;行业的高速发展也带来了对高素质技术技能人才的迫切需求。为满足这一需求&#xff0c;推动教育链、人才链与产业链、创新链的深度融合&#xff0…

文件加密软件排行榜前五名|好用的五款文件加密软件分享

你的公司是否存在这些问题&#xff1a; 数据泄露事件常有发生&#xff0c;数据安全的重要性日益凸显&#xff0c;而文件加密软件则是保护数据安全的重要工具。 市场上存在众多文件加密软件&#xff0c;每款都有其独特的特点和优势。 本文将为您分享五款好用的文件加密软件&…

针对多智能体协作框架的元编程——METAGPT

M ETA GPT: M ETA P ROGRAMMING FOR M ULTI -A GENT COLLABORATIVE F RAMEWORK 1.概述 现有的多智能体系统主要面临以下问题&#xff1a; 复杂性处理不足&#xff1a;传统的多智能体系统主要关注简单任务&#xff0c;对于复杂任务的处理能力有限&#xff0c;缺乏深入探索和…

C++中的priority_queue和deque以及适配器

C中的priority_queue和deque 一丶 priority_queue1.1 priority_queue的介绍1.2 priority_queue的使用1.3 priority_queue的模拟实现 二丶 deque2.1 deque的简单介绍2.2 deque的缺陷2.3 为什么要选择deque作为stack和queue的迭代器 三丶 容器适配器3.1 什么是适配器3.2 STL标准库…

GlaDS缘起

题目:Modeling channelized and distributed subglacial drainage in two dimensions 近年来,冰盖表面融化与冰盖动态之间的联系及其对海平面上升的影响引起了广泛关注。特别是格陵兰冰盖的研究显示,表面融水显著影响冰川移动速度,而冰下排水系统对冰川动力学及冰川水文学…

【WP】猿人学_13_入门级cookie

https://match.yuanrenxue.cn/match/13 抓包分析 抓包分析发现加密参数是cookie中有一个yuanrenxue_cookie 当cookie过期的时候&#xff0c;就会重新给match/13发包&#xff0c;这个包返回一段js代码&#xff0c;应该是生成cookie的 <script>document.cookie(y)(u)(a…