Universidad Argentina John F. Kennedy

Escuela de Licenciatura en Sistemas

Departamento de Tecnología Informática

Informática Industrial - Curso 2002

Turno: Jueves Noche

Profesor: Diego Romero

Proyecto: "Red Can"
 
 
 
 
 

Integrantes y sus funciones en el Proyecto:

Tabla de Contenidos

A. Introducción *

B. Reseña Historica *

C. Conceptos Básicos *

C.1 Mensajes *

C.1.1. Ruteo de Información *

C.1.2. Seguridad *

D. Transferencia de Mensajes *

D.1 Tipos de Trama *

D.1.1. Trama de Datos *

D.1.2. Tramas Remotas *

D.1.3. Trama de Error *

D.1.3.1. Indicador de Error *

D.1.3.2. Delimitador de Error *

D.1.4. Trama Overload *

D.1.4.1. Indicador de Sobrecarga *

D.1.4.2. Delimitador de sobrecarga: *

D.1.5. Espacio entre tramas: *

D.2 Definición de Transmisor / Receptor. *

D.2.1. Transmisor: *

D.2.2. Receptor: *

D.2.3. Validación del mensaje: *

D.2.3.1. Transmisor: *

D.2.3.2. Receptor: *

E. Codificación: *

F. Manejo de errores: *

F.1 Error de bit: *

F.2 Error de llenado: *

F.3 Error de CRC: *

F.4 Error de Formato: *

F.5 Error de reconocimiento: *

F.6 Señalización de error: *

G. Limitación de fallas: *

H. Requerimientos de temporizacion de bits H-*

H.1 Promedio de bit nominal H-*

H.2 Tiempo de bit nominal H-*

H.2.1. Segmento de sincronización H-*

H.2.2. Segmento de propagación H-*

H.2.3. Segmentos de fase 1 y 2 H-*

H.3 Punto de muestra H-*

H.4 Tiempo de procesamiento de la información H-*

H.5 Sincronización H-*

H.5.1. Sincronización pesada H-*

H.5.2. Ancho del Salto de Resincronizacion H-*

H.5.3. Error de Fase en un borde H-*

H.6 Resincronizacion H-*

I. Aplicaciones e Implementaciones I-*

I.1 Principales aplicaciones industriales de CAN I-*

I.2 Implementaciones de CAN I-*

J. Conclusiones J-*

K. Referencias de Paginas consultadas K-*
 
 


ABSTRACT









travez del siguiente proyecto nos propusimos informar a estudiantes de la carrera de sistemas, o afines, acerca de los distintos beneficios y características provistas por el protocolo de Area de Controlador, CAN, que surgió para ser usado en la industria automotriz y se extendió luego a muchas otras áreas, dentro de las cuales se encuentra el área de control.

Intentaremos en el mismo dejar claro los distintos aspectos a tener cuenta en el caso que su elección sea el protocolo CAN, y así poder aprovechar al máximo los beneficios que este nos brinda.

El proyecto esta basado principalmente en información sustraída de BOSH, creador de dicho protocolo.
 
 

Presentación del Proyecto

 

INTRODUCCION


  1. Introducción
CAN, Controller Area Network
 

El desarrollo de los microcontroladores en las últimas dos décadas y su aplicación a multitud de dispositivos industriales obligó a implementar comunicaciones digitales entre ellos y sus sistemas de control, independientemente de los fabricantes, para aprovechar las ventajas que supone montar una estructura de red. Internacionalmente se denomina genéricamente "buses de campo" o FIELDBUS a un enlace digital de este tipo.

Una característica adicional que define los "Fieldbuses" es la transferencia de bloques complejos de datos entre dispositivos, frente a otros sistemas cuya unidad de intercambio se basa en el byte o el BIT, orientados a gestionar dispositivos simples.

En la práctica, hay muchos intentos de estandarizar universalmente el concepto de Fieldbus, y muchas más soluciones industriales, más o menos acordes con cada uno de los estándares.

Entre ellos cabe mencionar los siguientes:

Y finalmente el que trataremos a lo largo de este proyecto:
 

Una de sus características principales es que cada mensaje no contiene una dirección de destino ni de partida, por el contrario, todos los nodos son receptores, pero un identificador en la cabecera del mensaje indica a un nodo si es relevante para él o no. La diferencia entre dirección e identificador parece un tanto arbitraria, pero se aclara si consideramos que el identificador es utilizado también como arbitrador de acceso.

Utiliza para ello dos mecanismos, la arbitración de prioridad a nivel de BIT y la detección de colisión por acceso múltiple (CSMA/CD) . En el bus se define un estado dominante (estado lógico 0) y otro recesivo (e. lógico 1) y un estado dominante fuerza el estado del bus sobre uno recesivo.

De esta forma si dos dispositivos comienzan a transmitir simultáneamente un mensaje, aquel que antes tenga un estado dominante en su identificador, es decir un número mas bajo, forzará su mensaje a nivel de BIT frente al otro dispositivo, que al estar también recibiendo interpreta un error y elude la transmisión.

