tag 标签: osek

相关帖子
相关博文
  • 热度 6
    2022-11-16 10:12
    1297 次阅读|
    0 个评论
    书接上回,在上篇中我们分别在状态机和报文格式方面对OSEK和AUTOSAR网络管理进行了简单介绍,感兴趣的小伙伴请移步至文章《科普系列:AUTOSAR与OSEK网络管理比较(上) 科普系列:AUTOSAR与OSEK网络管理比较(上)-面包板社区 (eet-china.com) 》。 三、OSEK与AUTOSAR网络管理特点对比 本篇就是本文的重点了,接下来对比下这两种网络管理之间的共同点以及差别。 共同点 1、都是基于状态机的网络管理。 2、都是协调网络中的节点同时进入休眠以及唤醒。 3、都分配了特定的网络管理报文在网络中进行网络管理,属于直接网络管理。 4、通常情况每个节点都有独有的节点ID(如0x1),与基础ID(如0x400)共同构成网络管理报文的ID(0x401)。 图十 通常情况网络管理报文ID组成 5、网络唤醒方式都相同,每个节点都可以由于自己需要通信而主动唤醒网络,也可以被网络中其它的节点唤醒。 不同点 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
  • 热度 11
    2022-10-19 12:29
    1338 次阅读|
    0 个评论
    一、前言 汽车网络管理从根本上来说是为了省电的,基本的实现方式就是汽车在没有使用的情况下一些ECU会通过网络管理协调进入低功耗模式或者睡眠模式,从而达到省电的目的。目前主流的网络管理标准有两个,一个是AUTOSAR(Automotive Open System Architecture,即汽车开放系统架构),另一个是OSEK。AUTOSAR与OSEK的网络管理方式虽然有区别,但是可以认为AUTOSAR是基于OSEK/VDS发展出来的。 那么这两种标准分别是怎么实现网络管理功能的,有什么差异?有什么相同呢? 二、OSEK与AUTOSAR网络管理实现原理 OSEK网络管理 1、状态机 O SEK 网络管理状态机的状态跳转是有多层的,具有三个主要状态: 图一 OSEK网络管理主状态示意图 NMOff:网络管理关闭 NMOn:网络管理正在运行 NMShutDown:关闭网络管理的操作,此过程会清理一些在运行过程中产生的数据 NMOn状态下有两组并行的子状态,互不影响: 图二 NMOn 状态下的子状态示意图 NMInit:主要是硬件初始化,此状态很短暂(初始) NMAwake:一般情况下节点长期保持的状态,正常进行网络管理 NMBusSleep:睡眠状态,网络管理通信停止 NMActive:参与网络管理(初始) NMPassive:节点不参与网络管理,但仍监视网络活动 NMAwake状态下也有三个子状态: 图三 NMAwake 状态下的子状态示意图 NMReset:软件初始化,发送alive报文 NMNormal:周期性发送或接受Ring报文,检测节点状态和网络配置的变化 NMLimpHome:节点非正常状态,不能正常发送和接收网络管理报文,尝试周期性发送跛行报文 一个节点从休眠到唤醒,再到休眠状态的跳转示意图如下: 图四 OSEK网络管理状态跳转示意图 2、NM报文格式 网络管理直接关联的报文为网络管理报文,网络管理报文根据携带数据中byte1字节的不同bit置位可以分为Alive报文、Ring报文和LimpHome报文。网络管理报文byte1字节中还携带有每个节点是否满足休眠的信息,分别叫SleepInd信息、SleepACK信息。 Alive报文(byte1中bit0置位):每个节点需要加入逻辑环中时发送的声明。 例: Ring报文(byte1中bit1置位):“令牌”在逻辑环中传递的网络管理报文。 例: LimpHome报文(byte1中bit2置位):节点处于非正常状态不能收发网络管理报文时发出的特殊报文。 例: SleepInd信息(byte1中bit4置位):网络管理报文操作码中携带的数据,表明发出此信息的节点不再主动请求网络通信。 例: SleepACK信息(byte1中bit4和bit5置位):表明网络中所有节点都不再需要网络通信,所有节点收到此信息的报文后就停止通信,进入休眠。 例: 3、逻辑环 逻辑环:网络管理报文传递的逻辑,正常通信的网络中一个节点只有收到其他节点发出指向自身的网络管理报文,也就是“令牌”,才能发出自身网络管理报文,因此网络中同一时间只有一个节点能发出网络管理报文,每个节点按顺序发送网络管理报文,这个顺序就叫做逻辑环。示意图如下: 图五 逻辑环示意图 “Token”在Node B,Node B发出指向Node C的网络管理报文。 Node B的发出指向Node C的网络管理报文,“Token”转移到Node C。 “Token”在Node C,Node C发出指向Node A的网络管理报文。 Node C的发出指向Node A的网络管理报文,“Token”转移到Node A。 “Token”在Node A,Node A发出指向Node B的网络管理报文。 Node A的发出指向Node B的网络管理报文,“Token”转移到Node B。 AUTOSAR网络管理 1、状态机 AUTOSAR网络管理只有三个模式: 图六 AUTOSAR网络管理模式示意图 BusSleep Mode :总线睡眠模式,当具备AUTOSAR网络管理功能的控制器正常休眠时的状态。 Prepare BusSleep Mode :总线预睡眠模式,此状态为网络中节点停止通信准备进入睡眠模式的一个过渡状态,不会长期处于此状态 Network Mode :网络模式,网络中有通信请求时的状态。 Network Mode下还有三个子状态,AUTOSAR网络管理则是根据这三个子状态来判断节点是否需要通信: 图七 Network Mode模式下子状态示意图 Repeat Message State:重复消息状态,此状态不是一个长时间的状态,当从睡眠模式或者准备睡眠模式进入网络模式时进入此状态,发出自身的网络管理报文,让网络中的其他节点可以检测到,也可以用来检测当前在线的节点。 Normal Operation State:正常操作状态,某个节点需要网络通信时处于的状态,周期性的发出自身的网络管理报文。 Ready Sleep State:就绪睡眠状态,某个节点不再需要网络通信时处于的状态,不再发出自身的网络管理报文,但正常发送自身的应用报文。 一个正常通信网络中的所有节点都会维持在两个状态,一个是Normal Operation State,另一个是Ready Sleep State,这两个状态的差别就是网络管理报文的发送与否。 一个节点从休眠到唤醒,再到休眠状态的跳转如下所示: 图八 AUTOSAR网络管理状态跳转示意图 2、NM报文格式 AUTOSAR网络管理报文由于是广播发送的且不需要指定任何节点,所以报文只包含自身的ID,和少量的控制信息,叫做控制位向量,以及用户数据。 图九 AUTOSAR网络管理报文格式 至此,本文分别在状态机,网络管理报文格式对OSEK和AUTOSAR网络管理进行了简单介绍。 本文重点在两种网络管理特点的比较,因文章篇幅限制,还请各位看官移步至文章《科普系列:AUTOSAR与OSEK网络管理比较(下)》。 未完待续。 北汇信息专注于汽车电子测试,与国内外众多OEM和Tier1合作,在车载通信、诊断刷写、OTA、车内网络安全、域控制器功能测试等领域积累了丰富的实践经验,欢迎大家交流、探讨。 注:文中部分图片来源于AUTOSAR_SWS_CANNetworkManagement
