Circuito y Código Fuente Lector BR3 Interfaz OBDII para vehículos norma ISO 9141-2

Código Fuente y diagrama de Circuito lector BR3 Interfaz OBDII para vehículos norma ISO 9141-2

Esta publicación me pertenece como traducción, y como aporte a la comunidad forosdeelectronica, espero que no se lo roben los ratas de SaberElectrónica (Saludos Daniel Vallejo) o de Nuevaelectrónica

Es el título que le he puesto, para los fanáticos de la comunicación automotriz, este proyecto surge como resultado de no poder obtener un escanner para leer las fallas de los vehículos a través de la ECU. Los que venden son el mismo circuito con su propio interfaz para PC por USB empleando algún FTDI.

El proyecto no es mío, me lo proporcionaron unas personas hace ya años atrás para realizar la interfaz, luego de hacerla, me quedé con los manuales y el Hex del PIC16F84 como regalo y nunca más supe de los interesados, supongo que les funcionó porque no regresaron a reclamarme que no funcionara. Lo traduje del ruso a español y luego le escribí las modificaciones pertinentes para hacerlo más legible, el diagrama no lo modifiqué, es el mismo que yo hice.

Les dejo el diagrama del circuito interfaz, el código fuente en Visual Basic 6 y el procedimiento general.

Este dispositivo es un microcontrolador que está diseñado para conectar una computadora personal o portátil con la interfaz de diagnóstico a bordo (OBD II) de un vehículo.

Está diseñado para funcionar con los tres protocolos utilizados por los fabricantes de vehículos para implementar el sistema OBD II según lo definido por las especificaciones SAE e ISO.

El sistema OBD II se convirtió en obligatorio para los vehículos de 1996 en adelante, pero algunos vehículos ya eran total o parcialmente compatibles con los requisitos de OBD II antes de 1996.

El chip no es adecuado para los vehículos anteriores como OBD I.

El dispositivo está diseñado para funcionar como una herramienta de escaneo simple y es capaz de enviar y recibir cualquier mensaje OBD II definido en SAE J1979 para cualquiera de los tres tipos de implementaciones de bus OBDII (PWM, VPW, ISO 9141-2).

También se puede utilizar como una interfaz económica para la monitorización de instrumentación personalizada de varios parámetros del vehículo, como la velocidad, las RPM, la temperatura del refrigerante o del aire de admisión, la carga del motor, el caudal de aire de admisión, etc.

CARACTERISTICAS:
Voltaje de funcionamiento 5,0 V
Corriente de funcionamiento 5 Ma. Typ
Reloj: 20 MHz
Entradas: (niveles 0-5V)
Entrada serial (19200 baudios)
Recibir PWM
Recibir VPW
Norma ISO 9141-2
Salidas (niveles 0-5V)
Salida en serie (19200 baudios)
Bus de transmisión PWM + (invertido)
Bus de transmisión PWM (invertido)
Transmisión VPW
Transmisión de línea ISO 9141-2 L (invertida)
Transmisión de línea ISO 9141-2 K (invertida)

Este dispositivo es un microcontrolador PIC producido por Microchip Technologies. El Micro PIC empleado es el chip BR16F84-1.07 básico el cual no es mas que el mismo MicroPIC 16F84A-20 / P, en un DIP de plástico de 18 pines con una frecuencia de operación de 20 MHz.

Sobre el Circuito
La aplicación típica es una sencilla herramienta de escaneo automotriz que utiliza una PC o computadora portátil como máquina host.
La interfaz a la PC es un enlace en serie RS232 serial pro el puerto COM que se ejecuta a la velocidad de 19200 baudios, el cual es mas rápido que el complementario 9600 de siempre.

Para este circuito sólo se necesitan 3 cables los famosos Tx-Rx-GND, ya que no se utilizan las demás señales de protocolo de enlace.

La salida en serie del circuito de interfaz es una señal de 5 voltios, que funciona bien con la mayoría de las PC y portátiles.

La entrada en serie está recortada y limitada en corriente, por lo que es capaz de aceptar casi cualquier voltaje de señal.

La interfaz con el bus OBDII del vehículo se logra con algunos componentes externos y un chip comparador LM339.

La conexión al vehículo utiliza 6 cables, asumiendo que se implementarán los tres protocolos OBD. El voltaje de funcionamiento para el chip y los circuitos asociados es pequeño y se deriva del sistema de 12 V del vehículo en el pin 16 del conector OBD.

Algunas sugerencias
(1) El cable al vehículo pueden ser cables simples sin blindaje y a pesar de ser robusto, no lo recomiendo por el empleo automotriz, razón por la que se necesita de cable aislado y con tecnología CL3 el cual supongo que me lo preguntarán y yo les responderé que lo busquen en Google, en mi caso yo usé un cable de HDMI en desuso. Este cable debe mantenerse lo más corto posible y, definitivamente, no más de 4 pies, especialmente para la operación PWM. Se podrían usar cables algo más largos si las resistencias de terminación del circuito se reemplazan por valores más bajos.

(2) El cable al puerto serie de la computadora también puede estar sin blindaje pero no lo recomiendo. El circuito de la aplicación ha sido probado con cables sin blindaje de hasta 30 pies, pero las implementaciones específicas pueden variar, por lo que es posible que desee experimentar si está intentando realizar recorridos largos. Para cada corrida larga, es posible que también desee utilizar un chip transceptor RS 232 en su diseño para mejorar la calidad de los datos recibidos o transmitidos.

(3) El diseño del circuito no es crítico. El circuito ha sido probado tanto en prototipos de placa de circuito impreso cableados como en placas de prueba de placa de conexión. Sin embargo, si su diseño es muy descuidado, es posible que desee agregar condensadores de derivación adicionales.