A diferencia de otros procedimientos, de esta forma no hay destrucción de paquetes ni demoras por esperas de turno, lo cual aumenta su eficiencia limitando la velocidad exclusivamente a la capacidad del bus. A estos dos mecanismos hay que añadir la codificación NRZ (Sin retorno cero o Non Return to Zero) asegurando mensajes compactos con alta inmunidad al ruido.

Bajo el punto de vista físico, el bus esta formado por un par trenzado, mallado ó no, y los circuitos de interface con él deben garantizar el funcionamiento incluso si existe un corto en alguno de ellos con el potencial de tierra o de alimentación o en el caso de que exista una discontinuidad en uno de los hilos.

Para cumplir la norma ISO, los dispositivos deben ser capaces de trabajar a 1 Mbit/s. Para distancias de hasta 40 mts para luego descender linealmente hasta 125 Kbits/s. en distancias de hasta 500 mts. El número máximo de nodos esta limitado en la práctica por los drivers de los buses, pero suele ser normal un tope de 32, 64 y hasta 100 nodos. En cuanto a Formato de Mensajes llegados a este punto hay que referir la existencia de dos versiones del protocolo CAN, la estándar (2.0A) y la extendida (2.0B), ligada ésta última a la necesidad de mayores prestaciones.
La diferencia esencial estriba en que la versión estándar utiliza identificadores de 11 bits, mientras que la extendida utiliza identificadores de 11 y 29 bits.

Implementaciones

Los dispositivos CAN -normalmente puede identificarse el término con un circuito integrado-, están generalmente formados por dos bloques, uno de ellos es el controlador del protocolo propiamente dicho y el segundo es una memoria bufer separado en dos segmentos, uno de control y otro de datos a los que accede normalmente un microcontrolador. En el segmento de control el microcontrolador escribe comandos y lee registros de estado y en el de datos obtiene el contenido del mensaje. El tipo de buffer empleado da lugar a dos implementaciones diferentes.

En la primera, el Basic CAN, el dispositivo suele tener un buffer doble de recepción y uno de transmisión así como registros de máscara que permiten filtrar identificadores en el rango de los 8 bits más significativos, tras lo cual se interrumpe al microcontrolador asociado, que debe dejar otras tareas para gestionar la llegada de cada mensaje.

En la segunda, los dispositivos Full CAN, tienen capacidad para gestionar varios objetos CAN y otras funciones adicionales como por ejemplo filtrado de mensajes, liberando la carga sobre el microcontrolador. Los objetos CAN están compuestos por un identificador, la longitud de los datos y los datos en sí; los circuitos que soportan FullCAN intercambian la información con el microcontrolador a través de una RAM. Existe una tercera solución, los SLIO, son circuitos simples que no requieren la intervención de un microcontrolador, pero deben ser administrados por un bus-master. Su evolución es efímera y no parece muy larga su existencia.

La intención de esta especificación es lograr compatibilidad entre cualquiera de las dos implementaciones de CAN. La compatibilidad, sin embargo, tiene diferentes aspectos como por ejemplo características eléctricas y la interpretación de datos a ser transferidos. Para lograr transparencia en el diseño y flexibilidad en la implementación CAN se divide en diferentes capas:

