Le Bus CAN Applications
CAL, CANopen, DeviceNet, OSEK, SDS...
Dominique Paret
Dunod
Introduction - Le CAN a déjà fêté ses dix ans !1
Le concept CAN en deux mots1
Le parcours du CAN2
Le marché du CAN3
Le marché Automobile3
Le marché de l'automatisme industriel3
Couches applicatives et organismes de supports4
Partie 1 Communication et modèle
Chapitre 1 - Communication et modèle7
1.1 Le modèle ISO/OSI8
1.2 Architecture des couches10
1.2.1 Couche 0 - médium10
1.2.2 Couche 1 - physique : Physical Layer (PL)11
1.2.3 Couche 2 - liaison de données : Data Link Layer (DLL)11
1.2.4 Couche 3 - réseau13
1.2.5 Couche 4 - transport14
1.2.6 Couche 5 - session14
1.2.7 Couche 6 - présentation15
1.2.8 Couche 7 - application15
1.2.9 Les couches au-dessus des nuages16
1.2.10 Couche (8) - Device Profiles17
1.2.11 Couche (7 1/2) - Communication Profile17
1.3 Une autre vue du modèle ISO/OSI18
1.3.1 Le point de vue utilisateur18
1.3.2 Le point de vue du transporteur18
1.3.3 Couche objet et couche transport18
Partie 2 Rappel du protocole CAN
Chapitre 2 - Rappel du protocole CAN et de ses particularités23
2.1 Remarque préliminaire à la seconde partie23
2.1.1 Pourquoi effectuer un rappel du protocole ?23
2.2 Les grandes définitions24
2.2.1 Propriétés du CAN et vocabulaire spécifique24
2.3 Les grands principes de la communication30
2.3.1 Les différentes trames de communication du CAN30
2.3.2 Le bit CAN30
2.4 Le CAN 2.0 A - format standard31
2.4.1 Trame de données31
2.4.2 Début de trame32
2.4.3 Champ d'arbitrage32
2.4.4 Champ de commande32
2.4.5 Champ de données33
2.4.6 Champ de CRC (Cyclic Redundancy Code : code à redondance cyclique)33
2.4.7 Champ d'acquittement33
2.4.8 Fin de trame de données33
2.4.9 Inter-trame34
2.4.10 Quelques remarques très importantes34
2.4.11 Trame de requête de données35
2.5 Détection et traitement des erreurs de transmission36
2.5.1 Les différentes sortes d'erreurs pouvant se produire37
2.5.2 Notions de bulletin de santé d'un réseau38
2.5.3 Mécanisme du traitement des erreurs de confinement38
2.5.4 Signalisation des erreurs43
2.5.5 Recouvrement des erreurs47
2.5.6 Validité des messages transmis47
2.5.7 Sleep Mode et Wake-Up48
2.6 Le CAN 2.0 B - format étendu48
2.6.1 Formats de trames de communication49
2.6.2 Identificateurs et champ d'arbitrage49
2.6.3 Le champ de commande50
2.6.4 Obligations d'un contrôleur CAN 2.0 B50
2.6.5 Compatibilités CAN 2.0 A et CAN 2.0 B50
2.7 La couche physique CAN51
2.7.1 Qualités fondamentales et spécifiques que doit posséder le support physique51
2.7.2 Architecture du bit CAN51
2.7.3 Architecture du Nominal Bit Time55
2.7.4 Détermination des valeurs des segments du Nominal Bit Time56
2.7.5 Valeur du segment de synchronisation56
2.7.6 Valeur du segment de propagation56
2.7.7 Valeurs des segments de buffers de phase 1 et 264
2.7.8 Incidences de la précision, dérives et tolérances des fréquences des oscillateurs69
2.7.9 En guise de conclusion70
2.7.10 Débit binaire du réseau (Bit Rate)71
2.7.11 Temps de latence73
2.7.12 Exemple de synthèse74
2.7.13 Qualités et limites des couches 1 et 2 du protocole CAN75
Chapitre 3 - Retour au protocole CAN et au modèle ISO79
3.1 Imbrication du protocole CAN et du modèle ISO/OSI79
3.1.1 Le document de référence Bosch et le modèle ISO/OSI80
3.1.2 Les documents CAN officiels ISO et le modèle ISO/OSI80
3.1.3 Le pourquoi de l'absence des couches 3 à 6 du modèle ISO/OSI dans le CAN81
3.2 Notion «d'objet CAN»82
3.2.1 Entête de trame83
3.2.2 Champ de données85
3.2.3 Quelques remarques85
3.3 Imbrication des composants CAN et du modèle ISO/OSI85
3.3.1 Découpage fonctionnel des composants CAN dans un système86
3.3.2 Les différentes possibilités d'implémentation du protocole CAN87
3.4 Possibilités d'enrichissement du protocole CAN par les composants90
3.4.1 Au niveau de la couche 2 de communication de données91
3.4.2 Au niveau des couches 0 - médium et 1 - physique93
En conclusion96
Partie 3 Applications CAN en réseau et problèmes soulevés
Chapitre 4 - Les applications basées sur des réseaux CAN99
4.1 Les applications industrielles99
4.2 Les applications automobiles100
Chapitre 5 - Les réseaux103
5.1 Evolution des performances demandées aux réseaux locaux104
5.1.1 Concept d'architecture de réseau104
5.1.2 Classes d'éléments de réseau108
5.1.3 Systèmes ouverts dans l'automatisme industriel109
5.1.4 Petit inventaire des requêtes et nécessités des applications113
5.2 Les imbrications114
5.2.1 Relations entre architecture décentralisée, système distribué, ouverture et choix des couches basses et applicatives114
5.2.2 Relations entre protocole de communication, protocole de la couche application et mode de fonctionnement du réseau116
5.3 Choix du modèle de communication pour un réseau basé sur le CAN123
5.3.1 Choix et constitution du modèle124
5.3.2 Protocole, plate-forme, couche applicative et encapsulation127
Partie 4 Les couches applicatives basées sur CAN
Chapitre 6 - Les différents concepts de couches applicatives basées sur CAN133
6.1 Les couches applicatives basées sur CAN133
6.1.1 Pourquoi une offre basée sur CAN ?133
6.1.2 Pourquoi plusieurs couches applicatives en lice ?134
6.1.3 Les principales couches applicatives en lice135
6.2 Contenus des couches137
6.3 Introduction aux chapitres suivants137
6.3.1 Plan de présentation des différentes couches applicatives du CAN138
6.3.2 Remarques importantes concernant la présentation des couches138
Chapitre 7 - CAL/CAN application layer139
7.1 CAL en quelques mots141
7.1.1 Le cœur des CAL142
7.1.2 Conclusion concernant les CAL145
7.2 CMS-CAN based Message Specifi cation147
7.2.1 CMS, langage standard de modélisation pour applications distribuées147
7.2.2 Les objects CMS147
7.3 NMT - Network Management154
7.3.1 NMT ou la coordination et supervision d'applications distribuées154
Le maître et les esclaves NMT155
7.3.2 Les services NMT156
7.3.3 Les objets NMT157
7.3.4 Les classes de réseau CAL158
7.3.5 Initialisation du réseau159
7.4 DBT - (identifier) DistriBuTor160
7.4.1 Méthode d'attribution des COB ID162
7.5 LMT - Layer ManagemenT166
7.6 LME-Layer Management Entity167
7.7 Couche physique du CAL167
7.7.1 Médium et connecteurs167
7.7.2 Nominal bit time et position du point d'échantillonnage169
7.8 Implémentations logicielles d'applications basées sur CAL170
7.8.1 Exemple d'outils d'implémentation logicielle170
Chapitre 8 - CANopen173
8.1 Objectif de CANopen173
8.2 Relations entre CANopen et CAL174
8.3 Architecture de CANopen175
8.3.1 Le modèle de référence de communication de CANopen175
8.3.2 CANopen Communication Profile177
8.3.3 CANopen Device Profile178
8.3.4 En conclusion178
8.4 Le modèle de communication de CANopen179
8.4.1 Services et Process Data Object-SDO et PDO179
8.4.2 Les objets de communication prédéfinis de CANopen183
8.5 Administration du réseau et communication183
8.5.1 Réseau allégé184
8.5.2 Distribution des identificateurs184
8.5.3 Initialisation du réseau et séquence de boot up184
8.6 Les Device prof iles de CANopen186
8.6.1 Dictionnaire d'objets186
8.7 Fonctionnalités minimales supportées par un élément188
8.8 En résumé189
8.9 Implémentation de CANopen sur des éléments maître ou esclave190
8.10 Couche physique du CANopen191
Chapitre 9 - DeviceNet193
9.1 Présentation générale de la couche applicative DeviceNet193
9.1.1 Relation entre les couches ISO/OSI et DeviceNet194
9.2 La couche communication de données de DeviceNet195
9.2.1 Messagerie et mode de connexion de station à station195
9.2.2 Modes d'adressage de DeviceNet202
9.2.3 Echange de données204
9.2.4 Fragmentation de la messagerie204
9.3 Profils de communication206
9.4 Couche physique de DeviceNet207
9.4.1 Généralités207
9.4.2 Médium de transmission et topologie du réseau209
9.4.3 Connexion au médium212
9.4.5 Possibilités d'alimentation des stations par DeviceNet216
Chapitre 10 - SDS - Smart Distributed System219
10.1 Caractéristiques principales de SDS219
10.2 Couche applicative SDS221
10.2.1 Généralités221
10.2.2 Les services de l'APL221
10.2.3 Compléments223
10.2.4 Types de messagerie utilisables avec SDS225
10.2.5 Notion de messages courts, longs et longs fragmentés225
10.2.6 Utilisation de la trame CAN en SDS226
10.3 Administration du réseau SDS236
10.3.1 Phase de détection de débit236
10.3.2 Phase de cartographie (du réseau mapping)236
10.3.3 Phase de fonctionnement normal237
10.3.4 Remplacement sur site des éléments237
10.4 Les Device Models237
10.5 Implémentation240
10.6 La couche physique SDS240
10.6.1 Topologie, longueur et débit241
10.6.2 Purement électronique241
10.6.3 Interface ligne241
10.6.4 Câbles et connecteurs243
10.7 Conformité, interopérabilité, normalisation245
10.7.1 Conformité, interopérabilité245
10.7.2 Normalisation245
10.7.3 Product selection guide245
Chapitre 11 - Résumé et synthèse des performances CAN, CANopen, DeviceNet et SDS247
11.1 Remarques importantes247
11.2 Assignation des valeurs des identificateurs des messages248
11.3 Méthode d'échange et de traitement des données250
11.3.1 Architecture et organisation251
11.3.2 Déclenchement des messages253
11.3.3 Cartographie (des «objets Application» mapping)254
11.4 Communication point à point254
11.4.1 CAL255
11.4.2 CANopen255
11.4.3 DeviceNet255
11.4.4 SDS255
11.5 Méthodes d'établissement255
de connexions de données255
11.6 Administration du réseau256
11.7 Modélisation et profiles des éléments258
Chapitre 12 - CAN Kingdom261
12.1 Les performances de CAN Kingdom262
12.2 Usage du CAN pour le CAN Kingdom263
12.3 Fonctions de la couche applicative CAN Kingdom263
12.4 Réponses aux nombreuses interrogations265
12.4.1 Quel est le rôle du Roi dans le CAN Kingdom ?265
12.4.2 Qu'arrive-t-il si le Roi meurt ?265
12.4.3 Si seul le Roi connaît tout le système, est-il possible de le remplacer ?266
12.4.4 Comment le Roi connaît-il la place de chacun des modules ?266
12.4.5 Qu'arrive-t-il si l'on permute la localisation de deux modules ?266
12.4.6 Comment l'enregistrement de l'identité de chaque module est-elle effectuée ?267
12.4.7 Comment régler les problèmes liés à des débits différents ?267
12.4.8 Le Roi peut-il effectuer toutes sortes de changement dans un module ?267
12.4.9 Faut-il des composants performants pour réaliser tout cela ?268
Chapitre 13 - M3S - Multiple master, multiple slave269
13.1 Architecture générale du système M3S269
13.1.1 Les éléments de M3S270
13.2 Les fonctions de key et de «dead man» switches271
13.2.1 Key switch271
13.2.2 Dead man272
13.3 Initialisation, configuration, sélection273
13.3.1 Initialisation273
13.3.2 Configuration273
13.3.3 Sélection273
13.4 Evolution et conclusion274
Chapitre 14 - Les couches applicatives automobiles275
14.1 Situation à l'ISO275
14.1.1 TF1276
14.1.2 TF2276
14.1.3 TF4276
14.1.4 TF5276
14.2 Situation à la SAE276
14.3 Situation à l'OSEK277
Chapitre 15 - OSEK/VDX279
15.1 Architecture de la couche OSEK281
15.1.1 OSEK-OS-Operating System283
15.1.2 OSEK-COM-Communication285
15.1.3 OSEK-NM (Network Management)290
15.1.4 Les couches basses ISO/OSI de l'OSEK/VDX292
15.1.5 Implémentation OSEK/VDX292
15.1.6 Certification de l'OSEK293
Chapitre 16 - Le SAE J1939295
16.1 Pourquoi avoir choisi un identificateur de 29 bits ?296
16.2 Le champ d'identification CAN du J1939296
16.3 Les types de messages du J1939297
16.3.1 Messages de commandes297
16.3.2 Messages de requêtes297
16.3.3 Messages de diffusion/réponse297
16.3.4 Messages d'acquittements298
16.3.5 Messages de groupes de fonctions298
16.3.6 Quelques compléments298
16.4 La couche applicative J1939298
16.4.1 Les différents types de données transportées298
Partie 5 Outils, tests, mise en œuvre, conformité
Chapitre 17 - Les outils d'aide au développement pour réseaux basés sur CAN303
17.1 Méthodologie de conception de système303
17.1.1 Phase d'étude304
17.1.2 Phase d'intégration du système complet304
17.1.3 Phase de production304
17.1.4 Phase de maintenance du système305
17.2 Outils d'aide au développement des couches basses de communication305
17.2.1 Outils de démonstration et prise en main305
17.2.2 Outils de simulation, émulation et analyse de protocole306
17.2.3 Conformateur de performances308
17.2.4 Outils de configuration de réseau309
17.3 Outils d'aide au développement des couches hautes applicatives310
17.3.1 Un exemple311
17.3.2 En conclusion des systèmes de développement et outils de tests313
17.4 Mises en œuvre de réseaux (modélisation et installation)314
17.4.1 Modélisation de réseaux314
17.4.2 Installation du réseau314
17.4.3 Mise en œuvre d'un réseau314
17.4.4 Mise en route et débuggage des réseaux315
17.4.5 Outils de mise en œuvre et test des réseaux315
Chapitre 18 - Conformité, certification, tests317
18.1 Les problèmes de conformité et certification317
18.2 Conformité au protocole de communication CAN317
18.3 Conformité des IC's au protocole de communication CAN319
18.3.1 Méthodologie de conformité320
Ecriture d'un Plan De Test321
Réalisation CAO du Plan De Test324
Testeur de composants326
18.3.2 Conclusion326
18.4 Conformité aux protocoles des couches applicatives327
18.5 Certification327
18.6 Tests328
Chapitre 19 - Conclusion et futur du CAN329
19.1 Conclusion329
19.2 Le futur du CAN et de ses applications329
Annexes331
Annexe 1 : le CiA-CAN in Automation331
Sa mission, son rôle, son fonctionnement331
Ses activités333
Annexe 2 : les bibles334
Modèle ISO/OSI334
Document de référence CAN334
CAN et ISO334
Couches applicatives «Industrielles»334
Couches applicatives «Automobile»336
Annexe 3 : les bonnes lectures337
Revues, journaux, documentations337
Ouvrages en langue allemande337
Ouvrage en langue française337
Annexe 4 : les bonnes adresses338
ISO338
CAL et CANopen338
SDS338
DeviceNet338
CAN Kingdom339
M3S339
OSEK339