AUTOSAR网络管理

news2024/11/9 4:47:33
  1. 功能说明

目前车辆上ECU的数目越来越多,不同功能的ECU对电源有不同的要求,在点火钥匙打到OFF档(KL15停止供电)之后,有的ECU(如座椅模块)允许直接断电,有的ECU(如空调模块)需要延时断电,有的ECU(如防盗模块)需要一直带电。

需要延时断电或一直断电的节点为KL30供电的节点。KL30供电的节点在OFF档之后能进入低功耗状态,关闭大部分不需要的功能(如禁止CAN通信功能),尽可能减少电量消耗, 避免蓄电池电量消耗过多导致汽车无法启动。同时这些节点在低功耗状态下需要监控唤醒条件,如KL15信号,或CAN总线的状态等。一旦KL15开始供电,或总线上有报文(或者需要的报文,需要使用特殊的带滤波功能的收发器)等,节点应能被唤醒,进入正常工作模式。

由此可见,要实现车辆中各ECU的低功耗管理,需要实现ECU上各CAN 网络的网络管理,即对于某个CAN网络,连接到该总线上的各节点需要协同工作,遵循同样的协议以实现同步睡眠(否则进入睡眠模式的节点会被暂未睡眠节点发出的报文唤醒)。

AUTOSAR CAN Network Management(以下简称AUTOSAR CAN NM)是目前被广泛使用的一种基于协同睡眠的网络管理协议。其主要功能点如下:

  1. CAN NM报文的发送(包括发送请求的方式,发送确认和发送错误处理)及接收。
  2. 协同睡眠。各节点自身均满足休眠条件(Network Released),且总线上无任何网络管理报文,在等待一定时间后,所有节点协同进入睡眠状态。
  3. Bus Load Reduction Mechanism。采用普通的NM报文发送方式,总线上的负载会随着网络上节点总数的增加而增加。为了降低总线上的负载,设计了一套Bus Load Reduction Mechanism。

  1. 策略方案详细介绍

本方案基于AUTOSAR Specification of CAN Network Management(V3.3.0, R4.0 Rev 3)。更多细节及参数说明请参考上述文档。

    1. 状态简介及状态转换说明

AUTOSAR CanNM包含3个operational mode:

  1. Network Mode

其中Network Mode中包含3个子状态,如下:

  1. Repeat Message State
  2. Normal Operation State
  3. Ready Sleep State
  1. Prepare Bus-Sleep Mode
  2. Bus-Sleep Mode
      1. 相关(子)状态的目的如下:

(子)状态

主要目的

Repeat Message State

节点上线监测。

Normal Operation State

保证只要任何节点对网络有需求(network is requested),就可以保持整个网络处于awake状态。

Ready Sleep State

当某个节点X想要转化到Prepare Bus-Sleep Mode时,只要网络中的任一其他节点想要保持网络awake, 节点X只能继续在Ready Sleep State下等待。也就是说,只有网络中的所有节点对网络都没有需求时,节点X才可以从Ready Sleep State转化到Prepare Bus-Sleep Mode。

Prepare Bus-Sleep Mode

保障网络上的所有节点有足够的时间停止网络的活性,在Prepare Bus-Sleep Mode下,网络的活性在逐步下降(例如存在队列发送的情况下逐步清空所有的Tx-buffer),最终完全停止网络活性。

Bus-Sleep Mode

当某个节点没有消息需要交互时,进入Bus-Sleep Mode,以减少电源消耗,通信控制器转换到sleep模式,相应的wakeup机制被激活,最终电源消耗会减少到一个适当的水平。

      1. 状态转换的说明如下:

上图中,状态改变相关的转化用绿色标注,错误处理相关的转化用红色标注,节点监测(可选功能)相关的转化用蓝色标注,在此状态转换图中,假设已使能bus load reduction 功能。

下图是一个拥有3个节点的网络中,各节点从power-on 到bus sleep 的示例说明。

正在上传…重新上传取消

其中TRMT代表配置参数CanNmRepeatMessageTime {CANNM_REPEAT_MESSAGE_TIME}

TTO代表配置参数CanNmTimeoutTime {CANNM_TIMEOUT_TIME}

TWBS代表配置参数CanNmWaitBusSleepTime {CANNM_WAIT_BUS_SLEEP_TIME}

    1. 通信机制
      1. 发送机制
        1. 发送请求的方式

