Vous êtes sur la page 1sur 24

SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

SYSTÈMES EMBARQUÉS

CHAPITRE 1 : ARCHITECTURE DU SYSTÈME


EMBARQUÉ

I.1. INTRODUCTION A L'INFORMATIQUE EMBARQUEE

I.1.1. Qu'est-ce que l'informatique embarquée ?

La définition la plus simple est que l'informatique embarquée est toute


l'informatique qui n'est pas à usage général, les processeurs à usage général
étant ceux qui équipent les ordinateurs portables, les PC et les serveurs
d'aujourd'hui. Les processeurs intégrés comprennent un grand nombre de
puces intéressantes : celles des voitures, des téléphones cellulaires, des
consoles de jeu, des appareils électroménagers et d'autres appareils
électroniques grand public. Ils comprennent également les périphériques des
systèmes à usage général : contrôleurs de disques durs, modems et cartes
vidéo. Dans chacun de ces exemples, les concepteurs ont choisi un noyau de
processeur pour leur tâche.
De nombreux processeurs embarqués sont moins performants que les
processeurs à usage général.
Si l'informatique embarquée implique un traitement, nous devons
également opposer le traitement (général ou embarqué) aux solutions de
rechange sans traitement. Les circuits intégrés à application spécifique
(Application-Specific Integrated Circuits : ASIC) sont la logique personnalisée
d'aujourd'hui, incorporant dans une seule puce des fonctions autrefois
réalisées par de nombreux composants d'intégration à faible échelle.

I.1.1.1. Caractéristiques des dispositifs embarqués

Un système embarqué est un dispositif qui n'a pas été conçu pour un
usage général. Les systèmes qui contiennent un microprocesseur largement
invisible pour l'utilisateur et les systèmes dans lesquels l'utilisateur n'est
jamais, ou rarement, censé charger un programme sont des exemples de
systèmes embarqués.

I.1.1.2. L'informatique embarquée est en plein essor

Page 1 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Les experts pensent que la prochaine génération de petits ordinateurs


apportera des avantages inimaginables.
Une puissance de calcul abordable et omniprésente permet de
nouvelles applications intéressantes. Les téléphones cellulaires numériques
d'aujourd'hui nécessitent une grande puissance de traitement, et les DSP qui
les alimentent sont remarquablement puissants, froids, compacts et efficient
sur le plan énergétique. À l'avenir, des médias plus riches et plus dynamiques
(y compris le son, les images fixes et la vidéo) seront disponibles dans un
plus grand nombre d'endroits. Les tâches qui nécessitaient autrefois un
superordinateur peuvent être exécutées partout. Les hautes performances
sont désormais suffisamment bon marché.

I.1.2. Distinction entre l'informatique embarquée et l'informatique à


usage général

Pour comprendre ce qui entre dans la catégorie de l'informatique


embarquée, il est instructif de noter ce qui n'est pas une exigence pour les
dispositifs embarqués. La durée de vie des dispositifs intégrés est très
différente du cycle d'obsolescence de trois ans des machines à usage général.
Certains appareils sont presque jetables : le téléphone cellulaire japonais
moyen est remplacé en moins d'un an. À l'opposé, les dispositifs
d'infrastructure tels que les commutateurs téléphoniques se déprécient sur
une période de 30 ans. Ces différences de durée de vie ont des effets concrets
sur l'évolutivité et la compatibilité ascendante.
La rétrocompatibilité est rarement une exigence des systèmes intégrés,
car les logiciels ne migrent pas d'un appareil à l'autre. Étant donné que de
nombreuses conceptions intégrées n'ont pas besoin d'être rétrocompatibles
avec les implémentations précédentes, les concepteurs sont libres de changer
de conception à chaque génération de produit. Par conséquent, la distinction
entre l'architecture et la mise en œuvre est moins importante. Si une nouvelle
version d'une puce est légèrement incompatible mais bien meilleure que ses
prédécesseurs, les concepteurs peuvent toujours être disposés à l'utiliser.

I.1.3. Caractériser l'informatique embarquée

Notre définition de l'informatique embarquée est basée sur ce qu'elle


n'est pas, plutôt que sur ce qu'elle est, ce qui rend difficile la description
concise de l'espace des systèmes embarqués. En essayant de le faire, il est
utile de classer les processeurs embarqués en fonction de leur utilisation,
mais même cela est trompeur par sa complexité. Le terme "utilisation" peut
se référer au marché des applications pour lesquelles le processeur est

Page 2 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

vendu, aux caractéristiques de la charge de travail que le processeur


exécutera ou même à la structure du processeur lui-même, en ce sens que
l'utilisation prévue est reflétée dans la manière dont les architectes
informatiques l'ont conçu, quelle que soit la manière dont le processeur est
finalement utilisé. Même si ces perspectives ne sont pas indépendantes les
unes des autres, nous estimons qu'il est utile d'examiner le traitement
embarqué du point de vue de chacune d'entre elles, ce que nous faisons dans
cette section.

