html Bourrage de bits et décodage à la réception en CAN classique - FCTELE
                                   +8618758069661 [email protected]
Recherche de produits Guide : espace = ET, | = OU, ! = NON

Pourquoi le CAN classique insère des bits de bourrage et comment les récepteurs les retirent

Des questions ? Appelez-nous dès aujourd’hui !

+8618758069661

Ou laissez-nous un message

Message en ligne

Pourquoi le CAN classique insère des bits de bourrage et comment les récepteurs les retirent

Vues : 32 +32Texte original de FCTELEAuteur : équipe technique de FCTELE

BOURRAGE DE BITS EN CAN CLASSIQUE

Comment le récepteur distingue les données utiles des bits de bourrage

Dans la zone soumise au bourrage, l’émetteur insère un bit de valeur opposée après cinq bits de même valeur sur le bus. Le récepteur vérifie et retire ce bit avant d’interpréter les champs. Repérez d’abord la limite de la trame, puis comparez le signal capturé sur le bus à la trame décodée.

01

Insérer un bit

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

L’émetteur insère un bit de valeur opposée après cinq bits de même valeur sur le bus.

02

Repérer la limite

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

Le récepteur cesse d’appliquer la règle de bourrage dynamique après la séquence CRC.

03

Mesurer aux deux extrémités

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

Comparez la même trame de test sur les deux segments cuivre.

01 Confirmer le format

Vérifiez qu’il s’agit de CAN classique et identifiez le type de trame et le débit binaire nominal.

02 Repérer le champ

Vérifiez si la suite de bits se situe dans la zone soumise au bourrage.

03 Mettre en correspondance les observations

Mettez en correspondance les transitions du signal brut avec la trame affichée par l’analyseur et les erreurs signalées par le contrôleur.

Liste de contrôle de la capture — développer
Vérification Points à confirmer Méthode de vérification
Bits sur le bus Suite de bits de même état Compter à partir du début de la zone concernée
Limite du champ Fin de la séquence CRC Identifier le délimiteur, le champ ACK et l’EOF
Extension par fibre optique Point d’observation Aligner les captures des deux segments cuivre

Après avoir écrit des données CAN dans un contrôleur, vous pouvez observer à l’oscilloscope davantage de bits que ne le laisse prévoir le nombre total de bits des champs logiques de la trame. Ces bits supplémentaires proviennent du bourrage. Dans la zone concernée d’une trame CAN classique, l’émetteur insère un bit de valeur opposée après cinq bits consécutifs de même valeur. Le récepteur repère et retire ce bit en appliquant la même règle, puis interprète les champs d’origine. Ce mécanisme aide les récepteurs à recaler leur timing binaire et explique pourquoi des messages de même longueur peuvent occuper le bus pendant des durées différentes.

Un signal stable transporte quand même des bits

Sur un bus CAN haut débit sur cuivre, l’émetteur-récepteur convertit les bits du contrôleur en états différentiels entre CAN_H et CAN_L. Un bit dominant représente la valeur logique 0 et un bit récessif représente la valeur logique 1. Lorsqu’un nœud impose l’état dominant, celui-ci peut l’emporter sur les états récessifs émis par les autres nœuds. Même si l’état électrique reste constant, le contrôleur récepteur détermine la valeur du bit à son point d’échantillonnage pendant chaque temps de bit. Un plateau à l’état dominant peut contenir plusieurs zéros, chacun occupant un temps de bit.

Chaque nœud possède son propre oscillateur. Le temps de bit nominal peut être réglé à la même valeur, mais de petits écarts subsistent en pratique. Le récepteur se synchronise au début de la trame et utilise les fronts qui remplissent les conditions de synchronisation pour corriger sa phase en cours de trame. En l’absence prolongée d’un front approprié, le décalage entre l’échantillonnage du récepteur et les limites des bits émis augmente. Le bourrage crée des transitions au sein des longues suites de bits identiques et offre ainsi des occasions de resynchronisation. La justesse de l’échantillonnage dépend aussi du délai de propagation, du réglage du point d’échantillonnage et de la qualité du signal.

Les signaux CAN_H et CAN_L s’écartent pendant les cinq bits dominants de valeur 0 et se rapprochent au bit récessif de valeur 1 inséré
Figure 1. La colonne orange représente le bit récessif de valeur 1 inséré. Les lignes restent dans cet état logique pour le bit d’origine de valeur 1 qui suit. Le récepteur retire uniquement le bit orange. Ce chronogramme schématique original ne provient pas d’une mesure. L’illustration de l’instrument a été réalisée avec l’aide de l’IA.

L’émetteur compte les bits déjà transmis sur le bus

