You are on page 1of 5

IMPLEMENTACIN DE UN NODO DE COMUNICACIONES BASADO EN CAN (CONTROLLER AREA NETWORK) CON FINES DOCENTES

Pau Mart Colom Dept. Enginyeria de Sistemes, Automtica i Informtica Industrial, Universitat Politcnica de Catalunya C/Pau Gargallo, 5. 08028 Barcelona, pau.marti@upc.es Manel Velasco Garca Dept. Enginyeria de Sistemes, Automtica i Informtica Industrial, Universitat Politcnica de Catalunya C/Pau Gargallo, 5. 08028 Barcelona, manel.velasco@upc.es Ricard Vill Millaruelo Dept. Enginyeria de Sistemes, Automtica i Informtica Industrial, Universitat Politcnica de Catalunya C/Pau Gargallo, 5. 08028 Barcelona, ricard.villa@upc.es Josep M. Fuertes Armengol Dept. Enginyeria de Sistemes, Automtica i Informtica Industrial, Universitat Politcnica de Catalunya C/Pau Gargallo, 5. 08028 Barcelona, josep.m.fuertes@upc.es Diego Compadre Morales Escola Universitria Politcnica de Vilanova i la Geltr, Universitat Politcnica de Catalunya Av. Vctor Balaguer, s/n. 08800 Vilanova i la Geltr

Resumen
En este trabajo describimos el diseo e implementacin de un nodo de comunicaciones basado en el protocolo de comunicaciones industriales Controller Area Network (CAN). El nodo desarrollado ha sido concebido con el fin de dar soporte a prcticas de asignaturas relacionadas con temas de automatizacin, como por ejemplo, comunicaciones industriales o sistemas informticos de tiempo real. Palabras Clave: Controller Area Network, Comunicaciones industriales, Sistemas de tiempo real, Docencia en automatizacin. A pesar de la limitacin presupuestaria, siempre presente en toda organizacin docente o industrial, la calidad de la docencia es siempre una prioridad para todo centro universitario. Por consiguiente, se debe dotar a las asignaturas de un soporte prctico suficientemente real y tecnolgicamente actual con el fin de que el alumnado se sienta familiarizado con lo que encontrar en el tejido industrial al finalizar los estudios universitarios. Adems, el hecho de que la tecnologa evolucione tan velozmente implica que los materiales utilizados en las prcticas pueda quedar rpidamente obsoleto. Por consiguiente, es de agradecer que el material usado en las prcticas de laboratorio sea de bajo coste y pueda ser utilizado por ms de una asignatura. Con el fin de a) dotar de tecnologa puntera laboratorios con b) material de bajo coste que sea c) utilizable en varias asignaturas (comunicaciones industriales, sistemas de tiempo real) impartidas en ciclos de automtica y electrnica industrial, hemos especificado, diseado e implementado un nodo de comunicaciones basado en el protocolo de comunicaciones industriales Controller Area Network (CAN) [1]. Este nodo est preparado para poder ser usado en laboratorios de asignaturas de automatizacin con una fuerte componente de comunicaciones industriales y/o tecnologas de sistemas de tiempo real.

INTRODUCCION

La docencia en temas de automatizacin se ha ido incrementando en los ltimos aos, sobretodo gracias a la creacin de segundos ciclos universitarios centrados en las reas de automtica y electrnica industrial. Dichos estudios incorporan una fuerte componente tecnolgica que requiere de un material de prcticas que est siempre actualizado y responda tanto a las exigencias tecnolgicas cercanas a la investigacin, como las correspondientes a la actualidad industrial.

En el resto de este trabajo presentamos el nodo. En la Seccin 2 discutimos las decisiones de diseo que determinan la tecnologa utilizada, la arquitectura y los diferentes componentes que conforman el nodo de comunicaciones. En la seccin 3 describimos la implementacin del nodo, centrndonos en los diferentes servicios que el nodo proporciona. En la seccin 4 explicamos el tipo de prcticas realizables con dicho nodo (resumiendo la llamadas mas importantes de la librera utilizada) y finalizamos con las conclusiones en al seccin 5.

