在上篇中我们分别在状态机和报文格式方面对OSEK和AUTOSAR网络管理进行了简单介绍,感兴趣的小伙伴请移步至文章《科普系列:AUTOSAR与OSEK网络管理比较(上)》。

三、OSEK与AUTOSAR网络管理特点对比

本篇就是本文的重点了,接下来对比下这两种网络管理之间的共同点以及差别。

共同点

1、都是基于状态机的网络管理。
2、都是协调网络中的节点同时进入休眠以及唤醒。
3、都分配了特定的网络管理报文在网络中进行网络管理,属于直接网络管理。
4、通常情况每个节点都有独有的节点ID(如0x1),与基础ID(如0x400)共同构成网络管理报文的ID(0x401)。
5、网络唤醒方式都相同,每个节点都可以由于自己需要通信而主动唤醒网络,也可以被网络中其它的节点唤醒。

图十 通常情况网络管理报文ID组成

不同点

1、唤醒行为不一样:

OSEK网络管理唤醒后会发出一帧特殊网络管理报文,用来进行建环,建环完成后才根据逻辑环发送网络管理报文;以三个节点建立逻辑环简单举个例子:

1):通信启动

网络中所有节点发出Alive报文

图十一 OSEK网络管理建环示意图(1)

2):确认逻辑后继节点

所有节点根据总线上出现的Alive报文判断自身节点的逻辑后继节点

图十二 OSEK网络管理建环示意图(2)

3):发出Ring报文

某个节点发出Ring报文尝试建环

图十三 OSEK网络管理建环示意图(3)

4):令牌传递

节点收到指向自身的网络管理报文也就是收到令牌后,将数据更新后再次发出

图十四 OSEK网络管理建环示意图(4)

下一个节点收到指向自身的网络管理报文,也是将数据更新后再次发出

图十五 OSEK网络管理建环示意图(5)

5):建环完成

令牌再次传递到第一个发送Ring报文的节点,且令牌传递期间没有节点发出Alive报文

图十六 OSEK网络管理建环示意图(6)

而AUTOSAR网络管理唤醒后直接周期性发出自身的网络管理报文即可,无需发出特殊的网络管理报文。

2、休眠行为不一样:

OSEK网络管理在总线睡眠之前,所有节点正常发送网络管理报文,待所有节点都准备好休眠并发送SleepInd后,最后一个节点发送SleepACK,网络中各节点再同时休眠,同样以三个节点简单举个例子:

A/B/C三个节点处于正常通信,节点B/C维持网络处于通信状态,A被维持通信。

1):节点B就绪休眠

就绪睡眠的节点在收到指向自身的网络管理报文时,将数据更新为携带睡眠指示信息的网络管理报文再次发出,此时仅C请求网络通信,A/B被维持通信

图十七 OSEK网络管理控制同时休眠示意图(1)

2):仅节点C主动维持网络通信

Node B准备休眠发出携带睡眠指示的网络管理报文,被节点C维持通信
Node C依然需要请求网络,发出未携带睡眠指示的网络管理报文,维持节点A/B处于通信状态
Node A准备休眠发出携带睡眠指示的网络管理报文,被节点C维持通信

图十八 OSEK网络管理控制同时休眠示意图(2)

3):节点C也准备休眠

Node B准备休眠发出携带睡眠指示的网络管理报文
Node C准备休眠发出携带睡眠指示的网络管理报文
Node A检测到所有节点都准备休眠,发出后继节点指向自身且携带睡眠应答信息的网络管理报文

图十九 OSEK网络管理控制同时休眠示意图(3)

此后所有节点停止网络管理报文的发送,并同时进入休眠。

而AUTOSAR网络管理在整个网络休眠之前,只要某个节点准备休眠,那么这个节点就不再发送网络管理报文,直到总线上不再发送网络管理报文,那么所有节点则自行判断已经可以休眠,无需确认休眠信息,如下以三个节点协调睡眠举例:

1):A/B/C三个节点都处于请求网络状态
所有节点都周期发送自身网络管理报文

图二十 AUTOSAR网络管理控制同时休眠示意图(1)

