Grey

全部学习内容汇总: GitHub - GreyZhang/g_ECU_hacking: some learning notes about ECU(engine control unit) hacking.

发动机控制器ECU

ECU有多种解释,这里的解释主要是指发动机控制器。这一份笔记,整理了发动机控制器的基本功能以及部分发展的技术点。

主题由来介绍

我工作了十多年,其实大半的时间跟ECU打交道。然而,我工作中接触到的可能是较为底层的东西,缺少一定的系统性。因此,通过网络上的一些资料学习来扩展一下自己只是的系统性。

资料整理过程说明

我的参考资料来源于: ECU (Electronic Control Unit) explained

要点细节分析

1865_发动机控制器ECU_错误码

  • ECU本身就有两种缩写的解释,一种是电子控制单元,还有一种是发动机的控制器。
  • 发动机的控制器其实也有两种常用的缩写,一种是ECU,另一种更叫做ECM。
  • 如果发动机的控制器增加了对变速箱的控制,一般叫做PCM。

ECU干什么

1865_发动机控制器ECU_ECU_02

1865_发动机控制器ECU_错误码_03

ECU可以做什么呢?这里从发动机基本的要求角度来进行了一个简单的概述。

  • ECU主要是控制燃油喷射的,如果是汽油机,那么还负责在合适的时间提供点火的信号。
  • 如果判断点火的时刻呢?这个主要是靠判断发动的运动部件的位置来实现的。而这个位置的判断则是通过曲轴传感器来实现的。
  • 然后喷射角度来说,控制的效果主要是实现油气的混合。
  • 油气的混合主要是考虑两个方面,一方面要有一定的混合量,另一方面则是要注意混合的比例。
  • 在过去,机械控制的时代,油气混合的实现主要是通过化油器来实现的。
  • ECU控制了燃油的喷射、点火以及各种发动机的辅助装置。

精确的燃油控制

1865_发动机控制器ECU_数据处理_04

实现精确的合理的燃油混合比例,需要考虑多个方面:

  • 发动机的需求
  • 发动机以及冷却液的温度
  • 空气温度
  • 燃油温度
  • 燃油的质量
  • 可变的过滤器阻力
  • 空气压力
  • 发动机泵油的效率

1865_发动机控制器ECU_错误码_05

  • MAF是空气质量流量传感器,可以用来测量空气量。

1865_发动机控制器ECU_数据处理_06

这里说明了一下为什么温度会是一个比较重要的考虑因素。因为进行油气混合的时候需要燃油汽化,而这个受到温度的影响。 如果发动机的温度比较高,那么燃油汽化效率就会高,燃烧的混合率比较容易保证。相比之下,如果机器的温度比较低,要 实现同样的驱动效果,则需要多喷油。

1865_发动机控制器ECU_错误码_07

之前,进行油气混合调整主要是通过化油器上的一个阻风门来实现的。这个可以减少进入化油器的空气,增加真空度, 以此保证能够吸入更多的燃油。但是,这种方式有一系列的缺点:

  • 不准确
  • 故障率高
  • 需要随时调整,而且得司机参与操作。

完美的燃烧

1865_发动机控制器ECU_数据_08

  • 比较完美的油气混合效果是两者刚好能够完成全部的反应,这叫做化学计量化的混合。通常通过lambda = 1.0来说明。
  • 通过氧传感器可以检测废气之中的氧浓度,以此判断空气是否过量。
  • 这还会让发动机知道喷射的燃油是过量还是不足(如果不足,氧浓度高,如果过量或者刚刚好,氧浓度可以考虑为0,如何区分这个点呢?)
  • 通过lamdda的数值是否等于或者接近1.0可以形成一个控制的闭环达到较好的混合控制效果。

1865_发动机控制器ECU_数据_09

为了达到更高标准的排放要求,出现了一系列的新技术:

  • EGR:废气再循环
  • 催化剂转换以及可选择催化剂还原
  • AIR:废气喷射反应
  • DPF:柴油微粒过滤
  • 燃油分层
  • AdBlue:废气添加剂喷射
  • EVAP:蒸汽排放控制
  • 涡轮增压
  • 混合动力
  • 可变气门控制
  • 可变吸气控制

ECU如何工作

ECU主要处理4类功能。

输入信号处理

这部分主要是处理一些温度、压力、开关状态以及采集的数据等。常见的例子:

  • 冷却温度
  • 加速踏板位置
  • ABS的请求

数据处理

这部分数据处理主要是利用采集到的或者统计到的信息进行二次加工得到的一些信息。常见的例子:

  • 自学习的信息
  • 里程信息

输出

这部分主要就是一些控制信号的处理了。常见的例子:

  • 喷油脉宽
  • 点火时间
  • 节气门开度
  • 散热风扇的启动

供电管理

除了上面的一些偏信息化的信息之外,ECU还负责供电的管理。常见的例子:

  • 给传感器提供稳定的5V供电
  • 给喷油器提供可能高达200V的供电
  • 此外,还得考虑大电流的承受能力

基本的ECU功能

1865_发动机控制器ECU_ECU_10

  • 基本的功能其实就是上面的4类功能。
  • 很多时候,采集到的数据会通过ECU的网络系统,很可能是CAN总线外发。
  • 一般情况下,根据曲轴传感器发现某一缸到达了最大压缩点之后,就会激发一次点火线圈的工作。 但是,ECU会根据系统统计的信息确定提前或者延迟喷射。
  • 考虑安全的方面,ECU上还会附加一个监控器作为主要的MCU的辅助。如果主的MCU出现了故障,那么监控器会触发系统重启或者停机。

诊断

1865_发动机控制器ECU_数据处理_11

  • 诊断方面一般需要进行自身功能的检测,保证自身功能的可靠。
  • 除了检测之外,还得考虑支持标准的诊断协议 OBDII 错误码
  • 诊断的支持不仅仅支持了错误码,还能够支持在线查看传感器等的数据,以此确认故障。

节气门的控制

1865_发动机控制器ECU_错误码_12

  • 早期的油气混合靠化油器来控制,有前面提到的弊端。
  • 为了改进化油器的弊端,出现了电子怠速节气阀,这解决了机械化油器随时需要参与调整的问题。
  • 电子节气门的出现,又进一步淘汰掉了电子怠速节气阀。
  • 电子节气门可以调节角度加速气流速度,从而实现更好的油气混合。这提升了扭矩以及驾驶体验。 这也是众所周知的扭矩映射,只有通过电子节气门才能够实现。

自适应

1865_发动机控制器ECU_数据处理_13

ECU可以统计记录一些信息来让系统有更好的表现。比如说,记录上一个行程中的lambda数值来校正 下一次的启动参数。再比如,根据部件的磨损情况来进行控制的补偿调整等。

小结

关于ECU本身的一些驱动设计实现其实已经是我比较熟知的了,不过这种领域性的知识点的确是一直以来工作中可能让我卡壳的知识盲区。 逐步丰富自己这方面的见识,对自己以后视野拓展以及能力的发挥肯定会有很好的提升。

happy hacking!