I.1.4. Catégorisation par type de traitement

Tout système informatique nécessite un circuit de traitement. Ces


processeurs, ou cœurs, couvrent une gamme allant de minuscules dispositifs
en tranches de bits ou en série à des systèmes à mots larges avec des unités
fonctionnelles en grappes, parallèles et en pipeline. Bien que la plupart
d'entre nous considèrent qu'un "ordinateur" est un système tel qu'un PC, il
existe de nombreux types de dispositifs informatiques intégrés déployés
aujourd'hui. Les analystes du marché répartissent les cœurs de processeur
en quatre grandes catégories en fonction des secteurs industriels et des
modes d'utilisation.
1. Les microprocesseurs informatiques sont des processeurs à usage
général, qui adoptent généralement des données de 32 ou 64 bits, et
qui sont généralement déployés en tant que moteur de traitement
central d'un ordinateur central, d'une station de travail, d'un PC ou
d'un appareil portable haut de gamme (tel qu'un PDA (Personal Digital
Assistant)). La plupart des moteurs RISC et CISC haut de gamme
disponible sur le marché (x86, PA-RISC, PowerPC, SPARC, Alpha, etc.)
appartiennent à cette catégorie.
2. Les microprocesseurs embarqués à usage général sont des
composants conçus pour un large éventail d'applications, généralement
avec des données de 32 bits. Il s'agit souvent de versions réduites de
microprocesseurs informatiques existants. Les principales
architectures dans ce domaine sont ARM, PowerPC, MIPS, 68K, x86 et
SH, bien que ces dernières années ARM se soit taillé la part du lion sur
le marché. La plupart des fournisseurs ont récemment commencé à
proposer des versions de ces microprocesseurs en tant que cœurs
embarqués, à intégrer dans des systèmes dédiés plus importants. Les
systèmes qui utilisent ces noyaux intégrés sont appelés ASIC à base de
noyaux.
3. Les processeurs de signaux numériques (DSP) se distinguent des
microprocesseurs à usage général par l'importance qu'ils accordent à
l'exécution très efficient d'opérations arithmétiques dans des noyaux
orientés vers des boucles étroites. Les processeurs de Texas
Instruments (TI), Motorola, Agere (anciennement Lucent, qui était
Page 3 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

auparavant AT&T) et Analog Devices sont les leaders du marché dans


le domaine des DSP. TI est l'acteur dominant du marché des DSP
depuis plusieurs années. Les DSP sont l'un des secteurs à la croissance
la plus rapide sur le marché des semi-conducteurs informatiques.
4. Les microcontrôleurs sont le cheval de bataille de l'électronique
industrielle. Généralement conçus pour fonctionner de manière
autonome, ils comprennent une mémoire, des E/S, des bus et des
périphériques en plus d'une simple unité de traitement. De nombreux
microcontrôleurs sont les descendants d'architectures réussies des
générations de microprocesseurs 8 et 16 bits.

I.2. ARCHITECTURE DU JEU D'INSTRUCTIONS (CISC ET


RISC)

