Le bus CAN (Controller Area Network) est un protocole de communication série en temps réel-très fiable utilisé dans les véhicules, l'automatisation industrielle et d'autres domaines. Il permet à plusieurs microcontrôleurs et appareils de communiquer entre eux sans ordinateur hôte.

Le bus CAN a été initialement développé par Bosch en Allemagne au début des années 1980 pour la communication à bord des véhicules. En 1993, l'ISO a publié la norme de bus CAN (ISO 11898), englobant à la fois le protocole de couche liaison de données et le protocole de couche physique.
ISO 11898-1 : définit le protocole de couche liaison de données.
ISO 11898-2 : définit le protocole de couche physique pour le bus CAN à haute-vitesse, prenant en charge un taux de transfert de données maximal de 1 Mbps. Il recommande une topologie linéaire et convient aux applications ayant des exigences élevées en temps réel.
ISO 11898-3 : définit le protocole de couche physique pour le bus CAN à faible-vitesse, avec des taux de transfert de données allant de 40 Kbit/s à 125 Kbit/s. Également connu sous le nom de CAN tolérant aux pannes-, il permet une communication continue même en cas de défaillance d'une ligne de signal, ce qui le rend adapté aux applications ayant des exigences en temps réel moindres.
Caractéristiques du bus CAN :
Contrôle multi-maître :Le bus CAN prend en charge plusieurs appareils maîtres coexistant sur le réseau sans hiérarchie maître-esclave. Les appareils communiquent en fonction de la priorité des messages.
Signalisation différentielle :Utilise deux fils (CAN_H et CAN_L) pour transmettre des signaux différentiels, améliorant ainsi la résistance aux interférences électromagnétiques.
Arbitrage non-destructif :Pendant la transmission du message, si une collision se produit, le message-de priorité supérieure est transmis tandis que le message de priorité inférieure-attend sa retransmission.
Détection et gestion des erreurs :Dispose de fonctionnalités robustes de détection et de gestion des erreurs, notamment la vérification de la somme de contrôle CRC et la vérification des erreurs de bits.
Topologie flexible :Prend en charge plusieurs topologies de réseau telles que les configurations linéaires, en étoile, en arbre et en anneau.
Sur le bus CAN, la différence de tension importante entre le « 0 » et le « 1 » logiques garantit une communication fiable. En référence à la description ci-dessus, les deux niveaux logiques sur le bus CAN sont :
Dominante : 0
Récessif : 1
Les niveaux de signal sur le bus CAN présentent des lignes-et des caractéristiques. Cette ligne-et ce comportement constituent la base du circuit pour l'arbitrage du bus CAN : le niveau dominant (0) masque toujours le niveau récessif (1). Si différents nœuds transmettent simultanément des niveaux dominants et récessifs, le bus présente le niveau dominant (0). Ce n'est que lorsque tous les nœuds transmettent le niveau récessif (1) que le bus présente l'état récessif.
Niveau dominant :Logique 0. Dans le CAN haute vitesse-, la broche CAN_H passe à 5 V, tandis que la broche CAN_L passe à 0 V.
Niveau soumis :Logique 1. Aucune des deux broches n'est entraînée.

Les bus CAN à haut-vitesse et à faible-bus CAN diffèrent par leurs définitions de niveau de signal de couche physique :
Le CAN haute-vitesse définit un "1" logique lorsque les tensions CANH et CANL sont égales (CANH=CANL=2.5V), et un "0" logique lorsque la différence de tension entre CANH et CANL est de 2 V (CANH=3.5V, CANL=1.5V).
Dans la plage de tension en mode commun-(-12 V à 12 V), l'émetteur-récepteur CAN haute vitesse interprète une différence de tension supérieure à 0,9 V entre CANH et CANL comme état dominant, et une différence inférieure à 0,5 V comme état récessif. Un circuit à hystérésis interne réduit les interférences.
Le CAN basse-vitesse définit un "1" logique lorsque la différence de tension entre CANH et CANL est de 5 V (CANH=0V, CANL=5V) et un "0" logique lorsque la différence de tension est de 2,2 V (CANH=3.6V, CANL=1.4V).
Niveaux de signal CAN-haute vitesse (ISO 11898-2)
Niveaux de signal CAN à faible-vitesse (ISO 11898-3)
Mécanismes de gestion des erreurs CAN :
Erreurs CRC :Détecte les erreurs en calculant et en vérifiant la valeur CRC des données.
Erreurs de bits :Détecte les erreurs de bits en-temps réel pendant la transmission.
Images d'erreur :Envoie des trames d'erreur pour demander la retransmission lorsque des erreurs sont détectées.
Résumé
Le bus CAN a été largement adopté dans de nombreux domaines en raison de sa grande fiabilité, de ses-performances en temps réel et de sa flexibilité. À mesure que la technologie progresse, le bus CAN continue d'évoluer-par exemple, la norme CAN FD (Flexible Data-Rate) publiée par BOSCH améliore encore les débits de transmission de données pour répondre aux demandes des applications nécessitant une bande passante plus élevée.




