热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

OSEK和Autosar网络管理的区别和共同点

共同点:都属于直接网络管理(以下都是以直接网络管理为例,Autosar可以不是直接网络管理)。网络管理的目的都是协调各节点同步进入休眠及唤

共同点:


  1. 都属于直接网络管理(以下都是以直接网络管理为例,Autosar可以不是直接网络管理)。

  2. 网络管理的目的都是协调各节点同步进入休眠及唤醒(主要是休眠)。

  3. 都依靠特定的网络管理CAN报文,每个节点的网络管理ID都不一样。

  4. 唤醒方法相同,第一个唤醒的节点发送网络管理帧即同时唤醒其它节点。

不同点:


  1. 唤醒帧类型不一样:

网络唤醒后,OSEK要求节点发出的第一帧必须是Alive类型,不能是Ring, Limphome等。

AutoSar只要求是网络管理帧就行,条件宽松。


  1. 休眠的同步算法不一样:

    OSEK网络管理使用令牌环机制,令牌从网络地址低的节点传到网络地址高的节点,如果没有更高的节点,就传给最低地址节点。令牌环根据ECU的网络地址建立。每个ECU都会接受网络管理消息,只有和目的地址相同的一个节点才会得到令牌。

唤醒后建立逻辑环过程:


  1. 控制器唤醒后想参与网络的节点会先发Alive报文申请加入逻辑环。

2)逻辑环建成后,各节点按顺序发Ring报文向后续节点传递“令牌”。
在这里插入图片描述

同步休眠过程:

1)如果逻辑环中有节点想休眠,就设置Ring报文中的Sleep.Ind指示位。

2)当逻辑环中所有的节点都设置了Sleep.Ind指示位,也意味着任何节点接收到所有其它节点的Sleep.Ind指示位。

3)逻辑环中所有的节点设置Sleep.Ack指示位

4)任何节点接收到所有其它的节点的Sleep.Ack指示位

5)所有节点同步进入等待睡眠状态

6)TWaitBusSleep时间内没有收到唤醒时间,所有节点同步进入睡眠状态。

在这里插入图片描述

AutoSar基于分布式策略,每个节点根据通信系统中发送或者接收到的NM消息来执行自给自足的网络活动。NM消息通过广播发送,所有网络中的所有节点都可以接收到。接收到NM消息表示发送这个NM消息的节点倾向保持网络工作模式(NETWORK MODE)。如果有节点准备好进入总线睡眠模式 (BUS SLEEP MODE),它就停止发送NM消息,但是只要它还能够接收到从其他节点发来的NM消息,它就延迟到总线睡眠模式的变迁。最终,在一定的时限内,由于不再接收到NM消息,每个节点都启动到总线睡眠模式的变迁。如果网络中的任何节点需要总线通信,它可以通过发送NM消息使网络从来总线睡眠模式中唤醒。概括如下:

  1. 每个网络节点如果想保持总线通信,就会一直发送周期性的NM消息;如果它不再需要保持总线通信,它就不再发送NM消息。2) 如果总线通信已经被释放,并且在配置的一段时间内没有发送或者接收到NM消息,则执行到Bus-Sleep模式的转移。

  1. PDU结构不一样

OSEK网络帧PDU包括自己地址,目标地址(下一个令牌环目标),命令状态,用户选择数据。而AutoSar网络帧PDU只包括自己地址,少量控制信息,用户选择数据。内容简单的多。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结:


  1. OSEK同步休眠时刻是所有节点都发送Ring请求休眠帧,且收到其它节点的Ring确认休眠帧。而AutoSar的同步休眠时刻是所有节点都停发NM帧,且不能收到其它节点的NM帧。比较而言,AutoSar要简单一些。

  2. OSEK令牌环中有一个节点异常,其它节点就要重新建立环才能维持正常网络状态,策略比较复杂。而AutoSar网络管理中,一个节点异常时不影响其它节点的网络状态。比较而言,AutoSar要简单一些。


推荐阅读
author-avatar
蕊蕊宝宝妈妈_534
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有