为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

用实现OSEK_VDX的RTOS进行汽车电控单元开发_于建锋

2014-03-13 4页 pdf 155KB 71阅读

用户头像

is_068081

暂无简介

举报
用实现OSEK_VDX的RTOS进行汽车电控单元开发_于建锋 2004052 用实现 OSEK/ VDX的 RTOS 进行汽车电控单元开发 于建锋 周文华 何文华 邵千钧 (浙江大学能源系,杭州 310027) [摘要] 讨论了现阶段用实现 OSEK / VDX规范的实时操作系统( RTOS)进行汽车电控单元开发的必要性, 介 绍了 OSEK OS 的运行机制和特点, 并对用实现 OSEK / VDX的 RTOS 进行开发的流程和环境作一介绍。 叙词:OSEK/ VDX,实时操作系统,汽车电控单元 Development of Automotive ECU Usi...
用实现OSEK_VDX的RTOS进行汽车电控单元开发_于建锋
2004052 用实现 OSEK/ VDX的 RTOS 进行汽车电控单元开发 于建锋 周文华 何文华 邵千钧 (浙江大学能源系,杭州 310027) [摘要] 讨论了现阶段用实现 OSEK / VDX规范的实时操作系统( RTOS)进行汽车电控单元开发的必要性, 介 绍了 OSEK OS 的运行机制和特点, 并对用实现 OSEK / VDX的 RTOS 进行开发的和环境作一介绍。 叙词:OSEK/ VDX,实时操作系统,汽车电控单元 Development of Automotive ECU Using RTOS in Compliance w ith OSEK/ VDX Standard Yu Jianfeng, Zhou Wenhua, He Wenhua & Shao Qianjun Department of Energy, Zhejiang Univ ersi ty, H angzhou 310027 [Abstract] The necessity of using real time operat ing system( RTOS) , which is in compliance with OSEK/ VDX standard, in modern ECU design is discussed1The features and operating mechanism of OSEK operat ing system( OSEK OS) is presented1And the process and environment of development for OSEK OS is also given1 Keywords:OSEK/ VDX, Real time operating system(RTOS) , Automotive ECU 原稿收到日期为 2003 年 4 月 11日 ,修改稿收到日期为 2003年 6月 27 日。 1 前言 近年来,汽车电控产品的开发出现这样的趋势: 一方面,社会法规和市场需求对汽车提出了越来越 高的排放、油耗、舒适性等性能要求,这迫使电控单 元( ECU )的供应商们采用复杂的高性能 32位处理 器进行电控产品的开发来实现高精度、功能更强、更 复杂的控制系统;另一方面,为了使产品尽早进入市 场, ECU 供应商们纷纷采用实时操作系统进行电控 单元开发,这样虽然要牺牲一部分处理器资源,但却 可以把开发者从复杂繁琐的任务控制、任务定时及 共享资源管理等解脱出来,提高开发效率,缩短产品 开发周期[ 1]。由于任务控制等复杂的细节问题由 操作系统( OS)来完成, 在 OS 平台上开发出来的电 控软件将更易于调试,具有更强的稳定性。 汽车是一个分布式电控系统, 内部包含多个分 布的电控单元。汽车控制的未来是实现整车控制, 这需要在多个电控单元间进行通信,如动力系控制 和自动巡航等控制单元间需要进行通信,协调工作。 现阶段电控单元开发模式的缺陷日益暴露出来: 由 于各供应商采用自己的 RTOS 和进行电控单 元开发,使得电控软件移植效率低,不同厂商的电控 产品互不兼容, 不能实现功能结合。这一方面造成 大量重复开发费用并增长了产品开发周期;另一方 面由于不同厂商实现不同功能的电控单元不能进行 互相通信,整车控制的实现受到了限制。 采用 OSEK/ VDX 规范进行电控单元的开发可 克服上述缺陷。OSEK/ VDX是汽车分布式电控单 元开放式体系结构的工业, 它实现了操作系统 OSEK OS、通信 COM ( Communicat ion)和网络管理 NM( Netw ork M anagement ) 3个方面的标准,隐藏了 底层硬件和底层通信协议的不同而提供给开发者标 准的应用接口 API ( Applicat ion Interface)。在此基 础上开发的电控软件可以方便地进行移植、实现模 块的重复利用以及在不同厂家的电控单元进行交互 操作[ 2]。 OSEK/ VDX 规范主要包括 OS、COM、NM 及 实现语言 OIL( OSEK Implementat ion Language) 4 个部分, 正在通过 ISO 17356 标准[ 3] , 目前的最新 2004 年 (第 26 卷) 第 2 期 汽 车 工 程 Automotive Engineer ing 2004 ( Vol. 26) No. 2 修正版本是 OS 21211、COM31011、NM 21512、OIL 21411,关于 OSEK/ VDX的发展背景可以参考文献 [ 3]和文献[ 4] , COM 和 NM 通常是作为 OS的一个 软件模块被 OS调用[ 5]。 2 OSEK OS的特点 211 标准化应用接口 OSEK/ VDX实现了对 OS 内核、COM 和 NM 接口的标准化[ 2] ,这样可以屏蔽底层硬件结构的不 同而提供一个一致的开发环境(如图 1) , 这是 OS- EK/ VDX的主要贡献。在此基础上开发出来的软 件,跟硬件无关的部分可以直接在不同的ECU 上重 复利用,而把跟硬件相关的部分集中到几个函数中 (图 1中的硬件封装部分) ,可以方便地在不同 ECU 上进行移植; 同时 COM 和 NM 接口的标准化使得 不同厂商的 ECU 能够进行通信。 图 1 OSEK / VDX体系结构 212 高实时性和可确定性 OSEK OS具有很高的实时性,能够满足汽车电控 单元对操作系统严格的实时性要求。其所有的系统对 象(如任务、资源、事件、计时器等)由用户在建立系统 时静态创建,避免了在系统运行时动态创建对象的时 间消耗,这在一定程度上增强了系统的实时性。 OSEK OS 的各种响应时间, 如任务切换、中断 服务响应时间都可以作为参数提供给开发者, 这样 开发者就可以确定任务的执行时间,保证系统满足 实时性要求。 213 静态配置和可裁剪性 OSEK OS中开发者根据系统的功能性要求, 用 OIL 语言对其进行静态配置和剪裁,以满足在汽 车不同电控单元从 8位简单微控制器到高性能复杂 32位微控制器上使用的要求。 很多 OSEK OS 的开发工具中都提供了专门的 上层计算机辅助工具来帮助开发者完成用 OIL 进行系统的静态配置和裁剪阶段的工作, 如 OSEK works的 OIL Conf igurator、OSEKturbo 开发工具中 的 OSEKbuilder,这些工具提供图形用户界面,在此 基础上用户可以很方便地对系统进行描述和优化, 用户的系统描述最后由这些工具生成 OIL 代码。 3 OSEK OS的运行机制 311 OSEK OS的启动 由于在汽车正常行驶过程中 ECU 可能出现重 启, OSEK OS 的启动过程对 ECU 是至关重要的。 OSEK OS支持不同的操作模式( APPMODE)来完成 不同条件下系统的重启。APPMODE是系统的一个 对象,开发者可以在系统生成时定义多个APPMODE (不同的 OSEK OS实现支持的 APPMODE 个数是不 一样的, OSEKworks中支持多达 8个)。每个任务都 属于某个APPMODE,当系统工作于某个 APPMODE 时,只能执行属于该 APPMODE的任务。 OSEK OS 中不需要开发者定义专门的任务在 系统启动后运行(如在通常的 RTOS 中需要写一个 专门的任务在系统启动后来创建其他的任务) , 开发 者只需在系统生成时为每个操作模式指定自动运行 的任务。系统复位后将运行跟硬件相关的初始化代 码,这部分代码是不可移植的,用户可以根据自己的 需要进行编写。这部分初始化代码对引脚状态以及 其他易确定工作条件进行识别, 并在此基础上确定 启动时的操作模式,最后调用 StartOS( OSEK OS的 执行控制函数) ,并把确定的操作模式作为参数传递 给 StartOS函数[ 2, 6]。从图 2中可以更好地理解启 动(重启)过程。 312 OSEK OS的任务管理 OSEK OS 中提供了 4 种任务类型(即所说的 #211#2004 年 (第 26 卷) 第 2 期 汽 车 工 程 Conformance Class的概念) : 两种基本类型 BCC1、 BCC2和两种扩展类型 ECC1、ECC2,图 3表达了它 们的不同属性, 箭头方向表示任务类间的兼容关系。 扩展类与基本类之间的差别在于调度的状态不同, 基本类不具有等待状态。 图 3 BCC1/ BCC2/ ECC1/ ECC2 的不同属性和兼容关系 在调度机制上, OSEK OS提供了抢占式、非抢 占式调度机制以及两种调度机制的混合(称为混合 调度机制)。抢占式调度机制能够保证系统的实时 性,但需要很大的系统开销(任务切换的堆栈 RAM、 完成任务切换的 CPU 时间大) ; 而非抢占式调度需 要很少的系统开销(任务结束时进行调度,不需要任 务切换的 RAM 开销) ,对于一些必须不能打断的任 务及可以在一个执行周期内完成的任务, 非抢占式 调度往往更有意义。 OSEK OS允许开发者这样安排混合调度机制: 定义一个任务组,优先级大于组中最大优先级的任 务用抢占式调度机制, 而优先级低于组中最大优先 级的任务将用非抢占式调度机制[ 2, 5]。 313 OSEK OS的资源管理 OSEK OS 提供了事件 ( EVENT )和资源( RE- SOURCE)两种对象来实现任务间的协调及任务对 共享资源的互斥访问[ 2]。OSEK OS在资源管理中 采用了悬挂优先级机制来防止多个任务请求访问资 源时容易出现的优先级倒置(即高优先级的任务等 待低优先级任务的状态) ,并把虚拟优先级扩展到中 断对共享资源的访问上。OSEK OS 保证任务对资 源的访问不会出现等待状态。事件一般用来实现扩 展任务( Extended Task)间的协调工作, 它可以让某 个任务在适当的时候进行等待。 4 基于 OSEK 标准的汽车电控系统 基本开发过程 采用 OSEK OS进行 ECU 开发的基本过程如 图4所示[ 2] ,包括 OIL 配置文件、用户应用程序的 开发以及用一些第三方工具( dSPACE/ T argetL ink、 Matlab/ RTW 等)自动生成的控制算法代码。 图 4 OSEK OS 下的基本开发过程 OIL 配置文件描了 OS 在不同 CPU 和应用中 的配置, 亦即允许用户根据应用需要对 OS 进行裁 剪。OIL 文件包括两个部分[ 2, 5] : ( 1)实现定义 这部分是特定 OSEK OS 实现 中的 OIL 标准对象类型( object type)以及对象属性 的定义,相当于 C+ + 语言中类的定义。 ( 2)应用定义 这部分是针对不同的应用, 用实 现定义中定义的标准对象类型来定义需要的系统对 象( Object) ,相当于 C+ + 语言中用类来定义对象。 OIL 中的标准对象包括 CPU、OS、APPMODE、 RESOURCE、 TASK、 EVENT、 ISR、ALARM、 COUNTER、COM、MESSAGE、IPDU、NM。实现定 义部分可以只实现部分标准对象的定义, 但对每一 个包含的对象必须定义所有 OIL 规定的标准属性, 另外可以添加一些具体应用需要的非标准属性。 汽车ECU 软件很大一部分是控制算法代码,一 些具有自动代码生成功能的工具, 如 Matlab/ RTW、 dSPACE/ Targ etLink 等的发展允许开发者直接从流 程图生成目标处理器代码。支持的目标处理器包括 C166、MPC555以及 TI 公司的 DSP 等。 5 符合 OSEK 规范的 RTOS 及其开 发环境简介 511 OSEKworks OSEKworks是Windriver 公司开发的完全符合 OSEK/ VDX 标准的 RTOS。OSEKworks 支持 16 和 32位 MCU , 如 Inf ineon 的 C16X、TriCore, MO- TOROLA的 68HC12、Pow erPC等[ 7]。 Windriver 公司为 OSEKworks提供了开放式 集成开发环境( IDE) Tornado for OSEKworks, 除了 本身提供的编译、图形化调试以及诊断、实时分 #212# 汽 车 工 程 2004 年 (第 26 卷) 第 2期 析、OIL 配置等强大功能外, 它还提供了与建模、仿 真、快速原型以及自动代码生成等其他第三方上层 工具集成的应用接口( API)。在此基础上能够实现 把汽车电控产品开发的各个过程集中到一个开发环 境中, 形成新的开发流程[ 8, 9] (图 5) , 与传统的开发 流程相比,能够提供开发效率,缩短开发时间。 图 5 To rnado for OSEK 集成开发 环境下实现的新开发过程 512 ERCOSEK ERCOS EK是 BOSCH 公司在其发动机管理系统 中用的 RT OS [ 7] , 由 ETAS 公司开发。它把汽车安 全性要求放在第一位,并具有可移植性和可剪裁性, 是专门用于汽车电控的 RTOS。 ETAS为 ERCOSEK的开发提供了具有控制算 法建模、OIL 配置、自动代码生成等强大功能的集成 开发环境 ASCET - SD、配置环境 ESCAPE 以及 OIL 配置工具 ERCOSEK- OIL[ 7, 10] ,支持的目标处 理器主要有 Inf ineon的 C16X、T riCore以及 Motoro- la的 MPC555、68HC12等。 另外还有 NucleusOSEK、OSEKturbo、EMER- ALDS- OSEK 等符合 OSEK 规范的 RTOS。这里 不再介绍。 6 结论 ( 1) OSEK/ VDX是汽车 ECU 开发的新的国际 性标准,采用实现 OSEK/ VDX规范的 RT OS 进行 ECU 开发能够提高软件模块的移植效率、实现软件 模块的重复利用及在不同厂商 ECU 间的通信。 ( 2)由于功能性等方面的要求,现阶段汽车电控 单元的开发需要采用 RTOS来减轻开发任务、缩短 开发周期。OSEK/ VDX规范已有很成熟的实现,并 且有功能强大的开发环境, 采用 OSEK OS 进行汽 车电控单元开发已成为发展趋势。 参考文献 1 Andy Coombes. Evaluat ing the Use of an RTOS to Reduce a Veh-i clecs Bill of Material and Ensure T iming Correctness. SAE Paper 2002- 01- 221 2 OSEK/ VDX Specifications: OS version 2. 2. 1, OIL version 2. 4. 1 3 Uw e Kiencke and Carsten Thierer. T he OSEK/ VDX Standard for Automot ive Applicat ion- Current Status. SAE Paper 2000- 01- 0385 4 OSEK/ VDX Specif icat ions: COM 3. 0. 1, NM2. 5. 2 5 Joseph Lemieux. Programming in the OSEK/ VDX Environment . CMP BOOKs 6 Lotz Koster, etc. Connect ing Simulink to OSEK: Automat ic Code Generat ion for Real- time Operat ing S ystem with T argetLin k. SAE Paper 2001- 01- 0024 7 Chistof Hammel. A Common Softw are Architecture for Diesel and Gasoline Engine Cont rol Systems of th e New Generat ion EDC/ M E ( D) 17. SAE Paper 2003- 01- 1048 8 Neale Foster. T he Complete OSEK Development Plat form: Auto- mat ic OSEK Code Generat ion , an OSEK Operating System and Tools Development Plat form. SAE Paper 2000- 01- 2583 9 OSEKw orks datasheet . W indRiver 10 ERCOSEK V4. 1 user. s guide. ETAS GmbH #213#2004 年 (第 26 卷) 第 2 期 汽 车 工 程
/
本文档为【用实现OSEK_VDX的RTOS进行汽车电控单元开发_于建锋】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索