Vous êtes sur la page 1sur 22

Systèmes embarqués et microprocesseurs

I. Interaction Matériel/Logiciel
I.1. Introduction
• Un système industriel (robot, chaine de production, moteur, …) interagit avec le monde
extérieure grâce à des capteurs et à des actionneurs:

Système industriel

Matériel de
communication
Environnement
capteurs et
actionneurs

Système informatique embarqué


Support logiciel
avec ressources limitées: Support d’exécution OS ou programme
ports entrées/sorties, ADC, DAC, Processeur, informatique
….. mémoire, bus, …

• Pour commander le système industriel, on utilise un système informatique embarquée.

• Le système industriel est parfois soumis à des contraintes temporelles, donc il nous faut
un support logiciel (un prog. ou OS) pour traiter les informations et les actions à faire.

• Finalement, on a besoin d’un support d’exécution afin de permettre l’accès de la partie


logicielle à la partie matérielle. 1
I. Interaction Matériel/Logiciel dans un Système Embarqué
I.2. Architecture d’un microcontrôleur.
Programme Matériel
Support d’exécution
informatique ou OS -Processeur - Ports entrées/sorties
-Unix - ADC, DAC
- C/C++, python,… -mémoire
- Timers
-….. - Bus
API Adresses - UART, SPI, …
mémoires et
instructions

• API: interface de programmation contenant une liste de fonctions et procédures


préprogrammées (exemple : POSIX, bibliothèques en C/C++, …).

Programme Logiciel de compilation Téléchargement


Programme
user en Mémoire
machine en
language Flash
binaire
C/C++ et débogage

Page 2
II. Les bus
II.1. buffer à trois états

II.2. Utilisations

Address
bus

• Bus d’adresse
• Bus de donnée

Multiple périphériques connectés à un même bus


3
III. Les mémoires
III.1. Bascule D Latch
Data Input Data Output
10 0
1
D Q EN Q

0 Qanc
1
0
EN 1 D

III.2. Ecriture/Lecture d’un bit

Data Input Data Output


D Q
__
WR RD • Lecture : EN = X et RD=0
Enable __
EN • Ecriture : EN = 1 et WR=0

4
III. Les mémoires
III.3. registre mémoire à 4 bits

I0 I1 I2 I3

WR
D D D D
Q Q Q Q
EN EN EN EN
EN

RD O0 O1 O2 O3

1 0 1 1 0xB

• La valeur binaire contenue dans le registre est appelé mot binaire.


• On utilise le codage hexadécimal pour simplification.
5
III.4. mémoire à 4 compartiments de 4 bits
Activation de l’écriture et désactivation de la lecture charge le mot dans la zone
mémoire sélectionné
D
sans la mettre dans le bus de lecture.
0 D1 D2 D3

o o o o
W R

Les sorties sont


D Q D Q D Q D Q
déconnectées
EN EN EN EN

Les autres
étages
D Q D Q D Q D Q
gardent leurs
valeurs EN EN EN EN

D Q D Q D Q D Q

EN EN EN EN

Sélectionner
l’étage à D Q D Q D Q D Q
utiliser
EN EN EN EN

Activation de la lecture et désactivation de l’écriture récupère le mot se trouvant dans la zone mémoire
sélectionné sans influence du bus d’écriture car ce dernier est à l’état haute impédance.
o o o o
RD

6
D0 D1 D2 D3
III.4. mémoire à 4 compartiments de 4 bits
D0 D1 D2 D3

o o o o
W R

D Q D Q D Q D Q

EN EN EN EN I0 I1 I2 I3

WR Input Buffers
D Q D Q D Q D Q

EN EN EN EN EN0 Memory Reg. 0

EN1 Memory Reg. 1

EN2 Memory Reg. 2


D Q D Q D Q D Q

EN EN EN EN EN3 Memory Reg. 3

Output Buffers
RD
D Q D Q D Q D Q

EN EN EN EN O0 O1 O2 O3

o o o o
RD

7
D0 D1 D2 D3
III. Les mémoires
III.5. intégration sur puce
I0 I1 I2 I3

WR Input Buffers
WR Input Buffers

EN0 Memory Reg. 0 A D Memory Reg. 0 D0


d e
EN1 Memory Reg. 1 A1 d c Memory Reg. 1 D1
r o
EN2 Memory Reg. 2 Memory Reg. 2
A0 e d D2
Memory Reg. 3 s e
EN3 s r
Memory Reg. 3
D3
Output Buffers Output Buffers
RD RD

O0 O1 O2 O3

On remarque: - Nombre élevé de lignes


- Une seule opération de transfert de données lecture ou écriture

Solution: - Réduction par ajout de décodeur


- Utilisation un seul bus pour lecture/écriture 8
IV. Les Horloges (clocks)
IV.1. Définition
• Un μP exécute plusieurs actions d’une manière séquentielle.(l’une après l’autre).

• Chaque action est démarré par un front d’horloge (passage de 0 à 1 ou de 1 à 0).

• Parfois une action nécessite plusieurs fronts pour s’exécuter.

• Ce front est généré à chaque période temporelle fixe.

• Grace à l’horloge, le μP sait combien de temps est nécessaire pour exécuter une action et
quand démarrer une nouvelle.
IV.2. Exemple d’utilisation: bascule D flip-flop
EN Q 1 1
0 0
D Q
0 Qanc

1 Qanc 1
0
EN
D
9
IV. Les Horloges (clocks)
IV.1. Exemple d’utilisation:
Décalage à gauche ou à droite Compteur

1
0 1
0 1
0 0
1 0 1
0 1
0 1
0

• Communication séries

