AUTOSAR和OSEK关系及网络管理比较

来源:公众号“汽车电子与软件”
2020-06-30
2661

AUTOSAR与OSEK的关系

AUTOSAR与OSEK二者都是汽车电子软件的标准。OSEK/VDX是基于ECU开发的操作系统标准,AUTOSAR基于整体汽车电子开发的功能标准。AUTOSAR中规定的操作系统标准就是基于OSEK/VDX,通信和网络管理虽然和OSEK有区别,但是是有继承性的。可以认为,AUTOSAR是基于OSEK/VDX发展出来的,OSEK/VDX被AUTOSAR标准软件架构所包含。


一、AUTOSAR

AUTOSAR的出现是为了解决汽车电子架构日益增加的ECU单元带来的复杂系统设计问题,让汽车电子系统开发更灵活,更有效率。

2003年汽车行业内的几大巨头(BMW, Bosch, Continental, DaimlerChrysler, Volkswagen, Siemens VDO)联合建立了AUTOSAR联盟,一起开发并建立一套真正的开放的汽车电子电器架构,也就是我们现在所说的AUTOSAR标准或者AUTOSAR架构,我们经常提到的AUTOSAR一般就是指AUTOSAR构架/标准,AUTOSAR的全称是AUTomotive Open System ARchitecture,随着多年的发展,越来越多的行业内的公司加入到了AUTOSAR联盟中,这其中有OEM(汽车整车厂),Tier1(汽车零部件供应商),芯片制造商以及工具制造商,AUTOSAR构架/标准也成为了汽车E/E设计的发展方向。

AUTOSAR架构和标准的目标是:

1. 满足未来汽车的需求,如可用性和安全性、软件升级更新、可维护性等

2. 增加软件的灵活性和可扩展性来实现软件的集成和整合

3. 实现商用现成的跨产品线的软件硬件

4. 控制产品和流程的复杂度和风险

5. 优化成本

AUTOSAR架构的主要特点是:

1、模块化和可配置性

2、标准化接口

3、提出了RTE的概念

4、标准的测试规范

AUTOSAR标准有四个核心内容

1. ECU软件构架

2. 软件组件(software components)

3. 虚拟功能总线(Virtual Functional Bus)

4. AUTOSAR设计方法(Methodology)


二、OSEK

为了解决汽车控制技术通信和网络发展多元化带来的软件移植和不同应用程序的接口协调问题,德国汽车工业界在1993年推出了OSEK体系,定义汽车开放式系统及接口。1994年法国标致雷诺将汽车分布式运行系统VDX纳入OSEK。

在1995年召开的OSEK研讨会上,众多的厂商对OSEK和VDX的认识达成了共识,产生了OSEK/VDX规范(1997年发布)。它主要由四部分组成:操作系统规范(OSEK Operating System,OSEK OS)、通信规范(OSEK Communication , OSEK COM )、网络管理规范( OSEK Net Management, OSEK NM)和OSEK实现语言(OSEK Implementation Language,OIL)。

此后,各软件生产厂商都相继推出了符合OSEK规范的产品。随着该规范应用的不断深,其结构和功能不断完善和优化,版本也不断升级和扩展。目前OSEK OS2.2 , OSEK COM2.3 , OSEK NM2.3和OIL2.3已经提交ISO审议,即将成为一个国际标准。

OSEK规范为实现其制定的初衷并满足汽车控制领域对系统安全性和节省有限资源的特殊要求,制定了系统而全面的操作系统规范。

其特点主要有以下几个方面:

1. 实时性

2. 可移植性

3. 可扩展性

由上我们可以看出,AUTOSAR与OSEK二者都是汽车电子软件的标准。OSEK基于ECU开发,AUTOSAR基于整体汽车电子开发。AUTOSAR中规定的操作系统就是OSEK,而通信和网络管理虽然和OSEK有区别,但思路一样的。所以认为,AUTOSAR是基于OSEK提出的(但不仅基于OSEK),OSEK被AUTOSAR标准软件架构包含。


AUTOSAR和OSEK网络管理比较

一、共同点:

1. 都属于直接网络管理。

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



3) PDU结构不一样

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


小结

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

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



收藏
点赞
2000
  • 小江同学

    谢谢分享!

    2020-06-30
    回复
    点赞