2):节点A准备休眠,节点B/C依然维持通信
节点A停发自身网络管理报文,但被节点B/C维持通信

图二十一 AUTOSAR网络管理控制同时休眠示意图(2)

3):所有节点准备好睡眠
所有节点停发网络管理报文,等待NM-Timeout timer 超时并启动Wait Bus-Sleep Timer。

图二十二 AUTOSAR网络管理控制同时休眠示意图(3)

每个节点Wait Bus-Sleep Timer超时后就各自进入睡眠模式,总线上不再有通信。

3、网络管理逻辑不同:

1)OSEK网络管理需要建环,网络管理报文的发送必须按照逻辑环进行,只有得到“令牌”才能发送网络管理报文,因此需要一个稳定的逻辑环,网络管理才能正常进行,对网络的稳定性要求比较高。

2)AUTOSAR网络管理则不会受到其他节点状态的影响,节点状态的跳转只与自身需求和总线的状态有关,只需要监视总线状态即可,网络管理报文的发送是周期性的。

4、网络管理报文格式不一样:

1)OSEK网络管理由于逻辑环的存在报文包含节点自身的ID和下一个发出网络管理报文的节点的ID,包含用于指示报文类型以及节点状态的数据,即操作码以及用户数据。

操作码(Opcode):OSEK网络管理PDU中的byte1,置位这个字节中不同位置的位就表现为不同的报文类型,分别为Alive报文,Ring报文,LimpHome报文,但同一时刻只能发送一种类型;这个字节中还包含节点的状态信息,也就是节点是否准备好睡眠以及是否确认睡眠,各占一个位。这个字节中的其它位则是预留的。

图二十三 OSEK网络管理操作码示例

2)AUTOSAR网络管理报文则由于是广播发送的且不需要指定任何节点,所以报文只包含自身的ID,和少量的控制信息,即控制位向量,以及用户数据。

控制位向量(CBV):AUTOSAR网络管理PDU中的byte1,这个字节中包含重复消息请求信息,主动唤醒信息以及PN相关等表明节点进行网络管理的控制信息。

图二十四 AUTOSAR网络管理控制位向量

5、对于节点掉线或者加入的处理不一样:

1)在正常通信OSEK网络管理网络中不论是加入某个新节点还是掉线某个节点,都会影响网络管理的状态,需要重新建环才能维持正常的网络管理。

2)而AUTOSAR网络管理不论是加入新节点还是已有的节点掉线都不会影响原有节点的网络管理状态。

四、总结

AUTOSAR网络管理和OSEK网络管理是汽车电子网络管理中的两个常见协议,本文就状态机、报文格式等方面对二者进行了相应的科普和比较。仅以此投石问路,北汇信息后续会发布更多的科普系列文章,为大家扩展更多的汽车电子方面的知识。

北汇信息专注于汽车电子测试,与国内外众多OEM和Tier1合作,在车载通信、诊断刷写、OTA、车内网络安全、域控制器功能测试等领域积累了丰富的实践经验,欢迎大家交流、探讨。

注:文中部分图片来源于AUTOSAR_SWS_CANNetworkManagement和OSEK/VDX Network Management

喜欢本篇文章的话记得

