前言
OSEK/VDX是汽车的工业的一个联合项目,它的目标是为汽车上分布式的控制单元建立一个开放结构的工业标准。
OSEK项目目合作伙伴详细的信息 , 请查阅 “OSEK Binding Specification“
本文只介绍在汽车上使用实时操作系统的概念及多任务处理的能力。它不涉及产品实现的描述。
本文也介绍 OSEK操作系统 --应用程序接口( API) .
按常规 ,解释和缩写已经被编写在另外的内部 --项目 " OSEK Overall Glossary " ,它是 "OSEK Binding Specification"的一部分。
关于系统的执行和创建,请查阅 "OSEK Implementation Language" (OIL).
1 介绍
OSEK操作系统是一个使汽车控制单元应用软件资源兼容,有利于提高汽车软件开发效率的单一环境。
OSEK也是一个基于分布式嵌入控制单元的单一处理操作系统 .
1.1 系统体系
汽车的应用是有严格的实时需求 .因此 OSEK操作系统必需是支持事件驱动的控制系统 。
制定标准的操作系统能够集成不同厂商的软件模块 . 为了在最小资源的单个控制器上能使用, OSEK最初的目标不是为了 100% 兼容性 , 而是他们可以直接移植。
因为 OSEK操作系统是为了使用在任何类型的控制器上 ,它可以支持大部分硬件上的时限应用。高模组化和可灵活的配置可以使这个系统 既用在低端微处理器也可应用在复杂的控制单元上。支持这些需求被定义在 "conformance classes" (see chapter 3.2, Conformance classes) 和应用接口里。 OSEK 不适用动态系统创建的应用,相反系统模块是在系统创建的阶段被分配。只要不影响总的系统的速度,内部错误检查可以让操作系统有更好的健壮性。另外,一个带错误检查的系统版本已经被定义,它是可以在做测试阶段和低时限的应用时使用。
标准接口
在系统服务中定义了应用软件和操作系统的接口。
在不同系列的处理器上 操作系统实现了统一的接口。
用 ISO/ANSI 类 C的描述了系统的服务,但是系统服务的实现语言没有定义。
可扩展性 (Scalability )
OSEK操作系统是设计可用在最小资源( RAM, ROM, CPU time)的硬件上,因此甚至可以用在 8位微处里器上。
出错检查 (Error checking)
OSEK操作系统提供两种标准的出错检查,开发阶段的扩展模式( extended status)和生产阶段的标准模式。
extended status 在运行操作系统时允许提高真实性核查
相比较标准系统,附加的出错检查需要更多的执行时间和内存空间,可是很多的错误可以在测试阶段被发现。
在所有的错误被消除后,系统可以用标准版本重新编译。
应用软件的可移植性
OSEK的一个目标是为了移植和重用应用软件。因此应用软件和操作系统的接口被标准的系统服务定义。
标准系统的使用可以缩减维护 移植和开发的费用。
可移植意味着从一个 ECU到另一个 ECU移植软件模块不需要大的修改。
操作系统的标准接口(服务,类型定义和常数)支持源代码级别的移植。
OESK规范定义目标代码的交换不被固定地址
应用软件和 和 I/O 系统的接口没有被 OSEK标准定义
应用软件模块可以有几个接口。
操作系统的接口是实时控制和资源管理,但是如果应用程序打算直接和微处里器模块工作,那对系统至少对硬件而言,操作系统接口相对于其他的软件模块是一个复杂的功能。
为了比较方便的移植应用软件, OSEK定义了一个标准的配置语言。
这个 "OIL"(OSEK Implementation Language) 支持所有的 OSEK可移植目标, 如 tasks, alarms 等。
|
Figure 1-1 Software interfaces inside ECU1
在从一个 ECU到另一个 ECU移植应用软件的过程中,必须考虑软件开发的步骤,开发的环境和 ECU的硬件结构。 ( 1 OSEK 是允许直接在硬件和应用上有接口)
例如:
软件开发指导方式
文件管理系统
编译的数据分配和堆栈使用
ECU的内存结构
ECU的时钟实现
不同微处理器的接口细节,如 I/O口, A/D串口, watchdog 时钟
API函数的调用
这个意味着 OSEK不足以描述 OSEK的复杂实现。必须要其他的说明文档来补充这个实现。
支持可移植
认证是为了保证规范不同实现的一致性, 14章里搜集了这个定义实现的细节,这个可以看作是为了提高应用程序在不同 OSEK上的可移植性。在此,仅仅操作系统的接口被应用程序考虑。
汽车工业特殊需求的支持
对 OSEK操作系统需要详细的说明起因在于为汽车单元应用软件开发的需求。
以下的要素指出了需求,如可靠性 实时性和敏感的价格:
OSEK系统是可配置和静态结构的,用户静态定义 task数量, resources和服务的需求
OSEK的定义支持代码从 ROM运行的能力,如代码可以直接从 ROM运行。
OSEK支持应用 tasks的移植
为了适应汽车实时性的要求 ,实现操作系统的行为 OSEK提供了预定义和文档的说明,
OSEK 允许执行预设的执行参数。