I.2.1. CISC : Complex Instruction Set Computer (ordinateur à jeu


d'instructions complexe)

Au début du développement des ordinateurs, la plupart des


programmes étaient développés en langage d'assemblage, car les langages de
haut niveau n'existaient pas encore. Les concepteurs d'unités centrales ont
donc essayé de créer des instructions capables d'effectuer le plus de travail
possible, ce qui a conduit au développement d'instructions avec de nombreux
modes d'adressage pour les opérations arithmétiques, logiques et de transfert
de données. Ces instructions puissantes offrent une plus grande flexibilité
dans l'exécution des opérations. L'architecture CISC nécessite moins
d'instructions par programme, au détriment du nombre de cycles par
instruction. Le microcontrôleur 8051 est basé sur l'architecture CISC, par
exemple les instructions de multiplication et de division sont des instructions
complexes pour lesquelles l'opération est effectuée dans le matériel.
Les caractéristiques communes de l'architecture CISC sont les
suivantes :
1. Matériel complexe : modes d'adressage complexes et multiples, taille
d'instruction variable.
2. Nombreux cycles d'horloge pour exécuter une instruction
3. Haute densité de code - petite taille de programme
4. Types de données complexes

Les processeurs CISC ont :

• Nombre d’instructions élevé ;

Page 4 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

• Les instructions réalisent souvent les transferts vers et depuis la


mémoire ;
• Peu de registres ;
• Exemples : Intel 8068, Motorola 68000.

I.2.2. RISC : Reduced Instruction Set Computer (Ordinateur à jeu


d'instructions réduit)

Les instructions simples qui effectuent quelques opérations à la fois


permettent d'obtenir des performances élevées car le décodeur d'instructions
nécessite moins de matériel. L'exécution des instructions prend donc très
peu de temps. Les instructions RISC ont quelques modes d'adressage
supportés par toutes les instructions. Elles réduisent le nombre de cycles par
instruction au détriment du nombre d'instructions par programme. Les
microcontrôleurs PIC de Microchip sont basés sur l'architecture RISC.
Les caractéristiques communes de l'architecture RISC sont les
suivantes :
1. Matériel simple : modes d'adressage simples et moins nombreux, taille
d'instruction fixe.
2. Exécution sur un seul cycle d'horloge, format d'instruction uniforme
3. Faible densité de code - taille de programme plus importante
4. Peu de types de données dans le matériel
5. L'accent est mis sur les logiciels : La conception du compilateur est
plus complexe.

Les processeurs RISC ont :

• Peu d’instructions ;
• Les instructions opèrent sur des registres ;
• Registres nombreux ;
• Exemples : Alpha, Sparc, MIPS, PowerPC.

Page 5 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.1 : Jeu d’instruction d’un processeur RISC

I.3. ARCHITECTURE DE BASE DU PROCESSEUR /


MICROCONTROLEUR EMBARQUE

I.3.2. Architecture de base du microprocesseur embarqué

Le schéma de principe d'un éventuel ordinateur numérique modulaire


à usage général basé sur un micro-ordinateur 16/32 bits est donné à la
Figure 1.2. Ce système se compose d'un certain nombre de modules reliés
entre eux par un bus.

Page 6 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.2 : Schéma fonctionnel d'un micro-ordinateur modulaire

I.3.2.1. Module CPU (Central Processing Unit) ou processeur

Le module CPU contient le microprocesseur et ses circuits de contrôle


associés. Le circuit de contrôle comprend tous les composants (à l'exception
de la mémoire et des périphériques) qui doivent être connectés à un
microprocesseur pour lui permettre de fonctionner. La plupart des
microprocesseurs ne contiennent pas suffisamment de circuits sur la puce
pour pouvoir être connectés directement aux composants de la mémoire. Les
fonctions suivantes sont quelques-unes des fonctions exécutées par le
module CPU.

Circuits de contrôle de l'horloge et de l'unité centrale : L'horloge fournit


les informations de séquencement dont le microprocesseur a besoin pour
contrôler ses opérations internes. Les microprocesseurs modernes de 32 bits
nécessitent un circuit d'horloge très simple générant une onde carrée
continue d'une fréquence comprise entre 4 et 100 MHz. Certains systèmes
très performants ont des fréquences d'horloge de 200 MHz et plus. Cette
horloge est une horloge maîtresse et est normalement distribuée à tous les
modules du système. Les autres circuits de contrôle comprennent le circuit
de réinitialisation à la mise sous tension, qui force le microprocesseur à

Page 7 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

exécuter une routine de démarrage peu de temps après la mise sous tension
du système.

Décodeur d'adresses : La fonction première du décodeur d'adresses est de


diviser l'espace mémoire de l'unité centrale en unités plus petites et de les
allouer aux différents composants de la mémoire. Le module CPU est
généralement doté d'une mémoire locale qui n'est pas accessible depuis le
bus système. Cette caractéristique permet de tester le module CPU
indépendamment du reste du système de microprocesseur. Le décodeur
d'adresses fait également la distinction entre un accès à la mémoire locale et
un accès à la mémoire située sur un autre module.

Adresse et buffer du bus de données : Le microprocesseur ou tout autre


dispositif distribuant des informations dans l'ensemble du système ne peut
normalement pas fournir une source électrique suffisante pour répondre à la
charge d'autres éléments sur le bus. Des circuits intégrés spéciaux, appelés
tampons (buffer) ou pilotes de bus, servent d'interface entre le
microprocesseur et le bus. Des circuits supplémentaires sont nécessaires
pour contrôler les pilotes de bus, étant donné qu'un seul dispositif peut
piloter le bus à tout moment.

Buffer de contrôle : La logique de contrôle des tampons détermine le mode


de fonctionnement des pilotes et des récepteurs de bus sur le module CPU.
Par exemple, lors d'un accès à la mémoire locale, les tampons pilotant le bus
système doivent être désactivés.

Bus de contrôle arbitraire : Dans certains micro-ordinateurs, le


microprocesseur a le contrôle exclusif du bus système et détermine la nature
de chaque accès au bus, c'est-à-dire une lecture de la mémoire ou une
écriture dans la mémoire. Dans d'autres micro-ordinateurs, plus d'un
périphérique peut accéder au bus. Il peut s'agir d'un contrôleur DMA (Direct
Memory Access ou accès direct à la mémoire), qui est utilisé pour transférer
des données directement entre un périphérique et la mémoire sans
l'intervention active du CPU, ou d'un autre microprocesseur.

Gestion de la mémoire : S'il est une chose qui sépare le monde du


microprocesseur 16/32 bits de celui du microprocesseur 8 bits, c'est bien la
gestion de la mémoire. La gestion de la mémoire est un terme générique qui
s'applique aux techniques qui traduisent l'adresse de l'information générée
par l'ordinateur (c'est-à-dire une adresse qui peut se trouver n'importe où

Page 8 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

dans son espace d'adressage) en l'adresse de cette information dans la


mémoire système disponible. La plupart des micro-ordinateurs 8 bits et de
nombreux micro-ordinateurs 16/32 bits n'utilisent pas de techniques de
gestion de la mémoire. L'adresse générée par l'unité centrale correspond
exactement à l'emplacement réel de l'information dans la mémoire vive du
microprocesseur. Une forme de gestion de la mémoire est associée au terme
de mémoire virtuelle et peut être utilisée pour faire en sorte qu'une petite
mémoire vive apparaisse à l'unité centrale comme étant beaucoup plus
grande qu'elle ne l'est en réalité. Cette forme de gestion de la mémoire
consiste à conserver une partie du programme ou des données dans la
mémoire vive à grande vitesse et le reste sur le disque. Lorsque l'unité
centrale ne trouve pas les données dont elle a besoin dans la mémoire à
grande vitesse, elle déplace davantage de données du disque vers la mémoire
à grande vitesse.

Figure 1.3 : Système micro-informatique construit autour d'un


microprocesseur

I.3.2.2. Module de mémoire

Le module de mémoire d'un micro-ordinateur contient l'essentiel de la


mémoire vive accessible à partir des bus système. La mémoire du module de
mémoire peut être une mémoire vive en lecture/écriture ou une mémoire en
lecture seule. La mémoire à lecture/écriture peut être lue ou écrite et est
souvent appelée simplement RAM dans la littérature informatique. La
mémoire morte (ROM) peut être lue mais pas écrite dans des conditions
normales. Par conséquent, la ROM est utilisée pour contenir des programmes
et des données qui changent peu ou pas du tout. En général, les ROM

Page 9 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

contiennent des interpréteurs pour des langages (tels que BASIC ou Fortran),
des systèmes d'exploitation et des programmes d'amorçage. Un programme
d'amorçage est le premier programme exécuté lorsqu'un ordinateur est
allumé et il est utilisé pour démarrer un système.
Le composant choisi pour le module de mémoire de la Figure 1.2 est
appelé mémoire dynamique. La mémoire dynamique est la forme la plus
rentable de mémoire vive en lecture/écriture disponible et est souvent choisie
comme moyen de mise en œuvre de grandes mémoires.

I.3.2.3. Module Périphériques

Le module des périphériques (voir Figure 1.2) contient les circuits qui
forment une interface entre le micro-ordinateur et le reste du monde. Par
exemple, une interface d'entrée/sortie série permet au micro-ordinateur de
communiquer avec n'importe quel terminal CRT actuellement disponible. Le
port série déplace les données d'un point à un autre, un bit à la fois. Un port
parallèle déplace simultanément plusieurs bits de données entre le micro-
ordinateur et un dispositif externe, tel qu'une imprimante. De nombreuses
interfaces parallèles transfèrent 8 bits à la fois, mais certaines peuvent être
programmées pour transférer moins de 8 bits ou jusqu'à 16 bits.
Une timer est un circuit intégré qui exécute une variété de fonctions
associées à la mesure du temps et à la génération d'impulsions. Les fonctions
réelles offertes par les différentes puces de minuterie varient d'un fabricant
à l'autre. Il peut mesurer la période ou la fréquence des impulsions reçues et
interrompre le microprocesseur à intervalles fixes.
Le contrôleur de disque constitue une interface entre le micro-
ordinateur et un dispositif de stockage de masse, qui peut être un lecteur de
disquette ou un disque dur. La plupart des contrôleurs de disque sont des
dispositifs extrêmement sophistiqués qui rivalisent souvent avec les
microprocesseurs eux-mêmes en termes de complexité. La principale
fonction du contrôleur de disque est de traduire les données du micro-
ordinateur dans un format adapté au stockage sur le disque, et vice versa.
Le contrôleur de bus IEEE constitue une interface entre le micro-
ordinateur et le célèbre bus IEEE-488. D'un point de vue conceptuel, le bus
IEEE-488 se comporte de manière très similaire au bus système. Hewlett-
Packard l'a conçu à l'origine et l'a destiné à relier des instruments
programmables dans un laboratoire ou un environnement industriel.

I.3.3. Architecture de base du microcontrôleur embarqué

Page 10 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Le microcontrôleur est un ordinateur complet intégré dans une seule


puce semi-conductrice. Le terme "micro", comme mentionné ci-dessus,
signifie que la taille est petite, et le terme "contrôleur" signifie qu'ils sont
normalement utilisés pour contrôler les machines ou les gadgets. Par
définition, les microcontrôleurs sont donc conçus pour des applications de
contrôle et/ou de surveillance de machines, plutôt que pour des interactions
humaines directes.
Un microcontrôleur contient tous les composants (ou les principaux
composants) dans une seule puce afin de rendre les systèmes basés sur eux
autonomes. Il comprend une mémoire de données et de code, divers
périphériques sur puce tels que des minuteries/compteurs, un port série,
des convertisseurs A/N, des convertisseurs N/A, etc., des contrôleurs
d'interface et des ports d'E/S à usage général qui lui permettent de
s'interfacer directement avec l'environnement externe. La quantité et le type
de mémoire, d'E/S et de périphériques intégrés varient selon la gamme de
microcontrôleurs disponibles. Le microcontrôleur spécifique est choisi en
fonction des exigences de l'application finale. Le schéma fonctionnel d'un
microcontrôleur est illustré à la Figure 1.2.

Figure 1.4 : Schéma fonctionnel du microcontrôleur

Un microcontrôleur contient toutes les ressources au sein d'une puce


(on-chip) pour répondre aux besoins d'une application ou d'un projet moyen.
Cette intégration de toutes les ressources nécessaires offre les avantages
suivants :
1. Les périphériques sur la puce ont un temps d'accès plus court ; la
vitesse est donc plus élevée.
2. Moins de puces, moins de câblage, moins de taille de PCB, ce qui réduit
le temps de développement, le coût de fabrication et augmente la

Page 11 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

fiabilité du système, qui sont les facteurs clés de la conception d'un


système embarqué.
3. Facilité de maintenance et évolutivité

Le 8051 est un microcontrôleur 8 bits, c'est-à-dire une largeur de bus


de données interne de 8 bits. Il est optimisé pour les opérations
mathématiques et booléennes à 8 bits. Sa famille comprend les
microcontrôleurs 8031, 8032, 8051, 8052, 8751 et 8752. L'architecture des
microcontrôleurs de la famille 8051 est appelée architecture MCS 51, ou
simplement MCS51.
Le schéma de principe architectural du 8051 est illustré à la Figure
1.3. Il montre l'organisation de tous les composants matériels et les
connexions des chemins de données entre eux. Il comprend une UAL de 8
bits avec des capacités de traitement booléen, une mémoire de programme
et de données, quatre ports E/S de 8 bits, deux minuteries/compteurs, un
UART (Universal Asynchronous Receiver Transmitter), des circuits de
synchronisation et de contrôle et un circuit d'oscillateur.

Page 12 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.5 : Schéma fonctionnel du microcontrôleur 8051

I.3.3.1. L'UAL

L'Unité Arithmétique et Logique (ALU) effectue toutes les opérations


arithmétiques (addition, soustraction, multiplication et division) et logiques
(ET, OU, NON, OU EXCLUSIF et rotation) sur des données de 8 bits, c'est-à-
dire que le 8051 possède une ALU de 8 bits. L'UAL met également à jour les
informations sur la nature du résultat dans le registre des drapeaux (PSW).

I.3.3.2. La mémoire

La famille 8051 dispose d'une mémoire de programme et d'une


mémoire de données séparées sur la puce. Les instructions de programme
sont stockées dans une mémoire de programme
(ROM/EPROM/EEPROM/Flash selon le membre de la famille). La quantité
et le type de mémoire de programme sur puce est le facteur clé qui différencie
tous les membres de la famille, par exemple, le 80C51 a 4Kbytes de ROM
(Read Only Memory) sur puce, tandis que le 80C52 a 8Kbytes (ROM), le
87C51 a 4Kbytes (Erasable Programmable Read-Only Memory : EPROM) et
le 87C52 a 8Kbytes (Electrically-Erasable Programmable Read-Only
Memory : EEPROM) de mémoire de programme sur puce. La mémoire de
programme totale (y compris la ROM sur puce) qui peut être connectée au
8051 est de 64 KO. De même, la mémoire de données peut être sur puce ou
hors puce. La mémoire de données interne (Random-Access Memory : RAM)
du 80C51 est de 128 octets et celle du 80C52 de 256 octets. Il existe
également des emplacements de RAM sur la puce qui sont utilisés pour
programmer et contrôler divers périphériques matériels sur la puce et les
caractéristiques du 8051. Ils sont connus sous le nom de registres de
fonctions spéciales (Special Function Registers : SFR).

I.3.3.3. Les périphériques

Le 8051 possède deux temporisateurs de 16 bits (le 8052 en possède


trois) qui sont utilisés pour les applications de chronométrage et de
comptage. Il dispose d'un port série full duplex (UART) pour gérer la
transmission et la réception de données en série.

I.3.3.4. Unité de synchronisation et de contrôle

Page 13 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Cette unité génère tous les signaux de synchronisation et de contrôle


nécessaires à l'exécution des instructions et synchronise toutes les activités
internes avec l'horloge.

I.3.3.5. L’oscillateur

Le 8051 possède un circuit oscillateur interne (sur puce) (circuit


partiel) qui génère les impulsions d'horloge par lesquelles toutes les
opérations internes sont synchronisées. Le circuit résonnant externe est
connecté à ce circuit d'oscillateur interne sur puce pour former un oscillateur
complet. Normalement, un cristal de quartz est utilisé pour rendre
l'oscillateur fonctionnel. En général, on utilise un quartz de 12 MHz (ou
11,0592 MHz pour prendre en charge les débits en bauds standard du port
série).

I.4. ARCHITECTURE DU SYSTEME DE MEMOIRE

La mémoire sur puce du 8051 est organisée en trois catégories


générales : les registres de fonctions spéciales, la RAM interne et la ROM
interne, comme le montre la Figure 1.4.

Page 14 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.6 : Modèle de programmation du 8051

I.4.1. Registres de fonctions spéciales (Special Function Registers :


SFR)

Ces registres sont utilisés pour programmer et contrôler divers


périphériques matériels sur la puce et les caractéristiques du 8051. Chaque
SFR a un nom qui spécifie l'objectif du SFR. Par exemple, le registre TCON
(Timer Control) est utilisé pour contrôler les activités de la minuterie. Notez
que 128 octets (80H à FFH) de l'espace d'adressage SFR sont disponibles,
mais que seuls 21 SFR sont définis dans la norme 8051. Étant donné que
les SFR sont programmés par des instructions, il s'agit d'emplacements RAM.
Les SFR sont classés comme suit :

• Registres mathématiques : A et B
• Registre d'état : PSW (Program Status Word)

Page 15 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

• Compteur de programme : PC
• Registres de pointeurs : DPTR (Data Pointer) et SP (Stack Pointer)
• Verrous des ports d'entrée et de sortie : P0, P1, P2 et P3
• Registres de données périphériques : TL0, TH0, TL1, TH1 et SBUF
• Registres de contrôle des périphériques : IP, IE, TMOD, TCON, SCON
et PCON

I.4.2. RAM interne

Le 8051 dispose de 128 octets de mémoire vive interne. Comme elle est
disponible sur la puce, elle est la plus rapide et la plus souple en termes
d'opérations de lecture/écriture. Elle est utilisée pour stocker des données
temporaires et des résultats. Cette mémoire est subdivisée en trois
catégories, comme suit ci-dessous :

• Banques de registres : Banque 0, Banque 1, Banque 2 et Banque 3


(00H à 1FH)
• RAM adressable par bit : Emplacements de mémoire des adresses 20H
à 2FH
• RAM à usage général : Emplacements de mémoire des adresses 30H à
7FH

I.4.3. ROM interne

Elle est utilisée pour stocker les instructions de programme à exécuter


par le microcontrôleur. Elle peut également être utilisée pour stocker des
données permanentes telles que des constantes, des mots de passe et des
tables de consultation. Le 8051 dispose de 4K octets de ROM interne. Il est
à noter que les différentes variantes du 8051 ont une quantité et un type de
ROM interne différents.

I.4.4. Organisation de la mémoire externe

Il y a deux espaces d'adresse parallèles de 64 kilo-octets ; l'un pour la


ROM et l'autre pour la RAM, c'est-à-dire que le 8051 peut adresser
simultanément 64 Koctets de RAM (mémoire de données) et 64 Koctets de
ROM (mémoire de programme), comme le montre la Figure 1.5. On accède à
l'espace de données en utilisant des instructions de déplacement de données
externes (MOVX A, source ou MOVX destination, A) et on accède à l'espace
de code en utilisant des instructions de déplacement de code externes (MOVC
A, source). Les deux types d'instructions utilisent le registre DPTR pour

Page 16 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

pointer vers l'octet de mémoire actuel. L'accès à la mémoire de programme


se fait toujours par l'intermédiaire du PC pour récupérer le code op d'une
instruction.

Figure 1.7 : Espace mémoire externe de programme et de données pour le


8051

I.5. SOUS-SYSTEME D'E/S

La structure du port du 8051 est extrêmement polyvalente et flexible.


Le composant possède 32 broches d'E/S configurées en quatre ports
parallèles de 8 bits appelés P0, P1, P2 et P3. Chaque broche peut être utilisée
comme entrée ou comme sortie sous le contrôle du logiciel. Les instructions
peuvent accéder directement à ces broches d'E/S pendant l'exécution du
programme. Les ports E/S sont mappés en mémoire dans le 8051, c'est-à-
dire qu'ils sont traités comme des emplacements de mémoire.
Sur les 32 broches d'E/S, 24 broches (P0, P2 et P3) peuvent chacune
être utilisées pour deux fonctions différentes (mais une seule à la fois), ce qui
donne un total de 66 broches (40 broches normales + 24 fonctions
alternatives des ports + 2 pour la programmation). La fonction exécutée par
une broche à un moment donné dépend de l'instruction utilisée pour accéder
à une broche et du signal connecté à cette broche ; ces facteurs peuvent donc
être directement contrôlés par un programmeur. Les fonctions alternatives
des ports sont indiquées ci-dessous :

• P0 : Bus d'adresse/données de niveau inférieur (AD7-AD0)


• P2 : Bus d'adresse d'ordre supérieur (A15-A8)
• P3 : Chaque broche a une fonction différente comme indiqué dans la
Table 1.1.

Page 17 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Table 1.1 : Fonctions alternatives du port 3

Même au sein d'un port unique, les opérations d'E/S peuvent être
combinées de différentes manières. Différentes broches peuvent être
configurées comme entrée ou sortie indépendamment les unes des autres ou
la même broche peut être utilisée comme entrée ou sortie à différents
moments, c'est-à-dire que tous les ports sont adressables par bit. Tous les
ports du 8051 ont une largeur de huit broches et sont bidirectionnels.
Chaque broche se compose d'un verrou D, d'un tampon d'entrée et d'un
pilote de sortie.
Le SFR de chaque port est constitué de ces huit latches, auxquels on
peut accéder par l'adresse SFR de ce port ; l'adresse de chaque port et le nom
du SFR correspondant sont indiqués dans la Table 1.2.

Tableau 1.2 : Port SFR et leurs adresses

Page 18 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.8 : Brochage du 8051

I.6. COPROCESSEURS ET ACCELERATEURS MATERIELS

Page 19 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Un coprocesseur est un circuit électronique destiné à ajouter une


fonction à un processeur classique. On compte des coprocesseurs
arithmétiques (pour le calcul en virgule flottante), graphiques (pour accélérer
le rendu 2D ou 3D) et des coprocesseurs spécialisés dans le chiffrement.
Alors que le processeur principal est conçu pour exécuter tout type de
programme, un coprocesseur est spécialisé dans l’exécution rapide d'un type
de calcul particulier (Fonction trigonométrique, processeur graphique, par
exemple).
Le coprocesseur à virgule flottante MC68881 fournit un support
matériel pour les calculs utilisant la norme IEEE à virgule flottante et les
fonctions transcendantes (sin, tan, etc.). Tous les calculs sont effectués avec
une précision de 80 bits et de nombreuses constantes mathématiques sont
stockées en interne dans la ROM pour une utilisation immédiate. Il ajoute
huit registres à virgule flottante de 80 bits, FP0-FP7, avec trois registres de
contrôle au modèle de programmation USER.
Le dispositif PGA (Pin Grid Array) 68 broches agit comme un
coprocesseur non-DMA (il dépend entièrement du MC68020 pour son
alimentation en données) et peut être utilisé comme périphérique avec les
processeurs MC68000/010/008. L'interface est très simple, ne nécessitant
qu'une logique simple pour décoder l'ID du processeur et la sélection de
registre à partir du bus d'adresse pendant un cycle de coprocesseur de
l'espace CPU pour générer une sélection de puce.

Page 20 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Figure 1.9 : Schéma fonctionnel du MC68020/MC68881

I.7. CHOISIR UN MICROCONTRÔLEUR

Les microcontrôleurs sont choisis principalement en fonction des


exigences d'une application et d'un produit particuliers. Les principaux
facteurs à prendre en compte pour sélectionner les microcontrôleurs sont
examinés brièvement dans la section suivante.
Exigences en matière de calcul : Le microcontrôleur doit avoir une vitesse
et une capacité de traitement suffisantes pour traiter toutes les opérations
d'une application en temps réel. La vitesse doit être juste suffisante pour
répondre efficacement aux besoins de calcul d'une application. Des vitesses
opérationnelles plus élevées que nécessaire augmenteront inutilement la
consommation d'énergie. La longueur des mots du microcontrôleur (8, 16 ou
32 bits) doit correspondre à la plupart des types de données à traiter. Il s'agit
donc d'un facteur important dans l'évaluation des capacités de calcul et de
l'adéquation du microcontrôleur à une application.

