Está en la página 1de 21

Bus CAN CAN (acrnimo del ingls Controller Area Network) es un protocolo de comunicaciones desarrollado por la firma alemana

Robert Bosch GmbH, basado en una topologa bus para la transmisin de mensajes en entornos distribuidos. Adems ofrece una solucin a la gestin de la comunicacin entre mltiples CPUs (unidades centrales de proceso). El protocolo de comunicaciones CAN proporciona los siguientes beneficios: Es 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. El procesador anfitrin (host) delega la carga de comunicaciones a un perifrico inteligente, por lo tanto el procesador anfitrin dispone de mayor tiempo para ejecutar sus propias tareas. Al ser una red multiplexada, reduce considerablemente el cableado y elimina las conexiones punto a punto, excepto en los enganches. Principales caractersticas de CAN CAN se basa en el modelo productor/consumidor, el cual es un concepto, o paradigma de comunicaciones de datos, que describe una relacin entre un productor y uno o ms consumidores. CAN es un protocolo 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. Cada mensaje tiene un identificador nico dentro de la red, con el cual los nodos deciden aceptar o no dicho mensaje. Dentro de sus principales caractersticas se encuentran: Prioridad de mensajes. Garanta de tiempos de latencia. Flexibilidad en la configuracin. Recepcin por multidifusin (multicast) con sincronizacin de tiempos. Sistema robusto en cuanto a consistencia de datos. Sistema multimaestro. Deteccin y sealizacin de errores. Retransmisin automtica de tramas errneas Distincin entre errores temporales y fallas permanentes de los nodos de la red, y desconexin autnoma de nodos defectuosos.

CAN fue desarrollado, inicialmente para aplicaciones en los automviles y por lo tanto la plataforma del protocolo es resultado de las necesidades existentes en el rea de la automocin. LaOrganizacin Internacional para la Estandarizacin (ISO, International Organization for Standarization) define dos tipos de redes CAN: una red de alta velocidad (hasta 1 Mbit/s), bajo el estndar ISO 11898-2, destinada para controlar el motor e interconectar la unidades de control electrnico (ECU); y una red de baja velocidad tolerante a fallos (menor o igual a 125 kbit/s), bajo el estndar ISO 11519-2/ISO 11898-3, dedicada a la

comunicacin de los dispositivos electrnicos internos de un automvil como son control de puertas, techo corredizo, luces y asientos. Protocolo de comunicaciones CAN CAN es un protocolo de comunicaciones serie que soporta control distribuido en tiempo real con un alto nivel de seguridad y multiplexacin. El establecimiento de una red CAN para interconectar los dispositivos electrnicos internos de un vehculo tiene la finalidad de sustituir o eliminar el cableado. Las ECU, sensores, sistemas antideslizantes, etc. se conectan mediante una red CAN a velocidades de transferencia de datos de hasta 1 Mbps. De acuerdo al modelo de referencia OSI (Open Systems Interconnection, Modelo de interconexin de sistemas abiertos), la arquitectura de protocolos CAN incluye tres capas: fsica, de enlace de datos y aplicacin, adems de una capa especial para gestin y control del nodo llamada capa de supervisor. Capa fsica: define los aspectos del medio fsico para la transmisin de datos entre nodos de una red CAN, 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. Capa de enlace de datos: define las tareas independientes del mtodo de acceso al medio, adems debido a que una red CAN brinda soporte para procesamiento en tiempo real a todos los sistemas que la integran, el intercambio de mensajes que demanda dicho procesamiento requiere de un sistema de transmisin a frecuencias altas y retrasos mnimos. En redes multimaestro, la tcnica de acceso al medio es muy importante ya que todo nodo activo tiene los derechos para controlar la red y acaparar los recursos. Por lo tanto la capa de enlace de datos define el mtodo de acceso al medio as como los tipos de tramas para el envo de mensajes Cuando un nodo necesita enviar informacin a travs de una red CAN, puede ocurrir que varios nodos intenten transmitir simultneamente. CAN resuelve lo anterior al asignar prioridadesmediante el identificador de cada mensaje, donde dicha asignacin se realiza durante el diseo del sistema en forma de nmeros binarios y no puede modificarse dinmicamente. El identificador con el menor nmero binario es el que tiene mayor prioridad. El mtodo de acceso al medio utilizado es el de Acceso Mltiple por Deteccin de Portadora, con Deteccin de Colisiones y Arbitraje por Prioridad de Mensaje (CSMA/CD+AMP, Carrier Sense Multiple Access with Collision Detection and Arbitration Message Priority). De acuerdo con este mtodo, los nodos en la red que necesitan transmitir informacin deben esperar a que el bus est libre (deteccin de portadora); cuando se cumple esta condicin, dichos nodos transmiten un bit de inicio (acceso mltiple). Cada nodo lee el bus bit a bit durante la transmisin de la trama y comparan el valor transmitido con el valor recibido; mientras los valores sean idnticos, el nodo contina con la transmisin; si se detecta una diferencia en los valores de los bits, se lleva a cabo el mecanismo de arbitraje.