MUY IMPORTANTE POR EL CUAL YO PUBLICO ESTO ACÁ
(4) El software gratuito para utilizar el circuito de la aplicación está disponible. El programa se ejecutará en DOS, por lo que se puede utilizar tanto en equipos antiguos como en equipos más nuevos con Windows. Es lo suficientemente pequeño como para caber en un disquete de arranque de DOS, por lo que aún puede ejecutarlo si su sistema operativo principal no es compatible con DOS. La computadora ni siquiera necesita tener un disco duro.

Ahora mi aporte para este circuito (que en paginas de venta chinas OBDII venden como si fuera el original) es tanto el Hex de programación como el código fuente para realizar el programa bajo Windows Xp en adelante (32 bits x86)

IMPORTANTE, NO CONECTAR FUENTES EXTERNAS de energía.

Protocolo de comunicación general
Esta es una descripción general de las comunicaciones entre el chip y la computadora o controlador host.

Hay excepciones a estas reglas que se definen en las secciones más detalladas de este documento. Todas las comunicaciones se realizan a través de un simple enlace en serie de 3 cables.

No se utiliza ningún "handshake" para simplificar la conexión. En resumen, el chip escucha un mensaje desde la PC, completa la tarea solicitada y luego devuelve los resultados al host (la PC). Luego, espera inmediatamente el siguiente mensaje. El intercambio típico hacia o desde el chip es una serie de simples bytes.

El primer byte se denomina byte de control.
El concepto de byte de control se analiza aquí porque se aplica a muchos de los comandos y respuestas (pero no a todos; las excepciones se indican en los comandos específicos que se definen a continuación). Normalmente, el byte de control es simplemente un número entre 0 y 15 decimal (0-F hexadecimal) que indica cuántos bytes siguen a este byte de control.

Por ejemplo, si se van a enviar tres bytes, el byte de control sería 3 decimal (o 03 hexadecimal), luego seguirían los tres bytes; 03, byte1, byte2, byte3.
Este es el método utilizado para pedirle al chip que recupere un elemento particular de los datos OBD del vehículo, y es el método utilizado por el chip para devolver la respuesta de los vehículos al mensaje de solicitud.

Tengan en cuenta que esto solo requiere el uso de los cuatro bits inferiores del byte de control. Los bits superiores están reservados para ciertos comandos y respuestas especiales. Estos bits se utilizan para que la computadora host haga la conexión inicial con el chip, para configurar el protocolo que se utilizará y para que el chip devuelva datos que indiquen éxito o fracaso.

En particular, tengan en cuenta que el chip establecerá el bit más significativo del byte de control si la acción no tuvo éxito. Si la operación fue exitosa, los cuatro bits superiores de este byte de control serán cero. Estos usos especiales del byte de control se describen a continuación y también se indican las excepciones en las que no se utiliza el byte de control.

INICIALIZAR EL CHIP Y EL VEHÍCULO
Antes de que puedan comenzar las comunicaciones normales, el host debe establecer comunicación con el chip, luego debe inicializar el chip y el enlace de datos del vehículo.

(1) CONEXIÓN DE CHIP
Una vez que la unidad está conectada a la computadora host y al vehículo, se debe realizar una secuencia de inicialización. Esta secuencia se utiliza para evitar bloqueos debido al ruido en las líneas serie en caso de que no se hayan conectado antes de que se encienda el chip. También sirve como un método simple para detectar si la interfaz está conectada o no. La primera operación es enviar un solo byte, 20H. Este es un comando de conexión al chip, y le dice al chip que la comunicación debe comenzar. El chip no envía un byte de control a cambio, sino que responde con un solo byte que es FF en Hex, o decimal 255.

En este punto, el chip está esperando recibir datos y el host puede continuar con la inicialización. TENGAN EN CUENTA que este es uno de los pocos casos en los que el chip no envía un byte de control.

(2) INICIALIZACIÓN y PROTOCOLOS
Esto inicializa el protocolo que se utilizará y también inicializa el vehículo en el caso de ISO.
Hay tres protocolos:

VPW (motores generales)
PWM (productos Ford)
ISO 9141-2 (asiático / europeo)

Hay muchas excepciones a estos protocolos generales, por ejemplo, algunos Mazda utilizan el protocolo PWM de Ford. Entonces, si tiene problemas con un protocolo en particular, debe probar con otro. La selección de protocolo se realiza enviando un byte de control que es 41H, seguido de un byte de selección de protocolo.

El último byte se define como sigue; 0 = VPW, 1 = PWM, 2 = ISO 9141.

Por ejemplo, 41H 02H es la secuencia para inicializar al protocolo ISO 9141.

El chip responderá con un byte de control y un byte de estado.

El byte de control tendrá el MSB configurado si hubo un problema, y en este caso, el siguiente byte es un byte de estado que indica condiciones internas.

Si la inicialización fue un éxito, el byte de control será 01H, lo que indica que sigue un byte de estado de verificación.

Este byte de estado es un byte de verificación y se define como sigue:
Para VPW o PWM, este byte es simplemente un eco del byte de protocolo que envió (0 o 1). Para ISO 9141, será un "número CLAVE" que se devolvió del propio vehículo y especifica una de las dos versiones ligeramente diferentes de ISO.

Es solo para fines informativos. Tenga en cuenta que para VPW y PWM, la selección de protocolo es rápida, porque solo es necesaria para informar al chip qué protocolo se utilizará. Pero, para los vehículos ISO, puede tardar hasta aproximadamente 5 segundos, porque hay una secuencia de inicialización detallada que el chip debe realizar a 5 baudios con el vehículo.

