# El OBDII Completo/OBD En Breve/DTC a fondo

El estándar SAE J2012 (SAE, 2007) se enfoca a estandarizar los Códigos de Diagnostico de Falla (del inglés DTC Diagnostic Trouble Code) que los sistemas OBD de los vehículos son requeridos de reportar cuando hay una falla en el funcionamiento. Este estándar incluye el formato del DTC así como un listado de códigos comunes.
El estándar SAE J2012 fue originalmente desarrollado para cumplir con los requerimientos de OBD de la legislación de los E.U.A. para los vehículos de 1996 en delante. El estándar ISO 15031-6 se basó en este mismo para los vehículos Europeos a partir del 2000, por lo que ambos estándares son equivalentes.
La siguiente tabla (fuente: SAE J2012) especifica los sistemas, categorías de códigos, valores en hexadecimal y secciones en particular de los sistemas de diagnóstico:
| Sistema | Categoria del Codigo | Valor Hex | Apendice |
| Body | B0xxx – B3xxx | 8xxx – Bxxx | B0 |
| Chassis | C0xxx – C3xxx | 4xxx – 7xxx | C0 |
| Powertrain | P0xxx – P3xxx | 0xxx – 3xxx | P0 |
| Network | U0xxx – U3xxx | Cxxx - Fxxx | U0 |
Los códigos DTc recomendados consisten de un código hexadecimal de tres dígitos precedidos de un designador alfanumérico. Los designadores alfanuméricos son B0-B3, C0-C3, P0-P3 y U0-U3. Estos corresponden a cuatro sets de códigos de diagnóstico cada uno para los cuatro dominios del automóvil Body, Chassis, tren motriz y dispositivos en red. La estructura de código en si es parcialmente abierta. Una porción de estos códigos está abierta para actualizaciones futuras. Entre estos están porciones de B0, C0, P0, P2, P3, U0 y U3.
La mayoría de las fallas en sensores y sistemas están relacionadas en cuatro categorías:
* Circuito abierto o falla general
* Falla de rango o desempeño
* Circuito bajo
* Circuito alto
La gran mayoría de los códigos están ubicados orientados a estas fallas.
Respecto a la estructura del código, el DTC consiste de un designador alfanumérico ej. B0 seguido de un número hexadecimal. La designación del designador alfa debe estar determinada por el área más apropiada para esa función. En la mayoría de los casos el designador alfanumérico está implícito dependiendo del controlador.
Ejemplo: el DTC de 2 bytes con valor en el bus de datos $9234 se despliega a los técnicos como el código DTC B1234 como se muestra en la siguiente figura
| DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo | DTC Byte Bajo |
| $9 | $9 | $9 | $9 | $2 | $2 | $2 | $2 | $3 | $3 | $3 | $3 | $4 | $4 | $4 | $4 |
| 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
| B | B | 1 | 1 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 |
Ejemplo: el DTC de 3 bytes con valor de bus de datos $92 34 00 se mostraría a los técnicos como el DTC con código B1234-00, como se muestra en la siguiente figura. El byte menor (LOW Byte) se debe desplegar en hexadecimal, ej. $1A se debe desplegar como 1A
| DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte Alto | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte enmedio | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo | DTC Byte bajo |
| $9 | $9 | $9 | $9 | $2 | $2 | $2 | $2 | $3 | $3 | $3 | $3 | $4 | $4 | $4 | $4 | $0 | $0 | $0 | $0 | $0 | $0 | $0 | $0 |
| 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| B | B | 1 | 1 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 | 4 | 4 | 4 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Este mismo estándar SAE J2012 contempla cuales grupos de DTCs controlar y cuales dejar abiertos a los fabricantes para definirlos de acuerdo a sus necesidades particulares. Sin embargo, establece lineamientos a respetar como lo es mantener consistencia para un mismo fabricante a través de todos sus vehículos, y respetar grupos actuales de datos por decir los códigos 100s y 200s para medición de aire y gasolina y 300s para problemas de ignición.
Para el sistema de Body:
* B0xxx controlados por ISO/SAE
* B1xxx Controlados por cada fabricante
* B2xxx Controlados por cada fabricante
* B3xxx Reservados por el mismo estándar
Para el sistema de Chasis:
* C0xxx controlados por ISO/SAE
* C1xxx Controlados por cada fabricante
* C2xxx Controlados por cada fabricante
* C3xxx Reservados por el mismo estándar
Para el sistema de Tren motriz:
* P0xxx controlados por ISO/SAE
* P1xxx Controlados por cada fabricante
* P2xxx Controlados por ISO/SAE
* P3xxx Controlados por cada fabricante y Reservados por el mismo estándar
Para sistemas en Red:
* U0xxx controlados por ISO/SAE
* U1xxx Controlados por cada fabricante
* U2xxx Controlados por ISO/SAE
* U3xxx Controlados por cada fabricante y Reservados por el mismo estándar
Este estándar SAE J2012 en su apéndice A0 establece nomenclaturas guia para los sistemas y nombres comunes. Por ejemplo, para la temperatura del motor la establece por medio del término en inglés Engine Coolant Temperature con siglas ECT. En el apéndice B0 establece códigos DTC estándar para los diferentes dominios. El estándar contempla alrededor de 100 páginas de códigos.
REFERENCIA: Protocolos SAE / ISO relacionados a OBD Next Page: PIDs a fondo Previous Page: OBD, PID y DTC en Breve Main Page: El OBDII Completo - Indice