Geralmente, eu não sou uma 'pessoa do carro', então espero que eu possa explicar isso o suficiente para obter ajuda aqui:
Ao enviar mensagens para um dispositivo OBD-II, recebo uma resposta na maioria dos carros que testei. No entanto, com carros que aparentemente possuem mais de um chip de ECU, recebo uma resposta de cada um deles. Por exemplo, se eu enviar um 01 0C
comando PID para um veículo com 3 chips de ECU, recebo 3 respostas que geralmente são muito semelhantes, mas ainda diferentes.
Um 01 00
comando deve retornar 4 bytes que indiquem os PIDs suportados do veículo, mas isso também retorna 4 bytes para cada ECU - um sendo um 4 bytes totalmente desenvolvido com vários sinalizadores ativados e desativados, enquanto os outros parecem ter apenas um punhado de sinalizadores ativados (esses sinalizadores até agora parecem sempre estar incluídos na resposta 'principal', mas não tenho certeza se esse é sempre o caso).
Exemplo:
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
As duas últimas linhas consistem em sinalizadores que também são sinalizados na primeira linha, mas a linha 3 possui um sinalizador adicional que a linha 2 não possui.
Parece-me que talvez exista uma única ECU qualificada como o chip 'primário' que eu deveria estar ouvindo quando estou enviando comandos e (acho) eu entendo que posso usar uma máscara / filtro CAN ID para Preste atenção apenas nos que eu preciso.
A pergunta é: Existe realmente um 'ECU primário' no qual devo prestar atenção ou todas essas respostas são igualmente importantes? Se houver um principal que eu precise direcionar, existe um comando que eu possa enviar para determinar qual é o 'mais significativo'?
Veículos testados em:
2011 Chevy Cruze [2 ECUs]
2015 BMW M5 [3 ECUs]
2015 Range Rover Autobiography [3 ECUs]