martes, 24 de noviembre de 2015

Compuertas lógicas


Índice
  1. Objetivo
  2. Introducción
  3. La electrónica digital
  4. Lógica positiva
  5. Lógica negativa
  6. Compuertas lógicas
  7. Puerta NOT (NO)
  8. Puerta AND (Y)
  9. Puerta OR (O)
  10. Puerta NAND (NO Y)
  11. Puerta NOR (NO O)
  12. Puerta EX-OR
  13. Puerta EX-NOR
  14. Video de compuertas lógicas
  15. Mapa mental
  16. Conclusión
  17. Bibliografía

Objetivo


Dar a conocer los conceptos básicos sobre electrónica digital y así mismo centralizar el tema en compuertas logísticas en las cuales abarcaremos la definición, los tipos , las características, los símbolos y una serie de ejercicios que ayuden a su comprensión. 

Introducción 

Álgebra de Boole (también llamada álgebra booleana), en informática y matemática es una estructura algebraica que esquematiza las operaciones lógicas Y, O, NO y SI (AND, OR, NOT, IF)[cita requerida], así como el conjunto de operaciones unión, intersección y complemento.
Las puertas lógicas procesan señales las cuales representan un valor verdadero o falso. Normalmente la tensión positiva de la fuente +Vs representa el valor verdadero y los 0V el falso. 
Es mejor que te familiarices con ellos. Las puertas lógicas son identificadas por su función lógica: NOT, AND, NAND, OR, NOR, EX-OR y EX-NOR. Las letras mayúsculas son normalmente usadas para dejar claro que el término se refiere a una puerta lógica. 


La electrónica digital
 La electrónica digital es la rama de la electrónica más moderna y que evoluciona más rápidamente. Se encarga de sistemas electrónicos en los que la información está codificada en estados discretos, a diferencia de los sistemas analógicos donde la información toma un rango continuo de valores.

Es una ciencia que estudia las señales eléctricas, pero en este caso son señales discretas, es decir, están bien identificadas, razón por la cual a un determinado nivel de tensión se lo llama estado alto (High) o Uno lógico; y a otro, estado bajo (Low) o Cero lógico.
Si suponemos que las señales eléctricas con que trabaja un sistema digital son 0V y 5V. Donde 5V será el estado alto o uno lógico, pero habrá que tener en cuenta que existe la Lógica Positiva y la Lógica Negativa, veamos cada una de ellas.

Lógica Positiva
En esta notación al 1 lógico le corresponde el nivel más alto de tensión (positivo, si quieres llamarlo así) y al 0 lógico el nivel más bajo (que bien podría ser negativo), pero que ocurre cuando la señal no está bien definida...?. Entonces habrá que conocer cuáles son los límites para cada tipo de señal (conocido como tensión de histéresis), en la figura 2.1 se puede ver con mayor claridad cada estado lógico y su nivel de tensión.

Lógica Negativa
Aquí ocurre todo lo contrario, es decir, se representa al estado "1" con los niveles más bajos de tensión y al "0" con los niveles más altos ver figura 2.2.
Por lo general se suele trabajar con lógica positiva, y así lo haremos en este módulo, la forma más sencilla de representar estos estados.
De ahora en más ya sabrás a que nos referimos con estados lógicos 1 y 0. 

Compuertas Lógicas

Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos que funcionan igual que una calculadora, de un lado ingresas los datos, ésta realiza una operación, y finalmente, te muestra el resultado.
Cada una de las compuertas lógicas se las representa mediante un Símbolo, y la operación que realiza (Operación lógica) le corresponde una tabla, llamada Tabla de Verdad. 



Puerta NOT  (NO)
Esta compuerta presenta en su salida un valor que es el opuesto del que esta presente en su única entrada. En efecto, su función es la negación, y comparte con la compuerta IF la característica de tener solo una entrada. Se utiliza cuando es necesario tener disponible un valor lógico opuesto a uno dado. La figura muestra el símbolo utilizado en los esquemas de circuitos para representar esta compuerta, y su tabla de verdad. Se simboliza en un esquema eléctrico en el mismo símbolo que la compuerta IF, con un pequeño circulo agregado en su salida, que representa la negación. 




Tabla de verdad NOT

Puerta AND (Y)

Con dos o más entradas, esta compuerta realiza la función booleana de la multiplicación. Su salida será un “1” cuando todas sus entradas también estén en nivel alto. En cualquier otro caso, la salida será un “0”. El operador AND se lo asocia a la multiplicación, de la misma forma que al operador SI se lo asociaba a la igualdad. En efecto, el resultado de multiplicar entre si diferentes valores binarios solo dará como resultado “1” cuando todos ellos también sean 1, como se puede ver en su tabla de verdad. Matemáticamente se lo simboliza con el signo “x”. 
 
 Tabla de verdad AND

