CAN: Controller Area Network

37
CAN: Controller Area Network Redes de Datos – 2014 Facultad de Ingeniería Universidad Nacional de Mar del Plata Alumnos: Juan M. López – Martin Igartúa

description

CAN: Controller Area Network. Redes de Datos – 2014 Facultad de Ingeniería Universidad Nacional de Mar del Plata Alumnos: Juan M. López – Martin Igartúa. Historia. - PowerPoint PPT Presentation

Transcript of CAN: Controller Area Network

Page 1: CAN:  Controller Area  Network

CAN: Controller Area Network

Redes de Datos – 2014Facultad de Ingeniería

Universidad Nacional de Mar del PlataAlumnos: Juan M. López – Martin Igartúa

Page 2: CAN:  Controller Area  Network

Historia• Es un bus de comunicación serie diseñado para proveer una

comunicación simple, eficiente y robusta, que es utilizada en redes de vehículos.

• Fue desarrollado por la compañía Robert Bosch GmbH en 1983 y presentado a la sociedad en el año 1986.

• En el año 1991 se publicó la versión 2.0 que es la más utilizada en la actualidad. Posteriormente, fue estandarizado bajo certificaciones ISO en el año 1993.

• CAN fue concebido para ser implementado en la industria automotriz, pero también fue adoptado en sistemas de control marítimo y navegación, sistemas de control de ascensores, maquinaria agrícola, automatización de fábricas, fotocopiadoras, sistemas médicos, maquinaria de producción textil y más.

Page 3: CAN:  Controller Area  Network

¿Por qué utilizar el Bus CAN?• La industria del automóvil ha desarrollado una

multitud de sistemas electrónicos, como por ejemplo ABS, EMS, Control de Tracción, AIRBAG, Cierre Centralizado de Puertas, entre otras.

• La complejidad de estos sistemas de control y la necesidad de intercambiar datos entre ellos, hizo que el cableado tipo punto a punto se volviera muy costoso e ineficiente.

• Para llevar ésto a la práctica, se necesitarían cientos de conexiones individuales, que implicarían grandes cantidades de cable, aumentando el peso y la dificultad de mantenimiento.

Page 4: CAN:  Controller Area  Network

Soluciones CAN

• CAN utiliza generalmente cables de par trenzado UTP o STP con transmisión diferencial (mejorando la inmunidad al ruido) y topología tipo Bus.

• Es Multimaestro y Multicast. Nuevos dispositivos pueden ser agregados sin modificar la configuración de los existentes.

• Provee un método de acceso al medio llamado CSMA/CD+AMP (agrega Arbitraje por Prioridad de Mensajes).

• Incorpora 5 métodos de control de errores, 3 a nivel de mensaje y 2 a nivel de bits.

Page 5: CAN:  Controller Area  Network

Red Convencional vs. Red CAN

Page 6: CAN:  Controller Area  Network

Detalle de un Bus CAN

Page 7: CAN:  Controller Area  Network

CAN Diferencial y Cable Simple

Page 8: CAN:  Controller Area  Network

Estándares Relevantes Standard  Common

Name Max Baud Rate  Max nodes Applicactions

ISO 11783 ISOBUS 250 Kbps  30 Agriculture Industry

ISO 11519-1 Low Speed 125 Kbps Agriculture Machines

ISO 11898-2  High Speed 1 Mbps 110 General Purpose

ISO 11898-3  Fault Tolerant 125 Kbps  32 Car Body Electronics

ISO 11992 Truck/Trailer 125 Kbps P-2-P Truck/Trailer

ISO 15765 Diagnostics 1 Mbps 110 Diagnostics

SAE J1939 J1939 250 Kbps 30 ECUs Diagnostics on Cars and Heavy Trucks

SAE J2284   1 Mbps  110 Vehicle Applications

SAE J2411 Single Wire 33,3Kbps 32 Vehicle Applications

Page 9: CAN:  Controller Area  Network

