新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于OSEK/VDX的电动助力系统设计

基于OSEK/VDX的电动助力系统设计

作者:燕山大学 臧怀泉 田超 刘敏时间:2008-08-11来源:单片机与嵌入式系统应用收藏

  3 软件设计

本文引用地址:http://www.amcfsurvey.com/article/86793.htm

  随着应用进一步复杂化和对性、可靠性要求的提高,为了合理调度多种任务并利用系统资源,基于进行软件设计逐渐成为了嵌入式系统设计开发的主流。当前嵌入式有数百种,它们各具特色。开放源码的嵌入式实时在成本和技术上具有独特的优势,并占有越来越重要的地位。本文选择开源的嵌入式实时操作系统PICOS18作为的软件开发平台。PICOS18是按照OSEK/VDX标准实现的实时操作系统。PICOS18是一个多任务可剥夺型微实时内核,非常小巧,占程序空间(ROM)小于1KB,占数据空间(RAM)仅为7B,系统代码容量及运行所需的ROM和RAM也非常少;提供了任务管理、定时器管理、事件管理、中断管理等功能;基于优先级进行任务调度,具有16个优先级,系统占用1个,用户可创建15个任务,每个任务最多还可以拥有8个事件[4].

  3.1 应用软件开发

  嵌入式实时操作系统将面向功能的应用开发转化为面向任务的应用开发,因此软件开发的过程就是将应用系统按照功能细分为多个任务,然后实现每个任务,并为任务确定合适的优先级;对于实时性要求高的操作,需要编写相关的中断服务程序。

  根据的工作原理,可分为8个任务。

  (1) Task1——车速信号采集

  扩展任务,用于计算车速。上电运行后Task1处于等待状态, 等待车速计算事件EventSpeed.利用定时器/计数器TMR0模块当计数器溢出时(数量的转速信号脉冲后)产生中断,进入转速中断服务程序,记录脉冲周期总时间,然后设置事件EventSpeed,激活Task1.这时Task1处于就绪状态,在操作系统调度机制(完全抢占式)的管理下,等到就绪队列中优先级高于Task1的任务都运行完成时,Task1运行,根据所记录的脉冲时间和脉冲个数,计算出车速,并进行滤波。执行完后,激活Task2,清除事件EventSpeed,Task1又处于等待状态。

  (2) Task2——扭矩信号采集

  基本任务,用于采集扭矩信号。该任务由Task1激活,执行频率与Task1相同。因为车速信号和扭矩信号是EPS系统最重要的两个参数,所以必须使这两个参数及时地更新,以保证助力模式的选择和助力大小的确定得到及时准确的控制。

  (3) Task3——电流反馈信号采集

  基本任务,用于采集电机反馈电流。该任务由Task5激活,系统只有在助力控制时才会激活此任务。该参数与目标电流的差值,通过PID调节器的控制,使电机迅速提供相应的扭矩,达到助力的目的。

  (4) Task4——故障诊断

  扩展任务,用于故障的监测和诊断。上电运行后,等待消息MsgSpeedErr,确定车速正常;等待消息MsgVoltErr,确定电压正常;等待消息MsgTorqueErr,确定扭矩正常。一旦发生故障,该任务将立即断开继电器,使转向系统处于机械转向状态,避免事故发生。

  (5) Task5——助力模式选择

  基本任务,用于选择助力方式以及确定助力控制方式下的目标电流。此任务由Task2激活,通过车速和扭矩的大小,判断助力模式,在助力控制下通过助力特性曲线得到目标电流。此任务的执行次数与Task1和Task2相同,以保证助力方式和助力大小实时准确。

  (6) Task6——助力控制

  基本任务,助力控制,由Task3激活。通过Task5得到的目标电流,以及Task3电机反馈电流,采用PID调节器进行闭环控制,最后通过PWM脉宽调制控制助力电机。

  (7) Task7——回正控制

  基本任务,回正控制,由Task5激活。当汽车车速很高时,使电机两端短路,产生回正阻尼,减小回正超调;当汽车处于低速时,使电机两端迅速断路,减小电机阻力,使转向迅速回正。

  (8) Task8——阻尼控制

  基本任务,阻尼控制,由Task5激活。阻尼控制用于高速时的各种状态(回正、转向和直线行驶)。回正时,阻尼控制可减小系统超调;转向时,可增加阻力,使驾驶员得到较好的路感;直线行驶时,可减小路面对方向盘的冲击。

  3.2 任务优先级

  PICOS18采用占先式调度方式,即所有任务都是可占先的,每个任务都有一个确定的唯一的优先级,任务越重要优先级越高。由于助力控制(Task6)任务必须在合适的时刻运行,所以Task6优先级最高,回正控制(Task7)、阻尼控制(Task8)次之,其次是故障诊断任务(Task4),其余任务优先级按其激活的执行顺序确定。Task4在开始运行时处于等待状态如未监测到不正常信号则不再执行。Task1、Task2和Task5在按顺序执行完一个循环后,继续响应转速中断,重新执行。这种调度方式不仅能采集到最新的车速信号和扭矩信号,使EPS系统实时准确地提供助力,还能提高CPU利用率,充分利用硬件资源。

  3.3 任务配置(OIL)

  PICOS18通过taskdesc.c定义任务的各个参数,并且是用OSEK/VDX规范中的OIL(OSEK/VDX的实现语言,类似于一个C结构定义)编写的[5].由于PICOS18没有提供GUI用于任务的配置,因此只能逐句编写。任务的参数定义结构如下:

  4 结论

  本文分析了EPS系统的结构、工作原理和3种控制方式。通过PIC18F458单片机的ECCP模块控制电机,实现了EPS系统在各种情况下的助力方式。采用嵌入式实时操作系统,不仅提高了CPU的利用率,确保了EPS系统的实时性要求,还提高了系统运行的稳定性、可靠性以及移植性。

  OSEK/VDX是汽车电子开发的国际性标准,采用OSEK/VDX规范开发的实时系统能够提高软件模块的移植效率、实现软件模块的重复利用及在不同电子控制单元之间的通信。采用OSEK/VDX进行汽车电控单元开发已成为发展趋势。

  参考文献

  [1] 胡建军,李彤,龚为伦,等。汽车转向技术进展分析[J].液压与气动,2006(12):17-20.

  [2] 陈卓,熊忠阳,李银国。基于OSEK/VDX操作系统的任务管理机制设计[J].计算机工程。2006,12(36):82-84.

  [3] 罗玉涛。现代汽车电子控制技术[M].北京:国防工业出版社,2006:174-202.

  [4] 龚黎明,辜承林。基于OSEK/VDX标准的嵌入式实时操作系统PICOS18[J].电子技术。 2004(5):10-13.

  [5] OSEK/VDX.OSEK Implementation Language Version 2.5. 2004[OL].http://www.osekvdx.org.

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