html Relleno de bits y decodificación en el receptor de CAN clásico - FCTELE
                                   +8618758069661 [email protected]
Búsqueda de productos Guía: espacio = Y, | = O, ! = NO

Por qué CAN clásico inserta bits de relleno y cómo los eliminan los receptores

¿Tiene alguna pregunta? ¡Llámenos hoy!

+8618758069661

O déjenos un mensaje

Mensaje en línea

Por qué CAN clásico inserta bits de relleno y cómo los eliminan los receptores

Visualizaciones: 32 +32Original de FCTELEAutor: Equipo técnico de FCTELE

RELLENO DE BITS EN CAN CLÁSICO

Cómo separa el receptor los datos útiles de los bits de relleno

Dentro de la región sujeta a relleno, el transmisor inserta un bit de valor opuesto después de cinco bits iguales en el bus. El receptor comprueba y elimina ese bit antes de interpretar los campos. Primero localice el límite de la trama y luego compare la señal capturada en el bus con la trama decodificada.

01

Inserción

The transmitter inserts an opposite bit after five equal wire bits.0 0 0 0 0Stuff 1

El transmisor inserta un bit de valor opuesto después de cinco bits iguales en el bus.

02

Localización del límite

The receiver stops applying dynamic stuffing after the CRC sequence.SOF → CRC bitsFixed form

El receptor deja de aplicar la regla de relleno dinámico después de la secuencia CRC.

03

Medición en ambos extremos

Compare the same test frame on the two copper segments.ABCAN fiber link

Compare la misma trama de prueba en los dos segmentos de cobre.

01 Confirme el formato

Confirme que se trata de CAN clásico e identifique el tipo de trama y la velocidad nominal de bits.

02 Localice el campo

Compruebe si la secuencia de bits iguales está dentro de la región sujeta a relleno.

03 Alinee las observaciones

Correlacione las transiciones de la señal sin decodificar con la trama mostrada por el analizador y los errores del controlador.

Lista de comprobación de la captura — desplegar
Comprobación Qué confirmar Cómo verificarlo
Bits en el bus Secuencia de estados iguales Cuente desde el inicio de la región aplicable
Límite del campo Fin de la secuencia CRC Identifique el delimitador, ACK y EOF
Extensión por fibra Punto de observación Alinee las capturas de ambos segmentos de cobre

Después de escribir datos CAN en un controlador, es posible que en el osciloscopio aparezcan más bits de los que indica la suma de los campos lógicos de la trama. Esos bits adicionales se deben al relleno de bits. Dentro de la región aplicable de una trama CAN clásica, el transmisor inserta un bit de valor opuesto después de cinco bits consecutivos del mismo valor. El receptor identifica y elimina ese bit aplicando la misma regla y, a continuación, interpreta los campos originales. Este proceso ayuda a los receptores a corregir la temporización de los bits y explica por qué dos mensajes de la misma longitud pueden ocupar el bus durante tiempos distintos.

Una señal plana también transporta bits

En un bus CAN de alta velocidad sobre cobre, el transceptor convierte los bits del controlador en estados diferenciales entre CAN_H y CAN_L. Un bit dominante representa el valor lógico 0 y un bit recesivo representa el valor lógico 1. Cuando un nodo impone el estado dominante, este puede prevalecer sobre los estados recesivos enviados por otros nodos. Aunque el estado eléctrico permanezca constante, el controlador receptor sigue determinando el valor de cada bit en su punto de muestreo. Una meseta en estado dominante puede contener varios ceros, cada uno con una duración de un bit.

Cada nodo tiene su propio oscilador. La duración nominal del bit puede configurarse con el mismo valor en todos los nodos, aunque en la práctica persisten pequeñas desviaciones. El receptor sincroniza su temporización al inicio de la trama y utiliza los flancos que cumplen las condiciones de sincronización para corregir la fase dentro de la trama. Si transcurre mucho tiempo sin un flanco adecuado, aumenta el desfase entre el muestreo del receptor y los límites de bit del transmisor. El relleno crea transiciones en las secuencias largas de bits iguales y permite resincronizarse. El muestreo correcto también depende del retardo de propagación, de la configuración del punto de muestreo y de la calidad de la señal.

CAN_H y CAN_L divergen durante cinco bits dominantes de valor 0 y convergen en el bit recesivo de valor 1 insertado
Figura 1. La columna naranja representa el bit recesivo de valor 1 que se ha insertado. Las líneas permanecen en ese estado lógico durante el bit original de valor 1 que sigue. El receptor solo elimina el bit naranja. La forma de onda es un esquema original, no una medición. La ilustración del instrumento se realizó con ayuda de IA.

El transmisor cuenta los bits que ya ha enviado por el bus