Histricamente, las primeras implementaciones eran las llamadas stand-alone, en las que el controlador de comunicaciones CAN estaba separado tanto del transceptor de lnea (bus) como del microcontrolador. Las ventajas de esta arquitectura son la modularidad y fcil conectividad entre mdulos. Seguidamente, aparecieron soluciones integrando controlador y microcontrolador, hecho que mejora los tiempos de acceso del microcontrolador a los buzones de transmisin y recepcin del microcontrolador CAN. Teniendo en cuenta los fines docentes del nodo, se decidi optar por una arquitectura integrada: microcontrolador y controlador de comunicaciones en un mismo chip. La decisin se tom con el fin de minimizar los retardos entre componentes, y ms importante, evitar posibles fallos en las conexiones entre componentes. Adems, esta arquitectura ofrece la ventaja que, al disponer el microcontrolador de mdulo interno CAN, es el propio microcontrolador quien puede encargarse de gestionar la comunicacin CAN sin necesidad de utilizar un controlador externo a l, requiriendo nicamente el soporte de un transceptor de seal TTL-CAN para adaptar la seal del microcontrolador a la del bus CAN, tal y como se muestra de forma esquemtica en la Figura 1.

DECISIONES DE DISEO

En esta seccin se detallan las decisiones de diseo tomadas y su repercusin en la arquitectura del nodo de comunicaciones. 2.1 PROTOCOLO DE COMUNICACIONES

La tecnologa que se ha escogido para el nodo de comunicaciones es Controller Area Network (CAN). CAN es un sistema de comunicaciones basado en una arquitectura de bus para transferencia de mensajes en ambientes distribuidos. Fue concebido por Robert Bosch GmbH para aplicaciones crticas de tiempo real. Aunque originalmente fue diseado con el fin de ser aplicado en el sector del automvil, rpidamente despert la atencin en el rea del control y de la automatizacin industrial. Se justifica la eleccin de CAN como protocolo de comunicaciones industriales porque este protocolo considera una arquitectura multimaestra capaz de proporcionar caractersticas de respuesta de tiempo real y tolerancia a fallos en la recepcin de mensajes y mal funcionamiento de todos y cada uno de los nodos. Al mismo tiempo, cabe resaltar que CAN est estructurado en el modelo OSI en una arquitectura colapsada de dos capas (la capa fsica y la de enlace de datos). Para la capa de aplicacin existen distintas opciones. Entre ellas destacan: CiA CAN Application Layer, CANOpen, SDS (Smart Distributed System), DeviceNet y CAN Kingdom. Cabe destacar que CAN ha sido una tecnologa ampliamente utilizada tanto para entornos hardware de diseo y implementacin de aplicaciones distribuidas (como en [7]), como para entornos de simulacin software de dichas aplicaciones (como en [8]), pero sus caractersticas las hacen especialmente idneas para ser usadas con fines docentes (ver por ejemplo [3] o [10]), con las propiedades que se detallan en el resto de este trabajo. 2.2 NIVEL DE INTEGRACIN

Figura 1: Arquitectura general 2.3 COMPONENTES

El microcontrolador que seleccionado para nuestra aplicacin deba tener un controlador de CAN integrado. Este factor hizo que la eleccin de este dispositivo presentase importantes restricciones, ya que debamos buscar nicamente entre microcontroladores de este tipo. Despus de revisar diversos modelos se lleg a la conclusin de que los nodos de comunicacin estuvieran basados sobre el microcontrolador PIC18F258. Dicho dispositivo pertenece a la gama alta de Microchip y adems de ofrecer todas las prestaciones que se requieren (interrupciones externas, timers, comunicacin USART, etc.) lleva consigo integrado un controlador CAN. El transceptor elegido para este diseo ha sido el MCP2551 de Microchip. Se trata de un transceptor de alta velocidad de uso muy extendido entre los productos orientados a la comunicacin CAN. Este dispositivo se encarga de recibir las instrucciones

Una vez decidida la tecnologa, se estableci el tipo de integracin que se requera para el nodo.

enviadas por el microcontrolador adaptando posteriormente su seal a niveles elctricos CAN y viceversa. Por ello, se comporta como una interfase entre el mdulo microcontrolador y el bus de datos. Las caractersticas mas relevantes del PIC18F258 son las siguientes: Vvelocidad mxima de trabajo de 40MHz. Memoria Flash de 32K. Da soporte a cuatro timers de 8 y 16 bits. Trabaja con entradas y salidas tanto analgicas como digitales, mediante cuatro puertos. Da soporte a la modulacin por ancho de pulso. Incluye mdulo de comunicacin USART. Contiene tres entradas de interrupcin externa. Controlador interno CAN.

