Le bus CAN (Controller Area Network) est un protocole de communication série très utilisé, particulièrement adapté aux secteurs de l'automobile et de l'automatisation industrielle. Les types de messages sur le bus CAN peuvent être globalement classés comme suit, chaque type ayant son objectif et son format spécifiques.
I. Trame de données
La trame de données est le type de message le plus basique sur le bus CAN et est utilisée pour transmettre des données entre les nœuds. Une trame de données se compose de plusieurs segments, notamment le début de la trame, le champ d'arbitrage, le champ de contrôle, le champ de données, le champ CRC, le champ ACK et la fin de la trame.
1. Début de trame (SOF)
- Définition : Un segment indiquant le début d'une trame de données, constitué d'un seul bit actif (0 logique).
- Fonction : Lorsque le bus est inactif, le nœud émetteur envoie le début de trame ; les autres nœuds de réception se synchronisent sur ce bit de début de trame.
2. Champ d'arbitrage
- Définition : Un segment qui indique la priorité de la trame. En fonction de la longueur du code d'identification du champ d'arbitrage, les trames sont classées en trames standard (CAN 2.0A) et en trames étendues (CAN 2.0B).
- Contenu : Le champ d'arbitrage d'une trame au format -standard se compose d'un identifiant (ID) de 11-bits et d'un bit de demande de transmission à distance (RTR) ; le champ d'arbitrage d'une trame au format étendu est constitué d'un identifiant de 29 bits et d'un bit RTR.
- Fonction : Utilisé pour déterminer le type de trame transmise (trame de données ou trame de télécommande) et le format de trame (trame standard ou trame étendue), ainsi que pour établir la priorité de la trame.
3. Champ de contrôle
- Définition : Un champ qui spécifie le nombre d'octets dans les données et les bits réservés.
- Contenu : Comprend le code de longueur de données (DLC) et deux bits réservés (r0, r1). Le DLC indique le nombre d'octets dans le champ de données, qui peut aller de 0 à 8 octets.
- Fonction : Informe le nœud récepteur de la longueur du champ de données afin que les données puissent être reçues correctement.
4. Champ de données
- Définition : Le contenu des données ; 0 à 8 octets de données peuvent être transmis.
- Objectif : Transmettre les informations de données réelles.
5. Champ CRC (champ de contrôle de redondance cyclique)
- Définition : champ utilisé pour vérifier les erreurs de transmission dans une trame, composé d'une séquence CRC et d'un délimiteur CRC.
- Fonction : garantit l'intégrité et l'exactitude des données grâce à la vérification CRC.
6. Champ ACK (champ d'accusé de réception)
- Définition : un segment indiquant la confirmation d'une réception réussie, composé d'un emplacement ACK et d'un délimiteur ACK.
- Fonction : Lorsque le récepteur reçoit correctement un message valide, il envoie un bit positif à l'émetteur pendant le slot ACK pour accuser réception.
7. Fin de trame (EOF)
- Définition : Un segment indiquant la fin d'une trame de données, composé de 7 bits négatifs.
- Fonction : Signale la fin de la trame de données.
II. Cadre distant
Une trame distante est utilisée pour demander la transmission d'une trame de données avec le même ID. Lorsqu'un nœud récepteur a besoin de certaines données mais ne les a pas, il envoie une trame distante pour demander au nœud émetteur d'envoyer la trame de données correspondante. La structure d'une trame distante est similaire à celle d'une trame de données, mais le segment de données est vide et le bit RTR est mis à 1.
III. Cadre d'erreur
Une trame d'erreur se compose de deux champs : l'indicateur d'erreur et le délimiteur d'erreur. Lorsqu'un nœud récepteur détecte une erreur dans un message sur le bus, il transmet automatiquement un « indicateur d'erreur actif » ; les autres nœuds, lors de la détection de l'indicateur d'erreur actif, envoient un « indicateur d'accusé de réception d'erreur ». La transmission d'une trame d'erreur interrompt la communication actuelle sur le bus jusqu'à ce que l'erreur soit résolue.
IV. Cadre de surcharge
Une trame de surcharge se compose d'un indicateur de surcharge et d'un séparateur de surcharge. Une trame de surcharge est transmise lorsque le nœud de réception a besoin d'un temps excessif pour traiter les données actuelles avant de recevoir la trame suivante, ou lorsqu'un niveau dominant est détecté dans le champ spatial inter-trame. La transmission d'une trame de surcharge retarde la transmission des trames suivantes pour garantir que la communication sur le bus ne soit pas interrompue en raison d'une surcharge.
V. Autres types de messages
En plus des quatre types de messages de base mentionnés ci-dessus, le protocole de bus CAN définit plusieurs autres types de messages spéciaux, tels que les types de messages Interframe Space et N_PCI (par exemple, trame unique, trame de début, trame continue, trame de contrôle de flux, etc.). Ces types de messages sont utilisés dans des scénarios de communication spécifiques pour répondre à différentes exigences de communication.
Résumé
Les types de messages sur le bus CAN incluent des types de base tels que les trames de données, les trames de télécommande, les trames d'erreur et les trames de surcharge, ainsi que des types spéciaux tels que les types de messages Interframe Space et N_PCI. Chaque type de message a sa structure et son objectif spécifiques, formant collectivement la base de la communication sur le bus CAN. Dans les applications pratiques, la sélection du type de message approprié pour la transmission de données en fonction d'exigences de communication spécifiques garantit une communication fiable et efficace.