Considere una secuencia simplificada dentro de la región de relleno dinámico, con el contador de bits consecutivos iguales inicialmente en cero. La secuencia lógica consta de cinco ceros seguidos de un uno. Después de enviar el quinto cero, el transmisor inserta un uno y luego envía el uno original. Por el bus se transmiten cinco ceros, un uno de relleno y el uno original. La inserción puede producirse dentro de un byte o justo al final de un campo. El controlador sigue un flujo continuo de bits y mantiene el recuento al pasar de un byte a otro.

El bit insertado forma parte de la secuencia transmitida e inicia una nueva serie de bits iguales. Suponga que en la secuencia original hay cuatro unos después de los cinco ceros. Esos cuatro unos y el uno insertado forman cinco unos consecutivos, por lo que el transmisor inserta a continuación un cero. La regla no se reduce a insertar un bit por cada cinco bits originales. Los campos contiguos y los bits insertados anteriormente influyen en el momento en que se produce la siguiente inserción.

Después de cinco bits idénticos, el receptor espera que el siguiente bit tenga el estado opuesto. Si al muestrearlo obtiene el valor esperado, lo reconoce como bit de relleno y actualiza el seguimiento de la secuencia recibida, pero excluye ese bit al interpretar los campos. El uno original que viene a continuación sí se conserva. Los dos unos pueden verse en el bus como una única meseta continua. El receptor distingue la función de cada uno por su posición y por la secuencia de bits iguales que lo precede.

Trama de datos CAN clásico: relleno dinámico de bits desde SOF hasta la secuencia CRC, incluida, seguido de campos de formato fijo
Figura 2. Los campos se muestran en orden de transmisión. El relleno dinámico de bits incluye la secuencia CRC. El delimitador CRC, ACK y EOF tienen un formato fijo. En EOF son válidos siete bits recesivos. Las anchuras de los campos no están a escala.

Dónde se deja de contar la secuencia de bits iguales

El relleno dinámico también se aplica a los campos pertinentes de una trama remota de CAN clásico. Su DLC puede indicar la longitud de datos solicitada, pero la trama no tiene campo de datos. Al revisar una captura manualmente, identifique el tipo de trama antes de localizar la secuencia CRC. Interpretar el DLC de la trama remota como el número de bytes de datos que vienen a continuación desplazaría todos los límites posteriores.

En una trama de datos de CAN clásico, el relleno dinámico comienza en el inicio de trama y se aplica a los campos de arbitraje, control y datos hasta el final de la secuencia CRC. El receptor lleva la cuenta de las longitudes de los campos mientras procesa esta región. Los bits de relleno aumentan el tiempo de ocupación del bus. El código de longitud de datos (DLC) conserva su significado original. La disposición lógica de los campos puede diferir de la segmentación temporal que se observa en el osciloscopio.

El delimitador CRC, el campo ACK y el fin de trama se rigen por sus propias reglas después de la secuencia CRC. El recuento anterior del relleno dinámico deja de aplicarse. Por ejemplo, el fin de una trama de CAN clásico contiene siete bits recesivos consecutivos. Por sí sola, esta secuencia no indica un error de relleno. Localice el límite de la trama y las posibles banderas de error antes de decidir en qué región se encuentra una meseta.

El transmisor calcula la secuencia CRC de CAN clásico a partir de los bits lógicos sin relleno, desde el inicio de la trama hasta el final del campo de datos. Durante la transmisión, incluye la secuencia CRC en la región sujeta a relleno. El receptor elimina los bits de relleno dinámico y realiza la comprobación CRC correspondiente. Por tanto, la sobrecarga de codificación y la comprobación de integridad del campo cumplen funciones distintas. CAN FD aplica reglas diferentes en su campo CRC. Verifique el formato de trama y la configuración del controlador según la especificación aplicable.

Una misma longitud de datos puede ocupar el bus durante tiempos distintos

Distinga el tiempo de transmisión de una trama del tiempo que espera un mensaje antes de transmitirse. El relleno afecta al tiempo que la propia trama ocupa el bus. El retardo de arbitraje depende de lo que estén enviando los demás nodos en ese momento. Para un mensaje periódico, registre por separado el intervalo entre bits de inicio de trama sucesivos y la duración entre el inicio y el fin de una sola trama. Las variaciones en estas dos mediciones apuntan a causas distintas.

Considere dos tramas de datos de CAN clásico transmitidas correctamente y con el mismo número de bytes de datos. Sus identificadores o patrones de datos pueden ser distintos. Una trama puede contener varias secuencias largas de bits iguales, mientras que en la otra pueden alternarse con frecuencia los ceros y los unos. La primera puede requerir más bits de relleno, y los valores concretos de la secuencia CRC también influyen en el recuento. A la misma velocidad nominal de bits, cada bit de relleno añade la duración de un bit. Para estimar la carga del bus, utilice la longitud observada en el bus o una estimación conservadora de dicha longitud.

