OSEK直接网络管理(一)

2022-05-25 15:24:29 浏览数 (2)

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

0 人点赞