El objetivo de la capa Objeto y capa de Transferencia es el siguiente: El alcance de esta especificación es definir la capa de transferencia y las consecuencias del protocolo CAN en las capas que lo rodean.
RESEÑA HISTORICA
  1. Reseña Histórica

  2.  

     
     
     
     
     
     
     

    Finalizando el año 1989 la industria automotriz tenía tres problemas:

    El primero era la demanda de mayor comodidad en los automóviles particulares tales como ventanillas accionadas eléctricamente, asientos con calefacción, control eficaz de la temperatura de la cabina, ajuste de asientos y de espejos, equipos de audio y de video, sistema de posicionamiento global controlado por satélite (GPS), etc.

    El segundo era la seguridad en el vehículo, sistemas de inmovilización, cierre centralizado de puertas, sistemas antibloqueo de frenos (ABS), protección contra accidentes (AIR BAG), control de velocidad,etc.

    El tercer problema era el relacionado con el consumo, el rendimiento, y por sobre todo la contaminación.

    Los tres problemas eran encarados por medio de control electrónico, al principio con una única unidad electrónica de control (ECU), y luego con el agregado de otras. Entonces surge la necesidad de establecer una adecuada comunicación entre las distintas unidades electrónicas de control de dichos procesos.

    Una proyección a futuro estimaba que para el año 2005 los automóviles podían contar con 100 microcontroladores especializados. (un microcontrolador es un circuito integrado que contiene un microprocesador, memoria RAM, memoria EPROM, y sistemas de entrada y salida, una computadora en un solo chip).

    El cableado necesario para establecer la comunicación entre estos microcontroladores era muy extenso, y además requería distintos tipos de cable.

    En una computadora del tipo PC (o de cualquier otro tipo) este problema también existe, con la diferencia que las distancias están limitadas al tamaño de la placa madre (Mother Board) y a la utilización de circuitos impresos con finísimas tiras de cobre y en varias capas, pero en estas placas hay comunicación entre todas sus partes por medio de una implementación conocida con el nombre de BUS. En la historia de la PC se han conocido los BUS ISA, EISA, PCI, etc. ( BUS significa camino, y se refiere al camino por

    donde van los datos, por ejemplo desde los sensores a la ECU, o de la ECU a los actuadores.)

    La industria del automóvil busca una solución similar a la empleada en la industria de las computadoras adaptado al uso en vehículos para disminuir el problema del cableado. Se trata de lograr una :

    Transferencia de datos a baja velocidad y a alta velocidad dentro de un rango desde 5 Kbits/seg hasta 1 Mbit/seg.(Un bit es la cantidad mínima de información que puede existir, se la asocia a un número cero o a un número uno, en electrónica un nivel uno puede ser de 5 volt, y un nivel cero representa 0 volt en lógica positiva, Kbits significa 1000 bits, y Mbit/seg es un millón de bits transmitidos por segundo) Transferencia de datos (sin errores) hasta una distancia de seguridad superior a 5 metros.

    La transferencia de datos se debe realizar en paquetes de un tamaño comprendido entre 1 y 8 bytes.( un byte es un conjunto de 8 bits) El costo, el mantenimiento y fácil montaje son de suma importancia.

    Lamentablemente los distintos fabricantes de automóviles desarrollaron sus propios BUS y cada sistema fué incompatible con los otros. En los primeros años de la década del 90 surgieron los BUS CAN, VAN, J1850SCP y J1850DLC, posteriormente abandonados en favor del CAN que hoy se perfila como líder mundial en BUS para automóviles.. CAN significa Controller Area Network (Red de Area Controlada) Actualmente es usado por Mercedes, Jaguar, Lexus, Chrysler, Fiat y Wolkswagen.
     
     

    BUS CAN

    Un BUS es mucho más que un camino, de cables o realizado por medio de tiras de cobre en una plaqueta,

    Un BUS requiere un PROTOCOLO, de la misma manera que la relación entre los seres humanos establece reglas de conducta siendo las más simples el saludo, el pedir permiso, etc, la transmisión de datos se realiza respetando ciertas reglas (Protocolo). Cuando la Organización de Estandarización Internacional ( ISO) desarrolló un estándar para los BUS utilizados en los automóviles el BUS CAN fue el favorito. Las

    normas ISO establecen en primer lugar:

    ISO 11529-2 CAN de BAJA VELOCIDAD iniciado por la firma BOSH en 1980 y continuada por INTEL para lograr un protocolo contenido en un Circuito Integrado, establece una velocidad de transferencia de datos entre 5 y 125 Kbits/seg.

    ISO 11898 CAN de ALTA VELOCIDAD con velocidad de transferencia de datos hasta 1 Mbits/seg.

    En segundo lugar se especifica, cuando una parte del sistema (llamada Estación) envía datos, la forma:

    1- Cómo se legaliza el acceso al BUS de datos (establecido en 7 metros de longitud) .

    2- Cómo se debe componer el mensaje (direcciones, datos, control y protección contra errores).

    3- Cómo está estructurado el protocolo de transferencia de datos.

    En tercer lugar se define cómo debe ser la interface entre el BUS CAN y los equipos de control tales

    como los Scanner (Exploradores) que se utilizan en la industria.
     
     


    DESARROLLO

    CONCEPTOS BASICOS


  3. Conceptos Básicos
CAN tiene las siguientes propiedades: de nodos defectuosos.

La estructura de un nodo CAN se representa de la siguiente manera:

La capa física define como las señales son transmitidas.

La capa de transferencia representa el Kernel del protocolo CAN. Presenta los mensajes recibidos a la capa Objeto y acepta los mensajes a ser transmitidos desde la capa Objeto. La capa de transferencia es responsable de la temporizacion y sincronización de bit, empaquetado de mensajes, arbitraje, acknowledgment, señalización y detección de errores, y limitación de fallas.

La capa Objeto está relacionada con el filtrado de mensajes y manejo de mensajes.

El alcance de esta definición es definir la capa de transferencia y las consecuencias del protocolo CAN sobre las capas adyacentes.
 
 

    1. Mensajes

    2.  

       
       
       
       
       
       
       

      La Información en el Bus se envía en mensajes de formato fijo de diferentes longitudes limitadas. Cuando el bus está libre cualquier unidad conectada puede comenzar a transmitir un nuevo mensaje.

      1. Ruteo de Información
En un sistema CAN un nodo CAN no hacen uso de ninguna información acerca de la configuración del sistema( Ej: Direcciones de estaciones). Este tiene las siguientes consecuencias:
      1. Seguridad
Para lograr seguridad en transferencia de datos en cada nodo CAN se implementa detección, señalización y auto chequeo de errores.
TRANSFERENCIA DE MENSAJES
  1. Transferencia de Mensajes

  2.  

     
     
     
     
     
     
     
     
     

    1. Tipos de Trama
Hay dos formatos de tramas que difieren en la longitud del campo IDENTIFICADOR.

Formato Standard: 11 bits

Formato Extendido: 29 bits

La transferencia de mensajes se manifiesta y controla por cuatro tipos diferentes de tramas:

      1. Trama de Datos
Una trama de datos está compuesta de siete campos de bits diferentes:

Ilustración -1

Comienzo de trama

Indica el comienzo de Tramas de datos y tramas remotas. Consiste en un simple bit ‘dominante’.

