Вы находитесь на странице: 1из 8

Decodificación de bus CAN y CAN FD

El bus CAN (Controller Area Network) es un estándar de datos en serie desarrollado


originalmente en la década de 1980 por Robert Bosch GmbH para su uso en
aplicaciones automotrices. Hoy también se usa ampliamente en el control de procesos
industriales y aplicaciones aeroespaciales.
Permite que los microcontroladores y dispositivos electrónicos se comuniquen entre sí
sin usar una computadora host y proporciona una transferencia de datos rápida y
confiable en ambientes eléctricamente ruidosos a bajo costo y con un cableado
mínimo.
CAN emplea señalización diferencial para proporcionar un alto nivel de inmunidad al
ruido eléctrico.
En 1991, Bosch publicó la especificación para CAN 2.0, que detalla dos formatos:

 CAN 2.0A es el formato estándar con un identificador de 11 bits.


 CAN 2.0B es el formato extendido con un identificador de 29 bits.

En 1993 ISO (Organización Internacional para la Estandarización) lanzó la norma CAN


ISO 11898, que luego se reestructuró en tres partes:

 ISO 11898-1 que cubre la capa de enlace de datos


 ISO 11898-2 que cubre la capa física CAN para CAN de alta velocidad (hasta 1
Mbit / s).
 ISO 11898-3 que cubre la capa física CAN para CAN de baja velocidad y
tolerante a fallas (hasta 125 kbit / s)

Posteriormente, Bosch lanzó CAN FD 1.0 o CAN con Flexible Data-rate, que se
incorporó a ISO 11898-1: 2015 . Esta especificación permite aumentar la longitud de
los datos y, opcionalmente, cambiar a una velocidad de bits más rápida una vez que se
decide el arbitraje. CAN FD es compatible con las redes CAN 2.0 existentes, por lo que
los nuevos dispositivos CAN FD pueden coexistir en la misma red con los dispositivos
CAN existentes.

Profesor: Jorge Antonio Guillén


Alambrado
Se pueden conectar muchos dispositivos al bus CAN, que van desde unidades de
control electrónico complejas hasta dispositivos de E / S simples. Cada dispositivo se
llama nodo.
Cada nodo CAN transmite diferencialmente en dos hilos: CAN High y CAN Low.

Señalización
CAN puede transmitir diferencialmente en dos líneas, CAN High y CAN Low. Hay dos
estados lógicos:

 Dominante - Lógica 0
 Recesivo - Lógica 1

Los niveles de voltaje varían según la especificación. Aquí vemos CAN de alta
velocidad.
Durante una transmisión recesiva (lógica 1), el bus no se activa activamente y
descansa a alrededor de 2,5 V.
Durante un dominante (lógica 0), CAN High se impulsa hacia 5 V (o Vcc) y CAN Low se
impulsa hacia 0 V.

Profesor: Jorge Antonio Guillén


Arbitraje
Los datos CAN se envían en marcos comenzando con un 0 dominante seguido de un
identificador, que forma la base del arbitraje (prioridad) donde dos o más nodos
intentan transmitir al mismo tiempo.
A cada nodo se le asigna un identificador que puede ser de 11 bits (CAN 2.0A) o 29
bits (CAN 2.0B) de longitud.
La tabla muestra tres nodos que intentan transmitir al mismo tiempo, comenzando
cada uno con ceros dominantes. Cuando un nodo transmite un 1 recesivo pero ve que
el bus permanece en el dominante 0, se da cuenta de que hay una contención y deja
de transmitir y espera la próxima oportunidad de transmitir.
De esta forma, el nodo con el ID de valor más bajo gana el arbitraje y tiene prioridad
para transmitir el resto del cuadro.

Marcos
CAN tiene cuatro tipos de cuadros:

 Marco de datos : un marco que contiene datos de nodo para la transmisión.


 Marco remoto : un marco que solicita la transmisión de un identificador
específico.
 Marco de error : una trama transmitida por cualquier nodo que detecta un
error.
 Marco de sobrecarga : un marco para inyectar un retraso entre los datos y /
