Se rendre au contenu
CAN · Fondamentaux

Le format des messages CAN : vue d'ensemble

Structure d'une trame CAN

Le CAN distingue quatre formats de message : trame de données, trame de requête, trame d'erreur et trame de surcharge. Ensemble, ils assurent la transmission, la demande de données, la détection d'erreur et la gestion des surcharges.

La trame de données

C'est le format le plus utilisé sur le réseau. Il transporte les données utiles d'un producteur vers un ou plusieurs consommateurs. Une trame de données type se compose de plusieurs champs :

  • Start of frame (SOF) : un bit dominant ;
  • Champ d'arbitrage : l'identifiant et le bit RTR (remote transmission request) ;
  • Champ de contrôle : le bit IDE (dominant pour un identifiant standard de 11 bits), un bit réservé et le code de longueur de données ;
  • Champ de données ;
  • Contrôle de redondance cyclique (CRC) ;
  • Créneau d'acquittement (ACK) ;
  • Fin de trame : tous les bits récessifs.

Le champ d'arbitrage détermine la priorité du message : plus la valeur est faible, plus la priorité est élevée. Le champ de données contient de 0 à 8 octets, ce qui autorise une transmission souple.

Identifiant 11 bits ou 29 bits

La spécification CAN classique définit deux formats compatibles entre eux : le format standard, avec un identifiant de 11 bits, et le format étendu, avec un identifiant de 29 bits.

L'usage dans les véhicules utilitaires a montré que le grand nombre de messages à représenter appelait un identifiant nettement plus long. Sur 29 bits, on peut distinguer jusqu'à 512 millions de messages.

Les deux formats peuvent coexister sur le même réseau ; ils se distinguent par le bit d'extension d'identifiant (bit IDE). Dans le format étendu, l'identifiant de 29 bits se décompose en un identifiant de base de 11 bits et un identifiant étendu de 18 bits.

Message CAN à identifiant standard de 11 bits
Figure 1 : message CAN au format standard, identifiant de 11 bits.
Message CAN à identifiant étendu de 29 bits
Figure 2 : message CAN au format étendu, identifiant de 29 bits.

La trame de requête (remote frame)

Tout nœud peut demander, au moyen d'une trame de requête, qu'un autre nœud émette un message donné. Le message demandé est désigné par l'identifiant transporté dans la trame. S'il est possible de solliciter tous les nœuds récepteurs, un seul nœud émetteur peut être responsable du message demandé.

Le format d'une trame de requête reprend celui de la trame de données, à ceci près que le bit RTR est récessif alors qu'il est dominant pour une trame de données. Une trame de requête qui arbitre en même temps qu'une trame de données de même identifiant perd donc l'arbitrage, puisque le message demandé est déjà en cours d'émission. Le champ de données est par ailleurs vide, et le code de longueur doit correspondre à celui de la trame de données attendue.

La trame d'erreur

Tout nœud qui détecte une erreur pendant l'émission ou la réception d'une trame de données ou de requête le signale immédiatement à l'ensemble du réseau en émettant une trame d'erreur. Comme celle-ci contient une séquence de six bits de même polarité (le drapeau d'erreur), elle viole volontairement la règle de bit stuffing et incite le producteur à réémettre la trame erronée.

La trame d'erreur comporte deux champs : le premier résulte de la superposition des drapeaux d'erreur émis par un ou plusieurs nœuds ; le second, une séquence de huit bits récessifs, marque la fin de la trame, comme pour les trames de données et de requête.

Le bit stuffing garantit que la transmission reste synchrone et exempte d'erreur : après cinq bits identiques consécutifs, un bit de polarité opposée est inséré automatiquement. Cela évite que de longues séquences de bits identiques ne perturbent la synchronisation des participants, et facilite la détection d'erreur.
Chronogramme d'une trame d'erreur CAN
Figure 3 : chronogramme d'une trame d'erreur — superposition des drapeaux (6 à 12 bits) puis délimiteur de 8 bits.

La trame de surcharge

La trame de surcharge signale qu'un nœud n'est pas prêt à recevoir un message, par exemple en raison de temporisations internes ou d'un débordement de tampon. Elle lui laisse le temps de se préparer à la réception suivante. On peut la considérer comme une trame d'erreur particulière : comme elle, elle se compose d'un drapeau et d'un délimiteur.

À la différence de la trame d'erreur, son émission dépend de conditions très précises liées au champ d'intermission, et elle n'entraîne pas la réémission de la trame précédente.

En résumé

Les quatre formats — trame de données, trame de requête, trame d'erreur et trame de surcharge — conditionnent le fonctionnement et la fiabilité des réseaux CAN. Chacun a ses domaines d'emploi et sa structure propres, qui permettent de transmettre efficacement les données, d'émettre des requêtes, d'identifier les erreurs et de gérer les situations de surcharge.

Neutralisé