Una estación solo está autorizada a comenzar una transmisión cuando el bus está desocupado. Todas las estaciones tienen que sincronizarse al borde marcado por el Inicio de Trama de la estación que primero inicio la transmisión.

Campo de arbitraje

Consiste en un identificador y un RTR-Bit

El formato del campo de arbitraje es diferente para los formatos de trama Standard y Extendidos.

*En el formato standard el campo de arbitraje consiste en 11 bits Identificadores y el RTR-BIT. Los bits Identificadores se denotan ID-28....ID-18.

*En el formato extendido el campo de arbitraje consiste en 29 bits Identificadores, el SRR-BIT, el IDE-BIT y el RTR-BIT. Los bits Identificadores se denotan ID-28....ID-0

Para distinguir entre el formato standard y el extendido, el bit r1 reservado en la versión previa de especificación de CAN 1.0; en la 1.2. ahora es denotado como IDE BIT.

Identificador

Formato Standard

La longitud del IDENTIFICADOR es de 11 bits y corresponde al ID BASE en Formato Extendido. Esos bits son transmitidos en el orden de ID-28 al ID-18. El bit menos significativo es ID-18. Los 7 bits más significativos (ID-28 – ID 22) deben no ser todos recesivos.

Formato Extendido

En contraste con el formato Standard el Formato Extendido consiste en 29 bits. El formato comprende dos secciones:

ID BASE con 11 bits y

ID Extendida con 18 bits

ID BASE

Consiste en 11 bits. Es transmitido en el orden de ID-28 al ID-18. Es equivalente al formato del identificador Standard. El ID BASE define la base de prioridad de la trama Extendida.

ID Extendida

Consiste en 18 bits. Es transmitido en el orden de ID-17 al ID-0.

En una trama Standard el Identificador es seguido por un bit RTR.

BIT RTR (tanto para formato Standard como para Formato Extendido)

Remote Transmisión Request BIT (o bit de requerimiento de transmisión remota)

En una Trama de Datos el BIT RTR tiene que ser "dominante". En una Trama Remota el BIT RTR tiene que ser "recesivo".

En una Trama extendida el ID BASE es transmitido primero, seguido por el bit IDE y el bit SRR. El ID Extendido es transmitido después del bit SRR.

BIT SRR (Formato Extendido)

Sustitute Remote Request BIT ( o respuesta remota sustituta)

El SRR es un bit recesivo. Es transmitido en Tramas Extendidas en la posición del bit RTR de las Tramas Standard y entonces sustituye el bit RTR en la Trama Standard.

Sin embargo, las colisiones de una Trama Estándar y una Trama extendida, el ID BASE de la cual es la misma que el Identificador de la Trama Standard, son resueltas de modo que la Trama Standard prevalece a la Trama Extendida.

BIT IDE (Formato Extendido)

Identifier Extension Bit ( Bit de identificación de extensión)

El bit IDE pertenece a

-El Campo de Arbitraje para el Formato Extendido

-El Campo de Control para el Formato Standard

El bit IDE en el Formato Standard es Transmitido "dominante", mientras que en el Formato Extendido es transmitido como "recesivo".

Campo de Control

El Campo de Control consiste en 6 bits. El formato del campo de control es diferente para El Formato Standard y para el Formato Extendido. Las Tramas en el Formato Standard incluyen el Código de Longitud de Datos, el bit IDE, el cual es transmitido "dominante", y el bit reservado r0. Las tramas en el Formato Extendido incluyen el Código de Longitud de Datos y dos bits reservados r1 y r0. Los bits reservados tiene que ser enviados "dominantes", pero los receptores aceptan bits "dominante" y "recesivo" en todas las combinaciones.

Campo de Datos

El campo de datos consta de los datos a ser transmitidos con la Trama de Datos. Puede contener de 0 a 8 bytes.

Campo CRC

Contiene la secuencia CRC seguido por el delimitador CRC.

Campo ACK

Son dos bits y contiene el Slot ACK y el delimitador ACK.

Fin de Trama

Cada trama de datos y trama remota se delimita por un indicador que consiste en siete bits "recesivos".
 
 

      1. Tramas Remotas
Una estación actuando como receptora para ciertos datos puede iniciar la transmisión de los datos respectivos desde su nodo fuente enviando una Trama Remota.

Una Trama Remota existe en ambos formatos, Standard y Extendido. En ambos casos esta compuesto por seis campos de bits diferentes:

Inicio de Trama, Campo de Arbitraje, Campo de Control, Campo CRC, Campo ACK, Fin de Trama.

Contrariamente a la Trama de Datos, el bit RTR de la Trama Remota es recesivo. No hay campo de Datos, independiente de los valores del Código de Longitud de Datos a los que se asigna algún valor en el rango admisible de 0 a 8. Dicho valor del Código de Longitud de Datos es la longitud correspondiente a la Trama de Datos.

La polaridad del bit RTR indica si una trama transmitida es una Trama de Datos (bit RTR dominante) o una Trama Remota( bit RTR recesivo).

Una trama remota se compone de seis campos de bits:

En la Trama Remota no hay campo de datos, independientemente de que haya código de longitud de datos; el cual corresponde a la trama de datos respectiva.

Ilustración -1

      1. Trama de Error
La trama de error consiste en dos campos diferentes:

Ilustración -1

        1. Indicador de Error
Puede ser: Una estación en error activo detectando una condición de error la indica transmitiendo un Indicador de Error Activo. Las formas de los Indicadores de Error violan la ley del bit de relleno aplicada a todos los campos desde Inicio de Trama hasta delimitador CRC o destruye el formato fijo de los campos ACK o Fin de Trama. En consecuencia, todas las demás estaciones detectan una condición de error y en su parte empiezan la transmisión de un Indicador de Error. Entonces la secuencia de bits dominantes que realmente pueden ser monitoreados en los resultados del bus desde una superposición de diferentes Indicadores de Error transmitidos por estaciones individuales. El largo total de esta secuencia varia entre un mínimo de seis y un máximo de doce bits.

Una estación en error pasivo detectando una condición de error trata de indicarlo transmitiendo un Indicador de Error Pasivo. La estación en error pasivo espera por seis bits consecutivos de igual polaridad, comenzando al inicio del Indicador de Error Pasivo. El Indicador de Error Pasivo se completa cuando estos seis bits iguales han sido detectados.
 
 

        1. Delimitador de Error
Consiste en ocho bits recesivos.

Después de la transmisión de un Indicador de Error cada estación envía bits recesivos y monitorea el bus hasta que detecta un bit recesivo. Después comienza a transmitir seis bits recesivos más.
 
 

      1. Trama Overload
Consiste en dos campos:

Ilustración -1







Hay tres clases de condiciones de Overload:

  1. La condición interna del receptor, el cual requiere un retardo de la próxima Trama de Datos o Trama Remota.
  2. Detección de un bit dominante en el primer o segundo bit de INTERMISIÓN.
  3. Si un nodo Can prueba un bit dominante en el octavo bit (el ultimo bit) de un Delimitador de Error o un Delimitador de Sobrecarga, comenzara la transmisión de un cuadro de Sobrecarga (no una Trama de Error). El contador de Error no será incrementado.
El comienzo de una Trama de Sobrecarga debido a la condición 1 de sobrecarga esta solamente autorizada a ser empezada en el primer tiempo de bit de la INTERMISIÓN esperada, mientras que la Trama de Sobrecarga por la condición 2 y condición 3 empiezan un bit después de detectado el bit dominante.
 
 

A lo sumo dos Tramas de Sobrecarga pueden ser generadas por el generador para retardar la próxima Trama de Datos o Remota.
 
 

        1. Indicador de Sobrecarga

        2.  

           
           
           
           
           
           
           

          Consiste en seis bits dominantes. El formato completo corresponde a aquel Indicador de Error Activo.

          El formato del Indicador de Sobrecarga destruye el formato fijo del campo de Intervalo. En consecuencia, todas las demás estaciones también detectan una condición de sobrecarga y sus partes comienzan a transmitir un Indicador de Sobrecarga. En ese caso hay un bit dominante detectado durante el 3er bit de la Intervalo entonces es bit será interpretado como un bit de Inicio de Trama.

          Nota: Los controladores basados en las especificaciones CAN versión 1.0 y 1.1 tienen otra interpretación del 3er bit del Intervalo: Si un bit dominante fue detectado localmente en algún nodo, los otros nodos no interpretaran correctamente el indicador de Sobrecarga, pero interpretaran al primero de estos seis bits dominantes como Inicio de Trama, el sexto bit dominante viola las reglas de llenado de bits causando una condición de error.
           
           

        3. Delimitador de sobrecarga:
Consiste en ocho bits recesivos

El Delimitador de Sobrecarga tiene el mismo formato que el Delimitador de Error. Después de la transmisión de un Indicador de Sobrecarga la estación monitorea el bus hasta que detecta una transición de bit dominante a recesivo. En ese momento cada estación del bus ha terminado de enviar su Indicador de Sobrecarga y todas las estaciones comienzan la transmisión de seis bits recesivos mas en coincidencia.
 
 

      1. Espacio entre tramas:
La tramas de datos y las tramas remotas se encuentran separadas de las tramas precedentes cualesquiera sea el tipo de las mismas, por un bit de campo denominado espacio entre tramas. En contraste las tramas de sobrecarga múltiple no están separadas por un espacio entre trama y las tramas de sobrecarga múltiple no están separadas por un espacio entre tramas.

El espacio entre tramas contiene los campos de intermisión y bus libre, y para las estaciones de " error pasivo" que han sido transmisiones del mensaje previo suspende la transmisión.

Intervalo:

Consiste en 3 bits recesivos durante la intermisión no esta permitido que ninguna estación comience la transmisión de una trama de datos o de una trama remota. La única acción que se debe tomar es señalar una condición de sobrecarga.

Bus Libre:

El período de bus libre puede ser de una longitud arbitraria, el bus se identifica como libre y cualquier estación que tenga algo para transmitir puede acceder al bus. Un mensaje que este pendiente de transmisión durante la transmisión de otro mensaje comienza en el primer bit siguiente de intermisión.

Cuando se detecta un bit dominante en un bus el mismo se interpreta como comienzo de trama.

Transmisión suspendida:

