Controller Area Network (CAN) Gerardo Luis Stola FIUBA [email protected].

23
Controller Area Network (CAN) Gerardo Luis Stola FIUBA [email protected]

Transcript of Controller Area Network (CAN) Gerardo Luis Stola FIUBA [email protected].

Page 1: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Controller Area Network (CAN)

Gerardo Luis StolaFIUBA

[email protected]

Page 2: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

• Creado a mediados de 1980, con el objetivo de brindar conexión y disminuir los costos de cableado entre dispositivos dentro de automóviles. Se difundió posteriormente a otras áreas, por ejemplo control de

plantas industriales, aplicaciones domésticas, control de ascensores, control de sistemas de navegación, etcétera.

• Estándar ISO.• Amplia disponibilidad de dispositivos comerciales.

Más de 800 vendors, según CAN-Cia(http://www.can-cia.org/)

• Alta difusión en la CEE (Alemania), Japón y EEUU• -http://www.can.bosch.com• http://www.can-cia.org

Page 3: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

• Hasta 1 Mbps.• Topología de bus • Protocolo multimaestro• No direcciona nodos. Identifica mensajes• Control de acceso al medio por prioridad de mensajes (CSMA/AMP)

Otra denominación (CSMA/CR)

Diferencia con Ethernet (CSMA/CD)

• Muy baja probabilidad de no detectar errores. ~ probabilidad(error) x 10 -11

• Escalabilidad no limitada por número de nodos.

Page 4: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Necesidad de interconexión dentro del automóvil

Page 5: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Implementación por CAN.

Page 6: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

El modelo CAN y el modelo OSI

Presentación

Sesión

Aplicación

Transporte

Red

Enlace

Física

Especificación CAN

CAN Phy (ISO 11898)ISO 11898

CAL

•CANopen

•PCAL

Device

NetSDS

Documentos

de CiA

CAN

King

dom

Page 7: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Arbitración

“1”= bit recesivo (R)

“0”=bit dominante (D)

Lógicamente, el bus actúa como una compuerta AND cableada

Si al menos un nodo de la red fija un estado D, fuerza a que todo el bus esté en D

Todos los nodos en R, implica bus en R

Page 8: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Arbitración

Monitoreo permanente del nivel de la red.

“1”= bit recesivo (R)

“0”=bit dominante (D)

Page 9: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Arbitración

http://www.can-cia.org

Page 10: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

DATOS: Se utiliza para enviar datos de un nodo a otro(s). Es el tipo de trama que más frecuentemente circula en una red.

REMOTA: Se utiliza para solicitar una trama de datos con el ID especificado. Esta trama no contiene datos.

ERROR: Si un nodo detecta un error en la red, envía una trama de error e invalida la trama en cuestión en todos los nodos. La trama debería ser retransmitida.

SOBRECARGA: La utilizan los nodos para pedir tiempo adicional antes del comienzo de la próxima trama. Un máximo de dos tramas de sobrecarga pueden ser generadas por un nodo.

INTERTRAMA: Es el espacio entre una trama de datos o remota y la precedente. Este espacio es provisto para permitir a los nodos realizar procesamientos internos antes del comienzo de la próxima trama.

Tipos de Tramas

Page 11: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

recesivo

dominante

1 11/29 1 0 ... 646 15 1 1 1 7 3

Identifi_cador deobjeto

Campo deArbitraje

Inicio de trama

Campode control

Campo de datos

RTR

SegmentoCRC

Campo de CRC

Delimitadores

Campo de fin

de trama

Ranurade ACK

Espacio inter-trama

Tamaño mínimo de la trama de datos: 44 bitsTamaño máximo de la trama de datos: 111 bits Throughput= 58% del bitrate

Trama de datos

Page 12: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Versiones de CAN

Especificaciones

CAN 1.22048 (211) identificadoresformato de tramas estándar

CAN 2.0más de 500 millones (229) de identificadoresformato de tramas extendido

Page 13: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

CRC: No coinciden el código de redundancia cíclica (CRC) calculado por el transmisor y el calculado por el receptor. El nodo receptor descarta la trama y

transmite una trama de error. Sólo realizado por nodo receptor.

ACK: Error de reconocimiento, detectado por el transmisor. El transmisor no detecta el reconocimiento en el campo ”SLOT ACK”, indicando que ningún nodo

recibió la trama correctamente. Se produce un error de reconocimiento (ACK) se retransmite la trama, pero NO se genera una trama de error.

FORMA: Se produce si se detecta un bit dominante en los siguientes campos:

•Delimitador de CRC.

•Delimitador de ACK.

•Fin de trama.

Se transmite una trama de error.

Tipos de Errores

Page 14: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

BIT: El bit transmitido es diferente del bit monitoreado. No se realiza en los campos de arbitraje si el bit transmitido es recesivo ni tampoco en el slot de reconocimiento. Se transmite una trama de error y se retransmite la trama. Sólo realizado por nodo transmisor.

STUFFING: Se detectan 6 bit consecutivos de igual polaridad entre el comienzo de trama

y el delimitador de CRC. Se envía una trama de error.

=> “Globalización del error”

Tipos de Errores

Page 15: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Confinamiento de Errores

Durante las comunicaciones CAN, los nodos actualizan sus contadores de errores de transmisión y recepción mediante normas complejas establecidas en la norma CAN. Los contadores

se incrementan por detección de errores o se decrementan por transmisiones o recepciones exitosas.

Page 16: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Confinamiento de Errores

ERROR ACTIVO: Es el estado normal de un nodo. El nodo puede recibir y transmitir mensajes incluyendo tramas de error activas (pueden “destruir” mensajes detectados con algún error.)

ERROR PASIVO: Alguno de los contadores pasa el valor de 127. Las tramas de error emitidas son pasivas (bits recesivos),

no pudiendo destruir mensajes detectados con algún error.

BUS APAGADO: El contador de error de transmisión llega a 256, todas las actividades CAN del nodo se detienen y se libera el bus (estado recesivo). La única forma de sacar al nodo de este estado es por reset del controlador CAN.

Page 17: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Capa física - ISO 11898-2

A 1Mbit/s Ld<0.3 m

Page 18: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

• Condición recesiva :

CAN_H < CAN_L + 0.5V

• Condición dominante:

CAN_H >CAN_L + 0.9V

Page 19: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Nodo ISO 11898-2

• La tensión diferencial en un nodo está dada por la corriente en la resistencia diferencial

Page 20: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Relación Velocidad-longitud bus

• Dist máx 1 km

• Permite usar bridges o repeaters.

• Distancia máxima definida por: demora de los nodos y del bus diferencias entre el bit time

quantum debidas a la diferencia entre los osciladores de los nodos

Caída de señal por resistencia de cable y nodos

Page 21: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Velocidades recomendadasCiA DS -102

• Todo módulo debe soportar 20 kbits/s

• Para más de 200m se recomienda el uso de optoacopladores

• Para longitud de más de 1 km se requiere bridge o repeater

Page 22: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Discusión abierta al auditorio:

Comparación con otros protocolos- Modbus?- Requisitos de hardware- Costo por nodo- Campos de uso….

Page 23: Controller Area Network (CAN) Gerardo Luis Stola FIUBA gstola@fi.uba.ar.

Gracias!