Beruflich Dokumente
Kultur Dokumente
Indice
Introduccin Que es CAN? Caractersticas de las redes CAN Un nodo CAN El mensaje La capa fsica El esquemtico Descripcin detallada Comunicacin con el CAN-Contoller Los Comandos del MCP2515 Materiales y coste Pin-out pag.3 pag.3 pag.4 pag.5 pag.6 pag.7 pag.8 pag.9 pag.10 pag.11 pag.13 pag.14
3
Introduccin
Este documento es una gua de referencia del Hardware del Proyecto ArCan, y por tanto un punto inicial de informacin para todos aquellos interesados que empiezan su aventura con un shield ArCan. En el momento de la elaboracin de este manual, ArCan se encuentra en su cuarta revisin, RevD, por lo que los datos aqu liberados hacen referencia a este. El manual inicia con algunos conceptos tericos en lo que a redes CAN se refiere y culmina con el conexionado prctico del Shield. Para ms informacin recomiendo visitar www.arcan.es, blog del proyecto donde se encuentra todo el desarrollo, o contacta directamente con migo en raulmp@arcan.es
Que es CAN?
CAN (Controller Area Network) es un protocolo de comunicaciones desarrollado por la firma alemana Robert Bosch GMBH, basado en una topologa de bus para la transmisin de mensajes en ambientes distribuidos, adems ofrece una solucin a la gestin de la comunicacin entre mltiples unidades centrales de proceso. Se dise principalmente para el sector del automvil como una respuesta a comunicar la creciente cantidad de elementos introducidos en los automviles actuales, que incluyen los elevalunas, la centralita de confort, la alarma, etc. Al utilizar un bus para la comunicacin, se evita tener que introducir cableado para el paso de tantas seales entre elementos, ahorrndose as una elevada cantidad de cobre y por consiguiente una reduccin de los costes. CAN proporciona beneficios al ser un protocolo de comunicaciones normalizado, con lo que se simplifica y economiza la tarea de comunicar subsistemas de diferentes fabricantes sobre una red comn o bus. Otra gran ventaja es que el procesador anfitrin (host) delega la carga de comunicaciones a un perifrico inteligente, por tanto el procesador dispone de mayor tiempo para ejecutar sus tareas. Y por otro lado, al ser una red multiplexada, reduce considerablemente el cableado y elimina las conexiones punto a punto. Pese a que sus aplicaciones iniciales
estaban perfectamente definidas para el sector automovilstico, esto no ha impedido incorporarlo en otros esce-
narios, como pueden ser automatizacin de fbricas, electrnica marina, control de mquinas industriales, etc.
En este escenario podemos ver que la Unidad de control 2, enva el mensaje que tena almacenado en memoria al bus, y todas las dems unidades ven ese mensaje a sus entradas. Sin embargo la Unidad de control 3 deshecha este mensaje en la etapa de Seleccin, mientras que las restantes deciden que es apropiado y lo almacenan. CAN est orientado a mensajes, es decir la informacin que se va a intercambiar, se descompone en mensajes, a los cuales se les asigna un identificador y se encapsulan en tramas para su transmisin, este ID o identificador es el que consigue que el nodo pueda saber si el mensaje le ser til.
La Organizacin Internacional para la Estandarizacin (ISO, International Organization for Standarization) define dos tipos de redes CAN: Red de alta velocidad, capaz de alcanzar 1 Mbps, bajo el estndar ISO 11898-2, destinada a controlar el motor e interconectar las unidades de control electrnico (ECU). Red de baja velocidad, tolerante a fallos que permite alcanzar 125 Kbps, bajo el estndar ISO 11519-2/ISO 11898-3, dedicada a la comunicacin de los dispositivos electrnicos internos de un automvil como son el control de puertas, techo solar, luces, asientos, etc. Principales caractersticas de una red CAN
Un nodo CAN
Una red CAN se compone de una serie de dispositivos a los que dePrioridad de mensajes. nominaremos nodos, conectados Garanta de tiempos de latencia. a travs de un bus serie, CAN-Bus. Flexibilidad en la configuracin. Su forma de transmitir como ya sabemos es en broadcast y por tanto, Recepcin por multidifusin (multicast) con sincronizacin de tiempos. el nodo tiene que tener una cierta inteligencia para discernir entre Sistema robusto en cuanto a consistencia de datos. mensajes que le son tiles y los que no. As que un nodo CAN se comSistema multimaestro. pone de la siguiente estructura funDeteccin y sealizacin de errores. damental: Retransmisin automtica de tramas errneas Host-Processor, elemento que se encarga de la comprensin Distincin entre errores temporales y permanentes de los nodos de los mensajes recibidos y la eleccin de los mensajes a en- Desconexin autnoma de nodos defectuosos. viar. CAN-Controller, se encarga de la recepcin y envo de los mensajes. Bsicamente su funcin al enviar, es almacenar la trama a transmitir e ir mandando los bits de la trama uno a uno. En la recepcin va almacenando los datos de la trama bit a bit y una vez completa interrumpe al Host-Processor.
Transceiver, suele estar integrado junto al CAN-Controller, nicamente se encarga de ajustar los niveles lgicos entre el CAN-Controller y el Bus fsico. Tambin implementa algunos circuitos de proteccin para aislar en la medida de lo posible al CAN-Controller.
El mensaje
Para entender mejor como funcionan las redes CAN, es necesario comprender la estructura que componen los mensajes que se envan a travs del bus. tampoco ningn mecanismo que los difiera entre ellos, es una capa superior software, la capa Seleccin, la que se encarga de saber si el mensaje le concierne o no, y lo sabe gracias al
Existen dos tipos de mensajes CAN que se distinguen nicamente por la longitud del Identificador Identifier. En el caso del Formato Estandar Standard Message Format son 11 bits, mientras que para el Formato Extendido (Extended Message Format) son 29 bits. En las redes CAN no se asigna a los dispositivos una direccin y
Identificador. Esto es una caracterstica tan curiosa como potente y es que en una red CAN un mismo mensaje puede ser recibido por varios dispositivos y cada uno de ellos realizar una accin distinta, por ejemplo, al encender las luces de automovil se activan tanto los pilotos delanteros, como los traseros, se atenua la luz del cuadro y adems se enciende un indicador.
La capa fsica
Sin duda, una de las principales ventajas que ofrece una red CAN, es la poca cantidad de cobre que necesita para ser implantada, con tan solo un par de hilos trenzados podemos conectar hasta 112 nodos. La informacin por estos cables viaja en modo diferencial, dndole a nuestro sistema una gran robustez frente al ruido. ra el CAN-L referenciado a masa (0V - 5V) para seguir transmitiendo los mensajes a los dems nodos. Es necesario cerrar las lneas con elementos terminadores, estos son una simples resistencias que se calculan de forma emprica dependiendo del nmero de nodos y la longitud del
Como podemos observar en el dibujo, el CAN-H tiene una tensin de 2.75V a 5V mientras que en CAN-L es de 0V-2.25V. Como es una tensin diferencial (CAN-H - CAN-L)=DATO, su codificacin para conseguir un 0 lgico a la salida 2.75V-2.25V= 0.5V y para el 1 lgico es 5V-0V=5V. Una de las cosas que hace de CAN un sistema muy robusto es que si en algn momento alguno de nuestros cables sufre un accidente, ya sea porque se corte o por una derivacin a masa, nuestro sistema automticamente usar la otra lnea referenciada a masa para seguir transmitiendo. Por ejemplo, en caso de que el CAN-H se derivase a masa, nuestro sistema usa-
cable. Estas resistencias se ponen al final y al principio de la lnea puenteando el CAN-H y el CAN-L. Para analizar el contenido de la lnea en la prctica y de forma cmoda, sera necesario usar un osciloscopio digital con dos canales, memoria y un ancho de banda de 20 MHz.
El esquemtico
Descripcin detallada
Alimentacin de entrada: Este es el bloque ms sencillo, ya que aprovechamos la fuente de alimentacin que implementa Arduino. Todos los circuitos seleccionados en ArCan son compatibles a 5V. Tiene un condensador para dar ms estabilidad al Shield, y un led que indica que se est alimentando correctamente. Oscilador: Se ha elegido un oscilador de 8MHz para el CAN-Controller. Es el montaje recomendado por el fabricante y lo podemos encontrar en el Datasheet, "Figure 8-1" pag. 53; los valores para los condensadores estn extrados de la "Tabla 8-2" pag. 54. Reset: El reset se produce a valor lgico '0', por tanto tiene una resistencia pull-up que mantiene un '1' lgico constante, excepto cuando presionamos el pulsador. Buffer Led: Simplemente son dos leds que se pueden controlar, como vimos en un ejemplo, desde el MCP2515, pudiendo aadirles la funcionalidad que queramos a travs de la programacin de Arduino, o dejar al CAN-Controller que los maneje para simbolizar que los buffers de recepcin estn llenos. CAN Core: Sin duda el corazn de ArCan. Podemos ver 4 elementos claramente diferenciados: 1. MCP2515: Es el CAN-Controller y se encarga de toda la gestin CAN. 2. MCP2551: Es el transceiver, y su objetivo es hacer de "traductor" entre las seales CAN, y las que puede entender el MCP2515. 3. Reductor de ruido: Esta parte es opcional, en ocasiones si el cable que se utiliza no es lo suficientemente bueno, no est trenzado o estamos operando en entornos muy ruidosos, podemos tener problemas en la comunicacin; este elemento nos va a filtrar la seal mejorando la relacin Seal/Ruido. 4. Final bus: Mediante este jumper habilitamos la resistencia terminadora del bus, as nos ahorramos conectarlas de forma externa. Solo dos elementos de nuestra red deben tenerlo habilitado, concretamente los que estn en el extremo.
10
Alimentacin para los Sensores: Como inicialmente el diseo est pensado para sensrica distribuida y aplicaciones domticas, es posible que los usuarios quieran aprovecharse de la alimentacin de Arduino. En este caso he aadido 2 conectores 5.08(Screw) tipo atornillable, protegidos por un fusible, para evitar daos que se puedan producir en Arduino/ArCan por culpa de sobrecorrientes. Conectores E/S: Todos los pines libres de propsito general de Arduino, los he expandido a conectores de 5.08(Screw) tipo atornillables, para facilitar todo el conexionado de sensores/actuadores al Shield.
11
12
6. LOAD TX BUFFER: Este comando es otro acceso directo a los registros que van a controlar los buffers de emisin de datos via CAN. En este caso debemos enviar 0b01000abc seguido del dato que deseamos cargar, a, b y c usa un mecanismo similar al de READ RX BUFFER. 1. BIT MODIFY: Este es el comando que ms envo de datos require, se procede de la siguiente forma, enviamos 005 seguido de la direccin del registro que queremos modificar, 0xaddress, posteriormente enviamos la mscara de bits, que es donde codificaremos cuales son los bit que deseamos modificar, por ejemplo 081 (0b10000001) con esta mscara solo modificamos el primer y el ltimo bit, a continuacion enviamos el dato a modificar 0xdata. 2. READ STATUS: Este comando nos entrega el registro de estado de nuestro controlador CAN, se enva 0xA0, y enviamos un dummy, ahora podemos recoger el resultado de la lectura del SPDR, pero tenemos que tener una pequea cosa en cuenta, debemos enviar un dummy ms, porque tal como est implementado, el comando enva por duplicado el registro de estado. En este caso puede que la forma ms sencilla de tratar con este comando sea enviando 0xA0 seguido de 2 dummys, y posteriormente recoger en SPDR el registro de estado.
13
1. RX STATUS: Bastante similar al comando anterior con la salvedad que en este caso estamos interesados en consultar el estado de recepcin. Se procede de igual forma, pero en este caso el OpCode a enviar es 0xB0 y lo que recibimos es:
Materiales y coste
El coste unitario para una produccin de 30 Shields se puede desglosar en: Fabricacin PCB Componentes Montaje Logstica Total 8.54 10.32 9.12 1.27 29.25
La solucin comercial ms econmica cuesta 65, revista Elektor N346 Abril 2009.
14
Pin-out
A continuacin se detalla a que nmero de pin de Arduino pertenece cada conector atornillable o su funcionalidad.
+5V GND
Analog In
15