Vous êtes sur la page 1sur 47

PROGRAMMATION DES SYSTEMES

EMBARQUES

L1 FASI

FACULTE DES SCIENCES INFORMATIQUES

Philippe FARADJA (B Eng 2011, M Eng 2015, PhD Eng 2020)


Ass Bernice Zuw
1
Références
Thomas L. Floyd David L. Buchla , Electronics Fundamentals Circuits,
Devices and Applications,, Eighth Edition, 2014.
Boylestad R. L. & Nashelsky L, Electronic Devices and Circuit Theory,
11th Edition, Pearson Prentice Hall
Horowitz and Hill, The Art of Electronics, Cambridge University Press
Rizzoni G., Principles and Applications of Electrical Engineering,
McGraw-Hill
Rashid M., Microelectronics Circuits: Analysis and Design, PWS
Publishing House
Neamen D. A., Microelectronics Circuit Analysis and Design,
McGraw-Hill
Floyd T., Digital Fundamentals, Ninth Edition, Prentice Hall, New
Jersey
Jain R. P. Modern Digital Electronics, McGraw-Hill
Martin P. Bates - Interfacing PIC Microcontrollers Embedded Design
by Interactive Simulation-Newnes (2014) 2
Références
Jack Ganssle (Auth.) - The Art of Programming Embedded Systems-
Academic Press (1991)
Saad Motahhir (editor) - Smart Embedded Systems and Applications-
River Publishers (2023)
Mazidi, Muhammad Ali_ Chen, Shujen_ Ghaemi, Eshragh - STM32
Arm Programming for Embedded Systems-MicroDigitalEd (2019)

Kirk Zurell - C programming for embedded systems-R&D Books


(2000)
Barr, Michael_Massa, Anthony - Programming Embedded Systems-
O'Reilly Media Incorporated (2006_2009)
Julio Sánchez_ Maria P Canton - Embedded Systems Circuits and
Programming-CRC Press (2012)
Bakos, Jason D - Embedded systems _ ARM programming and
optimization-Morgan Kaufmann is an imprint of Elsevier (2015)
A.K. Ganguly - Embedded Systems_ _ Design, Programming and3
Applications-Alpha Science International (2014)
Références
Martin P. Bates - Interfacing PIC Microcontrollers Embedded Design
by Interactive Simulation-Newnes (2014)
Bohdan Borowik (auth.) - Interfacing PIC microcontrollers to
peripherial devices-Springer Netherlands (2011)

4
METHODE
Travaux théoriques

Travaux Pratiques

Travaux de recherche

Présence (Bonus de présence au delà d’un certain seuil)

Plagiat sévèrement sanctionné (Sources LIBGEN..)

Liste Excel de Présence

5
Programmation des Systèmes
Embarqués: Contenu

Rappel (Electronique Analogique, Electronique


numérique )

Systèmes Embarqués (Microcontrôleurs PIC)

Applications (Assembleur, Langage C)

6
Electronique Analogique

Composants Passifs (Résistance, Inductances,


Condensateurs, Memristors)

Analyse des circuits ( continus, alternatifs)

Composants Actifs (Diodes, Transistors,


Amplificateurs Opérationnels, Circuits Intégrés)

Polarisations et application
7
Electronique Analogique

8
Electronique Analogique

9
Electronique Analogique

10
Electronique Analogique

Composants Passifs (Résistance, Inductances,


Condensateurs, Memristors)

Capteurs passifs (résistifs, capacitifs, inductifs, etc)

Composants Actifs (Diodes, Transistors,


Amplificateurs Opérationnels, Circuits Intégrés)

Capteurs actifs

11
Electronique Numérique

De l’Electronique analogique à l’Electronique


Numérique

Les portes logiques (AND, OR, NAND, NOR, ..)

Circuits combinatoires

Circuits séquentiels

Microcontrôleurs
12
Electronique Numérique

13
Electronique Numérique

14
Electronique Numérique

