燃油内燃机电控系统开发概要设计

2020-09-10 07:22王玉彪
内燃机与配件 2020年15期
关键词:硬件设计

王玉彪

摘要:本文简要分析了国际、国内燃油发动机电控系统(ECU)研发与生产现状,以实例方式描述了发动机电控系统硬及软件开发方法及注意事项,从整体上勾勒出了发动机电控系统开发的轮廓。

关键词:汽车电子;发动机电控制系统;ECU;硬件设计;固件编写

0  引言

为了满足越来越严格的排放法规要求,同时提高汽车的动力性、燃油经济性和舒适性,发动机电控系统起到了越来越重要的作用。国际上,汽车发动机电控系统的发展模式日趋成熟,国际知名品牌汽车厂商都有专业化分工的汽车配件厂商,为其提供全套的汽车电子配件产品。在国内,汽车消费市场的飞速增长与自主开发汽车电子产品的空白形成鮮明的对比,国内合资厂商生产的主要车型,其汽车电子配件产品包括汽车发动机电控系统基本由外商垄断;而致力于发展民族品牌的汽车制造商,采用国产发动机在配套电子控制系统时,也多是委托国外企业提供配套产品。我国汽车电子产品开发和生产还处于起步阶段,具有极大的发展潜力和空间,汽车发动机电控系统的开发与应用已逐渐从过去的院校和研究机构的研发向以企业为主导并以产业化为目标的局面发展。

本文的目的是厘清发动机电控系统开发过程,立足于实践,选取一些典型模块做为电路设计、软件开发的样例,用来解析发动机传感器、ECU及发动机电控器件的工作原理,掌握传感器输入调理电路和输出控制电路设计方法,了解ECU固件编程过程。

1  总体开发思路

发动机电控系统开发可分为两大部分,分别为硬件电路设计和固件(软件)开发,这两部分工作是紧密关联的。

硬件电路设计主要有电源电路、输入信号的调理和采集电路、MCU基本外围电路、输出控制电路和输入输出通信接口电路。

固件开发主要有固件开发环境搭建、MCU系统时钟初始化、输入输出端口初始化、串行通信接口的初始化、时序控制和核心算法代码实现。

发动机电子控制系统可分为信号输入电路(各种传感器信号处理)、电子控制单元(ECU)和输出控制电路三部分,如图1所示。

图1列出了发动机常用的信号采集和输出控制器件,还有一些采集和控制器件未列出,如自动档系统的档位信号、空调开关信号、启动开关信号、助力转向开关信号、巡航控制开关信号等,但处理流程大致相同,即信号输入采集——ECU单元处理——输出控制电路响应。

电控系统由底板和子板构成,子板上有可编程MCU器件,编写好的固件可以通过左侧的串口下载到MCU中,右侧端口用来连接发动机上的各类传感器和电控器件。

ECU电路可分为三部分,底板主要是输入电路、输出电路及核心板接口。核心板主要是MCU电路。

在开发ECU时,各单元电路侧重点各有不同,下面分开讲述。

1.1 信号输入电路

发动机上安装的传感器种类较多,传感器采集到信号需要经过输入电路处理才能被MCU使用,传感器输出的电信号可分为三种,分别是电压信号、脉冲信号和开关信号。

①电压信号:输出的电压信号范围为0~5V,用来表示连续变化的量。②脉冲信号:脉冲信号电压范围也是0~5V,一般用来计数或同步。③开关信号:一般用高低电平表示导通和断开的状态。

1.2 核心控制器(MCU)选型

发动机电控系统的核心控制器件是MCU,就是常说的单片机系统。目前在汽车电子控制领域最常使用的是飞思卡尔(Freescale)单片机,该系统单元机已经被恩智普收购。早期使用16位MC9S12系列单片机较多;具体选型时可根据硬件采集种类和数量、固件代码处理需要的Flash、RAM大小及运算速度需求来确定。在汽车电子领域,目前使用飞思卡尔32位MCU较多,也可以选用意法半导体出产的STM32系列的MCU。

1.3 输出控制电路

输出控制按工作原理大致可分为三类,分别是继电器类、旋转电机类和脉冲类。例如,电子点火线圈是脉冲类的,怠速控制阀、节气门控制阀等为电机类,油泵继电器、电子喷油器则为继电器控制类。

2  硬件电路设计

硬件电路设计大致可分为三个部分,分别是数据采集及调理电路(即信号输入部分)、MCU基本单元和输出控制电路。