CAN establece dos formatos de tramas de datos (data frame) que difieren en la longitud del campo del identificador, las tramas estndares (standard frame) con un identificador de 11 bits definidas en la especificacin CAN 2.0A, y las tramas extendidas (extended frame) con un identificador de 29 bits definidas en la especificacin CAN 2.0B. Para la transmisin y control de mensajes CAN, se definen cuatro tipos de tramas: de datos, remota (remote frame), de error (error frame) y de sobrecarga (overload frame). Las tramas remotas tambin se establecen en ambos formatos, estndar y extendido, y tanto las tramas de datos como las remotas se separan de tramas precedentes mediante espacios entre tramas (interframe space). En cuanto a la deteccin y manejo de errores, un controlador CAN cuenta con la capacidad de detectar y manejar los errores que surjan en una red. Todo error detectado por un nodo, se notifica inmediatamente al resto de los nodos. Capa de supervisor: La sustitucin del cableado convencional por un sistema de bus serie presenta el problema de que un nodo defectuoso puede bloquear el funcionamiento del sistema completo. Cada nodo activo transmite una bandera de error cuando detecta algn tipo de error y puede ocasionar que un nodo defectuoso pueda acaparar el medio fsico. Para eliminar este riesgo el protocolo CAN define un mecanismo autnomo para detectar y desconectar un nodo defectuoso del bus, dicho mecanismo se conoce como aislamiento de fallos. Capa de aplicacin: Existen diferentes estndares que definen la capa de aplicacin; 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. Introduccin

Ante el incremento del nmero de dispositivos electrnicos en los automoviles, aumentaron las necesidades de cableado y su complejidad. Pronto se vi la posibilidad de conectar todos los dispositivos a un bus que deba ser fiable, robusto, con alta inmunidad al ruido, etc... Adems, el bus deba permitir altas velocidades de transmisin en entornos difciles por la temperatura, vibraciones y otros problemas derivados del medio de uso. Este bus encuentra, aparte de en el automovil, una gran utilidad como bus de campo en diversas aplicaciones industriales.

Revisando su historia, el bus CAN, acrnimo de Controller Area Network, fu inventado por la compaia Robert Bosch en el ao 1982. Inicialmente se pens en el bus como en el bus de campo, pero donde realmente encontr utilidad fu en el sector del automovil, para interconectar el bus de confor, seguridad... El primer coche en incorporarlo fu el Mercedes Clase E en 1992, 10 aos despus de patentarse, Fu diseado para permitir la comunicacin fiable entre centralitas electrnicas basadas en microprocesador, ECUs (Electronic Control Unit) y reducir cableado. En europa se ha convertido en un estandar de facto, con carcter internacional y documentado por las normas ISO (ISO-11898). Su principal ventaja es la reduccin de costes y la mejora de flexibilidad. El bus CAN es un protocolo serie asncrono del tipo CSMA/CD (Carrier Sense Multiple Acces With Collision Detection).Al ser CSMA, cada nodo de la red debe monitorizar el bus y si detecta que no hay actividad, puede enviar un mensaje. Al ser CD, si dos nodos de la red comienzan a transmitir a la vez un mensaje, ambos detectan la colisin. Un mtodo arbitrario basado en prioridades resuelve el conflicto. Este bus en un medio compartido mediante multiplexacin. Se trata de un protocolo "Multicast", es decir, todo el mundo puede hablar (de uno en uno) y escuchar. Se utilizan un par de cables trenzados (bus diferencial) para conseguir alta inmunidad a las interferencias electromagneticas, y en algunos casos va apantallado. La impedancia caracterstica de la lnea es del orden de 120 ohmios, por lo que se emplean impedancias (resistencias) de este valor en ambos extremos del bus para evitar ondas reflejadas y que el bus se convierta en una antena. Este bus tiene una longitud mxima de 1000m a 40 Kbps, con una velocidad mxima de 1Mbps a 40 metros, utilizandose en los coches a 125 Kb/s y a 500 Kb/s. Propiedades del CAN La informacin que circula entre las unidades de mando a travs de los dos cables (bus) son paquetes de 0 y 1 (bit) con una longitud limitada y con una estructura definida en campos que conforman el mensaje. Uno de esos campos acta de identificador del tipo de dalto que se transporta , de la unidad de mando que lo transmite y la prioridad para transmitirlo respecto a otros. El mensaje no va direccionado a ninguna unidad de mando en concreto, cada una de ellas reconocer mediante este identificador si el mensaje le interesa o no. Todas las unidades de la red pueden ser transmisoras y receptoras, y el nmero de mdulos conectados a la red es variable (dentro de unos lmites). Cualquier mdulo introduce un mensaje en el bus con al condicin de que est libre, si otra lo intenta al mismo tiempo el conflicto se resuelve por la prioridad del mensaje indicado por el identificador del mismo.

