Я обычно не «автомобильный человек», поэтому, надеюсь, я смогу объяснить это достаточно хорошо, чтобы получить некоторую помощь здесь:
При отправке сообщений на устройство OBD-II я получаю один ответ на большинстве автомобилей, которые я тестировал. Однако с автомобилями, которые, очевидно, имеют более одного чипа ECU, я получаю ответ от каждого из них. Например, если я посылаю 01 0C
команду PID на автомобиль с 3 чипами ECU, я получаю 3 ответа, которые, как правило, очень похожи, но все же различны.
Предполагается, что 01 00
команда возвращает 4 байта, в которых указаны поддерживаемые PID транспортного средства, но это также возвращает 4 байта для каждого блока управления двигателем - один представляет собой полностью выделенные 4 байта с несколькими флагами вкл / выкл, в то время как другие, кажется, имеют только Включено несколько флагов (до сих пор эти флаги, похоже, всегда были флагами, которые включены в ответ 'main', но я не уверен, так ли это всегда).
Пример:
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 для обращайте внимание только на те, которые мне нужны.
Вопрос в том, действительно ли существует «первичный ЭБУ», на который я должен обратить внимание, или все эти ответы одинаково важны? Если есть основной, на который мне нужно ориентироваться, есть ли команда, которую я могу отправить, чтобы определить, какой из них является «наиболее значимым»?
Транспортные средства, испытанные на:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]