Puerta OR (O)

La función booleana que realiza la compuerta OR es la asociada a la suma, y matemáticamente la expresamos como “+”. Esta compuerta presenta un estado alto en su salida cuando al menos una de sus entradas también esta en estado alto. En cualquier otro caso, la salida será 0. Tal como ocurre con las compuertas AND, el número de entradas puede ser mayor a dos. 

 Tabla de verdad OR


Puerta NAND  (NO Y)

Cualquier compuerta lógica se puede negar, esto es, invertir el estado de su salida, simplemente agregando una compuerta NOT que realice esa tarea. Debido a que es una situación muy común, se fabrican compuertas que ya están negadas internamente. Este es el caso de la compuerta NAND: es simplemente la negación de la compuerta AND vista anteriormente. Esto modifica su tabla de verdad, de hecho la invierte (se dice que la niega) quedando que la salida solo será un 0 cuando todas sus entradas estén en 1. El pequeño círculo en su salida es el que simboliza la negación. El numero de entradas debe ser como mínimo de dos, pero no es raro encontrar NAND de 3 o mas entradas. 

Tabla de verdad NAND


Puerta NOR (NO O) 

De forma similar a lo explicado con la compuerta NAND, una compuerta NOR es la negación de una compuerta OR, obtenida agregando una etapa NOT en su salida.


Tabla de verdad NOR
  
Puerta XOR

La compuerta OR vista anteriormente realiza la operación lógica correspondiente al O inclusivo, es decir, una o ambas de las entradas deben estar en 1 para que la salida sea 1. Un ejemplo de esta compuerta en lenguaje coloquial seria “Mañana iré de compras o al cine”. Basta con que vaya de compras o al cine para que la afirmación sea verdadera. En caso de que realice ambas cosas, la afirmación también es verdadera. Aquí es donde la función XOR difiere de la OR: en una compuerta XOR la salida será 0 siempre que las entradas sean distintas entre si. En el ejemplo anterior, si se tratase de la operación XOR, la salida seria 1 solamente si fuimos de compras o si fuimos al cine, pero 0 si no fuimos a ninguno de esos lugares, o si fuimos a ambos. 

 Tabla de verdad XOR


Puerta NXOR

No hay mucho para decir de esta compuerta. Como se puede deducir de los casos anteriores, una compuerta NXOR no es más que una XOR con su salida negada, por lo que su salida estará en estado alto solamente cuando sus entradas son iguales, y en estado bajo para las demás combinaciones posibles.

 Tabla de verdad NXOR

Video sobre compuertas lógicas




Mapa mental


Conclusión
Actualmente la sociedad de la información vive con, por, para y gracias a la electrónica. Estoy seguro que no somos conscientes ni de la mitad de los dispositivos electrónicos que nos rodean, y que van en aumento día tras día. Dentro de esos dispositivos electrónicos, hay un apartado que ha cobrado especial importancia: la electrónica digital, que se está imponiendo frente a la antigua electrónica analógica. En la electrónica digital los sistemas emplean y toman variables conocidas (el más conocido es el sistema binario, con dos posibles variables, empleado en la casi totalidad de los sistemas informáticos), y eso hace que sean mucho más exactos y fiables en la transmisión de información.

La electrónica y sus avances están sin duda transformando nuestra sociedad, cambiando nuestros hábitos y la personalidad de los individuos. No son sólo avances tecnológicos, sino sociales y personales los que ha promovido la electrónica. Es por ello que hoy en día podemos aseverar de modo diáfano y meridiano que los aparatos electrónicos son un pilar indiscutible en la nueva sociedad del siglo XXI, la sociedad de la información.


Bibliografía

  • https://es.wikipedia.org/wiki/Electr%C3%B3nica_digital
  • http://service.udes.edu.co/modulos/documentos/pedropatino/compuertas.pdf
  • http://www.importancia.org/electronica.php
  • http://www.ucontrol.com.ar/PDF/compuertasl.pdf
  • https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole

lunes, 26 de octubre de 2015

FlexRay


Índice
  1. Objetivo
  2. Introducción
  3. FlexRay
  4. Características
  5. Capa física
  6. Arquitectura de nodo
  7. Topologías de red
  8. Linear passive bus
  9. Topologías con Active Stars 
  10. Morfología de datos a nivel físico
  11. Datos a nivel eléctrico 
  12. Datos a nivel lógico
  13. Protocol Operation Control (POC)
  14. Coding and decoding
  15. Frame and symbol processing 
  16. Media Acces Control
  17. Clock synchronization 
  18. Clock synchronization process
  19. Macrotick Generation Process
  20. Conclusión
  21. Mapa mental