o el marco remoto.

El bit RTR (solicitud de transmisión remota) determina entre marcos de datos (0) y
marcos remotos (1)
Una red CAN puede configurarse para trabajar con dos formatos de fotograma
diferentes: el formato de fotograma base (CAN 2.0A y CAN 2.0B) que admite
identificadores de 11 bits, y el formato de fotograma extendido (CAN2.0B solamente)
que admite 29 bits identificadores al permitir la adición de una extensión de
identificador de 18 bits.
Un bit de extensión de identificador (IDE) determina si se está utilizando la
extensión de ID de 18 bits.
La tabla muestra el formato para un Marco de datos CAN con formato base (11 bits)
sin relleno de bits
El código de longitud de datos indica la longitud de los datos en bytes; en este caso 1
byte.
CRC significa verificación de redundancia cíclica, que se utiliza para la detección de
errores.

Profesor: Jorge Antonio Guillén


Bit de ranura Ack: todos los nodos que reciben un marco sin encontrar ningún error
transmiten un 0 dominante, que anula un 1 recesivo enviado por el transmisor. Si el
transmisor detecta un recesivo 1, sabe que el cuadro no se recibió correctamente.
El final del cuadro se confirma mediante la transmisión de 7 recesivos 1s.

Relleno de bits
Para asegurar suficientes transiciones para mantener la sincronización, se inserta un
poco de polaridad opuesta después de cinco bits consecutivos de la misma
polaridad. El relleno de bits no ocurre durante el delimitador CRC, el campo ACK y el
final del cuadro.
En los campos en los que se utiliza el relleno de bits, seis bits consecutivos del mismo
tipo (000000 o 111111) se consideran un error y un nodo de error activo que consta
de seis bits dominantes consecutivos puede transmitirse por un nodo cuando se
detecta un error.

CAN FD
Bosch siguió el estándar CAN con CAN FD 1.0 o CAN con Flexible Data-Rate, que más
tarde pasó a formar parte del estándar ISO 11898-1: 2015 . Esta especificación
permite aumentar la longitud de los datos y, opcionalmente, cambiar a una velocidad
de bits más rápida una vez que se decide el arbitraje.
CAN FD satisface la creciente necesidad de transferir más datos, más rápidamente, en
sistemas automotrices (y de otro tipo) cada vez más complejos.
CAN FD es compatible con las redes CAN 2.0 existentes para que los nuevos
dispositivos CAN FD puedan coexistir en la misma red con dispositivos CAN clásicos.

Profesor: Jorge Antonio Guillén


Diferencias en el protocolo entre CAN y CAN FD
La tabla muestra la estructura de un cuadro CAN FD.
El arbitraje y el uso de formatos de cuadro Base y Extendido son idénticos tanto en
CAN clásico como CAN FD.
Como CAN FD no utiliza marcos remotos, el bit RTR utilizado en CAN es redundante y
se reemplaza por el bit de sustitución de solicitud remota (RRS), que siempre se
transmite de forma dominante (0).
El bit IDE se usa de la misma manera.
El bit de reserva en CAN ahora se convierte en el bit FDF (Formato de datos flexible) y
es un 0 dominante para indicar que el cuadro está en formato CAN clásico. Las tramas
enviadas en formato CAN FD se indican con un formato recesivo 1.
El siguiente es un bit de reserva para uso futuro.
Luego viene el bit BRS (Bit Rate Switch). Si BRS se envía dominante, la tasa de bits
sigue siendo la misma en todo el fotograma. Si BRS es recesivo, se transmitirá una
tasa de bits más alta después de este bit hasta e incluyendo el delimitador CRC.
El bit ESI (Indicador de estado de error) es una transmisión dominante para error
activo y transmisión recesiva para error pasivo.

Código de longitud de datos


El número de bytes en el campo de datos se indica mediante el código de longitud de
datos (DLC). Su codificación es diferente en CAN y en CAN FD. Los primeros nueve
códigos son los mismos, pero los códigos siguientes, que en CAN pueden especificar un
CAMPO DE DATOS de ocho bytes, especifique campos de datos más largos en CAN FD.