Recuerden que también algunos vehículos ISO 9141 heredados perderán la inicialización si no se realizan solicitudes de datos durante un intervalo de 5 segundos, por lo que la PC host debería enviar automáticamente una solicitud cada pocos segundos durante los períodos de inactividad.

Una vez que se completa la conexión y la inicialización, los mensajes suelen ser mensajes de solicitud de la computadora host o mensajes de respuesta del chip.

SOLICITUD Y RESPUESTA MENSAJES
El funcionamiento de este chip es significativamente diferente para los protocolos SAE (VPW o PWM) y los protocolos heredados ISO9141-2, por lo que la información se presenta por separado para los dos casos para evitar confusiones.

COMUNICACIONES SAE (VPW o PWM)
Para estos protocolos, el chip solo puede almacenar en búfer un marco de datos, por lo que debe especificar qué marco debe tomar y devolver. El vehículo puede enviar más de una trama, por lo que si se trata de un elemento de datos que posiblemente pueda tener una respuesta de varias tramas, deberá repetir la solicitud hasta que haya obtenido todas las tramas. Generalmente, esto solo es necesario para algunos tipos de datos.

El mensaje de solicitud siempre tiene la siguiente forma:
[Byte de control], [Mensaje de solicitud SAE], [Número de trama]

Como es habitual, el byte de control solo indica el número total de bytes a seguir.
El mensaje de solicitud SAE se define en SAE J1850 y J1979. Se compone de tres bytes de encabezado, una serie de bytes de mensaje y un byte CRC.

El mensaje de solicitud SAE se ajusta estrictamente a las especificaciones SAE pertinentes, mientras que el chip requiere el byte de control y el número de trama. Los mensajes SAE están fuera del alcance de esta hoja de datos, pero están disponibles en varias fuentes.

El mensaje de respuesta siempre toma la siguiente forma si el resultado fue un éxito;
[Byte de control], [Mensaje de respuesta SAE]. El byte de control simplemente indica cuántos bytes siguen. Estos bytes son el mensaje de respuesta SAE y contienen los bytes del encabezado, los bytes del mensaje de trama para esta respuesta y el byte CRC según las especificaciones SAE mencionadas anteriormente.

El mensaje de respuesta siempre toma la siguiente forma si el resultado no fue exitoso;
[Byte de control], [Byte de estado]. El byte de control tendrá el bit más significativo establecido.

Los 4 bits inferiores serán 001, que simplemente indica que sigue un byte, y es el byte de estado para las condiciones internas. Esta es una condición que ocurre comúnmente, porque las especificaciones permiten que un vehículo no devuelva datos o datos inválidos si la información solicitada no es compatible con el vehículo, o si los datos no están disponibles actualmente en el procesador del vehículo.

Si el chip no recibió respuesta, o si recibió una respuesta no válida, se establecerá el bit más significativo del byte de control y seguirá un byte del estado de la condición interna.

COMUNICACIONES ISO 9141-2
El sistema ISO 9141-2 utilizado por muchos vehículos asiáticos y europeos es bastante diferente de los vehículos SAE.
El mensaje de solicitud del host es muy similar al de los vehículos SAE, pero el chip no requiere ni permite un número de trama (frame). El mensaje de solicitud es simplemente el byte de control que indica el número de bytes siguientes, luego el marco del mensaje de solicitud, incluida la suma de comprobación.

La respuesta del chip es simplemente una retransmisión pura de datos recibidos del vehículo. No hay un byte de control, por lo que el host debería simplemente recibir bytes hasta que ocurra un período de tiempo de espera de 55 milisegundos sin que se reciban bytes.

Esto indica el final de la respuesta del vehículo. Por lo tanto, la respuesta es una o más tramas de mensaje como se define en SAE J1979. El chip no realiza análisis de tramas, no rechaza tramas que no sean de diagnóstico, etc. El host debe procesar estos datos para extraer tramas particulares buscando los bytes de encabezado.

Para la mayoría de las solicitudes de datos, solo hay un marco de respuesta.

Notas e información actualizada
Básicamente, la información anterior no se modifica para versiones posteriores o para en este caso ustedes mismos crear un Software que sea compatible con este circuito LECTOR OBDII.

Notas finales
Mensaje de error de contención de bus: esto se aplica solo a los protocolos PWM y VPW. Si se produce una contención de bus, la interfaz devolverá un solo byte (40 Hex). Es un byte de control con el nibble inferior establecido en cero, por lo que no le seguirán otros bytes. Esto indica la contención.

Esta condición puede ocurrir normalmente cuando el bus de datos del vehículo está ocupado con mensajes de mayor prioridad y la solicitud de diagnóstico pierde el arbitraje. El software de PC debe reenviar el mensaje de solicitud original de nuevo.

Cambios en el chip de interfaz para versiones posteriores:
Este documento especifica los cambios en el funcionamiento del chip para versiones posteriores.
Define cómo usarlo para ISO 14230 para inicialización rápida y lenta.

También hay algunos cambios que pueden afectar el uso de PWM y VPW.
Los principales cambios en los protocolos existentes se resumen a continuación:

(1) Para ISO 9141, ahora también se transmite el byte de dirección.
(2) Para ISO 9141, se devuelven ambos bytes de clave, en lugar de uno. El byte extra también se devuelve para los modos SAE, pero no se utiliza.
(3) Ahora se admite el protocolo ISO 14230.

Notas:
(1) Todos los bytes de datos están en hexadecimal.
(2) XX indica un byte que no está definido, reservado o desconocido.

Código:
CHIP CONNECT SEQUENCE: (Esta secuencia no ha cambiado)
    Send    20
    Receive    FF

