bus OBD-II - emulando el lado del automóvil

0

TL; DR: si conecto uno de estos enlace directamente (es decir, las clavijas CAN RX y CAN TX, más la potencia general de 12 V) a un dispositivo destinado a un automóvil (para que el dispositivo piense que está enchufado en un vehículo y, por lo tanto, se inicialice) es que va a funcionar o es el El circuito es más complicado que eso y ¿dónde debería buscar más información?

Observo que la hoja de datos en la página 10 tiene un pull-up de 100 kohm a 3.3 V en ambos cables CAN. Tal vez eso es lo que necesita el autobús para funcionar correctamente.

Estoy tratando de crear un sistema, impulsado por una placa Raspberry Pi o Parallax Propeller que se pueda usar para inicializar un dispositivo conectado a OBD-II, uno que esté diseñado para conectarse a su automóvil.

Para hacer esto, necesito emular la funcionalidad mínima necesaria para que el dispositivo esté consciente de que está enchufado en un automóvil. El punto es probar que el dispositivo funciona con una funcionalidad básica sin tener que correr físicamente al estacionamiento y enchufarlo en un automóvil. El objetivo es poder hacer esto con una gran cantidad de dispositivos, posiblemente lotes de 20 o más a la vez.

Después de descifrar los distintos tipos de señalización utilizados para OBD-II (los dos que parecen más prometedores parecen ser SAE J1850 PWM e ISO 15765 CAN, pero ninguno es sencillo) y los problemas relacionados con la conversión del nivel de voltaje, I ' Estoy considerando usar un IC como este: enlace . Estos son relativamente económicos y parecen manejar la CAN subyacente u otra señalización y me dan algo que puedo tratar como una interfaz en serie. Esto suena genial y como un buen enfoque.

Sin embargo, lo que no me queda del todo claro es si un chip como este está destinado y puede utilizarse para emular el "lado del automóvil" del autobús. Casi todo lo que leo sobre OBD-II asume que está intentando piratear u obtener datos de su automóvil. En mi caso quiero "ser el coche". He leído lo que puedo encontrar gratis en ISO 15765 y el concepto de CAN Bus , no debería haber problema: cada nodo es un par y transmite mensajes a todos en el bus y los dispositivos interesados escuchan y hacen lo que quieren, con detección de colisiones, etc. Todo esto suena bien, pero quería ver si alguien con más experiencia que yo tiene alguna idea sobre lo que podría encontrar con este enfoque.

Por ejemplo, y esta es probablemente una pregunta estúpida, pero tenga en cuenta que el bus CAN se describe con un "voltaje recesivo" de alrededor de 2.5 voltios y un cable alto y cable bajo que se accionan respectivamente hasta aproximadamente 4.5 y Hasta alrededor de 0,5 voltios. ¿De dónde viene ese recesivo 2.5 V? Si voy a emular el "lado del automóvil", ¿debo proporcionar eso?

    
pregunta bgp

2 respuestas

1

He hecho esto recientemente, sin necesidad de un dispositivo "simulador" ODB-II.

Consígase un Escudo de bus de Arduino y el cable DB-9 a ODB-II asociado, y conéctelo a un coche. Escriba un código para leer los mensajes CAN y transmítalos a través de la serie. Descargue estos datos de serie a un archivo en su computadora. Luego, puede invertir el proceso y transmitir los mensajes CAN a través de la serie al dispositivo, en un bucle, para simular el ralentí del vehículo.

Si el dispositivo bajo prueba solo escucha pasivamente los mensajes CAN, es posible que necesite dos protectores CAN: uno para hacer un bucle en la transmisión y el otro para recibir activamente los mensajes en el otro extremo, mientras que su dispositivo se encuentra en la CAN Líneas en el medio. No estoy seguro de por qué esto es necesario, pero lo fue para mí; el escudo CAN de transmisión no inicializaría el búfer de transmisión a menos que tuviera algo explícitamente "aceptando" los mensajes en el otro extremo.

    
respondido por el Polynomial
2

Para emular el bus CAN y verificar el funcionamiento de los dispositivos que se conectarán a él, debe emular una parte al menos del protocolo.

Hay muchos emuladores de OBD II en el mercado ... puedes comprar uno.

Si desea crear el suyo propio, le sugiero que inicie aquí .

Este tipo hizo un gran trabajo tanto al evaluar el producto actual como a definir lo que se necesitaba para hacer uno. Finalmente no logró su objetivo, pero se acercó (altas calificaciones por eso).

También puedes leer this .... un poco más de éxito y error, pero puede darte pistas.
Se basa en un Arduino, por lo que puede encontrar tanto el código del emulador como el código del lector / grabador que lo ayudarán.

    
respondido por el Jack Creasey

Lea otras preguntas en las etiquetas