totalidad del sistema, jerarquizando a la vez una serie de tareas a realizar. Por ese motivo este dispositivo es el que organiza de forma global el funcionamiento del sistema. Cabe destacar que el oscilador utilizado para el microcontrolador proporciona una frecuencia de trabajo de 20MHz.
CAN H E/S CAN L TX Transceiver CANTX MCP2551 CANRX
Microcontrolador

PC

RX

PIC18F258 Controlador CAN

TX RX

Transceiver MAX233

LCD

LEDS

Las caractersticas ms relevantes del controlador CAN interno del microcontrolador son: Bit rate del mensaje de hasta 1Mbps. Identificacin de mensajes tanto estndar como extendidos. Longitud del mensaje CAN de 8 bytes. 3 Buffer de transmisin de datos con posibilidad para establecer prioridades (por programa). 2 Buffer de recepcin de datos. 3.1

Figura 2: Diagrama de bloques GESTION DE LA COMUNICACION

Anlogamente, las caractersticas ms relevantes del transceiver MCP2551 son las siguientes: Soporta una velocidad mxima de 1Mbps, a la vez que una velocidad mnima de 16 kbps. Admite hasta un mximo de 112 nodos. Incorpora un sistema de alta inmunidad al ruido debido a la tensin diferencial del bus.

La principal funcin que debe gestionar el microcontrolador es la comunicacin con el bus CAN. ste se conecta al bus mediante un transceptor de seal, el cual adecua los niveles elctricas del bus a niveles admisibles por el microcontrolador y viceversa, ya que el transceptor es el que se encuentra directamente conectado a la capa fsica CAN. La conexin entre ste y el microcontrolador se establece mediante las seales CANRX (recepcin de datos de la red) y CANTX (envo de datos a la red). ste a su vez, se encuentra conectado a la red mediante las seales CAN_H y CAN_L. En el diseo, entre las patillas CANH_ y CAN_L se ha conectado una resistencia y un jumper en paralelo. Su valor se obtiene a partir de la impedancia caracterstica de la lnea y permite adecuar el funcionamiento del sistema a diferentes longitudes de cables y nmero de unidades de control abonadas, ya que absorben fenmenos de reflexin que pueden perturbar el mensaje. Por lo tanto el bus debe cerrarse en los extremos con impedancias de carga. Estas resistencias suelen estar alojadas en el interior de algunas de las unidades de control (nodos) del sistema por cuestiones de economa y seguridad de funcionamiento. En nuestro diseo, al requerir nicamente dos terminadores de red, se incorpora un jumper con el que habilitamos o inhabilitamos la actuacin del terminador del nodo. Anlogamente, otra funcin de control que debe gestionar el microcontrolador es la comunicacin va serie (USART) con un PC para poder depurar y monitorizar la red de comunicaciones. Para ello se establece conexin con otro transceptor de seal (MAX233) que se encarga de adecuar las seales

IMPLEMENTACION

La arquitectura del nodo de comunicaciones viene determinada por los objetivos que dicho nodo debe satisfacer. Los nodos, adems de facilitar la comunicacin entre ellos debern poder dar soporte a la visualizacin de datos e informaciones, as como tambin establecer una interfase para el control de procesos. Para ello, se decidi que los nodos deberan comunicarse mediante RS232 con un PC para poder visualizar dichas variables, adems de dar soporte a la posible incorporacin de un dispositivo LCD. Tambin debe posibilitar la gestin de entradas y salidas de propsito general con el fin de dar lugar al control de procesos. La Figura 2 detalla los distintos bloques que forman el nodo. Cmo se observa en el diagrama, la arquitectura del nodo est dispuesta alrededor del dispositivo microcontrolador, el cul es el encargado de regir la

elctricas utilizadas en la comunicacin RS-232 a las del propio microcontrolador y viceversa. La conexin entre este dispositivo y el microcontrolador se establece mediante las seales RX (recepcin de datos del PC) y TX (envo de datos al PC). ste, a su vez se conecta al PC mediante las seales RX y TX adaptadas ya a las tensiones soportadas por el protocolo RS-232. 3.2 ENTRADAS Y SALIDAS

