déterministe et fiable Le bus CAN déterministe et fiable
ERP MES Office Network Supervision Supervision Network Cell 2 PLC HMI Cell 2 Field Bus Speed Controller Remote I/O Smart sensor Cell 3 Motor Sensors Actuators Cell 1
Présentation du bus CAN : Domaines d’application Rappels sur les bus de terrain Généralités sur les bus de terrain Le modèle OSI Le temps réel Le bus CAN La couche physique La couche liaison de données Le format étendu CAN 2.0 B
Historique Depuis les années 1960 la longueur de câble utilisée dans l’automobile ne cesse de croître pour dépasser 2000 m en 1995. Le nombre des connexions atteint 1800 à cette même date. La fiabilité et la sécurité sont menacés. Les normes en matière de pollution et de consommation d’énergie obligent les constructeurs à multiplier les capteurs et actionneurs intelligents dans leur véhicules accélérant ce processus de multiplication des câbles et connexion depuis une vingtaine d ’années. Le besoin de sécurité accrue (ABS, ESP, AIR-BAG…) et la demande de confort (mémorisation des réglages de conduite, climatisation régulée par passager, système de navigation…) ne font que renforcer cette tendance. La société BOSCH développe dès le début des années 1980 une solution de multiplexage des informations circulant à bord de la voiture. Le bus CAN apparaîtra et sera normalisé dans les années qui suivent (dès 1983). Les composants CAN se démocratisent et investissent d’autres secteurs de l’industrie (moissonneuses, pelleteuse, médical, produits numériques, systèmes électrotechnique…).
Exemples d’applications CAN
Rappels sur les bus de terrains Les réseaux de terrain permettent : l’interconnexion entre plusieurs entités d’un même système; la réduction de la longueurs des liaisons entre les différents éléments grâce à un support commun de transmission; de sécuriser les liaisons entre automates; de gagner de la place comme une automobile pour les systèmes dit d’électronique embarquée ; de transférer les informations de manière séquentielle (c’est à dire bit par bit) ou bien par paquet de bits ; un échange de données qui serait difficile voire impossible par un autre moyen. l’insertion ou la suppression d’éléments au sein d’un même système
Exemple de l’automatisme industriel Objectifs liés à l’introduction d’un bus de terrain : Réduire le câblage (coût, fiabilité) Faciliter la communication entre les différents éléments Permettre de faire du diagnostic Développer une électronique modulaire Cahier des charges Fonctionner en environnement difficile (températures, émissions EM) Etre déterministe (gestion des organes de sécurité notamment) Etre fiable Etre modulaire Etre peu cher
Quelques bus plus ou moins « de terrain » Automatismes HART Profibus Modbus Ethernet et ses dérivés CAN (CANopen / DeviceNet) Bâtiment EIB / KNX Lon / BacNet CAN (CANopen) Embarqué I2C K-Line SPI CAN (OSEK/VDX, J1939,…)
Applications Automobile Camions, bus, engins de chantier, grues Avions, trains Automatisme industriel, machines-outils Bâtiment (Ascenseurs, gestion technique de bâtiments) Instrumentation médicale
Evolution du câblage dans l’automobile grâce à un bus de terrain Câblage traditionnel Simple & Léger CAN 2 câbles pour l’alimentation électrique 12 V DC 1 paire torsadée pour les transferts d’informations
Eléments du bus CAN Norme CAN ISO 11898 ISO 11519 Haute vitesse Applications constructeurs Définition d’un langage entre les composant CAN Codage des messages arbitrage, gestion erreurs Norme CAN ISO 11898 Haute vitesse ISO 11519 Basse vitesse Protocole de transmission Codage de l’information amplitude, timing, synchro Niveaux des signaux : hauteur et largeur des bits portant l’information Support de transmission Câbles électriques, fibres optiques, Liaisons infrarouges, liaison hertziennes
Les trois principaux documents existants se rapportent aux applications automobiles et sont connus sous les références : ISO 11519-1 Généralités et définitions : véhicules routiers, communication en série de données à basse vitesse. ISO 11519-2 Réseau local à commande à basse vitesse (CAN) : véhicules routiers, communication en série de données à basse vitesse. ISO 11898 Véhicules routiers - Echange d'information numérique : gestionnaire de réseau de communication à vitesse élevée (CAN).
Rappels sur les bus de terrains Le modèle OSI : Afin de normaliser les protocoles, l’International Standard Organisation (ISO) a développé le modèle Open System Interconnections (OSI), qui permet d’identifier et de séparer les différentes fonctions d’un système de communication. Ce modèle divise en sept couches les fonctions d’un système de communication. Cependant il n’est pas indispensable de disposer de toutes les couches dans un système : selon les fonctionnalités requises, certaines couches intermédiaires sont inutiles.
Représentation du modèle
Rappels sur les bus de terrains 1. La couche physique ou transmission des bits Elle réalise la transmission des éléments binaires constitutifs des trames sur le support suivant des caractéristiques physiques, électriques, optiques et mécaniques définies par des normes. On lui associe les notions de directionnalité (mono- ou bi-), de temps de propagation, de valeurs pour l’état haut, l’état bas.
Rappels sur les bus de terrains 2. La couche de liaison de données ou niveau trame Elle définit le format ainsi que le codage logique de la trame. Elle permet également la sécurisation du lien physique. Cette couche découpe les séquences de bits transmis sous forme de trames dont la taille varie (de 10 à 1000 octets). Ces trames sont protégées par un code détecteur d’erreur ainsi que par des trames dites d’acquittement.
Rappels sur les bus de terrains 3. La couche réseau ou niveau paquets Permet l’acheminement et le contrôle des données. Les chemins peuvent être prédéfinis dans des tables de routage, mais souvent ces chemins sont choisis dynamiquement pour chaque paquet de données. Chaque réseau possède son propre protocole, lorsque l’on passe d’un réseau à un autre la couche réseau permet l’adaptation entre ces différents réseaux. Peut demeurer absente dans certains protocoles
Rappels sur les bus de terrains 4. La couche transport ou niveau message Elle permet : Le contrôle du transfert des informations de bout en bout; Le découpage des messages en paquets pour le compte de la couche réseau; Le réassemblage des paquets en messages pour les couches supérieures.
Rappels sur les bus de terrains 5. La couche session Permet d’établir une session entre deux machines, les machines peuvent désormais dialoguer et se synchroniser. Elle assure l’ouverture et la fermeture des sessions pour le compte des applications, définit les règles d’organisation de synchronisation du dialogue entre les abonnés
Rappels sur les bus de terrains 6 - La couche présentation Permet de gérer la syntaxe et la sémantique de l’information transmise. L’information transmise sous forme d’octets peut être de l’ASCII ou bien des résultats de calculs possédant un format spécial (virgule fixe, flottante) … La couche présentation permet de coder cette information correctement.
Rappels sur les bus de terrains 7. La couche application Assure l’interfaçage avec les utilisateurs A chaque application correspond son protocole comme par exemple : FTP pour le transfert de fichiers SMTP pour le transfert de courrier électronique
Une définition du temps réel On dit qu’il y a traitement temps réel lorsque le temps de réponse à des interrogations est soumis à des contraintes du système . Il en découle 2 situations: Le système transactionnel où l’on tolère le dépassement d’un temps de réponse donné sur quelques échantillons: la contrainte de temps n’entraîne pas de défaillance du système à condition qu’elle se produise avec une probabilité bornée. C’est le temps réel mou. La commande de processus où le respect d’un temps de réponse donné doit être garanti dans tous les cas sous peine de voir apparaître une dégradation, voire même un effondrement du système, c’est le temps réel dur.
Le déterminisme : Un système est déterministe quand le comportement des sorties de celui ci est parfaitement maîtrisé et ce quelles que soient ses entrées, on peut distinguer : Le déterminisme temporel lorsqu’il y a respect du timing, Le déterminisme évènementiel lorsque tous les évènements sont traités. Il découle de cette notion plusieurs autres : La prévisibilité montre les possibilités que l’on a de prévoir comment le système va se comporter quelles que soient les circonstances. L’urgence : il s’instaure une hiérarchie entre les différents traitements à effectuer ; certains étant plus importants que d’autres.
Fonctionnement du CAN Principes: ”Identifiers” Les trames de données transmises par un nœud sur le bus ne contiennent ni une quelconque adresse du nœud expéditeur ou du nœud destinataire. C’est plutôt le contenu du message, sa signification 4 qui est précisé par un identificateur (ID). Chaque nœud recevant un message regarde si celui-ci est intéressant pour lui grâce à l’ID. Si c’est le cas, il le traite, sinon, il l’ignore. Cet unique ID indique aussi la priorité des messages. Plus la valeur est faible, plus le message sera prioritaire. Si deux nœuds ou plus cherchent à avoir accès au bus en même temps, c’est celui de plus haute priorité qui gagne. Les messages de priorité inférieure seront automatiquement retransmis lorsque le bus sera libre.
La couche Physique Cette partie concerne : les aspects physiques de la liaison entre les nœuds connectés sur un bus CAN. la couche MAC (Médium Access Control), qui est une couche intermédiaire entre la liaison de données et la couche physique, définit l’arbitrage des bits sur le bus et donne à telle ou telle trame sa priorité.
1 – Accès au média et arbitrage 1.1. Le NRZ : bits dominants et récessifs La succession de bits transitant sur le bus est codé avec la méthode du NRZ (Non Return To Zero). Pendant la durée totale du bit, le niveau de tension de la ligne est maintenu, c’est à dire que pendant toute la durée durant laquelle un bit est généré, sa valeur reste constante qu’elle soit dominante ou récessive.
1 – Accès au média et arbitrage Physiquement le bus est une paire torsadée de deux fils électriques : CAN L (low) et CAN H (High) Les états logiques (0 ou 1) sont codés par différence de potentiel entre les deux fils : immunité importante au bruit
1 – Accès au média et arbitrage 1.2. Le bit stuffing Une des caractéristiques du codage NRZ est que le niveau du bit est maintenu pendant toute sa durée. Cela pose des problèmes de fiabilité si un grand nombre de bits identiques se succèdent. La technique du Bit Stuffing impose au transmetteur d’ajouter automatiquement un bit de valeur opposée lorsqu’il détecte 5 bits consécutifs dans les valeurs à transmettre.
1 – Accès au média et arbitrage 1.3 - Le bit timing On définit la plus petite base de temps reconnue sur un bus CAN comme étant le Time Quantum. Cette base de temps est une fraction de l’horloge de l’oscillateur du bus. Un bit dure entre 8 et 25 quantum
1 – Accès au média et arbitrage Exemple de bit timing : lecture d’un bit ISO11898 : High Speed CAN 250 Kbps 1bit = 4µs 1 bit correspond à 32 coup d’horloge La lecture du bit devra être faite au 20éme coup d’horloge Synch Propagation Phase1 Phase2 32 time quantum Bit valide
1 – Accès au média et arbitrage Nécessité d’écouter le bus Anybody ? Nœud 1 Nœud 2 Nœud 3
1 – Accès au média et arbitrage Chaque émetteur écoute la ligne et compare le signal sur la ligne avec le signal qu’il émet. Contrôleur CAN Transmission : Rx et Tx actifs Tx Rx Contrôleur CAN Réception : Rx actif et Tx haute impédance Tx Rx
1 – Accès au média et arbitrage Transmission d’une trame Le contrôleur CAN écoute le bus Si le bus est libre, la trame est émise. Sinon, le contrôleur attend la fin de la trame reçue. Anybody ? 01100010110…
1 – Accès au média et arbitrage Transmission d’une trame Problème, un autre nœud peut commencer à émettre « en même temps » À t=L/c, on détecte un problème… 01100010110… 00110000110… Houston we have a problem 00110000110… 01100010110… L c = 200 000 km/s
1 – Accès au média et arbitrage bus line 1 2 3 Gestion des conflits : CSMA / CA Un niveau prioritaire par rapport à un autre ‘0’ est bit dominant ‘1’ est bit récessif Exemple simple transmission of 011010 Codage NRZ Un même bit doit être reçu et traité par tous les nœuds avant l’émission du suivant (Carrier Sense Media Access / collision avoidance) Etablissez le lien entre longueur du réseau et temps bit (la durée d’émission d’un bit) c= 200 000 km/s B A L
1 – Accès au média et arbitrage Longueurs maximum de bus Dans la pratique, le contrôleur génère des retards supplémentaires (temps de propagation Tp) 2L/c + Tp < Bit-Time
1 – Accès au média et arbitrage Transmission d’une trame 2 nœuds émettent une trame au même moment (à L/c près) A t=L/c une « collision » à lieu 01100010110… 00110000110… Houston we have a problem 00110000110… 01100010110… L c = 200 000 km/s Que va-t-il se passer ?
1 – Accès au média et arbitrage Transmission d’une trame 00110000110… < 01100010110… 00110000110… I’ll try again later L A la première différence dans le début de la trame, le bit dominant écrase le bit récessif Le noeud rouge voit que sa trame ne passe pas, il passe en écoute et attend pour émettre de nouveau. Le noeud jaune n’a rien vu, il continue à émettre. Protocole CSMA/CA (Carrier Sense Multiple Access - Collision Avoidance).
1 – Accès au média et arbitrage Transmission d’une trame, importance des premiers bits
2 – Format d’une trame Les différents champs de la trame ACK delimiter Bit récessif SOF Start of frame Bit dominant Champ de contrôle Longueur du champs de données EOF End of frame CRC 1 11 or 29 1 6 0 - 64 15 1 1 1 7 3 Fin de CRC Bit récessif RTR dominant Identifiant Champ des données ACK slot Bit récessif Inter-trame Identifiant : 11 bits (CAN 2A) ou 29 bits (CAN 2B) Il est porteur de la priorité du message Champ de données : message (température, position, on/off) séquence CRC : calcul de vérification http://dvsoft.developpez.com/Articles/CRC/
2 – Format d’une trame Les différents champs de la trame ACK négatif Bit récessif SOF Start of frame Bit dominant Champ de contrôle Longueur du champs de données EOF End of frame CRC 1 11 or 29 1 6 0 - 64 15 1 1 1 7 3 Fin de CRC Bit récessif RTR dominant Identifiant Champ des données ACK positif Bit récessif Inter-trame L’ACK positif est remplacé par un bit dominant par tout noeud qui a reçu correctement la trame. EOF : séquence de 7 bits récessifs Inter-trame : au moins 3 bits récessifs
2 – Format d’une trame Signal reçu par le µC 2, signal binaire présent sur le bus Signal transmis par le µC 2 (emission d’un message d’identifiant 0x02) Signal transmis par le µC 1 (emission d’un message d’identifiant 0x10) ACK slot ACK slot
2 – Format d’une trame Data frame : trame de données Les différentes trames Data frame : trame de données Remote frame : trame de requête, pour demander une donnée (peu utilisée) Error frame : pour signaler une erreur Overload frame : pour demander un arrêt des envois (saturation du récepteur) Interframe (1) (1) smoke communication signals
Puis-je avoir l’ordre du jour ? 2 – Format d’une trame La trame de requête C’est comme une trame de données avec les différences suivantes Le bit RTR est récessif Pas de champ de données Puis-je avoir l’ordre du jour ?
2 – Format d’une trame Bit stuffing Synchronisation des horloges sur les fronts Introduction de bits de bourrage (bit stuffing) Après 5 bits identiques, un bit de type différent est inséré
3 – La gestion des erreurs Les différents types d’erreurs Au niveau de la forme de la trame - CRC delimiter - ACK delimiter - EOF - Bit stuffing Au niveau des éléments de vérifications - CRC - Acknowledge Dans tous les cas, une erreur est transmise Il y a deux types de trames d’erreur : - error active : 6 bits dominants + 8 bits recessifs sans bit stuffing - error passive : 14 bits récessifs sans bit stuffing Something’s wrong… I must tell the others passive 11111111111111 active 00000011111111
3 – La gestion des erreurs Les 3 états du noeuds - Error active Le noeud transmet des trames error active Les deux compteurs d’erreurs sont inférieurs à 127 - Error passive Le noeud “transmet” des trames error passive - Bus Off Le compteur de transmission est supérieur à 255, le noeud est déconnecté du réseau Mode Erreur Active REC>127 ou TEC>127 requête de Normal Mode REC<128 et TEC<128 Mode Erreur Passive Mode Bus Off TEC>255 REC : compteur d’erreurs de réception TEC : compteur d’erreurs d’émission
3 – La gestion des erreurs Chaque compteur d’erreurs s’incrémente de 8 à chaque apparition d’une erreur. Chaque compteur d’erreur décrémente de 1 à chaque transmission ou réception correcte. erreur ? compteur compteur -1 compteur compteur +8
4 – Les couches physiques Des besoins différents La norme du CAN ne définit pas de couche physique. Il suffit d’avoir la notion de bit dominant et récessif sur le média. C’est dans la très grande partie des cas du câble, mais avec différentes structures d’émetteurs et différentes natures de câble. Une contrainte importante : le coût… Câbles blindés ou non Liaison différentielle ou asymétrique Optocouplage ou non a CAN controller
4 – Les couches physiques La norme CAN HS (High Speed) Transmission différentielle : Haute protection contre les perturbations électromagnétiques t Dominant Recessive CAN - H CAN - L Voltage (V) 3.5 2.5 1.5 2.0V a CAN controller
5 – Différents modes de transmission des données Exemples : CAN bus noeud 0 noeud 1 node 2 Bouton poussoir Identifiant = 0x10 Valeur 0 ou 1 ADC (potentiomètre) Identifiant = 0x02 Valeur de 0 à 15 Priorité plus importante Le noeud 0 consomme la donnée 0x02 Le noeud 1 produit la donnée 0x10 consomme la donnée 0x02 Le noeud 2 produit la donnée 0x02
5 – Différents modes de transmission des données Polling Transmission cyclique Les données ont changé ? Envoi des données Toutes les xxx ms Sur requête Requête des données ? Envoi des données Envoi des données Les données ont changé ? Envoi des données
Bibliographie 2 livres de référence : Réseaux multiplexés pour systèmes embarqués, Dominique Paret, Dunod, 2005 Le bus CAN. Applications : CAL, CANopen, DeviceNet, OSEK, SDS Dominique Paret, Dunod, 2001 Les spécifications officielles : CAN Bosch specifications www.semiconductors.bosch.de/pdf/can2spec.pdf CANopen dans ses moindres détails http://www.can-cia.org/canopen/ Pour développer vos applications : Notes d’applications 228, 713, 738, 754, 876 de Microchip www.microchip.com