El sistema est dotado de una serie de mecanismos que aseguran que el mensaje es transmitido y recibido correctamente. Cuando un mensaje presenta un error, es anulado y vuelto a transmitir de forma correcta (automticamente), de la misma forma un mdulo con problemas avisa a los dems mediante el propio mensaje, si la situacin no se soluciona, este mdulo queda fuera de servicio pero el sistema sigue funcionando. Capas del CAN Capa Fsica La capa fsica es responsable de la transferencia de bits entre los distintos mdulos que componen la red. Define aspectos como niveles de seal, codificacin, sincronizacin y tiempos en que los bits se transfieresn al bus. En la especificacin original del CAN, la capa fsica no fu definida, permitiendo diferentes opciones para la eleccin del tipo de unidad y niveles elctricos de transmision. Las caractersticas de las seales elctricas en el bus fueron estalecidas mas tarde por el estandar ISO 11898. La especificacin CiA (CAN in Automotion), complement las definiciones respecto al medio fsico y conectores. Los mdulos conectados al bus interpretan dos niveles lgicos denominados: - Dominante: la tensin diferencial (CAN_H - CAN_L) es del orden de 2'0 V con CAN_H = 3'5 V y CAN_L = 1'5V(nominales). - Recesivo: la tensin diferencial (CAN_H - CAN_L) es del orden de 0V con CAN_H = CAN_L = 2'5V (nominales). Otra de las partes a destacar de esta comunicacin, es la velocidad con la que se transmiten los mensajes a travs de la red. Lo normal es tener buses de corta longitud, para as obtener un funcionamiento ptimo. Pero si por el contrario tenemos redes de largas longitudes eso ir mermando nuestra velocidad de transmisin, debido a los retardos en la lnea, impedancias, tolerancias de los osciladores, etc. Para atenuar estas carencias se colocan en los extremos del bus impedancias de carga para una mayor estabilidad. A continuacin, se muestran los valores tpicos (son orientativos) de transmisin segun la longitud de los buses: Velocidad (Bit/seg) 1 Mbps Tiempo de bit (microseg) 1 microseg Longitud mxima (metros) 30 m

800 Kbps 500 Kbps 250 Kbps 125 Kbps 50 Kbps 20 Kbps 10 Kbps

1,25 microseg 2 microseg 4 microseg 8 microseg 20 microseg 50 microseg 100 microseg

50 m 100 m 250 m 500 m 1000 m 2500 m 5000 m

Tabla Velocidad-Distancia en CAN El nmero mximo de mdulos no est limitado por la especificacin bsica y depende de las caractersticas de los controladores CAN (SJA 1000). Las especificaciones de buses de campo lo limitan a 32 o 64. El bus CAN utiliza transmisin srie asncrona, y codificacin NRZ, utilizando para evitar problemas el bit stuffing, insercin de un bit complementario tras 5 bits con el mismo valor, y una cuidadosa temporizacin de bit. Todos los dispositivos en una red CAN tienen su propio reloj, generalmente un oscilador de cuarzo, que pueden tener periodos ligeramente diferentes. Pese a ello, la velocidad de transmisin se ajusta para que sea la misma en todos los dispositivos aunque tengan frecuencias de oscilador diferentes. Al no ser estas frecuencias totalmente estables, los dispositivos se resincronizan con la corriente de bits. El tiempo nominal de bit (Bit timing) se divide en cuatro fases: - Sincornizacin, donde se espera el flanco. - Retardo de propagacin, compensando el desfase debido a los retardos de propagacin. - Buffer 1 y 2, que son los tiempos antes y despus del punto de muestreo nominal, variables para realizar la resincronizacin. Se utilizan medios de transmisin elctricos y pticos, aunque sera posible utilizar transmisin por red elctrica y sin cables. Se suelen utilizar cables de par trenzado UTP o STP, con transmisin diferencial, y hay que tener en cuenta los parmetros del cable cuando las distancias son largasya que afectan a la tasa de transferencia. La topologa bsica es en bus, incluyendo dos terminadores a los extremos, para evitar reflexiones en la seal. Otras topologas mas complejas se pueden usar gracias al uso de

repetidores, que aaden retardo a la propagacin de la seal. De puentes, que conectan dos redes lgicas separadas a nivel de enlace. Solo retransmiten aquellos mensajes que no son locales, y de pasarelas, que conectan redes con diferentes protocolos de alto nivel, cuando estos estn presentes. Capa de enlace Una de las caractersticas que distinguen a CAN con respecto a otras normas es su tcnica de acceso al medio denominda como CSMA/CD+CR o "Carrier Sense, Mltiple Acces/Collision Detection + Collision Resolution" (Acceso mltiple con deteccin de portadora, deteccin de colisin mas resolucin de colisin). El acceso al medio por mdio de tcnicas de acceso mltiple y deteccin de conflictos evolucionaron desde el mtodo ALOHA inicial hasta su consolidacin como mtodo de acceso al medio de las redes ethernet , con tcnica CSMA/CD. El mtodo de acceso al medio utilizado en bus CAN aade una caracterstica adicional: la resolucin de colisin. En la tcnica CSMA/CD utilizada en redes Ethernet ante colisin de varias tramas, todas se pierden. CAN resuelve la colisin con la supervivencia de una de las tramas que chocan en el bus. Adems la trama superviviente es aquella a la que se ha identificado como de mayor prioridad. La resolucin de esta colisin se basa en aplicar una funcin lgica a cada bit, que se resuelve con la prioridad del nivel defendiendo como bit dominante el elquivalente al valor lgico '0' y bit recesivo al nivel analgico '1' se trata de una funcin AND de todos los bits transmitidos simultaneamente. Cada transmisor escucha continuamente el valor presente en el bus y se retira cuando ese valor no coincide con el que dicho transmisor ha forzado.Mientras hay coincidencia la transmisin continua, finalmente el mensaje con identificador de mxima prioridad sobrevive. Los dems mdulos reintentarn la transwmisin lo antes posible. Por lo tanto, la prioridad queda as determinada por el campo Identificador (forma parte del mensaje). Hemos de tener en cuenta que la especificacin CAN de Bosch no especifica cmo se ha de traducir cada nivel de bit (dominante o recesivo) a variable fsica. Cuando se utilizan dos cables trenzados (es lo que se especifica) segn ISO 11898 el nivel dominante es una tensin diferencial positiva en el bus, el nivel recesivo es ausencia de tensin, o cierto valor negativo. Tipos de comunicacin CAN Existen dos tipos de hardware bsicos, aunque la comunicacin en los dos es idntica y son compatibles entre s. Esto nos permite hacer mas utilidades y de una mayor complejidad.

