Back to the main page of LSP/EPFL Peripheral Systems Laboratory (EPFL-DI/LSP)
[Publications] [Books]

[Couverture]

Informatique Industrielle

Roger D. Hersch

Presses Polytechniques Universitaires Romandes, 1997, ISBN 2-88074-353-2

Préface

L'accélération des technologies et l'importance prise par l'informatique industrielle requièrent de la part des ingénieurs d'en connaître les techniques principales. Cet ouvrage vise à présenter de manière concise, mais néanmoins approfondie, les aspects informatiques et temps-réel de l'informatique industrielle. Afin d'être maîtrisées, ces techniques doivent être appliquées et exercées. Dans ce but, d'une part le livre aborde les aspects théoriques et d'autre part il propose de nombreux exemples programmés ainsi que des exercices.

De manière délibérée, des choix ont été effectués afin de ne présenter que les principaux aspects matériels et logiciels de l'informatique industrielle, c'est-à-dire:

Pour des raisons didactiques, la plupart des concepts sont introduits en prenant comme exemple le microprocesseur 68000. Ensuite, l'implantation de ces mêmes concepts sur les micro-contrôleurs industriels modernes est présentée. Une fois les concepts de base assimilés, l'étudiant pourra facilement les appliquer à d'autres processeurs et interfaces et être en mesure de programmer les micro-contrôleurs utilisés dans les applications industrielles.

Afin de permettre à tout lecteur d'aborder ce livre, les deux premiers chapitres comportent une brève introduction aux éléments de logique digitale nécessaires à la compréhension des systèmes industriels à microprocesseurs. La programmation en langage assembleur est introduite afin de faciliter la présentation du fonctionnement des systèmes microprocesseurs. Le langage évolué Modula-2, très proche du langage Pascal, est utilisé pour la programmation des interfaces temps-réel ainsi que pour la commande de moteur. L'annexe inclut la description d'un système cible didactique, le Dauphin 68008, abondamment utilisé dans les exemples de programmation.

Les sections qui comportent des sujets avancés qui ne sont pas nécessaires à la compréhension d'autres chapitres du livre sont marquées par le signe .

L'auteur tient ici à remercier Jean-Daniel Nicoud, professeur à l'EPFL qui a mis sur pied il y a plus d'une décennie un concept d'enseignement intégré qui inclut le langage assembleur universel CALM ainsi que le système cible didactique Dauphin 68008. Soient également remerciés Pierre-Yves Rochat, Albin Schorer et René Beuchat qui ont rédigé certains exemples de programmation et notes de cours ainsi que les collaborateurs et collègues qui ont contribué à relire et corriger le texte. Mme Dorith Lion-Elbaz a dessiné les figures et effectué la mise en page. MM. Babel et Tonasso des Presses Polytechniques Universitaires Romandes ont amélioré la mise en page finale. Les étudiants ont contribué à améliorer la qualité du cours qui est à la base de ce livre. Par leurs questions, remarques et critiques, ils l'ont rendu plus abordable pour ceux qui n'avaient pas de connaissances préalables en informatique. Que tous soient remerciés, ainsi que mon épouse Daniela.

Table des matières