Un analizador de protocolos suele mostrar el identificador, el DLC y los datos recuperados en su vista decodificada. Para comprobar la ocupación del bus, establezca dónde comienza y termina la medición. El tiempo de transmisión de una trama, la espera desde que se pone en cola hasta que gana el arbitraje y el tiempo dedicado a retransmitir después de un error son magnitudes distintas. Documentar esos límites permite distinguir el aumento de la longitud de la trama del retardo por contención.

Localice la región en la que aparece un error de relleno

Dentro de un campo sujeto a relleno dinámico, el receptor notifica un error de relleno si, al muestrear, detecta un sexto bit del mismo valor donde debería aparecer un bit de valor opuesto. Una meseta larga puede deberse a un comportamiento anómalo en el lado transmisor, a la configuración local del punto de muestreo, a la velocidad de bits o a una distorsión de la señal. Si un nodo en estado de error activo envía una bandera de error activa, los demás nodos pueden detectar después una secuencia larga de bits dominantes que infringe la regla. Por tanto, un error de relleno en un registro puede ser consecuencia de un error anterior.

Registre los tipos de error, el primer evento y cualquier forma de onda disponible. Un error de CRC indica una discrepancia entre el cálculo del receptor y la secuencia CRC recibida. Un error de forma afecta a un campo con un formato prescrito. Un error de ACK significa que el emisor no detectó la confirmación dominante esperada en la ranura ACK. Estos errores pueden sucederse durante un mismo incidente. Ordenar cronológicamente los eventos y comprobar el campo afectado ayuda a acotar la investigación.

Dos equipos CAN sobre fibra óptica conectados mediante un enlace óptico, con puntos de prueba A y B en los dos segmentos de cobre
Figura 3. Capture la misma trama de prueba en A y B y, a continuación, alinee las tramas y las marcas de tiempo de los errores. Las conexiones se muestran de forma esquemática. Consulte la documentación del modelo para comprobar los puertos ópticos y el cableado. La ilustración del dispositivo se realizó con ayuda de IA.

Al extender CAN por fibra, compruebe cada segmento de cobre y la función de cada dispositivo

La documentación de FCTELE para su módem CAN de fibra óptica de ocho canales para carril DIN indica que admite la repetición de CAN a fibra y el funcionamiento punto a punto. En una prueba técnica, enumere los segmentos CAN de cobre, la fibra y los dispositivos de los extremos como puntos de observación independientes. Verifique el formato de trama, la velocidad de bits, la terminación y el cableado con la documentación de los dispositivos utilizados. Después, utilice un mensaje conocido en un montaje de prueba aislado para comprobar la recepción en cada extremo. Las figuras indican los puntos de observación. Consulte la documentación del modelo correspondiente para determinar cómo transfiere las señales a través de la fibra.

Si la señal y las tramas decodificadas se mantienen estables en el segmento de cobre del lado transmisor, pero aparecen errores intermitentes cerca del receptor, compare el estado y las marcas de tiempo con los del otro extremo. Compruebe si el fallo está asociado a un cable, a un dispositivo de extremo o a una carga concreta. Registre el período del mensaje y las demás condiciones para poder reproducirlas, y cambie una sola variable cada vez. El registro final debe indicar si los campos se recuperaron correctamente, si los errores volvieron a producirse y si el tráfico real de la aplicación se restableció tras cambiar el trayecto. Así se distingue la sobrecarga normal del relleno de los fallos reales de transmisión.

Fuentes y alcance

Bosch: Detección de errores en CAN y CAN FD · Microchip: Relleno de bits y formato de trama en CAN · Unidad CAN de fibra óptica de ocho canales para carril DIN de FCTEL (en chino)

Traducido del artículo técnico en chino: Leer el artículo original en chino.

Preguntas frecuentes

¿Por qué se inserta un bit después de cinco bits iguales?

El bit de valor opuesto crea una transición en el bus. Los flancos que cumplen las condiciones de sincronización pueden utilizarse para ajustar la temporización de los bits y limitar así la duración de una secuencia sin transiciones.

¿Los siete bits recesivos de EOF provocan un error de relleno?

El EOF de CAN clásico tiene un formato fijo. Sus siete bits recesivos quedan fuera de la región sujeta al relleno dinámico de bits.

¿Cómo puedo rastrear un error de relleno a través de un enlace de fibra?

Capture la misma trama de prueba en ambos segmentos de cobre, verifique la velocidad de bits, el muestreo y la terminación, alinee las marcas de tiempo de los errores del controlador y compruebe cómo reenvían el tráfico las unidades de fibra.

Lecturas adicionales

Extensión de un bus CAN mediante fibra óptica · Interfaces eléctricas y arbitraje en CAN

Compartir este artículo