Vous êtes sur la page 1sur 43

Qu’est que l’informatique

industrielle?

L'Informatique industrielle est une


discipline qui couvre l'ensemble des
techniques de conception, d'analyse et
de programmation de systèmes
informatique à l'interface avec de
l'électronique, électrotechnique,
mécanique, robotique etc à vocation
industrielle :

• Les domaines d’application:


Systèmes embarqués:
– téléphones mobiles,
– récepteurs GPS,
– Domotique, électroménager
– automobile, transport
aérien/maritime/fluvial. 1
Description fonctionnelle
d’un système informatique

Programme

Système informatique
(microprocesseur ,
Données microcontroleur, Données
d’Entrée mémoire, périphériques) de Sortie

Actions

2
Description fonctionnelle
d’un système informatique
(1/3)
Les systèmes informatiques reposent sur les
éléments suivants:
1. Un calculateur qui va coordonné tous les
opérations (microcontroleurs, microprocesseurs).
Les opérations sont cadencées par l’horloge
système.
2. Des circuits mémoires pour le stockage des
informations ( données, programmes).
3. Des périphériques assurant la communication du
système informatique avec le monde extérieur
(entrée, sortie).

3
Description fonctionnelle
(2/3)
Les données d’entrées et de sorties sont
d’origine diverses:
Les entrées:
– Données numériques à traiter lues en mémoire.
Ces données peuvent être issues de bases de
données ( noms, notes, etc.), mesures
enregistrées de calibration, etc.
– Informations en provenance de capteurs d’un
processus à commander (température, position,
accélération, etc.).
– Données issues d’un clavier (interface
homme/machine).
Les sorties:
Elles représentent le résultat attendu du traitement des
données d’entrée.

4
Description fonctionnelle
(3/3)
Un programme informatique (logiciel):
• indique les traitements à réaliser avec les
données d’entrée
• fournit des données (résultats) en sortie.
• fournit des ordres au processus à commander
pour faire évoluer le processus selon le
fonctionnement défini l’utilisateur.

5
Systèmes informatiques
à base de
microcontrôleurs
• Vitesse de fonctionnement: 4 à
~200MHz
• Format des données:8,16,32 bits.
• Présentation compacte
regroupant en un seul boîtier
l’ensemble des fonctions d’un
système informatique

Mémoires µC

Interfaces Unité Interfaces


d’entrée centrale de sortie
6
Gamme ST
Microlectronics

• Format des données: 8-32 bits


7
Gamme STM32
Gamme STM32: 8bits

Horloge de cadencement
jusqu’à 24MHz
9
Gamme STM32: 32bits

10
Matériel d’enseignement:
C167/Infineon
• Vitesse de fonctionnement: 20MHz
• Format des données (UAL): 16bits.
• Mémoires vives et mortes
• Les périphériques:
Communications parallèle et série,
conversion analogique-numérique,
temporisation et comptage etc…
Mémoires µC
RAM (4ko)
Interfaces ROM (option) Interfaces
Parallèle Parallèle,
Série, Série,
CAD Unité centrale (16 PWM,
…. bits, 20MHz) …

12
La carte phytec kitCON-
167
E Mémoire
N
T
Flash
Liaison
R
Mémoire série
E
E SRAM vers le
S/ PC
S
O
R C167
TI
E
S

La carte de développement à notre disposition


est constituée d’un microcontrôleur C167 et
des extension de mémoire externe (256ko de
mémoire SRAM et de 256ko de mémoire
FLASH-ROM).

Le C167 possède 4ko de SRAM interne et


128/32 koctets de ROM/Flash interne.

13
Présentation du
matériel
Boîtier C167

Mémoire morte Mémoire vive interne (4KB)


interne (optionnel)
Registres de travail

CPU
16 bits

E/S E/S Temporisation E/S


numériques analogiques Comptage numériques
parallèles séries

Le microcontrôleur C167 comporte autour de son


unité centrale (CPU 16 bits, 20MHz), un
ensemble de fonctions spécialisées:
communications numériques parallèle et série,
conversion analogique-numérique,
mémoires vive et morte,
temporisation et comptage etc…
14
Unité centrale/controle
L’unité centrale réalise :
• La lecture des instructions du
programme en cours et son décodage
• L’éxécution de l’instruction
• Gestion des évènement exceptionnels
susceptibles d’intervenir de manière
inattendue.
Unité centrale/controle
L’unité centrale comporte plusieurs grandes
fonctions incontournables qu’elle
orchestre:
• L’unité arithmétique et logique
• Les registres de travail
• Les bus de communications
• Les registres spéciaux:
– Le pointeur d’instruction (IP)
– Le registre segment de code
– Le registre d’état de l’ALU (PSW)
L’unité arithmétique et
logique (ALU)
L’unité arithmétique et logique est le
cœur de l’unité centrale.
ALU est constituée d’un circuit
combinatoire qui réalise:
• les fonctions arithmétiques (ADD,
SUB, MUL,DIV),
• les fonctions logiques (AND, OR,
XOR, etc) entre les mots présentés
à son entrée.