Basic CAN

Hay una relacin muy estrecha entre el controlador CAN y el microcontrolador. Interrumpimos el microcontrolador para tratar con cada uno de los mensajes del CAN. Cada mdulo transmitir tan slo cuando se produzca alguna situacin reseable (por ejemplo, pulsar un accionador) de las seales que nos interesan. Este funcionamiento es adecuado para aquellos mdulos encargados de utilizar informaciones breves y rpidas disminuyendo la ocupacin del bus. Full CAN

Contiene dispositivos hardware extras que proporcionan un servidor que automticamente recibe y transmite los mensajes CAN, sin necesidad de interrumpir el microcontrolador asociado, reduciendose la carga del mismo. Est orientado a modulos encargados del manejo de seales con un alto nivel de exigencia en cuanto a frecuencia de actualizacin y seguridad. Especificacin CAN 2.0A y CAN 2.0B

Las aplicaciones de protocolo de comunicaciones Bus CAN siguen la estndar normal internacional ISO 11519-2 para las aplicaciones de velocidad bajas e ISO 11898 para las aplicaciones de velocidad altas. La descripcin de la ISO sobre la especificacin de CAN 2.0A y CAN2.0B estn mas enfocadas a los requisitos de fabriciacin de controladores CAN. La diferencia entre CAN 2.0A y 2.0B est principalmente y sobre todo en la forma del identificador. La especificacin 2.0A define sistemas CAN con un estandar de 11 bit de identificador (CAN estndar). 2.0B especifica la trama extendida con 29 bit en el identificador (CAN Extendido). Los mensajes transmitidos desde cualquier mdulo en una red CAN no contienen la direccin del mdulo emisor ni del mdulo receptor. En vez de esto, los mensajes contienen un campo identificativo, nico en toda la red, que realiza esta funcin, adems de indicarnos la prioridad del mensaje. El mensaje de mayor prioridad accede al bus, mientras que los mensajes de menor prioridad se retransmitirn automaticamente en los siguientes ciclos de bus. Como consecuencia de eso, varios mdulos pueden recibir y actuar simultneamente sobre el mismo mensaje. Este formato de los mensajes ofrece a la red una gran flexibilidad y posibilidad de expansin, ya que podremos aadir nuevos mdulos a la red sin tener que hacer ningn

cambio en el hardware ni en el software existente. Las tramas de los mensajes son los elementos bsicos de transmisin y van de un mdulo emisor a uno o mas mdulos receptores. El mensaje est dividido en siete campos diferentes, cada uno de ellos con una funcin especfica. Elementos que componen el sistema CAN Bus Cables

La informacin circula por dos cables trenzados que unen todos los mdulos que forman el sistema. Esta informacin se transmite por diferencia de tensin entre los dos cables, de forma que un valor alto de tensin representa un '1' y un valor bajo de tensin representa un '0'. La combinacin adecuada de unos y ceros forman el mensaje a transmitir. En un cable los valores de tensin oscilan entre 0V y 2'25V, por lo que se denomina cable L (Low) y en el otro, el cable H (High) lo hacen entre 2'75V y 5V. En caso de que se imterrumpa la linea H o que se derive a masa, el sistema trabajar con la seal de Low con respecto a masa, en el caso de que se interrumpa la lnea L, ocurrira lo contrario. Esta situacin permite que el sistema siga trabajando con uno de los cables cortados o comunicados a masa, incluso con ambos comunicados tambin sera posible el funcionamiento, quedando fuera de servicio solamente cuando los dos cables se cortan. Es importante tener en cuenta que el trenzado entre ambas lneas sirve para anular los campos magnticos, por lo que no se debe modificar en ningn caso ni el paso ni la longitud de dichos cables.

Elementos de cierre o terminador

Son resistencias en los extremos de los cables H y L. Sus valores son habitualmente 120 Ohmios (aunque pueden variar) y se colocan para adecuar el funcionamiento del sistema a diferentes longitudes de cables y nmero de mdulos conectados, ya que impiden posibles efectos parsitos que nos pueden trastocar el mensaje. Estas resistencias las colocamos en

placa del mdulo, para as ahorrar en soluciones externas y para mayor seguridad de funcionamiento.

Controlador

Es el elemento encargado de la transmisin entre el microprocesador del mdulo y el transmisor-receptor. Trabaja acondicionando la informacin que entre y sale entre ambos componentes. Habr un controlador por cada mdulo de la red. Este elemento trabaja con niveles de tensin muy bajos y es el que determina la velocidad de transmisin de los mensajes, que ser mas o menos elevada dependiendo de nuestra aplicacin y lo que esperemos de ella. El controlador tambin interviene en la sincronizacin entre los diferentes mdulos para la correcta emisin y recepcin de los mensajes .

Posicin del controlador Transmisor/Receptor

El transmisor-receptor es el elemento que tiene la misin de recibir y transmitr los datos, adems de acondicionar y preparar la informacin para que pueda ser utilizada por los controladores. Esta preparacin consiste en situar los niveles de tensin de forma adecuada, amplificando la seal cuando la informacin se vuelca en la lnea y reducindola cuando es recogida de la misma y suministrada al controlador. El transmisor-receptor es bsicamente un circuito integrado que est situado en cada una de los mdulos, trabaja con intensidades prximas a 0,5 A y en ningn caso interviene modificando el contenido del mensaje. Para su buen funcionamiento se sita entre los cables que forman la linea bus CAN y el controlador.

