采用OSEK/VDX的电动助力系统设计
详细分析电动助力转向系统(EPS)的原理及其工作流程,采用PIC18F458单片机作为控制器,通过其增强型的PWM脉宽调制模块ECCP控制助力电机,实现EPS系统的助力控制、回正控制、阻尼控制等方式。应用软件采用OSEK OS嵌入式操作系统为平台,将EPS系统进行多任务划分,通过优先级调度达到系统协调运行的目的。
关键词 单片机 电动助力控制 PWM OSEK/VDX PIC18F458 PICOS18
随着电子技术和电机控制技术的发展,电动助力转向(Electronic Power Steering,EPS)系统的研究取得了很大进步。目前,汽车电动助力转向已部分取代传统液压动力转向(Hydraulic Power Steering,HPS)。经过20多年的发展,EPS技术日趋完善,已经取得了相当大的成果,在轻型轿车、厢式车上得到了广泛应用[1]。
传统的软件设计不容易维护,移植性差,且实时性得不到保证。随着汽车工业的不断发展,电子技术在汽车上得到越来越多的应用。为了满足日益复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商的控制模块间的可兼容性,1993年德国汽车工业界联合推出了“汽车电子的开放式系统及接口软件规范”,即OSEK(open systems and the corresponding interfaces for automoTIve electronics)规范,旨在为汽车上的分布控制单元提供一个开放结构的工业标准。1994年法国汽车工业界使用的汽车分布式运行系统VDX(Vehicle Distributed ExecuTIve)和OSEK规范合并,形成OSEK/VDX规范[2]。目前该规范已经成为ISO国际标准(ISO17356)。基于此,本文提出了基于嵌入式实时操作系统的EPS软件设计方法。
1 EPS系统的结构和工作原理
1.1 EPS系统的结构
根据电机安装位置的不同,EPS可分为转向轴助力式、小齿轮助力式和齿条助力式。图1是一个典型电动助力转向系统的示意图。EPS控制系统的主要组成部件[3]:
图1 电动助力转向系统示意图
① 扭矩信号传感器,测量驾驶员作用在转向盘上的力矩大小和方向。
② 车速信号传感器,测量汽车的行驶速度,在不同的车速和方向盘转矩的情况下,会提供不同的助力,以保证EPS系统在低速下灵活,高速下具有较好的“路感”。
③ 助力电动机,是EPS系统最关键的部件之一,助力电动机要求低转速大扭距、转动惯量小、可靠性高、振动小、噪声小,且尺寸小、质量轻。
④ 电磁离合器,主要起安全保护的作用,当EPS发生故障时,电磁离合器会及时切断电动机和转向柱的连接,汽车以传统的机械转向装置进行工作,从而保证行车安全。
⑤ 减速机构,是EPS系统不可缺少的部分,用来产生减速增扭的作用。
⑥ 电子控制单元ECU,主要包括信息处理单元及其外围电路。它是EPS系统的控制核心。控制单元根据方向盘转矩传感器和车速传感器的信号,经过A/D转换和逻辑分析与计算后,发出指令控制电机工作。
1.2 EPS系统的工作原理
虽然EPS的有3种类型,但工作原理是一样的:通过扭矩传感器和车速传感器,进行信号采集,经A/D转换,将信号发送到电子控制单元(ECU)中,单片机根据采集到的车速信号与扭矩信号,并根据相应的控制策略对直流伺服电动机进行实时控制。
根据汽车转向行驶的不同情况要求,EPS按不同的控制方式进行控制,通常有3种基本控制方式。
(1) 助力控制
汽车在低速范围内行驶,方向盘进行转向并离开中间位置时电控单元对电动机进行常规控制;通过计算确定助力电动机的电流,以获得合适的助力转矩,使转向操纵轻便灵敏。
(2) 回正控制
回正控制可以改善汽车的回正性能。汽车在低速范围内行驶转向后方向盘回到中间位置附近时,电控单元使电动机电流迅速减小,以便转向轮迅速回正;在高速时,采用阻尼控制,使电机两端短路,产生与回正力矩相反的回正阻尼,改善转向盘的回正超调。
(3) 阻尼控制
阻尼控制可以衰减汽车高速行驶时出现的方向盘抖动现象,消除转向轮因路面输入而引起的摆振。其原理很简单,即汽车处于高速行驶时,使电动机短路,其端电压变为零,电动机将不提供助力,但由于感应电动势的作用,电动机将产生与其转动方向相反的转矩。此过程等于增加了转向系统的阻尼,驾驶员能够获得适当的路感,不致有发飘的感觉。
2 EPS控制系统ECU设计
EPS系统实现的主要功能是采集扭矩传感器信号、车速传感器信号和电动机反馈电流信号,经控制器中的控制策略和控制算法,通过脉宽调制控制伺服电动机为驾驶员提供转向辅助力。另外,考虑到其应用对象的特殊性,其安全性要求的绝对地位,系统还需要提供许多应急处理方案。
EPS系统的硬件设计主要包括以下一些主要模块:控制器核心系统设计、控制单元接口电路、电动机驱动及其保护电路、电磁离合器控制电路、传感器信号处理电路以及电源系统电路的设计等,如图2所示。在这里主要介绍一下控制器和电机驱动电路。
2.1 控制器
EPS系统的微控制器采用的是Microchip公司的PIC18F458芯片。该系列芯片具有以下性能:
① 16位宽指令,8位宽数据通道,2 MB的程序存储器、4 KB的数据存储器,高达10 MIPS的执行速度。
② 40 MHz时钟输入,4~10 MHz带PLL锁相环有源晶振/时钟输入。
③ 带优先级的中断和8×8单周期硬件乘法器。
④ 捕捉/比较/脉宽调制(CCP)模块:
◆ 捕捉输入——16位,最大分辨率为6.25 ns;
◆ 比较单元——16位,最大分辨率为100 ns;
◆ 脉宽调制(PWM)输出——分辨率为1~10位;
◆ 最高PWM频率——8位时频率为156 kHz,10位时频率为39 kHz。
⑤ 增强型CCP模块除具有以上CCP特性外,还具有1、2、4路的PWM输出,可选择PWM极性,可编程的PWM死区时间。
⑥ 10位,8通道的A/D转换。
⑦ CAN总线模块。
图2 EPS硬件电路结构示意图
2.2 驱动电路设计
电动机控制电路的设计在电动助力转向系统的设计中是比较关键的部分。随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,直流电动机的结构和控制方式都发生了很大的变化,采用全控型的开关功率元件进行脉宽调制(Pulse Width ModulaTIon,PWM)的控制方式已成为绝对主流。在本系统中,电机的控制就是采用的PWM脉宽调制控制方式。全桥双极性驱动电路如图3所示。
PIC18F458单片机的ECCP引脚连接2个驱动芯片IR2110(每个IR2110可控制2个MOSFET),来控制4个MOSFET的导通和截止,从而实现对助力电机的控制。EPS系统需要实现3种控制方式:常规控制、回正控制和阻尼控制。
图3 助力电机驱动电路
3 EPS软件设计
随着嵌入式应用进一步复杂化和对实时性、可靠性要求的提高,为了合理调度多种任务并利用系统资源,基于嵌入式实时操作系统进行嵌入式软件设计逐渐成为了嵌入式系统设计开发的主流。当前嵌入式实时操作系统有数百种,它们各具特色。开放源码的嵌入式实时操作系统在成本和技术上具有独特的优势,并占有越来越重要的地位。本文选择开源的嵌入式实时操作系统PICOS18作为EPS的软件开发平台。PICOS18是按照OSEK/VDX标准实现的实时操作系统。PICOS18是一个多任务可剥夺型微实时内核,非常小巧,占程序空间(ROM)小于1 KB,占数据空间(RAM)仅为7 B,系统代码容量及运行所需的ROM和RAM也非常少;提供了任务管理、定时器管理、事件管理、中断管理等功能;基于优先级进行任务调度,具有16个优先级,系统占用1个,用户可创建15个任务,每个任务最多还可以拥有8个事件[4]。
3.1 应用软件开发
嵌入式实时操作系统将面向功能的应用开发转化为面向任务的应用开发,因此软件开发的过程就是将应用系统按照功能细分为多个任务,然后实现每个任务,并为任务确定合适的优先级;对于实时性要求高的操作,需要编写相关的中断服务程序。
根据EPS的工作原理,可分为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用于任务的配置,因此只能逐句编写。任务的参数定义结构如下:
rom_desc_tsk rom_desc_task={
TASK_PRIO,/* 任务的优先级*/
stack,/* 堆栈地址(16位)*/
TASK, /* 起始地址(16位)*/
READY, /* 初始化时的状态*/
TASK_ID,/* 任务ID*/
sizeof(stack)/* 堆栈大小(16位)*/
};
AlarmObject Alarm_list\[\] = {
/******第1个任务********/
{
OFF,/* 状态*/
0, /*报警值*/
0,/*周期*/
&Counter_kernel,/*与报警相关的计数器*/
TASK1_ID,/*要激活的任务ID*/
ALARM_EVENT,/*传递的事件 */
0/*回调*/
},
…/*其他任务 */
};
Resource Resource_list\[\] = {
{
10,/* 优先级 */
0,/* 任务优先级 */
0,/* 上锁,0表示未上锁 */
}
};
Counter Counter_list\[\] = {
/******第1个计数器******/
{
{
200,/*允许的最大计数值*/
10,/*预分频器*/
100/*最小周期*/
},
0,/*计数值*/
0
}
…/*其他计数器*/
};
4 结论
本文分析了EPS系统的结构、工作原理和3种控制方式。通过PIC18F458单片机的ECCP模块控制电机,实现了EPS系统在各种情况下的助力方式。采用嵌入式实时操作系统,不仅提高了CPU的利用率,确保了EPS系统的实时性要求,还提高了系统运行的稳定性、可靠性以及移植性。
OSEK/VDX是汽车电子开发的国际性标准,采用OSEK/VDX规范开发的实时系统能够提高软件模块的移植效率、实现软件模块的重复利用及在不同电子控制单元之间的通信。采用OSEK/VDX 进行汽车电控单元开发已成为发展趋势。