Objetivo
El objetivo de la siguiente investigación es brindar los conocimientos acerca de este protocolo  o sistema de comunicación que utilizamos en nuestro automóvil. Al igual de hacer mención a  algunas de las nuevas tecnologías, parte de la historia de FlexRay, la topología y datos técnicos relacionados con el mismo.
De igual manera observar los diferentes tipos de conectores o colores de los cables que manejamos para cada uno de los sistemas individuales de nuestro automóvil.

Introducción
Es un nuevo protocolo de comunicaciones para buses de datos en el automóvil actualmente en desarrollo por el consorcio "FlexRay". Se considera más avanzado que el CAN y el MOST en lo relativo al precio y a las prestaciones.
El BMW X5 fue el primer coche del mercado en aplicar el sistema FlexRay. El FlexRay es un nuevo estándar para la transmisión de datos de forma eficiente, rápida y segura. El X5 hace uso de este estándar para la transmisión de datos entre una centralita central y 4 centralitas satélites colocadas en los amortiguadores. Con este sistema se permite una reacción y equilibrio extremadamente rápido a baches o agujeros en el camino. La tecnología FlexRay se esta asentando en la industria del autómovil (BMW, Audi, Volkswagen).

FlexRay
Es un nuevo protocolo de comunicaciones para buses de datos en el automóvil desarrollado por el consorcio FlexRay entre 2000 y 2009. Se considera más avanzado que el CAN y el MOST en lo relativo al precio y a las prestaciones.
El consorcio FlexRay fue fundado en Septiembre de 2000 por BMW, Daimler AG (matriz de Mercedes), Philips y Motorola y actualmente está compuesto por los siguientes miembros:
  • ·        Volkswagen
  • ·        BMW
  • ·        Daimler AG
  • ·        General Motors
  • ·        Robert Bosch GmbH
  • ·        NXP Semiconductors, ahora independiente y que perteneció a Philips
  • ·        Freescale, ahora independiente y que perteneció a Motorola


Características
Sus características más destacadas son:
  • ·        Una alta transmisión de datos (10 megabits por segundo)
  • ·        Un comportamiento estimulado por factores temporales
  • ·        Redundancia, seguridad y tolerancia de errores

Las especificaciones de este protocolo están siendo actualmente revisadas. El primer vehículo del mercado que contaba con este tecnología fue el BMW X5, lanzado al mercado en Enero de 2007. Este vehículo se basa en ésta tecnología para comunicar los sensores en los amortiguadores con una centralita electrónica central que sirve como reguladora. El objetivo de este sistema es una respuesta rápida a los asperezas de la carretera para lograr un conducción lo más suave posible. Se espera el uso de esta tecnología a gran escala en el 2008. La versión actual es la 3.0 (2009).


Capa física
En este apartado vamos a describir los puntos más importantes y relevantes de la capa física del protocolo Flexray.
Arquitectura de un nodo
Un nodo Flexray está formado esencialmente por un microcontrolador, un periférico llamado Communication Controller, 2 transceivers y una fuente de alimentación.
El microcontrolador es el propio de la ECU, el cual seguramente realiza otras funciones externas propias de la ECU y que cada cierto tiempo envía y recibe una trama de información al bus Flexray. Para ello se comunica con el Communication Controller (CC), que no es más que un periférico hardware que gestiona en todo momento el protocolo. Es decir, el microcontrolador no se encarga de la pila del protocolo, si no que lo gestiona todo el CC.
Así pues, el CC se comunica a su vez con los transceivers que se encargan de transformar los datos lógicos a niveles eléctricos de Bus. Flexray dispone de 2 canales de comunicación, lo que requiere un transceiver para cada canal.
 Entre los diferentes bloques mencionados existen líneas optativas de señalización para determinadas situaciones. Esto será explicado más adelante con más detalle.

Topologías de red.
Flexray permite un amplio abanico de topologías de red. El hecho de tener 2 canales independientes aporta además otro grado de libertad, pudiendo hacer para cada canal una configuración de nodos diferente.
La interconexión básica entre dos nodos responde al siguiente esquema:

Linear passive bus
Es la topología más básica y una de las más usadas. Se puede apreciar como es posible que un nodo se conecte a los dos canales (por ejemplo en el caso que este nodo representara una función crítica del sistema) mientras que otros nodos se conectan a uno de los dos canales.
Las limitaciones más importantes a tener en cuenta en esta topología son:
Topologías con Active Stars
Estas topologías hacen uso del elemento repetidor Active Star.  Este elemento de bus es capaz de desacoplar eléctricamente las diferentes ramas a las cual está conectado, además de regenerar la señal aunque por otro lado introduce retardos. Se les puede dotar de cierta inteligencia consiguiendo un ruteado del mensaje, todo y que esto acumularía aún más retardo. También pueden desconectar una rama de la red si detectan un mal funcionamiento. Las limitaciones en este caso son:



Morfología de datos a nivel físico
Flexray es un bus diferencial, lo que quiere decir que se basa en la diferencia de señales del bus para determinar el dato enviado. Las salidas del transceiver son BP y BM y la información relativa uBus = BP-BM. El transceiver es el encargado de gestionar la trama lógica que le llega del Communication Controller y traducirla a los niveles eléctricos correspondientes del bus y viceversa.
Datos a nivel eléctrico.
 Los diferentes símbolos que podemos encontrar en el bus son:
  • Idle_LP: Estado del bus en baja energía cuando no circula corriente por el mismo y el transceiver fuerza un 0 a la salida.
  • Idle: Estado del bus cuando no circula corriente por el bus pero el transceiver fuerza un determinado voltaje para BP y BM.
  • Data_1: La información lógica 1 se traduce a una diferencia positiva entre BP y BM (uBus>0)
  • Data_0: La información lógica 1 se traduce a una diferencia negativa entre BP y BM (uBus<0)

Los estados Idle_LP y Idle sirven para determinar que el canal está libre. Más adelante, veremos cómo se gestiona este aspecto ya que en ello intervienen elementos de protocolo de capa superior. Además de estos estados, por el Bus pueden circular lo que en el protocolo Flexray se llaman Símbolos y que realizan funciones específicas. Los veremos en el siguiente apartado.

Datos a nivel lógico.
El transceiver traduce de niveles eléctricos a niveles lógicos en ambos sentidos. Para eso, dispone de una entrada Vdig (Voltaje digital) para adecuarse a la tensión de operación del CC. Veámoslo en el siguiente ejemplo:
Protocol Operation Control (POC)
El POC es la máquina de estados principal del protocolo. Decide en todo momento en qué estado se encuentra el protocolo y reacciona a las órdenes del uC realizando los cambios necesarios en los siguientes subprocesos, llamados “core mechanisms”:
  • Coding and Decoding
  • Frame and Symbol processing
  • Media Access Control
  • Clock Synchronization.

Inmediatamente después de recibir energía. El CC controller entra en el estado de POC OPERATIONAL y empieza a funcionar el POC. Lo podemos apreciar en el siguiente diagrama de estados:
Coding and Decoding


En un primer nivel podemos distinguir entre 3 bloques: Cabecera, Datos y CRC. Como vemos la trama puede variar entre 8 y 262 bytes.
El significado de los campos de cabecera es el siguiente:
  • Reserved bit: Bit reservado del protocolo para futuros usos.
  • Payload Preamble indicator: Sirve para indicar que los primeros bytes del segmento de datos también son de cabecera. Esto se usa para tareas de mantenimiento y gestión de la red o para indicadores en las tramas dinámicas.
  • Null Frame Indicator: Indica si la trama lleva datos o no. A veces, por  ejemplo en tramas de sincronismo, se envía una trama para mantener el sincronismo pero no lleva datos asociados. Cabe indicar que la situación contraria se puede dar. Es decir, se puede enviar una trama de sincronía que además contenga datos.
  • Sync Frame Indicator: Indica si la trama es de sincronismo. Estas tramas que sirven para sincronizar todos los nodos a la base de tiempos global de Flexray.
  • Startup Frame Indicator: Indica si es una trama de Startup. Es decir, si es una trama de inicio de comunicación.
  • Frame ID: Identificador único de la trama asociado a un nodo. Define el slot en el cual se envía la trama.
  • Payload length: Define la longitud del campo de datos enviado con la trama.
  • Header CRC: CRC de cabecera. Sirve para agilizar el protocolo. Si un nodo detecta un error en el CRC de cabecera descarta directamente la trama.
  • Cycle Count: indica el ciclo de comunicación en el que nos encontramos.

Frame and Symbol Processing
El proceso Frame and Symbol Processing, se encarga de recoger los datos de salida del  “Coding and Decoding process”, comprobar errores tanto sintácticos, semánticos como de sincronización y en caso positivo pasar la información relevante al CHI (Controller Host Interface) para que el uC pueda leer el mensaje recibido. 

Media Acces Control
El protocolo Flexray se basa en un ciclo de comunicación recurrente. Este ciclo está dividido en 4 segmentos:
  •  Static Segment:  El Static Segment está compuesto por slots de medida fija. Cada slot está asociado a una Frame ID. Por su parte cada Frame ID está asociada a un nodo, de manera que cada nodo sabe siempre en qué slot o slots le toca enviar. Este segmento es de carácter obligatorio y siempre se comporta igual. Es decir, las tramas estáticas siempre se envían.
  • Dynamic Segment: El Dynamic Segment está compuesto por dynamic slots la medida de los cuales es variable y se establece un orden de envío por prioridad de ID, similar al CAN. Es decir, si dos nodos en el segmento dinámico luchan por transmitir, ganará el de la ID más baja. Además el tamaño de la trama no es fijo, así que el primer nodo en coger el control del bus podría agotar el Dynamic Segment. Este segmento es  de carácter opcional, a diferencia del estático.
  • Symbol Window: En el Symbol Window se pueden enviar los MTS para  gestión de la red. Es de carácter opcional y raramente se usa.
  •  Network Idle Time: Al final del ciclo se deja el canal un cierto tiempo libre para poder ajustar el tiempo de ciclo a la durada fija determinada. Este segmento es de carácter obligatorio. 