Préface
Introduction xiii
Chapitre 1 Du transistor aux portes logiques
1.1 Le concept d'interrupteur commandé 1
1.2 Le transistor inverseur 2
1.3 Les portes logiques 3
1.4 Dénomination des signaux 7
1.5 Les sorties à collecteur ouvert (open-collector) 8
1.6 Les sorties 3-états (tri-state) 10
1.7 Circuits combinatoires 11
1.8 Exercices 13
1.9 Solutions 15
Chapitre 2 Logique séquentielle et mémoires
2.1 Eléments de mémorisation 17
2.2 Registres et verrous 19
2.3 Mémoires vives et mortes 22
2.4 Mémoires dynamiques 24
2.5 Graphes d'états 28
2.6 Exercices 32
2.7 Solutions 33
Chapitre 3 Introduction au microprocesseur
3.1 Principe général 35
3.2 Système informatique et architecture de processeurs 37
3.3 Exemple d'exécution de programme 38
3.4 Déroulement du programme 41
3.5 Fanions et instructions de saut conditionnel 47
3.6 Catégories d'instructions 48
3.7 Accès aux opérandes situées en mémoire 50
3.8 Appels de procédures en langage assembleur 52
3.9 Microprocesseurs et micro-contrôleurs 53
3.10 Exercices 55
3.11 Solutions 57
Chapitre 4 Un microprocesseur 16/32 bits: le processeur Motorola 68000
4.1 Introduction 59
4.2 Architecture du 68000 59
4.3 Le répertoire d'instructions 61
4.4 Codage des instructions (processeur 68000) 67
4.5 Table de codage de quelques instructions 68000/68008 71
4.6 Le microprocesseur 68008, vu sous son aspect matériel 72
4.7 Exercice 74
4.8 Solution 74
Chapitre 5 Les modes d'adressage
5.1 Introduction 75
5.2 Registres et mémoire 75
5.3 Les modes d'adressage 76
5.4 Programmation en assembleur et modes d'adressage 77
5.5 Exécution d'instructions selon divers modes d'adressage 77
5.6 Accès à une table par adressage indexé 82
5.7 Exercices 84
5.8 Solutions 85
Chapitre 6 Appels de procédures et concept de pile
6.1 Introduction 87
6.2 Le concept de pile et l'appel de procédures 88
6.3 Appel de procédure par microprocesseur 68000 90
6.4 Appel de procédure en langage assembleur 91
6.5 Passage de paramètres 91
6.6 Exemple d'appel à une procédure 91
6.7 Exercices 92
6.8 Solutions 93
Chapitre 7 Environnements de programmation et représentation de caractères
7.1 Développement de programmes 95
7.2 Représentation des caractères 97
7.3 Programmation en langage assembleur 99
7.4 Débusquage d'erreurs 103
7.5 Exercices 104
7.6 Solutions 105
Chapitre 8 Décodage d'adresses
8.1 Introduction 109
8.2 Décodage d'un espace d'entrées-sorties 110
8.3 Sélection d'une position dans l'espace d'entrée-sortie 112
8.4 Décodage incomplet 115
8.5 Ports d'entrées-sorties sur micro-contrôleurs 117
8.6 Décodage d'adresse et synthèse de signaux de sélection sur micro-contrôleurs 118
8.7 Exercices 119
8.8 Solutions 120
Chapitre 9 La structure interne d'un microprocesseur
9.1 Structure globale 123
9.2 Architecture interne d'un microprocesseur 8/16 bits 124
9.3 Séquencement interne pour l'exécution d'instructions 127
9.4 Exercices 129
9.5 Solutions 129
Chapitre 10 Codage de nombres opérations arithmétiques
10.1 Représentation de nombres entiers positifs 131
10.2 Opérations sur les nombres 132
10.3 Représentation de nombres en complément à deux 134
10.4 Opérations en complément à deux 139
10.5 Conversion de nombres 141
10.6 Calculs en virgule fixe 145
10.7 Exercices 147
10.8 Solutions 150
Chapitre 11 Nombres virgule flottante
11.1 Introduction 155
11.2 Le format virgule flottante IEEE 32 bits 156
11.3 Additions et soustractions 158
11.4 Multiplications 159
11.5 Divisions 160
11.6 Autres représentations de nombres virgule flottante 162
11.7 Performances 163
11.8 Représentation hexadécimale de nombres virgule flottante 163
11.9 Exercices 164
11.10 Solutions 165
Chapitre 12 Les interruptions
12.1 Gestion de périphériques 167
12.2 Définition fonctionnelle d'un système d'interruptions 168
12.3 Exceptions et interruptions 171
12.4 Les appels système 172
12.5 Mécanismes d'interruption 173
12.6 Les interruptions du 68000 175
12.7 Gestion des interruptions en langage évolué 179
12.8 Le contrôleur d'interruptions 181
12.9 Utilité, avantages et inconvénients de la programmation par interruptions 183
12.10 Exemples de systèmes d'interruption 184
12.11 Exercices 188
12.12 Solutions 189
Chapitre 13 Interfaces moteur et capteurs optiques incrémentaux
13.1 Le système de commande global 193
13.2 Commande de moteur 195
13.3 Interfaces pour capteurs optiques incrémentaux 198
13.4 Exercices 203
13.5 Solutions 204
Chapitre 14 Gestion temporelle et décompte d'événements
14.1 Introduction 207
14.2 Le compteur programmable 8254 209
14.3 Programmation du registre de contrôle sur 8254 210
14.4 Lecture de la valeur des compteurs sur 8254 211
14.5 Modes de travail du compteur programmable 8254 213
14.6 Exemples de programmation 217
14.7 Gestion du temps et d'événements sur micro-contrôleur MC68331 219
14.8 Exercices 222
14.9 Solutions 223
Chapitre 15 Commande de moteur par compteur programmable
15.1 Gestion du temps et décompte d'impulsions 233
15.2 Commande de moteur à vitesse variable 235
15.3 Commande de moteur à vitesse variable et mesure de vitesse 236
15.4 Commande de moteur par interruptions 239
15.5 Exercices 246
15.6 Solutions 246
Chapitre 16 Gestion de processus temps-réels
16.1 Le système d'exploitation 249
16.2 Le noyau temps-réel: généralités 250
16.3 Création et destruction de processus 252
16.4 Synchronisation entre processus par sémaphores 253
16.5 Sections critiques 255
16.6 Synchronisation entre producteur et consommateur 257
16.7 Synchronisation avec une routine d'interruption 258
16.8 Gestion temporelle et délais 259
16.9 Mécanisme de suspension temporelle de processus 259
16.10 Noyau temps-réel et communication entre processus 261
16.11 Noyaux temps-réels industriels 264
16.12 Exercices 266
16.13 Solutions 269
Chapitre 17 Commande proportionnelle intégrale et différentielle (PID)
17.1 Régulateur tout ou rien (on-off) 273
17.2 Régulateur proportionnel 273
17.3 Régulateur intégral 275
17.4 Régulateur différentiel 275
17.5 Régulateur proportionnel, intégral et différentiel 276
17.6 Commande de moteur proportionnelle, intégrale et différentielle 277
17.7 Méthodes empiriques de Ziegler-Nichols pour l'ajustement des paramètres de régulation 283
17.8 Exercices 287
17.9 Solutions 288
Chapitre 18 Communications série entre systèmes informatiques (RS-232C)
18.1 Introduction aux transmissions par RS-232C 291
18.2 Le principe du transfert série asynchrone sur ligne RS-232C 292
18.3 Les signaux RS-232C 294
18.4 Spécifications électriques des normes RS-232C et RS-422 pour le transfert de données point à point 297
18.5 Communications série: généralités 298
18.6 Transferts série synchronisés par signal horloge 298
18.7 Système de communication série maître-esclave (SPI) 299
18.8 Communication par bus série 301
18.9 Exercices 302
18.10 Solutions 303
Chapitre 19 Accès mémoire direct et bus microprocesseurs (BUS PCI)
19.1 Introduction 305
19.2 Transferts mémoire directs (DMA) 306
19.3 Transferts mémoire directs sur micro-contrôleur 308
19.4 Bus microprocesseurs 309
19.5 Le bus PCI 311
19.6 Exercices 320
19.7 Solutions 321
Chapitre 20 Micro-contrôleurs
20.1 Micro-contrôleurs 8 bits: le 68HC11 323
20.2 Micro-contrôleurs 16/32 bits: le MC68331 325
20.3 Micro-contrôleurs 32 bits (famille ColdFire) 330
20.4 Exercices 332
20.5 Solutions 332
Annexe I Modula-2 pour la commande des entrées-sorties
I.1 Structures, types et instructions de contrôle Modula-2 336
I.2 Eléments utiles pour la commande d'interfaces d'entrée-sortie 340
Annexe II Le Dauphin 68008
II.1 Introduction 349
II.2 Description générale 349
II.3 Le moniteur 350
II.4 Architecture 351
II.5 La carte de base 352
II.6 L'affichage 353
II.7 Le clavier 354
II.8 Haut-parleur et décodage de périphériques 354
II.9 Programme MONITEUR 355
Bibliographie 357
Index 361



[Overview][Research][Teaching][Publications][Staff]

<basile.schaeli@epfl(add: .ch)>
Last modified: 2007/09/26 21:28:17