PROTOCOL SELECTION SEQUENCE:
VPW:           Send    41, 00
            Receive 02, 00, XX

PWM:        Send    41, 01
            Receive 02, 01, XX

ISO 9141:    Send       42, 02, adr Donde adr es la dirección (normalmente 33 hexadecimales)
            Receive 02, K1, K2 donde K1, K2 son ISO Keybytes.
            Or        82, XX, XX Indica falla al inicializar ISO 9141

ISO 14230 (inicio rápido):
            Send    46, 03, R1,R2, R3, R4, R5
                    Donde R1 a R5 es ISO14230 Iniciar mensaje de solicitud de comunicación;
                    Normalmente R1-R5= C1, 33, F1, 81, 66
            Receive S1, S2, ..........
                    Donde S1, S2...... ISO14230 Inicia mensaje de respuesta de comunicaciones.
                    Nota: más de una ECU puede responder en secuencia.
                    La respuesta también puede ser un código de respuesta negativo.
                    Un mensaje típico de respuesta positiva se vería así;
                    S1, S2,... = 83, F1, 10, C1, E9, 8F, BD

ISO 14230 (inicio lento):
            Send       42, 02, adr Donde adr es la dirección (normalmente 33 hexadecimales)
            Receive 02, K1, K2 donde K1, K2 son ISO Keybytes.
            Or        82, XX, XX Indica falla al inicializar ISO 9141
                    (Es igual que la norma ISO 9141)

NOTAS DEL CIRCUITO
El esquema se muestra lo mas simple para indicar las señales al vehículo y la computadora personal (Host).
A continuación se muestra información para conectar el conector al vehículo y también el conector al puerto serie de la PC.

CONECTOR DE 16 PINES DEL VEHÍCULO
En forma de diagrama, el conector de diagnóstico se ve así:
1616012774312.png

1616014476583.png
Patilla 2 - Bus J1850 +
Patilla 4 - Tierra del chasis
Patilla 5 - Toma de tierra de la señal
Patilla 6 - CAN alta (J-2284)
Patilla 7 - Línea ISO 9141-2 K
Patilla 10 - Bus J1850
Patilla 14 - CAN baja (J-2284)
Patilla 15 - ISO 9141-2 L Line
Pin 16 - Energía de la batería

Vista TRASERA del enchufe macho del dispositivo de interfaz (donde se insertan los pines)
(Esta es también la vista frontal del conector hembra en el vehículo)

A continuación se explica cómo conectarlos al circuito de interfaz. Tenga en cuenta que aquí solo se utilizan y se enumeran algunos de los pines.
Si está cableando un conector macho, recuerde: El diagrama anterior se refiere a la PARTE POSTERIOR del conector macho y asegúrese de cablear el conector macho correctamente:

SEÑAL Nombre PIN #
Salida de datos de Rx 2
En Tx Data 3
Tierra tierra 5

PIN DEL CONECTOR DE SEÑAL DE INTERFAZ #
12 voltios (batería del vehículo) 16
Tierra de señal 5
Bus + (para VPW y PWM) 2
Bus - (solo para Pwm) 10
Línea L (para ISO 9141) 15
Línea K (para ISO 9141) 7

Todos los demás pines no se utilizan.
Este cable no debe medir más de 3 a 4 pies. Esto ya lo indiqué por favor vuelvan a leer todo de nuevo.
No se necesita blindaje a Chassis, por lo tanto, si está presente, déjelo desconectado para reducir la capacitancia.

CONECTOR SERIE para PC
El único otro conector para cablear es el conector D hembra de 9 pines estándar que se conecta a su PC.
Solo es necesario cablear 3 pines. Vista TRASERA del conector D hembra de 9 pines. (donde se insertan los pines o se sueldan los cables).

1616012953656.png
A continuación se explica cómo conectarlos al circuito de interfaz.
Tengan en cuenta que aquí solo se utilizan y se enumeran algunos de los pines.

Recuerden que el diagrama se refiere a la PARTE POSTERIOR del conector D hembra, y asegúrense de cablear el conector correctamente:
Todos los demás pines no se utilizan. Normalmente, no necesita un protector, por lo que, si está presente, no es necesario conectarlo. Se recomienda mantener la longitud del cable de 30 (medidas trump) pies o menos. Es posible que puedna alargarlo, dependiendo de las características del cable y del puerto serie en sí.

NOTAS SOBRE LOS COMPONENTES
La mayoría de las resistencias pueden ser una película estándar de carbono al 5%. Hay una resistencia (270 ohmios) que debería ser de 1/2 vatio. Si solo desea usar este circuito con uno o dos tipos de protocolos, puede mirar el esquema y omitir cualquier parte que no sea necesaria.

Por ejemplo, si solo quisiera usar con VPW (Domestic General Motors), solo necesitaría 3 cables (pines 16.5 y 2) conectados al vehículo. En este caso, también podría omitir varios componentes de su circuito.

A continuación, se muestran algunos ejemplos de partes que se pueden omitir.

Si no usa PWM, puede omitir:
R4, R6, R7, R8, R9, R10, Q1, Q2, D1

Si no usa ISO, puede omitir:
R15, R16, R17, R18, R19, R21, Q4, Q5

Si no usa VPW, puede omitir:
R13, R14, R23, R24, D2, D3, Q3

Los componentes utilizados en el esquema no son críticos. Excepto por el microcontrolador preprogramado y el cristal, probablemente pueda obtener todas las piezas de Radio Shack (por lo general, están disponibles a un menor costo en tiendas de electrónica o por pedido por correo).