Clock Synchronization

Flexray es un protocolo determinístico basado en la división del tiempo en ranuras donde cada nodo sabe en qué ranura puede enviar y en cual no. Dada esta descripción, se puede entender la gran importancia de mantener todos los nodos sincronizados constantemente. De lo contrario, fácilmente un nodo no sincronizado podría al transmitir invadir la ranura del vecino y provocar un fallo general de comunicación. Es por eso, que el proceso Clock Synchronization cobra gran relevancia en el protocolo Flexray.
Todo y que cada nodo dispone de su propio oscilador, Flexray funciona con una base de tiempos global a nivel de red. Esto lo consigue gracias a las tramas de sincronismo que envían un mínimo de 2 nodos en una red de 2 ECUs o 3 en una red de 3 o más ECUs. Estos nodos, llamados Coldstart nodes, son muy importantes tanto en el inicio de la comunicación como en el sincronismo de la red. Suelen tener osciladores muy precisos y marcan el tiempo al cual se han de ir adaptando el resto de nodos.
La sincronización del reloj se basa en 2 subprocesos importantes:

Clock Synchronization Process.
 El Clock Synchronization Process (CSP) recoge los valores de las tramas de sincronía enviadas por los diferentes Coldstart nodes de la red, los compara con los que él había predecido y hace una estimación del valor correcto. El resultado lo pasa al Macrotick Generation Process.
Macrotick Generation Process
El Macrotick Generation Process (MTG), como indica su nombre, es el encargado de generar el macrotick y del control de tiempos como el tiempo de ciclo o el tiempo de slot. Así pues, con los datos que le pasa el CSP, efectúa las correcciones necesarias para mantener el sincronismo del nodo:
Correcciones de Offset: Indica el número de microticks que hace falta añadir al NIT (Network idle Time) para que el ciclo de comunicación Flexray comience en el momento adecuado. Se calcula cada ciclo y se corrige en el NIT de los ciclos impares. 
Correcciones de Rate: Indica el número de microticks por macrotick que hay que añadir (o substraer) para adecuarse al tiempo de ciclo. Se calcula en los ciclos impares y se aplica siempre.


Conclusión

El bus CAN ha sido y es un gran éxito tanto a nivel de automoción como a nivel de industria. Cientos de millones de ECUs de diferentes sectores usan el protocolo, lo que lo ha hecho seguro, estable, estudiado y debido al gran volumen de producción, barato. Es cierto que hay otras soluciones de protocolos más económicos, pero es indudable que el CAN hoy en día es la mejor solución en cuanto a velocidad y seguridad. Por otro lado, las nuevas aplicaciones X-by-Wire requerirán nuevas prestaciones y Flexray está orientado a cubrirlas. Todo y que existen muchas diferencias entre CAN y Flexray, sobre todo a nivel lógico, no ocurre lo mismo en el nivel físico. Muchos de los conceptos usados por Flexray, son una adaptación de CAN. Eso sí, la oportunidad de crear un nuevo BUS, ha permitido extender estos conceptos ytratar de mejorarlos, aplicando nuevas ideas y soluciones.
 Este documento se centra sobre todo en el nivel físico que el ingeniero de hardware tendrá que abordar. De todas maneras, siempre hay que tener unavisión global del funcionamiento del protocolo. Por eso, sin profundizar excesivamente, dedicaremos un pequeño apartado destinado a tratar las principales diferencias a nivel lógico entre ambos buses.
La principal diferencia a nivel lógico entre los dos protocolos es que CAN está orientado a eventos (Event triggered) y Flexray está basado en un ciclo determinístico TDMA (Time Division Multiple Access). Se le suele llamar un protocolo Time Triggered.
CAN utiliza un sistema de prioridad de envío en el cual, el nodo con la ID más baja tiene más prioridad para enviar un mensaje. Si en un determinado instante 2 o 3 nodos compiten por el bus, ganará el control el nodo con la ID más baja.
Una vez éste haya transmitido su información al bus, entonces los otros nodos podrán enviar.
Flexray usa una partición del tiempo entre los diferentes nodos. Es decir, si el ciclo dura 4 segundos y hay 4 nodos, cada nodo disfrutará para sí solo de un segundo para transmitir cada 4 segundos.  



