Zasadniczo nie jestem „samochodem”, więc mam nadzieję, że wyjaśnię to wystarczająco dobrze, aby uzyskać pomoc:
Wysyłając wiadomości do urządzenia OBD-II, otrzymuję jedną odpowiedź w większości testowanych samochodów. Jednak w przypadku samochodów, które najwyraźniej mają więcej niż jeden układ ECU, otrzymuję odpowiedź od każdego z nich. Na przykład, jeśli wyślę 01 0C
polecenie PID do pojazdu z 3 układami ECU, otrzymam 3 odpowiedzi, które są na ogół bardzo podobne, ale wciąż różne.
01 00
Komenda ma zwrócić 4 bajty, które stwierdza obsługiwane PID pojazdu, ale również zwraca 4 bajty dla każdego ECU - jedna jest w pełni uregulowana 4 bajty z kilkoma flagami z przerwami, podczas gdy inne wydają się mieć tylko garść flag włączonych (dotychczas te flagi wydają się zawsze flagami zawartymi w odpowiedzi „głównej”, ale nie jestem pewien, czy tak jest zawsze).
Przykład:
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
Ostatnie dwa wiersze składają się z flag, które są również oznaczone w pierwszej linii, ale linia 3 ma jedną dodatkową flagę, której nie ma linia 2.
Wydaje mi się, że być może istnieje jeden ECU, który kwalifikuje się jako „główny” układ, którego powinienem słuchać podczas wysyłania poleceń i (chyba) rozumiem, że mogę użyć maski / filtra CAN ID do zwracaj uwagę tylko na te, których potrzebuję.
Pytanie brzmi: czy naprawdę istnieje „podstawowy ECU”, na który powinienem zwrócić uwagę, czy też wszystkie te odpowiedzi są jednakowo ważne? Jeśli istnieje podstawowa, na którą muszę kierować, czy istnieje polecenie, które mogę wysłać, aby ustalić, które jest „najbardziej znaczące”?
Pojazdy testowane na:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]