Profesor: Jorge Antonio Guillén


CAN campo FD CRC
Debido a las longitudes de datos más largas con CAN FD, se requieren más bits para la
verificación de CRC. Si el marco contiene 16 bytes o menos, se utiliza un CRC con 17
bits; y si el marco CAN tiene más de 16 bytes, se utiliza un CRC con 21 bits.
Después del campo CRC, la estructura Ack y el final de la estructura es la misma que
con la CAN clásica.

Depuración del bus CAN


Pueden ocurrir errores debido a inductores, bobinas y dispositivos de potencia que
pueden causar grandes picos de voltaje, ruido y zumbido. Se está agregando un
número cada vez mayor de computadoras y dispositivos incorporados a los buses CAN
de automóviles y, a medida que se agregan más nodos, el tiempo disponible para el
autobús se vuelve más ocupado. Cuando el tráfico alcanza aproximadamente el 40%
del tiempo del autobús, pueden comenzar a ocurrir errores. En este punto, puede ser
necesario un osciloscopio para depurar la red.
Para monitorear y encontrar fallas en un bus CAN, es importante tener un osciloscopio
con memoria profunda para capturar una ventana de tiempo grande con múltiples
marcos de datos. El instrumento puede procesar toda la forma de onda adquirida y
luego acercar para analizar los paquetes de datos.
Recomendamos que el instrumento tenga un ancho de banda de diez veces la
velocidad en baudios CAN, para analizar los tiempos de subida y cualquier condición de
falla.

Paso uno - sondeo


CAN es una señal diferencial, CAN Low es el inverso de CAN High. Ver la diferencia
entre los dos elimina cualquier interferencia de modo común encontrada por la señal
durante la transmisión.
Los mejores resultados se obtendrán adquiriendo la diferencia de señal entre CAN bajo
y CAN alto usando una sonda diferencial o un osciloscopio de entrada diferencial como
el PicoScope 4444.
La señal todavía se puede adquirir usando una sonda de extremo único conectada a
CAN Low o CAN high, pero se mostrará cualquier ruido de modo común y puede causar
errores en la decodificación en el osciloscopio que no afectaría al receptor CAN.

Profesor: Jorge Antonio Guillén


Paso dos: adquiere la señal de datos CAN
Establezca la longitud de la memoria en suficiente para adquirir tantos cuadros como
sea necesario y con la resolución requerida para resolver los bits individuales.
O utilice el índice de memoria de búfer para capturar ráfagas cortas de cuadros sin
tener en cuenta ningún tiempo muerto entre ellos.

Paso tres: configurar un decodificador


Seleccione Decodificación en serie en el menú Herramientas , haga clic en Crear ,
luego seleccione CAN

Profesor: Jorge Antonio Guillén


Seleccione Canal> Datos> A y Configuración, ya sea Baja o Alta si sondea una
sola terminación, o Alta si la prueba es diferente.
PicoScope calculará automáticamente el umbral óptimo, la histéresis y la velocidad en
baudios, pero estos valores se pueden personalizar si es necesario.
En el menú Pantalla , marque Gráfico o Tabla , o ambos, y luego seleccione el
formato requerido -Hex / Binario / Decimal / ASCII -y haga clic en Aceptar .

Si se selecciona Gráfico , aparecerá un trazo codificado por color en la visualización


del gráfico, correlacionado en el tiempo con los datos adquiridos.
Si se selecciona Tabla , todos los datos se presentarán en un formato de tabla. Hay
varias funciones útiles disponibles con la tabla:

 Haga doble clic en un marco en el formato de gráfico y el marco


correspondiente se resaltará en la tabla.
 Seleccione Exportar para guardar los datos de la tabla en formato .csv.
 Configure un archivo de enlace para que los datos en la tabla se puedan
mostrar como texto significativo.
 Filtre en la tabla para buscar cualquier campo para valores específicos, por
ejemplo, CRC inválidos.

Profesor: Jorge Antonio Guillén

Вам также может понравиться