Prenons une séquence simplifiée dans la zone de bourrage dynamique, avec un compteur de bits consécutifs initialisé à zéro. La séquence logique comporte cinq zéros suivis d’un bit à 1. Après avoir envoyé le cinquième zéro, l’émetteur insère un bit à 1, puis envoie le bit à 1 d’origine. Le bus transporte cinq zéros, un bit de bourrage à 1 et le bit à 1 d’origine. L’insertion peut se produire à l’intérieur d’un octet ou juste après la fin d’un champ. Le contrôleur suit un flux de bits continu et poursuit le comptage d’un octet à l’autre.

Le bit inséré fait lui-même partie de la séquence transmise et amorce une nouvelle suite. Supposons que la séquence d’origine comporte quatre bits à 1 après les cinq zéros. Ces quatre bits et le bit inséré forment cinq bits à 1 consécutifs ; l’émetteur insère donc ensuite un zéro. La règle ne se résume pas à une insertion tous les cinq bits d’origine. Les champs adjacents et les bits insérés précédemment influent sur le moment de la prochaine insertion.

Après cinq bits identiques, le récepteur s’attend à ce que le bit suivant soit de l’état opposé. S’il échantillonne la valeur attendue, il reconnaît le bit de bourrage et met à jour le suivi de la suite reçue, sans inclure ce bit dans l’analyse des champs. Le bit à 1 d’origine qui suit est conservé. Les deux bits à 1 peuvent apparaître comme un seul plateau continu sur le bus. Le récepteur distingue leur rôle d’après leur position et les bits précédents de la suite.

Trame de données CAN classique : bourrage dynamique de bits du champ SOF jusqu’à la séquence CRC incluse, puis champs à format fixe
Figure 2. Les champs sont présentés dans l’ordre de transmission. Le bourrage dynamique de bits s’applique également à la séquence CRC. Le délimiteur CRC, le champ ACK et le champ EOF ont un format fixe. Sept bits récessifs sont valides dans le champ EOF. Les largeurs des champs ne sont pas à l’échelle.

Où s’arrête le comptage des bits consécutifs

Le bourrage dynamique s’applique aussi aux champs concernés d’une trame de requête CAN classique. Son DLC peut indiquer la longueur des données demandées, mais la trame ne contient pas de champ de données. Lorsque vous vérifiez manuellement une capture, identifiez le type de trame avant de repérer la séquence CRC. Si vous interprétez le DLC de la trame de requête comme le nombre d’octets de données qui suivent, vous décalez toutes les limites de champs suivantes.

Dans une trame de données CAN classique, le bourrage dynamique commence au début de la trame et s’applique aux champs d’arbitrage, de commande et de données, jusqu’à la fin de la séquence CRC. Le récepteur tient compte de la longueur des champs à mesure qu’il traite cette zone. Les bits de bourrage allongent la durée d’occupation du bus. Le code de longueur des données, ou DLC, conserve sa signification d’origine. Le découpage logique des champs peut différer du découpage temporel du signal observé à l’oscilloscope.

Après la séquence CRC, le délimiteur CRC, le champ ACK et la fin de trame suivent leurs propres règles. Le comptage utilisé jusque-là pour le bourrage dynamique ne s’applique plus. Par exemple, la fin d’une trame CAN classique contient sept bits récessifs consécutifs. Cette suite ne suffit pas à indiquer une erreur de bourrage. Repérez la limite de la trame et les éventuels drapeaux d’erreur avant de déterminer dans quelle zone se situe un plateau.

En CAN classique, l’émetteur calcule la séquence CRC à partir des bits logiques sans bourrage, du début de la trame à la fin du champ de données. Lors de la transmission, il inclut ensuite la séquence CRC dans la zone soumise au bourrage. Le récepteur retire les bits de bourrage dynamique et effectue le contrôle CRC correspondant. Les bits supplémentaires dus au codage et le contrôle d’intégrité des champs remplissent donc des fonctions distinctes. Le CAN FD applique des règles différentes dans son champ CRC. Vérifiez le format de trame et la configuration du contrôleur en vous référant à la spécification applicable.

À longueur de données égale, la durée d’occupation du bus peut varier

Distinguez la durée de transmission d’une trame du temps d’attente du message avant son émission. Le bourrage influe sur la durée d’émission de la trame elle-même sur le bus. Le délai d’arbitrage dépend de ce que les autres nœuds émettent au même moment. Pour un message périodique, relevez séparément l’intervalle entre deux bits successifs de début de trame et la durée entre le début et la fin d’une même trame. Les variations de ces deux mesures renvoient à des causes différentes.

Prenons deux trames de données CAN classique transmises avec succès et contenant le même nombre d’octets de données. Leurs identifiants ou les motifs binaires de leurs données peuvent différer. Une trame peut présenter plusieurs longues suites de bits identiques, tandis que les zéros et les uns alternent souvent dans l’autre. La première peut nécessiter davantage de bits de bourrage, et les valeurs des bits de la séquence CRC influent également sur leur nombre. À débit binaire nominal égal, chaque bit de bourrage ajoute un temps de bit. Pour estimer la charge du bus, utilisez une longueur de trame mesurée sur le bus ou une estimation prudente de cette longueur.

