Estou tentando descobrir como trancar e destrancar as portas de um Toyota RAV4 2010 usando o barramento CAN através da porta OBD-II. Eu tenho um microcontrolador conectado através de um controlador CAN e um receptor CAN, e escrevi algum firmware para capturar e reproduzir mensagens.
Se eu destrancar as portas pelo chaveiro ou pelo botão da porta, recebo uma enxurrada de mensagens em um ônibus silencioso (a chave está fora). No entanto, reproduzi-los não faz nada. Eu suspeitava que pudesse haver algum tipo de problema de autenticação, então tentei algo menos sensível - os faróis. Curiosamente, quando reproduzo as mensagens de ligar os faróis, o indicador do farol no painel de instrumentos acende brevemente, mas os faróis reais não fazem nada.
Eu acho que tenho várias perguntas:
1) Isso deve ser possível através do barramento CAN exposto na porta OBD-II? Vi fontes dizendo que as portas são controladas por um ônibus diferente e mais lento, mas também vi dispositivos anunciados que trancam as portas quando você atinge uma velocidade específica.
2) Os outros ônibus estão expostos de alguma forma?
3) Existe alguma maneira de descobrir o significado das mensagens que capturei sem pagar grandes quantias de dinheiro à Toyota?
Respostas:
O que você está querendo fazer é possível. Eu tive experiência e desejo semelhantes para o meu Camry 2010. Pela minha experiência, ler mensagens da porta OBD-II não estava me levando a lugar algum. Era como se as mensagens CAN fossem apenas uma resposta para eu manipular manualmente o carro.
Eu recebia uma resposta da mensagem trancando ou destrancando as portas com a chave FOB, mas enviar a mesma mensagem não fez nada.
O que você deve fazer é obter um cabo divisor OBD-II e uma cópia do Toyota Techstream com um "cabo mini VCI". Isso permitirá que você leia as mensagens que o software Techstream envia através da porta OBD-II.
Você deve ser capaz de:
1- Trave e destrave o motorista / todas as portas
2- Tronco pop
3- Ligue vigas e piscas baixa e alta
4- Buzinar
5- Janelas para cima e para baixo
6- Etc.
..ou pelo menos tudo funcionou para mim !!
YMMV e boa sorte! : D
(Eu não sou responsável por danos pessoais ou de carro.)
fonte
Normalmente, o barramento CAN do OBD é "conectado" aos demais barramentos CAN do veículo, a fim de facilitar o diagnóstico de ECUs nos outros barramentos. No entanto, a ponte pode transmitir apenas mensagens de diagnóstico em diante :( É diferente em todas as plataformas.
Em termos de protocolo - é um problema clássico de engenharia reversa. Você precisa capturar alguns traços da atividade CAN quando pressionar o botão de desbloqueio e descobrir qual é o formato das mensagens. Seu exemplo de farol pode indicar que há vários ônibus e você só tem acesso a um deles (que vai para a unidade do painel e não para os faróis neste caso)
Com as fechaduras das portas - é bem possível que também ocorra algum tipo de resposta ao desafio que interrompa seu simples "ataque de repetição".
fonte
Se eu fosse o cara que projetou a eletrônica, eu tornaria impossível fazer isso via CAN-Bus simplesmente porque você obtém adaptadores bluetooth para OBD2 com os quais alguém do lado de fora do carro pode emparelhar e enviar as instruções de desbloqueio.
É um risco à segurança, então eu não o apoiaria.
fonte
Mesmo que você se conecte ao barramento correto e transmita a mensagem CAN correta, você ainda enfrenta o problema de transmitir uma mensagem CAN que já está sendo transmitida por outra ECU.
Do jeito que o CAN funciona, todas as mensagens podem ter um ID de arbitragem também conhecido como ID da mensagem. Em operação normal, nenhuma ECU jamais transmitirá uma mensagem com o mesmo ID no mesmo barramento. Quando você faz isso. Em teoria, você deve ser capaz de trancar ou destrancar a porta, inundando o ônibus com a mensagem desejada, mas não será algo que eu usaria dentro de um produto, pois seu abuso do barramento interferirá na comunicação das ECUs. no barramento que transmite com uma prioridade mais baixa.
Agora, novamente, se a mensagem CAN para trancar e destrancar a porta, é completamente orientada a eventos e não é transmitida periodicamente, o que você está tentando fazer é completamente viável.
Além disso, as mensagens que você está farejando, que mudam quando você trava ou destranca a porta, podem não ser as que interessam. As mensagens de status geralmente são encaminhadas para outros barramentos; você teria que transmitir a mensagem correta no barramento de onde se origina.
Dica: pesquise on-line o conector do OBD no seu veículo.
Sim, pode ser possível, mas você precisa conhecer o PIN do OBDII no seu carro, o que provavelmente não é uma informação pública, mas você pode descobrir quais são de interesse, eliminando os pinos OBDII padrão.
Como respondido acima, acho que há uma boa chance de eliminar os pinos OBD padrão e os pares restantes serão os de interesse. Cada canal de dados de lata tem um dado alto e um dado baixo.
Você precisa de uma ferramenta CAN, para assistir aos dados nos pinos suspeitos, a boa notícia é que você só captará mensagens quando conectado aos pinos corretos. Caso contrário, a ferramenta lançará erros. e Você pode precisar de uma ferramenta que possa detectar automaticamente as taxas de transmissão ou pode adivinhar.
Vai exigir um bom tempo e hackers.
fonte