Luego que una estación en estado de "error pasivo" transmite un mensaje, envía 8 bits recesivos luego del Intervalo, antes de comenzar a transmitir el futuro mensaje haber reconocido el bus libre. Mientras comienza una transmisión (causada por otra estación) la estación se transformara en la receptora de este mensaje.
 
 

    1. Definición de Transmisor / Receptor.

    2.  

       
       
       
       
       
       
       
       
       

      1. Transmisor:

      2.  

         
         
         
         
         
         
         

        A la unidad que genera un mensaje se la denomina Transmisor de dicho mensaje. La unidad permanece transmisora hasta que el bus esta libre o la unidad pierde el arbitraje.
         
         

      3. Receptor:

      4.  

         
         
         
         
         
         
         

        Una unidad se denomina receptor de un mensaje sino esta transmitiendo un mensaje y el bus no esta libre.
         
         

      5. Validación del mensaje:

      6.  

         
         
         
         
         
         
         

        El momento en el cual se toma un mensaje como valido no es el mismo para el transmisor y el receptor del mensaje.
         
         

        1. Transmisor:

        2.  

           
           
           
           
           
           
           

          El mensaje es valido para el transmisor sino hay error hasta el final del final de la trama. Si un mensaje es corrompido se producirá automáticamente la retransmisión del mismo de acuerdo a la prioridad. Para poder competir por el acceso al bus con otras mensajes la retransmisión tiene que comenzar tan pronto como el bus este libre.
           
           

        3. Receptor:
El mensaje es valido para el receptor sino hay error hasta el ultimo bit de final de trama.

CODIFICACION


  1. Codificación:

  2.  

     
     
     
     
     
     
     

    Los segmentos de trama, comienzo de tramas, campo de arbitraje, campo de control, campo de datos, y secuencia CRC son codificados a través del método de stuffing. Cada vez que un transmisor detecta 5 bits consecutivos de igual valor en el paquete de bits que será transmitido, este inserta automáticamente un bit complementario en el paquete de bits que realmente se está transmitiendo. Los bits de campos de la trama de datos o de la trama remota ( delimitador, CRC, ACK, y fin de trama) son de forma fija y no son codificados a través del método de stuffing de bits.

    El paquete de bits en un mensaje está codificado de acuerdo al método de no retorno a cero, esto significa que durante el total de tiempo de bit el nivel de bit ya era dominante o recesivo.

    MANEJO DE ERRORES


  3. Manejo de errores:

  4.  

     
     
     
     
     
     
     

    Detección de errores

    Hay 5 tipos diferentes de errores ( que nos son mutuamente excluyentes) :
     
     

    1. Error de bit:

    2.  

       
       
       
       
       
       
       

      Una unidad que esta enviando un bit en el bus también monitorea el bus. El error de bit debe ser detectado en ese tiempo de bit, cuando el valor del bit que está siendo monitoreado es diferente de valor de bit que esta siendo enviado. Una excepción es el envió de un bit " recesivo" durante el llenado de la cadena del campo de arbitraje o durante el espacio de ACK. Entonces no ocurre ningún error de bit cuando un bit dominante es monitoreado. Un transmisor enviando un indicador de error pasivo y detectando un bit dominante no interpreta esto como un error de bit .
       
       

    3. Error de llenado:

    4.  

       
       
       
       
       
       
       

      Debe ser detectado al tiempo de bit del sexto nivel de bit igual consecutivo en un campo de menaje que debe ser codificado por el método de llenado de bit.
       
       

    5. Error de CRC:

    6.  

       
       
       
       
       
       
       

      La secuencia CRC consiste en el resultado del calculo del CRC por el transmisor . Los receptores calculan el CRC de la misma manera que el transmisor. El error de CRC debe ser detectado , si el resultado del calculo no es el mismo que el recibido en la secuencia CRC.
       
       

    7. Error de Formato:

    8.  

       
       
       
       
       
       
       

      Un error de formato debe ser detectado cuando un campo contiene uno o más bits ilegales.
       
       

    9. Error de reconocimiento:

    10.  

       
       
       
       
       
       
       

      Debe ser detectado por el transmisor cuando este no monitorea un bit dominante durante el espacio de ACK.
       
       

    11. Señalización de error:
    Una estación que detecta una condición de error la indica transmitiendo una señal de error. Para un nodo de "Error activo" esto es un indicador activo de error, para un nodo de "Error pasivo" será un indicador pasivo de error. Cuando ocurra que un error de bit, un error de relleno un error de forma o un error de reconocimiento es detectado por alguna estación, comienza la transmisión de un indicador de error en la respectiva estación en el próximo bit.

    Cuando un error CRC es detectado, la transmisión del indicador de error comienza en el bit siguiente al delimitador de ACK, a menos que un indicador de error de otra condición haya comenzado antes.

    LIMITACION DE FALLAS

  5. Limitación de fallas:
Con respecto al limite de fallas una unidad puede estar en uno de estos tres estados. Una unidad en "error activo" puede tomar parte normalmente en la comunicación del bus y enviar un indicador de error activo cuando un error ha sido detectado.

Una unidad en "error pasivo" no debe enviar un indicador de error activo. La unidad toma parte en la comunicación del bus pero cuando un error ha sido detectado solo un indicador pasivo de error es enviado. También después de la transmisión, una unidad en error pasivo deberá esperar antes de iniciar una nueva transmisión.

