Velocidad del bus CAN vs longitud del cable
En CAN, velocidad y distancia se intercambian de una manera que hace tropezar a quien supone que más rápido siempre es mejor. Corra un bus demasiado rápido para su longitud y fallará el arbitraje de maneras que parecen aleatorias; córralo más lento y un bus largo se vuelve sólido como roca. Esta página explica por qué la longitud máxima del cable se encoge al subir la velocidad, la razón de temporización de arbitraje detrás de ese límite físico duro, y cómo elegir una tasa que todos los nodos puedan compartir, porque en CAN todos los nodos deben acordar la misma velocidad de bits.
Velocidad y distancia CAN en una línea: En un bus CAN, la velocidad de transmisión y la longitud del cable se intercambian entre sí: cuanto más rápida la tasa de bits, más corta la longitud máxima del bus. El límite viene del arbitraje, que exige que un bit viaje hasta el extremo lejano y de regreso dentro de un tiempo de bit para que todos los nodos acuerden el nivel. Todos los nodos de un segmento deben configurarse a la misma velocidad, y las tasas industriales comunes son 125, 250 y 500 kbit/s.
Por qué más rápido significa más corto
El límite de distancia en CAN no es un problema de pérdida de cable como en algunas redes; es un problema de temporización enraizado en el arbitraje. Durante el arbitraje, todo nodo transmisor debe leer de regreso el nivel real del bus dentro del mismo bit que está enviando, y para que eso funcione la señal tiene que propagarse de un extremo del bus al nodo más lejano y, en efecto, regresar dentro de un solo tiempo de bit. Al subir la velocidad, el tiempo de bit se encoge, así que el presupuesto de propagación de ida y vuelta se encoge con él, y el bus debe ser físicamente más corto para caber.
Por eso las cifras conocidas se alinean como lo hacen: las tasas CAN más altas solo son utilizables en tendidos cortos, mientras que bajar a una tasa más lenta compra un bus mucho más largo. Un gabinete de máquina con todos los nodos juntos puede correr rápido; un sistema distribuido repartido por un patín grande o un vehículo corre más lento para alcanzar cada nodo. Los números exactos dependen del cable, del retardo del transceptor y de la configuración de temporización de bit, así que trate las tablas publicadas de longitud contra velocidad como guía y confirme la colocación de su peor nodo en lugar de asumir el máximo.
Todos los nodos deben compartir la misma tasa
CAN no tiene autonegociación de velocidad en el estándar base, así que todos los nodos de un segmento deben configurarse a la velocidad idéntica. Un solo nodo mal configurado no se limita a no hablar: como malinterpreta las fronteras de bit, genera tramas de error que perturban a todo el bus, así que un solo dispositivo desempatado puede tumbar la comunicación de todos. Cuando un bus que funcionaba muere justo después de agregar o reemplazar un dispositivo, un desempate de velocidad en ese dispositivo es de lo primero a revisar.
Los protocolos de capa superior le acotan las opciones. J1939 para vehículos pesados estandariza 250 kbit/s en su bus clásico, y por eso los generadores y motores presentan comúnmente sus datos a esa tasa; CANopen y DeviceNet definen un menú corto de tasas soportadas del que todos los nodos eligen. Algunos dispositivos CANopen y DeviceNet soportan detección automática de la tasa de bits al arrancar, pero esa es una característica del protocolo, no una propiedad del CAN crudo, y aun así deja al dispositivo en una de las tasas fijas.
Fijar la tasa es solo la mitad de empatar un bus; el punto de muestreo dentro de cada bit también debe ser lo bastante consistente entre nodos para que un bit muestreado en el extremo lejano aún caiga en la ventana prevista. La mayoría de los controladores traen un punto de muestreo sensato por defecto, pero en buses largos o rápidos con hardware mezclado vale la pena confirmarlo, porque dos nodos a la misma velocidad nominal pero con puntos de muestreo muy distintos pueden aun así fallar en un tendido largo. Es el equivalente CAN de empatar los parámetros de un enlace serial RS-485 antes de esperar que los dispositivos hablen.
Elegir una tasa para una red real
La pregunta de diseño no es la tasa más rápida que soporta el hardware; es la tasa más lenta que aún transporta su tráfico, porque las tasas lentas dan margen. Estime la carga del bus a partir del número de mensajes periódicos y sus tasas, confirme que deja holgura para ráfagas de alta prioridad, y elija entonces la tasa estándar más baja que quepa con espacio de sobra. Un bus poco cargado tolera capas físicas marginales mucho mejor que uno muy cargado, y le deja holgura para nodos futuros.
Si un protocolo dicta la tasa, como en gran medida lo hace J1939, su trabajo cambia a lograr que la capa física soporte esa tasa fija sobre su distancia real, en lugar de elegir la tasa. Eso significa mantener cortas las derivaciones, terminar ambos extremos correctamente y confirmar que el nodo más lejano aún cae dentro del presupuesto de temporización para la tasa requerida. Un tendido de motor o generador J1939 que anda marginal suele estar marginal en capa física, no en selección de velocidad, porque la velocidad no es suya para cambiarla.
Una vez fijada la tasa y estable el bus, queda fija de por vida para la red, y cambiarla después significa tocar cada nodo. Esa permanencia es una buena razón para construir margen desde el diseño. Cuando los datos salen de CAN por un gateway hacia un sistema de monitoreo, la velocidad ya no importa aguas arriba, pero sus consecuencias sí: un bus corrido demasiado rápido para su longitud se manifiesta por encima del gateway como datos intermitentes faltantes, y por eso acertar la decisión de velocidad contra distancia en el cable rinde para toda la cadena de datos.
Preguntas frecuentes
¿Por qué una velocidad CAN mayor limita la longitud del cable?
Porque el arbitraje CAN exige que un bit se propague hasta el nodo más lejano y de regreso dentro de un tiempo de bit para que todos los nodos acuerden el nivel del bus. Una velocidad mayor acorta el tiempo de bit, lo que encoge el presupuesto de propagación y obliga a un bus más corto. Es un límite de temporización impuesto por el arbitraje, no simple pérdida de señal del cable, y por eso las tasas más rápidas solo sirven en tendidos cortos.
¿Todos los nodos de un bus CAN necesitan la misma velocidad?
Sí. El CAN base no tiene autonegociación de velocidad, así que todos los nodos de un segmento deben configurarse a la velocidad idéntica. Un solo nodo desempatado malinterpreta las fronteras de bit y genera tramas de error que perturban el bus entero, no solo su propio tráfico. Algunos dispositivos CANopen y DeviceNet pueden autodetectar la tasa al arrancar, pero aun así se asientan en una de las tasas estándar fijas de la red.
¿Qué velocidad usa un generador J1939?
El J1939 clásico para vehículos pesados y motores estandariza 250 kbit/s, así que los generadores y controladores de motor presentan comúnmente sus datos a esa tasa. Como la tasa la fija el protocolo, la tarea de diseño es lograr que la capa física soporte 250 kbit/s sobre la distancia real de cable, con terminación correcta y derivaciones cortas, en lugar de elegir una tasa usted mismo.
Fuentes y lecturas
Referencias primarias de los organismos de normas y reguladores que definen este tema:
Servicios de automatización
¿Necesita convertir esta información en un sistema que funcione?
Merobix integra SCADA, programa PLC Allen-Bradley y Siemens, y diseña y fabrica tableros de control industrial.
Las solicitudes de reunión se revisan antes de confirmarse.