Comunicación entre Dispositivos de Control utilizando CAN

Whilepaper contribuido por Gadu Sistemas, S.A. de C.V.
InTech México Automatización
Julio Septiembre 2007

La necesidad de comunicar dispositivos electrónicos de control en ambientes electrónicamente ruidosos fue la causante de que Bobert Bosch GmbH desarrollara a finales de la década de los 80’s un nuevo protocolo de comunicación cOl1ocido como CAN-Controller Area Network (Red de controladores de área).

Aunque se le relaciona principalmente con la industria automotriz, el protocolo CAN se está expandiendo rápidamente a otros ámbitos como el control industrial, médico o aeroespacial. Las redes que se encuentran integradas en estas industrias conjuntan una gran variedad de módulos que interactúan con el medio ambiente y procesan información de alta y baja velocidad. Esto ha ocasionado que, poner a prueba estas redes, se haya convertido en un gran reto, porque algunos nodos de esta red tienen que procesar datos rápidamente para satisfacer requerimientos de seguridad, mientras que en otros, la velocidad no es una variable tan fundamental al estar dedicados a controlar luces y switches.

¿Qué es y cómo funciona?

CAN es un bus asíncrono serial de comunicaciones de alta velocidad que podemos encontrar en diferentes formas, cuando se presenta como un solo cable, estará limitado a velocidades de transmisión de 33Kbps y 83Kbps; mientras que con dos cables puede ser utilizado como una línea diferencial balanceada similar a RS-232, pero con la diferencia principal de que CAN soporta múltiples maestros en la misma red. Típicamente utilizado en comunicaciones sistema-a-sistema entre nodos que se comunican sobre el bus con mensajes similares a Ethernet. Cuenta con un amplio rango en cuanto velocidad de transmisión de datos y distancias se refiere; la velocidad va de 1 Kbps, alcanzando 6Km, hasta 1 Mbps para distancias menores a 40 metros.

El método de acceso al medio utilizado es el de Acceso Múltiple por Detección de Portadora, con Detección de Colisiones y Arbitraje por Prioridad de Mensaje (CSMA/BA por sus siglas en ingles). De acuerdo con este método, los nodos en la red que necesitan transmitir información deben esperar a que el bus esté libre; cuando se cumple esta condición, dichos nodos transmiten un bit de inicio. Cada nodo lee el bus bit a bit durante la transmisión de la trama y comparan el valor transmitido con el valor recibido; mientras los valores sean idénticos, el nodo continúa con la transmisión; si se detecta una diferencia en los valores de los bits, se lleva a cabo el mecanismo de arbitraje. CAN establece dos formatos de tramas de datos que difieren en la longitud del campo del identificador, las tramas estándares con un identificador de 11 bits definidas en la especificación CAN 2.0A, Y las tramas extendidas con un identificador de 29 bits definidas en la especificación CAN 2.0B. Para la transmisión y control de mensajes CAN, se definen cuatro tipos de tramas: de datos, remota, de error y de sobrecarga. En cuanto a la detección y manejo de errores, un controlador CAN cuenta con la capacidad de detectar y manejar los errores que surjan en una red. Todo error detectado por un nodo, se notifica inmediatamente al resto de los nodos.

Como podemos observar es un medio muy complejo cuya depuración, desarrollo y elaboración de pruebas es complicado, aun así está siendo rápidamente aceptado en diferentes medios, es por eso que nos hemos dado a la tarea de buscar las mejores herramientas y desarrollar aplicaciones que faciliten la vida de los ingenieros, cuyo principal gasto de tiempo debe estar dedicado a su ya de por si complicado trabajo y no en soluciones de difícil implementación.

En un escenario común nos encontramos con una persona que necesita identificar, dentro de una trama de datos tomada de un bus CAN, un dispositivo en particular, el cual no está configurado correctamente y está causando colisiones en el bus. El procedimiento normal sería analizar, la primera parte de cada paquete, bit a bit a fin de localizar el identificador deseado, una vez localizado este tendría que ir armando el resto del paquete decodificando la señal de forma manual a fin de tener los datos completos y poder analizar las causas del error. En resumen, esto puede llevarnos medio día suponiendo que sólo cometimos el mínimo de errores, cuestión poco probable, tomando en cuenta que es un procedimiento manual y tedioso.

Utilizando osciloscopios de última generación, el procedimiento se puede convertir en una cuestión de minutos, ya que el equipo, a partir de la muestra adquirida, decodifica trama por trama mostrándonos el identificador, los datos y en caso de que exista un error nos indica si falta el ACK. Además se pueden utilizar funciones de búsqueda con las cuales se puede localizar cualquier identificador o dato dentro de la trama. Incluso el ingeniero encargado podría dejar el equipo funcionando en el laboratorio con un trigger (disparo) configurado para que localice el identificador del dispositivo problemático, y regresar a su área de trabajo, ya que el osciloscopio en cuestión al encontrar el dato deseado podría dar la instrucción de almacenar la muestra entera para su posterior análisis.

Existen también más herramientas al servicio de aquellos, ahora afortunados, que trabajan con CAN, poderoso software de análisis que puede otorgar información como: La tolerancia del oscilador y el delay de propagación, necesaria para resolver complicaciones con el timing de los bits. El porcentaje de uso del bus por parte de un dispositivo en particular lo cual permite hacer un uso eficiente de la red. Y diagramas de ojo útiles para la localización de problemas de ruido en un mensaje CAN.

Con todas estas nuevas herramientas al servicio del bus CAN, el proceso de depuración, desarrollo y pruebas, el cual pudo en algún momento dado frenar la aceptación (por parte de otras industrias diferentes a la automotriz) de este complejo pero eficiente medio de comunicación entre dispositivos electrónicos de control, es ahora un terreno más sencillo de recorrer lo que permitirá que en los próximos años veamos sistemas de control más inteligentes y eficaces.

0
Compartir:

Dejar un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.