Decodificador CAN Bus & J1939
Herramienta de análisis de red vehicular - Soporte DBC
Decodificador de ID CAN
Analiza el ID CAN para extraer parámetros J1939 incluyendo Prioridad, PGN, Dirección de Origen y Dirección de Destino.
Documentación
Esta herramienta proporciona soporte completo para el análisis de protocolos CAN (Controller Area Network) y SAE J1939. CAN es el estándar de comunicación dominante en aplicaciones automotrices e industriales, mientras que J1939 extiende CAN para vehículos pesados y equipos fuera de carretera.
Entendiendo el protocolo J1939
SAE J1939 es un protocolo de capa superior construido sobre CAN 2.0B con identificadores extendidos de 29 bits. El ID CAN de 29 bits codifica múltiples parámetros que definen el enrutamiento y prioridad del mensaje.
Estructura del identificador J1939
El identificador de 29 bits está dividido en campos distintos. Desde el más significativo al menos significativo, la estructura contiene Prioridad (3 bits), Reservado/EDP (1 bit), Página de datos (1 bit), Formato PDU (8 bits), PDU Específico (8 bits) y Dirección de Origen (8 bits). Esta codificación permite una priorización y direccionamiento eficiente de mensajes dentro de la red vehicular.
Números de grupo de parámetros (PGN)
PGN es el mecanismo de direccionamiento fundamental en J1939. Identifica el tipo y contenido de los datos transmitidos. El PGN se deriva de los campos Formato PDU y PDU Específico, con la interpretación dependiendo de si el mensaje usa formato PDU1 o PDU2.
Cuando el Formato PDU es menor que 240 (0xF0), el mensaje es formato PDU1 con direccionamiento a destino específico. El campo PDU Específico contiene la Dirección de Destino. Cuando el Formato PDU es 240 o mayor, el mensaje es formato PDU2 para mensajes de difusión, y PDU Específico se convierte en parte del PGN mismo.
Métodos de extracción de señal
Los protocolos J1939 y CAN codifican múltiples señales dentro de tramas de datos de 8 bytes. Cada señal tiene una posición de bit inicial definida, longitud de bits y orden de bytes. Esta herramienta soporta las convenciones de orden Intel (Little-Endian) y Motorola (Big-Endian).
Los valores físicos se calculan a partir de los valores de señal brutos usando la fórmula estándar: Valor físico = Valor bruto × Factor + Desplazamiento. Esta conversión transforma las lecturas binarias del sensor en unidades de ingeniería significativas como temperatura, presión o velocidad.
PGNs J1939 comunes
- PGN 65262 (0xFEEE) - Temperatura del motor 1: Contiene lecturas de temperatura del refrigerante, combustible y aceite del motor.
- PGN 61444 (0xF004) - Controlador electrónico del motor 1: Reporta el par real del motor, par demandado por el conductor y velocidad del motor (RPM).
- PGN 65265 (0xFEF1) - Control de crucero/Velocidad del vehículo: Proporciona mediciones de velocidad basadas en ruedas y motor.
- PGN 65269 (0xFEF5) - Condiciones ambientales: Contiene presión barométrica, temperatura ambiente y temperatura de admisión de aire del motor.
- PGN 65263 (0xFEEF) - Nivel/Presión de fluidos del motor: Reporta presión de suministro de combustible, presión de aceite y presión de refrigerante.
Aplicaciones prácticas
- Desarrollo de ECU: Valida formatos de mensaje durante el desarrollo de controladores embebidos y pruebas de integración.
- Diagnóstico vehicular: Analiza el tráfico CAN en vivo para solucionar problemas de comunicación y verificar lecturas de sensores.
- Telemática de flotas: Analiza datos J1939 para monitoreo de consumo de combustible, seguimiento de horas del motor y mantenimiento predictivo.
- Calibración del tren motriz: Extrae parámetros del motor para ajuste de rendimiento y verificación de cumplimiento de emisiones.
- Educación en protocolos: Aprende la estructura del protocolo J1939 a través de la decodificación práctica de ejemplos de mensajes reales.
Convenciones de orden de bytes
Intel (Little-Endian) comienza desde el bit y byte menos significativos, comúnmente usado en procesadores x86 y muchas ECUs modernas. Motorola (Big-Endian) comienza desde el bit y byte más significativos, tradicional en CAN y aplicaciones automotrices. Seleccionar el orden de bytes correcto es crítico para una interpretación precisa de señales.
Resumen de funcionalidades
Este decodificador CAN Bus integral ofrece cuatro módulos funcionales principales para satisfacer diversas necesidades de análisis de red vehicular:
- Decodificación ID: Analiza IDs extendidos J1939 de 29 bits o IDs estándar de 11 bits. Extrae prioridad, PGN, dirección fuente, dirección destino e información de formato PDU.
- Extracción de datos: Extrae valores de señal de tramas CAN de 8 bytes con bit de inicio, longitud de bit y orden de bytes configurables. Soporta enteros con/sin signo y flotantes IEEE 754.
- Visor de logs: Analiza archivos log CAN de múltiples formatos incluyendo Linux candump, Vector ASC y PCAN TRC. Filtrado por ID CAN y exportación CSV.
- Decodificador DBC: Carga archivos DBC Vector CANdb++ para decodificar automáticamente todas las señales. Explora mensajes, busca señales, visualiza nodos y ejecuta decodificación rápida de señales.
Soporte de archivos DBC
Los archivos DBC (CAN Database) definen la estructura completa de comunicaciones CAN, incluyendo mensajes, señales, nodos y descripciones de valores. Esta herramienta soporta completamente archivos DBC en formato Vector CANdb++.
Después de cargar un archivo DBC, puede explorar todos los mensajes definidos con sus tiempos de ciclo y conteo de señales, buscar entre miles de señales por nombre o unidad, ver nodos ECU y sus mensajes transmitidos, y decodificar rápidamente datos CAN crudos usando definiciones de señal predefinidas.
El parser DBC soporta: definiciones de mensajes (BO_), definiciones de señales (SG_), declaraciones de nodos (BU_), descripciones de valores (VAL_), comentarios (CM_), atributos (incluyendo tiempo de ciclo y valores iniciales), orden de bytes Intel/Motorola, y tipos de valores con/sin signo.
Formatos de entrada soportados
Soporta múltiples formatos de entrada de datos para flexibilidad:
- Hexadecimal con espacios: Formato estándar con bytes separados por espacios. Ejemplo:
FF 00 11 22 33 44 55 66 - Hexadecimal sin espacios: Cadena hexadecimal continua sin espacios. Ejemplo:
FF00112233445566 - Base64: Datos binarios codificados en Base64. Ejemplo:
/wARIjNEVWY= - Array C/C++: Notación de array estilo C. Ejemplo:
0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66
Formatos de archivos log
El visor de logs soporta detección automática de formatos de log CAN comunes:
- Linux candump:
(1234567890.123456) can0 18FEF100#FF00112233445566 - Vector ASC:
0.000000 1 18FEF100x Rx d 8 FF 00 11 22 33 44 55 66 - PCAN Trace:
1) 1234.5 18FEF100 8 FF 00 11 22 33 44 55 66
Soporte de protocolo de transporte
El protocolo de transporte J1939 (TP) permite la transmisión de mensajes que exceden 8 bytes. Habilitar el reensamblaje TP permite analizar automáticamente mensajes multi-trama (BAM y CMDT) combinándolos en cargas útiles completas.
Herramientas Relacionadas
Analizador Modbus RTU/ASCII/TCP
Analizar, codificar y depurar tramas del protocolo Modbus RTU/ASCII/TCP con cálculo de CRC-16/LRC y depuración serie
Depurador de puerto serie en línea
Herramienta de depuración serie basada en navegador - sin descarga requerida, monitoreo en tiempo real vía Web Serial API
Decodificador LoRaWAN
Decodificar y codificar paquetes LoRaWAN PHYPayload con calculadora de tiempo en el aire, soporte OTAA/ABP y tramas de datos
Codec MQTT
Codificar y decodificar paquetes del protocolo MQTT con análisis detallado de campos, visor hex y constructor de paquetes