El microcontrolador tambin se encarga de controlar las entradas y salidas de propsito general. El nodo dispone de unos puertos que permiten su interaccin con dispositivos o elementos exteriores, los cuales pueden ser utilizados con diversos fines. Destacamos que las patillas del microcontrolador destinadas a entradas y salidas de propsito general se protegen mediante electrnica especfica ante posibles errores de conexionado que podran provocar la destruccin del microcontrolador. Cabe destacar que tambin se ha dotado al nodo de un conjunto de LEDs para facilitar la visualizacin de distintos eventos y se ha preparado el nodo para la fcil incorporacin de un LCD, el cual permitir tambin la visualizacin de datos. Asimismo, se ha incorporado un interruptor conectado a una de las interrupciones del microcontrolador. 3.3 ALIMENTACIN

Figura 3: Nodo de comunicaciones

APLICACIONES

En esta seccin se repasan las funciones ms importantes de la librera CAN de Microchip para la realizacin de prcticas y para otras aplicaciones. Esto se concreta en posible entornos de aplicacin del nodo de comunicaciones. 4.1 LIBRERIA DE COMUNICACIN CAN

La etapa de alimentacin proporciona servicio al microcontrolador, al transceptor CAN y al canal RS232. Adems, con el fin de utilizar el mnimo de fuentes de alimentacin, adems de compartir la seal propia de bus se comparte tambin una nica seal de alimentacin, capaz de abastecer a todos los nodos remotos del sistema. De esta forma se establece que junto con los cables del propio bus de comunicacin CAN tengan cabida los de alimentacin del sistema (+12 y 0V respectivamente), proporcionando as un servici integral a cada uno de los nodos. La finalidad de este criterio de diseo es pues el ahorro en el nmero de fuentes de alimentacin que necesita el sistema. No obstante, el diseo dispone de la posibilidad de alimentar cada nodo mediante la seal compartida de la que hemos hablado o tambin de la proporcionada por la fuente de alimentacin. Por ello, es eleccin del usuario del sistema la disposicin e interconexin de los diferentes nodos, estableciendo de esta forma un sistema mucho ms flexible. 3.4 PLACA

Con el fin de facilitar el trabajo relacionado con la programacin del microcontrolador existe una librera especfica en C que se encarga de gestionar la comunicacin CAN que puede ejercer el microcontrolador. Dicha librera tiene por nombre CAN18XX8 y se puede encontrar dentro de la pgina web de Microchip. Las funciones bsicas son las siguientes: CANInitialize: esta funcin es la encargada de inicializar el mdulo CAN con una serie de parmetros: SJW, BRP, PHSEG1, PHSEG2, PROPSEG y config. El parmetro config sirve para si deseamos recibir mensajes nicamente de tipo estndar, extendido o ambos. Los parmetros SJW, BRP, PHSEG1, PHSEG2 y PROSPEG hacen referencia a la configuracin del Tiempo Nominal de Bit, con el fin de establecer la velocidad de envo y recepcin de mensajes a travs del bus. CANSendMessage: se encarga de colocar el mensaje a transmitir en uno de los buffers vaco, marcndolo como disponible a ser transmitido. Los parmetros de entrada que conforman esta funcin son Id (valor del identificador del mensaje, el cual corresponder a un valor de 11 bits para mensaje de tipo estndar y de 29 para extendido), Data (dato enviado), DataLen (nmero de bytes de datos enviados), MsgFlags (indica opciones como la eleccin de mensaje estndar o extendido, la inclusin del bit RTR y el nivel de prioridad de cada buffer de salida). Al mismo tiempo, esta funcin tiene un valor de retorno el cual indica si el mensaje ha sido

El resultado final del montaje del nodo de comunicaciones puede verse en la Figura 3. Para ms detalles de implementacin, referirse a [2].

