综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章汽车电子正文
 
基于OSEKturbo实时操作系统的ABS设计
发布日期:2008-08-18 作者:赵向阳 郑太雄 陈俊华 来源:微计算机信息

【摘  要】:汽车防抱死制动系统(ABS)是一种能够有效防止汽车制动过程中侧滑和甩尾现象发生的主动安全装置。在分析OSEKturbo内核结构和运行机制的基础上,采用加减速度门限辅助参考滑移率的汽车防抱死制动控制系统(ABS)控制策略,设计了基于OSEKturbo 实时操作系统(RTOS)的ABS控制算法。利用MC9S12DP256单片机,针对某款重型载重车,设计开发了ABS系统的ECU,然后在自行开发的汽车ABS仿真平台上进行试验,取得了较好的试验结果。 
【关键词】:OSEKturbo  防抱死制动系统(ABS) 控制策略 MC9S12DP256

1前言

为了满足日益庞大复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商的控制模块间的可兼容性。1993年,德国汽车工业界联合推出了汽车电子的开放式系统及接口——OSEK/VDX(Open Systems and the Corresponding Interfaces For Automotive Electronics)规范,旨在为汽车上的分布控制单元提供一个开放结构的工业标准。OSEK/VDX 规范从实时操作系统RTOS(RealTime Operating System)、软件接口、通信和网络管理等方面对汽车的电子控制软件开发平台作了较为全面的定义与规定[1]。它所提出的一整套解决方案是未来汽车电子软件开发的发展方向。另一方面:汽车上出现了更加复杂和精确的控制器,同时开发厂商也要求缩短产品的开发周期,能更快推出更新的电控技术。由于实时操作系统(RT0S)平台能有效的管理复杂繁琐的任务,同时在其平台上开发的控制软件更加可靠和稳定,于是在汽车控制上面得到更多更广的应用。

本文正是考虑到嵌入式实时操作系统OSEKturbo的一系列优点,利用其高效的运行机制和丰富的资源,结合硬件平台MC9S12DP256自行开发了ABS控制器,试验证明ABS控制效果理想。

2OSEKturbo操作系统简介

2.1OSEKturbo的任务调度机制

OSEKTurbo把任务分为基础任务和扩展任务。基础任务状态包括:就绪态、运行态和挂起态。任务切换只发生在这三种状态之间:扩展任务除了具有基础任务的三种状态外,还有等待态,并支持事件机制[2]如图1所示。

             

图1、 任务状态模型

处于就绪态的任务由调度程序调度运行,OSEKTurbo采用静态优先级调度策略。任务的优先级在系统生成的时候进行静态分配,高优先级的任务先处理,低优先级的任务后处理。OSEKTurbo中一个优先级只能对应一个任务。此外,任务可分为可被占先任务和不可被占先任务。对不可被占先的任务而言,一旦任务开始运行,就不会被占先,只有到达其调度点时才发生调度,程序设计员可以预知调度点;可被占先的任务,由于中断可能激活更高优先级的任务,所以任何时候都有可能进行调度。使用这两种任务可使程序设计具有更高的灵活性。

2.2OSEKturbo的资源管理

资源管理用来调节同时的几个任务和中断对于资源的享用,例如内核的服务、内存或者硬件等。OSEKturbo采用了一种叫做优先级天花板协议,它规定:当任务对资源加锁时,任务的优先级暂时被设定为该资源的优先级上限;当任务释放资源时,任务的优先级还原为它定义的静态值。这样即使优先级较低的任务对资源加锁时,其他优先级较高的任务不会抢夺使用权,不会发生优先级反转和死锁。

2.3OSEKturbo的警报和中断

前面提到汽车电子控制最典型的特性就是实时性,因此系统必须有基于时间或其他计数器的处理机制,来处理定时和循环任务。为此,OSEKTurbo提供了警报机制,警报可以基于系统时钟,也可以基于其他的某种计数器。当计数器到达警报设定值时被触发。警报触发后可以激活任务也可以为某一任务设置事件,或者执行一个警报回调程序,具体可由用户在系统生成时静态定义,但警报值是动态设置的,可以是相对值或者是绝对值,也可以设为循环警报来激活周期性任务[3]

汽车控制系统要求对实时输入做出快速反应。在OSEKTurbo操作系统中,由应用程序开发者编写的中断服务程序(ISR)与系统封装在一起,这样有利于保护任务和系统状态。OSEKTurbo操作系统把中断处理程序分为两类:(1)中断服务程序不会调用系统服务;(2)中断服务程序可以调用部分系统功能,如激活任务、设置事件、设置警报等,因此,它可以激活更高优先任务。

3硬件设计

ABS控制器MCU采用的是Freescale 16Bit单片机MC9S12DP256, 汽车ABS控制器采集四路轮速输入信号,每路占用ABS控制器(ECU)的2个I/O口,轮速传感器信号经过整形滤波变换为比较标准的脉冲信号,利用MCU的四个捕捉口进行捕捉,从而计算出轮速。输出为4路电磁阀控制信号,每路占ECU的2个I/O口。另外设计了故障检测电路。预留了CAN接口电路以备扩展到整个车身网络,预留了开关信号输入输出口以用于ABS刹车信号输入和程序调试。硬件原理图如同2所示。

图2、 ABS硬件原理图

4软件设计

4.1、ABS控制算法

