分类:
2009-05-05 08:59:33
1 OSEK 简介
随着社会的进步和汽车工业的飞速发展,汽车在降低能耗、提高安全性和舒适度以及环保等方面的要求越来越高.这些要求刺激了电了技术在汽车_L的应用.而且比重不断增加,其结果是汽车在零部件控制技术、通信和网络方面的复杂性大大增加。在这个强大的市场需求和激烈竞争的环境下,汽车电子的软硬件产品不断发展并出现多元化格局。
这时一些问题凸显出来,比如,由于处理器( CPU)不断升级导致不同的CPU间的软件移植滞后,由于不同实时操作系统的应用程序接日是口(API)不同,导致应用程序的移植性差等为了改变这种状况,1993年德国汽车工业界提出了OSEK(德文:Offene Systeme and deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)体系,其含义是汽车电子开放式系统及其接口。这个体系的最早倡导者有:宝马、博世、戴姆勒克莱斯勒、欧宝、西门子、大众和卡尔斯鲁厄大学的工业信息技术研究所,法国的汽车制造商标致和雷诺于1994年加人了OSEK体系,并将法国汽车工业使用的汽车分布式运行系统(Vehicle Distributed eX-ecutivr, V DX)也纳人这一体系,VDX的作用与OSEK相似。
在1995年召开的研讨会上,众多的厂商对OSEK和VDX的认识达成了共识,产生了OSEK/VDX规范(1997年发布),本文简称OSEK规范。它主要由四部分组成:操作系统规范(OSEK Operating System,OSEK OS)、通信规范(OSEK Communication , OSEK COM )、网络管理规范( OSEK Net Management, OSEK NM)和OSEK实现语言(OSEK Implementation Language,OIL)。此后,各软件生产厂商都相继推出了符合OSEK规范的产品,比较典型的有WINDRIVER公司的OSEKWorks ,ETAS公司的ERCOSEK,MOTOROLA的OSEKturbo和美国密西根大学的EMERALDS-OSEK等。随着该规范应用的不断深人,其结构和功能不断完善和优化,版本也不断升级和扩展。目前OSEK OS2. 2 , OSEK COM2. 3 , OSEK NM2. 3和OIL2. 3已经提交ISO审议,即将成为一个国际标准。
2 OSEK OS的特点
OSEK规范为实现其制定的初衷并满足汽车控制领域对系统安全性和节省有限资源的特殊要求,制定了系统而全面的操作系统规范。其特点主要有以下几个方面。
2.1实时性
由于越来越多的微处理器被应用到汽车控制领域,如汽车刹车的防抱死系统、动力设备的安全控制等这些系统直接关系着人的生命安全,即使出现丝毫的差错也会导致危及生命安全的严重后果,因此要求操作系统具有严格的实时性。OSEK操作系统通过静态的系统配置、占先式调度策略、提供警报机制和优化系统运行机制以提高中断响应速度等手段来满足用户的实时需求。
2.2可移植性
OSEK规范详细规定了操作系统运行的各种机制,并在这些机制基础上制定了标准的应用程序编程接口,使那些独立编写的代码能够很容易地整合起来,增强了应用程序的可移植J性。OSEK还制定了标准的OIL,用户只需更改OIL配置文件中与硬件相关部分,便可实现不同微处理器之间的应用程序移植通过这些手段,减少了用于维护应用程序软件和提高它的可移植性的花费,降低了应用程序的开发成本
2.3可扩展性
为了适用于广泛的目标处理器,支持运行在广泛硬件基础上的实时程序,OSEK操作系统具备高度模块化和可灵活配置的特性。它定义了不同的符合级另IJ ( Conformance Classes),并采用对不同应用程序有可靠接收能力的体系结构,从而增强了系统的可扩展性。OSEK操作系统可以在很少的硬件资源(RAM,ROM,CPC时间)环境下运行,即便在8位微处理器上也是如此
3 OSEK操作系统的运行机制分析
3.1进程(TASK)管理和调度
在OSEK操作系统中,进程管理能力相对有限,这是因为系统的进程设置在系统生成时已经定义好了,并目_系统中进程的数量保持不变,不允许动态创建和删除进程。OSEK规范把进程分为基础进程和扩展进程。基础进程状态包括:就绪态、运行态和挂起态进程切换只发生在这三种状态之间;扩展进程除了具有基础进程的三种状态外,还有等待态,并支持事件机制。
基础进程通常在开始运行后,只有当它被高优先级进程占先或者是被中断时,它才会停止,否则一直运行到进程结束。而扩展进程除了能被高优先级的进程占先和被中断外,还会因等待事件而停止运行,进人等待态处于等待态的扩展进程只有当它所等待的事件中至少有一个发生才会被激活继续运行。
处于就绪态的进程由调度程序调度运行,OSEK规范采用静态优先级调度策略。进程的优先级在系统生成的时候进行静态分配,高优先级的进程先处理,低优先级的进程后处理。具有相同优先级的进程则进入一个先来先服务的队列,此外进程可分为可被占先进程和不可被占先进程。对不可被占先的进程而言,一旦进程开始运行,就不会被占先,只有到达其调度点时才发生调度,程序设计员可以预知调度点;而对可被占先的进程而言,由于中断可能激活更高优先级的进程,所以任何时候都有可能进行调度使用这两种进程可使程序设计具有更高的灵活性
OSEK操作系统不允许同一进程的多个并行调用,因为这需要动态改变进程的数量。当请求调用一个已经激活的进程时,该请求进人一个请求队列,直到前一个激活进程运行终止(转换为挂起态),第二个激活请求才执行
3. 2同步机制
OSEK提供了两种同步机制,即对共享资源的互斥访问机制和事件机制。
OSEK的资源可以是一段临界区代码、调度程,序、共享内存或数据结构,也可以是共享硬件设备。系统在处理多个进程对共享资源的互斥访问时,采用信号量对临界区数据或资源加锁。在某一时刻只能有一个进程访问资源,但是用信号量机制可能会导致优先级反转,即当一个高优先级的进程试图访问一个已经被较低优先级的进程占用的资源时,则该高优先级的进程必须等待,直到低优先级的进程释放该资源。这时如果有大量的介于前两个进程优先级之间的进程被激活,而且它们根本不使用该资源,那么,占据资源的低优先级进程就会被占先,等待资源的高优先级进程也不能执行,而中间优先级的进程要先于高优先级的进程运行,这就是优先级反转。为了避免这种情况发生,O5EK操作系统采用了优先级最高限度协议(Priority Ceiling Protocol )。即当一个进程占用了一个资源后,该进程的优先级会临时升高为该资源优先级。其优先级为可能使用该资源的所有进程优先级的最高值,这样,该进程只会被不使用该资源并巨比该资源的优先级高的进程占先,直到它释放该资源为止因此,当一个进程试图占用一个资源的时候,不可能有任何其他进程正占用着该资源,也就不会有因试图占用资源而进人等待态的进程。使用该协议同时解决了死锁的问题,当两个进程都已占用了一个资源,而且又试图访问对方所占有的资源时,它们无限期地相互等待下去就会发生死锁。该协议中不存在等待进程。自然也就避免了死锁。
此外,OSEK还提供了另一种同步机制,即事件机制。该机制的含义是,一个处于等待状态的扩展进程,只有当它所等待的事件至少有一个发生,刁一能进人就绪态,并且事件的发生会以信号的方式传给该进程。事件机制既可用于多个进程的同步,同时也是进程内部通信的方法之一虽然只有扩展进程才可以等待事件,但设置这些事件的却可以是任何进程或中断服务程序。有一点要注意,为了遵循占用子资源就不被阻断的原则,必须避免一个占用了资源的进程因等待事件而进人等待状态。
3. 3警报
前面提到汽车电子控制最典型的特性就是实时性,因此系统必须有基于时间或其他计数器的处理机制,来处理定时和循环进程。为此,OSEK提供了警报机制,警报或者基于系统时钟,或者基于其他的某种计数器,当计数器到达警报设定值时被触发警报触发后可以激活进程也可以为某一进程设置事件,或者干脆执行一个警报回调程序,具体怎样由用户在系统生成时静态定义,但警报值是动态设置的,可以是相对值或者是绝对值,也可以设为循环警报来激活周期性进程。
3. 4中断
汽车控制系统要求对实时输人作出快速反应。在OSEK操作系统中,由应用程序开发者编写的中断服务程序(ISR)与系统封装在一起,这样有利于保护进程和系统状态。OSEK操作系统把中断处理程序分为两类:(1)中断服务程序不会调用系统服务;(2)中断服务程序可以调用部分系统功能,如激活进程、设置事件、设置警报等,因此,它可以激活更高优先级的进程O sEK操作系统的中断管理提供了开/关全部中断和
开/关全部第三类中断的系统调用OSEK操作系统内核是一个可重人内核,因此,那些正在执行内核代码的进程(如正在执行系统调用)可能被中断,交出(:PU的使用权_必要时都不允许等到内核代码运行完,这有利于缩短由中断启动的更高优先级进程的平均延时。O sEK操作系统还支持中断的嵌套_3.5符合级别
由于汽车嵌人式领域的应用范围很广,所以不同的应用程序软件可能对操作系统的要求有所小同,而且系统实现的硬件环境也存在很大的差异(如在处理器类型、存储容量等方面的不同),这就要求操作系统具有灵f舌的配置能力()5EK规范把这些配置上的小同特点组织成四个级别,即四个符合级别:
BCCI,BCC2,ECC1和EC(;2。各符合级别在其提供的系统服务、进程类型和对硬件适应能力方面均有所不同,而且在它们之间存在着一定的兼容性BCCI和BCC2只支持基础进程,不支持事件机制;ECCI和ECC2支持基础进程和扩展进程,并且支持事件机制;BGC1和ECCI支持每个优先级只有一个进程,BCC2和h;CC2支持每个优先级川以有多个进程,每个进程可以有多个激活请求。开发人员可以根据需要选择合适的符合级别来实现一个完全符合0>EK规范的操作系统,也可以开发支持全部符合级别的系统并提供配置选项,供用户选择使用。
1 OSEK 简介 随着社会的进步和汽车工业的飞速发展,汽车在降低能耗、提高安全性和舒适度以及环保等方面的要求越来越高.这些要求刺激了电了技术在汽车_L的应用.而且比重不断增加,其结果是汽车在零部件控制技术、通信和网络方面的复杂性大大增加。在这个强大的市场需求和激烈竞争的环境下,汽车电子的软硬件产品不断发展并出现多元化格局。 这时一些问题凸显出来,比如,由于处理器( CPU)不断升级导致不同的CPU间的软件移植滞后,由于不同实时操作系统的应用程序接日是口(API)不同,导致应用程序的移植性差等为了改变这种状况,1993年德国汽车工业界提出了OSEK(德文:Offene Systeme and deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)体系,其含义是汽车电子开放式系统及其接口。这个体系的最早倡导者有:宝马、博世、戴姆勒克莱斯勒、欧宝、西门子、大众和卡尔斯鲁厄大学的工业信息技术研究所,法国的汽车制造商标致和雷诺于1994年加人了OSEK体系,并将法国汽车工业使用的汽车分布式运行系统(Vehicle Distributed eX-ecutivr, V DX)也纳人这一体系,VDX的作用与OSEK相似。 在1995年召开的研讨会上,众多的厂商对OSEK和VDX的认识达成了共识,产生了OSEK/VDX规范(1997年发布),本文简称OSEK规范。它主要由四部分组成:操作系统规范(OSEK Operating System,OSEK OS)、通信规范(OSEK Communication , OSEK COM )、网络管理规范( OSEK Net Management, OSEK NM)和OSEK实现语言(OSEK Implementation Language,OIL)。此后,各软件生产厂商都相继推出了符合OSEK规范的产品,比较典型的有WINDRIVER公司的OSEKWorks ,ETAS公司的ERCOSEK,MOTOROLA的OSEKturbo和美国密西根大学的EMERALDS-OSEK等。随着该规范应用的不断深人,其结构和功能不断完善和优化,版本也不断升级和扩展。目前OSEK OS2. 2 , OSEK COM2. 3 , OSEK NM2. 3和OIL2. 3已经提交ISO审议,即将成为一个国际标准。 2 OSEK OS的特点 3 OSEK操作系统的运行机制分析 |