我们试图在一个汽车论坛上解决一个难题,该问题涉及BMW S62发动机如何利用其两个MAF(质量空气流量)传感器来确定进入发动机的空气质量流量。该传感器对于正确的发动机运行至关重要,人们经常在不确定是否需要更换传感器的情况下更换传感器。通过了解ECU如何利用传感器,人们可以用万用表设计一种简单的测试,以确认或否定是否需要新的传感器。 ),并分享了他认为与质量空气流量评估有关的两个子程序的屏幕截图。

MAF Curve(这是tbls的用途):
sub_12D96:



sub_1AA3A:



关于什么有一些流派发生在这里:


正在使用两个MAF传感器电压的平均值。我看不到这组特定的指令。
查找表的结果减半。
两个结果分别计算然后相加。但是,这与收集的现场数据相冲突。
仅使用一个传感器(换句话说,S62检查的意义被颠倒了,但实际上没有意义)


有人可以帮我弄清楚指令的内容吗?这是我的目的,我只是无法将所有内容“拼凑”起来以理解它:

评论

从所评论的混乱中,只有最后3条指令似乎与使用MAF进行任何操作有关,而不仅仅是与计算机打交道。 MAF电压编码为某种值(16位?),需要乘以8,然后在表中查找。该表可能是MAF校准。到目前为止,这很合理。我没有看到任何代码可以处理两次MAF输入的平均或求和。

@Marcin:请注意,我没有完全分析sub_1AA3A。有人告诉我,MAF电压编码为10位值。如果我的汽车的S62检查结果为true,则将HFM2_AD中的from插入并通过sub_1AA3A运行。

看起来,当(K_MOTORTYP&$ EF)== $ 20时,从HFM1.AD进行的第一次查找的结果将被丢弃并替换为从HFM2.AD进行的查找。 (不过,我不是M68000专家,请给我一个SH2...。)