15
Systèmes Embarqués: Definition
Selon une définition courante, chaque système
électrique ou mécanique contenant un contrôleur,
implémenté sur la base d'un processeur numérique, est
appelé système embarqué.
La plupart (la majorité et non la totalité) des systèmes
embarqués contemporains sont mis en oeuvre sur la
base de microcontrôleurs, qui sont des dispositifs
informatiques dont les blocs fonctionnels (processeur
central, mémoire, dispositifs d'entrée et de sortie et bus
d'interface) sont combinés sur une seule puce.
Du point de vue matériel, les microcontrôleurs
représentent des circuits d’intégration à très grande
16
échelle (VLSI).
Systèmes Embarqués: Définition

Pour fonctionner avec succès en temps réel, le


système embarqué doit être développé de manière à
ce que le cycle de calcul requis s’adapte à l’intervalle
de temps donné.
Aujourd'hui, nous sommes à l'ère des appareils
intelligents, car la technologie embarquée est
impliquée dans diverses applications que nous
utilisons dans notre vie quotidienne grâce aux
microprocesseurs et aux microcontrôleurs.
Le système ne peut comporter que des dispositifs
électroniques, électromécaniques, électrochimiques,
etc 17
Systèmes Embarqués: Définition
Un système embarqué peut être un système en temps réel
qui effectue des tâches critiques.
La plupart des systèmes embarqués sont basés sur des
capteurs et des actionneurs de sortie.
Un capteur examine généralement le comportement du
monde extérieur et envoie les informations du
comportement à un système à microcontrôleur embarqué.
Il est généralement numérique ou analogique.
Un capteur analogique envoie un niveau de tension
correspondant à la valeur de données détectée, tandis
qu'un capteur numérique envoie une impulsion numérique
à modulation de largeur d'impulsion (PWM) ou à
modulation de position d'impulsion (PPM) correspondant
18
Systèmes Embarqués
Un actionneur peut être considéré comme un
périphérique de sortie répondant au comportement
détecté par le capteur.
Il peut s’agir généralement d’un manipulateur, d’un
bras robotique ou d’un dispositif à relais effectuant
une tâche en temps réel sur la base des données de
capteur.

19
Systèmes Embarqués
CLASIFICATIONS DES SYSTEMES EMBARQUES
En règle générale, les périphériques embarqués
peuvent être classés en plusieurs classes.
Une classification est basée sur la puissance de
traitement, le coût, les fonctionnalités et l'architecture
des microcontrôleurs. Les classifications typiques sont
les suivantes:

1.SYSTEME EMBARQUE A PETITE ECHELLE

2.SYSTEME EMBARQUE A MOYENNE ECHELLE

3.SYSTEME EMBARQUE A PETITE ECHELLE 20


Systèmes Embarqués
1.SYSTEME EMBARQUE A PETITE ECHELLE
Un système embarqué à petite échelle repose principalement
sur une architecture à 8 ou 16 bits. Il fonctionne généralement
avec une batterie de 5 V ou 3.3 V, avec une puissance de
traitement et une mémoire limitée. Il utilise généralement une
mémoire flash de petite taille ou une mémoire programmable à
lecture uniquement (EEPROM), effaçable électriquement pour
stocker des programmes et des instructions.
Le système lui-même est moins compliqué que les autres
systèmes haut de gamme. Généralement, le langage C est
préférable pour programmer un tel système intégré. Le
programmeur de périphérique génère les instructions au
niveau de l'assemblage et les envoie à la mémoire du système.
Pour développer un tel système, la conception au niveau21de la
Systèmes Embarqués
1.SYSTEME EMBARQUE A PETITE ECHELLE
Example
Machine à laver
Four
Serrure de porte automatique
Système de sécurité domestique contrôlé par le mouvement
Contrôleur de clavier
Lecteur CD
télécopieur
photocopieuse
imprimante

22
Systèmes Embarqués 2.SYSTEME EMBARQUE A MOYENNE ECHELLE
Ce type de système est principalement utilisé pour le
traitement du signal numérique (DSP). La plupart du temps,
l'architecture de processeur 16 ± 32 bits est utilisée dans de
tels systèmes. Ce système prend en charge la conception
logicielle et matérielle complexe et nécessite des
environnements de développement intégrés, des débogueurs,
des simulateurs et des outils d'ingénierie de code pour installer
et analyser le logiciel. L’installation préférée (RISC) est
l’architecture la plus préférable dans ce cas, car elle prend en
charge l’empilement et la mise en réseau du protocole de
contrôle de transmission / protocole Internet (TCP / IP). Les
dispositifs de prototypage rapide, les systèmes d'acquisition de
données intelligents basés sur une machine RISC (ARM)
avancée et les systèmes d'automatisation sont des exemples 23
de
tels systèmes embarqués.
Systèmes Embarqués 2.SYSTEME EMBARQUES SOPHISTIQUES
Ce type de système embarqué a une configuration matérielle et
logicielle élevée. Ces architectures prennent en charge les
architectures CISC (Complex Instruction Set Computing) et
RISC. La plupart de ces systèmes ont une configuration de
mémoire vive (RAM) plus élevée. Il supporte le concept du
système sur puce (SOC).
Le logiciel qui s'exécute sur des systèmes intégrés est
principalement un système d'exploitation en temps réel
(RTOS) prenant en charge le protocole réseau TCP / IP. Ces
systèmes prennent en charge davantage d'applications haut de
gamme telles que les médias et les jeux graphiques haute
définition, tels que les smartphones, les téléviseurs intelligents,
les tablettes PC et les appareils de jeu haut de gamme tels que
PlayStation et Xbox. 24
Systèmes Embarqués
Les systèmes embarqués sont implémentés à partir des
microcontrôleurs fabriqués par Intel, Microchip, Motorola,
Atmel, etc

25
Systèmes Embarqués
Les composants matériels que l'on peut trouver dans un
système embarqué sont difficiles à
énumérer. Ils incluent (mais ne sont pas limités à) les éléments
suivants :
• Circuits imprimés • Horloges et bascules
• Processeurs (généralement un ou plusieurs microcontrôleurs)
• Transistors • Des portes logiques • Alimentations
• Diviseurs de fréquence, temporisateurs et compteurs
• Multiplexeurs et démultiplexeurs
• Mémoires et installations de stockage de données
• Contrôleurs de communication • Commutateurs et claviers
• LED, LED à sept segments et LCD
• Moteurs et dispositifs de commande de moteur
• Capteurs • Solénoïdes et actionneurs 26
Systèmes Embarqués

27
Systèmes Embarqués
Un microprocesseur est un dispositif électronique numérique
comportant des transistors, des diodes et des circuits intégrés
miniaturisés. Il comprend généralement une unité arithmétique
et logique (ALU), une unité de contrôle, des registres et
plusieurs bus de données et d’adresses.
Les microprocesseurs exécutent généralement un ensemble
d’instructions dans leur ALU contrôlée par l’horloge de
minuterie générée par l’unité de commande du
microprocesseur.
Un microprocesseur peut être connecté à plusieurs
périphériques mémoire et entrées / sorties (IO). Généralement,
un microprocesseur a de nombreuses paires de registres
connectées en interne avec lui. Les instructions exécutées sur
le microprocesseur sont généralement extraites de la mémoire
28
vers les paires de registres.
Systèmes Embarqués
Les résultats sont calculés par une ALU et la valeur finale est
stockée dans les registres, puis transférée en mémoire.
En règle générale, le microprocesseur Intel 8085 possède un
registre accumulateur, une paire de registres BC, DE et HL.
Parallèlement à cela, un registre de compteur de programmes
est disponible pour stocker l'adresse de l'instruction suivante.
Un registre de pointeur de pile est également disponible pour
stocker l'adresse du haut de la pile. Un registre de fanions est
dédié à l’état du calcul de l’instruction du microprocesseur.
Le microprocesseur 8085 contient un bus de données de 8 bits
et un bus d’adresses de 16 bits permettant de récupérer des
adresses et des données, les bus de rang supérieur étant
communs aux transferts d’adresses et de données.
29
Systèmes Embarqués
D'autre part, le Motorola 68000 (souvent appelé m68k) est un
processeur de 16/32 bits, le supportant l'architecture CISC. Il
supporte un ensemble d’instructions de 32 bits et fonctionne
dans une horloge de 20 MHz. Le processeur a huit registres de
données de 32 bits et huit registres d'adresse de 16 bits à partir
desquels le dernier registre est traité comme un pointeur de
pile.
Le microprocesseur 68000 a été considéré comme
microprocesseur le plus réussi dans les années 1980. La
première imprimante laser a été développée avec à l’aide de ce
processeur, la première imprimante laser de HP ayant
également utilisé une résolution de 8 MHz 68000
microprocesseur en 1984.
30
Systèmes Embarqués

31
Systèmes Embarqués
Les microcontrôleurs sont souvent appelés micro-ordinateurs
et sont utilisés dans des applications embarquées dans la
plupart des cas. Un microcontrôleur est une puce intégrée
contenant un processeur, une mémoire et des ports d'entrée et
de sortie programmables, souvent appelés entrées / sorties à
usage général (GPIO).
En général, un microcontrôleur peut avoir une RAM de très
petite taille, une mémoire ROM programmable, ainsi qu'une
mémoire flash pour stocker des programmes et des
instructions.
Outre le microprocesseur, un microcontrôleur a le pouvoir
d'effectuer des tâches en temps réel à l'aide du logiciel intégré.
Les dispositifs à microcontrôleur sont utilisés dans de
nombreuses applications allant d'une horloge numérique 32
minuscule à un énorme système d'automatisation industrielle.
Systèmes Embarqués
Différentes classes et spécifications de microcontrôleurs sont
actuellement utilisées.
L'un des plus populaires d'entre eux est Intel 8051. Ce
microcontrôleur est doté d'un ALU 8 bits, d'un registre 8 bits,
d'une RAM 128 bits et d'une mémoire vive de 4 Ko. Les
microcontrôleurs de cette catégorie comprennent un ou deux
contrôleurs universels de récepteur ± émetteur (UART)
asynchrone universels pour la communication asynchrone
entre le contrôleur et les périphériques.
Le microcontrôleur Intel 8051 fonctionne normalement à une
fréquence d'horloge d'environ 12 ± 16 MHz, mais
l'avancement actuel du noyau sophistiqué du contrôleur
s'exécute à une fréquence d'horloge de 100 MHz.
33
Systèmes Embarqués
Différentes variantes du 8051 prennent en charge un
oscillateur à puce, mémoire flash autoprogrammable, stockage
interne supplémentaire, I2C, périphérique série interface (SPI)
et interface universel de bus en série (USB). Le contrôleur
peut également prendre en charge les interfaces de module
ZigBee et Bluetooth.

34
Systèmes Embarqués
Une autre architecture à puce unique RISC de Harvard 8 bits
modifiée est Atmel. RISC virtuel avancé (AVR) développé par
Alf-Egil Bogen et Vegard Wollan (appelé Alf Vegard RISC).
L’AVR est l’une des premières familles de microcontrôleurs
qui utilise une mémoire flash intégrée qui élimine le
phénomène d'écriture unique des puces de microcontrôleur. La
première puce AVR était une immersion à 40 broches. Les
broches sont presque similaires au microcontrôleur 8051.
Flash, EEPROM et La RAM statique est intégrée à la puce
unique.
Certains des microcontrôleurs possèdent un bus parallèle
connecté afin que la mémoire externe puisse être interfacée.

35
Systèmes Embarqués
L'architecture de von Neumann par rapport à l'architecture de
Harvard
L'architecture von Neumann possède un seul espace mémoire
commun dans lequel les deux instructions de programme et les
données du programme sont stockées. Il existe un seul bus de
données interne qui récupère à la fois les instructions et les
données.
Les ordinateurs d'architecture Harvard ont des zones de
mémoire séparées pour les instructions de programme et les
données. Il existe deux ou plusieurs bus de données internes,
qui permettent un accès simultané aux instructions et aux
données. La CPU récupère les instructions de programme sur
le bus de mémoire de programme.
36
Systèmes Embarqués

VON NEUMANN

HARVARD
37
Systèmes Embarqués
Généralement, un processeur est utilisé pour effectuer
plusieurs tâches et en traiter plusieurs instructions à la fois.
Par conséquent, un processeur généraliste (GPP) est plus
coûteux et peut subir de lourdes pertes de performances. Par
conséquent, lorsque la rapidité et le coût sont importants, le
choix le plus évident est celui des processeurs à application
spécifiques. Deux processeurs à applications spécifiques
souvent utilisés dans la vie réelle sont illustrés ci-dessous. Des
processeurs spécifiques peuvent être utilisés dans plusieurs
applications (télévision numérique, décodeur, dispositifs de
système de positionnement mondial (GPS) et instruments
d'interface numérique d'instruments de musique.)

38
Systèmes Embarqués
PROCESSEURS DE SIGNAUX NUMERIQUES (DSP)
Ce sont des processeurs programmables pour des calculs
mathématiques, très exigeants, en virgule flottante tels que
transformée de Fourier discrète, transformée de Fourier rapide
et transformée en cosinus discrète (TCD). De tels systèmes
sont généralement très coûteux en termes de coût et
performance. Les puces DSP sont souvent utilisées dans des
calculs a temps réel dans des dispositifs de traitement
d’images haut de gamme et dispositifs de traitement du son.
Avec les progrès actuels dans la technologie SOC, une unité
DSP peut même être disponible avec des fonctionnalités multi
coeurs. En utilisant la fonction SOC, il est possible de réduire
considérablement le coût et la consommation d'énergie du
processeur. 39
Systèmes Embarqués
PROCESSEURS DE SIGNAUX NUMERIQUES (DSP)
Ce sont des processeurs programmables pour des calculs
mathématiques, très exigeants, en virgule flottante tels que
transformée de Fourier discrète, transformée de Fourier rapide
et transformée en cosinus discrète (TCD). De tels systèmes
sont généralement très coûteux en termes de coût et
performance. Les puces DSP sont souvent utilisées dans des
calculs a temps réel dans des dispositifs de traitement
d’images haut de gamme et dispositifs de traitement du son.
Avec les progrès actuels dans la technologie SOC, une unité
DSP peut même être disponible avec des fonctionnalités multi
coeurs. En utilisant la fonction SOC, il est possible de réduire
considérablement le coût et la consommation d'énergie du
processeur. 40
Systèmes Embarqués
PROCESSEURS DE JEUX D’INSTRUCTIONS
SPECIFIQUES A UNE APPLICATION
Ces processeurs sont programmables et sont des jeux
d'instructions matérielles qui sont exclusivement conçus pour
une application spécifiée. Parfois, l'ensemble la logique
algorithmique est implémenté dans le matériel lui-même.
Le GPP, des processeurs intégrés spécifiques à une application
(ASIP) et des circuits intégrés spécifiques à applications
(ASIC) sont les trois types de processeurs les plus importants
de cette catégorie. Dans le GPP, la fonction et l'activité sont
construites au niveau logiciel. L'un des principaux avantages
d'un tel système est sa flexibilité, mais il n'est pas idéal en
termes de performances.
41
Systèmes Embarqués
PROCESSEURS DE JEUX D’INSTRUCTIONS
SPECIFIQUES A UNE APPLICATION
L'ASIC offre de meilleures performances mais avec une
extensibilité et une flexibilité moindres par rapport à GPP,
tandis que l'ASIP comprend les GPP et ASIC. Les ASIP sont
implémentés pour effectuer des tâches spécifiques avec une
performances et mise à niveau minimale des composants
matériels et offrent plus de flexibilité à faible coût par rapport
aux GPP et ASIC.

42
Systèmes Embarqués
APPROCHES DE DEVELOPPEMENT
-Approche des systèmes ouverts

-Approche des systèmes fermés (classique)

43
Systèmes Embarqués

44
Systèmes Embarqués

8051

45
Systèmes Embarqués

16F877A

46
Systèmes Embarqués

47

Vous aimerez peut-être aussi