各种配置和状态下发送请求方式的说明如下:

正在上传…重新上传取消

        1. 发送确认

正在上传…重新上传取消

        1. 发送错误处理

CANNM_PASSIVE_MODE_ENABLED=TRUE或CANNM_IMMEDIATE_TXCONF_ENABLED= TRUE时CanNm 模块不使能发送错误处理。

当请求发送一个NM 报文时,NM Message Tx Timeout Timer会开始计时,超时值设置为CANNM_MSG_TIMEOUT_TIME。

当CanNm_TxConfirmation被CanIf调用时,NM Message Tx Timeout Timer会被停止清零。

当NM Message Tx Timeout Timer发生超时时,CanNm可以调用Nm_TxTimeoutException函数(可选)。

      1. 接收机制

当一个NM报文被成功接收,CanIf模块会调用回调函数CanNm_RxIndication。在该回调函数中,CAN NM会拷贝CanNm PDU相关的数据到内部buffer。

    1. Bus Load Reduction Mechanism

NM PDU的发送周期通常由时间参数CANNM_MSG_CYCLE_TIME来决定。对于属于一个网络的所有节点,该参数均相等。这样会导致总线上的负载会随着网络上节点总数的增加而增加。为了降低总线上的负载,可以采用Bus Load Reduction Mechanism。该机制如下:

如果成功发送NM PDU,发送周期定时器重新设置为CANNM_MSG_CYCLE_TIME。

如果成功接收NM PDU,发送周期定时器重新设置为节点特定的参数CANNM_MSG_REDUCED_TIME,此参数须在CANNM_MSG_CYCLE_TIME的0.5至1倍之间。

这会导致如下的结果:

整个网络上只有时间参数CANNM_MSG_REDUCED_TIME值最小的两个节点在轮流发送NM PDU,如果这两个节点A,B中有一个节点停止发送,则其余(且请求网络的)节点中CANNM_MSG_REDUCED_TIME值最小的那个节点C开始发送NM PDU,如果网络上只剩一个节点请求网络,则其NM PDU的发送周期为CANNM_MSG_CYCLE_TIME。

此机制保证了总线负载限制在每CANNM_MSG_CYCLE_TIME里最多两个NM报文。

正在上传…重新上传取消

    1. Network Management PDU 结构

正在上传…重新上传取消

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

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

相关文章

浅谈操作系统OS与计算机软硬件体系结构,自顶贯穿性与行为回归硬件性

操作系统OS与计算机软硬件体系结构 使计算机更好用! 这是操作系统的根本要义!! 操作系统这个概念基本上以后会讲一路的,今天的话就基本上讲一下轻量化的概念。所以操作系统到底是什么?操作系统首先是软件,那它是一款什么软件呢&#xff1f…

Java读取文件方式

