Compte rendu :
Electronique
embarqué
Fait
par:
Safouane Housni-3GI.
I. Introduction:
Les systèmes électroniques embarqués sont des dispositifs électroniques intégrés conçus pour
effectuer une tâche spécifique au sein d'un système plus vaste. Ils se composent de
composants matériels (hardware) et logiciels (software) optimisés pour répondre à des
exigences particulières, telles que la fiabilité, la compacité, et la capacité à fonctionner en
temps réel. On les retrouve dans de nombreux domaines, comme l'automobile, l'aéronautique,
les appareils médicaux, ou encore les produits électroniques grand public. Ces systèmes
jouent un rôle essentiel dans le développement de technologies modernes et autonomes.
Dans notre cas, nous travaillerons avec le 16F887, un microcontrôleur largement utilisé pour
son efficacité et sa polyvalence.
2*les architectures utilisé dans les microcontrôleurs :
2-1 Architecture de Von Neumann :
L'architecture de von Neumann est un modèle de conception d'ordinateurs qui repose sur une
séparation entre la mémoire, l'unité de traitement et les entrées/sorties. Voici ses principaux
éléments :
1. Mémoire : Elle stocke à la fois les données et les instructions de programme. Cela permet
à l'ordinateur de traiter des instructions et de manipuler des données à partir du même espace.
2. Unité de traitement (CPU) : Elle exécute les instructions en effectuant des calculs et en
manipulant les données. Elle comprend des registres, une unité arithmétique et logique
(ALU) et un contrôleur.
3. Bus : Un ensemble de lignes de communication qui relient la mémoire et l'unité de
traitement, permettant le transfert de données et d'instructions.
4. Entrées/Sorties : Les dispositifs qui permettent à l'ordinateur de communiquer avec le
monde extérieur, comme les claviers, les écrans, et les disques durs.
Dans ce modèle, les instructions sont exécutées séquentiellement, ce qui peut créer un goulot
d'étranglement connu sous le nom de "bottleneck de von Neumann".
2-2 Architecture de Harvard :
L'architecture Harvard est un modèle de conception d'ordinateurs qui distingue clairement la
mémoire des instructions et celle des données. Voici ses principaux éléments :
1. Mémoire distincte : Il y a deux mémoires séparées : une pour les instructions (code) et une
pour les données. Cela permet de lire et d'écrire simultanément des instructions et des
données, augmentant ainsi l'efficacité.
2. Unité de traitement (CPU) : Comme dans l'architecture de von Neumann, le CPU exécute
les instructions, mais il peut accéder à la mémoire des instructions et à la mémoire des
données en même temps.
3. Bus séparés : Chaque mémoire a son propre bus, ce qui permet un transfert de données
plus rapide sans conflit entre les instructions et les données.
Cette architecture est souvent utilisée dans des systèmes embarqués et des microcontrôleurs,
car elle améliore les performances en réduisant les temps d'attente.
3*Calcul du cycle d’instructions et cycle de machine :
Le cycle d'instructions et le cycle de machine sont des concepts clés dans l'architecture des
ordinateurs. Voici une brève explication de chacun :
Cycle d'instructions Le cycle d'instructions fait référence au processus complet qu'un
processeur suit pour exécuter une instruction. Il se compose généralement de plusieurs
étapes :
1. Recherche (Fetch) : L'instruction est récupérée de la mémoire.
2. Décodage (Decode) : L'instruction est interprétée pour déterminer quelles actions doivent
être effectuées.
3. Exécution (Execute) : L'unité de traitement effectue l'opération spécifiée par l'instruction.
4. Écriture (Write Back) : Les résultats sont enregistrés dans la mémoire ou dans des
registres.
Cycle de machine
Le cycle de machine, quant à lui, se réfère à l'ensemble des opérations effectuées par le
processeur pour exécuter une instruction, y compris les accès mémoire et les opérations
internes. Il est souvent synonyme du cycle d'instructions mais peut être plus large en incluant
des aspects comme :
1. Accès mémoire : Lecture et écriture des données.
2. Opérations logiques et arithmétiques : Effectuer des calculs.
3. Gestion des entrées/sorties : Interagir avec les périphériques.
En résumé, le cycle d'instructions est un ensemble d'étapes pour exécuter une instruction,
tandis que le cycle de machine englobe toutes les opérations nécessaires à cette exécution, y
compris celles liées aux données et aux périphériques.
4*La différence entre le RISC et CICC :
RISC (Reduced Instruction Set Computing) et CISC (Complex Instruction Set Computing)
sont deux architectures de processeurs qui diffèrent par leur approche concernant l'ensemble
d'instructions.
RISC (Reduced Instruction Set Computing)
• Simplicité des instructions : RISC utilise un nombre limité d'instructions, généralement
simples et de taille fixe. Cela permet une exécution rapide et efficace.
• Exécution en pipeline : Les instructions peuvent souvent être exécutées en parallèle grâce
au pipeline, ce qui améliore les performances.
• Utilisation intensive des registres : RISC privilégie l'utilisation de registres pour stocker
temporairement les données, réduisant ainsi les accès à la mémoire
CISC (Complex Instruction Set Computing)
• Instructions complexes : CISC dispose d'un plus grand nombre d'instructions,
souvent complexes, qui peuvent effectuer plusieurs opérations en une seule instruction.
• Moins de registres : CISC peut nécessiter moins de registres, car certaines instructions
peuvent traiter directement des données en mémoire.
• Diminution des cycles d'instructions : Chaque instruction peut effectuer plus de
travail, mais cela peut entraîner des temps d'exécution plus longs en raison de la
complexité des décodages et des exécutions.
En conclusion :
RISC se concentre sur des instructions simples et rapides, favorisant la vitesse
d'exécution et l'efficacité, tandis que CISC propose des instructions plus complexes,
permettant d'exécuter des tâches variées en moins d'instructions mais potentiellement
avec une exécution moins rapide.
II.PIC16F887 :
1*introduction :
Le PIC16F887 est un microcontrôleur de la famille PIC (Peripheral Interface Controller)
développé par Microchip Technology. Ce microcontrôleur est très populaire dans les
applications embarquées en raison de sa simplicité, de sa flexibilité, et de son faible coût. Il
est largement utilisé dans des projets électroniques, allant des systèmes de commande simples
aux dispositifs complexes nécessitant un contrôle précis.
Le PIC16F887 est basé sur une architecture RISC (Reduced Instruction Set Computer), ce qui
lui permet d'exécuter les instructions rapidement et efficacement. Il intègre 35 instructions
simples et un pipeline à deux étages qui permet de traiter la majorité des instructions en un
seul cycle d'horloge. Ce modèle dispose de 40 broches, offrant une variété d'entrées/sorties
numériques et analogiques, ce qui le rend adapté à une large gamme de projets.
2*Architecture de PIC16F887 :
L'architecture du PIC16F887 repose sur les éléments suivants :
1. Unité centrale de traitement (CPU)
La CPU est conçue pour gérer les instructions de manière rapide et efficace grâce à son
architecture RISC. Elle utilise un pipeline à deux étages :
Le premier étage exécute l'instruction en cours.
Le second prépare la prochaine instruction, optimisant ainsi le temps d'exécution.
2. Mémoire flash
Le PIC16F887 est doté de 8 Ko de mémoire flash pour le stockage du programme. Cette
mémoire non volatile permet de conserver le code même en cas de coupure de l'alimentation.
3. Mémoire de données
RAM (368 octets) : Utilisée pour stocker les données temporaires pendant l'exécution.
EEPROM (256 octets) : Permet de stocker des données persistantes, modifiables en cours
d'exécution.
4. Unités d'entrée/sortie (E/S)
Ce microcontrôleur dispose de 35 broches configurables comme entrées ou sorties
numériques, avec certaines broches capables de gérer des signaux analogiques via les
modules ADC (Analog-to-Digital Converter).
5. Modules internes
Le PIC16F887 inclut plusieurs modules matériels intégrés pour réduire la charge sur la
CPU :
Convertisseur analogique-numérique (ADC) : Convertit jusqu’à 14 canaux analogiques
en signaux numériques.
Modules de communication : UART, I2C, SPI.
Timers : Trois temporisateurs pour des tâches critiques.
Comparateurs analogiques : Pour les applications nécessitant des comparaisons de
tension.
6. Oscillateur interne
Un oscillateur interne réglable de 8 MHz élimine le besoin d'un cristal externe pour des
applications basiques.
Grâce à sa polyvalence, sa facilité de programmation et ses capacités intégrées, le
PIC16F887 est un choix idéal pour les concepteurs électroniques débutants comme
expérimentés.
III. Les TPs :
1/TP1 :
Exercice1 :
1*Realiser le premier circuit de test qui permet de fair alummer une LED (ON durant 2s
et OFF durant 1s )
2*Dans le même projet , réaliser un 2eme circuit de test qui permet de faire clignoter 4
LED en alternance ( LED on lED off).
Voici le travail :
Le montage :
Le code est :
void main() {
TRISB0_bit = 0;
while (1) {
LATB0_bit = 1;
Delay_ms(2000);
LATB0_bit = 0;
Delay_ms(1000); } }
Le résultat est succés .
Pour la deuxieme question :
Voici le montage
Et voici code:
void main() {
TRISB = 0x00;
PORTB = 0x00;
while (1) {
PORTB = 0xFF;
Delay_ms(2000);
PORTB = 0x00;
Delay_ms(1000); } }
Le resultat final est :