Explicacin funcional del bus CAN

Los mdulos que se conectan al sistema CAN son los que necesitan compartir informacin, pertenezcan o no al mismo sistema. Por ejemplo, si hablamos de coches cabra decir que la velocidad de transmisin de los datos del ABS deberan ser muy rpidos por importante que supone la informacin utilizada y sin embargo la del climatizador pues no hara falta tener una lnea sper rpida ya que el muestreo se puede hacer mas pausadamente. El sistema CAN est orientado hacia el mensaje y no al destinatario. La informacin en la lnea es transmitida en forma de mensajes estructurados en la que una parte del mismo es un identificador que indica la clase de dato que contiene. Todos los mdulos reciben el mensaje, lo filtran y solo lo emplean las que necesitan dicho dato. Como se supone, todos los mdulos conectados al sistema son capaces tanto de introducir como de recoger mensajes de la lnea. Cuando el bus est libre cualquier mdulo conectado puede empezar a transmitir de nuevo.

Ejemplo prctico de CAN En el caso de que uno o varios mdulos quieran introducir un mensaje al mismo tiempo, lo har la que tenga una mayor prioridad. Esta prioridad nos la indica el identificador. El proceso de transmisin de datos se desarrolla siguiendo varios pasos:

Suministro de datos

Un mdulo recibe informacin de los sensores que tiene asociados (r.p.m. de un motor, velocidad, temperatura del motor, puerta abierta, botones, etc.) Su microprocesador pasa la informacin al controlador donde es gestionada y preparada para ser pasada al transmisor-receptor donde se traducir en seales elctricas. Transmisin de datos

El controlador de dicho mdulo transfiere los datos y el identificador junto con la peticin de inicio de transmisin, asumiendo la responsabilidad de que el mensaje sea correctamente transmitido a todos los mdulos de la red. Para transmitir el mensaje ha tenido que encontrar el bus libre, y en caso de conflicto con otro mdulo intentando transmitit al mismo tiempo, ha de tener una prioridad mayor. A partir del momento en que esto ocurre, el resto de mdulos se convierten en receptores. Recepcin del mensaje Cuando todos los mdulos reciben el mensaje, verifican el identificador para determinar si el mensaje va a ser utilizado por ellos. Los mdulos que necesiten los datos del mensaje lo procesan, si no lo necesitan, el mensaje se ignora. El sistema CAN dispone de mecanismos para detectar errores en la transmisin de mensajes, de forma que todos los receptores realizan un chequeo del mensaje analizando una parte del mismo, llamado campo CRC. Otros mecanismos de control se aplican en los emisores que mirarn el nivel del bus, la presencia de campos de formato fijo en el mensaje (verificando la trama), anlisis estadsticos por parte de los mdulos de sus propios fallos, etc. Estas medidas hacen que las probabilidades de error en la emisin y recepcin de mensajes sean muy bajas, por lo que es un sistema extraordinariamente seguro. El planteamiento del CAN, como puede observarse, permite disminuir notablemente el cableado de nuestra utilidad, puesto que si un mdulo dispone de una informacin, como por ejemplo, la temperatura ambiente, esta puede ser utilizada por el resto de los mdulos sin que sea necesario que cada uno de ellos reciba la informacin de ese sensor de temperatura. Otra ventaja palpable es que las funciones pueden ser repartidas entre los distintos mdulos para que as si necesitamos mas funciones no suponga un problema.

Mensajes y tipos de tramas

El mensaje es una sucesin de '0' y '1', que estn representados por distintos niveles de tensin en los cables del CAN. CAN utiliza mensajes de estructura predefinida para la gestin de la comunicacin, llamados "tramas". Se distinguen entre dos variantes de CAN, el definido en CAN2.A o "CAN Standard (Basic CAN)" y el definido en CAN2.B o "CAN extendido (PeliCAN)", los formatos de tramas son idnticos con la diferencia mas sustancial que es el nmero de bits que se utilizan para el identificador de mensaje: 11 bits (2032 identificadores) diferentes en CAN Standard y 29 bits (536.870.912 identificadores) en CAN Extendido. Las tramas CAN son de longitud reducida, la trama ms larga es de 130 bits en CAN Estndar y 154 bits en CAN Extendido. En un bus CAN los mdulos transmiten la informacin sin necesidad de una orden, con tramas de datos, bien sea por un proceso realizado con una frecuencia o bien activado ante algn suceso en el mdulo. La trama de interrogacin remota slo se suele utilizar para detectar la presencia de mdulos o para puesta al da de informacin en un mdulo recin incorporado a la red. Los mensajes pueden entrar en colisin en el bus, pero como ya sabemos, el de identificador de mayor prioridad sobrevivir y los dems sern posteriormente retransmitidos lo antes posible. Los tipos de trama, y estados de bus utilizados son: Trama de datos

La que un mdulo utiliza normalmente para poner informacin en el bus. Puede incluir entre 0 y 8 bytes de informacin til. Trama de interrogacin remota (remote frame)

Puede ser utilizada por un mdulo para solicitar la transmisin de una trama de datos con la informacin implicada a un identificador dado. El mdulo que disponga de la informacin definida por el identificador la trasmitir en una trama de datos. Trama de error