colocado satisfactoriamente en uno de los buffers vacos, por lo que en caso de fallo se vuelve a buscar un buffer que se encuentre libre. CANReceivedMessage: esta funcin se encarga de copiar el nuevo mensaje recibido en uno de los buffers libres. Los parmetros de entrada de esta funcin son Id, Data, DataLen y MsgFlags, equivalentes a la funcin anterior CANIsRxReady: esta funcin nos devuelve un 1 si por lo menos uno de los Buffers de recepcin se encuentra lleno, y un 0 si ambos se encuentran vacos. CANIsTxReady: esta funcin retorna un 1 si por lo menos unos de los buffers de transmisin se encuentra vaco, y un 0 si todos se encuentran ocupados. ENTORNOS DE APLICACION

Referencias [1] CAN (1991). Bosch CAN specification, V 2.0 Part A. R. Bosch Gmbh, Germany. [2] Compadre, D. (2003) Diseo de un nodo de comunicaciones CAN basado en PIC. Proyecto Final de Carrera. Vilanova i la Geltr, Barcelona. [3] Fuertes, J.M., Vzquez, L., Rojas, L. (1999) Educational Architecture LAN/CAN for Process Control Engineering 3rd Int. Workshop on Design of Mixed-Mode Integrated Circuits and Applications Proc. p.203-206 IEEE ed. Puerto Vallarta, Mexico, Julio [4] Fuertes, J.M., Rojas, L., Matos, N., Vzquez, L. (2002) Sistema Integrado de Control con Alcance Docente 2nd International Conference on Automatic Control AUT'2002 Proceedings Santiago de Cuba 17-19 Julio [5] Gmiz, J., Samitier, J., Fuertes, J.M., Rubies, O. (2003) Practical evaluation of messages latencies in CAN. Proc 8th IEEE Int. Conference on Emerging Technologies and Factory Automation, Lisbon, September [6] Mart, P., Fuertes, J.M., and Fohler, G. (2001) An Integrated Approach to Real-Time Distributed Control Systems Over Fieldbuses, Proc 8th IEEE Conf. Emerging Technologies and Factory Automation. France. October. [7] Martinez, R., Hassan, H., Benet, G., Crespo, A. (2001) Arquitectura de control distribuida sobre bus CAN para robots moviles. XXII Jornadas Automtica, Bellaterra, Barcelona [8] Portillo, J., Marcos, M. (2001). Contributions to the design of real time distributed control systems. Proceedings of the European Control Conference, September, 2001. Porto, Portugal. [9] Tindell, K. and A. Burns (1994). Guaranteeing Message Latencies on Controller Area Network (CAN). Proceedings 1st International CAN Conference, Mainz (Germany), Sept. 1994. [10] Vzquez, L., Fuertes, J.M., Rojas, L., Uribazo, E. (2001) Educational Industrial Network Design Based in CANopen Application Layer III Simposium de Control Automtico, CIMAF2001 Proceedings p.103-112 La Habana, Cuba, Marzo

4.2

Estas funciones de mensajera facilitan el diseo de aplicaciones distribuidas sobre CAN. Esto permite pensar en una gran variedad de aplicaciones. As, tanto en prcticas de comunicaciones industriales, como de sistemas de tiempo real o de control (como en [4]), la fcil programacin de la mensajera hace que el nodo puede ser fcilmente utilizado. Por ejemplo, pensando en sistemas de tiempo real, una prctica interesante podra basarse en implementar la aplicacin propuesta en [9] para medir las latencias reales de los mensajes (conociendo a priori el anlisis de tiempos de respuesta sobre redes CAN), como se detalla en [5]. Pensando en sistemas de control, y concretamente en sistemas de control en red, seria interesante comprobar los resultados presentados en [6], donde los retardos de comunicacin en un lazo de control son activamente compensados por el controlador.

CONCLUSIONES

En este trabajo se ha presentado un nodo de comunicaciones basado en la tecnologa CAN con el propsito de ser usado en prcticas de laboratorio de asignaturas de automatizacin y electrnica industrial. El nodo permite disponer de material de bajo coste, con tecnologa puntera y de amplia utilizacin para distintas asignaturas. Las caractersticas principales del nodo son la comunicacin CAN, la comunicacin RS-232 para funciones de depuracin y/o monitorizacin de la red y la utilizacin de E/S de propsito general para ser utilizadas en distintas aplicaciones. Agradecimientos Este trabajo ha recibido soporte del proyecto CICYT ref. DPI2002-01621.