CANopen
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

CANOpen est une couche applicative (couche 7 du modèle OSI) pour les bus de terrain du type CAN (Controller area network) fonctionnant en temps réel. Il est utilisé dans de nombreux domaines : automobile, agricole, industriel (ascenseurs, escaliers roulants) et médical (rayons X, salles d'opérations). Ce bus de terrain (Terme employé dans l'industrie pour qualifier des systèmes d'interconnexion d'appareils de mesure, de capteurs, d'actionneurs, … Les bus de terrain les...) est connu pour être une solution de communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la machine...) économique et efficace.

CANOpen (CANOpen est une couche applicative (couche 7 du modèle OSI) pour les bus de terrain du type CAN (Controller area network) fonctionnant en temps réel. Il est utilisé dans de nombreux domaines : automobile, agricole, industriel (ascenseurs,...) est une reprise de la couche applicative CAL développée (En géométrie, la développée d'une courbe plane est le lieu de ses centres de courbure. On peut aussi la décrire comme l'enveloppe de la famille des droites normales à la courbe.) par Philips Medical Systems ; il reprend les services et protocoles de gestion de bus et de messages de la couche CAL tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) en définissant le contenu des messages et en intégrant la notion de système distribué. Un élément maître du réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit rets », c'est-à-dire un petit...) coordonne les éléments esclaves. La vitesse (On distingue :) de transmission peut théoriquement atteindre 1 Mbit/s.

Les Dictionnaires d'objets

Un dictionnaire d'objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une étiquette verbale. Il est...) définit, pour chacune des entrées/sorties d'un périphérique CANOpen (appelé nœud), l'information sur le format de la donnée (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un...) ainsi que sur le moyen d'y accéder. Chaque entrée du dictionnaire possède un index unique ainsi qu'une liste de sous-index. On accède à un objet grâce au couple [index, sub-index].

Une des principales nouveautés de CANOpen est la notion de dictionnaire d'objets (Object Dictionary ou OD) déjà présente dans d'autres bus de terrain comme Profibus. Pour chaque nœud CANOpen présent sur le bus il existe un OD généralement sous forme de fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par...) texte au format EDS (Electronic Data Sheet) permettant de connaître l'ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut...) des entrées/sorties d'un nœud. Il est possible de créer à partir d'un fichier au format EDS un autre fichier représentant une configuration donnée (Dans les technologies de l'information, une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction, d'un événement, etc.) d'un nœud pour un bus. Ce fichier, très similaire à l' EDS, est alors appelé DCF (Device Configuration File). En faisant une analogie avec la programmation orientée objet (La programmation par objet (du terme anglo-saxon Object-Oriented Programming ou OOP), est un paradigme de programmation, il consiste en la définition et l'assemblage de briques logicielles appelées...) (POO) on peut dire que l' EDS est la classe tandis que le DCF représente une instance de cette classe.

Les OD sont divisés en profiles. Les plus utilisés sont les suivants :

  • Communication Profile Area
  • Manufacturer Specific Profile Area
  • Standardised Device Profile Area

Toutes les entrées de ces profiles sont définies par la CIA (Can In Automation) excepté pour le Manufacturer Specific Profile Area qui est libre d'utilisation.

Les protocoles de communication

CANOpen offre différents moyens pour accéder aux données de l'OD.

Service Data Object (SDO)

Ce service permet l'accès aux paramètres des périphériques (ou nœuds) présents dans le dictionnaire d'objet, la communication est alors du type question/réponse et chaque message (La théorie de l'information fut mise au point pour déterminer mathématiquement le taux d’information transmis dans la communication d’un message...) est confirmé par une sorte d'acknowledge : Le maître accède a l'objet de l'OD grâce au couple [index,sub-index] et l'esclave répond soit en envoyant les données désirées soit en confirmant le bon déroulement de l'écriture de l'objet. Que ce soit en lecture ou en écriture, le format des données est vérifié et le message contient une confirmation du bon déroulement de la requête (Le mot requête, synonyme de demande, est employé dans les domaines suivants :).

Process Data Object (PDO)

Il est destiné au transfert de données temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) réel, ce protocole permet de mettre dans un même message un ou plusieurs champs de l'OD. On peut donc mettre dans un même message jusqu'à 64 messages de 1 bit. Ce type de message réduit donc fortement l'overhead (le nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de bits ne transportant pas de l'information utile). L'autre avantage des PDO est que la lecture se fait au travers d'un message court de type synchrone ou asynchrone qui est reçu par l'ensemble des nœuds présents sur le bus. Ce mécanisme permet de lire une information donnée au même instant (L'instant désigne le plus petit élément constitutif du temps. L'instant n'est pas intervalle de temps. Il ne peut donc être considéré comme...) sur l'ensemble des capteurs/nœuds du bus.