Una unidad en bus apagado no esta autorizada a tener influencia en el bus.

Para el limite de fallas dos contadores son implementadas en cada unidad del bus.

  1. Contador de error de transmisión
  2. Contador de error de recepción
Estos contadores son modificadas de acuerdo a las siguientes reglas:
  1. Cuando un receptor detecta un error el contador de error de recepción se incrementa en uno excepto cuando el error detectado sea un error de bit durante el envió de un indicador activo de error o un indicador de sobrecarga.
  2. Cuando un receptor detecta un bit dominante como el primer bit después de enviar una señal de error, el contador de error de recepción deberá incrementarse en ocho
  3. Cuando un transmisor envía un indicador de error, el contador de error de transmisión se incrementa en ocho.

  4.  

     
     
     
     
     
     
     

    Excepción 1:

    Si el transmisor esta en error pasivo y detecta un error de reconocimiento a causa de no detectar un ACK dominante y no detecta un bit dominante durante el envió de su indicador de error pasivo.

    Excepción 2:

    Si el transmisor envía un indicador de error a causa de un error de relleno ocurrido durante un arbitraje por donde el bit de relleno estaba ubicado antes del bit de RTR y pudo haber sido recesivo y ha sido enviado como recesivo pero monitoreado como dominante.

    En las excepciones 1 y 2 la cuenta de error de transmisión no cambia

  5. Si un transmisor detecta un error de bit mientras envía un indicador de error activo o un indicador de sobrecarga la contador de error de transmisión se incremente en ocho.
  6. Si un receptor detecta un error de bit mientras esta enviando un indicador de error activo o un indicador de sobrecarga el contador de error de recepción se incrementa en 8.
  7. Cualquier nodo tolera hasta 7 bits dominantes consecutivos después de haber enviado u indicador de error activo, indicador de error pasivo o un indicador de sobrecarga. Luego de haber detectado el 14º bit dominante consecutivo (en caso de un indicador de error activo o de un indicador de sobrecarga) o después de haber detectado el 8º bit dominante consecutivo siguiente a un indicador de error pasivo, y después de cada secuencia de 8 bits dominantes consecutivos adicionales cada transmisor incrementa su contador de error de transmisión y cada receptor incrementa su contador de error de recepción en 8.

  8.  

     
     
     
     
     
     
     
     
     

  9. Después de la transmisión exitosa de un mensaje (obteniendo el ACK y ningún error hasta que el Fin de Trama haya terminado) el contador de error de transmisión es decrementado en 1 a menos que ya sea 0.
  10. Después de la transmisión exitosa de un mensaje (recepción sin error hasta el hueco de ACK y el envio exitoso del bit de ACK), el contador de error de recepción es decrementado en 1, si estaba entre los valores 1 y 127. Si el contador de error de recepción estuviera en 0, se queda en 0, y si fuera mayor a 127, será establecido entre los valores 119 a 127.
  11. Un nodo esta en ‘error pasivo’ cuando el contador de error de transmisión iguala o excede 128, o cuando el contador de error de recepción iguala o excede 128. Una condición de error permitiendo a un nodo convertirse a ‘error pasivo’ causa que el nodo envíe un Indicador de error activo.
  12. Un nodo esta en ‘bus desconectado’ cuando el contador de error de transmisión es mayor o igual a 256.
  13. Un nodo en ‘error pasivo’ se convierte en `error activo’ nuevamente cuando ambos, contador de error de transmisión y contador de error de recepción son inferiores o iguales a 127.
  14. Un nodo en ‘error pasivo’ se convierte en ‘error activo’ cuando sus contadores de error son establecidos a 0 después de 128 ocurrencias de 11 bits recesivos consecutivos monitoreados en el bus.
Nota:

Un valor de contador de error mayor de 96 indica disturbios pesados en el bus.

REQUERIMIENTOS DE TEMPORIZACION DE BITS
  1. Requerimientos de temporizacion de bits
    1. Promedio de bit nominal

    2.  

       
       
       
       
       
       
       

      El promedio de bit nominal es el numero de bits por segundo transmitidos en la ausencia de resincronizacion por un transmisor ideal.
       
       

    3. Tiempo de bit nominal
Tiempo de bit Nominal = 1/Promedio de bit Nominal

El tiempo de bit nominal puede ser pensado como siendo separados en segmentos de tiempo no solapados:

      1. Segmento de sincronización

      2.  

         
         
         
         
         
         
         

        Esta parte del tiempo de bit es usado para sincronizar la variedad de nodos del bus.
         
         

      3. Segmento de propagación

      4.  

         
         
         
         
         
         
         

        Esta parte del tiempo de bit es usado para compensar los retardos físicos de tiempo dentro de la red.

        Es dos veces la suma del tiempo de propagación de la señal en la línea del bus, el retardo comparativo de entrada, y el retardo de salida del driver.
         
         

      5. Segmentos de fase 1 y 2
Estos segmentos de Fase de buffer son usados para compensar los limites o borde de error de fase. Estos segmentos pueden ser alargados o acortados por la resincronizacion.
 
 
    1. Punto de muestra

    2.  

       
       
       
       
       
       
       

      El punto de muestra es en punto en el tiempo en el cual el nivel del bus es leído e interpretado como el valor de aquel bit respectivo. Se ubica es al final del segmento 1 de Fase de buffer.
       
       

    3. Tiempo de procesamiento de la información

    4.  

       
       
       
       
       
       
       

      El tiempo de procesamiento de la información es el segmento de tiempo iniciando con el punto de muestra reservado para calcular el nivel de bit subsiguiente.

      El quantum de tiempo es una unidad fija de tiempo que deriva del periodo del oscilador. Allí existe un programa pre-escalar, con valores integrales, y rangos que van al menos desde el 1 al 32. Comenzando con el quantum de tiempo mínimo, el quantum de tiempo puede tener una longitud de:

      QUATUM DE TIEMPO = m * QUATUM DE TIEMPO MINIMO

      Siendo m el valor del pre-escalar.

      SYNC_SEG es 1 "TIME QUATUM" de largo

      PROP_SEG es programable para ser 1, 2, …..8, "TIME QUANTA" de largo

      PHASE_SEG1 es programable para ser 1, 2, … ..8 "TIME QUANTA" de largo

      PHASE_SEG2 es el máximo de PHASE_SEG1 y la información "PROCESSING TIME"

      La "INFORMATION PROCESSING TIME" es menor o igual a 2 "TIME QUANTA" de largo

      El numero total de numero de "QUANTA" de tiempo en un bit de tiempo programable es al menos de 8 a 25.
       
       

    5. Sincronización

    6.  

       
       
       
       
       
       
       
       
       

      1. Sincronización pesada

      2.  

         
         
         
         
         
         
         

        Después de una sincronización pesada el tiempo de bit interno es reseteado con el segmento de sincronización (SYNC_SEG). Esta sincronización pesada fuerza los limites que han sido causados por la sincronización pesada a permanecer en el segmento de sincronización del tiempo de bit reiniciado.
         
         

      3. Ancho del Salto de Resincronizacion

      4.  

         
         
         
         
         
         
         

        Como resultado de la resincronizacion el segmento 1 puede ser alargado o el segmento 2 puede ser acortado. La cantidad de alargado o acortado de los segmentos de fase de buffer tiene una limitación superior dada por el ancho del salto de resincronizacion. El ancho del salto de resincronizacion puede ser programado entre 1 y 4 minutos.

        La información de clock debe ser derivada de transistores de un valor de bit a otro.

        La propiedad que solo un numero máximo fijo de bits sucesivos tengan los mismos valores provee la posibilidad de resincronizar una unidad de bus al flujo de bits durante una trama.

        El largo máximo entre dos transistores que pueden ser usados para resincronizacion es 29 tiempos de bit.

      5. Error de Fase en un borde
El error de fase en un borde esta dado por la posición relativa del borde al segmento de sincronización, medido en quantum de tiempo. La señal de error de fase se define como sigue:
    1. Resincronizacion
El efecto de la resincronizacion es el mismo que en el caso de la sincronización pesada, cuando la magnitud del error de fase en un borde el cual causa la resincronizacion es menor o igual al valor programado de salto ancho de resincronizacion. Cuando la magnitud del error de fase es mas largo que el salto ancho de resincronizacion: Reglas de Sincronización Sincronización pesada y resincronizacion son dos formas de sincronización. Ellas obedecen a las siguientes reglas:
  1. Solo una sincronización en un tiempo de bit es permitida.
  2. Un borde puede ser usado para sincronización solo si el valor detectado en el punto de muestra previo (valor del bus leído previamente) difiere del valor del bus inmediato anterior al borde.
  3. La sincronización pesada es ejecutada cuando haya un borde recesivo a dominante durante el ‘bus libre’.
  4. Todos los demás bordes recesivos a dominantes (y opcionalmente bordes dominantes a recesivos en caso de tasas bajas de bits) cumplimentando las reglas 1 y 2 podrán ser usadas por la resincronizacion con la excepción que un nodo transmitiendo un bit dominante que no cumpla una resincronizacion como resultado de un borde recesivo a dominante con un error de fase positivo, si solamente los bordes recesivos a dominantes son usados para resincronizacion.
APLICACIONES E IMPLEMENTACIONES
  1. Aplicaciones e Implementaciones
    1. Principales aplicaciones industriales de CAN
El campo de aplicación de CAN ha trascendido el ámbito de la industria de automoción

para la cual fue originalmente concebido, pasando a ser habitual en aplicaciones como:

    1. Implementaciones de CAN
Existen dos implementaciones hardware básicas, aunque la comunicación en ambas es idéntica y son compatibles entre sí. Esto permite administrar el uso del bus en función de las necesidades de cada nodo.
CONCLUSIONES

 
 
  1. Conclusiones
CAN es un standard de comunicaciones especialmente apto para aplicaciones de control de sistemas en tiempo real, que por sus múltiples ventajas ha trascendido el sector de automoción para el cual fue originalmente desarrollado, extendiéndose su uso a muchas otras aplicaciones.

Algunas de las principales ventajas de CAN son:

En cuanto a los inconvenientes:
REFERENCIAS


  1. Referencias de Paginas consultadas
www.cd.systems.com

www.intrepidcs.com

www.can.bosch.com

www.casadomo.com