2.2.5 ECU的软件体系
电控柴油机是根据ECU的指令来完成主要工作过程的。因此,ECU是电控柴油机的“大脑和指挥中心”,柴油机的工作性能不仅需要柴油机自身的结构部件,还取决于控制柴油机运行的指令。这些指令根据柴油机的复杂的工作环境和工作状态,按照柴油机的工作原理,适时适度地指令柴油机各部件的协调工作,以实现最佳的控制效果。为实现这个目标,ECU中的软件必须具备完整的指令体系和数据体系两个要素,统称为ECU的软件体系。
ECU的软件体系包括了基础软件、控制软件、诊断软件、调试与标定软件。其中基础软件、控制软件和诊断软件是写入ECU中真正在柴油机运行过程中对设备进行控制和检查的指令集。调试与标定软件为PC端软件,用于ECU研发阶段使用PC与对ECU进行调试和标定,一旦控制数据标定完成并将这些数据写入ECU之后,ECU就可以独立工作了。
(1)ECU的基础软件
基础软件与硬件系统密切相关,相对于控制软件而言,基础软件只是资源的提供者。属于基础软件的指令集可以分成下列功能模块。
① 系统初始化及时钟设置模块。用于完成系统的初始化和时钟设置。这部分指令根据不同的单片机有不同的形式,且与单片机的性能密切相关。其设计制作必须由对所用单片机十分了解的技术人员来完成。
② 整形输入处理模块。此模块是针对输入线的处理函数。输入信号可以是有一定变形的电脉冲信号,经过输入整形处理后,送入单片机的是较为整齐的脉冲信号。这可用于磁电传感器输入的曲轴和凸轮轴的(形状畸变的)脉冲信号等。
③ 预处理输入模块。此类模块的功能是输入开关量或脉冲量电信号。一般用于输入较为整齐的脉冲信号或开关量;具有这种功能的输入通道能够从自身获得信号(如相邻脉冲的间隔时间、脉宽时间等)的时序信息。
④ 模拟信号采样输入模块。此模块可输入模拟量并实现模数转换,具有一定的转换精度。例如:精度为10位的MC9S12DJ256模块,其对模拟信号的幅值要求是0~5V。
⑤ SCI串行通信。SCI串行通信一般用于程序调试和运行监控。可将SCI串行通信端口与PC相连,利用专用上位机程序,配合下位机程序的运行,可以将下位机的特征变量值按要求送到上位机显示,从而对程序运行的正确性做出判断;也可通过SCI串行通信对下位机的变量值进行设置,以对下位机程序的运行状态做出调节。由于这种通信方式的速度较低而被CAN通信取代。
⑥ CAN总线通信。CAN是车用电子产品中应用最为广泛的一种通信接口,它可在设备间实现有效的通信,不仅如此,它还可以被利用来实现正常工作时与外界的通信,如与其他车辆的ECU进行信息交换。
⑦ 其他模块或开关输出。除了上述输入模块外,电控柴油机还有下列输出或控制模块。
a.低位开关输出。这相当于普通的无触点开关。
b.PWM功能输出。这可用作对比例电磁铁和直流电动机的控制。
c.高位开关输出。高位开关采用的是将处在低电位的负载的一端拉到高电位而使负载获得供电的方法。常用于高速电磁阀的启动驱动。
d.步进电动机控制。此功能可以直接实现对步进电动机的控制。步进电动机主要用于某些精确的定位控制。
e.电压管理模块。用于实现电源的管理。
(2)ECU的诊断软件
诊断软件可以分为两个方面来考虑:对于硬件的直接诊断功能,此功能更偏重于基础软件,主要由原厂(或ECU服务商)直接提供。而对于柴油机的运行状况的诊断,包括OBD标准的功能要求,则更多的似乎是具有控制软件的功能。
诊断软件由多个诊断模块组成,设计制作时将这些制度模块编成任务模块,可以灵活地嵌入到基础软件中实现其相关功能。诊断软件通过多次检测确定持续故障和间歇故障,诊断结果可靠性高。此外,为了便于用户使用,在软件编写时,添加了各诊断模块的使用标志和故障标志屏蔽功能,并提供了若干的开放参数,用户可以通过使用标志选择相关的故障诊断模块,也可以通过故障标志屏蔽控制故障灯的点亮条件。ECU上电后,所有可诊断的线路,可以静态全检一遍,然后对可动态诊断的线路做定时巡检,做到适时监测。
上述这些诊断主要反映了诊断软件的基础层次,基础层次的故障诊断一般只能发现一些较为极端的硬件故障(如短路和开路故障等),但对因部件功能退化积累而产生的故障不能做出明确的判断。这需要有更高层次的判断策略来解决此类问题。
诊断软件在应用层次上的工作方式通常与某些分析策略相关。例如:如果柴油机在工作一段时间后冷却液温度信号没有出现预期的变化,则认定为冷却液温度传感器出现了功能故障;如果某缸的做功冲程没有引发该阶段角加速度的增加,则可认定该缸出现了缺火(或失火)故障。因此,在应用层次上诊断软件与柴油机的工作原理及机型密切相关,这也就是某型柴油机故障诊断仪通常只适用于某类或某几类柴油机的原因所在。
(3)ECU的控制软件
ECU的控制软件是指控制柴油机运行的那部分计算机指令。ECU的控制软件是柴油机设计者(也包括使用者)需要重点了解并掌握的内容。专业的柴油机(软件)设计者可以根据某个ECU技术平台,通过完成控制软件设计制作来实现面向自身产品的控制代码,使柴油机控制过程完全透明化,以达到对柴油机性能的完全掌握。
按照对ECU软件体系的区分,可以认为这部分软件既不涉及单片机的系统控制,也不涉及对硬件的直接操作。但要设计和发展这部分软件功能,必须对柴油机原理有深入的了解。因此,掌握柴油机控制软件技术已经成为掌握柴油机技术的重要组成部分。
由于ECU控制软件编程的专业化程度很高,所以一般而言,柴油机使用者和操作者只要了解其使用方法和能够实际使用就可以了。
(4)ECU的调试与标定软件系统
由于ECU属于嵌入式计算机系统,没有常备的显示器。在ECU工作时,也不需要这类部件。但是在ECU为柴油机配套时,相关(研发)人员必须通过监测ECU内部变量的变化情况,掌握设备的工作状态;并通过对ECU内控制变量的当前值进行动态调整,以满足对工况改变做出控制。这就需要通过专用的软件来实现,即ECU的调试与标定软件,这个是运行在(个人)电脑上的软件,也就是所谓的上位机,而ECU就称为下位机。调试与标定软件通过上位机与ECU之间的通信连线实现与ECU的信息交换,并提供调试与标定所需要的相关软件功能。这些功能主要有:
① ECU的数据读出与显示。将ECU的内部参数值(也即程序的变量值)读入到上位机,显示在上位机的屏幕界面上;这种读写操作通过通信线来实现,一般使用CAN总线的SAEJ1939协议,最快可以达到1Mbit/s的速率。受通信速度的限制,上位机屏幕所显示的ECU参数值每隔一定时间就会更新一次。
② 对ECU数据进行动态改写。这个改写是在ECU控制柴油机运行时实施的,可以直接对柴油机运行状态产生影响。注意:通过对ECU运行数据的当前值进行改写来影响柴油机的运行状态是通过上位机与下位机的软件配合来实现的。这是因为ECU运行时的控制参数,首先可能受到ECU内部程序的设定和修改;因此,哪些参数可以通过上位机的操作来修改,以作为控制变量,是ECU软件设计制作时就已经设置好了的,不能任意修改。
一般而言,柴油机运行状态的控制参数,可以分为两类:一类是简单变量,在ECU程序运行时,这类变量都是内存变量,可以动态修改;另一类控制参数是数组,这些数组通常叫脉谱(MAP),其初始值随ECU程序一同写入闪存。这些数组可以分别对同时控制过程产生重要影响,所以需要在配套试验中精确地确定其最佳值,这个过程即称为标定。为对脉谱进行标定,需要将被标定的脉谱从闪存中读出并随机读写到内存区(RAM)中,然后即可通过上位机的人机交互界面对脉谱进行修改。
③ 对脉谱做永久改写。此功能实质上是将存储在RAM中完成标定的脉谱写回其在Flash闪存中原来的数据区域内,形成数据值的永久改变。这一功能可以将对脉谱的修改记录在ECU中,以便在断电后仍能保持。也可以将脉谱的值以文件形式保存在上位机的磁盘中,然后以文件复制粘贴的方式加入到ECU的源程序中,然后通过源程序写入的方式永久修改这些脉谱。
④ 其他功能。除了上述功能外,ECU的调试与标定软件通常还能将下位机的诊断程序生成的故障码读取到上位机进行显示,能够直接观察到相关电气部件的故障情况,这对于原始系统的硬件状态检查有很大的帮助。