Pueden utilizar resistencias de película de carbono de tolerancia simple del 5%. Si construyen este circuito en una placa perfilada o en una placa de circuito impreso sin carcasa: Tengan cuidado de no colocarlo sobre una superficie conductora, provocando un cortocircuito. Su vehículo está bastante bien protegido, pero podría dañar el circuito de interfaz o impedir que funcione.

REINICIO
Tengan en cuenta que no hay un botón de reinicio para esta interfaz. Para reiniciar, simplemente desenchúfelo del vehículo y luego vuelva a enchufarlo al vehículo.
(Eso reiniciará automáticamente el procesador de interfaz). Luego reinicie el programa de software de la PC y reinicialice la interfaz.

Código HEX para el PIC
C:
:100000008A110A120E280000FF00030E8301FE0071
:1000100033257E0E8300FF0E7F0E0900C830A0003E
:10002000A101082783169B018511051586178612E5
:1000300083128516861285118B1783168112811102
:100040000115811401148312F9236830BF001A309E
:10005000C00006264C20E921391E30280E2629280A
:100060001F3083057C252322391D38283911292882
:100070001F308305391E3E280E2629281F30830590
:100080002B281926391E46280E2629281F308305BD
:100090004E266B2641284B28391483235008A00094
:1000A0002009D0005008203C031D5C28FF30A00030
:1000B0002009CF00C222A8281F3083055008403CE9
:1000C000031D6428D923A6281F3083055008603CEF
:1000D000031D6C280E25A4281F3083055008703C92
:1000E000031D78286730A0002009CF00C222A22873
:1000F0001F3083055008BD3C031D8028D325A02850
:100100001F3083055008DD3C031D89288A24F9230C
:100110009E281F3083055008423C031D9C288323E2
:100120005008A0002009BA00AB2083235008A0008B
:100130002009CB003910DF281F3083051F308305CD
:100140001F3083051F3083051F3083051F30830553
:100150001F3083054C2883235008A0002009C300CA
:1001600083235008A0002009C4004308A600A7016B
:100170000030A2000130A300D626C1002508C2002D
:1001800041084407C10042080318013E003EC20076
:100190004108A0004208A1000230A200A301EC2601
:1001A000C5002108C6004508A0004608A10002308D
:1001B000A200A301EC26C5002108C6000800BE016C
:1001C0003A1CE5283E08013EBE001F308305BA1CDC
:1001D000EC283E08013EBE001F3083053A1DF3287F
:1001E0003E08013EBE001F308305BA1DFA283E08B6
:1001F000013EBE001F3083053A1E01293E08013E24
:10020000BE001F308305BA1E08293E08013EBE000D
:100210001F3083053A1F0F293E08013EBE001F30E4
:100220008305BA1F16293E08013EBE001F30830514
:100230003E08013C031D1D2931291F3083053E085E
:10024000033C031D242931291F3083053E08053C4A
:10025000031D2B2931291F3083053E08073C031D50
:100260003329B91251291F3083053E08023C031D72
:100270003A294E291F3083053E08043C031D4129BD
:100280004E291F3083053E08063C031D48294E2990
:100290001F3083053E08083C031D4F29B9161F3047
:1002A00083051F3083053A08333C031D5829B912D2
:1002B0001F3083058616C830A000A1010827013031
:1002C000BE003E08083C031C88293E08083C031D6C
:1002D00072291F308305B91E72293A1886163A1CF6
:1002E000861278291F3083053A1C86163A18861222
:1002F0001F3083053A08A000A10101305427BA003D
:10030000C830A000A10108270130BE07031C6129E5
:100310001F30830586123912B9148E2978250130D1
:10032000BE003E08033C031CB92908235008A00066
:100330002009CF005008553C0319A5291F3083051B
:100340003E08013C031DA52939161F308305391EBF
:10035000AC29B9100E2629281F3083054D08013C11
:10036000031DB329C2221F3083050130BE07031CC1
:1003700091291F3083054C08A000A10108274F08D0
:10038000BD0068227825B9114B08013C031DCC291A
:10039000B910FC252B28E7291F3083054B08023CA8
:1003A000031DE12908235008A0002009CF004D08B3
:1003B000013C031DDC29C2221F308305B9104128EE
:1003C000E5291F3083050E2629281F3083051F309D
:1003D00083050130BE003E083B02031C152A08239A
:1003E000391EF32908001F3083055008BD0050084E
:1003F000A0002009CF00C2223E08013C031D022AB2
:100400003D08BB001F3083053E08023C031D0A2A3D
:100410003D08BC001F3083053D08A0002009BD0039
:1004200068220130BE07031CEB291F308305082317
:10043000391E1B2A08001F3083055008A000200920
:10044000CF00C2220800BE013E0803171002031CA1
:100450005C2A03133E08013C031D3E2A3C08FF3C76
:10046000031D342ABC01392A1F3083053C08013E94
:10047000BC001F3083053C08BD00472A1F308305A0
:100480003E08103E840083170008BD0083131F3010
:10049000830568223E08031710020319512A03132B
:1004A00008231F308305391E562A08001F30830594
:1004B0000130BE07031C242A1F30830503171108CF
:1004C000013C031D652A0313FC251F30830508002A
:1004D00086124808A000A101082786164108A80036
:1004E0004208A9003F273D1C86163D188612410888
:1004F000A8004208A9003F27BD1C8616BD18861219
:100500004108A8004208A9003F273D1D86163D1955
:1005100086124108A8004208A9003F27BD1D861683
:10052000BD1986124108A8004208A9003F273D1EB8
:1005300086163D1A86124108A8004208A9003F27E6
:10054000BD1E8616BD1A86124108A8004208A900E1
:100550003F273D1F86163D1B86124108A800420812
:10056000A9003F27BD1F8616BD1B86124108A800A3
:100570004208A9003F2786124108A8004208A900A6
:100580003F27080085114708A000A101082785150D
:100590003F08A80031274F1885154F1C85113F08CB
:1005A000A8003127CF188515CF1C85113F08A8005A
:1005B00031274F1985154F1D85113F08A800312798
:1005C000CF198515CF1D85113F08A80031274F1A77
:1005D00085154F1E85113F08A8003127CF1A8515B4
:1005E000CF1E85113F08A80031274F1B85154F1FCF
:1005F00085113F08A8003127CF1B8515CF1F851116
:100600003F08A800312785113F08A80031270800BE
:100610003912B91C0E2B5408D2001D2B1F30830534
:100620004B08013C031D172B5508D2001B2B1F3014
:1006300083055608D2001F3083051F3083058B16B3
:10064000391E232B08001F308305861B802B78253D
:100650004108A8004208A9003F274508A80046080D
:10066000A9003F27861B5014861F50104108A80080
:100670004208A9003F27861BD014861FD0104108CE
:10068000A8004208A9003F27861B5015861F50115D
:100690004108A8004208A9003F27861BD015861FE5
:1006A000D0114108A8004208A9003F27861B501618
:1006B000861F50124108A8004208A9003F27861B48
:1006C000D016861FD0124108A8004208A9003F2773
:1006D000861B5017861F50134108A8004208A90026
:1006E0003F27861BD017861FD0134108A800420859
:1006F000A9003F274508A8004608A9003F27080091
:100700001F308305202B39125308D2003918892B4A
:100710008B161F308305391E8E2B08001F30830572
:10072000051DD62B7825B9153F08A80031274008AC
:10073000A800312705195014051D50103F08A800C6
:1007400031270519D014051DD0103F08A800312706
:1007500005195015051D50113F08A800312705192E
:10076000D015051DD0113F08A800312705195016D6
:10077000051D50123F08A80031270519D016051D88
:10078000D0123F08A800312705195017051D501336
:100790003F08A80031270519D017051DD0133F08C1
:1007A000A80031274008A800312708001F30830522
:1007B0008B2BD70157080B3C031CF62B570803174C
:1007C0008D0083168C130C14000083120C08031385
:1007D000D8000230A000A10108275808A000200975
:1007E000CF00C2220130D707031CDA2B1F3083054C
:1007F0000800D70157080B3C031C872C5708031728
:100800008D0083168C130C14000083120C08031344
:10081000D8000530A000A10108275708003C031D9F
:10082000142C5808CE00812C1F3083055708013C3A
:10083000031D1D2C5808CC007F2C1F308305570842
:10084000023C031D262C5808CD007D2C1F3083054B
:100850005708033C031D2F2C5808D3007B2C1F3056
:1008600083055708043C031D382C5808D500792C03
:100870001F3083055708053C031D412C5808C7004D
:10088000772C1F3083055708063C031D4A2C580857
:10089000C800752C1F3083055708073C031D532CD7
:1008A0005808C900732C1F3083055708083C031DE6
:1008B0005C2C5808CA00712C1F3083055708093C6E
:1008C000031D652C5808D6006F2C1F308305570870
:1008D0000B3C031D6D2C5808D4001F3083051F30BE
:1008E00083051F3083051F3083051F3083051F30AC
:1008F00083051F3083051F3083051F3083051F309C
:1009000083051F3083050130D707031CFA2B1F30E6
:1009100083050800BE013E080B3C031C0B2D3E085E
:10092000003C031D942CD8011F3083053E08013C78
:10093000031D9C2C1430D8001F3083053E08023C58
:10094000031DA42C0130D8001F3083053E08033C52
:10095000031DAC2C0930D8001F3083053E08043C31
:10096000031DB42C8030D8001F3083053E08053CA1
:10097000031DBC2C0530D8001F3083053E08063C03
:10098000031DC42C0530D8001F3083053E08073CEA
:10099000031DCC2C0A30D8001F3083053E08083CCC
:1009A000031DD42CFF30D8001F3083053E08093CBE
:1009B000031DDC2C0C30D8001F3083053E080A3C98
:1009C000031DE42CFF30D8001F3083053E080B3C8C
:1009D000031DEC2C2830D8001F3083053E08031778
:1009E0008D000313580803178C0083168C130C1505
:1009F00055308D00AA308D008C148C18FD2C0C11F4
:100A0000031383120D120230A000A1010827013048
:100A1000BE07031C8B2C1F3083050800832350085E
:100A2000A0002009D70083235008A0002009D80087
:100A3000570803178D000313580803178C008316FB
:100A40008C130C1555308D00AA308D008C148C1829
:100A5000272D0C11031383120D120230A000A101E7
:100A60000827F92308002008AC002108AD0022085F
:100A7000AE002308AF002408B0002508B100260806
:100A8000B2002708B3002808B4002908B5002A08D6
:100A9000B6002B08B7000408B80052085102031C26
:100AA000552D8B12D10139165A2D1F30830551084F
:100AB000013ED1001F3083050B112C08A0002D082A
:100AC000A1002E08A2002F08A3003008A4003108BE
:100AD000A5003208A6003308A7003408A80035088E
:100AE000A9003608AA003708AB00380884000800BF
:100AF0008B12D1010B1108008323391E902D4E0853
:100B0000003C03198D2D5908013ED9004E085902A9
:100B1000031C8B2D39151F3083051F3083050800FA
:100B20001F308305D901B91DD02DB9115008A0007F
:100B30002009BE003E08193C03189F2D08001F30F5
:100B400083055008A000200903179000031301300B
:100B5000BE003E0803171002031CCE2D031383238F
:100B6000391EB42DFC2508001F3083055008A00055
:100B70002009AA003E08103E84002A08831780003E
:100B8000831303171208063C031DC82D03133915E0
:100B90001F3083050130BE07031CA92D1F308305BC
:100BA0001F308305080083235008A0002009D000CF
:100BB0005008013C031DE12D6830BF001A30C00011
:100BC000F92D1F3083055008023C031DEC2D3430F5
:100BD000BF000A30C000F72D1F3083055008033CCA
:100BE000031DF52D1930BF00C0011F3083051F30D4
:100BF00083051F308305080003170330900091011F
:100C000009309200033093000313080039123911A0
:100C1000B9103910B911D901782508003912EE3010
:100C2000A0002009CF0015260800C222C222C2223D
:100C300008008323391E1D2E242E1F308305031721
:100C40001008193C0318262E031308001F308305D3
:100C50005008A00020090317900003130130BE00C4
:100C60003E0803171002031C4B2E03138323391E67
:100C70003A2E08001F3083055008A0002009AA0062
:100C80003E08103E84002A08831780008313013039
:100C9000BE07031C302E1F30830508000130BE0044
:100CA0003E0803171002031C662E03133E08103E75
:100CB000840083170008BD00831368224908A00040
:100CC000A10108270130BE07031C502E1F308305E9
:100CD0000130BE0008000823391E8C2EBB010130F4
:100CE0003E02BE003E08031790000313BB013B0801
:100CF0003E02031C892E3B08103E84008317000827
:100D0000A0002009CF008313C2220130BB07031CBF
:100D1000772E1F30830541281F3083055008AA0015
:100D20003E08103E84002A088317800083133E0883
:100D3000013EBE006B2E080086122C30A000013050
:100D4000A100082786164A08A000A10108278612DC
:100D50004A08A000A10108270130BE003E08031781
:100D60001002031CC42E03133E08103E8400831798
:100D70000008BD00831368224908A000A1010827CC
:100D80000130BE07031CAE2E1F3083050823391E19
:100D9000CA2E29281F3083055008BD005008A00026
:100DA0002009CF00C222C62E2928D52E1030A80037
:100DB000A101A001A70CA60C031CE42E2208A00789
:100DC00023080318230FA107A10CA00CA50CA40C49
:020EB000080038
:02400E00622F1F
:02401000FC3F73
:10420000FF001400010009008000050005000A00FD
:00000001FF