Se usan para sealarle al resto de mdulos la deteccin de cualquier error, impidiendo normalmente el mensaje errneo.

Trama de sobrecarga

Permite que un mdulo fuerce a los dems a alargar el tiempo entre transmisin de tramas sucesivas. Lo hace el dispositivo con independencia del software. Espacio inter-tramas (IFS)

Las tramas de datos (y de interrogacin remota) se separan entre s por una secuencia predefinida que se denomina espacio inter-trama. Bus en reposo

En los intervalos de inactividad se mantiene constantemente el nivel recesivo del bus.

Ejemplo de como se escribe un mensaje Formatos de tramas

El mensaje se descompone en campos de diferente tamao (nmero de bits) que nos permitirn llevar a cabo el proceso de comunicacin entre los mdulos segn el protocolo definido por Bosch para el CAN, que facilitan desde identificar el mdulo, como indicar el principio y el final del mensaje, mostrar los datos, permitir distintos controles, etc.

Trama de bus CAN Los mensajes son introducidos en la lnea con una cadencia que oscila entre los 7 y los 20 milisegundos dependiendo de la velocidad del rea y del mdulo que los introduce. Trama de datos Estructura del mensaje estandar:

Campo de inicio del mensaje

El mensaje se inicia con bit dominante, cuyo flanco descendente es utilizado por los mdulos para sincronizarse entre si. Campo de arbitrio Los 11 bits de este campo se usan como identificador que permite reconocer a los mdulos de prioridad del mensaje. Cuanto mas bajo sea el valor del identificador ms alta es la prioridad, y por lo tanto, determina el orden en que van a ser introducidos los mensajes en la linea. El bit RTR indica si el mensaje contiene datos (RTR=0) o si se trata de una trama remota sin datos (RTR=1). Una trama de datos siempre tiene una prioridad ms alta que una trama remota. La trama remota la usamos para pedir datos a otros mdulos o bin porque se necesitan o para realizar un chequeo. Extendido Campo de control Este campo informa sobre las caractersticas del campo de datos. El bit IDE indica cuando es un "0" que se trata de una trama estandar (BasicCAN, 11 bits) y cuando es un "1" que es una trama extendida (PeliCAN, 29 bits). El segundo bit (RB0) es siempre recesivo. Los cuatro bits que componen el campo DLC indican el nmero de bytes contenido en el campo de datos (0 a 8). Campo de datos En este campo aparece la informacin del mensaje con los datos que el mdulo correspondiente introduce en la lnea CAN. Puede contener entre 0 y 8 bytes (de 0 a 64 bit). Campo de aseguramiento (CRC) Cdigo de redundancia cclica que genera el tranmisor por la divisin mdulo 2 de todos los bits precendentes del mensaje, incluyendo lo de relleno si existen, por el polinoimio generador: X15 + X14 + X8 + X7 + X4 + X3 + X1 + 1, el resto de esta divisin es el cdigo CRC transmitido. Los receptores comprueban este cdigo. Esta campo tiene una longitud de 16 bits y se utiliza para detectar errores por los 15 primeros, mientras que el ltimo siempre ser un bit recesivo (1) para delimitar el campo CRC.

Campo de confirmacin (ACK) El campo ACK se compone de dos bits que son siempre transmitidos como recesivos (1). Todos los mdulos que reciben el mismo CRC modifican el primer bit de del campo ACK por uno dominante (0), de forma que el mdulo que est todava transmitiendo reconoce que al menos un mdulo ha recibido un mensaje que se ha escrito correctamente. De no ser as, el mdulo transmisor interpreta que su mensaje tiene un error. Campo de final del mensaje (EOF) Este campo indica el final del mensaje con una cadena de 7 bits recesivos. Nos puede suceder que en determinados mensajes se produzcan largas cadenas de ceros y unos, y que esto nos provoque una prdida de sincronizacin entre los mdulos. El protocolo CAN resuelve esta situacin manteniendo un bit de diferente valor cada cinco bits iguales: cada cinco "0" se inserta un "1" o al revs. El mdulo que utilice este mensaje, descarta un bit posterior a cinco bits iguales. Estos bits reciben el nombre de bit stuffing. Espaciado entre tramas (IFS) Consta de un mnimo de 3 bits recesivos. Trama remota El formato es anlogo a la trama de datos pero con el bit RTR recesivo. Por otra parte una trama remota no incluye nunca datos. El identificador es el del mensaje que se solicita, el campo longitud corresponde a la longitud de ese mensaje. Trama de error Las tramas de error son generadas por cualquier mdulo que detecta un error. Consiste en dos campos: Indicador de error ("Error Flag") y Delimitador de error. El delimitador de error consta de 8 bits recesivos consecutivos y permite a los mdulos reiniciar la comunicacin de nuevo tras el error. El indicador de error varia segn el estado de error: - Si un mdulo en estado de error "Activo" detecta un error en el bus interrumpe la comunicacin del mensaje en proceso generando un "Indicador de error activo" que consiste en una secuencia de 6 bits dominantes sucesivos. Esta secuencia rompe la regla de relleno de bits y provocar la generacin de tramas de error en otros mdulos. Por tanto el Indicador de error puede extenderse entre 6 y 12 bits dominantes sucesivos. Finalmente se espera el campo que delimita el error formado por los 8 bits recesivos. Entonces la comunicacin se reinicia y el mdulo que haba sido interrumpido reintenta la transmisin del mensaje.