Mapa mental





jueves, 24 de septiembre de 2015

CAN - BUS


Índice 
  1. Objetivo
  2. Introducción
  3. CAN-BUS
  4. Evolución e historia de protocolo CAN
  5. Tipos de CAN
  6. CAN de alta velocidad
  7. Extensiones del CAN de alta velocidad
  8. CAN de baja velocidad tolerante a fallos
  9. CAN FD (flexible data-rate)
  10. Características de CAN-BUS
  11. Lógica y códigos
  12. Sistema binario
  13. Lógica positiva / negativa
  14. Sistema hexadecimal
  15. Topologías de red
  16. Topología en bus
  17. Métodos de direccionamientos
  18. Multicast
  19. El CAN-BUS de datos
  20. Cables de datos
  21. Resumen o conclusión
  22. Mapa mental

Objetivo
El objetivo de la siguiente investigación es brindar los conocimientos acerca de este protocolo  o sistema de comunicación que utilizamos en nuestro automóvil. Al igual de hacer mención a  algunas de las nuevas tecnologías, parte de la historia de CAN-BUS, la topología y datos técnicos relacionados con el mismo.

De igual manera observar los diferentes tipos de conectores o colores de los cables que manejamos para cada uno de los sistemas individuales de nuestro automóvil. 


Introducción
El CAN-Bus de datos, de la casa Bosch, es una solución de esa índole. Ha sido desarrollado especialmente para el uso en automóviles y se implanta en una medida creciente en los vehículos Volkswagen y Audi.
CAN significa Controller Area Network (red de área de controlador) y significa, que las unidades de control están interconectadas e intercambian datos entre sí.


CAN –BUS
CAN (acrónimo del inglés Controller Area Network) es un protocolo de comunicaciones desarrollado por la firma alemana Robert Bosch GmbH, basado en una topología bus para la transmisión de mensajes en entornos 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:
Ofrece alta inmunidad a las interferencias, habilidad para el autodiagnóstico y la reparación de ir errores de datos.
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.

Historia y evolución del protocolo CAN
El desarrollo del protocolo CAN comenzó en 1983 en la empresa Robert Bosch GmbH (comúnmente conocida como Bosch). El protocolo fue oficialmente lanzado en 1986 en el congreso de la Sociedad de Ingenieros Automotrices (SAE) en Detroit. Los primeros controladores CAN llegaron al mercado en 1987 de la mano de Intel y Philips.1 El BMW Serie 8 de 1988 fue el primer vehículo producido en serie que incluyó un bus CAN.

Bosch publicó posteriormente varias versiones de la especificación CAN, siendo la última de ellas la especificación CAN 2.0, publicada en 1991. Esta especificación consta de dos partes; la parte A para el formato estándar y la parte B para el formato extendido. Un dispositivo CAN que usa el formato estándar utiliza identificadores de 11 bits y es comúnmente referido como dispositivo CAN 2.0A. Un dispositivo CAN que usa el formato extendido utiliza identificadores de 29 bits y es comúnmente referido como dispositivo CAN 2.0B. Los estándares CAN 2.0A/B y otros documentos de referencia relacionados con CAN son de acceso libre a través de Bosch.

En 1993 se publicó el estándar ISO 11898 del bus CAN y ha sido a partir de ese momento un estándar de la Organización Internacional para la Normalización. Actualmente el bus CAN está estandarizado por las siguientes normas:

  • ISO/DIS 11898-1:2015, Part 1: Data link layer and physical signalling
  • ISO 11898-2:2003, Part 2: High-speed medium access unit
  • ISO 11898-3:2006. Part 3: Low-speed, fault-tolerant, medium-dependent interface
  • ISO 11898-4:2004, Part 4: Time-triggered communication
  • ISO 11898-5:2007, Part 5: High-speed medium access unit with low power mode
  • ISO 11898-6:2013, Part 6: High-speed medium access unit with selective wake-up functionality
  • ISO 16845:2004, Conformance test plan


En 2011 Bosch, en cooperación con los fabricantes de automóviles y otros expertos del bus CAN, comenzó a desarrollar la siguiente generación del CAN: el protocolo CAN FD (flexible data-rate). El CAN FD es compatible hacia atrás, es decir, un controlador CAN FD es capaz de comprender un mensaje CAN clásico (o CAN 2.0). Por el contrario, un controlador CAN clásico destruye un mensaje CAN FD emitiendo un mensaje de error. El nuevo CAN FD es capaz de transmitir datos más rápido que 1 Mbps (la velocidad máxima del CAN clásico). Ambos protocolos, el CAN clásico y el CAN FD, están estandarizados en la norma ISO/DIS 11898-1.