2.1 数据采集及调理电路设计

数据采集及调理电路主要解决信号转换、噪声抑制和A/D采集等问题。在器件选型时要考虑功耗、频率响应、噪声系数、耐压值和高低温适应范围等。为了便于MCU处理,还需要考虑该信号如何被MCU采集。我们以冷却液温度传感器为例,说明输入信号的处理过程。图2是常见的冷却液温度传感器实物图片。

该传感器金属部分直接与冷却液接触,可准确测量冷却液的当前温度,从解剖图可看出,该器件相当于一个电阻器件,其工作原理就是将温度变化,转变为电阻值变化;那MCU怎么来采集阻值变化呢,很简单,就是把阻值的变化先转换为电压的变化,然后MCU对该电压进行采样就可以了。

下面来具体看一下冷却液温度传感器信号处理电路,如图3所示。

红框中的电阻即为温度传感器的电阻,参考电压Vref经R7与温度传感器电阻串联分压,通过C6、R8和C7滤波后送给MCU(AD0-1端)采样。通过分析电路知道,当温度发生变化时温度传感器的电阻值将跟着线性变化,经分压后采样点的电压值也跟着发生变化,经过MCU的内部A/D电路的采样,就可得到一组当前温度下的采集值,这样就完成了模拟量到数字量的变换,得到的数字量便于单片机处理和传输。对模拟量进行A/D采样后再进行数字化处理是输入电路使用最多的处理方式,其它类型输入如脉冲输出、开关量输入,数字化处理相对来说要简单些,直接使用单片机的计数器计数或判断GPIO端口信号有无即可。

2.2 MCU电路设计

MCU设计主要是最小系统设计,即根据MCU型号配备必要的外围器件,保证MCU能够稳定运行;包括晶体振荡电路、调试接口和基本的电源供给电路。

MCU的每个供电引脚均有一个0.1uF的滤波电容,用于降低干扰信号的影响;晶振电路按照典型电路设计,确保晶振能够稳定启振;外接了BDM调试接口,方便程序的调试和下载。本电路图中,除了最小电路外我们也将外围一些信号引入到MCU,比如冷却液温度采集信号AD0-1,已经接入到MCU的PAD0引脚。

2.3 输出控制电路设计

输出控制电路需要根据具体的电控器件来确定。例如点火线圈驱动电路必须满足高耐压和大电流的要求,而怠速阀控制在满足电流输出要求的情况下,还需要满足时序要求。图4是实际的怠速阀控制电路。

图4中,IAC1、IAC2和IACEnb来自于MCU,X2、X3、X4、X5分别连接四线怠速阀的相应接线。控制逻辑由MCU运算后得到,电路输出电流由电机专用控制芯片UDN2916LB来保证。

硬件电路中还包括串行接口设计,这种接口电路较为通用,在这里就不讲述具体电路了。

3  固件开发

固件开发分为以下几个部分:一是MCU初始化部分,即让MCU运行起来。其中还包括输入输出接口初始化,这部分要根据输入或输出信号要求,对MCU的相应接口进行初始化。比如一些接口要初始化A/D采样接口,把模拟量变为数字量便于MCU处理,一些接口初始化为通用的GPIO接口,还有些接口要初始化为串口通信接口等。二是驱动程序编写。在初始化输入输出接口后,必须对这些接口编写驱动程序,保证MCU能够正确读入或输出相应的信号或数据。三是在以上两个工作完成的基础上实现控制逻辑,即常说的控制算法的实现。这部分工作必须在深入理解发动工作原理的基础上,读取发动运行时的相关参数,并根据参数情况,完成逻辑控制,使发动机平稳工作。

3.1 MCU初始化工作

主要工作有:MCU时钟初始化、通用输入输出端口(GPIO)初始化、A/D通道初始化、串行通信端口(USART)初始化、PWM输出端口初始化。该程序用于完成MCU时钟初始化工作,初始化代码在INIT_PLL子函数中,在主函数main()中调用了该初始化程序。在程序开始部分,使用宏定义方法定义一些常量,以方便在程序中使用;主程序中为保证初始化代码不被中断干扰,屏蔽了中断。解读程序时我们发现子程序称作锁相环初始化,对照硬件MCU最小系统电路可以看到,时钟电路就是在MCU外部增加了一个无源晶体,并且该晶体频率是8MHz,远达不到MCU运行主频为32MHz或40MHz频率;实际上MCU的主频来自内部的PLL电路,外部晶体与MCU内部振荡电路产生8MHz频率后,没有直接做为主频使用,主要原因是振荡电路产生的频率稳定性不够,必须通过PLL电路处理且倍频后才能做为MCU主频使用,所以初始化锁相环就是初始化MCU的时钟系统。