科普系列:AUTOSAR与OSEK网络管理比较(下)相关推荐

  1. 科普系列:AUTOSAR与OSEK网络管理比较(上)

    一.前言 汽车网络管理从根本上来说是为了省电的,基本的实现方式就是汽车在没有使用的情况下一些ECU会通过网络管理协调进入低功耗模式或者睡眠模式,从而达到省电的目的.目前主流的网络管理标准有两个,一个是 ...

  2. 汽车行业中的AUTOSAR与OSEK到底是什么,有什么区别

    最近开始接触汽车电子及汽车行业,对其中两个概念有点混淆,特此拿来对比一下. 一.AUTOSAR 现在的汽车正向着更高的安全性.经济环保性.舒适性.便捷性发展,从而为汽车电子系统带来了前所未有的复杂性, ...

  3. tms570 can 接收大量数据_CAN通讯系列--AUTOSAR架构的CAN Interface7

    上篇文章简介了AUTOSAR架构的CAN Driver模块,本文将更进一步,来了解CAN Driver模块对接的唯一上层模块--CAN Interface. 9 CAN interface CAN I ...

  4. Kafka科普系列 | 原来Kafka中的选举有这么多?

    欢迎跳转到本文的原文链接:https://honeypps.com/mq/kafka-basic-knowledge-of-selection/ 面试官在考查你Kafka知识的时候很可能会故弄玄虚的问 ...

  5. Kafka科普系列 | 什么是LSO?

    欢迎跳转到本文的原文链接:https://honeypps.com/mq/kafka-basic-knowledge-of-lso/ 很多同学对于Kafka的认知仅限于在LEO和HW之间,有可能认知还 ...

  6. Kafka科普系列 | 什么是LW和logStartOffset?

    欢迎跳转到本文的原文链接:https://honeypps.com/mq/kafka-basic-knowledge-of-lw-and-logstartoffset/ 很多读者对 Kafka 中的 ...

  7. 前端科普系列(2):Node.js 换个角度看世界,

    [前端科普系列]往期精彩内容: 前端科普系列(1):很有趣的一篇前端简史,作者有心了~主要介绍 web 前端发展的历史.大事件. 本文为系列文章(2),主要介绍 Node.js 的前世今生.核心科技以 ...

  8. 小甲鱼 OllyDbg 教程系列 (一) :二进制破解科普系列之 ReverseMe

    小甲鱼 视频教程( 4.5 集 ):https://www.bilibili.com/video/av6889190?p=4 实验程序 reverseME.exe 下载地址:https://pan.b ...

  9. GIT科普系列5:index in git

    背景: git的使用其实没有想象中的那么复杂,平日里真正使用的指令都是极少数.最简单格式的.之所以使用过程中感觉操作复杂.冲突不断,究其根源是对git的设计理念缺乏了解,没有搞清楚git实现版本控制的 ...

最新文章

  1. Spring+SpringMVC+Mybatis整合
  2. 安装 | MatlabR2021b链接及Matlabx运行图基本运行代码与图像
  3. python xlrd使用_python使用xlrd 操作Excel读写
  4. java readline最后一行_java – 如何在reader.readLine()中检测第一行和最后一行?
  5. 关于 SET QUOTED_IDENTIFIER ON 和 SET ANSI_NULLS ON
  6. Linux:rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2
  7. 天干物燥,给你写BUG的心来点甘露
  8. 剑指offer面试题[11]-数值的正整数次方
  9. 问题六十九:阴影(Shadow)——原理和C++实现
  10. Mac如何彻底卸载Mysql
  11. “21 天好习惯”第一期-2 2021牛客暑期多校训练营10 F、Train Wreck
  12. Latex:大于等于号和小于等于号
  13. 游戏CG音效制作技巧
  14. ucdavis计算机科学专业,加州大学戴维斯分校有哪些专业处于世界顶尖水平?
  15. BZOJ[1984]月下“毛景树” 树链剖分+线段树
  16. pytest常用参数
  17. 图象关于y轴对称是什么意思_关于x轴对称-图象关于y轴对称是什么函数
  18. 大爽pygame入门教程 第一节 基础知识
  19. KVM虚拟化使用详解--技术流ken
  20. linux服务器强行删除隐藏文件

热门文章

  1. java单元测试如何全覆盖_java-覆盖测试
  2. 域控制器丢失NETLOGON目录的解决办法
  3. CVE-2020-1472: NetLogon特权提升漏洞通告
  4. fatal: Couldn't find remote ref refs/heads/cm-13.0
  5. Clickhouse 踩坑之旅 ---- MergeTree不合并分区的问题
  6. 解释器模式计算机Demo
  7. 教父母使用手机的功能提纲
  8. 2020-11-23
  9. 世上本没有对错,看问题的角度不同,答案不同而已,我们应该学会常常用别人的角度看世界,多一分宽容,多一分理解,多一分求同存异。
  10. 全球与中国终末期肾病(ESRD)设备市场现状及未来发展趋势(2022)