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

Preview:

Citation preview

Controller Area Network (CAN)

Gerardo Luis StolaFIUBA

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

• 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.

Necesidad de interconexión dentro del automóvil

Implementación por CAN.

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

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

Arbitración

Monitoreo permanente del nivel de la red.

“1”= bit recesivo (R)

“0”=bit dominante (D)

Arbitración

http://www.can-cia.org

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

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

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

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

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

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.

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.

Capa física - ISO 11898-2

A 1Mbit/s Ld<0.3 m

• Condición recesiva :

CAN_H < CAN_L + 0.5V

• Condición dominante:

CAN_H >CAN_L + 0.9V

Nodo ISO 11898-2

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

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

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

Discusión abierta al auditorio:

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

Gracias!