- Muchas notas - Fran Acién

20210418 - SCON - Buses II - CAN

Se inventa en los años 80 en la industria del automovil.

Objetivos de diseño:

  • Disminuir cableado.
  • Fiabilidad
  • Seguridad

Es un estructura de RED basada en un bus serie, optimizada para tasas binarias “bajas/medias” con fiabilidad, robustez y seguridad.

Dos versiones:

  • Standard ISO11519.
    • Baja tasa binaria (125kbps).
    • Bus hasta 1000m en cable UTP (Unshielded Twisted Pair)
  • Standard ISO11898.
    • Alta tasa binaria (1Mbps).
    • Bus hasta 40m en cable UTP/STP

Perteneciente a la capa 1 y 2 de OSI (Fisico y enlace de datos).

Características:

  • Protocolo MAC:CSMA/CD (Carrier-sense multiple Access with Collision Detection)
  • CD no destructivo
  • Multimaster (En cada transacción hay un único Master, que es el que gana el arbitrio)
  • Mensajes priorizados. El nodo que emite el mensaje de mayor prioridad será el Master de la transacción
  • Recepción “multicast” (todos o ninguno)
  • Consistencia de los datos en el sistema
  • Detección y señalización del error
  • Retransmisión automática de mensajes corruptos
  • Diferencia entre errores temporales y fallos de nodo
  • Los nodos con fallos se desconectan del bus (“liberan” ancho de banda)
  • Tiempos de latencia garantizados
  • Flexibilidad (Se pueden añadir/quitar nodos con la alimentación ON; ‘hot plugin’)
  • Resincronización de reloj

La especificación del CAN usa los términos “dominante” y “recesivo” para referirse a los bits, donde un bit dominante equivale al valor lógico 0 y un bit recesivo equivale al valor lógico 1. El estado inactivo del bus es el estado recesivo (valor lógico 1). En estado recesivo, los dos cables del bus se encuentran al mismo nivel de tensión (common-mode voltage), mientras que en estado dominante hay una diferencia de tensión entre CAN_H y CAN_L de al menos 1,5 V. La transmisión de señales en forma de tensión diferencial, en comparación con la transmisión en forma de tensiones absolutas, proporciona protección frente a interferencias electromagnéticas.

ce9c0acb75a93e73ae74ac66f8808fd0.png

Tramas

Existen cuatro tipos de trama:

  • Trama de Datos:
    • SOF (Start of Frame), 1 bit dominante.
    • Identificador (11-29 bits) Arbitrio
    • Control (6 bits) – DLC (6 bits/4 bits longitud)
    • Datos (<8 bytes)
    • CRC (15 bits)
    • ACK (2 bits)
    • EOF (8 bits recesivos)
  • Trama de Petición de Transmisión Remota (RTR)
  • Trama de Sobrecarga (overload)
  • Trama de Error

Relleno: No puede haber más de 5 bits seguido iguales en los campos posteriores al identificador

Identificador

En la trama estándar es de 11 bits (Spec. <2.0a). Para la extendida es de 29 bits (Spec. >2.0b)

Se usa para el arbitrio y no se detectan errores en él. Se envía el MSB primero y no pueden ser recesitos los 7 bits más significativos.

Al final del campo hay 1 bit (RTR) que indican el tipo de trama:

  • En trama de datos el bit de RTR es dominante.
  • En trama RTR (Remote Transmission Request) el bit de RTR es recesivo.

c2c13f6293fbf78d6cc3a26e4238f1e9.png

Arbitrario en Identificador

Protocolo C SM A/MD : el campo de id y RT R se emplean para el arbitrio del bus.

  • Monitoriza el bus antes y durante el envío
  • CD bit a bit: se envía bit recesivo(1) y detecta bit dominante(0) => deja de transmitir.
  • Arbitrio bit a bit no destructivo (Wired AND) en Identificador
  • Prioridad: Mensaje de menor identificador tiene mayor prioridad.

Control

Indica la longitud en bytes del campo de datos.

  • r = recesivo
  • d = dominante
  • No se permite cualquier combinación de valores.

c1b3630f544a2112c1f0165194a86507.png

Trama RTR

  • Similar a la trama de Datos
  • No hay campo de DATOS
  • RT R es recesivo
  • DLC puede valer de 0 a 8

b4df8a7b51b60ff9d62076c62938e4f9.png

Trama Overload

  • Emitidas ( máx 2) para indicar que se necesitará más tiempo para procesar el mensaje anterior.
  • La trama se obtiene por la superposición de Flags de Overload
  • Se transmiten sin respetar la espera intertramas para forzar la detección de sobrecarga.
  • 6 bits dominantes (campo + flags) + 8 bits recesivos (delimitador de trama)

da70e5d43dbf457267d02faa7a124440.png

232f6f70ef1eaffce908e67e42c435c8.png

Trama de Error

  • Se señaliza el error violando la regla de relleno (se emiten más de 5 bits iguales seguidos (dominantes en caso de que el nodo esté en modo ‘Error-Activo’, o recesivos en caso de que el nodo esté en modo ‘Error-Pasivo’.
  • La trama se obtiene por la superposición de Flags de Error de los nodos de la red
  • Comportamiento ante el error: Puede haber nodos Error-Activos, Error-Pasivos o Nodos Off.

Los nodos mantienen dos contadores TEC (Transmit Error Counter) y REC (Receive Error Counter)

  1. Nodos Error-Activos(TEC < 127 y REC < 127). Detecta error y emite 6 bits dominantes seguidos (viola la regla de relleno)
  2. Nodos Error-Pasivos(127 < TEC < 255 y 127 < REC < 255). Detecta error y emite 6 bits recesivos seguidos (viola la regla de relleno) que no tienen efecto sobre lo que poenen en el bus el resto de nodos.
  3. Nodos Off(TEC > 255). Se desconecta del bus (libera disponibilidad para el resto). Hay que seguir un procedimiento para reconectarlo.

Error de bit: 774cfd26ca60f19f0b6a631fc774924f.png

Trama error: a3553bc36d6b5f63cdc0a8ee09f1c06f.png

Error de relleno: 0f2619100e8ff08bf555e114b74df0e3.png

Error de CRC: b56613b1afe8e320b328b108c59e7160.png

Error de trama

Se genera el error al detectar anomalías en la trama

4515941d20516e7935850ee9c5868d0b.png

Temporización

La duración de ’bit’ normal es 1/tasa binaria. El tiempo nominal está compuesto por cuatro segmentos:

  • Sincronización (flanco)
  • Propagación
  • Buffer fase 1
  • Buffer fase 2

Los dos últimos se subdividen en hasta 8 subpartes programables para ajustar la fase.

a6541e7269bcd7c1546a19e8dbf83352.png

Hardware

Algunas implementaciones comerciales son:

  • MCP2515

Transceptores

Adaptan la señal NRZ que sale de la controladora a una señal Diferencial en el bus.

  • MAX3051de Maxim
  • MC33989 de Freescale (Motorola)
  • PC A82C250 de NXP (Phillips)
  • SGS5637 de SGS
  • etc