Tipos de bus CAN
La especificación de los buses CAN esta recogida en el conjunto de estándares ISO 11898. Dicha especificación define las dos primeras capas, la capa física y la capa de enlace de datos, del modelo OSI de interconexión de sistemas. En base a dichos estándares, los buses CAN se pueden clasificar en dos tipos:

CAN de alta velocidad
ISO 11898-2, también llamado CAN de alta velocidad, usa un único bus lineal terminado en cada extremo con sendas resistencias de 120 Ω. Es importante que el valor de las resistencias de terminación coincida con la impedancia característica del bus, definida en 120 Ω, para evitar reflexiones en la línea que podrían perturbar la comunicación. Con esta configuración la velocidad del bus es de un máximo de 1 Mbit/s.

Extensiones del CAN de alta velocidad
La Organización Internacional para la Normalización (ISO) ha definido unas extensiones opcionales de la capa física del bus CAN de alta velocidad (ISO 11898-2). Dichas extensiones están descritas en sus respectivos estándares y son útiles para sistemas con requisitos específicos. También definen la compatibilidad con ISO 11898-2.
ISO 11898-5 especifica la capa física con tasas de transmisión de hasta 1 Mbit/s para sistemas que requieren bajo consumo de energía cuando no hay comunicaciones activas en el bus de datos. ISO 11898-5 representa una extensión de ISO 11898-2 y aquellas implementaciones que cumplan cualquiera de estas dos normas, es decir, los nodos CAN de alta velocidad con y sin bajo consumo de energía, son interoperables entre sí y pueden coexistir en la misma red.
ISO 11898-6 es una extensión de ISO 11898-2 y de ISO 11898-5. Esta extensión especifica la capa física de un bus CAN de hasta 1 Mbit/s, proporcionando un método selectivo de activación de nodos (wake-up) usando tramas CAN configurables. Las implementaciones de ISO 11898-6, ISO 11898-2 e ISO 11898-5 son interoperables y se pueden usar en una misma red simultáneamente.

CAN de baja velocidad tolerante a fallos
ISO 11898-3, también llamado CAN de baja velocidad tolerante a fallos, puede utilizar un bus lineal, un bus en estrella o múltiples buses en estrella conectados por un bus lineal. El bus está terminado en cada nodo por una fracción de la resistencia de terminación total. La resistencia de terminación total debería ser un valor próximo a 100 Ω, pero no inferior a 100 Ω. Este estándar permite velocidades de hasta 125 kbit/s.


CAN FD (flexible data-rate)

En 2011 Bosch comenzó a trabajar en una evolución del CAN. En 2012 lanzó CAN FD 1.0, que ofrece un aumento de la tasa de transferencia después del arbitraje. De momento (2015), sólo se ha definido la capa de enlace de datos del CAN FD. La frecuencia se puede multiplicar hasta por 8 y el número máximo de bytes por trama aumenta, siendo posible transmitir una mayor cantidad de datos en el mismo tiempo.4 La especificación está recogida en el borrador de norma ISO/DIS 11898-1:2015.

Características CAN-BUS.
1.- Los sistemas de bus aumentan la flexibilidad en caso de modificaciones. Los cambios de software como, por ejemplo, las actualizaciones, pueden realizarse con comodidad y sin gran coste.
2.- Asimismo, por su configuración modular, un sistema de bus es flexible y ampliable.
3.- Gracias al optimizado intercambio de la información, puede prescindirse de mini-unidades de control individuales. En una misma unidad de control pueden reunirse varias funciones. Un ejemplo es la unidad de control central del sistema de confort.
4.- Los buses ofrecen una opción simplificada de diagnóstico, porque los componentes correspondientes están integrados en un sistema general. Los fallos pueden detectarse desde un puesto central.
5.- Con la protección de los protocolos de datos se consiguen unos menores coeficientes de fallos.
Lógica y códigos
Sistema binario
La información puede codificarse a través de una secuencia de bits. Tomemos como ejemplo el número 97.

Lógica positiva / negativa
La transmisión binaria de datos puede explicarse con ayuda de un sencillo circuito. El interruptor determina así, con su posición, si fluye la corriente. La lámpara actúa como indicador.

Sistema hexadecimal
La información que se transmite o almacena en los aparatos técnicos son datos binarios. Si se leyese y representase esta información, aparecería un patrón de ceros y unos. Como esta representación es bastante confusa, se usa con frecuencia en la tecnología otra más compacta. Se la conoce como representación hexadecimal.
Topologías de Red
Por topología se entiende, en general, el tipo de interconexión. Por topología física se entiende la disposición de los nodos de la red  y las conexiones. La topología lógica se refiere al flujo de datos entre los aparatos.

Topología en bus
Ventajas:
-Fallo de un ordenador no afecta el funcionamiento de la red.
-Menor coste de cableado.
-Fácilmente ampliable
-No se precisan más aparatos para la transmisión.