Modelo de Capas I• El estándar ISO 11898 define las últimas dos capas

del modelo OSI como Data-Link Layer (LLC y MAC) y Physical Layer (PLS, PMA y MDI).

• Control de Enlace Lógico (LLC):oSe encarga del filtrado de mensajes.oProvee servicios para la transferencia de datos y durante

la solicitud de datos remotos.oDecide que mensajes recibidos de MAC se aceptan.oSe encarga de la recuperación en caso de errores y

notificaciones de sobrecarga del Bus.

Page 10: CAN:  Controller Area  Network

Modelo de Capas II• Control de Acceso al Medio (MAC):

o Presenta los mensajes recibidos a la subcapa LLC.o Acepta los mensajes para ser transmitidos a dicha subcapa.oResponsable de la trama de mensajes, arbitraje, detección y señalización de errores.oDecide si el bus está libre para iniciar una transmisión, o si comenzó una recepción.

• Capa Física:o Niveles de Señal (Para :

, entre CANH y CANL (2.5V - 2.5V = 0V). , entre CANH y CANL (4.1V - 1.5V =2.6V).

o Codificación Non-Return-to-Zero (NRZ).o Sincronización.o Impedancia de los cables ().o Velocidades de transferencia.

Page 11: CAN:  Controller Area  Network

Modelo de Capas III• Physical Signaling (PLS):

o Codificación/Decodificación binaria.o Velocidad binaria.o Sincronización.

• Physical Medium Attachment (PMA):o Características del Transceiver.

• Medium Dependent Interface (MDI)o Cable/Conector.

Page 12: CAN:  Controller Area  Network

Modelo de Capas IV

Page 13: CAN:  Controller Area  Network

Transmisión de Datos I

• Un mensaje CAN que se transmite con la prioridad más alta tendrá éxito, y el nodo que transmite el mensaje de prioridad más baja lo censará y esperará un tiempo de Back-Off.

• Esto se logra mediante la transmisión de datos a través de un modelo binario de bits Dominantes y bits Recesivos (“o” lógico y “1” lógico respectivamente).

• Si un nodo transmite un bit Dominante y otro nodo transmite un bit Recesivo, el primero "gana" . Ésto es equivalente a una operación AND Cableada entre los dispositivos conectados al Bus.

Page 14: CAN:  Controller Area  Network

Transmisión de Datos II

Page 15: CAN:  Controller Area  Network

Acceso al Medio

• Se utiliza CSMA/ CD+AMP, Collision Detection and Arbitration on Message Priority.

• CSMA significa que cada nodo en el Bus debe esperar por un tiempo predeterminado de inactividad antes de intentar transmitir.

• CD+AMP significa que las colisiones son resueltas a través de un arbitraje bit a bit (bit-wise arbitration), basado en una prioridad prestablecida para cada mensaje en su campo de identificación. El mensaje de mayor prioridad ganará el acceso al Bus.

Page 16: CAN:  Controller Area  Network

Arbitraje I• Si dos nodos intentan ocupar el Bus simultáneamente, el

acceso se implementa con un arbitraje no destructivo bit a bit. No destructivo significa que el nodo que gana el arbitraje continúa con el mensaje, sin que éste sea destruido o dañado por otro nodo.

• Cuanto menor sea el Identificador del mensaje, mayor será su prioridad. Así, un identificador compuesto enteramente de ceros es el mensaje de prioridad más alta.

• Si dos nodos transmiten simultáneamente, y un nodo envía el último bit del identificador como un “0”, mientras que el otro envía un “1”, el primero retiene el control del Bus y completará su mensaje.

Page 17: CAN:  Controller Area  Network

Arbitraje II

Page 18: CAN:  Controller Area  Network

Arbitraje III

• La asignación de prioridad del mensaje corresponde al diseñador del sistema, pero los grupos industriales llegaron a un acuerdo sobre la importancia de ciertos mensajes.

• Ejemplo: El fabricante especifica que el mensaje 0010 es una señal de realimentación de corriente del devanado de un motor, y que 0011 es el velocidad del tacómetro. Debido a que 0010 tiene el identificador binario más bajo, los mensajes en relación con los valores de la corriente del motor, siempre tendrán una mayor prioridad en el Bus que las lecturas del tacómetro.

Page 19: CAN:  Controller Area  Network

Tipos de Estándares I

• Existen dos tipos de tramas CAN, la Estándar (Standard CAN) y la Extendida (Extended CAN).

• La principal diferencia se encuentra en el incremento de la cantidad de bits del campo de Identificación, yendo de 11 bits en el Estándar, a 29 bits en la versión Extendida.

Page 20: CAN:  Controller Area  Network

Tipos de Estándares II

• Standard CAN:

• Extended CAN:

Page 21: CAN:  Controller Area  Network

Tipos de Estándares IIICampos de Standard CAN:• SOF- (Start of Frame) [1 bit] Marca el inicio de un mensaje con un bit

Dominante y se utiliza para sincronizar los nodos en un bus después de estar inactivo.

• Identificador- (Identifier) [11 bits] Identifica y establece la prioridad del mensaje. Cuanto menor sea el valor binario, mayor es su prioridad.

• RTR- (Remote Transmission Request) [1 bit] Es utilizada por el receptor para solicitar a un transmisor que envíe su información. Un bit RTR Dominante indica una Trama de Datos y uno Recesivo indica una Trama Remota.

• IDE- (Identifier Extension) [1 bit] Permite diferenciar entre tramas estándar y extendidas.

• r0- Bit reservado para su posible uso por una modificación futura.• DLC- (Data Length Code) [4 bits] Indica el número de bytes que contiene el

campo de datos.

Page 22: CAN:  Controller Area  Network

Tipos de Estándares IV• Data- [hasta 64 bits] Datos a transmitir.• CRC- (Cyclic Redundancy Check) [16 bits] Consta de un código

CRC de 15 bits más un bit recesivo delimitador. Su función es la de detectar errores.

• ACK- (Acknowledge) [2 bits, ACK + Delimitador] Indica si el mensaje a sido recibido correctamente. El transmisor pone este bit como Recesivo y cada nodo que reciba el mensaje correctamente, lo sobrescribe con un bit dominante. En caso de que un nodo receptor detecte un error, descarta el mensaje y el nodo emisor repite el mensaje después del rearbitraje. De esta manera cada nodo verifica la integridad del mensaje.

• EOF- (End Of Frame) [7 bits] Cumple dos funciones: 1) Marca el final de una trama CAN 2) Desactiva relleno de bits (bit-stuffing), que indica un error de relleno (stuffing) cuando es dominante.