Listado de Materiales:

C:
Value        Description            Cantidad        Nomenclatura
.01 UF         Capacitor, 25V         2                 C5, C6
.1 UF         Capacitor, 25V         1                C4
.47 UF         Capacitor, 50V         1                 C3
20 pf         Capacitor             2                 C2,C1

10 KOhm     Resistor, 1/4 Watt     9                 R11, R12, R23, R9, R1, R3, R4, R25, R8
18 KOhm     Resistor, 1/4 Watt     1                 R24
1 KOhm         Resistor, 1/4 Watt     8                 R19, R18, R7, R20, R22, R5, R6, R13
5.6 KOhm     Resistor, 1/4 Watt     1                 R21
510 Ohm     Resistor, 1/4 Watt     2                 R16, R17
62 KOhm     Resistor, 1/4 Watt     1                 R10
9.1 KOhm     Resistor, 1/4 Watt     1                 R15
270 Ohm     Resistor, 1/2 Watt     1                 R14
-             No usado             1                 R2
1N4739         Zener, 9.1V, 1W     1                 D2
1N4148         Diodo                 2                 D1, D3
PN2222         Transistor, NPN     3                 Q3, Q4, Q5
PN3904         Transistor, NPN     1                 Q2
PN3906         Transistor, PNP     1                 Q1
7805         Regulador, 5V         1                 IC2
LM339N         Quad Comparador     1                 IC3
16F84         Microprocesador     1                 IC1
20 MHz         Cristal, 20 Mhz     1                 XTL 1