Dans le cas du C167, l’ALU peut


travailler aussi bien sur des
informations codées sur 1, 8 ou 16
bits.

17
Accès mémoire
Une position mémoire particulière est
sélectionnée par le biais de son adresse
(unique), puis écrite ou lue (contrôle) via le
bus de données..
Contrôle
Adresses

Données

Un boîtier mémoire de 64 ko( = 2^16)


nécessite 16 broches d’adresse.
Les broches « contrôle »:
• signal d’activation du boîtier,
• signal de validation de l’adresse
présentée
• type d’accès mémoire(lecture/écriture)

18
Les bus de communication
(1/3)

Le bus de données véhicule les


informations en provenance ou à
destination du processeur. Il s'agit d'un
bus bidirectionnel.
Les données peuvent être stockées dans
les registres de travail ou dans la
mémoire externe.
Des structures TRI-STATE permettent le
multiplexage des informations.

19
Les bus de communication
(2/3)

Le bus de contrôle transporte les


ordres et les signaux de
synchronisation en provenance de
l’unité de commande et à destination
de l'ensemble des composants
matériels. Il s'agit d'un bus
bidirectionnel dans la mesure où il
transmet également les signaux de
réponse des éléments matériels.

20
Les bus de communication
(3/3)

Le bus d'adresses transporte les


adresses mémoire auxquelles le
processeur souhaite accéder pour lire
ou écrire une donnée. Il s'agit d'un bus
unidirectionnel.

21
Les mémoires
Les mémoires contiennent les instructions et les
données nécessaires à l’application.
Pour des programmes simples (quelques ko)
Pour des applications plus compliquées
(quelques Mo).

Suivant le mode de stockage et de modification des


informations stockées en mémoire l’on aboutit à
plusieurs familles de mémoires :

La mémoire non volatile ou mémoire morte


(ROM)

La mémoire volatile ou mémoire vive (RAM)

22
Mémoire ROM
(Read Only Memory)
Les instructions de l’application seront
stockées en mémoire morte.

ROM (Read Only Memory): l’information est


stockée une fois pour toute dans la mémoire.
C’est à la fabrication du circuit mémoire que les
informations sont enregistrées.

Les PROMs (Programmable ROM) peuvent être


programmées par l’utilisateur (une seule fois).

Les EPROMs (Erasable ROM) sont des


mémoires similaires au PROM à la différence que
l’on peut effacer leur contenu et donc les
reprogrammer de manière plus ou moins rapide :
– La première génération était effaçable par
rayonnement Ultra violet (UV-EPROM). Il
fallait donc enlever la mémoire de son support
et la placer dans un effaceur, puis la
reprogrammer et la replacer.
– Désormais, la majorité de ces mémoires sont
remplacées par des EPROM effaçables
électriquement (FLASH). L’opération est
beaucoup plus rapide et peut être effectuée en
23
place.
Mémoire RAM
(Random Access Memory)

Les données de l’application seront


stockées en mémoire vive

• Zone de stockage temporaire.


• Les données sont perdues dès que la mémoire
n’est plus alimentée.

Deux technologies sont essentiellement utilisées, les


mémoires statiques et dynamiques mais toutes
deux ont un accès en lecture et écriture illimité de
chaque case mémoire du circuit :
– Statique (SRAM) : stockage permanent dans
une bascule d’un état 0 ou 1, 6 transistors par
bit. La capacité actuelle est de quelques Mbits
et des temps d’accès de l'ordre de 8 à 14ns --
ou de 5 à 10 fois plus rapides que la DRAM.
– Dynamique (DRAM): stockage dans une
capacité contrôlée par un transistor. Il faut
régulièrement recharger la capacité
(rafraîchissement). La capacité actuelle est
bien plus élevée (65 à 256 Mbits). L'accès aux
DRAMs est plus lent que les autres types de
mémoire. Un accès prend environ 60ns. 24
Les codes opératoires
Le code d’une instruction du programme
contient les informations suivantes :
– Type de l’opération (bits de programmation
de l’ALU)
– Chemins d’accès aux données concernées.
Ces informations sont obtenues à partir
du mot binaire codant l’instruction à
réalisée, appelé code opératoire.
Le transfert du code opératoire dans la
CPU est réalisé:
• Avec le même bus que pour les
données (Architecture Van Neumann)
• Avec un bus spécifique (Architecture
Harvard).
25
Programmation d’un
microcontrôleur