Dans sa vue décodée, un analyseur de protocole affiche généralement l’identifiant, le DLC et les données récupérées. Pour évaluer l’occupation du bus, définissez le début et la fin de la mesure. La durée de transmission d’une trame, l’attente entre sa mise en file et le moment où elle remporte l’arbitrage, et le temps consacré à la retransmission après une erreur sont des grandeurs distinctes. Consigner les limites de mesure permet de distinguer l’allongement de la trame du délai dû à la concurrence pour l’accès au bus.

Repérer la zone où apparaît une erreur de bourrage

Dans un champ soumis au bourrage dynamique, le récepteur signale une erreur de bourrage s’il échantillonne un sixième bit de même valeur là où devrait apparaître un bit de valeur opposée. Un plateau prolongé peut résulter d’un comportement anormal côté émission, des réglages locaux du point d’échantillonnage, du débit binaire ou d’une distorsion du signal. Si un nœud en état d’erreur active émet un drapeau d’erreur actif, les autres nœuds peuvent alors observer une longue suite de bits dominants qui enfreint la règle. Une erreur de bourrage relevée dans un journal peut donc être la conséquence d’une erreur antérieure.

Consignez les types d’erreurs, le premier événement et toute forme d’onde disponible. Une erreur CRC signale une divergence entre le calcul du récepteur et la séquence CRC reçue. Une erreur de forme concerne un champ dont le format est imposé. Une erreur ACK signifie que l’émetteur n’a pas observé l’acquittement dominant attendu dans le créneau ACK. Ces erreurs peuvent se succéder au cours d’un même incident. Classer les événements par ordre chronologique et vérifier le champ concerné aide à cibler le diagnostic.

Deux appareils CAN sur fibre reliés par une liaison optique, avec les points de test A et B sur les deux segments en cuivre
Figure 3. Capturez la même trame de test aux points A et B, puis alignez les trames et les horodatages des erreurs. Les connexions sont représentées de façon schématique. Consultez la documentation du modèle pour vérifier les ports optiques et le câblage. L’illustration de l’appareil a été réalisée avec l’aide de l’IA.

Lors d’une extension CAN par fibre optique, vérifiez chaque segment cuivre et le rôle de chaque équipement

La documentation produit de FCTELE relative à son modem CAN sur fibre optique à huit voies, monté sur rail DIN, mentionne la répétition des signaux CAN sur fibre et le fonctionnement point à point. Lors d’un essai technique, répertoriez les segments CAN sur cuivre, la fibre et les équipements d’extrémité comme des points d’observation distincts. Vérifiez le format de trame, le débit binaire, la terminaison et le câblage d’après la documentation des équipements réellement utilisés. Utilisez ensuite un message connu dans un montage d’essai isolé pour vérifier la réception à chaque extrémité. Les figures indiquent les points d’observation. Consultez la documentation du modèle concerné pour déterminer comment il transmet les signaux sur la fibre.

Si le signal et les trames décodées restent stables sur le segment cuivre côté émetteur, mais que des erreurs intermittentes apparaissent près du récepteur, comparez l’état observé et les horodatages à l’autre extrémité. Vérifiez si le défaut est lié à un câble, à un équipement d’extrémité ou à une charge particulière. Consignez la période du message et les autres conditions d’essai, et ne modifiez qu’une variable à la fois. Le relevé final doit indiquer si les champs ont été correctement récupérés, si les erreurs se sont reproduites et si le trafic réel de l’application a repris après la modification du chemin de transmission. Cela permet de distinguer le surcroît de temps normal dû au bourrage des véritables défauts de transmission.

Sources et portée

Bosch : détection des erreurs en CAN et CAN FD · Microchip : bourrage de bits et format des trames CAN · Équipement CAN sur fibre optique à huit voies pour rail DIN de FCTEL (en chinois)

Traduit de l’article technique en chinois : Lire l’article original en chinois.

Questions fréquentes

Pourquoi insérer un bit après cinq bits de même valeur ?

Le bit de valeur opposée crée une transition sur le bus. Les fronts qui remplissent les conditions de synchronisation peuvent servir à recaler le timing binaire, ce qui limite la durée des suites sans transition.

Les sept bits récessifs de l’EOF provoquent-ils une erreur de bourrage ?

En CAN classique, l’EOF a une forme fixe. Ses sept bits récessifs se trouvent en dehors de la zone soumise au bourrage dynamique.

Comment localiser une erreur de bourrage sur une liaison par fibre optique ?

Capturez la même trame de test sur les deux segments cuivre, vérifiez le débit binaire, l’échantillonnage et la terminaison, alignez les horodatages des erreurs du contrôleur et vérifiez comment les équipements sur fibre relaient le trafic.

Pour en savoir plus

Extension d’un bus CAN par fibre optique · Interfaces électriques et arbitrage CAN

Partager cet article