前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OSEK直接网络管理(一)

OSEK直接网络管理(一)

作者头像
xbai921031
发布2022-05-25 15:24:29
1.9K0
发布2022-05-25 15:24:29
举报

OSEK,是指德国的汽车电子类开放系统和对应接口标准(Open Systems and their Interfaces for the Electronics in Motor Vehicles),而VDX则是汽车分布式执行标准(Vehicle Distributed Executive),后者最初是由法国独自发起的,后来加入了OSEK团体。 词条来源:百度百科

OSEK NM定义了一系列的服务来进行对节点的监测。网络管理的主要目的是确保汽车网络的安全性、通信的可靠性等。NM在嵌入式软件系统中所处的位置,如下图所示:

图1 NM在软件系统中的位置示意

OSEK NM主要包含以下几个方面:

(1)与应用程序的接口(API)

(2)节点监测算法

(3)OSEK内部的一些接口(如NM与COM间接口等)

(4)睡眠模式转换算法

(5)NM协议数据单元(NMPDU)

直接网络管理(Direct Network Management)

(1)逻辑环(Logical Ring)

逻辑环,通俗的来说,就是由若干个节点组成的环状结构,每个节点都有一个逻辑上的后继节点,而最后一个节点的后继节点又是第一个节点,这样就组成了一个环状的结构,有点类似于数据结构里面的循环链表那种结构。

图2 NM逻辑环 (Logical Ring)结构

如上图所示,图中有两个总线系统,左右两个环形的结构就是“逻辑环”,从上图可以看出逻辑环和总线结构是独立的,两者没有包含关系,不同总线上的节点可能在同一个逻辑环上。

逻辑环的建立:

直接网络管理(以下简称为NM)通过发送和接收两种类型的消息来建立逻辑环:Alive message和Ring message。其中,Alive message是一个节点要加入逻辑环时要发送的消息,Ring message是网络正常工作时的环消息,是从一个节点传递给下一个节点,依次在逻辑环中传递,以表示网络中的节点正常工作。当某一节点功能不正常时,就会周期性的向网络中发送LimpHome message。

逻辑环的建立通过一种发送“令牌(Token)”的方式来进行,按标识符由小到大的顺序进行传递,最初发送Alive message的节点(或者标识符优先级高的节点)成为逻辑环中的第一个发送节点,消息都是以广播的方式发送的,这就使得每个节点发送的消息,其他节点都可以监测到,以确定自己是否为上一个发送节点的后继节点,并更新节点的运行状态等。

(2)节点状态

  • 发送状态 静默(mute):发送特定NM消息超时 非静默(not mute):在timeout之前发送特定NM消息(Alive message/Ring message)
  • 接收状态 离线(Absent):在timeout之前没有接收到特定的NM消息 在线(Present):接收到特定的NM消息(Alive message/Ring message)

(3)节点地址(Node addressing)

包含接收和发送消息的标识符,每个节点都会分配一个独特的ID。

图3 NM message示意

(4)数据交换

NM与应用层之间的数据交换是通过逻辑环进行的。在Ring message发送(接收)的时间延时内,应用层可以修改数据。

图4 通过逻辑环传递应用层数据

logical predecessor:当前节点的前一个节点

logical successor:当前节点的后继节点

在t=0至t=Tdelay时间内允许修改Data部分数据。

(5)NM状态转换机制

图5 NM状态图

总的来说NM包含3个大的状态,分别为NMOff,NMOn,NMShutDown。

ECU上电以后处于NMOff状态,通过任务调用StartNM,启动NM,这时候NM就开始运行,直到调用StopNM接口,状态又会跳到NMShutDown,进而进入NM关闭状态。

图6 NM子状态图1

在上述图5所示中,如果进入NMOn状态,又会按照图6所示状态进行转换,首先是进行初始化,进行一些网络配置,然后在有通信请求的时候处于NMAwake的状态,没有通信请求的时候就进入NMBusSleep的状态。

图7 NM子状态图2

在进入图6所示的NMAwake状态后,会进行如图7所示子状态的切换。首先进入NMReset状态,没有错误跳入NMNormal状态,在NMNormal下逻辑环上就开始进行周期性发送和接收消息,并且同时对网络的配置进行管理,如果Ring message发送(接收)超时又会跳回NMReset状态。当没有NM消息传输的时候或者总线错误时会进入NMLimpHome状态,如果错误解除则跳转回NMReset状态。

读者可以根据上述内容对OSEK NM有一个大致的了解,后续笔者还会更深入地对每个部分进行一些详细地介绍,欢迎持续关注本公众号。


参考资料:OSEK/VDX Network Management Version 2.5.3

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的程序喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档