Le développement de l’application
est fait avec un logiciel
d’édition/compilation/simulation
– Rédaction du programme en
langage assembleur ou C (fichier
source).
– Compilation: Traduction des
instructions en langage machine
(code binaire)
– Simulation du programme
(observation des variables, des
périphériques, …)
Les TM seront réalisés avec
l’environnement KEIL micro- 26
vision.
Procédure pour le
chargement d’une
application en mémoire
du microcontrôleur.

Le microcontrôleur et le PC sont reliés


par une liaison série.
Le logiciel de développement permet de
choisir si l’exécution du programme
est faite par le simulateur ou par le
microcontrôleur sur la carte de
développement .

Les TP permettront de réaliser le


chargement de programmes en
mémoire du microcontrôleur.
27
Codage de l’information
Les seules informations comprises
par le processeur sont des
informations binaires, qu’il
s’agisse de codes instructions ou
de données.

Les données sont exprimées


dans un programme sous
• La forme décimale, ex : 37
(base par défaut)
• La forme binaire, ex :
00100101B.
• La forme hexadécimale,
ex:1AH 28
Base binaire
Valeurs non signées

Les 2 digits de la base binaire sont:


0 et 1.

Chaque digit a un poids 2i dépendant


de sa position i= 0…n-1 dans la
séquence binaire (octet, mot, double
mot)

Par convention, la position la plus à


droite a le poids le plus faible 20=1
(bit le moins significatif)
et la position la plus à gauche à le poids
le plus élevé 2n-1 (bit le plus
significatif).
29
Base binaire
Valeurs non signées
La suite binaire bn-1bn-2…b1b0 a pour
valeur dans la base décimale:
n 1

b 2
i 0
i
i

Exemple de valeur codée sur 8 bits:


00100101B=
0x27+0x26+1x25+0x24+0x23

+1x22+0x21+1x20=32+4+1=37

L’intervalle de valeurs représentables


sur n bits est: [0,2n-1]
Pour n=8, [0,255]
Pour n=16, [0,65535] 30
Base binaire
Valeurs signées
(positives et négatives)
Représentation par complément à deux

La représentation d'un nombre v sur n bits


est égale à
• si v ≥0 : (bit de signe S=0)
bit de signe suivi de la représentation
entière non signée de v sur n-1 bits.
• Si v <0: (bit de signe S=1)
bit de signe signe suivi de la
représentation par complément à deux
des n-1 bits encodant la valeur absolue
de v.

La représentation d'un nombre à l'aide d'un


nombre de bits donné est unique.
En particulier, le nombre 0 possède une
seule représentation (00000000B).

31
Base binaire
Valeurs signées
Exemples:
La représentation sur 8 bits du
nombre v= -1 est égale à:
1=00000001B (valeur absolue de v)
/1=11111110B (complément à 1)
(/1+1)=11111111B=-1 (complément à 2)

La représentation sur 8 bits du


nombre -42 est égale à:
42=00101010B
/42=11010101B
(/42+1)=11010110B=-42
32
La suite de bits bn-1bn-2…b1b0 a pour
valeur:
n 2
 bn 12n 1  
i 0
bi 2i

Exemple:
10010101B=-128+16+4+1=-107
L'ensemble des nombres
représentables à l'aide de n bits
forme l'intervalle:
n 1 n 1
[2 ,2  1]

Pour n=8, [-128,+127]


Pour n=16, [-32768,32767]

33
Base hexadécimale ou
Base 16
Les 16 digits de la base hexadécimale
sont 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F.

Avantages:
• Écriture concise
• Les conversions de l'hexadécimal
vers le binaire et vice-versa sont
immédiates.

Remarque: Chaque digit hexadécimal


est codé par 4 bits.

34
Base hexadécimale
Valeurs non signées
Codage sur n bits.
Chaque digit hexadécimal a un poids 16i
dépendant de sa position i=0…n/4 -1.

Le digit de poids le plus faible a un poids


160=1 et le digit de poids le plus élevé a un
poids de 16n/4-1

La suite hexadécimale hn/4-1 hn/4-2 …h1h0 a pour


valeur:
n / 4 1

 h 16
i 0
i
i

Exemple de valeur codée sur 8 bits:


1AH= 1x161+10x160=16+10=26
35
Conversions
Base Binaire –
Base hexadécimale
Pour convertir un nombre hexadécimal
en binaire, il suffit de remplacer
chaque digit hexadécimal par la
séquence de 4 bits qui lui correspond.
La conversion réciproque est similaire.
Hexadecimal Binaire Hexadecimal Binaire