• IFS- (Interframe Space) [7 bits] Determina el espaciado entre tramas.

Page 23: CAN:  Controller Area  Network

Tipos de Estándares VCampos adicionales de Extended CAN:• SRR- (Substitute Remote Request) [1 bit] Sustituye al

bit RTR en la ubicación del mensaje estándar como un marcador de posición en el formato extendido.

• IDE- (Identifier Extension) [1 bit] Se pone en alto (Recesivo) para indicar que hay más bits identificadores a continuación.

• Identificador- (Identifier) [18 bits] Extiende el campo Identificador de la trama Standard CAN, llegando a un total de 29 bits.

• r1- Bit reservado adicional para su posible uso por una modificación futura.

Page 24: CAN:  Controller Area  Network

Tipos de Mensajes I

• Existen cuatro tipos de mensajes que pueden ser transmitidos en un bus CAN:oTrama de Datos (Data Frame)oTrama Remota (Remote Frame)oTrama de Error (Error Frame)oTrama de Sobrecarga (Overload Frame)

Page 25: CAN:  Controller Area  Network

Tipos de Mensajes II• Trama de Datos:

o Transmite información desde un nodo a cualquiera de los restantes, por Multicast.

o Es el tipo de mensaje más común, y cuenta con el Campo de Arbitraje, el Campo de Datos, el Campo CRC, y el Campo de ACK.

