0% encontró este documento útil (0 votos)
103 vistas15 páginas

Instituto Tecnologico de Los Mochis: Profesor. Fonseca Beltrán Jaime

Este documento describe el protocolo de comunicaciones Controller Area Network (CAN). Explica que CAN fue desarrollado por Bosch en 1986 y comenzó a usarse en la industria automotriz en 1991. Detalla los principios básicos de CAN como el uso de prioridades para resolver colisiones y la estructura de las tramas de datos. También presenta ejemplos de código para implementar comunicaciones CAN usando microcontroladores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
103 vistas15 páginas

Instituto Tecnologico de Los Mochis: Profesor. Fonseca Beltrán Jaime

Este documento describe el protocolo de comunicaciones Controller Area Network (CAN). Explica que CAN fue desarrollado por Bosch en 1986 y comenzó a usarse en la industria automotriz en 1991. Detalla los principios básicos de CAN como el uso de prioridades para resolver colisiones y la estructura de las tramas de datos. También presenta ejemplos de código para implementar comunicaciones CAN usando microcontroladores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

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

CAN
Historia.
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 CAN


CAN 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 arbitraje
Si 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 CAN


Los 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 group
La 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 Lowprofile 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.

Programa
Cuando 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

CONCLUSION
Tras 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=ZGVmYXVsdGRvbWFpbnxzaXN0ZW1hc2RlbXVsdGlwbGV4
YWRvfGd4OjMyMWEwM2NhMzM2MzNiMTI
https://sites.google.com/site/sistemasdemultiplexado/protocolos-de-comunicacin/43-protocolos-can
http://es.wikipedia.org/wiki/Bus_CAN
http://www.mikroe.com/downloads/get/734/es_article_pascal_pic_05_09.pdf

También podría gustarte