DIAGRAMA ELECTRONICO
Proporcionado para FOROSDEELECTRONICA por Vanesa Hernandez (yo)

1616014911216.png


Para el programa en Visual Basic 6 lo proporcionaré cuando algún mod esté de acuerdo...
Por lo menos con las instrucciones que he dejado aquí claramente, es que se puede realizar algún programa, simples protocolos de comunicación serial.

Mientras tanto, les dejo el Ejecutable Original en instalador, recuerden que puede que requiera las librerias DLL y OCX de Visual Basic...
 

Adjuntos

  • Software.part1.rar
    1.9 MB · Visitas: 128
  • Software.part2.rar
    1.2 MB · Visitas: 124
Última edición:
Buenas!; anduve con un poco de tiempo libre este fin de semana y quise agregarle un pcb a este circuito, hice un par de cambios pequeños (vref en vez de resistencias, usb con un ch340, full smd)
1632190529848.png

sigue siendo todo igual de modular que el diseño original, en caso de que alguien no quiera usar X parte, es solo no usar los componentes que estan en el recuadro del mismo

JP1 sirve para habilitar el circuito original del serial, con el J2 van a estar las conexiones de rx/tx/gnd para enganchar al header DB9
en caso de no querer usar la alimentación por USB, se puede cortar el contacto 1-2 de JP2 y soldarlo en 2-3 para utilizar los 12v del OBDII

1632190651145.png
1632190673896.png
Link para el BOM (csv, no me deja subirlo :c)
Scanner BOM
todo se diseñó en KiCAD 5.99, pueden bajar y editar libremente los archivos desde el repositorio de git:
GitHub - Churrosoft/scanner_ISO9141 at v1
 