IO流读取 文本内容 按行读取文件内容 指定编码格式(推荐) public static void main(String[] args) throws UnsupportedEncodingException {read("D:\\test.txt");}public static void read(String path) {BufferedReader reader null;try …

Spring Security 01 整体架构

目录 认证 AuthenticationManager ProviderManager AuthenticationProvider Authentication SecurityContextHolder 授权 AccessDecisionManager AccessDecisionVoter RoleVoter AuthenticatedVoter Custom Voters ConfigAttribute 在SpringSecurity的架构中&…

Linux如何使用宝塔面板搭建网站和内网穿透实现公网访问

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 转载自远程内网穿透的文章:Linux使用宝塔面板搭建网站,并内网穿透实现公网访问 前言 宝塔面板作为简单好用的服务器运维管理面板&#…

Flink从入门到精通之-06Flink 中的时间和窗口

Flink从入门到精通之-06Flink 中的时间和窗口 我们已经了解了基本 API 的用法,熟悉了 DataStream 进行简单转换、聚合的一些操作。除此之外,Flink 还提供了丰富的转换算子,可以用于更加复杂的处理场景。 在流数据处理应用中,一个…

NM储存卡数据丢失怎么办?四招数据恢复宝典

NM卡像其他类型的存储设备一样,也有可能因为各种原因导致数据丢失,比如误删除、格式化、病毒感染等。因此,在使用NM卡时,仍需注意数据备份和安全性,以避免面临重要数据丢失风险。如果不幸发生了数据丢失,应…

python中unexpected indent报错的解决办法

python中unexpected indent报错的解决办法 在我们初步学习pyton的时候,由于对python语言的学习掌握不充分,则会导致所编写的代码,运行时候报错。比如,容易报错的unexpected indent问题,下面举例说明问题。 1.举例&am…

Linux虚拟机中安装jdk的两种方法:

方法一:手动安装 1. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux 上传位置如图(底栏可以在图中的向下箭头位置自行打开与关闭): 注:默认上传地址为图片左侧的工作地址 2. 解压安装包,…

在vue2中用vue-echarts和v-charts绘制百度地图定制散点图

一、在vue-echarts中定制百度地图 效果 准备 安装依赖 echarts vue-echarts npm i echarts vue-echarts 在main.js中引入 import ECharts from “echarts” import VueECharts from “vue-echarts” Vue.prototype.$echarts ECharts Vue.component(“v-chart”, VueECharts…

SAS学习第4章:t检验

前话:分析试验数据的差异,一般都会假设样本值之间或者样本与标准值之间无差异,根据不同方法计算得出的t值、q值、F值等等,均表示两者之间的差异程度,值越大,两者差异越大,该假设越不成立&#x…

全网最全的AI绘画提示词网站,看这一篇就够了!

要说2023年什么最火,绝对是以ChatGPT为代表的AI工具了,特别是AI绘画,而用好AI的关键,就是要学会使用关键词,也叫提示词,提示词是AI绘画的核心,本次就给大家分享几个AI绘画关键词网站&#xff0c…

大型Android项目架构:基于组件化+模块化+Kotlin+协程+Flow+Retrofit+Jetpack+MVVM架构实现WanAndroid客户端

前言:苟有恒,何必三更眠五更起;最无益,莫过一日曝十日寒。 前言 之前一直想写个 WanAndroid 项目来巩固自己对 KotlinJetpack协程 等知识的学习,但是一直没有时间。这里重新行动起来,从项目搭建到完成前前…

奇异值分解SVD

概念 奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分解。奇异值分解在某些方面与对称矩阵或厄密矩阵基于特征向量的对角化类似。然而这两种矩阵分解尽管有其相关性,但还是有明显的不同。对称矩阵特征向量分解的基础…

数据分析师 ---- SQL强化(1)

文章目录 数据分析师 ---- SQL强化(1)写在前面题目第一步:表连接以及表拼接第二步:新建列以及填充值总结 数据分析师 ---- SQL强化(1) 写在前面 最近在找工作中发现,数据分析师的笔试多数会涉及SQL,但是笔试中SQL的难度和我们在学…

车载软件架构——闲聊几句AUTOSAR BSW(一)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人生是用来体验的,不是用来演绎完美的。我慢慢能接受自己身上那些灰暗的部分,原谅自己的迟钝和平庸,允许自己出错,允许自己偶尔断电,带着缺憾拼命绽放,…

Node【初识Node】

文章目录 🌟前言🌟Node.js🌟特性:🌟1. 单线程🌟2.异步IO🌟前端中的异步🌟Node中的异步 🌟3.跨平台🌟4.运行速度快 🌟 劣势:&#x1f3…

4/20~4/21两日总结

网络编程 socket通信 socket被翻译为套接字,通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据 如何实现呢 ServerSocket类能创建Socket的服务端,Socket能创建Socket的客户端 ServerSocket中…

如何运用数字孪生可视化技术实现三维可视化智慧园区

随着城市化的进程和信息化的发展,越来越多的城市拥有了智慧园区这一新的城市形态,通过“互联网”和物联网技术,实现了各种功能部门之间的信息共享与协同,提高了园区服务的质量和效率。然而,如何更好地实现园区管理和运…

LeetCode - 168. Excel表列名称

168. Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 二进制与十进制之间的转换 在做这题之前,先复习一下二进制与十进…

JUC并发编程之读写锁原理

1.图解流程 读写锁用的是同一个 Sycn 同步器,因此等待队列、state等也是同一个 t1 w.lock , t2 r.lock t1 成功上锁,流程与 ReentrantLock 加锁相比没有特殊之处,不同的是写锁状态占了 state 的低 16 位,而读锁使用…