Fundamentos del CAN Bus: capa física, estructura de trama y detección de errores
Desarrollado por Bosch en 1986 y estandarizado como ISO 11898, CAN bus es el bus de campo base para equipos HVAC, enfriadores, variadores de velocidad y controladores de automatización de edificios. Su señalización diferencial, arbitraje hardware y detección de errores de cinco capas lo hacen mucho más robusto que RS485 Modbus en salas de máquinas eléctricamente ruidosas — y entender estos fundamentos es esencial antes de desplegar cualquier dispositivo CANopen.
Capa física ISO 11898-2 y señalización diferencial
ISO 11898-2 define el CAN de alta velocidad — la variante utilizada en casi todas las aplicaciones de automatización de edificios e industriales. La capa física utiliza un par diferencial: CAN_H (CAN High) y CAN_L (CAN Low), ambas referenciadas a GND. En el estado recesivo (lógica 1), ambas líneas flotan a aproximadamente 2,5V y la tensión diferencial es 0V. En el estado dominante (lógica 0), CAN_H se lleva a aproximadamente 3,5V y CAN_L a aproximadamente 1,5V, dando un diferencial de 2V inmune al ruido de modo común hasta ±30V.
Use par trenzado apantallado con una impedancia característica de 120Ω — Belden 9841 (par único, 24AWG) o equivalente. Conecte el apantallamiento solo en un extremo (típicamente en el cuadro) para evitar bucles de tierra. Ambos extremos del segmento de bus deben terminarse con una resistencia de 120Ω entre CAN_H y CAN_L. La terminación dividida (dos resistencias de 60Ω con un condensador de 4,7nF a tierra en el punto medio) mejora el rendimiento EMC en entornos de alto ruido.
Cableado CAN bus — conexión de 3 hilos
CAN bus cable (Belden 9841 or equivalent, 120Ω STP): CAN_H → CAN_H terminals on all nodes CAN_L → CAN_L terminals on all nodes GND → GND terminals on all nodes (reference, not signal ground) Termination resistors: Node 1 (first node on bus): 120Ω between CAN_H and CAN_L Node N (last node on bus): 120Ω between CAN_H and CAN_L All intermediate nodes: NO termination Measure termination (bus powered off): CAN_H to CAN_L resistance should read ~60Ω (Two 120Ω resistors in parallel = 60Ω) Values outside 54–66Ω indicate missing or extra termination
Advertencia: La topología en estrella y en árbol no están permitidas en CAN bus. Todos los nodos deben conectarse a un único cable troncal lineal — las derivaciones deben mantenerse por debajo de 0,3m para prevenir reflexiones de señal. Las derivaciones largas causan errores de bit dominante a altas velocidades de bits.
Velocidad de bits versus longitud de cable
La velocidad de bits de CAN bus está limitada por el retardo de propagación — el tiempo que tarda una señal en viajar al nodo más alejado y volver antes de que termine el período de bit. ISO 11898-2 especifica las combinaciones estándar de velocidad de bits y longitud de cable. Los sistemas de automatización de edificios raramente necesitan 1 Mbit/s; 125 kbit/s o 250 kbit/s es típico para equipos HVAC en recorridos de cable de 100–500m entre salas de máquinas.
| Velocidad de bits | Longitud máx. de cable | Longitud máx. de derivación | Aplicación típica |
|---|---|---|---|
| 1 Mbit/s | 40 m | 0,3 m | Control de máquinas, conexiones cortas dentro del cuadro |
| 500 kbit/s | 100 m | 0,3 m | Accionamientos industriales, sala de máquinas compacta |
| 250 kbit/s | 250 m | 0,3 m | HVAC multi-enfriador, sala de máquinas de planta |
| 125 kbit/s | 500 m | 0,3 m | Columna vertebral del edificio, tendidos entre plantas |
| 50 kbit/s | 1000 m | 0,3 m | Tendidos de cable largos, grandes emplazamientos |
| 20 kbit/s | 2500 m | 0,3 m | Campus, raramente utilizado |
Nota: Todos los nodos en un segmento CAN deben funcionar a la misma velocidad de bits. No es posible mezclar dispositivos a 250 kbit/s y 125 kbit/s en el mismo bus — use un repetidor CAN o segmentos separados conectados a través de una pasarela si se requieren velocidades diferentes.
Estructura de trama CAN
La trama de datos CAN estándar (ISO 11898-1) consta de siete campos. Entender el campo de ID de arbitraje es crítico para la configuración CANopen — el COB-ID (Communication Object Identifier) utilizado en CANopen es el ID CAN estándar de 11 bits. Las tramas extendidas utilizan IDs de 29 bits y se usan en CANopen con COB-IDs de 4 bytes (modo de direccionamiento extendido).
| Campo | Bits | Descripción |
|---|---|---|
| SOF | 1 | Start of Frame — bit dominante que sincroniza todos los receptores |
| ID de arbitraje (estándar) | 11 | Identificador de mensaje — valor más bajo = mayor prioridad en el bus |
| ID de arbitraje (extendido) | 29 | Formato de trama extendido — incluye base de 11 bits + extensión de 18 bits |
| RTR | 1 | Remote Transmission Request — 1 = solicitud de datos de otro nodo |
| IDE | 1 | Bit de extensión de identificador — 0 = trama estándar, 1 = trama extendida |
| DLC | 4 | Data Length Code — número de bytes de datos: de 0 a 8 |
| Datos | 0–64 bits | Carga útil: 0 a 8 bytes para CAN clásico; hasta 64 bytes para CAN FD |
| CRC | 15 + 1 | Verificación de redundancia cíclica de 15 bits más delimitador CRC (bit recesivo) |
| ACK | 2 | Ranura de reconocimiento (dominante) + delimitador ACK (recesivo) |
| EOF | 7 | End of Frame — 7 bits recesivos |
Mecanismos de detección de errores
CAN tiene cinco mecanismos independientes de detección de errores que operan simultáneamente. Cada error detectado hace que todos los nodos descarten la trama actual y el transmisor reenvíe. Un nodo que causa errores repetidamente pasa del estado error-active a error-passive y luego al estado bus-off, protegiendo la red de un nodo defectuoso.
| Tipo de error | Método de detección | Causa frecuente |
|---|---|---|
| Error CRC | El receptor recalcula el CRC y lo compara con el valor transmitido | Bits de datos corruptos por EMI o cable largo |
| Error de bit | El transmisor monitorea el bus y detecta la discrepancia de su propio nivel de bit | Cortocircuito, contención en el bus, fallo de cableado |
| Error de trama | Los campos de formato fijo (EOF, delimitador CRC) verificados para el nivel correcto | Fallo bit stuffing, estructura de trama corrupta |
| Error ACK | El transmisor verifica que al menos un receptor envíe ACK dominante | Nodo faltante, velocidad de bits incorrecta, sin terminación |
| Error de stuffing | Después de 5 bits consecutivos del mismo nivel, debe seguir un bit complementario | EMI causando una secuencia del mismo nivel que supera 5 bits |
Arbitraje bitwise no destructivo
Cuando dos o más nodos intentan transmitir simultáneamente, CAN resuelve el conflicto mediante arbitraje bitwise sin destruir ninguno de los mensajes. Cada nodo monitorea el bus mientras transmite — si un nodo transmite un bit recesivo (1) pero lee un bit dominante (0), inmediatamente deja de transmitir y cambia al modo receptor. El nodo con el ID de arbitraje numérico más bajo siempre gana.
En CANopen, esto significa que los COB-ID más bajos tienen mayor prioridad. Los mensajes de emergencia (EMCY, COB-ID 0x080 + ID de nodo) y los mensajes heartbeat reciben COB-ID más bajos que los datos PDO — asegurando que las alarmas nunca se retrasen detrás del tráfico de datos de proceso. Asigne los ID de nodo más bajos a los dispositivos más críticos como pasarelas de paneles de incendio o controladores de alarmas de enfriadores.
CAN FD — Flexible Data-rate
CAN FD (ISO 11898-1:2015) extiende el CAN clásico con dos mejoras: una velocidad de bits de fase de datos variable de hasta 8 Mbit/s (frente a 1 Mbit/s para CAN clásico) y un tamaño de carga útil de hasta 64 bytes (frente a 8 bytes). La fase de arbitraje sigue funcionando a la velocidad clásica para compatibilidad — solo la fase de datos cambia a la velocidad más alta después del bit BRS (Bit Rate Switch).
| Parámetro | CAN clásico | CAN FD |
|---|---|---|
| Velocidad máx. de arbitraje | 1 Mbit/s | 1 Mbit/s (igual — compatible con versiones anteriores) |
| Velocidad máx. fase de datos | 1 Mbit/s | 8 Mbit/s |
| Bytes máx. de carga útil | 8 bytes | 64 bytes |
| Longitud CRC | 15 bits | 17 o 21 bits (más largo para cargas útiles mayores) |
| Uso en automatización de edificios | Extendido — la mayoría de dispositivos HVAC | Emergente — nuevos variadores VFD, contadores de energía |
Nota: La mayoría de los dispositivos CAN para automatización de edificios (enfriadores, UTA, variadores VFD) todavía usan CAN clásico a 125 o 250 kbit/s. El hardware CAN FD (PEAK-System PCAN-USB FD, Vector CANalyzer FD) es compatible con versiones anteriores y puede comunicarse con nodos CAN clásicos en el mismo segmento, siempre que la fase de datos no se active al comunicarse con nodos clásicos.
Herramientas de diagnóstico
Use un analizador CAN durante la puesta en marcha para verificar el tráfico del bus, monitorear las tramas de error y confirmar los ID de nodo antes de integrar con una pasarela CANopen. Tres herramientas son estándar en la industria.
| Herramienta | Interfaz | Caso de uso |
|---|---|---|
| PEAK-System PCAN-USB | Dongle USB, ~€100 | Software gratuito PCAN-View — escuchar tráfico, enviar tramas, registrar en CSV |
| PEAK-System PCAN-USB FD | Dongle USB CAN FD, ~€130 | Como arriba pero soporta fase de datos CAN FD hasta 8 Mbit/s |
| Vector CANalyzer | Tarjeta PCI/USB, profesional | Análisis completo de protocolo, vista diccionario de objetos CANopen, scripting |
| Kvaser Leaf Light v2 | Dongle USB, ~€180 | Software gratuito Kvaser CanKing — bueno para puesta en marcha en campo |
| PCAN-View (gratuito) | Software (Windows) | Usado con adaptadores PEAK — filtrar por COB-ID, monitorear contadores de error |
Guías relacionadas
CANopen en la automatización de edificios: diccionario de objetos, PDO, SDO y perfiles CiA 417/419
CAN / CANopenIntegración de enfriadores HVAC CANopen: Carrier, York, Daikin a través de pasarela Ixxat
Integración de pasarelaIntegración de pasarela KNX Modbus
Control de motoresIntegración de variador VFD Modbus a KNX
¿Necesita un cuadro CAN bus con integración de pasarela CANopen?
Diseñamos y construimos cuadros de baja tensión con pasarelas CANopen-a-KNX/Modbus/BACnet, terminación correcta de 120Ω, cableado CAN apantallado y documentación de puesta en marcha para instalaciones HVAC e industriales.
Solicitar presupuesto →