Page 21 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Ressources matérielles requises : Le microcontrôleur doit disposer d'une


mémoire de programme et de données suffisante pour stocker et exécuter un
programme d'application. Un programme d'application doit occuper environ
70 à 80 % de la mémoire de programme du microcontrôleur, ce qui laisse de
l'espace pour les mises à jour futures. Le microcontrôleur doit disposer de
suffisamment de broches d'E/S pour assurer l'interface utilisateur et la
connectivité avec les autres modules d'une application. Il doit également
disposer de tous les périphériques (ou d'un maximum d'entre eux), tels que
les temporisateurs/compteurs, le convertisseur analogique-numérique, le
convertisseur numérique-analogique, le port série, etc., sur la puce afin de
rendre le produit aussi compact et fiable que possible.

Exigences en matière d'alimentation : Un microcontrôleur doit avoir une


faible consommation d'énergie. Il s'agit d'un facteur essentiel pour les
produits portables et alimentés par batterie.

Outils de développement logiciel et matériel et famille : Le coût et la


disponibilité des outils de développement logiciel tels que le
compilateur/assembleur, les débogueurs, les émulateurs ou l'environnement
de développement intégré (Integrated Development Environment : IDE) sont
des facteurs importants dans le choix d'un microcontrôleur. La disponibilité
de bibliothèques et de modules logiciels facilitera la conception du produit.
L'équipe de conception doit bien connaître tous ces outils et la famille de
microcontrôleurs. Par exemple, si l'équipe de conception a de l'expérience et
de l'expertise dans la famille Intel 8051, le choix du microcontrôleur de la
famille 8051 conduira à une conception parfaite du produit. Cela permet
d'économiser les efforts de développement et de réduire le temps de mise en
œuvre. Le support tiers pour tous les outils est également un facteur
important dans le choix d'un microcontrôleur.