3.2 输入输出接口驱动程序编写

输入输出接口驱动主要有:定时器驱动程序、GPIO驱动程序、A/D采样驱动程序、D/A变换驱动程序、PWM驱动程序和串行通信驱动程序。

在这里有必要区分一下初始化代码与驱动代码不同之处。由于嵌入式MCU硬件引脚有限,每个引脚都有复用功能,比如可以做为输入引脚也可以做为输出引脚,还可以用做特殊功能引脚使用;初始化代码作用就是确定硬件引脚的输入输出功能、运行时钟分配和工作参数配置;而驱动程序则是完成如何实现输入或输出功能。一般初始化代码只在程序运行前调用一次,而驱动程序可以在程序任何需要的地方调用。

采样通道参数由变量char s传入,根据s不同确定具体采样哪个通道。当s为1时采样通道AD01,就是前面提到的冷却液温度值,当s为2时采样通道AD00值。每次采样启动后,都需要判断采样寄存器状态,以确定采样是否完成。当采样完成后,返回采样值AD_data给调用程序。

3.3 发动机控制逻辑代码实现

主要有点火时序控制、燃油量控制、怠速运转控制、加速加浓逻控制、氧传感器处理和爆振传感器处理等代码。

ECU开发的核心算法代码以发动机曲轴传感器的同步信号、发动进气歧管压力、冷却液温度等传感器输入数据为参数,以内燃机工作原理、多缸发动机点火及喷油时序等做为算法的基本依据,以标定参数表(燃油表、点火提前角表、空燃比表等)为基准数值,以实时、高效、准确逻辑运算为目标,以电控器件为控制对象,精心编制出的一套逻辑代码,用于控制发动机处于最佳工作状态。可以看出这部分程序是ECU开发重点和难点,也是汽车厂家核心竞争力的体现。发动机控制逻辑代码只与驱动程序开相关,与硬件电路相关性较低,可由更擅长逻辑代码开发、对内燃机工作原理更熟悉程序员编写实现。

4  硬软件联调

由于嵌入式开发中软件和硬件的高度相关性,在发动机电控系统开发过程中,硬件和软件联调贯穿于整个开发过程。在硬件单元电路设计时要和软件模块设计相互联调,以确定硬件单元电路和软件模块程序的正确性。在硬件整体电路和软件整体代码设计完成后,还需要进行整体联调,以验证核心算法的优劣和总体时序的正确性。在联调过程中发现问题需要及时修改然后再验证,没问题了再进行下一单元电路设计和下一段代码编写,避免问题积累,增加整体调试难度。

在固件编写规划时,还需要注意要留有MCU读写Flash的接口,用于读写发动机标定参数,如燃油表、点火提前角表、空燃比表等,这部分数据存储在MCU内部或外部Flash中,永久保存且掉电不丢失。在标定发动机时可以随时修改这部分数据,修改数据在重启MCU即可生效,以方便燃油发动机标定参数的确定,降低标定数据与固件程序的耦合性。

5  综述

本文较为全面地描述了燃油发动机电控系统的开发过程,也勾勒出了发动机电控系统开发的清析轮廓,可以看出发动机电控系统的开发有一定的工作量,但并不是遥不可及,相信有实力的厂家或研究单位,组织和管理好开发团队,做好顶级设计和任务分工,一定可以开发出一套满足实用要求的燃油发动机电控系统。

參考文献:

[1]刘胜吉,曾瑾瑾,李崇尚,等.点火提前角对通用小型汽油机缸内燃烧及排放的影响[J].内燃机工程,2016(5).

[2]邵千钧,何文华,熊树生.基于CMAC的点火提前角控制怠速稳定性的研究[J].内燃机学报,2005(4).

[3]邵千钧,何文华,卫忠星,等.多次点火提高LPG发动机点火可靠性的研究[J].内燃机工程,2005(4).

猜你喜欢
硬件设计
基于MPC5634的混合动力汽车整车控制器硬件设计
基于STM32的家庭智能家居设计
机场行李系统输送线PLC硬件和程序设计
电力参数监测系统研究
自主巡航的四轴飞行器的硬件设计与实现
基于CAN总线的智能微喷灌监控系统中下位机的硬件电路组成与设计
计算机硬件设计安全问题分析