Bus CAN
|
01-04-2013, 11h15
(Modification du message : 01-04-2013, 11h25 par Hypnoze57.)
Message : #1
|
|
Hypnoze57
Web Hacker Messages : 98 Sujets : 13 Points: 28 Inscription : Feb 2012 |
Bus CAN
Bus CAN
[L'arrivée du bus CAN] Le bus CAN (Controller Area Network) est né du besoin de trouver une solution de communication série dans les véhicules automobiles, qui ont tendance à intégrer de plus en plus de commandes électroniques. Plus d'infos : http://www.vag.com.fr/canbus.htm [Topologie du bus CAN] CAN est un bus de données série bidirectionnel asynchrone (tout comme le bus I2C : http://n-pn.fr/forum/showthread.php?tid=2849) Chaque équipement électrique connecté au bus est appelé un "noeud" et peut communiquer avec les autres. La longueur maximale du bus est déterminée par la vitesse utilisée. Débit -> Longueur 1Mbit/s -> 40m 500Kbit/s -> 100m 100Kbit/s -> 500m 20Kbit/s -> 1000m Avec le bus CAN, les noeuds ont les même droits (organes de commandes, capteurs ou actionneurs). Le protocole CAN de base permet d'échanger 2048 variables. Ce protocole ainsi que les paramètres électriques de la ligne de transmission, sont fixés par la norme 1189. [Architecture matérielle du bus CAN] Support: Chaque noeud est connecté au bus par l'intermédiaire d'une paire torsadée (blindée ou non). Les 2 extrémités du bus doivent être rebouclées par des résistances de 120 ohm. [Principe de transmission] Il n'y a pas de maître ni d'esclave, chaque noeud peut prendre la parole. Le protocole est basé sur le principe de diffusion en générale. Lors d'une transmission, aucune station n'est adressé en particulier, mais le contenue de chaque message (appelé identification) est reçu de façon égale par tous les abonnés. Grâce à cet identificateur,les stations, qui sont en permanence à l'écoute du réseau, reconnaissent et traitent les messages s'ils sont concernés par ceux-ci; elles ignorent simplement les autres. En version de base, l'identificateur est un nombre de 11 bits, ce qui permet de définir jusqu'à 2048 messages plus ou moins prioritaires sur le réseau. Chaque message peut contenir jusqu'à 8 octets de données, ce qui correspond par exemple à l'état de 64 capteurs. [Format des messages] La norme can définit deux formats de protocole: -Standard -Extended La différence résulte seulement dans la longueur de l'identificateur (ID) qui est de 11 bits en standard et 18 bits supplémentaire en mode extended. Cette extension permet l'augmentation du nombre de variables échangées; et le nombre de stations (noeuds) sur le réseau. Le nombre d'octet de données échangées à chaque trame reste inchangé. Une trame est composée des champs suivants: - bit SOF (Start Of Trame) - zone d'arbitrage (11bits) - bit RTR (Remote Transmission Request) : détermine s'il s'agit d'une trame de données ou d'une trame de demande de message. - bit IDE qui établi la distinction entre format standard et format étendu. - 1 bit réservé pour une utilisation future. - 4 bits DLC : nombre d'octets contenus dans la zone de données. - zone de données de longueur comprise entre 0 et 8 octets. - zone CRC de 15 bits Cyclic Redundancy Code) Ces bits sont recalculés à la réception et comparés aux bits reçus. S'il y a une différence, une erreur CRC est déclarée. - zone ACK composé d'un bit à l'état récessif ainsi qu'un bit séparateur ACK. Le premier bit doit être forcé à l'état dominant par les stations ayant bien reçu cette trame. - zone EOF de 7 bits: (End Of Frame) permet d'identifier la fin de la trame. [Principe d'arbitrage] Comment est résolu le problème lorsque plusieurs stations émettent en même temps un message ? L'identificateur indique aussi la priorité du message, qui détermine l'assignation du bus lorsque plusieurs stations émettrices sont en concurrence. Car, afin d'être traitées en temps réel, les données doivent être transmises rapidement. Cela suppose une voie physique de transmissions atteignant jusqu'à 1MBit/s ; mais encore une assignation rapide du bus dans les cas de conflits, lorsque plusieurs stations souhaitent transmettre simultanément des messages. L'urgence des informations échangées sur le bus peut être très diverse : une valeur variant rapidement, comme l'état d'un capteur ou l'avertissement d'un moteur, doit être transmis plus souvent avec un retard moindre que les autres valeurs comme la température du moteur, qui évolue lentement. Sur le réseau CAN, l'identificateur de chaque message, qui est un mot de 11 bits (format standard) ou de 29 bits (format étendu), détermine cette priorité. Les priorités sont attribuées lors de l'analyse conceptuelle du réseau, au moyen de valeur binaire, et ne peuvent donner lieu à aucune modification dynamique. Le procédé d'attribution du bus est basé sur le prinncipe de < l'arbitrage bit à bit >, selon lequel les noeuds en compétition, émettant simultanément sur le bus, comparent bit à bit l'identificateur de leur message avec celui des messages concurrents. Les stations de priorité moins élevées perdrons la compétition face à celle qui a la priorité la plus élevé. Les stations sont câblées sur le bus par le principe du "ET câblé" (en logique), en cas de conflit c'est à dire émission simultanée, la valeur 0 écrase la valeur 1. On appelle donc : - état dominant l'état logique 0 - état récessif l'état logique 1. Lors de l'arbitrage bit à bit, dès qu'une station émettrice se trouve en état récessif et détecte un état dominant, elle perd la compétition et arrête d'émettre. Tous les perdants deviennent automatiquements des récepteurs du message, et ne tentent à nouveau d'émettre que lorsque le bus se libère. Je ne vous ai pas parler de l'électronique du bus can mais pleins de cours existe sur le net et je risquerai de vous racontez plus de bêtises qu'autre chose x). Cordialement, Hypnoze57 Make your own destiny now and forever !
|
|
01-04-2013, 11h31
Message : #2
|
|
thxer
:(){ :|:& };: Messages : 382 Sujets : 60 Points: 162 Inscription : Feb 2013 |
RE: Bus CAN
Génial ! Merci
|
|
01-04-2013, 11h53
Message : #3
|
|
Swissky
Bon membre Messages : 523 Sujets : 32 Points: 96 Inscription : Apr 2012 |
RE: Bus CAN
Excellent tutoriel, tu nous fait le bus DMX maintenant ?
|
|
01-04-2013, 12h00
Message : #4
|
|
Hypnoze57
Web Hacker Messages : 98 Sujets : 13 Points: 28 Inscription : Feb 2012 |
RE: Bus CAN
(01-04-2013, 11h53)Swissky a écrit : Excellent tutoriel, tu nous fait le bus DMX maintenant ? Ah, je ne le connais pas encore celui ci :p Make your own destiny now and forever !
|
|
01-04-2013, 20h15
Message : #5
|
|
oosfalte
Flying Cloud Messages : 47 Sujets : 3 Points: 8 Inscription : Jan 2013 |
RE: Bus CAN
Merci, intéressant et très bonnes explications !
Je découvre ... |
|
06-04-2013, 19h23
Message : #6
|
|
Polo
Benêt en chef Messages : 110 Sujets : 4 Points: 25 Inscription : Mar 2013 |
RE: Bus CAN
Très intéressant et très instructif, bon boulot !
|
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)