Coût : il s'agit d'un facteur important dans la sélection d'un microcontrôleur.


Le concepteur doit choisir le microcontrôleur le moins cher qui répond aux
besoins de l'application.

Disponibilité : Le microcontrôleur et les puces de support, le cas échéant,


doivent être facilement disponibles en quantités suffisantes, aujourd'hui et à
l'avenir, tout au long du cycle de vie du produit.

Page 22 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

Evolutivité et maintenance : La capacité du microcontrôleur à évoluer vers


des versions plus performantes ou plus économes en énergie à l'avenir et la
facilité de maintenance du produit doivent également être prises en compte.

Page 23 sur 24
SYSTÈMES EMBARQUÉS Par Pr Olivier VIDEME BOSSOU

TABLE DES MATIERES


CHAPITRE 1 : ARCHITECTURE DU SYSTÈME EMBARQUÉ .................. 1
I.1. INTRODUCTION A L'INFORMATIQUE EMBARQUEE .......................................... 1
I.1.1. Qu'est-ce que l'informatique embarquée ? .................................................... 1
I.1.1.1. Caractéristiques des dispositifs embarqués .......................................... 1
I.1.1.2. L'informatique embarquée est en plein essor....................................... 1
I.1.2. Distinction entre l'informatique embarquée et l'informatique à
usage général ........................................................................................................................... 2
I.1.3. Caractériser l'informatique embarquée ........................................................... 2
I.1.4. Catégorisation par type de traitement ............................................................ 3
I.2. ARCHITECTURE DU JEU D'INSTRUCTIONS (CISC ET RISC) ......................... 4
I.2.1. CISC : Complex Instruction Set Computer (ordinateur à jeu
d'instructions complexe) .................................................................................................... 4
I.2.2. RISC : Reduced Instruction Set Computer (Ordinateur à jeu
d'instructions réduit) ........................................................................................................... 5
I.3. ARCHITECTURE DE BASE DU PROCESSEUR / MICROCONTROLEUR
EMBARQUE .................................................................................................................................. 6
I.3.2. Architecture de base du microprocesseur embarqué ................................ 6
I.3.2.1. Module CPU (Central Processing Unit) ou processeur ...................... 7
I.3.2.2. Module de mémoire .......................................................................................... 9
I.3.2.3. Module Périphériques .................................................................................... 10
I.3.3. Architecture de base du microcontrôleur embarqué .............................. 10
I.3.3.1. L'UAL ..................................................................................................................... 13
I.3.3.2. La mémoire ........................................................................................................ 13
I.3.3.3. Les périphériques ............................................................................................ 13
I.3.3.4. Unité de synchronisation et de contrôle .............................................. 13
I.3.3.5. L’oscillateur ....................................................................................................... 14
I.4. ARCHITECTURE DU SYSTEME DE MEMOIRE.................................................... 14
I.4.1. Registres de fonctions spéciales (Special Function Registers : SFR)
..................................................................................................................................................... 15
I.4.2. RAM interne .............................................................................................................. 16
I.4.3. ROM interne .............................................................................................................. 16
I.4.4. Organisation de la mémoire externe .............................................................. 16
I.5. SOUS-SYSTEME D'E/S .................................................................................................. 17
I.6. COPROCESSEURS ET ACCELERATEURS MATERIELS ................................... 19
I.7. CHOISIR UN MICROCONTRÔLEUR ......................................................................... 21

Page 24 sur 24

Vous aimerez peut-être aussi