CAN Support Cours 3GE
CAN Support Cours 3GE
CAN Support Cours 3GE
communication industrielle
A, UM5R
ARCHITECTURE, CONCEPTS , ET ELEMENTS DU BUS CAN
élément de module. Enfin Une liste non exhaustive de
I. INTRODUCTION références de publications sur le CAN termine le manuscrit.
RESEAU
2) L’interface dépendant du médium (MDI)
Filtrage d‟acceptation des messages L‟interface MDI définit les types et assignations de la
LLC Notification de surcharge connectique d‟un nœud au bus. Pour le bus CAN, plusieurs
Recouvrement des erreurs
types de connecteurs peuvent être utilisés (figure 3): le DB9, le
Encapsulation/Décapsulation bornier industriel, le M-12, ou encore le HE10. Les
LIAISON
Codage (bit stuffing destuffing) assignations des signaux aux broches des connecteurs
Arbitrage du bus
MAC
Détection, signalisation des erreurs couramment employés sont définis dans la table I.
acquittement des messages
Sérialisation/Dé-sérialisation
Bit timing
PCS Synchronisation
Codage/Décodage du bit
PHYSIQUE
Codec des niveaux logiques
PMA
Caractéristiques électriques
logiques et vis-versa. Le CAN définit deux états logiques : (i) SEGMENT SIGLE MIN MAX
l‟état dominant qui correspond au niveau logique „0‟, et l‟état SYNCHRONISATION SYNC_SEG 1 TQ 1 TQ
PROPAGATION PROP_SEG 1 TQ 8 TQ
récessif correspondant au niveau logique „1‟. Ces deux états BUFFER PHASE1 PHASE_SEG1 1 TQ 8 TQ
sont interprétés en terme de la différence de tension entre les BUFFER PHASE2 PHASE_SEG2 1 TQ 8 TQ
lignes CANH et CANL du bus. Pour une alimentation de 5v RE-SYNC.JUMP WIDTH SWJ 1 TQ 4TQ
les états dominant et récessif d‟un bit CAN HIGH SPEED sont
définis par la caractéristique de transfert de la sous couche Le débit maximum du bus est égal à l‟inverse de la durée
PMA tracée sur la figure 4, (à noter que Le niveau entre 0.5V nominale d‟un bit (Nominal Bit Time), cette dernière étant
et 0.9V est indéterminé). exprimé en Time Quantum (TQ) qui est un multiple (32 maxi)
de la période d‟horloge de l‟oscillateur d‟un nœud.
C. La sous-couche PC (Physical Signalling )
Comme précisé sur la figure 2, la sous couche PCS travaille TBIT TSYNC _ SEG TPROPA_ SEG TPROPA_ SEG TPHASE1_ SEG TPHASE2 _ SEG
au niveau du bit. Elle s‟occupe de trois taches principales : le
codage du bit (bit encoding), la structure temporelle du bit Paramétrage recommandé pour le bit timing : Pour une
(bit timing), et la synchronisation au niveau du bit. horloge interne de 16 MHz à 0.1%, avec un mode
d‟échantillonnage MONO-SAMPLING (SAM = 0), un mode
1) Encodage du bit de synchronisation sur les fronts Récessif à dominant
Le codage des bits CAN sur les lignes du bus (CANH et
uniquement (SYNC=0), un Synchronisation jump width d‟un
CANL) est du type NRZ (Non Return To Zéro). Dans le
TQ (SJW = 0), et un Phase Segment2 de deux TQ (TSEG2 =
contexte des réseaux de communication industrielle ce codage
1), il est recommandé d‟ajuster les paramètres du bit timing
présente plusieurs avantages: sa simplicité de mise en œuvre,
comme indiqué sur la table IV.
la distinction nette entre les niveaux logiques et bas, son bon
rapport signal sur bruit (SNR), la détection facile de l‟état TABLE IV RECOMMENDED BIT TIMING SETTINGS
IDLE (absence de signaux) du bus, et la minimisation du BIT NOMINAL
BUS TIME TIME SAMPLE POINT
nombre de transitions. Toutes fois il présente le risque de perte RATE
LENGTH(M)
BIT TIME
QUANTA/BIT QUANTUM(ns) LOCATION
de synchronisation lorsqu‟une trame de donnée présente (MBIT/S) (µS)
1.000 25 1.0 8 125 6 TQ
plusieurs bits consécutif de même niveau. Comme rapporté 0.800 50 1,25 10 125 8 TQ
dans la première partie de ce manuscrit, ce problème est résolu 0.500 100 2 16 125 14 TQ
par la technique du BIT-STUFFING. 0.250 250 4 16 250 14 TQ
0.125 500 8 16 500 14 TQ
0.050 1000 20 16 1250 14 TQ
2) Bit Timing
Un bit CAN est composé de quatre segments temporelles
3) Synchronisation
contigus: le segment de synchronisation: utilisé pour la
Vue la disparité non nulle entre les fréquences d‟horloges
synchronisation des nœuds récepteurs sur l‟émetteur, le
internes aux nœuds, les bits-timing des différents nœuds se
segment de propagation, utilisé pour compenser les temps de
trouvent décalés par rapport au bit-timing sur le bus. Ce qui
propagations entre les différents nœuds, et les segments
peut conduire à un mauvais placement du SAMPLE_POINT,
″buffer phase1″ et ″buffer phase2″, utilisés pour compenser les
et par conséquent à une fausse lecture du bit sur le bus ; d‟où
erreurs de phase détectées lors des phases de synchronisation.
la nécessité de procédures de synchronisation au niveau du bit
La structure temporelle d‟un bit est précisée sur la figure 5.
qui consiste à caler les phases des horloges du récepteur sur
celle du bus. Deux type de synchronisation sont à distinguer :
SS PROPA_SEG PHASE1_SEG PHASE2_SEG
(i) la synchronisation dite Hard opérée après la detection du
... ... ...
début de la trame (SOF), et où le noeud recepteur redémarre
1Tq
SS: SYNC_SEG SAMPLE_ POINT son bit time juste à la fin du segment de synchronisation du bit
du bus ; et (ii) la Resynchronisation qui survient après
Figure 5 Structure temporelle d‟un bit CAN chaque transition et ceci en retissant la durée
PHASE_SEG1 ou en rallongeant la durée PHASE_SEG2. de
Ainsi pour être valide, la lecture du niveau d‟un bit sur le telle sorte que le bit prochain arrive pendant le segment de
bus doit être effectuée au point d‟échantillonnage (SAMPLE_ synchronisation du prochain bit du bus. Deux contraintes
POINT) localisé juste à la fin du segment PHASE1_SEG. temporelles de mise en œuvre sont à respecter par les
C‟est le rôle de la synchronisation qui sera discutée juste après concepteurs de contrôleurs CAN :
la définition du bit timing. Les plages de variations admissibles SWJ MIN PHASE _ SEG1, PHASE _ SEG2
pour les durées des différents segments d‟un bit exprimées en 8 Tq BitTime 25 Tq
Time Quantum (TQ) sont précisées dans la table III où Re-Sync.Jump Width (SWJ) représente la variation des
durées de PHASE_SEG1 et PHASE_SEG2, nécessaire à la
TABLE III BIT TIMING synchronisation d‟un nœud. Ces paramètres sont accessibles à
Draft 01, du 10 Novembre, 2015 3
Document support du cours de l’Elément 2 : systèmes de communication industrielle (2ème partie) du module Systèmes de commande et de 4
communication industrielle
l‟application via des registres appropriés du contrôleur CAN. Start Of Frame (SOF) 1 bit dominant marquant le début d‟une trame qui
sert de bit de synchronisation des nœuds
IV. LA COUCHE LIAISON DE DONNEE connectés au bus
Standardisé ISO 11898, les service de la couche Liaison du IDENTIFIER identificateur du message de 11 bits dans la
version standard et 29 dans la version étendue qui
CAN sont implémentés dans deux sous-couches distinctes : (i)
constitue la première partie du champs d‟arbitrage
la sous-couche Logical Link Layer (LLC) qui supporte le du bus
filtrage d‟acceptation, la notification des surcharges, et le
Remote Transmission 1 bits qui termine le champ d‟arbitrage qui est
recouvrement des erreurs, et la sous couche de contrôle Request (RTR) : dominant pour une trame de données et récessif
Medium Access Contrôle (MAC) qui s‟occupe de pour une requête
l‟encapsulation/décapsulation des données, du codage des
Extension Identifier 1 bit qui précise la version du CAN: Dominant
trames, de la gestion d‟accès au médium, de la détection et (IDE) pour la version standard, et récessif pour l‟étendue
signalisation des erreurs, de l‟acquittement de message et de
RB0 1 bit de réserve
la sérialisation/dé-sérialisation.
Data Length Code 4 bits précisant la taille en octets du champ de
A. La sous-couche MAC de la couche Liaison (DLC) maximum) données
1) Structuration et Codage des trames
Data Field et bit le champ de données dont la taille peut varier de 0
Quatre types de trames séparées par des inter-trames stuffing si nécéssaire à 8 octets (sans compter les bit-stuff)
peuvent être crées par la couche MAC : (i) les trames de
requêtes, les trames de données, les trames d‟erreur, et les Cyclic Redundancy 15 bits donnant le reste de la division du champ
Code (CRC) de donnée par $C599
trames de surcharge. En mode asynchrone, toutes ces trames
possèdent deux champs délimiteurs : un de début, et un de fin. CRC delimiter 1 bit indiquant la fin du CRC
Les structures des trames de données est précisée dans la les Acknowledge (ACK): 1 bits pour l‟acquittement des messages : récessif
paragraphes suivants. à l‟émission et dominant si le message est bien
reçu par au moins un nœud.
a) Trame de données
Acquittement
Une trame de donnée (Data Frame) est produite par un Acknowledge 1 bit récessif
nœud CAN chaque fois qu‟il souhaite de transmettre une delimiter (ACKDEL)
donnée ou bien si un autre nœud le lui demande. A noter Fin de trame End Of
7 bits récessifs
qu‟une séquence de séparation d‟au moins 3 bits récessifs dite Frame (EOF)
champs d‟Intermission est ajoutée à chaque trame. La structure
d‟une trame de donnée standard définie par le standard ISO b) Trame de requête
11989 est précisé sur la figure 5, tandis que les désignations, Dans certaines situations (d‟urgence par exemple) un nœud
sigles, tailles et fonctionnalités des différents champs sont peut demander une information de la part d‟un autre nœud en
précisés dans la table IV. lui envoyant une trame de requête (REMOTE FRAME) avec
un identificateur identique à celui de la trame de donnée
attendue. Le nœud qui détient l‟information répond alors en
envoyant une trame de donnée (DATA FRAME). Deux
différences sont à distinguer entre les trames de données et de
requête : le bit RTR (voir table IV) et l‟absence du champ de
donnée dans une trame de requête. La structure d‟une trame de
requête CAN (REMOTE FRAME) est identique à une trame
de donnée excepté qu‟il n‟y a pas de champ de données.
c) Trame d’erreur
Chaque fois qu‟un nœud détecte une erreur il émet une
Figure 5 Structures des trames de données standard et étendue trame d‟erreur active ou bien passive composés d‟un champs
d‟erreur suivi d‟un délimiteur de 8 bits récessifs. En cas
d‟erreur active, les premiers 6 bits du champ d‟erreurs sont
forcés à l‟état dominant tandis que pour une erreur passive ces
6 bits du champs d‟erreurs sont mis à l‟état récessif et par
conséquent peuvent être écrasés par des états dominant lors de
la détection d‟erreurs par d‟autres nœud du bus.
Table IV Trame de donnée CAN standard
Champ Taille et désignation
d) Trame de surcharge :
Chaque fois qu‟un nœud est occupé, ou qu‟un bit dominant est 3) Gestion des erreurs
détecté lors de la séquence d‟intermission, il émet une trame Pour des fins de diagnostic du bus CAN, chaque nœud
de débordement composée un champs OVERFLOW dont les intègre deux compteurs d‟erreurs REC et TEC pour compter et
6premiers bits sont à l‟état dominant et d‟un délimiteur décompter ses erreurs de transmission. Selon les valeurs de ces
composé de 8bits récessifs. compteurs, un nœud émettant une trame d‟erreur peut avoir
trois états distincts dits modes d‟erreurs : (i) le mode d‟erreur
2) Technique d’arbitrage du bus; actif où le nœud présente peu de défaillances, (ii) le mode
La technique d‟arbitrage du CAN est celle du CSMA/CD d‟erreur passif où le nœud présente relativement beaucoup de
basé sur le concept de dominance, avec priorité intégrée à défaillances, et (iii) le mode BUS-OFF où le nœud est confiné
l‟identificateur de message CAN. Chaque fois qu‟un nœud lorsqu‟il présente trop de défaillances. La connexion du nœud
émet un bit de l‟identificateur de son message, il le compare ne peut être alors rétablie qu‟après réception par le nœud
avec la valeur lue sur le bus. Si les ces deux valeurs sont confiné de 127 trames de onze bits récessifs. Les transitions
identiques il continue d‟émettre, sinon il arrête. Le nœud ayant entre ces trois modes d‟erreur ainsi que les équations de mise à
la priorité maximale finit par gagner le bus. jour des compteurs du nœud émetteur d‟une trame d‟erreur
sont modélisées par le graphe de la figure 7.
que la valeur du bit correspondant dans l‟identificateur n‟est produire un service particulier. Quatre types de services sont
pas prise en compte par le filtre. Par exemple : Si MASK= supportés :
11111111000, et si FILTER= 00000000101 alors tous les • Service local (Local service) où l‟application envoie une
messages dont dont l‟identificateur se termine par 101 sont requête à son objet de services local sans communiquer avec
acceptés et effectivement transmis au registre de réception du d‟autres objets de services
nœud ; sinon ils sont ignorées tous simplement. • Service sans confirmation (Unconfirmed service), où
2) Recouvrement des erreurs l‟application envoie une requête à son objet de services local .
Le recouvrement des erreurs est assuré par la retransmission cette requette est transferée à un ou plusieur peer objets de
automatique de la trame incriminée jusqu'à ce que l‟émission service que chacun le passe dans son application en tant
de cette trame s‟effectue sans erreur. qu‟une indication. Le résultat n‟est pas confirmé.
• Service avec confirmation (Confirmed service), où
C. Modes spéciaux
l‟application envoie une requête à son objet de services
Pour la gestion de l‟énergie sur le bus, les drivers de ligne local. cette requette est transferée au peer objet de service
peuvent être désactivés lorsqu'il n‟y a plus de trames sur le qui le passe à l‟autre application en tant qu‟une indication.
bus. Pour activer ces drivers sur le bus, la station devra l‟autre application une réponse qui est transférée à l‟objet de
observer 11 bits récessifs à la suite. La procédure ainsi décrite service originaire qui le passe en tant que confirmation à
est la procédure de réveil appelée WAKE-UP. Un l‟application mandatrice du service
identificateur a été réservé à cette fonction pour éviter de
• (Provider initiated service), où la couche application
perdre un trop grand nombre de trames lors de la reconnexion
indique la détection d‟un événement par un objet de service
sur le bus. Lors des démarrages d‟une station sur le bus, le
local.
Start-up se charge de connecter les drivers de lignes et
d‟observer la séquence voulue pour commencer à émettre ou à C. Eléments de services de la couche Application
recevoir des trames du bus. La couche Application du CAN fournit quatre éléments de
service:
V. LA COUCHE APPLICATION • CAN based Message Specification (CMS) : cet élément
La couche application dispose des services nécessaires à la offre un environnement ouvert orienté objet pour la conception
configuration et la communication de données temps réel ainsi de l‟application de communication envisagée. il supporte des
que des mécanismes de synchronisation entre nœuds. La objets permettant de définir les variables et pour spécifier
fonctionnalité offerte par La couche application à une comment accéder aux fonctionnalités de codage, de
application est logiquement répartie sur différents objets de communication et de décodage d‟un nœud.
service de la couche application. Un objet de services offre • Network Management (NMT): cet element offer un
une fonctionnalité spécifique ainsi que tous les services liés. environnement ouvert orienté objet pour permettre à un nœud
Les applications implémentés dans les nœuds d‟un bus CAN (considéré momentanément comme Maitre) d‟initialiser et de
interagissent entre elles en invoquant chacune des objets de gérer d‟autre nœuds (vues en tant qu‟esclaves).
services de sa couche application qui échangent les données • Distributor (DBT) : cet élément offre à un nœud
sur le bus via le protocole CAN. particulier, considéré momentanément comme Maitre,
d‟assurer la distribution dynamique des identificateurs des
A. Les Primitives de Service: autres nœuds vus en tant qu‟esclaves.
Les Primitives de Service sont des entités par lesquelles • Layer Management (LMT) : cet élément offre la possibilité
l‟application et la couche application interagissent. Quatre à un nœud de controller les parametres de configuration de
primitives sont à distinguer : certaines couches d‟autres nœud via le réseau CAN.
.
• REQUEST : c‟est une requête de l‟application vers la A titre indicative, les principales fonctions d‟exploitation de
couche application pour lui demander un service la couche Application sont décrites et illustrées à dans
• INDICATION : c‟est une information émise par la couche l‟exemple de bus CAN donné à titre d‟activité pratique [voir
application vers l‟application indiquant un évènement détecté document Polytechnique].
par la couche application ou une demande de service (requête)
• RESPONSE : c‟est la réponse de l‟application à la couche
application à une indication reçue
• CONFIRMATION: c‟est le résultat d‟une requête,
rapporté à l‟application par la couche application.