相关资源
  • 所需E币: 2
    时间: 2022-1-6 11:21
    大小: 214.74KB
    上传者: ZHUANG
    清华OSEK车用嵌入式实时操作系统设计
  • 所需E币: 3
    时间: 2019-12-25 21:32
    大小: 19.76KB
    上传者: 微风DS
    停靠式视图下的窗口管理与源码控制系统进行集成支持MISRACIAR扩展EC++支持AVRJTAGICEmkII调试器源代码浏览器增强的上下文相关帮助易于配置的C/EC++函数库支持OSEK运行时接口(ORTI)调试过程中STL容器的灵活显示新增的调试信息窗口……
  • 所需E币: 4
    时间: 2019-12-25 15:11
    大小: 300.01KB
    上传者: 978461154_qq
    OSEK/VDX规范在汽车电子控制系统开发中具有重要地位,其中OSEK/VDX通信规范(OSEKCOM)为汽车电子通信系统的构建提供了依据和参考.本文介绍了OSEKCOM3.03规范基于消息的通信机制,设计并实现了一种基于CAN总线的通信系统,并对该系统的功能进行了测试.测试表明,该通信系统可以很好地实现消息的发送和接收功能.……
  • 所需E币: 3
    时间: 2019-12-25 11:34
    大小: 261.54KB
    上传者: rdg1993
    OSEK/VDX规范在汽车电子控制系统开发中具有重要地位,其中OSEK/VDX通信规范(OSEKCOM)为汽车电子通信系统的构建提供了依据和参考。本文介绍了OSEKCOM3.03规范基于消息的通信机制,设计并实现了一种基于CAN总线的通信系统,并对该系统的功能进行了测试。测试表明,该通信系统可以很好地实现消息的发送和接收功能。……