o El Campo de Arbitraje contiene un identificador de 11 bits (Standard CAN) y el bit RTR, que es dominante para tramas de datos. En la versión extendida, contiene el identificador de 29 bits y el bit RTR.

o A continuación se encuentra el Campo de Datos que contiene de 0 a 8 Bytes de datos, y el campo CRC que contiene la suma de comprobación (Checksum) de 16 bits que se utiliza para la detección de errores. El último es el campo de ACK.

Page 26: CAN:  Controller Area  Network

Tipos de Mensajes III

• Trama Remotao Permite que un nodo destino solicite datos a un

nodo fuente. o Es similar a la trama de datos, con dos diferencias

significativas: 1. El bit RTR se encuentra en estado Recesivo.2. El Campo de Datos está vacío.

Page 27: CAN:  Controller Area  Network

Trama de Mensajes IV• Trama de Error:

o Es un mensaje que no sigue las reglas de formato de un mensaje CAN.

o Se transmite cuando un nodo detecta un error en un mensaje, y hace que todos los demás nodos de la red también envíen una trama de éste tipo.

o Detectado un error, el transmisor original retransmite automáticamente el mensaje. Un elaborado sistema de contadores de error en el controlador CAN asegura que un nodo no pueda apropiarse del bus, transmitiendo repetidamente tramas de error.

o Se considera que un mensaje no posee errores, cuando el último bit del campo EOF de su trama, es recibido en estado Recesivo. En cambio, si dicho bit se encuentra en estado Dominante, se produce una retransmisión.

Page 28: CAN:  Controller Area  Network

Trama de Mensajes V

• Trama de Sobrecarga:o Su formato es similar al de la Trama de Error, y es

transmitida por un nodo que se congestionó, o que se encuentra demasiado ocupado.

o Se utiliza sobre todo para proporcionar un retardo extra entre los mensajes.

Page 29: CAN:  Controller Area  Network

Control de Errores I

• CAN incorpora 5 métodos de comprobación de errores: 3 a nivel de mensaje y 2 a nivel de bit.

• Si un mensaje dañado es detectado por cualquiera de estos métodos, éste es rechazado y se genera una Trama de Error desde el nodo receptor.

• Esto obliga a que el nodo emisor reenvíe el mensaje hasta que sea recibido correctamente.

• Si un nodo defectuoso ocupa el Bus por un período de tiempo prolongado, repitiendo continuamente un error, el controlador anula momentáneamente su capacidad de transmitir.

Page 30: CAN:  Controller Area  Network

Control de Errores II• A nivel de mensaje:

1. La comprobación de errores está dada por un CRC de 16 bits para la detección de errores con un Checksum (15 bits + Delimitador).

2. También contiene un campo ACK de 2 bits de largo (1 bit + Delimitador).

3. Otra forma de chequeo de errores busca en los campos del mensaje los bits que siempre deben ser Recesivos. Si se detecta un bit Dominante, se genera un error. Los bits controlados son: el SOF, el EOF, el Delimitador ACK, y los bits Delimitadores CRC.

Page 31: CAN:  Controller Area  Network

Control de Errores III

• Al nivel de bit:1. El transmisor detecta errores mediante el

monitoreo de las señales en el Bus. Cada bit transmitido se controla comparándolo con el bit recibido. Si un bit de datos se escribe en el Bus y su opuesto es leído, se genera un error.

2. El último método de detección de errores es con la regla de relleno de bits (bit-stuffing). Ésta es necesaria debido a que la codificación NRZ no provee flancos para la sincronización, si se transmite grandes cantidades de bits con la misma polaridad.

Page 32: CAN:  Controller Area  Network

Control de Errores IV• Bit Stuffing:

o Después de transmitidos 5 bits consecutivos del mismo nivel lógico, se introduce un bit de polaridad opuesta. Si esto no ocurre, se generaría un error.

o Permite que los flancos ascendentes sean utilizados para asegurar la sincronización de la red.

o Hace posible que un stream de bits no sea confundido con una Trama de Error, o con el espaciado entre tramas de 7 bits que indica el final de un mensaje.

o Posteriormente, los bits de relleno son eliminados por el controlador del nodo receptor antes que los datos sean enviados a la aplicación.

o Una vez detectado un error, todos los nodos CAN generan su propia trama de error.

o La Trama de Error es seguida por un delimitador de campo de 8 bits Recesivos y un período de inactividad en el bus antes que pueda retransmitir el mensaje dañado.

o Es importante tener en cuenta que el mensaje retransmitido todavía tiene que competir por arbitraje en el Bus.

Page 33: CAN:  Controller Area  Network

Control de Errores V• Bit Stuffing:

Page 34: CAN:  Controller Area  Network

Nuevo Estándar: CAN FD (Flexible Data-Rate)

• Se introduce a partir de la creciente demanda de ancho de banda en la comunicación CAN.

• CAN FD (2012) permite velocidades de datos de hasta 8 Mbps y tramas de datos de hasta 64 Bytes.

• CAN FD tiene el mismo protocolo para la capa física que CAN 2.0. Sin embargo, es diferente para la capa de datos.

• Permite cambiar a un bit rate más alto luego del arbitraje.• Se introdujeron nuevos polinomios CRC para proteger las

tramas de CAN FD (que son más largas) manteniendo la distancia de Hamming del protocolo CAN 2.0.

• Mantiene compatibilidad hacia atrás con CAN 2.0.

Page 35: CAN:  Controller Area  Network

Preguntas Orientadoras

• ¿Por qué utilizar el bus CAN?• ¿Qué mejora se introduce en el método de

acceso al medio en el protocolo CAN? ¿Cuál es su principal ventaja?

• ¿Qué es el bit stuffing? ¿Para qué se lo utiliza?• ¿Cuál es la diferencia entre Standard CAN y

Extended CAN?

Page 36: CAN:  Controller Area  Network

Bibliografía[1] Texas Instrument, «Application Report - SLOA101A,» Dallas, Texas, Agosto de 2002, Revisado Julio

de 2008.

[2] P. Bagschik, «An Introduction to CAN,» I+ME ACTIA, Braunchweig, Germany, Julio de 2000.

[3] Robert Bosch GmbH, «CAN Specification - Version 2.0,» Robert Bosch GmbH, Stuttgart, Germany, 1991.

[4] Robert Bosch GmbH, «CAN with Flexible Data-Rate - Version 1.0,» Bosch, Gerlingen, Germany, 17 de Abril de 2012.

[5] CIA, «CAN Physical Layer,» CIA, Erlangen, Germany.

[6] «Wikipedia,» 14 Junio 2014. [En línea]. Available: http://en.wikipedia.org/wiki/CAN_bus.

[7] A. R. Fuambuena, «Página Personal de ALBERTO RAMIS FUAMBUENA,» 14 Junio 2014. [En línea]. Available: http://personales.alumno.upv.es/alrafua/asignaturas/SES/Buses/CAN/can.html.

[8] D. Meganeboy, «Aficionados a la Mecánica,» 14 Junio 2014. [En línea]. Available: http://www.aficionadosalamecanica.net/canbus.htm.

[9] NI, «National Instruments,» 14 Junio 2014. [En línea]. Available: http://www.ni.com/white-paper/2732/es/#toc1.

[10] E. Evenchick, «Hack a Day,» 22 Octubre 2013. [En línea]. Available: http://hackaday.com/2013/10/22/can-hacking-the-in-vehicle-network/.

Page 37: CAN:  Controller Area  Network

¡Gracias por su atención!