• Multiplication et division par 2d

• Manipuler les paramètres d’un


périphérique

• Boucle for

10
V. Architecture d’un micro-processeur
V.1. Van-Newman
Instructions +
data Memory
Address Bus
Arithmetic and Logic Address
Unit (UAL) Instr./Data

Result or
Address

Peripheric
Control Unit
Address
Data or Data
Activation
Address

Register Bank Data Bus

μp
11
V. Architecture d’un micro-processeur
V.2. Harvard Memory
instructions

Unité Arithmétique et Address


Logique (UAL) instruction

Donnée
Adresse
Résultat Périphériques
Unité de
Adresse
contrôle Address
Data
Activation
Donnée
Adresse
Banque de registres
Memory
instructions
μp
Address
Data
12
V. Architecture d’un micro-processeur
V.3. Principe de fonctionnement
• Le programme suivant réalise l’addition de 2 valeurs localisées dans la mémoire.
• La valeur située dans l’adresse contenue dans le registre R0 du processeur est
ajouté à la valeur située dans l’adresse contenue dans le registre R2.
• Le résultat est placé dans l’adresse mémoire contenue dans R4
• En assembleur, le programme est comme suit:

Code Description Code


assembleur Hexadécimale
LDR R1, [R0] @ récupération de la première valeur E5901000
LDR R3, [R2] @ récupération de la deuxième valeur E5923000
ADD R5, R3,R1 @ addition est sauvegarde dans R5 E0835001
STR R5, [R4] @ sauvegarde dans l’adresse contenue dans R4 E5845000

13
V. Architecture d’un micro-processeur Flash Memory
V.3. Principe de fonctionnement
On suppose que : 0x300C 0x… (??)
0x3008 0x…(??)
•Le programme est implémenté dans la mémoire flash à l’adresse 0x3000 0xA (10)
0x2000 et que le registre PC est initialisé avec cette même adresse. :
:
@ PC : registre contenant l’adresse d’une instruction. Il s’incrémente :
d’une ligne d’instruction ( 4 bits dans notre cas) à chaque cycle. :
0x2018 0x…(inst.
• R0 contient 0x3000, R2 contient 0x3004 et R4 contient 0x300C Z)
0x2014 0x…(Inst.
• Le mot mémoire à l’adresse 0x3000 est 10, et le mot mémoire à Y)
l’adresse 0x3004 est 2. 0x2010 0x…
(Inst.x)
0x200C
Code Description Code 0xE5845000
assembleur Hexadécimale 0x2008
LDR R1, [R0] @ récupération du premier mot E5901000 0xE0835001
0x2004
LDR R3, [R2] @ récupération du deuxième mot E5923000
0xE5923000
ADD R5, R3,R1 @ addition est sauvegarde dans R5 E0835001 0x2000
STR R5, [R4] @ sauvegarde dans l’adresse contenue dans R4 E5845000 0xE5901000
:
: 14
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Récupération instruction LDR R1, [R0]

0xE5901000 0x300C 0x… (??)


0x3004 0x2 (2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 :
R2 0x3004 0x2018 0x…(inst.
Z)
R3
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0x2010 0x…
(Inst.x)
0x200C
PC 0x2000 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x2000 0x2000
Adress bus 0xE5901000
:
: 15
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Traitement instruction LDR R1, [R0]

0xA 0x300C 0x… (??)


0x3004 0x2 (2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0x2010 0x…
(Inst.x)
0x200C
PC 0x2000 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x3000 0x2000
Adress bus 0xE5901000
:
: 16
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Récupération instruction LDR R3, [R2]

0xE5923000 0x300C 0x… (??)


0x3004 0x2 (2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0x2010 0x…
(Inst.x)
0x200C
PC 0x2004 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x2004 0x2000
Adress bus 0xE5901000
:
: 17
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Traitement instruction LDR R3, [R2]

0x2 0x300C 0x… (??)


0x3004 0x2 (2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3 0x2
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0x2010 0x…
(Inst.x)
0x200C
PC 0x2004 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x3004 0x2000
Adress bus 0xE5901000
:
: 18
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Récupération instruction ADD R5, R3, R1

0xE0835001 0x300C 0x… (??)


0x3004 0x2(2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3 0x2
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0x2010 0x…
(Inst.x)
0x200C
PC 0x2008 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x2008 0x2000
Adress bus 0xE5901000
:
: 19
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Traitement instruction ADD R5, R3, R1
0x300C 0x… (??)
0x3004 0x2(2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3 0x2
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0xC 0x2010 0x…
(Inst.x)
0x200C
PC 0x2008 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x2000
Adress bus 0xE5901000
:
: 20
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Récupération instruction STR R5, [R4]

0xE5845000 0x300C 0x… (??)


0x3004 0x2(2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3 0x2
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0xC 0x2010 0x…
(Inst.x)
0x200C
PC 0x200C 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x200C 0x2000
Adress bus 0xE5901000
:
: 21
Principe de fonctionnement d’un Micro-processeur
Flash Memory
Traitement instruction STR R5, [R4]
0x300C 0xC (12)
0xC
0x3004 0x2(2)
Data bus 0x3000 0xA (10)
:
R0 :
0x3000 :
R1 0xA :
R2 0x3004 0x2018 0x…(inst.
Z)
R3 0x2
0x2014 0x…(Inst.
R4 0x300C Y)
R5 0xC 0x2010 0x…
(Inst.x)
0x200C
PC 0x200C 0xE5845000
0x2008
0xE0835001
0x2004
0xE5923000
0x300C 0x2000
Adress bus 0xE5901000
:
: 22

Vous aimerez peut-être aussi