基于VC++的发动机ECU测试系统的研究与设计
电子控制单元ECU(Electronic Control Unit),又称"行车电脑"、"车载电脑"等。从用途上讲则是汽车专用微机控制器,也叫汽车专用单片机。它和普通的单片机一样,由微处理器(CPU)、存储器(ROM、RAM)、输入,输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成。
电子控制单元的功用是根据其内存的程序和数据对空气流量计及各种传感器输入的信息进行运算、处理、判断,然后输出指令,向喷油器提供一定宽度的电脉冲信号以控制喷油量。电控单元由微型计算机、输入、输出及控制电路等组成。
在电子控制单元中CPU是核心部分,它具有运算与控制的功能,发动机在运行时,它采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。它还实行对存储器(ROM、RAM)、输入/输出接口(I/O)和其它外部电路的控制;存储器ROM中存放的程序是经过精确计算和大量实验取的数据为基础,这个固有程序在发动机工作时,不断地与采集来的各传感器的信号进行比较和计算。把比较和计算的结果控制发动机的点火、空燃比、怠速、废气再循环等多项参数的控制。
电子控制单元是汽车发动机的核心部件,其软硬件的可靠性将直接影响发动机运行的稳定性、排放性和车辆行驶的安全性,因此,ECU的性能检测至关重要。ECU的检测系统是将计算机仿真技术与汽车检测技术相结合,实现发动机ECU工作环境的仿真模拟以及各输出信号的采集与分析。
其信号模拟部分可用于汽车的故障检测,在怀疑某个传感器出现故障时,可用ECU模拟系统相关信号代替原传感器信号,检测故障是否消失,并判断故障所在。此外,还可进行ECU工作状况的检查以及学习ECU在发动机不同工况下对喷油和点火的控制方式。
1 系统硬件设计
发动机ECU测试系统可以根据需要模拟不同转速下的曲轴位置信号,冷却液温度信号、进气温度信号、空气流量信号、节气门位置信号、氧传感器信号等,并将这些信号输入真车发动机ECU,再采集ECU输出给执行器的信号并加以分析。硬件结构如图1所示。
控制器由飞思卡尔(Freescale)公司的MC9SDG128微控制器担任,该16位控制器拥有丰富的I/O接口以及SCI/SPI/IIC等总线控制器,操作信号通过串行接口发送和接收。MC9S12系列单片机是MC68HC12系列单片机的更新替代产品。这种单片机的中央处理器CPU12由以下三部分组成:算术逻辑单元ALU、控制单元和寄存器组。CPU外部总线频率为8 MHz,内部运算速度可达25 MHz。寻址方式有16种。内部寄存器组中的寄存器、堆栈指针和变址寄存器均为16位。它具有很强的高级语言支持功能。
电源管理电路需产生+5 V以及±12 V稳定电压,为降低成本电源部分采用线性工频变压器,输出端分别经LM7812、LM7805和LM7912分别将电压稳压至+12V、+5V和-12V。
数控电位器采用的是X95840,它是InterSil公司出产的低噪声、低功耗、两线制8位数控电位器。DAC变换器采用的是AD5624,它是Anal-og Device公司12位效模转换器,最高频率可达5 MHz。运算放大器采用的是AD824,它是将DAC输出的四路0~5 V电压放大至-12~+12 V。
系统产生的信号需要经过电平变换,转换成RS-232电平,与计算机通信。这里采用MAX3232为核心电平变换电路。其原理图如图2所示。
2 系统软件设计
本系统的编写和调试采用的是Microsoft公司的VisualC++软件。Visual C++因其拥有方便易用的AppWizard、ClassWizard和丰富的可视化资源编辑工具,成为人机对话界面设计中使用最广泛的平台之一。Visual C++拥有强大的集成开发环境,在此环境中用户可以方便的进行项目管理、编写C++源程序、编译、改错,更重要的是,Visual C++还提供了一套MFC(Microsoft Foundation Classes)的程序类库。
其控制流程如图3所示。
2.1 信号模拟
信号模拟是为发动机ECU产生各种必要的模拟信号,这些信号等效于汽车传感器在不同工况下的输出信号。系统提供两种生成这些信号所需要数据的方法可供选择。一种是由手动设置给出,一种是选择关联设置。关联时,秒表开始计时,各信号参数根据汽车动力学在后台计算。
2.2 信号采集和分析
系统采集发动机ECU的输出信号,得到一组相关的测试数据,根据采集的数据绘制发动机ECU喷油脉冲信号和点火控制信号。还可以根据发动机ECU的输出信号计算出频率、峰-峰值、脉冲宽度、占空比等物理参数,给出发动机ECU的喷油时间、喷油量相对变化率、点火提前角等工作参数。
2.3 数据交换实现方法
计算机通过串行口向发动机ECU发送数据,采集到ECU喷油和点火输出信号,通过串行口将这些数据传给计算机。计算机接收数据并绘制图形。
计算机根据应采集数据个数收集数据,编制成固定格式再发送。采集的数据存放在一个整型数组里,再转换成VARIANT数据类型,计算机通过串口将这些数据发送到发动机ECU中。
数据格式:标识参数名+数据+标识参数名+数据……标识参数名+数据。
每两位表示一个量,前一位指明参数,后一位给出数值。
- 发动机内部涡轮横动系统开发(05-15)
- Viper喷气发动机测试台:集成软硬件的数据采集平台,提供灵活性和可靠性(05-15)
- 基于发动机性能虚拟仪器测试系统设计(05-12)
- 发动机测试的便携式振动分析仪(09-21)
- 基于虚拟仪器的柴油发动机测控系统(10-04)
- 基于eCAR平台的发动机控制器测试系统(01-12)