Evite los problemas de transmisión de datos del transceptor CAN mediante pruebas a nivel de sistema
Colaboración de Editores de DigiKey de América del Norte
2023-10-11
La Red de Área de Control (CAN) es un estándar de comunicación probado y robusto que se utiliza en los sectores de la automatización industrial y la automoción, entre otros. Existen dos versiones de esta tecnología: CAN2.0, y la versión más reciente, CAN-Datos Flexibles (FD). Los sistemas CAN2.0 heredados pueden mejorarse añadiendo nodos CAN-FD, que ofrecen una mayor tasa de producción de carga útil para soportar eventos de comunicación críticos.
En general, las tecnologías son compatibles, pero a medida que aumentan la complejidad y la longitud del bus de los sistemas, la mayor velocidad de CAN-FD en sistemas mixtos puede causar problemas de sincronización, con el consiguiente fallo de transmisión.
Una prueba del sistema CAN que incluya un único bus corto que conecte dos pares de controlador/transceptor puede ser satisfactoria para sistemas sencillos. Sin embargo, esta prueba no suele detectar problemas que pueden manifestarse en sistemas multinodo más complejos con una combinación de componentes CAN2.0 y CAN-FD. La realización de pruebas exclusivas en todos los casos de uso potenciales con un gemelo del sistema de producción puede detectar todos los problemas que podrían producirse sobre el terreno.
Este artículo presenta brevemente CAN2.0 y CAN-FD y explica los retos de la transmisión. A continuación, se describen técnicas de prueba para garantizar que los sistemas que utilizan estas redes presenten fallos de campo mínimos. Presenta componentes de ejemplo de Analog Devices que incorporan la detección y notificación de fallos, y muestra cómo el uso de dichos componentes puede acelerar la fase de pruebas y la resolución de problemas en sistemas desplegados. También destaca una placa de evaluación asociada.
¿Qué son CAN2.0 y CAN-FD?
CAN es un estándar para comunicaciones distribuidas con gestión de fallos integrada. Las capas física (PHY) y de enlace de datos (DLL) se especifican en la norma ISO-118981.
Características del CAN:
- Posibilidad de varios maestros en un bus
- Niveles de prioridad inherentes a los mensajes
- Arbitraje de bus por prioridad de mensajes
- Detección y recuperación de errores a varios niveles
- Sincronización de datos entre nodos con fuentes de reloj independientes
CAN utiliza un esquema de transmisión de datos de voltaje diferencial que presenta dos estados de voltaje de bus: "recesivo" (las salidas de los controladores son de alta impedancia) y "dominante", con los umbrales indicados en la Tabla 1.
|
Tabla 1: Niveles de voltaje recesivos y dominantes de CAN en comparación con RS-485. Observe que el voltaje dominante (más alto) corresponde al '0' lógico. (Fuente de la imagen: Analog Devices)
Los nodos transmiten el estado dominante para Lógica '0' (en este estado, una línea de bus (CANH) es alta, y la otra (CANL) es baja) y el estado recesivo para Lógica '1'. Un bus CAN inactivo se distingue de uno en modo de transmisión de bits recesivos mediante la detección de múltiples bits recesivos tras el final de la trama estándar o de una trama de error (Figura 1).
Figura 1: Esquema de transmisión CAN. El modo inactivo se identifica mediante varios bits recesivos. (Fuente de la imagen: Analog Devices).
Los transceptores de CAN proporcionan la interfaz PHY diferencial entre la DLL, el controlador de CAN (que suele estar integrado en otro dispositivo, como un microcontrolador) y el cableado físico del bus CAN. En la Figura 2 se muestran los distintos elementos necesarios para implementar una aplicación CAN, junto con su relación con las capas de Interconexión de Sistemas Abiertos (OSI) y las características implementadas por cada elemento.
Figura 2: El transceptor CAN constituye la interfaz PHY diferencial entre el controlador CAN y el bus CAN. (Fuente de la imagen: Analog Devices)
CAN2.0 se introdujo en 1991 y ofrece una tasa de producción nominal de 500 kilobits por segundo (Kbits/s). Dado que esta velocidad de datos a veces resultaba insuficiente para eventos de comunicación críticos, en 2012 se lanzó CAN-FD. CAN-FD ofrecía una tasa de producción nominal de hasta 2 megabits por segundo (Mbits/s) en condiciones normales de funcionamiento y de hasta 5 Mbits/s para diagnóstico o programación. Tenga en cuenta que la comunicación a mayor velocidad solo es aplicable a la carga útil del mensaje; otros elementos del mensaje, como el identificador de 11 bits, la comprobación de redundancia cíclica (CRC) y el acuse de recibo (ACK) se envían a la velocidad CAN2.0 de 500 Kbits/s.
Otra diferencia entre CAN2.0 y CAN-FD es la carga útil de la trama de datos estándar, que pasa de 8 bytes (B) en CAN2.0 a 64 B en CAN-FD. Este aumento de la carga útil hace que la comunicación CAN-FD sea más eficiente al mejorar la relación gastos generales/datos. Además, los mensajes que antes tenían que dividirse debido al límite de carga útil de 8 B de CAN2.0 ahora pueden combinarse en un solo mensaje mediante CAN-FD. Además, la seguridad puede mejorarse mediante el cifrado de los mensajes CAN-FD debido a la mayor velocidad de datos y al aumento de la carga útil.
Es habitual mezclar nodos CAN2.0 y CAN-FD en la misma red porque los controladores CAN-FD admiten tanto el protocolo CAN2.0 como el CAN-FD. La mezcla de nodos es popular porque permite que las redes heredadas migren al protocolo más rápido durante un periodo prolongado. Uno de los inconvenientes de los sistemas mixtos es el coste y la complejidad adicionales, ya que los transceptores deben ser capaces de admitir un método de filtrado CAN-FD en los nodos CAN2.0 para garantizar que no se creen tramas de error durante la comunicación CAN-FD.
Mecanismos de arbitraje y error de CAN
Cualquier nodo CAN conectado puede transmitir datos al bus. Para evitar conflictos de comunicación, los nodos arbitran el uso del bus, de modo que los mensajes se transmiten uno tras otro según su prioridad. CAN emplea un arbitraje no destructivo y transparente; el nodo que tiene éxito durante el arbitraje continúa transmitiendo su mensaje de mayor prioridad sin que ningún otro nodo interfiera o corrompa la información. Este arbitraje es posible porque la transmisión de un bit dominante sobrescribe el estado recesivo del bus.
La trama de datos estándar incluye un identificador de mensaje y varios bits de bandera. Esta información se conoce como "campo de arbitraje". TI dicta el arbitraje y, en consecuencia, la prioridad de los mensajes. Los mensajes con un DI más bajo (más "0" iniciales) tienen mayor prioridad (Figura 3).
Figura 3: La trama de datos del estándar CAN incluye un identificador de mensaje, además de los bits de bandera RTR e IDE. Este campo de arbitraje dicta el arbitraje y la prioridad de los mensajes. (Fuente de la imagen: Analog Devices)
Incluso con el sistema de arbitraje, las cosas pueden ir mal. Para hacer frente a los problemas, el protocolo CAN dispone de mecanismos de comprobación y tratamiento de errores. Estos mecanismos incluyen:
- Verificación de bits de transmisión
- Comprobación CRC
- Comprobación de campos de bits de forma fija
- Mensaje obligatorio ACK
Los errores se gestionan mediante los siguientes mecanismos:
- Marcos de error
- Contadores de errores
- Estados de error de los nodos
Cualquier controlador CAN puede detectar errores y reaccionar activando tramas de error y contadores de nodos de error. Una trama de error se distingue por el uso de seis bits consecutivos dominantes o recesivos. Una secuencia de este tipo es contraria a las reglas normales de transmisión, por lo que es detectable por otros nodos. Los nodos que transmiten tramas de error envían posteriormente bits recesivos hasta que se detecta que el bus está en estado recesivo. Tras una nueva transmisión de siete bits recesivos, el nodo puede intentar transmitir tramas CAN normales (Figura 4).
Figura 4: En este ejemplo de transmisión defectuosa (debida a bits adicionales [1] que dan lugar a un error de bits CRC), la trama de error de seis bits consecutivos se muestra en el extremo derecho. (Fuente de la imagen: Analog Devices).
Además de la transmisión de tramas de error, cada nodo CAN implementa contadores de errores de transmisión y recepción. Un error aumenta la cuenta en uno, mientras que una transmisión o recepción correcta de un mensaje disminuye el contador en uno. En función de los contadores de errores, un nodo puede estar en estado "error activo", "error pasivo" o "bus apagado". En el estado de error activo, el nodo puede comunicarse en el bus y enviar banderas de error activas cuando se detectan errores. Se produce un estado pasivo de error cuando el contador supera 127; en este estado, el nodo sólo puede enviar banderas de error pasivas. El nodo vuelve a estar activo en caso de error cuando el contador es inferior a 127. Si el contador supera 256, el nodo entra en estado de bus apagado y no puede comunicarse en el bus. El contador de nodos puede ponerse a 0 tras recibir 128 secuencias de 11 bits recesivos consecutivos.
La importancia de las pruebas exhaustivas
Los mecanismos de arbitraje y error de CAN ayudan a mantener los sistemas en funcionamiento cuando se producen fallos. Sin embargo, es posible un funcionamiento más eficaz diseñando sistemas que limiten los fallos de transmisión y recepción. Probar el sistema propuesto en varios escenarios operativos es una forma de identificar y corregir los puntos débiles antes de su despliegue.
Una técnica habitual consiste en ejercitar el transceptor CAN seleccionado transmitiendo tramas de datos estándar operativas típicas al pin TxD del transceptor utilizando un generador de funciones y comprobando si se produce algún error. Aunque se trata de una prueba razonable para un único nodo, no es una buena representación de cómo funcionará un sistema multinodo con un bus largo. Por ejemplo, los problemas que pueden surgir con sistemas complejos incluyen reflexiones y otros artefactos producidos por los stubs de los circuitos durante el funcionamiento a alta frecuencia. Pueden introducir un desfase entre bits.
El mecanismo de arbitraje de CAN solo funciona si los bits están sincronizados. Si el desfase entre bits supera la mitad del tiempo de transmisión de un bit, la sincronización falla y el arbitraje es imposible.
En los sistemas heredados CAN2.0 que funcionan entre 500 Kbits/s y 1 Mbit/s, el tiempo de transmisión de un solo bit tiene una duración suficiente para que los desplazamientos de fase inducidos rara vez supongan un problema. Sin embargo, debido a la mayor velocidad de producción de CAN-FD, los tiempos de transmisión de bits se acortan y los desfases pueden llegar a ser significativos rápidamente.
Estos retos deben mitigarse pasando de la simple prueba de nodos individuales a la verificación de un diseño duplicando el sistema final completo y probándolo en diversas condiciones de funcionamiento. Aunque esto lleva más tiempo y es más caro que la prueba básica, es mucho menos costoso que lidiar con fallos sobre el terreno y clientes descontentos.
Un ejemplo práctico
Para ver cómo funcionan en la práctica las pruebas de cambio de fase, considere un sistema diseñado con un transceptor CAN y un controlador CAN de un proveedor preseleccionado. El nodo está conectado a un bus de 20 metros (m), que también admite muchos otros nodos, incluidos componentes CAN2.0 y CAN-FD. Para las pruebas, el nodo transmite a 13.3 Mbits/s, lo que corresponde a un ancho de bit de 75 nanosegundos (ns). A efectos de sincronización y arbitraje, el controlador muestrea al 80% de la anchura del bit TxD, por lo que requiere una anchura mínima del bit RxD de 0.8 x 75 = 60 ns, incluyendo el tiempo de subida, el tiempo de bajada y el retardo del bucle. El componente probado produjo un ancho de bit TxD de 48 ns, lo que provocó el fallo del sistema.
La misma prueba se realizó con un transceptor CAN alternativo, el MAX33012EASA+ de Analog Devices. En esta prueba, el ancho de bit TxD se midió a 75 ns, y el ancho de bit RxD a 72 ns. La anchura de bits de 72 ns supera el requisito de tiempo de muestreo del 80% de 60 ns, por lo que la sincronización y el arbitraje del sistema funcionan satisfactoriamente. La tasa de producción de 13.3 Mbits/s es superior a la que utilizará el sistema en las aplicaciones previstas, lo que demuestra que es lo bastante robusto como para funcionar en todas las condiciones operativas previstas (Figura 5).
Figura 5: Resultados de una prueba con un transceptor CAN MAX33012EASA+ a 13.3 Mbits/s (ancho de bit TxD de 75 ns) en un bus de 20 m. La anchura del bit RxD es de 72 ns, suficiente para asegurar que se satisface el 80% del tiempo de muestreo del controlador (60 ns) y se consigue la sincronización. (Fuente de la imagen: Analog Devices)
Solución de problemas integrada
El ciclo de pruebas puede facilitarse y abaratarse utilizando componentes que incorporen la detección y notificación de fallos. Componentes como el transceptor CAN MAX33012EASA+ no solo ponen de manifiesto rápidamente los problemas de los circuitos CAN de prototipo y de preproducción, sino que también son útiles para aplicaciones en las que la rápida resolución de problemas es importante para las implantaciones de sistemas de control en directo.
El MAX33012EASA+ es un transceptor CAN de +5 voltios que soluciona fallos comunes como sobrecorriente, sobretensión y fallo de transmisión. Está protegido contra fallos de hasta ±65 voltios, por lo que es adecuado para aplicaciones en las que se requiere protección contra sobretensiones. Un rango de voltaje de modo común de ±25 voltios permite la comunicación en entornos ruidosos, como los de maquinaria pesada. Las salidas CANH y CANL están limitadas por la corriente de cortocircuito y protegidas contra la disipación de potencia excesiva mediante circuitos de desconexión térmica que colocan las salidas del controlador en un estado de alta impedancia.
El MAX33012EASA+ funciona a una velocidad de hasta 5 Mbits/s y cuenta con una opción para ralentizar la velocidad de respuesta a 8 voltios/microsegundo (μs) para minimizar las interferencias electromagnéticas (EMI) y permitir el uso de cable trenzado o paralelo sin apantallar (Figura 6).
Figura 6: Se muestra el circuito de aplicación MAX33012EASA+ en un sistema multimodo. En este ejemplo, el microcontrolador incluye un controlador CAN integrado. (Fuente de la imagen: Analog Devices)
La detección de fallos del transceptor CAN se activa al encenderse pasando 100 transiciones de bajo a alto a través de TxD (normalmente una o dos tramas de datos estándar, dependiendo del protocolo que se utilice). Una vez activada la detección de fallos, si se detecta un fallo, se requieren otras 16 transiciones de bajo a alto en TxD para transmitir el código de fallo. Por último, se necesitan 10 impulsos más para eliminar la avería.
La detección de fallos de transmisión se activa cuando la señal en RxD no coincide con TxD durante 10 ciclos consecutivos después de activar la detección de fallos. Esto puede ocurrir, por ejemplo, cuando faltan las dos resistencias de terminación, o hay un cortocircuito entre CANH a tierra o CANL a VDD, con lo que la señal diferencial no cumple la especificación.
Analog Devices suministra una placa de evaluación, la placa de evaluación MAX33012ECANbus Interface Arduino Platform, que puede utilizarse para demostrar la funcionalidad del MAX33012E. Aunque el dispositivo presenta un factor de forma de escudo Arduino, puede utilizarse como placa de evaluación independiente.
Conclusión:
Para garantizar un funcionamiento fiable sobre el terreno de los sistemas mixtos CAN2.0 y CAN-FD multimodo, es importante probar a fondo el diseño completo. Sin embargo, las pruebas simples de un solo nodo son inadecuadas cuando se trata de detectar fallos que más tarde podrían causar fallos de campo debido a problemas de sincronización que pueden corromper el mecanismo de arbitraje de la tecnología. Estas pruebas iniciales y la posterior resolución de problemas sobre el terreno de sistemas CAN mixtos y multinodo pueden facilitarse seleccionando transceptores CAN que incorporen detección y notificación de fallos.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.



