Je ne suis généralement pas un `` passionné de voiture '', alors j'espère que je pourrai l'expliquer assez bien pour obtenir de l'aide ici:
Lorsque j'envoie des messages à un appareil OBD-II, je reçois une réponse dans la plupart des voitures que j'ai testées. Cependant, avec des voitures qui ont apparemment plus d'une puce ECU, j'obtiens une réponse de chacune d'entre elles. Par exemple, si j'envoie une 01 0C
commande PID à un véhicule avec 3 puces ECU, je reçois 3 réponses qui sont généralement très similaires mais toujours différentes.
Une 01 00
commande est censée retourner 4 octets qui indique les PID pris en charge du véhicule, mais cela retourne également 4 octets pour chaque calculateur - l'un étant un 4 octets entièrement étoffé avec plusieurs indicateurs activés et désactivés, tandis que les autres semblent n'avoir une poignée de drapeaux activés (jusqu'à présent, ces drapeaux semblent toujours être des drapeaux qui sont inclus dans la réponse «principale», mais je ne sais pas si c'est toujours le cas).
Exemple:
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
Les deux dernières lignes sont constituées de drapeaux qui sont également marqués dans la première ligne, mais la ligne 3 a un drapeau supplémentaire que la ligne 2 n'a pas.
Il me semble qu'il existe peut-être un seul calculateur qui se qualifie comme la puce `` principale '' que je devrais écouter lorsque j'envoie des commandes, et (je pense) je comprends que je peux utiliser un masque / filtre CAN ID pour ne fais attention qu'à ceux dont j'ai besoin.
La question est: y a-t-il vraiment un «ECU primaire» auquel je devrais prêter attention, ou toutes ces réponses sont-elles également importantes? S'il y en a une principale que je dois cibler, puis-je envoyer une commande pour déterminer laquelle est la plus importante?
Véhicules testés sur:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]