can

17
INSTITUTO TECNOLOGICO DE LOS MOCHIS Profesor. Fonseca Beltrán Jaime Microcontroladores avanzados CAN Zayas Olguin David Ernesto Nº de control 11440639 Ingeniería Electrónica 7° Semestre

Upload: ernesto-zayas-olguin

Post on 14-Sep-2015

219 views

Category:

Documents


0 download

DESCRIPTION

protocolo de comunicación can

TRANSCRIPT

INSTITUTO TECNOLOGICO DE LOS MOCHIS

Profesor. Fonseca Beltrn Jaime

Microcontroladores avanzados

CAN

Zayas Olguin David Ernesto

N de control 11440639

Ingeniera Electrnica

7 Semestre

Los Mochis, Sinaloa. Noviembre de 2014

CANHistoria.CAN es un protocolo de comunicaciones desarrollado por la firma alemana Robert Bosch. Uwe Kiencke inici a desarrollar este proyecto el cual se presentara de manera oficial como Controller Area Network en el congreso de la SAE (Society of Automotive Engineers) en 1986. Despus de la publicacin de este protocolo de comunicacin, se comenz a implementar en algunos de sus productos. En 1987 intel presento el primer chip de control con protocolo CAN y despus Philips semiconductors.Tras mejorar el protocolo CAN (CAN 2.0) en 1991, comenz a ser utilizado por primera vez en la industria automovilstica Mercedes-Benz .En el 2000 se define y desarrolla el protocolo de comunicacin en tiempo real para CAN llamado Time-Triggered Communication of CAN (TTCAN), bajo el estndar ISO 11898-4.

Principios bsicos de CANCAN es un protocolo de mltiple acceso con deteccin de colisin no destructiva, resuelta por prioridades. La especificacin define dos valores posibles para el estado del bus: recesivo y dominante. Si el bus es manejado simultneamente por ms de un nodo el valor dominante prevalece sobre el valor recesivo. Usualmente el valor recesivo est asociado al valor lgico 1 y el valor dominante al valor lgico 0.Los datos se intercambian en tramas que contienen un identificador (ID) y entre 0 y 8 bytes de datos. El campo ID de cada trama no identifica al nodo que enva el mensaje sino al tipo de mensaje. Es responsabilidad del diseador de cada aplicacin definir como se asignan los ID a las tramas generadas por los diferentes nodos del sistema.Existen dos posibles formatos para el encabezado de las tramas las cuales difieren en el campo ID y algunos campos auxiliares. El formato de campo estndar es de 11 bits y el extendido de 29 bits.

Ejemplo de una estructura de una trama CAN

Colisin y arbitrajeSi se produce una colisin entre dos nodos que inician la transmisin de una trama al mismo tiempo, se utiliza un mecanismo de arbitraje por prioridad para resolver el conflicto. El sistema compara cada bit a medida que los contendientes escriben sobre el bus el campo ID y algunos bits adicionales del encabezado de la trama (IDE que indica el formato de ID y RTR que indica el tipo de trama), que conjuntamente se denominan campo de arbitraje. El nodo que escribi un valor recesivo lo detecta porque lee del bus un valor dominante y debe retirarse de la contienda convirtindose en receptor. El nodo que puso el valor dominante sigue adelante con la transmisin sin notar siquiera que hubo un conflicto. El nodo perdedor podr reintentar la comunicacin una vez finalizada la transmisin de la trama por el ganador. Es decir Cuando un calculador se dispone a emitir un mensaje, escucha la red para comprobar si est libre. En caso contrario espera el cdigo de fin de trama (7 bits a 1), deja 3 bits libres y comienza a emitir. Si otro calculador comienza tambin a emitir en ese instante el campo identificador servir de arbitraje siendo preferente la emisin de un 0 (dominante) sobre la de un 1 (recesivo) cuya transmisin quedar suspendida.

Propiedades de CAN Priorizacin del mensaje Garanta de los ejemplos de retardo Flexibilidad de la configuracin Recepcin mltiple con tiempos de sincronizacin Robustez en sistemas de amplios datos Multmaestro Deteccin de error y sealizacin Retransmisin automtica de mensajes corruptos tan pronto como el bus est libre de nuevo. Distincin entre errores temporales y fallos permanentes de nodos, y desconexin automtica de nodos defectuosos.Protocolo de comunicacin CANLos sistemas distribuidos que utilizan un bus CAN pueden ajustarse a un modelo simplificado de tres capas: fsica, enlace y aplicacin.La capa fsica define los aspectos del medio fsico para la transmisin de nodos de una red CAN, donde los ms importantes son: niveles de seal, representacin, sincronizacin y tiempos en los que los bits se transfieren al bus. La especificacin del protocolo CAN no define una capa fsica, sin embargo, los estndares ISO 11898 establecen las caractersticas que deben cumplir las aplicaciones para la transferencia en alta y baja velocidad.La capa fsica se subdivide en tres subcapas: Sealizacin fsica, unidad de acceso al medio y medio fsico.-Sealizacin fsica.A) Representacin del bit. Segn la estndar ISO 11898-2 se utiliza la codificacin NRZ (No Retorno a Cero)

B) temporizacin y sincronizacin del bit

