Inicio / Blog / Laboratorio CAN/TWAI
Software automotriz y sistemas embebidos

ESP32 CAN/TWAI: laboratorio de telemetría sin arriesgar un vehículo

Los datos CAN conectan el hardware embebido con la observabilidad de software: una trama puede convertirse en señal decodificada, serie temporal y diagnóstico. El primer proyecto debe ser una bancada cerrada con transmisores conocidos, no un vehículo en uso. Una transmisión involuntaria o mal formada puede afectar sistemas relacionados con la seguridad.

Límite de seguridad: mantén el ejercicio eléctricamente aislado de vehículos de producción. Usa dos nodos de bancada, fuente con corriente limitada y un transceptor verificado. No transmitas en la red de un vehículo ni consideres listen-only una garantía universal de aislamiento; comprueba el ESP32 exacto y sus erratas.

Construye un flujo controlado de trama a gráfico

Separa adquisición, interpretación y almacenamiento
1 / GenerarTramas de prueba conocidas desde otro nodo.
2 / RecibirControlador TWAI y transceptor externo.
3 / DecodificarMapa documentado de señales y unidades.
4 / ValidarRangos, contadores y marcas temporales.
5 / ObservarPersistir y graficar con procedencia de trama.

El periférico TWAI del ESP32 es un controlador, no una interfaz física completa: el bus necesita un transceptor externo adecuado. Comprueba pines, niveles lógicos, topología y terminación para el hardware real. Una bancada de dos nodos suele terminarse en sus dos extremos físicos; no añadas resistencias sin verificar la instalación existente.

Empieza con mensajes conocidos, no con IDs vehiculares supuestos

Define una base de pruebas pequeña para tu generador: ID de arbitraje, formato estándar o extendido, longitud, orden de bytes, escala, offset, unidad, rango válido y origen de la señal. Una trama sin procesar no se describe a sí misma. Los IDs y señales varían según fabricante, año, versión, gateway y estado operativo; deducir valores de una captura breve produce hipótesis, no una especificación confiable.

Captura ID original, DLC, bytes, tiempo monotónico de recepción y estado de error antes de decodificar. Conserva el registro original junto al dato derivado. Así se auditan cambios del decodificador y pueden reproducirse capturas con versiones nuevas sin reconectar hardware.

Mantén la recepción acotada y observable

Usa filtros de aceptación cuando ayuden, pero cuenta las tramas filtradas o descartadas si el driver aporta esa evidencia. Vacía la cola RX con rapidez y separa análisis, almacenamiento y publicación mediante tareas o colas limitadas. Si el consumidor se retrasa, registra el desbordamiento: perder tramas en silencio genera gráficos limpios pero incompletos. Mide carga del bus, profundidad de cola, huecos y contadores de error.

Las alertas TWAI pueden mostrar actividad RX, resultados de transmisión, pérdida de arbitraje y cambios de estado de error, según versión y configuración. Eso no equivale a diagnosticar el vehículo. Mantén separados el estado del controlador y la salud de la aplicación.

Decodifica con unidades y procedencia

Documenta bit inicial, longitud, signo, orden de bytes, escala, offset y unidad de cada señal. Valida con vectores en cero, límites, negativos cuando correspondan y codificaciones inválidas. Guarda la versión del decodificador con cada medición. Si el mapa no está confirmado, muestra los bytes originales y marca la señal como no verificada en vez de presentar un número convincente como hecho.

CapaQué registrarFallo que revelar
FísicaTransceptor, bitrate, terminación y cableadoBus-off o ruido eléctrico
TramaFormato ID, DLC, bytes y horaDesbordamiento o ID inesperado
SeñalVersión, escala, unidades y fuenteRango inválido o interpretación dudosa
PipelineSecuencia, confirmación y exportaciónDuplicado, hueco o fallo de persistencia

Exporta solo después de validar la bancada

Un gateway puede enviar lecturas decodificadas a MQTT o una base local, pero aplica una lista permitida y límites de frecuencia entre bus y red. Separa capturas brutas de mediciones normalizadas, marca los datos sintéticos de la bancada y evita subir IDs que revelen hábitos sensibles del vehículo. Para demostrarlo, genera tráfico reproducible en el bus aislado y muestra decodificador, estado de cola y gráfico a la vez.

En resumen

Usa ESP32 TWAI para aprender el flujo de software en una bancada aislada y conocida: capturar, fechar, decodificar, validar, persistir y visualizar. Conserva evidencia original, marca la incertidumbre, vigila pérdidas y comprueba las particularidades del chip. Un laboratorio seguro permite observar la ingeniería de datos automotrices sin experimentar en una red vehicular activa.

Referencias