Heart Beat

C'est un protocole pour les contrôles d'erreur. Il s'agit d'un message périodique d'un nœud signalant sa présence et son état au maître du réseau.

La Machine d'état

Quatre états sont possibles pour un nœud :

  • initialisation: utilisation du message Boot-up pour communiquer avec l'élément maître du réseau ;
  • pré-opérationnel : seuls les messages SDO sont permis ;
  • opérationnel : les messages SDO et PDO sont permis ;
  • stoppé : seule la communication à l'élément maître est permise.

Structure Générale d'une trame (Le mot trame peut désigner :) CAN

Start (STart était un magazine américain traitant de l'informatique et du jeu vidéo, dédié plus particulièrement à l'Atari ST. C'est un spin-off du...) of frame Arbitration Field Control Field Data Field CRC Field ACK Field End Of Frame
1 bit 12 ou 32 bit 6 bit de 0 a 8 octets 16 bit 2 bit 7 bit

Une trame de données CAN commence par 1 bit dominant le Start of Frame qui permet la re-synchronisation des nœuds, puis, elle est suivie d'une trame d'arbitration. La suivante, le champ (Un champ correspond à une notion d'espace défini:) de contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) contient la longueur (La longueur d’un objet est la distance entre ses deux extrémités les plus éloignées. Lorsque l’objet est filiforme ou en forme de lacet, sa...) du champ de données. Après le champ de données vient le Cyclic Redundancy Check qui est utilisé pour détecter une éventuelle erreur de transmission.

Taille d'un message

Le fait que CAN utilise un protocole de non retour à zéro (Le chiffre zéro (de l’italien zero, dérivé de l’arabe sifr, d’abord transcrit zefiro en italien) est un symbole...) (Non-Return-Zero ou NRZ) implique l'utilisation de bits de remplissage (stuff bit). Ces bits de remplissage sont rajoutés dans les messages CAN afin qu'il n'y ait jamais plus de 5 bits ayant la même valeur.

Les champs pouvant être modifiés par le bit stuffing sont les suivants :

  1. Arbitration Field
  2. Control Field
  3. Data Field
  4. CRC Field

Il est important de prendre en compte ces bits de remplissage pour pouvoir déterminer combien de nœuds peuvent être utilisés sur un même bus en fonction de la fréquence (En physique, la fréquence désigne en général la mesure du nombre de fois qu'un phénomène périodique se reproduit par unité de temps. Ainsi...) des échanges de données.

La formule ci-contre représente la dimension (Dans le sens commun, la notion de dimension renvoie à la taille ; les dimensions d'une pièce sont sa longueur, sa largeur et sa profondeur/son épaisseur, ou bien son diamètre si c'est une pièce de...) d'un message CAN en fonction de la longueur de son champ de données (Data Length Code ou DLC) dans le meilleur et dans le pire cas de l'algorithme de stuffing:

Pour un message au format CAN standard :  (34 + 8 \times DLC) \leq TailleMessage < {34 + 8 \times DLC - 1\over 4} + (34 + 8 \times DLC)

Pour un message au format CAN étendu :  (54 + 8 \times DLC) \leq TailleMessage < {54 + 8 \times DLC - 1\over 4} + (54 + 8 \times DLC)

Dans la réalité, il est impossible d'atteindre le pire des cas ou NombreStuffBit = \left( {TailleMessage\over 4} \right) car le champ de control contient deux bits dominants et le champ DLC ayant comme valeur maximum 8, il ne peut pas contenir que des bits de même valeur.

Il existe une formule empirique donnant une approximation (Une approximation est une représentation grossière c'est-à-dire manquant de précision et d'exactitude, de quelque chose, mais encore assez significative pour être utile. Bien qu'une approximation soit le plus...) du nombre maximum de stuff bits pour une trame CAN d'un DLC donné. Cette formule est exacte dans plus de 99% des cas: NombreMax = NombreTheoriqueMaximum − 3

COB-ID

Chaque trame CANopen commence par un COB-ID faisant office d'identifiant (En informatique, on appelle identifiants (également appelé parfois en anglais login) les informations permettant à une personne de...) de cette trame. Au cours de la phase (Le mot phase peut avoir plusieurs significations, il employé dans plusieurs domaines et principalement en physique :) de configuration, chacun des noeuds reçoit le COB-ID de la (ou les) trame(s) dont il est le récepteur ou l'émetteur.

Champ de donnée

Page générée en 0.457 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique