1 简介
汽车电子化是现代汽车发展的重要标志之一。目前世界每辆汽车采用电子装置的情况已成为衡量这部汽车水平高低的主要标志。为了加强市场竞争能力,国外广泛采用 16~32位微处理器,以及广泛采用更先进的传感器,使汽车的功能从对汽车自身的控制管理扩大到“汽车-人-环境”这样一个大系统的信息获取、处理和控制。
2 汽车电子产品的分类及嵌入式技术应用
按照对汽车行驶性能作用的影响划分,可以把汽车电子产品归纳为两类。一类是车控电子——汽车电子控制装置。汽车电子控制装置要和车上机械系统进行配合使用,即所谓“机电结合”的汽车电子装置。它们包括发动机、底盘、车身电子控制,例如电子燃油喷射系统、制动防抱死控制、防滑控制、牵引力控制、电子控制悬架、电子控制自动变速器、电子动力转向等。另一类是车载电子——车载汽车电子装置。车载汽车电子装置是在汽车环境下能够独立使用的电子装置,与汽车本身的性能并无直接关系。它们包括汽车信息系统(行车电脑)、导航系统、汽车音响及电视娱乐系统、车载通信系统、上网设备等。
汽车电子的技术基础是嵌入式技术。在过去的几十年里,嵌入式技术发展迅速。随着后PC时代的来临,计算广泛的嵌入到应用中去,嵌入式系统将成为未来计算的主要存在方式。应用的牵引和计算环境的变迁推动了嵌入式技术的发展。嵌入式技术与行业的结合又带动了行业的发展。汽车的电子化、信息化是嵌入式技术在汽车行业的应用。
车控电子产品是一个个分布在汽车上的电子控制单元(ECU)、智能传感器(Smart Sensor)等功能单元器件。这些器件通过总线连接在一起组成一个子系统。它们可以以适合自己的协议,如Lin、J1939等进行通信。不同的子系统也通过总线组成更大的网络。其中智能传感器(Smart Sensor)是一个以工业现场总线为基础,以CPU为处理核心,以数字通信为变送方式的传感器和变送器的统一体。与传统的Sensor相比,Smart Sensor增加了数字通信功能,面向网络,具有联网功能。
3 车控电子产品系统平台——OSEK/VDX
为了满足日益庞大复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商的控制模块间的可兼容性。1993年,德国汽车工业界联合推出了汽车电子的开放式系统及接口——OSEK/VDX(Open SystEMS and the Corresponding InteRFaces For AutomoTIve EleCTRonICs)规范,旨在为汽车上的分布控制单元提供一个开放结构的工业标准。OSEK/VDX 规范从实时操作系统RTOS(RealTime Operating System)、软件接口、通信和网络管理等方面对汽车的电子控制软件开发平台作了较为全面的定义与规定。
它所提出的一整套解决方案是未来汽车电子软件开发的发展方向。目前,一些公司推出了符合OSEK/VDX规范的操作系统并得到了OSEK /VDX委员会的认证,如 OSEK Works、OSEKOS、OSEKTurbo等。OSEK/VDX标准包括以下四部分:OSEK/VDX操作系统规范(OSEK Operating System,OSEK OS), OSEK/VDX通信规范(OSEK Communication,OSEK COM), OSEK/VDX网络管理规范(OSEK Network Management,OSEK NM)以及OSEK/VDX实现语言(OSEK Implementation Language,OSEK OIL)。采用符合OSEK/VDX标准的嵌入式实时操作系统可以提高产品代码的复用率、降低开发成本、缩短产品开发周期。使用兼容OSEK/VDX标准的嵌入式实时操作系统的应用架构如图1所示。
图1 兼容OSEK/VDX规范的操作系统应用架构
下面分别对OSEK规范的操作系统部分(OS)、通信部分(COM)、网络管理部分(NM)、实现语言部分(OIL)、运行调试接口部分(ORTI)等进行介绍。
3.1 OSEK OS规范
OSEK OS规范定义操作系统内核的实现机制和应用编程接口(API),包括任务管理机制、中断处理机制、事件机制、资源管理机制、报警器管理机制等及相关标准的应用编程接口。OSEK OS规范的实现机制见本刊网站www.dpj.com.cn。
3.2 OSEK COM规范
OSEK COM规范(OSEK Communication Specification)为汽车ECU应用软件提供了统一的通信环境。通过定义应用软件通信接口以及ECU内部通信和ECU外部通信,OSEK COM规范提高了应用软件模块的可移植性。OSEK COM 提供了多种服务,以方便在任务与任务之间、中断服务程序与中断服务程序之间以及任务与中断服务程序之间发送数据。
OSEK COM 规范的目的是支持应用软件的移植性、重用性和相互合作性。应用程序接口隐藏了内部和外部通信的区别,同样也隐藏了不同的通信协议、总线系统和网络。
OSEK COM中的通信是基于消息的。消息包括了特定应用的数据。消息和消息属性通过OSEK实现语言(OIL)静态配置。消息的内容和使用方法与OSEK COM无关。OSEK COM允许0长度的消息存在。在内部通信情况下,交互层IL(Interaction Layer)使消息数据立即发送到接收方。在外部通信情况下,IL将1个或多个消息压缩成指定的交互层协议数据单元(IPDU),并把它们传递到下层处理,如图2所示。 内部通信的功能性是外部通信功能性的子集。交互层里的消息管理者是基于消息对象的。消息对象存在于发送端的是“发送消息对象”,存在于接收端的是“接收消息对象”。
图2 OSEK COM中消息发送和接收的简单模型
交互层和下层通信的数据被组织称IPDUs,包括一个或多个消息。一个消息必须占据在IPDU中连续的位而且不能被分离,在IPDUs中交叉。在IPDUs中消息被位排列。消息的大小在位中说明。交互层提供了应用程序接口(API)来处理消息,API包括初始化、数据传送和通信管理的服务。在网络上传送消息的服务是非阻塞的,一个发送消息的服务可能不能返回一个最终的发送状态,因为网络中的传送仍在进行之中。OSEK COM为应用程序提供了通知机制来决定传送或接收的状态。