zoukankan      html  css  js  c++  java
  • osek和autosar网络管理的区别和共同点

    共同点:
    1. 都属于直接网络管理(以下都是以直接网络管理为例,autosar可以不是直接网络管理)。

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

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

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

    不同点:
    1. 唤醒帧类型不一样:

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

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

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

        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模式的转移。

    2. PDU结构不一样

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

     

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

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

  • 相关阅读:
    java表格的使用 单元格绘制二
    Java表格的简单使用一
    Servlet接口五种方法介绍
    C# 图片识别
    asp.net 使用rabbitmq事例
    Windows下安装使用python的Flask框架
    python中闭包的理解
    sql中遍历字符串
    asp.net mvc easyui tree
    c# Castle Windsor简单例子
  • 原文地址:https://www.cnblogs.com/still-smile/p/12102375.html
Copyright © 2011-2022 走看看