- Si un mdulo en estado de error "Pasivo" detecta un error, el mdulo transmite un "Indicador de error pasivo" seguido, de nuevo, por el campo delimitador de error. El indicador de error de tipo pasivo consiste en 6 bits recesivos seguidos y, por lo tanto, la trama de error para un mdulo pasivo es una secuencia de 14 bits recesivos. De aqu se deduce que la transmisin de la trama de error de tipo pasivo no afectar a ningn mdulo en la red, excepto cuando el error es detectado por el propio mdulo que est transmitiendo. En ese caso los dems mdulos detectaran una violacin de las reglas de relleno y transmitirn a su vez tramas de error. Tras sealar un error por medio de la trama de error apropiada cada mdulo transmite bits recesivos hasta que recibe un bit tambin recesivo, luego transmite 7 bits recesivos antes de finalizar el tratamiento de error. Espacio entre tramas El espacio entre tramas separa una trama (de cualquier tipo) de la siguiente trama de datos o trama remota. El espacio entre tramas ha de constar de, al menos, 3 bits recesivos. Esta secuencia de bits se denomina "inter-trama" (IFS). Una vez transcurrida esta secuencia, un mdulo en estado de error activo puede iniciar una nueva transmisin. De esta forma se asegura una ventaja en inicio de transmisin a los mdulos en estado activo frente a los mdulos en estado pasivo. Trama de sobrecarga Una trama de sobrecarga tiene el mismo formato que una trama de error activo. Sin embargo, la trama de sobrecarga slo puede generarse durante el espacio entre tramas. De esta forma se diferencia de una trama de error, qu solo puede ser transmitida durante la transmisin del mensaje. La trama de sobrecarga consta de dos campos, el Indicador de Sobrecarga, y el delimitador. El indicador de sobrecarga consta de 6 bits dominantes que pueden ser seguidos por los generados por otros mdulos, dando lugar a un mximo de 12 bits dominantes. el delimitador es de de 8 bits recesivos. Una trama de sobrecarga puede ser generada por cualquier mdulo que debido a sus condiciones internas no est en condiciones de iniciar la recepcin de un nuevo mensaje. De esta forma retrasa el inicio de transmisin de un nuevo mensaje. Un mdulo puede generar como mximo 2 tramas de sobrecarga consecutivas para retrasar el mensaje. Otra razn para iniciar la transmisin de una trama de sobrecarga, es la deteccinpor cualquier mdulo de un bit dominante en los 3 bits de "inter-trama". Por todo ello una trama de sobrecarga generada por un mdulo dar normalmente lugar a la generacin de tramas de sobrecarga por los dems mdulos dando lugar, como se ha indicado, a un mximo de 12 bits dominantes de indicador de sobrecarga.

Arbitraje

Un mdulo transmisor monitoriza constantemente el estado del bus. Durante la transmisin del campo Arbitraje la deteccin de un bit dominante, cuando el bit transmitido ha sido recesivo, hace que el mdulo detenga la transmisin y pase a recepcin de trama. As, no se pierde informacin y no se destruye por colisin ninguna trama de datos o remota. En un bus nico un identificador de mensaje ha de ser asignado a un solo mdulo concreto, es decir, se ha de evitar que dos mdulos puedan iniciar la transmisin simultnea de mensajes con el mismo identificador y datos diferentes. La filosofa CAN es de que un mensaje es nico en el sistema. Las tramas remotas con identificador concreto que puedan ser generadas por cualquier mdulo han de coincidir en cuanto al campo longitud + longitud del campo de datos + contenido de estos datos, el mensaje ha de ser nico en el sistema y estar asignado a un mdulo concreto. Cmo actua CAN tras un fallo en la comunicacin?

Los sistemas de seguridad que incorpora el CAN Bus permiten que las probabilidades de falo en el proceso de comunicacin sean muy bajas, pero sigue siendo posible que cables, contactos y los propios mdulos tengan algn mal funcionamiento. No se utilizan mensajes de ACK, los errores se sealizan cuando ocurren. A nivel de trama hay tres mecanismos posibles: usar CRC, chequeo de formato de trama, y los receptores sealizando las tramas recibidas forzando el bit ACK a dominante, y en caso de que esto no ocurriese, significara un error en en ACK.

A nivel de bit se implementan dos mecanismos, la monitorizacin, donde el transmisor puede monitorizar el bus para observar si lo que enva es lo que aparece en el bus. Esto detecta errores globales y locales al transmisor, y el bit stuffing. Si se detecta algn error, al menos la estacin aborta la transmisin mediante el envo de una trama de error. Tras esta trama, el transmisor reintenta el envo. Una estacin defectuosa podra abortar mensajes correctos, lo que podra bloquear el bus. El protocolo CAN aporta un mecanosmo para diferenciar errores espordicos y permanentes: un anlisis estadsticos de las situaciones de error. Si una estacin detecta un estado permanente de error, entra en un estado de operacin que el resto de la red CAN

puede seguir funcionando, debiendo poder autodesconectarse para que este mecanismo funcione. Para analizar una avera, debemos tener en cuenta que un mdulo defectuoso conectado a la red CAN no nos impedir que el sistema trabaje con normalidad. Por supuesto que no podremos llevar a cabo las funciones relacionadas con el mdulo averiado, pero s del resto. Para localizar posibles fallos la herramienta mas adecuada puede ser un osciloscopio digital con dos canales y memoria, con el que podremos ver perfectamente los mensajes usados. En este caso, se debe tener en cuenta que los bits stuff (el que se aade despus de cinco bits iguales) deben ser eliminados. Ejemplo de programacin con controladora CAN

