Sie sind auf Seite 1von 16

HW

Manual del Hardware


por Ral Milla Prez www.arcan.es

Manual del Hardware Ral Milla Prez - www.arcan.es

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

Manual del Hardware Ral Milla Prez - www.arcan.es

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

Manual del Hardware Ral Milla Prez - www.arcan.es

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.

Caracterstcas de las redes CAN


CAN es un protocolo serie que usa un mtodo de transmisin basado en mensajes, es decir, un elemento enva un mensaje a travs del bus a todos los componentes, y estos se encargan de saber si la informacin del mensaje le es til o no. Si el mensaje fuese de inters para algn nodo, este lo almacena y procesa, si no, simplemente la deshecha. Con la siguiente imagen tratar de aclarar un poco el mecanismo del proceso.

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.

Manual del Hardware Ral Milla Prez - www.arcan.es

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.

Manual del Hardware Ral Milla Prez - www.arcan.es

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.

Manual del Hardware Ral Milla Prez - www.arcan.es

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.

Manual del Hardware Ral Milla Prez - www.arcan.es

El esquemtico

Manual del Hardware Ral Milla Prez - www.arcan.es

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

Manual del Hardware Ral Milla Prez - www.arcan.es

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.

Comunicacin con el CAN-Controller


La comunicacin entre Arduino y el MCP2515 se realiza a travs del bus SPI siguiendo una sere de comandos especificados en el datasheet del dispositivo. En nuestro caso ATmega8 que es el microcontrolador que incorpora Arduino, cuenta con una Interfaz SPI Hard, esto facilita la conexin ya que se reduce a configurar, mediante los registros adecuados, este perifrico. Los registros son: 1. SPCR (SPI Control Register): Es el que nos permite configurar los distintos aspectos del perifrico, Interrupciones, habilitacin, modo, Master/Slave y frecuencia para el SCK. 2. SPSR (SPI Status Register): Este es el registro de estado, y nos informa mediante los distintos Flag/ bits el estado del perifrico. 3. SPDR (SPI Data Register): Este es el registro donde se vuelcan los Bytes a enviar, y tras el envo encontraremos en l, el Byte recibido. Para conocer los valores que debemos escribir en estos registros es necesario recurrir al datasheet del MCP2515 que es el dispositivo esclavo y el que va a imponer el modo. En el captulo 12, pgina 63, estn definidas todas las especificaciones referentes al interfaz SPI. Como podemos observar en el primer prrafo el MCP2515 es capaz de soportar el MODO 0,0 (0) y el 1,1 (3). Otro de los parmetros que debemos configurar es el SCK, de vuelta al datasheet vemos que la frecuencia mxima que soporta el Can-Controller es de 10MHz, Arduino trabaja a 16MHz por tanta configuramos el divisor en 2, para trabajar a 8MHz.

11

Manual del Hardware Ral Milla Prez - www.arcan.es

Los Comandos del MCP2515


La interfaz SPI de nuestro controlador CAN implementa 9 OpCodes distintos, que detallaremos a continuacin: 1. RESET: tan solo debemos enviar 0xC0. Resetea todos los registros, y coloca al MCP2515 en Modo Configuracin, en futuras entradas trataremos el Modo de Configuracin ms ampliamente. 2. READ: para leer un registro basta con enviar 003 seguido de la direccin del registro a leer, 0xaddress, y a continuacin enviamos un dummy (basura) para as recoger en SPDR el valor del registro leido. 3. READ RX BUFFER: Podramos decir que se trata de un acceso directo a los registros de control de los buffers de recepcin de mensajes CAN. Su uso puede resultar un poco extrao, tendramos que enviar 0b10010nm0 donde n y m nos marcara el buffer al que queremos acceder. Como en el comando READ, finalizamos enviando un dummy para poder recoger el valor del registro en SPDR. 4. WRITE: Ya lo hemos usado, pero no est de ms verlo de nuevo. Enviamos 002 seguido de la direccin del registro que deseamos modificar, 0xaddress, y terminando con el dato a escribir. 5. REQUEST-TO-SEND(RTR): Bsicamente es la que da la orden de empezar la transmisin de los datos que estn almacenados en los buffers. Su funcionamiento es tan simple como enviar un solo comando, 0b10000nnn donde colocando un 1 en alguno de los n, daremos permiso a ese buffer para empezar la transmisin.

12

Manual del Hardware Ral Milla Prez - www.arcan.es

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

Manual del Hardware Ral Milla Prez - www.arcan.es

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

Manual del Hardware Ral Milla Prez - www.arcan.es

Pin-out
A continuacin se detalla a que nmero de pin de Arduino pertenece cada conector atornillable o su funcionalidad.

Digital GND +5V 8 7 6 5 4 3 2

CAN-H CAN-L GND

+5V GND

Analog In
15

Das könnte Ihnen auch gefallen