Inconvenientes:
-Una avería en el cable principal provoca la caída de toda la red.
-Varios intercomunicadores no pueden enviar al mismo tiempo.
-Menor aprovechamiento por el riesgo de colisión.


Métodos de direccionamientos
Los intercomunicadores intercambian mensajes enviando y recibiendo noticias. En tecnología se llama “método de direccionamiento” a la manera de dirigirse a los intercomunicadores. 


Multicast
Caracteristicas:
-El emisor envía su mensaje a todos los receptores.
- Los receptores deciden, según el contenido de la noticia, si el mensaje les concierne.
-Cualquier intercomunicador puede ser emisor y receptor.
-Método orientado al contenido.

Ventajas:
- El  emisor no tiene que administrar las direcciones de los receptores.
-Pueden transportarse a la vez grandes volúmenes de datos a varios receptores.
-Una misma noticia solo tiene que transmitirse una vez.  
- La red se amplía sin dificultad con nuevos emisores y receptores (buena escalabilidad).
-El ancho de banda depende sólo del volumen de información y no del número de intercomunicadores.

Inconvenientes:
-Fuerte dependencia de la topología de red.
-Requiere un costoso protocolo de datos.

El CAN Bus de datos
El CAN Bus de datos representa un modo de transmitir los datos entre las unidades de control. Comunica las diferentes unidades de control en un sistema global interconectado.

En este tipo de transmisión la información se transmite a través de dos cables. Independientemente de la cantidad de unidades de control abonadas y de la cantidad de información transmitida.


Transmisión de datos en el pasado

Transmisión de datos en serie con CAN

Ventajas:
        Cableado muy simplificado
        Transmisión rápida de datos entre las unidades de control
        Ahorro de espacio gracias a unidades de control con conectores pequeños.
        Escasa cuota de averías gracias a una comprobación constante de los mensajes enviados a través de las unidades de control.
        Está normalizado a escala mundial. Por tanto puede intercambiar datos con unidades de control de diferentes fabricantes.


Cables de datos

Al efectuar tareas de reparación, ambos cables de bus deben tener la misma longitud. Al entrelazar los cables de Can baja y alta, se debe mantener una longitud de trenzado (por vuelta) de 20 mm. Al realizar esta operación, no debe resultar ningún elemento conductor (por ejemplo, en contactos o conectores de soldadura), de más de 50 mm sin entrelazado de cables.
Una longitud de trenzado correcta permite evitar los siguientes efectos secundarios:
-         Diafonía  (entre dos circuitos existe diafonía cuando parte de las señales presentes en uno de ellos, considerado perturbador, aparece en el otro, considerado perturbador).
-         Autoinducción
-         Reflexiones de señal al final del bus



Los distintos nodos de un bus CAN deben estár interconectados mediante un par de cables trenzados con una impedancia característica de 120 Ω, y puede ser cable apantallado o sin apantallar. El cable trenzado proporciona protección frente a interferencias electromagnéticas externas. Y si, además, está apantallado, la protección será mayor pero a cambio de un incremento en el coste del cable.
El estándar CAN, a diferencia de otros estándares como el USB, no especifica ningún tipo de conector para el bus y por lo tanto cada aplicación puede tener un conector distinto. Sin embargo, hay varios formatos comúnmente aceptados como el conector D-sub de 9 pines, con la señal CAN_L en el pin 2 y la señal CAN_H en el pin 7.
Las propiedades de la línea de transmisión limitan el ancho de banda de los datos. Orientativamente, se aceptan los siguientes valores como límite de longitud del bus en función de la tasa de transferencia:9.


Resumen o conclusión
CAN, o CAN Bus, es la forma abreviada de Controller Area Network es un bus de comunicaciones serial para aplicaciones de control en tiempo real, con una velocidad de comunicación de hasta 1 Mbit por segundo, y tiene excelente capacidad de detección y aislamiento de errores. Del mismo modo que OBD 2 fue obligatorio para todos los vehículos desde 1996, el CAN Bus será de instalación obligatoria en todos los vehículos a partir de 2008.
Este sistema emplea dos cables en los cuales viajan dos señales exactamente iguales en amplitud y frecuencia pero completamente inversas en voltaje los módulos con estos dos pulsos identifica el mensaje, pero también tiene opciones de mantener la red activa aunque falle uno de los cables de comunicación.
Al mismo tiempo, CAN proporcionó a los fabricantes de herramientas de diagnóstico una manera de acelerar las comunicaciones entre el vehículo y su herramienta. El diagnóstico se ve muy beneficiado ya que la mayor velocidad de comunicación les permitirá en el futuro, a través de su herramienta de escaneado, ver datos casi en tiempo real, tal como ahora ven datos de sensores con sus scanners.


Mapa mental