中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 705查看
  • 0回复

[模块网络] CAN通讯系列补充篇- 为什么要网管报文7

[复制链接]


该用户从未签到

发表于 3-12-2023 07:29:20 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文经CSDN博主- 嵌软小白呗允许转发,感谢支持!作者对主动唤醒和被动唤醒做了生动形象的介绍,非常有助于大家更深入了解CAN网络休眠唤醒功能。本文将在原文基础上稍作修改,也欢迎关注作者其他文章。原文链接:Autosar CAN开发05(Autosar的CanNM--网管报文在汽车上的作用、“同起同睡”)为了更好地了解CAN网络管理,要先理解网管报文的作用,下面就顺着我的思路来捋一捋:

1 什么是节点

首先要明白车上的节点(Node)的概念。所谓节点,就是指车上的控制器。对新能源车来说,有着几十个节点,比如OBC、VCU和BMS等,这些控制器分贝负责车上的一部分功能,比如BMS就是负责车上的电池管理功能,OBC负责车上交流充放电功能,简单示意就如下图:

CAN通讯系列补充篇- 为什么要网管报文7w1.jpg

2 为什么节点间要通讯

接下来要知道的是:车上有这么多节点,当车要正常工作,不可能每个节点都自己玩单机游戏吧。比如BMS不管车上其它用电设备,想放电就放,不想放电就不放;尾门控制器不管汽车的运行状态,想开尾门就开。开玩笑呢,所以车上的这些节点之间要相互通讯,以使得各个节点获取自己需要的信息,再考虑要不要进行动作(通讯方式包括CAN通讯、LIN通讯、以太网等,本篇是讲CAN通讯,下面本文所有的节点都默认为CAN通讯)。

3 为什么需要休眠唤醒

除了节点间要相互通讯,还需要知道各个节点都有休眠机制,简而言之,就是节点没有工作需求的时候要休眠,以减少功耗。

接下来你想一下,当车上所有节点都处于休眠状态,这时节点A被触发了唤醒机制,比如车子被车主踩下制动踏板。那现在情况是:节点A主动唤醒了,但车子正常工作不能就一个节点A醒来干活啊,其它几十个节点还全部休眠,这可咋整?

4 如何唤醒节点

其实很简单,节点A向外喊一声就行。就像大学宿舍那样,大家要么在睡觉,要么出去玩,而且格外团结,每次有人出去玩都会叫其他人一起。

假如现在你想出去玩了,你要怎么让在睡觉的室友跟你一起出去?很简单,你只需要大声吼一句:“兄弟们,走了,出去耍”,然后宿舍所有人听到了就起床一起出去玩了。

汽车也是这样,节点A要叫醒其它节点,只需要节点A向整车网络广播网管报文就可以了。这个作用就类似于那句“兄弟们,走了,出去耍!”。

CAN通讯系列补充篇- 为什么要网管报文7w2.jpg

但是注意,节点A要是向外广播的不是网管报文而是别的报文呢?用上面那个例子,就会是这样:你叫大家去玩,但是,你不是吼要出去玩,而是吼一句:“兄弟们!看我看我!我是个帅比!”。那么效果就是舍友已迅雷不及掩耳之势把你丢出去,然后马上回去继续睡大觉。所以,要是节点A广播应用报文出去,那么其它节点就会上一下子电,然后跑到检测唤醒源代码,检测到不是有效唤醒,就马上又休眠了。

5 主动唤醒与被动唤醒

好了,现在所有节点都起来了。但是注意,节点A是主动唤醒,因为节点A有主动工作需求,其它节点是被迫叫起来的,其它节点本身是没有自己主动工作需求的,他们起来只是因为节点A可能需要这些节点的某些数据。所以,其它节点是被动唤醒。

换句话说,当节点A主动工作完成后,其它节点的任务也就完成了。所以,在节点A有主动工作需求的整个过程中,节点A会一直向外发出NM报文,以使得其它节点一直处于唤醒状态,其它节点是不会发出网管报文的(被网管唤醒的节点在被唤醒的开始几秒会发几帧NM报文,然后就停发了)。当节点A主动工作需求结束后,它就停发网管了,此时若车上其它节点也没有主动工作需求,那么车上就没有节点向外发网管报文了,当车上的节点没有接收到网管报文一段时间后,就会进入休眠状态。

CAN通讯系列补充篇- 为什么要网管报文7w3.jpg

6 小结

上面说了那么多,各个节点从休眠状态到唤醒状态再回到休眠状态,人家专业人士概况起来其实就四个字:“同起同睡”。讲到这里,你应该明白CAN NM报文到底是干啥用的了,提前贴下AutoSAR官方文档的CAN NM报文状态机:

CAN通讯系列补充篇- 为什么要网管报文7w4.jpg

看着老复杂了,它把代码的函数怎么调用,什么时候调用都写进入了,初学者看得很难受的,下篇文章我将画些简单易懂的图来解释。


该用户从未签到

发表于 17-3-2025 17:43:00 | 显示全部楼层
尊敬的CSDN博主嵌软小白呗,关于您所提到的CAN通讯系列补充篇中关于网管报文7的重要性,我作为汽车工程师深表赞同。对于车辆中的CAN网络而言,网管报文起到关键作用。这些报文能够管理和协调各个节点(即车辆控制器)的行为,确保它们之间的通信流畅、准确。在主动唤醒和被动唤醒机制中,网管报文扮演着重要角色,它能让车辆在休眠状态时被唤醒以进行必要的通信和计算任务。这不仅关乎车辆的安全性和性能表现,还能在一定程度上影响燃油效率和车辆寿命。为了更好地理解CAN网络管理,确实需要先理解网管报文的作用。感谢您的分享,期待您后续更多精彩文章。原文链接提到的Autosar CAN开发中关于网管报文的内容非常关键,值得我们深入学习。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 23-8-2025 13:48 , Processed in 0.403493 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.