Controller+Area+Network

¿Que es? ¿Como surge? ¿Tiene diferentes versiones o perfiles ? ¿está normalizada? CAN (//Controller Area Network//) es un protocolo de comunicaciones desarrollado por la firma alemana Robert[| Bosh GmbH], basado en una topología bus para la transmisión de mensajes en ambientes distribuidos, además ofrece una solución a la gestión de la comunicación entre múltiples CPUs (unidades centrales de proceso). El protocolo de comunicaciones CAN proporciona los siguientes beneficios:
 * Introduccion (Martin Altamura)**
 * Es un protocolo de comunicaciones normalizado, con lo que se simplifica y economiza la tarea de comunicar subsistemas de diferentes fabricantes sobre una red común o bus.
 * El procesador anfitrión (//host//) delega la carga de comunicaciones a un periférico inteligente, por lo tanto el procesador anfitrión 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.

CAN se basa en el modelo productor/consumidor, el cual es un concepto, o paradigma de comunicaciones de datos, que describe una relación entre un productor y uno o más consumidores. CAN es un protocolo orientado a mensajes, es decir la información que se va a intercambiar se descompone en mensajes, a los cuales se les asigna un identificador y se encapsulan en tramas para su transmisión. 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 características se encuentran: CAN fue desarrollado, inicialmente para aplicaciones en los automóviles y por lo tanto la plataforma del protocolo es resultado de las necesidades existentes en el área de la automoción. La Organización Internacional para la Estandarización (ISO, //International Organization for Standarization//) define dos tipos de redes CAN: una red de alta velocidad (hasta 1 Mbps), bajo el estándar ISO 11898-2, destinada para controlar el motor e interconectar la unidades de control electrónico (ECU); y una red de baja velocidad tolerante a fallos (menor o igual a 125 Kbps), bajo el estándar ISO 11519-2/ISO 11898-3, dedicada a la comunicación de los dispositivos electrónicos internos de un automóvil como son control de puertas, techo corredizo, luces y asientos.
 * Prioridad de mensajes.
 * Garantía de tiempos de latencia.
 * Flexibilidad en la configuración.
 * Recepción por multidifusión (//multicast//) con sincronización de tiempos.
 * Sistema robusto en cuanto a consistencia de datos.
 * Sistema multimaestro.
 * Detección y señalización de errores.
 * Retransmisión automática de tramas erróneas
 * Distinción entre errores temporales y fallas permanentes de los nodos de la red, y desconexión autónoma de nodos defectuosos.

define los aspectos del medio físico para la transmisión de datos entre nodos de una red CAN, los más importantes son niveles de señal, representación, sincronización y tiempos en los que los bits se transfieren al bus. La especificación del protocolo CAN no define una capa física, sin embargo, los estándares ISO 11898 establecen las características que deben cumplir las aplicaciones para la transferencia en alta y baja velocidad.
 * Capa Física(Martin Altamura)**


 * Definiciòn de capa fisica del modelo OSI: (Alejandro Araque)**

La capa física de OSI proporciona los medios de transporte para los bits que conforman la trama de la capa de Enlace de datos a través de los medios de red. Esta capa acepta una trama completa desde la capa de Enlace de datos y lo codifica como una secuencia de señales que se transmiten en los medios locales. Un dispositivo final o un dispositivo intermedio recibe los bits codificados que componen una trama. El envío de tramas a través de medios de transmisión requiere los siguientes elementos de la capa física: Medios físicos y conectores asociados.Una representación de los bits en los medios.Codificación de los datos y de la información de control.Sistema de circuitos del receptor y transmisor en los dispositivos de red. En este momento del proceso de comunicación, la capa de transporte ha segmentado los datos del usuario, la capa de red los ha colocado en paquetes y luego la capa de enlace de datos los ha encapsulado como tramas. El objetivo de la capa física es crear la señal óptica, eléctrica o de microondas que representa a los bits en cada trama. Luego, estas señales se envían por los medios una a la vez. Otra función de la capa física es la de recuperar estas señales individuales desde los medios, restaurarlas para sus representaciones de bit y enviar los bits hacia la capa de Enlace de datos como una trama completa. La capa física consiste en un hardware creado por ingenieros en forma de conectores, medios y circuitos electrónicos. Por lo tanto, es necesario que las principales organizaciones especializadas en ingeniería eléctrica y en comunicaciones definan los estándares que rigen este hardware. Por el contrario, las operaciones y los protocolos de las capas superiores de OSI se llevan a cabo mediante un software y están diseñados por especialistas informáticos e ingenieros de software. Como vimos en el capítulo anterior, el grupo de trabajo de ingeniería de Internet (IETF) define los servicios y protocolos del conjunto TCP/IP en las RFC. Al igual que otras tecnologías asociadas con la capa de Enlace de datos, las tecnologías de la capa física se definen por diferentes organizaciones, tales como:La Organización Internacional para la Estandarización (ISO) El Instituto de Ingenieros Eléctricos y Electrónicos (IEEE)El Instituto Nacional Estadounidense de Estándares (ANSI) La Unión Internacional de Telecomunicaciones (ITU) La Asociación de Industrias Electrónicas/Asociación de la Industria de las Telecomunicaciones (EIA/TIA)Autoridades de las telecomunicaciones nacionales, como la Comisión Federal de Comunicaciones (FCC) en EE.UU.

define las tareas independientes del método de acceso al medio, además 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 transmisión a frecuencias altas y retrasos mínimos. En redes multimaestro, la técnica 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 método de acceso al medio así como los tipos de tramas para el envío de mensajes Cuando un nodo necesita enviar información a través de una red CAN, puede ocurrir que varios nodos intenten transmitir simultáneamente. CAN resuelve lo anterior al asignar prioridades mediante el identificador de cada mensaje, donde dicha asignación se realiza durante el diseño del sistema en forma de números binarios y no puede modificarse dinámicamente. El identificador con el menor número binario es el que tiene mayor prioridad. El método de acceso al medio utilizado es el de Acceso Múltiple por Detección de Portadora, con Detección 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 método, los nodos en la red que necesitan transmitir información deben esperar a que el bus esté libre (detección de portadora); cuando se cumple esta condición, dichos nodos transmiten un bit de inicio (acceso múltiple). Cada nodo lee el bus bit a bit durante la transmisión de la trama y comparan el valor transmitido con el valor recibido; mientras los valores sean idénticos, el nodo continúa con la transmisión; si se detecta una diferencia en los valores de los bits, se lleva a cabo el mecanismo de arbitraje.
 * Capa Enlace(Martin Altamura)**

El estándar CAN define el hardware y la comunicación sobre un nivel básico. El protocolo CAN en sí mismo apenas especifica cómo transportar los paquetes pequeños de datos del punto A al punto B usando un medio de comunicaciones compartido. No contiene nada en asuntos tales como control de flujo, transporte de los datos más grandes que puede caber en un mensaje de 8-bytes, direcciones del nodo, el establecimiento de la comunicación, etc. Para manejar la comunicación dentro de un sistema, se requiere un protocolo de capa de alto nivel (HLP). El término HLP se deriva del modelo OSI y de sus siete capas. El HLP especifica típicamente cosas como: El comportamiento de la puesta a punto. - Cómo distribuir identificadores de mensaje entre diversos nodos en un sistema. - Cómo traducir el contenido de datos del frame. - Estado que viaja dentro del sistema. Las puestas en práctica de hardware de CAN cubren las dos capas más bajas del modelo de referencia OSI mientras que diversas soluciones de software (protocolos de capa de alto nivel) cubren las capas de transporte, presentación y aplicación. Los modelos se utilizan para entender la comunicación, y para describir objetos de comunicación así como servicios en estos objetos. Los modelos acordados son comunes en tecnología de comunicación. El modelo de ISO/OSI (interconexión internacional de los sistemas de la estandarización Organización/Abierta) se utiliza extensamente para describir la funcionalidad de los sistemas de comunicación en base de un acercamiento jerárquico. La funcionalidad proporcionada por CAN es similar a las letras en la comunicación humana. Los usuarios de CAN pueden especificar su propio lenguaje basado en CAN, (CAN-based) en términos técnicos esto es un protocolo de la capa de aplicación. El usuario decide utilizar un protocolo estandarizado de la capa de aplicación de CAN-based. En el mundo de CAN hay diversos protocolos de capa estandarizados de uso. Algunos son muy específicos y relacionados. Los ejemplos de protocolos de capa de altos nivel CAN-based son CANopen, DeviceNet, CANKingdom, J1939.
 * capa aplicación /perfiles de aplicación / perfiles de dispositivos** **(Adriana Sáenz Agudelo)**


 * CAN Kingdom:**

Este protocolo libera el máximo poder de CAN en su totalidad. Le otorga al diseñador del sistema un grado de libertad considerable para que pueda crear su propio sistema. No está limitado por el protocolo multi-master CSMA/AMP de CAN pero puede crear sistemas virtuales usando cualquier tipo de manejo de bus y topología. CAN Kingdom otorga la posibilidad a los diseñadores de módulos de planificar módulos generales sin saber previamente en qué tipo de sistemas van a ser utilizados y que protocolo de capa de alto nivel tendrá. Como el diseñador del sistema puede permitir solo módulos específicos para ser usados dentro de su propio sistema, la ventaja de un sistema abierto puede ser combinada con la seguridad de un sistema con una finalidad específica. Puesto que el identificador en un mensaje de CAN identifica no sólo el mensaje sino también controla el acceso al bus, un factor dominante es la enumeración de los mensajes. Otro factor importante es considerar que la estructura de datos en la zona de informaciones es igual en los módulos que transmiten y de recepciones. Adoptando algunas reglas simples del diseño estos factores pueden ser completamente controlados y comunicación optimizados para cualquier sistema. Esto se hace durante una fase corta de la disposición en la inicialización del sistema.


 * CANOpen:**

CANopen es un protocolo de capa de alto nivel CAN-based. Fue desarrollado como red encajada estandarizada con capacidades altamente flexibles de configuración. CANopen fue diseñado para redes movimiento-orientadas de control de máquina, tales como sistemas de tramitación. CANopen fue pre-desarrollado en un proyecto del Esprit bajo presidencia de Bosch. En 1995, la especificación de CANopen fue entregada a CAN en el grupo internacional de usuarios y fabricantes de automatización (Cia). Originalmente, el perfil de la comunicación de CANopen fue basado en el protocolo de la capa de uso de la CAN (CAL). La versión 4 de CANopen (Cia DS 301) se estandariza como EN 50325-4. Las especificaciones de CANopen cubren la capa de uso y el perfil de comunicación (Cia DS 301), también como un marco para los dispositivos programables (Cia 302), las recomendaciones para los cables y los conectadores (Cia 303-1) y las unidades del SI y las representaciones del prefijo (Cia 303-2).

La capa de aplicación así como los perfiles de CAN-based se pone en ejecución por software. Los perfiles estandarizados (los perfiles del dispositivo, del interfaz y del uso) desarrollados por CiA, simplifican el trabajo del diseñador de sistema de integrar un sistema de red CANopen.

Los dispositivos, las herramientas, y los apilados disponibles del protocolo están extensamente disponibles en precios razonables. Para diseñadores de sistema, es muy importante la reutilización de software. Esto requiere no solamente compatibilidad de comunicación, sino también interoperabilidad y la capacidad de intercambio de dispositivos. En los perfiles del dispositivo y de la interfaz de CANopen, los objetos definidos del uso existen para alcanzar la capacidad de intercambio de los dispositivos de CANopen. CANopen está flexible y bastante abierto para permitir funcionalidad fabricante-especifica en los dispositivos, que se pueden agregar a la funcionalidad genérica descrita en los perfiles. Proporciona los objetos estandarizados de comunicación para datos en tiempo real (objetos de proceso de datos, PDO), los datos de la configuración (objetos de los datos de servicio, SDO), y las funciones especiales (mensaje del grupo, fecha/hora, y mensaje de emergencia) así como los datos de dirección de red (mensaje del Cargador-para arriba, mensaje de NMT, y control de error).


 * J1939**

A principios de los 90, se comenzó el desarrollo de un perfil del uso de CAN-based para la comunicación del interior del vehículo en camiones. En 1998 el SAE publico el sistema J1939 de especificaciones del SAE A, B, y C. Una red J1939 conecta las unidades de control electrónico (el ECU) dentro de un sistema acoplado del camión. La especificación J1939 se dedica a los usos del motor diesel. Otras industrias adoptaron las funciones generales de comunicación J1939, en detalle las definiciones del protocolo J1939/21 y J1939/31 - se requieren para cualquier sistema J1939-compatible. Agregaron otras capas físicas y definieron otros parámetros de uso. La ISO estandarizó la comunicación del camión y del acoplado J1939-based (ISO 11992) y la comunicación J1939-based para los vehículos de agricultura y de silvicultura (ISO 11783). El NMEA especificó la comunicación J1939-based para los sistemas de navegación en el uso de la marina (NMEA 2000). Una razón de la incorporación de las especificaciones J1939 en otras áreas es el hecho que hace sentido reinventar los servicios básicos de la comunicación. La Cia ha desarrollado varios perfiles de interfaz de CANopen para las redes de J1939-based (Cia DSP 413). Las entradas se definen según ISO 11992-2 y ISO 11992-3. Además, la familia del perfil de CANopen incluye un marco para las entradas según SAE J1939/71.


 * Integración con otras redes y arquitecturas CIM**

CAN y muchas otras redes similares se están introduciendo desde hace años en diferentes áreas de la ingeniería. Por ejemplo en vehículos todo terreno, en sistemas electrónicos multidispositivo, automatización de fábricas y otros sectores similares, de fácil implantación.
 * Ejemplos de aplicación 1 (Adriana Sáenz Agudelo)**

Es previsible que con el tiempo CAN se implemente de forma habitual en vehículos de gama media-baja, sin embargo hay que tener en cuenta un coste: Cada nodo CAN debe tener la capacidad de enviar mensajes y escuchar los mensajes de los otros nodos y esto podría disparar el coste de los vehículos de gama media o baja.

Ultimamente se está empezando a introducir en maquinas de venta directa, donde no se requiere un número elevado de nodos CAN.


 * Ejemplos de Aplicación 2 (Alejandro Araque)**

DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DE COMUNICACIONES BASADO EN CAN PARA LA AVIÓNICA EN UN VEHÍCULO AÉREO AUTÓNOMO NO TRIPULADO

Este trabajo presenta el diseño de un modelo para el sistema de comunicaciones de la aviónica para un vehículo aéreo autónomo (UAV) no tripulado denominado COLIBRÍ (Vélez, 2005). El sistema de comunicaciones está basado en una arquitectura distribuida CAN (Controller Area Network (Etschberger, 2001)), enfocada en los conceptos de integración, escalabilidad (adición simple de nuevos dispositivos) y cumplimiento de estrictos requerimientos temporales. Con el sistema de comunicaciones se busca integrar un conjunto de dispositivos en una sola red, de tal forma que pueda establecerse comunicación de los mismos con el computador de vuelo. Los componentes del sistema son en su mayoría dispositivos COTS (commercial off-the-shelf). Éstos incluyen una unidad de medición inercial (Inertial Measurement Unit o IMU), un magnetómetro, un GPS, un altímetro barométrico y un sonar. Este sistema se ensambló en una caja de aviónica hecha en aluminio de 10x30x18cm la cual se adaptó a los trenes de aterrizaje de un mini-helicóptero. Los aspectos de hardware presentados en este artículo involucran elementos como el diseño de la interfaz CAN para los nodos. Esta interfaz presta la función de tomar la información entregada por los sensores y transmitirla sobre la red de aviónica hacia el computador de vuelo. Otro elemento de hardware presentado es el diseño de la interfaz CAN a través del puerto paralelo (interfaz paralelo-CAN) para la lectura ⁄escritura de información desde el computador de vuelo hacia los nodos de la red de aviónica. Los aspectos de software presentados involucran la plataforma de simulación y monitoreo, y algunos detalles sobre el sistema de procesamiento de datos. El computador de vuelo hace uso del sistema operativo de tiempo real QNX, especializado para ejecución de tareas en tiempo real.

Al final de este trabajo, para validar la efectividad de esta arquitectura, se presentan resultados del intercambio de datos entre los nodos y el computador de vuelo, teniendo en cuenta las frecuencias en las que éstos operan. Se dan, además, las ventajas de esta arquitectura sobre arquitecturas comúnmente utilizadas para este tipo de aplicaciones (RS-232, RS-485). Se muestran lecturas de las mediciones entregadas por la caja de aviónica, tales como velocidades angulares y aceleraciones en los ejes (IMU) y el rumbo o //heading// (magnetómetro). Se presta especial atención a la IMU, pues ésta demanda mayores frecuencias de muestreo en el sistema de aviónica (Dittrich, 2002).



Continuación del estudio en: []


 * Programación /configuración de la red . Ejemplos (Adriana Sáenz Agudelo)**

Un ejemplo de uso de este tipo de redes, se puede ver muy fácilmente en un automóvil, donde se encuentra un procesador que controla montones de dispositivos con redes CAN, aquellos como ventanas eléctricas, aire acondicionado, freno (ABS) y acelerador, entre otros, de manera que todas estas partes controladas entre sí puedan funcionar sin causar interferencia unas con otras; a pesar de controlar partes de un automóvil que podrían resultar vitales si no fueran tratadas con cuidado, CAN triunfa en este entorno, por su robustez y por encontrarse en un medio pequeño que no necesita de tanta velocidad para llegar de un dispositivo a otro.

Un caso particular sería el hecho de que cuando uno maneja un auto y va acelerando, y de repente enciende el aire acondicionado, no quiere que toda la energía empleada pase a este nuevo dispositivo dejando sin fuerza al auto; a la vez si uno por descuido, a alta velocidad pisa el freno, sin soltar el acelerador, el comportamiento esperado es que el auto deje de acelerar, y comience la secuencia de frenado del vehículo, con dispositivos CAN controlando cada una de estas tareas, y un procesador central que las mantenga interconectadas entre sí, a pesar de las diferentes características que las partes puedan tener, es posible comunicarlas.

Para el análisis de una avería, se debe tener presente que una unidad de mando averiada abonada al Can-Bus en ningún caso impide que el sistema trabaje con normalidad. Lógicamente no será posible llevar a cabo las funciones que implican el uso de información que proporciona la unidad averiada, pero sí todas las demás.
 * Diagnóstico en un automóvil con CAN Bus: (Jorge Restrepo)**

Por ejemplo, si quedase fuera de servicio la unidad de mando de una puerta, no funcionaría el cierre eléctrico ni se podrían accionar el del resto de las puertas. En el supuesto que la avería se presentara en los cables del bus, sería posible accionar eléctricamente la cerradura de dicha puerta, pero no las demás. Ésto solo ocurriría si los dos cables se cortan o se cortocircuitan. También es posible localizar fallos en el Can-Bus consultando el sistema de auto diagnosis del vehículo, donde se podrá averiguar desde el estado de funcionamiento del sistema hasta las unidades de mando asociadas al mismo, pero necesariamente se ha de disponer del equipo de chequeo apropiado. Otra alternativa es emplear el programa informático CANAlyzer (Vector Informatik GmbH) con el ordenador con la conexión adecuada. Este programa permite visualizar el tráfico de datos en el Can-Bus, indica el contenido de los mensajes y realiza la estadística de mensajes, rendimiento y fallos.


 * Links

http://www.can-cia.org/ []** []