Controle de travas de portas via barramento CAN


9

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?


Onde você conseguiu colocar isso em funcionamento através do OBD-II ou teve que seguir outra rota?
SWard

Respostas:


5

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.)


11
Mccoy, estou tentando fazer exatamente o que você postou. Instalei o Techstream e tenho o cabo do adaptador USB conectado ao meu Corolla 2012, mas ele não parece estar pressionando nenhuma das personalizações. Você poderia me informar como conseguiu alcançar esse objetivo? Graças

4

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".


É bem possível que os faróis em si nem estejam em um barramento CAN, ao invés de depender de fiação e relés dedicados; enquanto o indicador do farol estiver no barramento CAN com o restante do conjunto de instrumentos.
mac

@mac - na verdade sim
Martin Thompson

3

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.


2
Os adaptadores Bluetooth não fazem nada, a menos que você já tenha acesso ao carro para conectar um receptor Bluetooth. Enfim, acontece que é possível.
Isvara

Esse pensamento é assustador. FYI: você também recebe adaptadores wifi OBD-ii e seu alcance é substancial.
capitão Kenpachi

3

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.

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.

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.

2) Os outros ônibus estão expostos de alguma forma?

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.

3) Existe alguma maneira de descobrir o significado das mensagens que capturei sem pagar grandes quantias de dinheiro à Toyota?

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.


11
Transmissão e colisões não são um problema. O controlador CAN cuida de tudo isso - é para isso que serve. Eu tenho o diagrama de fiação do carro e só há um ônibus por toda parte. Eu tenho um dongle que trava as portas a uma velocidade definida (cerca de 5 mph), e isso transmite a mensagem 'porta da trava' uma única vez. Parece que isso deve ser bem fácil de replicar.
Isvara

Você provavelmente está certo, mas na prática, várias ECUs não transmitem, a mesma identificação de mensagem ao mesmo tempo no mesmo barramento. Mas se a sua replicação simples, um dongle, é uma questão de lidar com as mensagens provenientes dele e ver quais bits mudam, ou quando a mensagem é enviada, se for baseada em eventos.
Am6sigma
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.