我一般不是“汽车人”,所以希望我能对此做足够的解释以在这里获得一些帮助:
将消息发送到OBD-II设备时,在我测试过的大多数汽车中,我都会收到一个答复。但是,对于显然具有多个ECU芯片的汽车,我从每个汽车中都得到了回应。例如,如果我将01 0C
PID命令发送到具有3个ECU芯片的车辆,则会收到3个响应,这些响应通常非常相似,但仍然不同。
一个01 00
命令应该返回4个字节,用于说明车辆支持的PID,但这也将为每个ECU返回4个字节-一个是充实的4个字节,带有多个标志的开和关,而其他似乎只有少数标志已打开(到目前为止,这些标志似乎始终是“主要”响应中包含的标志,但我不确定是否总是这种情况)。
例:
SENT: 01 00
RECEIVED:
00 BF BF AC D3 - This response has the most binary flags turned on
00 98 18 80 11 - 8 flags on here
00 98 18 80 13 - 9 flags on here
最后两行由也在第一行中标记的标志组成,但是第3行有一个附加标志,第2行没有。
在我看来,也许只有一个ECU可以作为发送命令时应该收听的“主要”芯片,并且(我认为)我知道我可以使用CAN ID掩码/过滤器来只注意我需要的那些。
问题是:我真的应该关注一个“主要ECU”,还是所有这些响应都同样重要?如果我需要确定主要目标,是否可以发送命令确定哪个是“最重要的”?
测试车辆:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]