Root » Serveurs » Chauffage » Technique » Bus de données CAN
Bus CAN
Le bus de données CAN
CAN
Le bus de données CAN a été utilisé d'abord dans l'industrie automobile pour relier les différents capteurs et autres appareils avec une seule connection, ce qui permet de diminuer le nombre de cables dans les voitures. Le protocole est maintenant également utilisé dans l'industrie.
-

-

Le bus de données CAN (Controller Area Network) a été développé dans les années 1980 par la firme Bosch pour permettre la communication entre divers capteurs et autres appareils. Il s'agit d'un "bus", cela veut dire que différents appareils sont connectés et peuvent transmettre et recevoir des données. D'autres protocoles comme la communication sérielle classique est de point à point. Auparavant il fallait un cable par fonction: un cable pour chaque lampe dans le bloc de lumières arrières de la voiture, un cable par capteur sur le moteur,... Maintenant tous les appareils sont reliés entre eux par un seul cable.

Le système est déterminé par le logiciel. Quand le véhicule passe en marche arrière, le message est mis sur le bus, lu par les feux de recul et par la boite de vitesse pour changer de rapport.

L'information d'une source peut ainsi en théorie être utilisée par chaque appareil connecté au bus sans qu'il ne faille tirer d'autres cables. Il suffit d'ajouter un appareil sur le bus, pour qu'il puisse lire les message. Cela peut par exemple être un module de caméra arrière.

La communication est conçue pour travailler dans un environnement brouillé. La communication se fait par des fils torsadés (twisted pair) commandés différentiellement. Plusieurs vitesses sont possibles selon la topologie et les capacités du système. Tous les appareils sont branchés en parallèle sur le bus

Quand il n'y a pas d'échange de données le bus est au repos en condition récessive. Quand un appareil transmet un "0" le bus passe en condition dominante. Il suffit qu'un seul appareil tranmette un "0" pour faire passer le bus en état dominant, de là les dénominations biologiques dominant et récessif.

La communication est asynchrone comme avec le protocole RS-232: il n'y a pas d'hormoge générale, mais dès qu'un appareil transmet il doit se tenir à un timing strict pour que les récepteurs puissent décoder le message.

Priorité sur le bus

Chaque appareil a une adresse qui indique sa priorité. Un appareil ne peut émettre que quand le bus est libre (en condition récessive).

Quand un appareil émet, il envoie d'abord son adresse (ici 010101), mais continue à écouter ce qui se passe sur le bus.

Quand un appareil avec une priorité plus élevée (010011) est également en train d'émettre, son adresse domine le bus et les autres appareils doivent stopper leur émission.

Dès le bit 4 l'appareil 1 sait qu'il na pas la priorité et qu'il doit cesser d'émettre.

C'est important que tous les appareils ont une priorité différente pour qu'un mesdsage important (par exemple moteur en survitesse) ne doive pas attendre que d'autres messages moins importants soient émis (par exemple données du capteur de pluie).

Quand un appareil ne peut pas émettre son message, il attend la fin du message en cours pour à nouveau tenter d'émettre. Le message en question n'est pas perdu.

Il peut y avoir entre 20 et 30 appareils sur un bus selon la vitesse du réseau, la topologie locale, le facteur de brouillage externe et le nombre moyen de messages qui sont émis. S'il faut brancher plus d'appareils, il faut couper le réseau en morceaux.

On place une passerelle entre les deux réseaux. Cela peut être un simple "store and forward" (qui correspond à un hub dans un réseau informatique), qui transmet tout les messages d'un réseau sur l'autre réseau, mais la passerelle peut avoir une fonction plus complexe et filtrer les messages et/ou changer l'adresse (pour modifier la priorité du message). La passerelle a alors la fonction d'un routeur.

Les adresses des appareils ne sont pas utilisées pour identifier l'appareil, mais pour définir la priorité du message. Tous les appareils peuvent lire tous les messages et décider de réagir ou non (selon le logiciel de l'appareil connecté).

On utilise plusieurs petits réseaux, même dans une voiture (management du moteur - accessoires - tableau de bord - ...). Cela n'a pas de sens d'envoyer la température du moteur au réseau accessoires pour allumer les phares, mais cette information peut être envoyée au réseau tableau de brod (éventuellement avec une priorité réduite).

Tensions sur le bus

Le bus rapide doit avoir une structure linéaire et doit être terminé de chaque coté par une résistance de 120Ω pour éviter les réflections. Au repos les deux lignes CAN Hi et CAN Lo ont une tension d'environ 2.5V, ce qu'on appelle la tension récessive. Un appareil qui transmet un "0" tire la ligne CAN Hi vers 3.5V ou plus et la ligne CAN Lo vers 1.5V ou moins.

Le bus rapide est en condition récessive quand la différence de tension entre les deux ligne sest moins de 0.5V. Le bus est en condition dominante quand la tension sur les deux lignes atteint ou dépasse 2V. Au repos les résistances de terminaison tirent les deux lignes vers une différence de 0V, mais la tension moyenne (CAN Hi + CAN Lo) / 2 ne doit pas nécessairement être de 2.5V. Le bus est flottant, mais des diodes zener limitent l'excursion de la tension.

Le bus lent a une structure plus libre où chaque appareil a deux résistances. Au repos (condition récessive) une résistance tire CAB Hi vers 0V et la ligne CAN Lo vers 5V. En condition dominante l'appareil tire la ligne CAN Hi vers 5V et CAN Lo vers 0V.

Les résistances pullup et pulldown doivent avoir une valeur telle que la résistance totale (tous les appareils en parallèle) doit avoir une valeur qui se rapproche de 100Ω mais pas être plus basse.

Le bus est en condition dominante quand CAN Hi est a un potentiel plus élevé que CAN Lo, mais les niveaux exacts des tensions n'ont pas d'importance. Bien que la tension est limitée entre 0 et 5V, les appareils doivent pouvoir résister à une tension entre -27 et +40V.

L'interface du bus lent est plus simple (il suffit de détecter une inversion des tensions) et la structure du bus ne doit pas nécessairement être linéaire. Un appareil est conçu pour le bus lent ou rapide.

Publicités - Reklame

-