成熟的ABS产品几乎都采用逻辑门限的控制方式。文献[4]用减速度门限与参考滑移率,构成控制逻辑,把滑移率调整在峰值附着系数附近波动。文献[5]用车轮加减速度门限对制动压力进行调节,其最终目的也是调节滑移率。本设计参照Bosch公司开发的逻辑门限控制策略,控制逻辑如图3所示。

图3、 ABS算法逻辑

图中-a为车轮角减速度门限值,+a和+A分别为第一、第二角加速度门限值,S1和S2分别为第一,第二参考滑移率门限值。

  由图可知,开始制动时,轮加速度小于-a,这时进入减压阶段,直至轮加速度回升至+a,这时滑移率若仍处于小于S1阶段相应的逻辑控制为增压,从而引起滑移率的增加,进入下一循环的控制。算法设计上根据路面信息,我们设置了第二轮加速度门限+A。

下图是根据图3简化的ABS算法流程图。

图4、 ABS算法简化流程图

4.2基于OSEKturbo 的系统级任务块设计

本设计采用OSEK Builder软件对操作系统进行配置,利用Codewarrior软件环境进行应用程序的开发。

图5、 任务结构关系框图

   系统有5个任务分别是初始任务Initask,速度计算任务Driver-speed,逻辑算法任务Lg,电磁阀输出任务Driver-out,低速任务Low-task。整个任务状态框图的起点是Initask,它的作用有两个:①在上电时检测电磁阀有无故障,有故障立即报警;②不停的监测轮速,由轮速变化来判断汽车是否开始制动,是否需要ABS控制算法起作用。本文采用了多次计算联合判断的方法。不停的检测轮速,直到连续三次计算得到的加速度(带有正负号)小于门限值时,进入算法。

第一次进入算法时,Initask将最后一次的轮速和计算所得加速度以消息的形式传递给Lg任务。Lg任务包含了图5中大部分顺序执行的模块。Lg接收到轮速消息后,计算加速度、车速,再根据各种门限得出最后的控制命令给Driver_out任务。Driver_out根据控制命令消息,驱动电磁阀:增压,保压,或减压,……。

第一次电磁阀控制输出后,第二次循坏开始。此时,Initask停止工作,直到车辆停下来之后才会被再次激活。从此刻起,轮速的检测工作交由Driver_speed完成,由它将装载有轮速数据的消息Mess_wheelw传递给Lg任务。如果Driver_speed发现车速比较低,此时汽车已经被制动到了低速,算法就该完成任务,退出到Low_speed任务中,进行最后一次增压控制,然后重新激活Initask,不断判断是否该进入算法。整个任务结构运行过程如上所述,可以看到,部分任务都由另外一个任务执行完成时发出的消息的激活的。所以这部分任务可以使用非抢占式类型。但当电磁阀控制方式为一边计算一边控制时,其它负责计算的任务(包括轮速采集任务)都必须能够被抢占,所以,将任务都配置为抢占类型,电磁阀控制任务Driver_out优先级最高,其他任务按运行中的先后顺序设置优先级大小。

仿真试验

    为了加速ABS新产品的研制,我们采用FPGA技术结合实际车辆的被控制数学模型,通过基于SOPC的软硬件协同开发技术,设计了硬件在回路仿真系统用以匹配ECU的控制器的性能参数。仿真系统利用该硬件在回路仿真器模拟一个实际的车辆,在测试过程中保证仿真的实时性以及加入一些真实的部件,负载,并且模拟出一些故障,从而实现对ABS ECU 的仿真测试,为改进和提高ECU的性能提供了科学且准确的数据。

本文设计的ABS控制器在上述仿真平台上的控制效果如下图:

图6、速车速虽时间的变化曲线图   

 图7、轮速车速虽时间的变化曲线图

仿真平台给出的初始车速和轮速为32(m/s),由上图可以看出车辆在制动过程中较好的防止了抱死产生,较快的完成了汽车制动。由于四个车轮的控制效果基本相同,这里只给出了其中一个车轮的轮速曲线和相应的电磁阀曲线,观察轮速曲线对应的电磁阀变化可以看出,当轮速在下降阶段,电磁阀的状态变化是:增压-保压-减压;当轮速回升阶段,电磁阀的状态变化是:减压-保压-增压。轮速的变化和电磁阀的这一周期变化规律基本是对应起来的。采用OSEKturbo嵌入式实时操作系统,提高了CPU的利用率,满足了系统对实时性的严格要求,提高了ABS系统运行的稳定性和可靠性。

参考文献:

[1] OSEK/VDX Operating System Version 2.1 revision 1. 3. November 2000

[2] OSEKturbo OS/12 v.2.2.2.  Technical Reference.2003

[3]Suk-Hyun Seo and Sang-won Lee,Analysis of Task Switching Time of ECU Embedded

   System ported to OSEK(RTOS), SICE-ICASE International Joint Conference 2006, Oct. 18-2 1, 2006 in Bexco, Busan, Korea

[4]谭刚平,等.汽车ABS逻辑门限值控制策略研究.西南林学院学报.第26卷第4期.2006

[5]孙仁云,等.基于门限值控制的汽车ABS控制器的研制.西南交通大学学报.第38卷第4期.2003

[6] 吴振纲,陈虎.PLC的人机接口与编程[J].微计算机信息,2005,8-1:21-23。


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
谢谢,现在还没有相关信息...
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号