0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
36
Ex: 0x1AB8=1AB8H=0001101010111000B
Données alphabétiques
code ASCII
Un caractère est codé à l'aide de 7 bits
d'information.
A chaque symbole alphabétique est attribué un
code dans l'intervalle [0, …, 127];
Code ASCII ‘a’ : 61h ; ‘1’: 31h ‘A’: 41H

37
Unité centrale/controle
L’unité centrale comporte plusieurs grandes
fonctions incontournables qu’elle
orchestre:
• L’unité arithmétique et logique
• Les registres de travail
• Les bus de communications
• Les registres spéciaux:
– Le pointeur d’instruction (IP)
– Le registre segment de code
– Le registre d’état de l’ALU (PSW)
L’unité arithmétique et
logique (ALU)
L’unité arithmétique et logique est le
cœur de l’unité centrale.
ALU est constituée d’un circuit
combinatoire qui réalise:
• les fonctions arithmétiques (ADD,
SUB, MUL,DIV),
• les fonctions logiques (AND, OR,
XOR, etc) entre les mots présentés
à son entrée.

Dans le cas du C167, l’ALU peut


travailler aussi bien sur des
informations codées sur 1, 8 ou 16
bits.

39
Les registres de travail
(GPR)
Les registres de travail sont destinés à
contenir temporairement l’information
sur lesquelles s’effectuent les calculs.
Les informations sont localisée en mémoire
vive (IRAM) interne .

Le C167 dispose de 16 registres de travail


nommés R0, R1, … R15 de 16 bits
chacun.
Les registres de travail R0, R1, …R7 sont
accessibles sous une forme octale :
partie haute nommée RHn
partie basse nommée RLn.
R0

RH0 RL0
b b b b b b b b8 b7 b6 b5 b4 b3 b2 b1 b0
15 14 13 12 11 10 9

40
Les registres spéciaux
(SFR)
Les registres spéciaux (Special Function
Registers (SFRs)) sont destinés à la
configuration et au contrôle de l’unité
centrale.
• Paramètres de configuration
(SYSCON)
• Etat de l’unité de calcul (PSW)
• Registres de multiplication et division
(MDC)
• Accès aux données (DPPx),
• Accès à la pile système (SP).

41
PSW
PSW
interruptions indicateurs
U M
S U
E Z V C N
R LI
0 P

PSW (Program Status Word): présente l’état de l’unité


arithmétique et logique. Les indicateurs (bits du registre
PSW) se positionne automatiquement après chaque
instruction du programme.

Z =1 si l’information est nulle et Z=0 si l’information est non


nulle

N=1 si la valeur est négative et N=0 si la valeur est positive


ou nulle (MSB). C’est le bit le plus significatif du résultat
de l’opération qui vient d’être effectuée
0011 1000 (56) +0000 1010 (10)= 01000010 N=0
00110100 (52) + 10000010 (130)=10110110 N=1

E=1 si l’information est égale au plus petit négatif et E=0 si


l’information n’est pas égale au plus petit négatif. Cet
indicateur se positionne à 1 lorsque le résultat de
l’opération effectuée est égal à 8000H (-32768) ou 80H (-
128).

42
Positionnement des
indicateurs
C (carry, retenue), C=1 s’il y a une retenue lors de la dernière
opération et C=0 s’il n’y a pas de retenue lors de la dernière
opération
Ex : addition
0011 1000 (56) +0000 1010 (10)= 0 01000010 C=0
1000 1010 (138) +1100 0111 (199)= 1 0101 0001 C=1

V (overflow) C’est un indicateur lié à la représentation des


nombres binaires signés dans le code complément à 2.

Lors de l’addition, V sera positionné à 1 si l’addition de 2 nombres


positifs est négatif ou l’addition de 2 nombres négatifs conduit
à un nombre positif.

Exemple :
0100 0000 (64) +0100 1111(79)=10001111 nombre négatif (-
113)

Lors d’une soustraction, V sera positionné à 1 si la soustraction


d’un nombre positif et d’un nombre négatif donne un résultat
négatif ou la soustraction d’un nombre négatif et positif donne
un nombre positif.

Si au cours d’un calcul sur des nombres signés, l’indicateur


V se positionne le résultat ne doit pas être pris en compte
et le calcul doit être repris en augmentant la taille des
mots.
Par contre si on travaille sur des informations en binaire 43 non
signé, l’indicateur V ne doit pas être pris en compte.
Exemple positionnement
des indicateurs
Type d’opération E Z V C N

Arithmétique 70F0H 0 1 0 0 0
-70F0H =0H
28912-28912=0

FFFFH+3H= 0 0 0 1 0
1 0002H
-1+3=2
7FFFH+3H=0 0 0 1 0 1
8002H
Logique 00AAH ET 0 1 0* 0* 0
0055H=0000H
Transfert R0  8000H 1 0 - - 1

44

Vous aimerez peut-être aussi