Trouver une réponse de mécanique


Cadres reçus de véhicules avec plusieurs puces ECU


Question

Je ne suis généralement pas un « automobiliste », alors j'espère pouvoir expliquer cela 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é. Cependant, avec les voitures qui ont apparemment plus d'une puce ECU, je reçois 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 commande 01 00 est censée renvoyer 4 octets qui indiquent les PID pris en charge de le véhicule, mais cela renvoie également 4 octets pour chaque ECU - l'un étant un 4 octets entièrement étoffé avec plusieurs drapeaux activés et désactivés, tandis que les autres semblent n'avoir qu'une poignée de drapeaux activés (ces drapeaux semblent jusqu'à présent toujours être des indicateurs 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 que peut-être là est un seul ECU qui se qualifie comme la puce "principale" que je devrais écouter lorsque j'envoie des commandes, un d (Je pense) Je comprends que je peux utiliser un masque/filtre CAN ID pour ne faire attention qu'à ceux dont j'ai besoin.

La question est : y a-t-il vraiment un « ECU principal » que je devrais payer attention, ou toutes ces réponses sont-elles d'égale importance ? S'il y en a un principal que je dois cibler, y a-t-il une commande que je peux envoyer pour déterminer lequel est le « plus important » ?

Véhicules testés sur :

2011 Chevy Cruze               [2 ECUs]
2015 BMW M5                    [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]
2015/12/04
1
10
12/4/2015 9:02:30 PM


CAN ne fonctionne pas comme vous le pensez.

CAN n'est pas basé sur un module, mais sur un message. Aucun module ne parle directement à un autre module. Dans CAN, un module génère un message avec une adresse, cette adresse identifie les données qui seront contenues dans le message. Aussi l'adresse donne l'importance du message. Plus l'adresse est basse, plus la priorité est élevée.

Par exemple, l'ABS transmettra la vitesse du véhicule. Tout autre module qui a besoin des données les lira.

Il n'y a pas de module plus important qu'un autre, c'est la priorité du message qui est importante.

2015/12/06