Prsentation CANopen Chapitre 1 Connaissances de base Chapitre
Présentation
CANopen Chapitre 1 : Connaissances de base Chapitre 2 : Couche physique Chapitre 3 : Couche liaison Chapitre 4 : Couche application Division - Name - Date - Language 2
CANopen Chapitre 1 : Connaissances de base Partie 1 : Historique Partie 2 : Caractéristiques principales Division - Name - Date - Language 3
Chapitre 1 : Connaissances de base - Partie 1 : Historique 1980 -1983 Création de CAN à l ’initiative de l’équipementier allemand BOSCH pour répondre à un besoin de l’industrie automobile CAN ne définit qu’une partie des couches 1 et 2 du modèle ISO (ISO 11898) 1983 -1987 Attractivité en prix des drivers et micro-contrôleurs intégrant CAN, du fait des gros volumes consommés par l’industrie automobile 1991 Naissance du groupement d’utilisateurs CIA = CAN in Automation : http: //www. can-cia. de/ destiné à promouvoir les applications industrielles Division - Name - Date - Language 4
Chapitre 1 : Connaissances de base - Partie 1 : Historique 1993 Publication par le Ci. A des spécifications CAL = CAN Application Layer Celles-ci décrivent les mécanismes de transmission, mais sans préciser quand ni comment les utiliser 1995 Publication par le Ci. A du profil de communication DS-301 : CANopen 2001 Publication par le CIA de la DS-304 permettant d’intégrer des composants de sécurité de niveau 4 sur un bus CANopen standard (CANsafe). Division - Name - Date - Language 5
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Les spécifications de référence n CANopen a été bâti chronologiquement à partir de plusieurs spécifications : Division - Name - Date - Language § CAN 2. 0 A et B (origine Robert BOSCH) Définit précisément la couche liaison et une partie de la couche physique § CAL = CAN Application Layer (Ci. A) Fournit des outils permettant de développer une application utilisant CAN sans mode d’emploi + précisions sur la couche physique § CANopen (Ci. A) Définit quels outils CAL utiliser et comment Garantit l’interopérabilité des produits par la description de profiles 6
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Modèle OSI 7 APPLICATION 6 PRESENTATION 5 SESSION 4 TRANSPORT 3 RESEAU 2 LIAISON = LLC + MAC 1 PHYSIQUE Division - Name - Date - Language 7
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Device Profile Ci. A DS-401 I/O modules Device Profile Ci. A DS-402 Drives Device Profile Ci. A DS-404 Ci. A DS-4 xx Measuring devices Ci. A DS-301 = Communication profile 7 APPLICATION 6 PRESENTATION Non implémentée 5 SESSION Non implémentée 4 TRANSPORT Non implémentée 3 RESEAU Non implémentée 2 LIAISON = LLC + MAC CAN 2. 0 A et B + ISO 11898 1 PHYSIQUE Division - Name - Date - Language CAL= CAN Application Layer CAN 2. 0 A et B + ISO 11898 + DS-102 + DRP-301 -1 Spécifications CANopen et le modèle OSI 8
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Les spécifications de référence Division - Name - Date - Language 9
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche physique n Medium : Paire torsadée blindée 2 ou 4 fils (si alimentation) n Topologie : Type bus Avec dérivations courtes et résistance fin de ligne n Distance maximum 1000 m n Débit 9 débits possibles de 1 Mbits/s à 10 Kbit/s Fonction de la longueur du bus et de la nature du câble : 25 m à 1 Mbits/s, 1000 m à 10 Kbits/s n NB maxi équipements 128 1 maître et 127 esclaves Division - Name - Date - Language 1 0
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche liaison n Méthode d ’accès au médium : CSMA/CR (Carrier Sense Multiple Access / Collision Recovery) n Chaque équipement peut émettre dès que le bus est libre n Lors d’une collision, un principe de bits récessifs/dominants permet un arbitrage bit à bit non destructif n (si on "néglige" le temps de propagation d’un bit, si 2 abonnés parlent en même temps, celui qui a mis un ‘ 1’ sur le bus, alors que l’autre aura mis un ‘ 0’, verra que le bus est occupé, et il s’arrêtera d’émettre, sans détruire la trame de l’autre) Division - Name - Date - Language 1 1
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Identificateur 10 9 8 7 6 5 4 3 2 1 0 D Station 2 perd l ’arbitrage et arrête d ’émettre Station 2 Station 3 continue d ’émettre, sa trame n ’est pas modifiée Station 3 S 1 Division - Name - Date - Language Champ de commande Station 1 perd l ’arbitrage et arrête d ’émettre R Station 1 RTR SOF Couche liaison : Bits dominants et bits récessifs S 2 S 3 1 2
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche liaison n Méthode d ’accès au médium : CSMA/CR (Carrier Sense Multiple Access / Collision Recovery) n La priorité d ’un message est donné par la valeur de l’identificateur appelé COB-ID (Communication Object IDentifier) situé en début de trame n Le COB-ID est codé sur 11 bits : valeurs comprises entre 0 et 2047 n Le COB-ID de valeur la plus faible est prioritaire Division - Name - Date - Language 1 3
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche liaison n Modèle de communication : Producteur / Consommateur n Chaque message possède un identificateur unique situé en début de trame n La valeur de cet identificateur renseigne les récepteurs sur la nature des données contenues dans chaque message. n Chaque récepteur en fonction de sa configuration, consomme ou non ces données n Taille maxi des données utiles : 8 octets par trame n Sécurité de transmission o Parmi les meilleurs sur les réseaux locaux industriels o De nombreux dispositifs de signalisation et de détections d’erreurs permettent de garantir une grande sécurité de transmission Division - Name - Date - Language 1 4
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche application n CANopen définit : n comment sont transmises les données : o Profil communication DS-301 commun à tous les produits o Définit entre autre l’allocation des identificateurs (COB-ID) pour chaque type de message n quelles sont les données transmises o Profils produits DS-4 xx propres à chaque famille de produit (E/S TOR, E/S analogique, variateurs de vitesse, encodeurs…) n La description de ces fonctionnalités s’effectue par l ’intermédiaire d’un dictionnaire d ’objet : Device Object Dictionnary (OD), matérialisé par un fichier EDS Division - Name - Date - Language 1 5
Chapitre 1 : Connaissances de base - Partie 2 : Caractéristiques principales Couche application 4 types de services sont standardisés : 1. Administration du réseau : paramétrage, démarrage, surveillance (maîtreesclaves) 2. Transmission rapide des données de process (<= 8 octets) : PDO = Process Data Object (modèle producteur-consommateur) 3. - Transmission de données de paramétrage sans contrainte de temps (peuvent être > 8 octets par segmentation) : SDO = Service Data Object (modèle client-serveur) 4. Messages prédéfinis pour gérer les synchronisation, références temporelles, erreurs fatales : SFO = Special Function Object Division - Name - Date - Language 1 6
CANopen Chapitre 2 : Couche physique Partie 1 : Caractéristiques du médium Partie 2 : Connectiques recommandées Division - Name - Date - Language 1 7
Chapitre 2 : Couche physique - Partie 1 : Caractéristiques du médium Couche physique de CANopen Device Profile Ci. A DS-401 I/O modules Device Profile Ci. A DS-402 Drives Device Profile Ci. A DS-404 Ci. A DS-4 xx Measuring devices Ci. A DS-301 = Communication profile 7 APPLICATION 6 PRESENTATION Non implémentée 5 SESSION Non implémentée 4 TRANSPORT Non implémentée 3 RESEAU Non implémentée 2 LIAISON = LLC + MAC CAN 2. 0 A et B + ISO 11898 1 Division - Name - Date - Language PHYSIQUE CAL= CAN Application Layer CAN 2. 0 A et B + ISO 11898 + DS-102 + DRP-301 -1 1 8
Chapitre 2 : Couche physique - Partie 1 : Caractéristiques du médium Description du médium n Paire différentielle torsadée 1 paire si CAN-H / CAN-L 2 paires si CAN-H / CAN-L + alim. n Impédance caractéristique de ligne 120 ohms nominal n Terminaisons de ligne 120 ohms à chaque extrémités n Résistance du fil 70 milli-ohms / mètre nominal n Temps de propagation 5 ns / mètre nominal n Topologie Type bus dérivations les plus courtes possibles Division - Name - Date - Language 1 9
Chapitre 2 : Couche physique - Partie 1 : Caractéristiques du médium Débit - longueur du bus - section câble pour 32 stations maximum Division - Name - Date - Language 2 0
Chapitre 2 : Couche physique - Partie 1 : Caractéristiques du médium Débit - longueur du bus - section câble pour 100 stations maximum Division - Name - Date - Language 2 1
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Connectiques recommandées n Le Ci. A préconise dans sa recommandation DR-303 -1 une liste de connecteurs classée en 3 catégories : n Usage général connecteur SUB-D 9 points, connecteur DIN 41652, connecteur multipôles (câble plat vers SUB-D 9 points), connecteur RJ 10, et connecteur RJ 45 n Usage industriel connecteur Mini Style 5 points, connecteur Micro Style 5 points, connecteur Open Style n Usage particulier Connecteur rond 7 points, connecteur rond 8 points, connecteur rond 9 points, connecteur rond 12 points, connecteur Hand Brid Harting Division - Name - Date - Language 2 2
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Connecteur SUB D 9 points DIN 41652 Mâle coté produit n n n n n Division - Name - Date - Language Pin Signal Description : 1 : Reserved 2 : CAN_L = CAN_L bus line dominant low 3 : CAN_GND = CAN Ground 4 : Reserved 5 : (CAN_SHLD) Optional CAN Shield 6 : (GND) Optional Ground 7 : CAN_H = CAN_H bus line dominant high 8 : Reserved 9 : (CAN_V+) Optional CAN external positive supply 2 3
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Connecteur RJ 45 n Pin Signal Description Division - Name - Date - Language n 1: CAN_H = CAN_H bus line (dominant high) n 2: CAN_L = CAN_L bus line (dominant low) n 3: CAN_GND = Ground / 0 V / V- n 4: Reserved n 5: Reserved n 6: (CAN_SHLD) = Optional CAN Shield n 7: CAN_GND = Ground / 0 V / V- n 8 (CAN_V+) = Optional CAN external positive supply 2 4
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Connecteur 5 -pin Mini Style : 7/8 Mâle coté produit n Pin Signal Description : n 1 : (CAN_SHLD) = Optional CAN Shield Division - Name - Date - Language n 2 : (CAN_V+) = Optional CAN external positive supply n 3 : CAN_GND = Ground / 0 V / V- n 4 : CAN_H = CAN_H bus line (dominant high) n 5 : CAN_L = CAN_L bus line (dominant low) 2 5
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Connecteur Open Style Mâle coté produit n Pin Signal Description : Division - Name - Date - Language n 1 : CAN_GND = Ground / 0 V / V- n 2 : CAN_L = CAN_L bus line (dominant low) n 3 : (CAN_SHLD) = Optional CAN Shield n 4 : CAN_H = CAN_H bus line (dominant high) n 5 : (CAN_V+) = Optional CAN external positive supply 2 6
Chapitre 2 : Couche physique - Partie 2 : Connectique recommandée Fournisseurs recommandés n Câbles o U. I. LAPP Gmb. H Schultze-Delitsch-Str. 25 D-70565 Stuttgart Germany http: //www. lappcable. com n Connecteurs o ERNI Elektroapparate Gmb. H Seestrasse 9 D-73099 Adelberg Germany o ERNI Connectique S. a. r. l, France 27 bis, avenue des Sources / CP 638 F-69258 LYON Cedex 09, http: //connect. erni. com/ Division - Name - Date - Language 2 7
CANopen Chapitre 3 : Couche liaison Partie 1 : Format des trames Partie 2 : La sécurisation des échanges Division - Name - Date - Language 2 8
Chapitre 3 : Couche liaison - Partie 1 : Format des trames CAN 2. 0. A et CAN 2. 0. B n La spécification CAN V 2. 0 comprend 2 versions : CAN 2. 0. A et CAN 2. 0. B n CAN 2. 0. A o correspond au format de trame standard avec un identificateur sur 11 bits o utilisée par CANopen et la plupart des couches applicatives n CAN 2. 0. B o correspond au format de trame étendue avec un identificateur sur 29 bits o peu utilisée Division - Name - Date - Language 2 9
Chapitre 3 : Couche liaison - Partie 1 : Format des trames Structure de la trame CAN 2. 0. A Champ d ’arbitrage 1 11 Début de trame SOF 1 6 0 à 64 Bit RTR Remote Transmission Request Champ de données Indentifieur Division - Name - Date - Language Taille de la trame sans bit stuffing : 47 à 111 bits Champ de commande : compatibilité et longueur 15 111 7 Délimit. CRC ACK Séquence de CRC Slot ACK Fin de trame EOF 3 0
Chapitre 3 : Couche liaison - Partie 1 : Format des trames Les 4 types de trames CAN n Data Frame trames transportant des données d’un producteur vers des consommateurs, sans garantie de traitement n Remote Frame trames de requête en polling émises par un maître vers un ou des esclaves, pour demander le renvoi d ’une trame de données (utilisées pour le Node Guarding, ou pour l ’émission des PDOs si ceux-ci sont configurés en polling) n Error Frame trames émises lorsqu’une station détecte une erreur de transmission sur le bus n Overload Frame trames émises pour demander un laps de temps supplémentaire entre des trames (de données ou de requête) successives Division - Name - Date - Language 3 1
Chapitre 3 : Couche liaison - Partie 1 : Format des trames Data Frame CAN V 2. 0 A Trame de données SOF IDENT 1 D 11 X RTR 1 D CTR DATA CRC ACK EOF 6 X 0 à 64 X 5 X+1 R 1 X+1 R 7 R Intertrame 3 R Remote Frame CAN V 2. 0 A Trame de requête SOF IDENT RTR CTR DATA CRC ACK EOF 1 D 11 X 1 R 6 X 0 à 64 X 5 X+1 R 1 X+1 R 7 R Intertrame 3 R n Une trame de Donnée (Data frame) est prioritaire sur une trame de Requête (Remote frame) Division - Name - Date - Language 3 2
Chapitre 3 : Couche liaison - Partie 1 : Format des trames Error Frame Erreur détectée Trame en cours de diffusion ERROR FLAG ERROR DELIMITER ACTIVE ERROR FLAG : 6 D PASSIVE ERROR FLAG : 6 R 8 R Overload Frame EOF ou ERROR DELIMITER Trame précédente OVERLOAD FLAG 6 D Division - Name - Date - Language OVERLOAD DELIMITER 8 R 3 3
Chapitre 3 : Couche liaison - Partie 2 : La sécurisation des échanges Les mécanismes de sécurisation n Au niveau du bit lors de l ’émission de 5 bits consécutifs identiques, est introduit volontairement un bit supplémentaire dit de "stuffing", de valeur opposée. Ce bit est testé et éliminé par le récepteur n Au niveau de la structure des trames délimiteurs sont intégrés pour permettre la vérification de la structure CRC Delimiter, ACK Delimiter, End of Frame, Error Delimiter, Overload Delimiter . n Au niveau de la validité du contenu un CRC permet aux récepteurs de vérifier la cohérence des données reçues n ACK slot cette fenêtre permet à l ’émetteur de savoir si son message a bien été reçu par au moins une station (bit dominant) Division - Name - Date - Language 3 4
Chapitre 3 : Couche liaison - Partie 2 : La sécurisation des échanges Compteurs d’erreurs n Chaque noeud comporte obligatoirement deux compteurs o TEC : Transmit Error Counter o REC : Receive Error Counter n Ces compteurs s ’incrémentent et se décrémentent en utilisant un mécanisme de pondération sophistiqué gravé dans le silicium n Suivant la valeur de ces compteurs, le nœud se trouve dans un des 3 états suivant : o Erreurs actives o Erreurs passives o Bus OFF (driver d ’émission déconnecté du bus). Division - Name - Date - Language 3 5
Chapitre 3 : Couche liaison - Partie 2 : La sécurisation des échanges Valeur des compteurs / état du noeud Reset et configuration Erreurs actives REC > 127 ou TEC > 127 REC < 128 et TEC < 128 Erreurs passives 128 occurrences de 11 bits récessifs consécutifs (fin de trames sans erreurs) TEC > 255 Bus OFF Division - Name - Date - Language 3 6
Chapitre 3 : Couche liaison - Partie 2 : La sécurisation des échanges Comportement en cas d’erreur de communication détecté n Etat Erreurs actives o dès la détection du défaut, le nœud émet une trame Error Frame, avec un champ ACTIVE ERROR FLAG o les 6 bits dominants émis transgressent la loi de bit stuffing, et provoquent une réaction en chaîne des autres nœuds qui détruit la trame en cours n Etat Erreurs passives o Dès la détection du défaut, le nœud émet une trame Error Frame avec un champ PASSIVE ERROR FLAG o Les bits récessifs émis n ’ont aucune influence sur la trame en cours d ’émission n Etat Bus OFF : Le nœud est déconnecté et surveille le bus Division - Name - Date - Language 3 7
CANopen Chapitre 4 : Couche application Partie 1 : Concepts de base de CANopen Partie 2 : Objets et services CANopen Division - Name - Date - Language 3 8
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen s’appuie sur CAL Device Profile Ci. A DS-401 I/O modules Device Profile Ci. A DS-402 Drives Device Profile Ci. A DS-404 Ci. A DS-4 xx Measuring devices Ci. A DS-301 = Communication profile 7 APPLICATION 6 PRESENTATION Non implémentée 5 SESSION Non implémentée 4 TRANSPORT Non implémentée 3 RESEAU Non implémentée 2 LIAISON = LLC + MAC CAN 2. 0 A et B + ISO 11898 1 PHYSIQUE Division - Name - Date - Language CAL= CAN Application Layer CAN 2. 0 A et B = ISO 11898 -1 et 2 ISO 11898 + DS-102 3 9
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Couche application n CANopen définit : o comment sont transmises les données : Profil communication DS-301 commun à tous les produits – Définit entre autre l’allocation des identificateurs COB-ID pour chaque type de message. o quelles sont les données transmises : Profils produits DS-4 xx propre à chaque famille de produit (E/S TOR, E/S analogique, variateurs de vitesse, encodeurs…) n La description des ces fonctionnalités s’effectue par l’intermédiaire d ’un dictionnaire d ’objet Device Object Dictionnary (OD) Division - Name - Date - Language 4 0
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Dictionnaire d’Objets [Object Dictionary] n Le Dictionnaire d’Objets (OD) est un groupement ordonné des objets accessibles sur un type de nœud donné, via : § un index, sur 16 bits § éventuellement un sous-index, sur 8 bits n Le Dictionnaire d’Objets (OD) contient l’ensemble des paramètres décrivant un produit, ainsi que son comportement vis à-vis du réseau n Cette description est matérialisée par un fichier EDS : Electronic Data Sheet n de format ASCII, respectant une syntaxe stricte et exploitable par les logiciels de configuration du bus (Sycon etc…) Division - Name - Date - Language 4 1
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Structure du Dictionnaire d’Objets [Object Dictionary] Division - Name - Date - Language 4 2
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Profils CANopen n Profil de communication DS-301 o Décrit la structure générale de l’Object Dictionary, et des objets se trouvant dans la zone "Communication profile area" : index 1000 à 1 FFF o Applicable à tous les produits CANopen n Profils équipements DS-4 xx o Décrivent pour les différents types de produit (modules E/S TOR, E/S analogiques, variateurs, appareil de mesures, … ) les différents objets associés – Objets standardisés : Index 6000 à 9 FFF – Objets spécifiques : Index 2000 à 5 FFF o Certains objets sont obligatoires, d ’autres optionnels o Ils sont accessibles soit en lecture, soit en lecture et écriture Division - Name - Date - Language 4 3
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Extrait du fichier EDS CANopen ATV 58 [File. Info] File. Name=A 58_F. eds File. Version=1 File. Revision=2 Description=Carte Option ATV 58 Creation. Time=00: 00 AM Creation. Date=12 -05 -2000 Created. By=Marie-Annick Menanteau, Schneider Electric [Comments] Lines=6 Line 1=Used profile: 402 Line 2=Manufacturer device name: VW 3 A 58306 Line 3=Hardware version: 1. 0 Line 4=Software version: 1. 0 Line 6= This is the EDS file for the CANopen Schneider Electric ATV 58 drive module CAN Communication Adapter [Device. Info] Vendor. Name=Schneider Electric Product. Name=ATV 58_F Product. Version=1 Product. Revision=1 Baud. Rate_10=0 Baud. Rate_20=0 Baud. Rate_50=0 Baud. Rate_100=0 Baud. Rate_125=1 Baud. Rate_250=1 Baud. Rate_500=1 Baud. Rate_800=0 Baud. Rate_1000=1 Granularity=0 x 8 Vendor. Number=0 x 0200005 a Product. Number=0 Simple. Boot. Up. Master=0 Extended. Boot. Up. Master=0 Simple. Boot. Up. Slave=1 Extended. Bootup. Slave=0…. [Mandatory. Objects] Supported. Objects=12 1=0 x 1000 2=0 x 1001 3=0 x 6040 4=0 x 6041 5=0 x 6042 6=0 x 6043 7=0 x 6044 8=0 x 6046 9=0 x 6048 10=0 x 6049 11=0 x 6060 12=0 x 6061 Division - Name - Date - Language [1000] Parameter. Name=Device Type Object. Type=7 Data. Type=0 x 0007 Access. Type=RO Default. Value=0 x 10192 PDOMapping=0 4 4
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Extrait du fichier EDS CANopen ATV 58 [1400] Sub. Number=0 x 03 Parameter. Name=receive PDO 1 parameter Object. Type=6 [1400 sub 0] Parameter. Name=number of entries Object. Type=7 Access. Type=CONST Data. Type=0 x 0005 PDOMapping=0 Low. Limit=2 High. Limit=4 Default. Value=0 x 2 Division - Name - Date - Language [1400 sub 1] Parameter. Name=COB-ID Object. Type=7 Access. Type=RW Data. Type=0 x 0007 PDOMapping=0 Low. Limit= High. Limit= Default. Value=$NODEID+0 x 200 [1400 sub 2] Parameter. Name=transmission type Object. Type=7 Access. Type=CONST Data. Type=0 x 0005 PDOMapping=0 Low. Limit= High. Limit= Default. Value=0 x. FF 4 5
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Extrait du fichier EDS CANopen ATV 58 [1600] Sub. Number=0 x 03 Parameter. Name=receive PDO mapping Object. Type=6 [1600 sub 0] Parameter. Name=number of mapped objects Object. Type=7 Access. Type=RW Data. Type=0 x 0007 PDOMapping=0 Low. Limit=0 High. Limit=2 Default. Value=0 x 2 Division - Name - Date - Language [1600 sub 1] Parameter. Name=1. mapped object Object. Type=7 Access. Type=RW Data. Type=0 x 0007 PDOMapping=0 Low. Limit= High. Limit= Default. Value=0 x 60400010 [1600 sub 2] Parameter. Name=2. mapped object Object. Type=7 Access. Type=RW Data. Type=0 x 0007 PDOMapping=0 Low. Limit= High. Limit= Default. Value=0 x 60420010 4 6
Chapitre 4 : Couche application - Partie 1 : Concepts de base de CANopen Résumé des concepts de base n Chaque type de message CANopen possède un identificateur COB-ID unique, codé sur 11 bits : valeurs comprises entre 0 et 2047 n Chaque nœud peut envoyer un message dès que le réseau est libre n Les collisions sont résolues suivant la priorité de chaque message n L ’identificateur de valeur la plus basse est prioritaire n Un message CAN peut transporter au maximum 8 octets de données utiles Division - Name - Date - Language 4 7
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Profil de communication CANopen DS-301 Le profil de communication CANopen définit 4 fonctions standardisés : 1. Administration du réseau : démarrage du bus, affectation des identificateurs, paramétrage, et surveillance NMT = Network Managemen. T (modèle maître-esclave) 2. Transmission rapide des Données de Process (<= 8 octets) : PDO = Process Data Object (modèle producteur-consommateur) 3. Transmission de Données de Paramétrage sans contrainte de temps SDO = Service Data Object (modèle client-serveur) (peuvent être > 8 octets par segmentation) 4. Messages prédéfinis pour gérer les synchronisation, références temporelles, erreurs fatales : SFO = Special Function Object Division - Name - Date - Language 4 8
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Administration du Réseau : NMT Démarrage du bus Diagramme d ’état correspondant au « CANopen minimum boot-up » * (service obligatoire) Transitions effectuées par le maître NMT 1: Start_Remote_Node 2: Stop_Remote_Node 3: Enter_Pre-Operational_State 4: Reset_Node 5: Reset_Communication 6: Initialisation du nœud terminée Division - Name - Date - Language Types d ’objet de communication autorisés a. NMT b. Node Guard c. SDO NOTA : d. EMCY Il existe un autre diagramme d ’état e. PDO. « Extended boot-up » 4 9
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Allocation des Identificateurs n L ’allocation des identificateurs peut s’effectuer par 3 méthodes : o En utilisant l’allocation par défaut : CANopen Predefined Set – existence de ce mode d ’allocation obligatoire – disponible dans l’état Pre-Opérationnel – permet de réduire la phase de configuration du réseau – données de process échangées suivant un mode maître esclaves o Par application, dans l’état Pre-Operationnel – Ecriture dans les objets correspondant du dictionnaire via le service SDO o En utilisant le service DBT (Distri. Bu. Tor) – possible sur les produits qui supportent la fonction « Extended boot up » – affectation des identificateurs effectuée automatiquement par ajout d’étapes supplémentaires entre l’état Pre-Operationnel et Operationnel Division - Name - Date - Language 5 0
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Allocation par défaut des Identificateurs n Pour réduire la phase de configuration du réseau a été défini un système obligatoire d’allocation des identificateurs par défaut n Ce mode d’allocation est effectif dans l’état "Pré-Operationnel", juste après la phase d ’initialisation n Elle est basée sur un partage de l’identificateur COB-ID en 2 parties : 10 9 8 7 Code Fonction 6 5 4 3 2 1 0 Node ID Code Fonction : permet le codage de 4 PDOs en réception, 4 PDOs en émission, 1 SDO (occupant 2 Identificateurs), 1 EMCY object, 1 Node Guardind Identifier, 1 SYNC object, 1 Time Stamp object o Node ID : correspond à l’adresse du nœud, codée par exemple par DIP switches o Division - Name - Date - Language 5 1
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Allocation par défaut des Identificateurs Division - Name - Date - Language 5 2
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen 1024 identificateurs maximum résersvés pour les PDOs Allocation par défaut des Identificateurs L ’allocation des identificateurs par défaut n’est utilisable que pour les nœuds n ’utilisant que les 4 premiers PDO (Le cinquième PDO recouvre la zone réservée aux SDO) Division - Name - Date - Language 5 3
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Allocation par défaut des Identificateurs Sorties Entrées Master Rx. PDO_1_SL 1 Rx. PDO_2_SL 1 Rx. PDO_1_SL 2 Rx. PDO_2_SL 2 Rx. PDO_1_SL 3 Rx. PDO_2_SL 3 Tx. PDO_1_SL 1 Tx. PDO_2_SL 1 Tx. PDO_1_SL 2 Tx. PDO_2_SL 2 Tx. PDO_1_SL 3 Tx. PDO_2_SL 3 Division - Name - Date - Language Esclave 1 Tx. PDO_1_SL 1 Tx. PDO_2_SL 1 Rx. PDO_1_SL 1 Rx. PDO_2_SL 1 Esclave 2 Tx. PDO_1_SL 2 Tx. PDO_2_SL 2 Rx. PDO_1_SL 2 Rx. PDO_2_SL 2 Tous les nœuds (esclaves) communiquent avec une station centale (maître) Esclave 3 Tx. PDO_1_SL 3 Tx. PDO_2_SL 3 Rx. PDO_1_SL 3 Rx. PDO_2_SL 3 5 4
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Modification de l’allocation par défaut Permet d ’échanger des données directement sans passer par le maître (PDO linking) Produit X Utilisation du concept producteur-consommateur Exemple : Commande d’axes Produit Y Division - Name - Date - Language Produit Z 5 5
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Process Data Objects = PDOs n Services utilisés pour l ’émission en temps réel de données de process de faible taille (<= 8 octets) n Ils permettent à un équipement producteur de mettre à disposition d’un ou plusieurs consommateurs une variable de taille maximum de 64 bits sans overhead n Ce service est un service non confirmé Division - Name - Date - Language 5 6
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Description des PDOs n Chaque PDO en émission ou réception est décrit par 2 objets dans le Dictionnaire d’Objets : o le PDO Communication Parameter, qui indique comment est transmis ou reçu un PDO : o § COB-ID utilisé par le PDO § mode de transmission/réception utilisé § durée minimale entre 2 messages (inhibit time) pour les PDOs en émission le PDO Mapping Parameter indique quelles sont les données transportées : Division - Name - Date - Language § liste des objets du dictionnaire d’objet (OD) mappés dans le PDO § taille de chaque objet en bits 5 7
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Objets Tx. PDO Communication parameter PDO en émission : Index 0 x 1800 à 0 x 19 FF Exemple : Tx. PDO 1 = 0 x 1800, Tx. PDO 2 = 0 x 1801, Tx. PDO 3 = 0 x 1802, Tx. PDO 4 = 0 x 1803 Division - Name - Date - Language 5 8
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Objets Tx. PDO Mapping parameter PDO en émission : Index 0 x 1 A 00 à 0 x 1 BFF Division - Name - Date - Language 5 9
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Objets Rx. PDO Communication parameter PDO en réception : Index 0 x 1400 à 0 x 15 FF Division - Name - Date - Language 6 0
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Objets Rx. PDO Mapping parameter PDO en réception : Index 0 x 1600 à 0 x 17 FF Division - Name - Date - Language 6 1
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Modes d’émission des PDOs n Synchrone : sur réception d’un message SYNC o Acyclique : § émission pré-déclenchée par l’occurrence d’un événement sur le nœud (événement spécifié dans le profil du nœud) § émission pré-déclenchée sur réception d’une trame "Remote Request" (polling) émise depuis un autre nœud o Cyclique § émission déclenchée périodiquement, après réception de 1, 2, . . . jusqu’à 240 messages SYNC n Asynchrone transmission déclenchée par l’occurrence d ’un événement sur l’équipement (événement spécifié dans le profil du nœud ) o transmission déclenchée sur réception d’une trame "Remote Request" émise depuis un autre nœud o Division - Name - Date - Language 6 2
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Emission synchrone acyclique des PDOs Sur événement - Transmission Type = 0 SYNC Evénement sur Nœud X SYNC Tx. PDO Sur réception d ’une Remote Request (polling) - Transmission Type = 252 SYNC Remote request vers Nœud X Division - Name - Date - Language SYNC Tx. PDO SYNC Remote SYNC request vers Tx. PDO Nœud X 6 3
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Emission synchrone cyclique des PDOs Cyclique sur n signaux de synchro - Transmission Type = 1 à 240 (nombre de messages SYNC) SYNC Tx. PDO Exemple si n = 3 Division - Name - Date - Language SYNC SYNC Tx. PDO Exemple si n = 3 6 4
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Emission asynchrone des PDOs Sur événement - Transmission Type : 254 = événement spécifique; 255 = événement défini dans profil SYNC SYNC Evénement Tx. PDO sur Nœud X Sur réception d’une Remote Request (polling) - Transmission type = 253 SYNC Remote request vers Nœud X Tx. PDO Division - Name - Date - Language SYNC Remote SYNC request vers Nœud X Tx. PDO 6 5
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Emission des PDOs : Inhibit time n Pour garantir que des objets ayant un niveau faible de priorité puisse être transmis, il est possible d’affecter un temps minimum entre 2 émissions d’un même PDO. n Cette valeur est renseignée dans le paramètre «Inhibit time» des objets Tx. PDO, communication parameters index 0 x 1800 à 0 x 180 F. Division - Name - Date - Language 6 6
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Réception synchrone acyclique des PDOs Sur événement - Transmission Type = 0 SYNC SYNC Rx_PDO Tx_PDO Prise en compte du PDO reçu Division - Name - Date - Language 6 7
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Réception synchrone cyclique des PDOs Cyclique sur n signaux de synchro - Transmission Type = 1 à 240 SYNC Rx. PDO SYNC T_PDO Exemple si n = 3 Prise en compte du PDO reçu Division - Name - Date - Language SYNC Prise en compte du PDO reçu 6 8
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Réception asynchrone des PDOs Sur événement - Transmission type=254 SYNC Rx. PDO SYNC T_PDO Prise en compte du PDO reçu Division - Name - Date - Language 6 9
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Service Data Objects = SDO n Ces services sont utilisés pour la transmission en point à point de données de paramétrage n’ayant pas de contraintes de temps. n Ils permettent à un équipement client (gestionnaire du bus) d’accéder en écriture ou en lecture au dictionnaire d’objets d’un équipement serveur (stations 1 à 127), en l’adressant par son Index et Sub-index n La taille des données peut dépasser 8 octets : dans ce cas un système de segmentation des données est activé n Le résultat d ’une écriture ou d ’une lecture est confirmé par une réponse n Un échange SDO requiert 2 COB-IDs : un pour la requête, l ’autre pour la réponse Division - Name - Date - Language 7 0
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO n SYNC = Synchronization Object : n Objets utilisés pour synchroniser l’acquisition de données d’entrées, ou la mise à jour de de données en sorties (commande d ’axes par exemple). n Le Gestionnaire du bus émet le message SYNC selon la période de communication (cycle period) définie lors de la configuration Division - Name - Date - Language 7 1
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO n Time Stamp Object : n L ’objet Time-Stamp fournit une référence de temps commune à tous les stations. n Ce temps est codé sur 6 octets et représente un temps absolu en ms à partir du 1 er janvier 1984 n Il permet de synchroniser l ’horloge locale de toutes les stations. Division - Name - Date - Language 7 2
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO n EMCY Object : n Les objets EMCY (Emergency) sont utilisés pour transmettre des défauts applicatifs associés à chaque station (courant, tension, température, etc…) Division - Name - Date - Language 7 3
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO n 2 mécanismes permettent de surveiller l’état des stations présentes sur le bus o Node guarding § Fonctionne suivant un concept maître esclave (polling) § permet au manager du bus de demander (Remote request) l ’état de chaque station, selon une période définie en configuration o Heartbeat § Fonctionne suivant un concept producteur consommateur. § L’état de la station est produit cycliquement sur le réseau, à une période définie en configuration § Ce mécanisme, nouvellement spécifié, remplace le node guarding sur les nouveaux produits (meilleurs utilisation de la bande passante) Division - Name - Date - Language 7 4
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO Node guard Object : n Le maitre NMT surveille l’état des esclaves connectés sur le bus en émettant périodiquement (Guard time) une trame ‘ remote frame ’ demandant son Node guard object à chaque esclave n Dès réception, l’esclave répond au maître n Les esclaves peuvent éventuellement surveiller le maître NMT : il s ’agit alors du Life guarding : Life Time = Guard Time x Life Time Factor n Si pendant un temps égal au Life Time un esclave ne reçoit pas de polling, il génère un événement "Life guarding", passe en défaut communication et envoie un objet EMCY Division - Name - Date - Language 7 5
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO Node guard Object : n Le maitre NMT scrute régulièrement l’état de chacun des esclaves par une Remote Frame et les compare aux valeurs précédentes enregistrées dans une table. n Si une différence est détectée, l’information est remontée à l’application par l ’événement "Network Event" Division - Name - Date - Language 7 6
Chapitre 4 : Couche application - Partie 2 : Objets et services CANopen Special Function Objects = SFO Heartbeat : n La fonction Heartbeat nouvellement spécifiée permet d ’économiser la bande passante par rapport au Node Guarding n Le producteur de Heartbeat transmet le message Heartbeat suivant une période définie dans l ’objet « Heartbeat Producer Time » n Le consommateur de Heartbeat vérifie qu ’il reçoit le message Heartbeat dans la fenêtre de temps défini dans l ’objet « Heartbeat Consumer Time » . Division - Name - Date - Language 7 7
- Slides: 77