Adjuntos

  • grb.zip
    111 KB · Visitas: 63
  • scanner_v1.pdf
    71.6 KB · Visitas: 77
Por lo menos con las instrucciones que he dejado aquí claramente, es que se puede realizar algún programa, simples protocolos de comunicación serial.
Te consulto. Podrias poner un listado de los comandos a enviar, y los que recibe?
Y qué datos (en general) se pueden recoger, y cómo los recibe?

Digo esto, para ver si puedo realizar un programa bajo Windows. Tendrian que probarlos ustedes, ya que no tengo auto con OBDxxx (tengo un Gol del 94').

PD: Excelente aporte!!!

PD2: No lo tomen como compromiso, dije veo si puedo, y agrego que si tengo tiempo
 
Solo que me autorice algun moderador, publico aquí la porción del código fuente que tenga las instrucciones de conexión o bien, todo el código completo para pasarlo a Visual .NET

"Para el programa en Visual Basic 6 lo proporcionaré cuando algún mod esté de acuerdo..."

Te consulto. Podrias poner un listado de los comandos a enviar, y los que recibe?
Y qué datos (en general) se pueden recoger, y cómo los recibe?

Digo esto, para ver si puedo realizar un programa bajo Windows. Tendrian que probarlos ustedes, ya que no tengo auto con OBDxxx (tengo un Gol del 94').

PD: Excelente aporte!!!

PD2: No lo tomen como compromiso, dije veo si puedo, y agrego que si tengo tiempo
 
En todo caso, habia pedido algo generico, cosa que incluso desde cualquier aparato, sin importar lenguaje o sistema operativo, pueda funcionar.

Si quieres poner el código no hay drama, pero mas que nada seria saber si, por ejemplo, envias por serie "HOLA", que ese comando sea para iniciar la transmision, por ejemplo....
No se si me explico, o si ya habias entendido... Jjaja...
 
En todo caso, habia pedido algo generico, cosa que incluso desde cualquier aparato, sin importar lenguaje o sistema operativo, pueda funcionar.

Si quieres poner el código no hay drama, pero mas que nada seria saber si, por ejemplo, envias por serie "HOLA", que ese comando sea para iniciar la transmision, por ejemplo....
No se si me explico, o si ya habias entendido... Jjaja...
Te lo pasaré a ti y tu lo modificas, no te preocupes.
 
En todo caso, habia pedido algo generico, cosa que incluso desde cualquier aparato, sin importar lenguaje o sistema operativo, pueda funcionar.

Si quieres poner el código no hay drama, pero mas que nada seria saber si, por ejemplo, envias por serie "HOLA", que ese comando sea para iniciar la transmision, por ejemplo....
No se si me explico, o si ya habias entendido... Jjaja...

Estaba algo ausente... Me recordé de tu tema, pues te comento que es el protocolo de comunicación. ESto es lo que recuerdo de este circuito, espero haberme entendido bien, caso contrario me avisan y les paso el código fuente en enlace de GITHUB. Pero supongo que con el protoolo y los modos de comunicación, será suficiente.

Y solo te pido que nombres la fuente de donde mejoraste el proyecto: de FOROSDEELECTRONICA y mi nombre porque asi creo que lo establece la licencia CREATIVE COMMONS CC porque lo tienes como licencia MIT Esto para @FrenouxDiego porque no veo que se mencione eso en GITHUB y lo pones como v0.1 Y si no pones los créditos no puedo compartir el protocolo. Ya que creo, sería la versión 1.2 de este proyecto presentado. Mi idea es que Forosdeelectronica sea conocido, sea una fuente de información. Cosa que muchos no hacen para compartir.

Cambia la licencia de MIT a CC y pon los enlaces correspondientes a FOROSDEELECTRONICA por favor. Gracias
 
Última edición:
Excelente.
Yo no quiero llevarme el credito de nada, y si tu pedido es incluir el foro, obviamente lo incluyo, mas tu nombre, mas todo lo que pidas.

Yo las cosas la hago de hobby, y tengo un trabajo totalmente diferente estable, asi que en ese sentido, todo lo que me pidas para incluir, lo voy hacer...

No me esperen pronto a una primera version, ya que no siempre ando con tiempo, pero a medida que pueda ir generando el programa, subo para que lo prueben.

Eso si, quien descargue el programa, se compromete de forma explicita a realizar un "feedback" del funcionamiento del programa.
Esto lo pongo como condicion, para poder mejorar y actualizar lo que haga falta.

Si les funciono, colocan un "me gusta" a la publicacion (cuando suba el programa), sino deberan describir el problema lo mas detallado...
 
Bueno como hay interés @DJ T3 aporto mas info de mi experiencia:

· En esta web List of OBD2 and ELM327 compatible vehicles - Outils OBD Facile hay una buena base de datos sobre que protocolo usa cada coche poniendo la marca y modelo

· En aliexpress y otros sitios hay bastantes conversores de OBD2 a bluetooth o serial via USB ELM327, recomiendo buscar la versión ELM327 V1.5 que parece el clon bueno y soporta los demás protocolos, (hay otros falsos con versiones mas alta que solo soportan ISO9141), muy útil para otros protocolos más complejos que ISO9141 como VPW PWM CAN KWP

Aun teniendo el HW OBD2 me es útil el cable "tonto" para un KIA usando un emulador llamado Cascade y unos ROM compatibles del cual ya no es nada de software libre, y la peculiaridad de esto es que accede a muchísima mas info sobre el coche e incluso es capaz de mandarle algunas ordenes de test, tipo arrancar aire-acondicionado entre otras (serán códigos muy específicos de cada fabricante, y difícil de conseguir con software libre)
 
Atrás
Arriba