EDN China > 设计实例 > 测试与测量 > 系统测试 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于OSEK/VDX的嵌入式车用操作系统研究

来源:21IC中国电子网/作者:武汉理工大学学报(信息与管理工程版)黄鹏?? 2007年11月07日 ?? 收藏1

  引言

  随着汽车工业的飞速发展,电子技术在汽车上的应用比重不断增加。为了满足日益复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商的控制模块间的可兼容性,1993年德国汽车工业界联合推出了“汽车电子的开放式系统及接口软件规范”,即OSEK(open system and the corresponding interfaces for automotive electronics)。1994年法国汽车工业界的相似规范VDX(vehicle distributed executive)和OSEK规范合并,从而形成OSEK/VDX规范体系。

  此规范主要由4部分组成:操作系统规范(OSEKOS)、通信规范(OSEKCOM)、网络管理规范(OSEKNM)和OSEK实现语言(OSEKOIL)。其中OSEKOS是针对汽车应用特点而专门制定的一个小型RTOS规范,着重以下几个方面:①可移植性,所有API都是标准化的并且在功能上都有明确的定义;②可扩展性,OSEKOS旨在通用于任何类型的 ECU,因此一方面系统要高度的模块化,另一方面又要能进行灵活的配置;③汽车应用的特

定需求,诸如可靠性、实用性和代价敏感性等。相应的,OSEKOS 静态配置可以通过OS2EKOIL语言实现,用户在系统生成时静态制定任务的个数、需要的资源和系统服务。OSEKCOM为通信网络中的数据交换提供了标准的接口和协议。OSEKNM为监视网络的流量提供了一组标准的功能函数,以保证网络的安全性和可靠性。

  μC/OS-Ⅱ是一个著名的源代码公开的实时内核,专门为嵌入式应用设计的。它的主要性能特点如下:①源代码公开。这样很容易就能把操作系统移植到各个不同的硬件平台上;②可移植性。μC/OS-Ⅱ绝大部分源代码是用C语言写的,而与微处理器硬件相关的那部分是用汇编语言写的,使得μC/OS-Ⅱ便于移植到其他的微处理器上;③可固化。只要开发者有固化手段,μC/OS-Ⅱ可以嵌入到开发者的系统中;④可裁剪性(Scalable)。开发者可以有选择的使用μC/OS-Ⅱ中应用程序需要的那些系统服务,可以减少μC/OS-Ⅱ所需的存储空间;⑤占先(Preemp2tive)。μC/OS-Ⅱ完全是占先式的实时内核;⑥多任务(Multi-Tasking)。μC/OS-Ⅱ可以管理64个任务,但是目前应用程序最多有56个任务;⑦可确定性 (Affirmable)。μC/OS-Ⅱ系统服务的执行时间不依赖于应用程序任务的多少;⑧实用性和可靠性。许多的行业都有成功应用该实时内核的实例,这些应用的实践是该内核实用性和可靠性的最好证据。

  OSEKOS结构特点及运行机制

  OSEKOS的结构特点

  (1)高实时性。由于在汽车控制领域,如果出现丝毫的差错会导致危及生命安全的严重后果,因此要求具有高度的实时性。OSEKOS所有的系统对象由用户在建立时静态创建,避免了动态创建时的时间消耗,增强了其实时性。而且通过占先式的调度策略和警报机制也能满足实时性需求;

  (2)标准化应用接口。其制定了标准的应用程序编程接口,这样可以屏蔽底层硬件结构的不同而提供一个一致的开发环境。并且用户只需修改OIL配置文件中与硬件相关的部分,可以方便地在不同的ECU上进行移植;

  (3)可裁剪性。其具有高度模块化和可灵活配置的特性,用OIL语言进行裁剪,可以在很少的硬件资源环境下运行。

  OSEKOS运行机制分析

  任务管理

  OSEK规范将任务分为基本任务和扩展任务。基本任务具有3种状态:运行状态、就绪状态和挂起状态。扩展任务多了一个等待状态。此外基本任务只在开始和结束时才有同步点,所以其需要的资源少,而扩展任务可以对应不同的时间,在运行中可能有多个同步点,所以对环境要求高。操作系统的任务之间的同步通过调度程序来实现。OSEK规范支持3种调度方式:①完全抢占式调度。该策略用于保存现场的内存开销较大,理论上可以在任务的任何位置重调度,因此任务必须同步访问共享资源,增加了系统的复杂性;②非抢占调度。此策略通过调用某些服务例程实现任务切换,即用户设置重调度点。通过定义任务组,可以使多个任务同时具有抢占或非抢占调度的特征;③混合抢占调度。抢占任务和非抢占任务共存于一个系统时,使用“混合抢占”调度策略。在这种情况下,调度策略依赖于正在运行任务的抢占特性,开发者通过配置任务优先级和抢占属性来定义任务执行顺序。

  一致类

  为了更加灵活的配置操作系统调度,OSEK规范定义了4种一致类:BCC1、BCC2、ECC1和ECC2。其根据每个优先级可能有的任务个数,需要的是基本任务还是扩展任务来进行划分。若每个优先级上只有一个任务,且是基本任务则定义一致类为BCC1,是扩展任务则定义为BCC2;若每个优先级上可以有多个任务,且是基本任务则定义一致类为ECC1,是扩展任务则定义为ECC2。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

OSEK/VDX? μC/OS-Ⅱ? 嵌入式实时操作系统? 内核?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