C) Velocidad y Longitud del Bus CAN

Lo normal es tener buses de corta distancia, para as tener un funcionamiento ptimo. En caso de tener redes de longitudes largas, se ira mermando nuestra velocidad de transmisin debido a los retardos de la lnea, impedancias, tolerancias de los osciladores, etc.

La capa enlace define las tareas independientes del mtodo de acceso al medio as como los tipos de tramas para el envo de mensajes.

Principio de Arbitraje del Bus

En la capa de aplicacin existen diferentes estndares que la definen, algunos son muy especficos y estn relacionados con sus campos de aplicacin. Entre las capas de aplicacin ms utilizadas cabe mencionar CAL, CANopen, DeviceNet, SDS (Smart Distributed System), OSEK, CANKingdom.

Microcontrolador R8C/23 groupLa serie R8C/23 Group consiste en una extensa diversidad de microcontroladores de 8 bits con arquitectura CISC que posee una alta velocidad de procesado y un consumo de energa muy bajo. Se construye utilizando silicio de alto rendimiento mediante proceso CMOS y est envasado en un encapsulado de 48 pines Low-profile Quad Flat Package (LQFP o encapsulado cuadrado plano de perfil bajo).Tiene una frecuencia mxima de operaciones de 20 MHz y soporta voltajes de funcionamiento 2,2 a 5,5V. Entre sus principales interfaces destacan: UART, I2C, convertidor 10-bit A/D, adems de mdulo hardware LIN y CAN.

Ejemplo de comunicacin CAN en microcontrolador.En este ejemplo, un bus CAN ser configurado de manera que el primer dispositivo enve mensajes que consisten de 0x10 y 0x11, como su ID, mientras que el segundo y tercer dispositivo envan mensajes que consisten de los IDs 0x12 y 0x13, respectivamente. Tambin vamos a configurar los nodos CAN de manera que el segundo nodo corresponda a los mensajes entrantes que contengan solo el ID 0x10, mientras que el tercero solo responder a aquellos mensajes que contengan el ID 0x11. Por consiguiente, el primer dispositivo est configurado para recibir mensajes que contengan un ID 0x12 y 0x13.

El filtrado de mensajes se implementa fcilmente llamando a la rutina CANSPISetFilter, la cual tambin se encargar de manejar todas las configuraciones necesarias de los registros del microcontrolador y de la placa CAN SPI.

ProgramaCuando se enva un mensaje, el nodo Maestro deja transcurrir suficiente tiempo para que el nodo llamado responda. En el caso de que un nodo no remoto no responda dentro del tiempo requerido, el dispositivo maestro informa de un error en el mensaje actual y procede con la llamada a otros nodos. En el caso de que un nodo CAN perifrico responda al mismo tiempo que otro nodo, se producir una colisin en el bus CAN. Sin embargo, la direccin prioritaria del dispositivo y el propio bus CAN establecen que, en este caso, el nodo que transmite el mensaje con la prioridad ms alta proceda con su transmisin de manera inmediata. Como hemos mencionado utilizaremos un mdulo SPI interno del microcontrolador para transferir datos sobre el bus CAN. Algunas de las ventajas de usar mdulo SPI interno del microcontrolador son: la posibilidad de generar una interrupcin cuando se enva o recibe datos; el mdulo SPI funciona dependientemente de otros perifricos y dispone de una configuracin simple. La librera CAN SPI nos permite configurar el modo de funcionamiento bus CAN y los filtros del nodo, leer datos desde el buffer dela placa CAN SPI, etc. Este ejemplo tambin incluye diodos led en los terminales del microcontrolador que indican que la red funciona adecuadamente. Cuando el nodo 2 responde a la llamada de nodo 1, los led del PORTB se encendern. El cdigo fuente para los tres nodos de la red se proporciona con este ejemplo. Para poder crear un fichero HEX para cada uno de estos nodos, de manera individual, es necesario escribir tan solo una directiva DEFINE en la cabecera del ejemplo.En resumen, hemos escrito una manera de conectar microcontroladores al bus CAN. Tambin hemos descrito como detectar errores por medio de un protocolo de comunicacin, en el caso en que un nodo remoto no responda como se esperaba, como filtrar mensajes usando los filtros CAN, adems de cmo establecer comunicacin, de manera general, sobre el bus CAN.

Cdigo

CONCLUSIONTras esta pequea investigacin pudimos notar que el uso del bus CAN reduce mucho el cableado necesario para comunicar diferentes dispositivos, adems de que es ms robusto y menos susceptible a ruido. El hecho de que este incorpore sistemas de deteccin de errores lo hace an mejor para realizar su funcin. Adems notamos que este tipo de bus se utiliza mucho en los automviles adems de que puede ser usado tambin en domtica.

REFERENCIAS

https://drive.google.com/viewerng/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzaXN0ZW1hc2RlbXVsdGlwbGV4YWRvfGd4OjMyMWEwM2NhMzM2MzNiMTIhttps://sites.google.com/site/sistemasdemultiplexado/protocolos-de-comunicacin/4-3-protocolos-canhttp://es.wikipedia.org/wiki/Bus_CANhttp://www.mikroe.com/downloads/get/734/es_article_pascal_pic_05_09.pdf