Para mostrar un ejemplo de uso de CAN, vamos a hablar del Sistema de desarrollo C8051F500DK, compuesto de el microcontrolador C8051F50x, y sus herramientas de desarrollo, compuesto del SILABS IDE, Configuration Wizard y Keil uVision 3. Veremos las caractersticas de esta tarjeta y como instalar todo el sistema de desarrollo. Explicacin del microcontrolador C8051F5x

Es un microcontrolador diseado para la aplicacin en automviles. Esta targeta soporta 3 opciones de voltaje: - 12 V con adaptador AC/DC. - 5 V desde el PC va el adaptador de USB (DEBUG_A): NO es suficiente para el funcionamiento de los drivers de CAN. - 12 V externos desde LIN (TB1).

Tiene dos opciones de reloj de sistema: - Osciladores internos: Los micros incluyen un oscilador interno calibrado de alta frecuencia programable (24MHz base frequency, con error de 0,5%), habilitado como reloj del sistema por defecto. Tras un reset, el oscilador interno opera a 187,5 KHz por defecto pero puede configurarse via software. Es adecuado para comunicaciones CAN y LIN y para muchas aplicaciones es suficiente. Si la frecuencia deseada no est disponible, puede usarse un cristal externo.

- Osciladores externos: Para instalar un cristal externo, se eliminan los "shorting blocks" de J9 y J10 y se instala el cristal en Y1. Se instala una resistencia de 10 MOhmios en R9 capacitadores en C6 y C7 con valores adecuados al cristal seleccionado. La tarjeta dispone de dos pulsadores por cada micro: RESET_A est conectado al pin /RST de C8051F500 y RESET_B al de C8051F502. Pulsando RESET_A se pone C8051F500 a estado hardware-reset, e igual con RESET_B para C8051F502. Los pulsadores P1.4_A y P1.4_B estn conectados a los pines de entrada/salida de propsito general de los micros. Pasar alguno de estos, genera una seal lgica. Para desconectarlos, eliminar el "shorting block". Hay cuatro LEDs indicadores en la tarjeta. El LED rojo PWR inica que la tarjeta recibe voltaje. El otro LED rojo, COMM, indica si el PC reconoce el bridge CP2102 USB-to-UART (P5). El LED verde con el puerto P1.3_A est conectado a C8051F500 por el pin P1.3 a travs de J19. Elimina el shorting block de J19 para desconectar el LED. Lo mismo sucede para el LED P1.3_B, C8051F502 y J11. La tarjeta incluye un bridge USB-to-UART (U5) y un conector USB (P5) para permitir la conexin serie al UART0 del C8051F500. El bridge permite la conectividad entre el C8051F500 y el PC va puerto USB. Las seales TX y RX de UART0 pueden conectarse a CP2102 instalando shorting blocks en J17. Para usar esta interfaz hemos instalado un driver manualmente que genera un puerto COMx en el ordenador personal. Ambos micros tienen controladores de CAN internos y los drivers externos oportunos. Los pines asignados a CAN en cada micro son P0.6 (CAN_TX) y P0.7 (CAN_RX). El micro C8051F500 est conectado a U3 mediante J17 y el micro C8051F502 lo est a U4a travs de J26. Ambos drivers de CAN estn conectados entre s formando una red CAN. Otros elementos externos pueden conectarse a la red a travs de la interfaz TB2. Los drivers de CAN se alimentan mediante el nodo +5VREG y se conectan por J8 y J14. Ambos micros tambin disponen de controladores LIN internos y los drivers externos oportunos. Se supone que las crossbars de los micros estn configuradas para poner los pines LIN TX y RX en los puertos P1.0 y P1.1 respectivamente. El C8051F500 se conecta al driver T1 a travs de J17 y C8051F502 se conecta a T2 mediante J26. Al igual que pasa con CAN, ambos drivers LIN estn conectados entre s y forman una red LIN. Otros elementos externos pueden conectarse a la red LIN a travs de la interfaz TB1. TB1 tambin permite conectar una fuente externa para que todos los transceptores LIN tengan la misma fuente de voltaje. Esta fuente puede usarse para alimentar la tarjeta. Conectores de puertos de entrada/salida(J1-J5 y J27-J29):

Cada uno de los puertos paralelos de C8051F500 y C8051F502 tiene su propio conectorde 10 pines. Cada conector provee un pin para los puertos correspondientes 0-7, +5VVIO, y masa. Conector de Expansin (P1) l conector de expansin de entrada/salida de 96 P1 se usa para conectar tarjetas hijas a la tarjeta principal. P1 da acceso a muchos pines de seal de C8051F500. Tambin estn los pines de VREGIN, VDD, VIO y 3.3V. Potencimetro (J20): El micro C8051F500 tiene la opcin de conectar el puerto P1.2 a un potencimetro lineal de 10K. El potencimetro se conecta mediante J20. Se puede usar para probar el convertidor A/D del microcontrolador. Configuration Wizard

Para la configuracin se utiliza el Config-Wizard. Se encuentra en el mismo menu que el IDE. Seleccionamos C8051-F5X en el panel izquierdo y C8051-F500 en el derecho. Esto nos crear un proyecto vaco. Con el men Peripherals podremos configurar los perifricos de la targeta. Instalacin de las herramientas

Introduce el Cd y selecciona "Install deployment tools" Acepta las condiciones de uso

También podría gustarte