13.5 ANÁLISIS DEL TIEMPO DE TRANSMISIÓN DEL CAN DEPENDIENDO DE LA LONGITUD DEL BUS. Carlos Lujan Ramírez, Ramón Ariel Vela Xool, Jesús Sandoval Gio Instituto Tecnológico de Mérida Av. Tecnológico Km 5 s/n Mérida, Yucatán, México. C.P. 97118 arielvelax@hotmail.com RESUMEN. El objetivo de este proyecto es determinar si la longitud del bus es un parámetro que afecte de forma importante la calidad de la señal en el CAN bus. Se analizará el tiempo que le toma a una trama transmitirse dependiendo de la longitud del bus. También se tomarán mediciones en la caída del voltaje a diferentes longitudes. ABSTRACT. The purpose of this paper is to determine if the length of the bus is an important parameter which affects the quality the CAN bus signal. It will be analyze the time it takes a message transmitted depended of the bus length. Measurements will be taken of voltage drop at different lengths. 1.- INTRODUCCIÓN. El protocolo CAN (Controller Area Network) fue creada por el alemán Robert Bosch en 1980 como una solución para establecer una comunicación serial y robusta en aplicaciones automotrices. En 1992 fue utilizada por la clase S de Mercedes [1]. Es la más extendida y en la actualidad casi todos los automóviles cuentan con ella. Fue originalmente concebido para aplicaciones en el área automotriz, pero rápidamente despertó una creciente atención en el área de control y automatización, ahora es usado en numerosas aplicaciones industriales. El CAN es un bus serial para el envío y recepción de mensajes pequeños para el control en tiempo real. El mensaje a enviar consiste de entre 1 a 8 bytes y ha sido diseñado para operar hasta velocidades 1 Mbit/sec [2]. Es un protocolo de comunicación altamente difundido por la asociación CiA (CAN in Automation), la cual está constituida por reconocidos desarrolladores internacionales. El protocolo CAN implementa una comunicación basada en el mensaje, teniendo independencia de direcciones de origen y destino [3]. CAN es un bus de transmisión dónde un número de procesadores son conectados al bus vía una interfaz. Una fuente de datos es transmitida como un mensaje, consistiendo de entre 1 a 8 bytes. Una fuente de datos puede ser transmitida periódicamente, esporádicamente o por demanda. Por ejemplo, la velocidad de un motor o de una rueda puede ser codificada como un mensaje de un byte y transmitida cada 100 milisegundos. A la fuente de datos se le asigna un identificador único, representado como un número de 11 bits (dando 2032 identificadores). El identificador sirve para dos propósitos: filtrar la información al receptor indicado y para asignar la prioridad del mensaje [4]. En el protocolo CAN un mensaje no tiene destinatario. 2.- CONCEPTOS DEL BUS CAN. 2.1 CAPA FÍSICA La capa física en CAN es responsable de la transferencia de bits entre los distintos nodos que componen la red. Define aspectos como, niveles de señal, codificación, sincronización y tiempos en que los bits se transfieren al bus. La transmisión de datos se realiza por impulsos eléctricos en forma de señal cuadrada a través de un bus de datos. Los buses utilizados en las redes CAN son bialámbricos, es decir, constan de dos cables entrelazados, llamados CAN High y CAN Low. Por cada cable del bus circula una señal cuadrada que varía entre dos valores, y siempre se cumplirá que ambas señales cuadradas son simétricas. De esta forma, la diferencia de tensión entre las dos líneas del bus solo puede tomar dos valores, representando cada uno de ellos un bit. El bit dominante o bit 0 representa la mayor diferencia de tensión entre señales. El bit recesivo o bit 1representa la menor diferencia de tensión entre señales. Al transmitirse la información en forma de diferencia de tensión entre los dos cables, cualquier interferencia externa a la red afectaría de manera a las dos señales, manteniéndose el valor de la diferencia de tensión intacta y, por lo tanto, el mensaje. Al mismo tiempo al ser simétricas las señales de los dos cables, se anulan los campos magnéticos creados por los cambios de tensión [1]. Para la transmisión de la señal eléctrica el protocolo CAN requiere un cable con una impedancia nominal de 120 ohms, por lo tanto resistencias de terminación deben ser usadas como terminación en cada uno de los dos extremos del bus. Estas resistencias cierran el circuito eléctrico y evitan perturbaciones indeseadas en los datos transmitidos debido a fenómenos de reflexión; impiden que el mensaje rebote al llegar al final del bus. Si múltiples dispositivos (nodos) son conectados a lo largo del bus, sólo los dispositivos en los extremos del cable necesitan resistencias de terminación como se muestra en la figura 1. A las resistencias de terminación también se les conoce como elementos finales [1] [6]. Figura 1. Resistencias de terminación en los extremos del bus. Los valores de tensión suelen oscilar entre 1.5 y 2.5 volts en el cable CAN-L y entre 2.5 y 3.5 para el CAN-H. Los bits recesivo y dominante quedarían de la siguiente manera [5]: Bit dominante: la tensión diferencial (CAN-H - CAN-L) es del orden de 2.0 V con CAN-H = 3.5 V y CAN-L = 1.5 V. Bit recesivo: la tensión diferencial (CAN-H - CAN-L) es del orden de 0 V con CAN-H = CAN-L = 2.5 V. En las figuras 2a y 2b se muestran las señales medidas en las terminales de salida CAN-L y CANH con respecto a masa de una tarjeta CAN bus Shield de Sparkfun. Se observa que el voltaje de CAN-L es de 2.56 V y el de CAN-H es de 3.52 V. La figura 2c muestra que ambas señales son simétricas. Y la figura 2d nos indica el voltaje diferencial entre la señal CAN-H y CAN-L. El voltaje diferencial medido es de 2.08 V. El bus se encuentra transmitiendo a 100 kbps. a) CAN-L c) Señales simétricas de CAN-L y CAN H b) CAN-H. d) Señal diferencial en el bus Figura 2. Señales en los cables CAN-L y CAN-H. 2.2 Protocolo de comunicación CAN bus La comunicación entre nodos CAN se realiza, como en cualquier red de comunicación, siguiendo un protocolo. El protocolo es el “lenguaje” utilizado para transmitir el mensaje y debe ser conocido por el emisor y el receptor. Los mensajes o tramas de datos son series de bits en forma de ceros y unos que se agrupan en campos. Para poder leer estos mensajes hay que conocer los campos que los forman, que son los siguientes y se representan en la figura 2: i. Campo de inicio. Campo de estado o campo de identificación. Campo de control. Campo de datos. Campo de aseguramiento. Campo de confirmación. Campo de fin de la trama. Separador de tramas. Campo de inicio Formado por un bit dominante que indica el comienzo de la trama. ii. Campo de identificación El protocolo CAN requiere que todos los mensajes transmitidos tengan un identificador. El identificador está formado por 11 + 1 ó 29 + 3 bits esto debido a que el protocolo CAN soporta dos formatos, el CAN estándar (versión 2.0 A) y el CAN extendido (versión 2.0 B). Este identificador determina también la prioridad del mensaje. iii. Campo de control Formado por 6 bits que informan de la cantidad de información que contendrá el campo de datos que viene a continuación. De esta forma el receptor podrá así saber si ha recibido el mensaje completo. El primer bit ijndica si la trama es estándar, con un campo de estado de 11 bits (CAN 2.0 A), o, extendida con un campo de estado de 29 bits (CAN 2.0 B). Un bit dominante (0) indica una trama estándar y un bit recesivo (1) una trama extendida. El segundo bit es una reserva para futuras ampliaciones del mensaje, y los cuatro bits restantes indican la longitud en bytes del mensaje. Si estos cuatro bits son 0000 significa que no es una trama de datos. iv. Campo de datos Consta de un máximo de 64 bits (8 bytes) que contienen la información. Es decir, el mensaje puede contener de cero a 8 bytes de datos. Por ejemplo, si la información contiene cuatro bytes se envían únicamente 4 bytes. v. Campo de aseguramiento Formado por 16 bits para detectar errores en la transmisión. Este campo es el resultado de una serie de cálculos realizados a partir de los campos anteriores. El nodo receptor calcula el campo de aseguramiento y comprueba que coincida con el campo de aseguramiento enviado por el nodo emisor. Si detecta un error envía una trama de error compuesta por la señal de error y un limitador, el cual está formado siempre por 8 bits recesivos. vi. Campo de confirmación Formado por dos bits y en él los receptores indican al emisor si les ha llegado el mensaje completo o solicitan que lo envíe de nuevo. Estos bits son siempre enviados como recesivos, pero las unidades receptoras que tras calcular el campo de aseguramiento concluyen que han recibido bien el mensaje cambian el primero de estos bits por uno dominante. vii. Campo de fin de la trama Cierra la trama, consiste en siete bits recesivos sucesivos. viii. Separador de tramas El espacio entre tramas separa una trama de la siguiente trama de datos o interrogación remota. El espacio entre tramas consta de 3 bits recesivos. Estos bits van a continuación del campo de fin de la trama. Después de éstos tres bits que separan las tramas sigue un tiempo de bus en reposo. El tiempo de bus en reposo no es fijo, sino que varía según la situación del bus [1]. Transmisión estándar (CAN 2.0 A) Inicio 1 Identific a-dor RT R 11 bits 1 Contro l Campo datos 6 0 a 64 bits de Seguridad AC K Fin de trama 16 bits 2 7 Transmisión extendida (CAN 2.0 B) In ici o 1 Identificado r 11 bits Identficació n extendida 2 18 bits Conttr ol 1 6 Campo de datos seguridad A C K Fin de trama 0 a 64 bits 16 bits 2 7 Figura 2. Formatos de transmisión. 3.- VELOCIDADES DE TRANSMISIÓN EN EL PROTOCOLO CAN BUS. Tres principales características que determinan la aplicación de las diferentes redes de comunicación, son: Volumen de datos: Cantidad de datos que viajan por la red en cada envío. Velocidad de transmisión: Indica la cantidad de bits que son enviados en un segundo, o lo que es lo mismo, la cantidad de información por segundo. Se mide en bits por segundo (bps). Velocidad de respuesta: Velocidad que hay entre el momento de dar la orden y la respuesta del dispositivo [1] [7]. Tabla I Volumen de datos Red de computadoras Detector de proximidad Velocidad de transmisión Velocidad de respuesta Aplicación Elevado Elevado Bajo Lectura de datos Muy bajo Bajo Instantánea Sistema de seguridad Tabla I. Características que determina la aplicación de las redes de comunicación. La tabla II, consultada en [4] y [5], muestra las longitudes máximas en metros que puede tener el bus dependiendo de la velocidad de transmisión. Tabla II Velocidad Tiempo de bit Longitud máxima 1 Mbps 1 µS 30 m 800 Kbps 1.25 µS 50 m 500 Kbps 2 µS 100 m 250 Kbps 4 µS 250 m 125 Kbps 8 µS 500 m 50 Kbps 20 µS 1000 m 20 Kbps 50 µS 2500 m 10 Kbps 100 µS 5,000 m Tabla II. Velocidades de transmisión típicas. Conociendo la razón de bits por segundo y el número de bits de la trama se puede calcular el tiempo que tarda en transmitirse un mensaje (trama). Esto es válido despreciando el retardo ocasionado por la longitud del cable. Por ejemplo en transmisión estándar, considerando un mensaje 8 bytes se tendría una trama de 108 bits. Si se transmite esta trama a 500 Kbps entonces el tiempo de transmisión de la trama sería de 216 µS. 4.- CAÍDA DE VOLTAJE EN EL BUS. Para determinar que tanto afecta la longitud del bus en la calidad de las señales transmitidas se realizaron mediciones de amplitud a las señales del bus CA, usando para ello un osciloscopio digital, obteniéndose los siguientes resultados mostrados en la figura 3 y concentrados en la tabla II. a) Amplitud de la trama a transmitir b) Amplitud de la trama a 100 metros c) Amplitud de la trama a 200 metros d) Amplitud de la trama a 300 metros Figura 3. Caídas de voltaje en el bus CAN a diferentes longitudes. Tabla II Velocidad Longitud del bus Voltaje en el bus 500 Kbps 2m 2.0 V 250 Kbps 2m 125 Kbps Longitud del bus Voltaje en el bus Sí 200 m 1.12 V Sí 2.0 V Sí 200 m 1.12 Sí 2m 2.0 V Sí 200 m 1.12 Sí 80 Kbps 2m 2.0 V Sí 200 m 1.12 Sí 40 Kbps 2m 2.0 V Sí 200 m 1.12 Sí 100 m 1.4 V Sí 300 m 0.92 V Sí 500 Kbps Datos recibidos correctamente Datos recibidos correctamente 250 Kbps 100 m 1.44 Sí 300 m 0.92 V Sí 125 Kbps 100 m 1.44 Sí 300 m 0.92 V Sí 80 Kbps 100 m 1.4 Sí 300 m 0.92 V Sí 40 Kbps 100 m 1.4 Sí 300 m 0.92 V Sí Tabla 2. Caídas de voltaje a diferentes longitudes de bus. 5.- CONCLUSIONES. Observamos que a mayor longitud de bus la velocidad de transmisión es menor, esto es para no degradar la información y como consecuencia no se pueda recuperar en el receptor. El tiempo de transmisión lo determina la velocidad de transmisión y el tamaño del mensaje que puede ser de 0 a 8 bytes. Las mediciones realizadas se realizaron con una longitud máxima de bus de 300 metros. Se observó caída de voltaje al incrementar la longitud del bus pero no afectó en la recepción de los datos. Se esperaban problemas en la recepción de los datos en el caso de 500 Kbps ya que la longitud máxima recomendada es de 100 metros. No se detectaron problemas en la recepción de los datos aunque la caída de tensión resultó ser más del 50%, de 2.0 V medidos en emisor se detectan 0.92 V en el nodo receptor localizado a 300 metros. 6.- REFERENCIAS. 1. Ma. José Llanos López, Circuitos eléctricos auxiliares del vehículo, (Paraninfo, España), 454, (2011). 2. Reinder J. Bril, Johan J. Lukkien, Rob I. Davis y Alan Burns, Message response time analysis for ideal controller area network (CAN) refuted, (University of York, England), 4, (2006). 3. Julián Andrés Vidal, Milton Sergio Zúñiga y Oscar A. Rojas, Implementación de una red industrial CAN para un sistema SCADA, (Grupo de I+D en Automática Industrial, Universidad del Cauca, Colombia), 6. 4. K. Tindell, A. Burns y A. Wellings, Calculating controller area network (CAN) message response times, (University of York, Department of Computer Science), 6, (1995). 5. Héctor Kaschel C. y Ernesto Pinto L., Análisis protocolar del bus de campo, (Universidad de Santiago, Chile), 7. 6. Marco Di Natale, Haibo Zeng, Paolo Giusto y Arkadeb Ghosal, Understanding and using the Controller Area Network communication protocol, (Springer, New York), 223, (2012). 7. Vicente Guerrero, Ramón L. Yuste y Luis Martínez, Comunicaciones industriales, (Alfaomega, España), 412, (2010).