Un microprocesseur, nommé MPU (Micro

publicité
SSI
SCIENCES DE
V Chassilian
FICHE DE
Systemes
cours
microprogrammEs
L’INGENIEUR
St Jo
Avignon
1. Mise en situation :
Les systèmes à microprocesseurs ou microcontrôleurs sont omniprésents dans les systèmes complexes (ordinateurs
individuels, consoles de jeu,…) comme dans les systèmes simples (machine à laver, pompe à essence, store
automatique, ...) où leur grande souplesse d’implantation et de programmation est appréciée. On trouvera sur les
ORGANISATION
D'UNen
SYSTEM
E Ade
M ICROCONTROLEUR"
systèmes embarqués essentiellement
desFONCTIONNELLE
microcontrôleurs
raison
leur faible encombrement.
Unité de traitement électronique
A CTIONNEUR
Interfaçage
d'entrée
CAP TEURS
Unité centrale de
traitement
Interfaçage de
sortie
OPERATEUR
S ignaux analogique,
numérique et/ou logique
Signaux numériques à traiter
Signaux numériques traités
S ignaux analogique,
num érique et/ou logique
2. Le microprocesseur : Description et structure interne
Un microprocesseur, nommé MPU (Micro Processing Unit) ou CPU (Central Processing Unit) est un circuit
intégré complexe permettant d’effectuer séquentiellement et automatiquement des suites d’opérations
élémentaires. Il est fabriqué à l’aide d’un morceau de silicium dopé, formant ainsi un ensemble de millions de
transistors. Sa structure interne est la suivante :
Unité de traitement
Unité de commande
L’unité de commande :
PC : Compteur Programme : C’est un registre comprenant l’adresse de l’instruction qui va être exécutée.
Registre d’instruction : C’est un registre qui contient l’instruction à exécuter, cette instruction sera décodée par le
décodeur d’instruction.
Bloc logique de commande : Organise l’exécution des instructions au rythme d’une horloge. Il synchronise les signaux
dans le microprocesseur.
Page 1/6
L’unité de traitement :
UAL : Unité Arithmétique et Logique qui effectue les opérations arithmétiques (+,x,/,…) et logiques (ET, OU, NAND,…).
A cette UAL a été associé 2 autres unités : L’Unité de calcul en virgule flottante, capable de réaliser les opérations de
calcul pour les réels ainsi que les calculs mathématiques et scientifiques complexes ainsi que l’Unité multimédia,
chargée d’accélérer l’exécution des programmes multimédia comportant des vidéos, du son, graphisme en 3D, etc…
Cette unité porte le nom de MMX, SSE ou 3DNOW.
Accumulateurs : Ce sont des registres de travail qui stockent les données pendant l’opération ainsi que le résultat de
l’opération.
Registre d’état : Aussi appelé indicateur d’état ou flag en anglais, ils indiquent l’état du résultat de l’opération
(opération avec ou sans retenue, résultat nul, signe du résultat, résultat pair ou impair,…).
Les registres
Un registre est une mémoire rapide, permettant la manipulation de données à vitesse élevée. Un registre ne peut
mémoriser qu’un mot de n bits, il permet la sauvegarde d’informations et de résultats intermédiaires, évitant ainsi des
accès à la mémoire donc accélère les accès à la mémoire.
Le registre d’adresse est un registre qui contient l’adresse du mot à accéder en mémoire centrale. Il a la taille d’une
adresse qui est la même que celle du bus d’adresses ce qui permet de déterminer le nombre de mots mémoires
adressables et l’espace mémoire adressable.
Le registre de données contient le mot mémoire faisant l’objet d’une opération de lecture ou d’écriture dans la
mémoire centrale. Ce registre a la taille d’un mot mémoire qui est la même que celle des registres de travail et
l’accumulateur qui est égale à la taille du bus de données.
Les mémoires
Un microprocesseur contient de la mémoire cache, c’est une mémoire d’une capacité d’environ 2048 kbits qui stocke les
données temporaires issues de la mémoire centrale afin d’améliorer le temps de traitement de l’information.
L’horloge
L’horloge assure le cadencement du microprocesseur. La vitesse d’un processeur dépend de sa fréquence d’horloge.
La fréquence de l'horloge interne est obtenue en divisant par 4 la fréquence de l'horloge externe (ex : pour un quartz à 4
MHz, la fréquence interne est donc de 1 MHz et la durée d'un cycle est de 1 µs).
La vitesse de traitement des instructions dépend de la période d’horloge interne : selon le type et la complexité de
l’instruction, son temps de réalisation pourra prendre 1 ou plusieurs périodes d’horloge.
L’horloge est majoritairement réalisée
à l’aide d’un quartz, la fréquence
d’horloge dépend de la fréquence du
Quartz.
On peut aussi utiliser un résonateur
externe, moins coûteux.
Selon le structure de l’horloge du
processeur, on utilise aussi des
circuits RC.
Page 2/6
Architecture des micro-processeurs
Il existe 2 catégories de microprocesseur :
- CISC (Complex Instruction Set Computer) : Ce microprocesseur possède un nombre important d’instructions. Chacune
d’elles s’exécute en plusieurs périodes d’horloges.
- RISC (Reduced Instruction Set Computer) : Ce microprocesseur possède un nombre réduit d’instructions. Chacune
d’elles s’exécute en une période d’horloge.
Exemple d’exécution d’une instruction :
Phase 2
Phase 1
Phase 3
3. Organisation fonctionnelle autour du microprocesseur Un microprocesseur seul ne peut pas traiter
l’information, il a besoin de fonctions supplémentaires telles que les mémoires, les compteurs,…
Il existe 2 types d’architectures pour la communication des données du processeur vers ou depuis ses mémoires :
Page 3/6
4. Le microcontrôleur : Description et structure interne
Le microcontrôleur intègre sur la même
surface
qu’un
microprocesseur
un
microprocesseur et tous les périphériques
nécessaires à son fonctionnement.
Cette intégration de plusieurs fonctions sur
un même boitier présente un ensemble
non négligeable d’avantages : coût et
encombrement très réduits, facilité de
mise en œuvre et faible consommation.
Les microcontrôleurs de la marque
Microchip sont nommés des « PIC ».
La structure interne d'un microcontrôleur
comporte typiquement :
 Une unité de calcul et de commande (CPU)
 Mémoire ROM
 Mémoire RAM
 Un contrôleur d’interruption
 Un compteur/temporisateur (timer)
 Des entrées/sorties parallèles (ports)
 Un UART (port série)
Il peut aussi posséder :
 Un Watchdog : (surveillance du programme)
 Une sortie PWM (modulation d’impulsion)
 Un CAN/CNA (Convertisseur analogique numérique)
 Une interface I²C, CAN…
Exemple d’organisation interne du PIC 16F877 :
Page 4/6
Rôle des différents éléments du microcontrôleur :
Les bus :
Les bus sont des liaisons permettant de relier entre eux les différents organes du système. Concrètement, ce sont des
ensembles de fils électriques qui permettent de transmettre les signaux aux composants du système. On distingue trois
sortes de bus :
 Le bus de données : il est bidirectionnel et permet de transférer les données entre le processeur et les mémoires. Ces
données sont de type binaire.
 Le Bus d’adresse : il est unidirectionnel, du processeur vers les mémoires ou un composant. Il va transporter l’adresse
(code numérique binaire) à laquelle on va lire ou écrire une information.
 Le Bus de contrôle : Il permet au processeur de donner des ordres de lecture ou d’écriture aux mémoires. Son rôle
est aussi d’informer le microprocesseur sur l’état du système et de le prévenir en cas de dysfonctionnement.
Les mémoires :
Les mémoires de données :
Ce dispositif permet de mémoriser temporairement les données générées par le microprocesseur pendant les
différentes phases du traitement numérique (résultats d’opérations, états des capteurs...). Ces mémoires sont
accessibles en écriture et en lecture. On en trouve 2 types :
 De la mémoire vive (RAM-Random Access Memory) : elle est volatile (données perdues en cas de coupure de
l’alimentation) et à accès aléatoire (temps de lecture et écriture assez court (quelques ns)),
 De la mémoire vive (SFR-Special Function Register) : c’est une RAM dont le rôle de chaque case mémoire a été défini
par le fabriquant. Elle est adaptée au matériel utilisé dans le microcontrôleur (CAN, adaptateurs,…)
 De la mémoire morte (EEPROM) : elle est non-volatile (données conservées en cas de coupure de l’alimentation)
mais son temps d’écriture est assez élevé (qqs ms) par rapport au temps de lecture qui est assez faible (qqs ns).
Les mémoires programmes :
Ce dispositif contient les instructions du programme que doit exécuter le microprocesseur. Ce type de mémoire
(appelée mémoire morte), est uniquement accessible en lecture. Sa programmation nécessite une procédure
particulière et un matériel adéquat. Il en existe différents types selon leur mode de programmation :
 De la ROM (Read Only memory) dont le contenu est programmé lors de sa fabrication,
 De la PROM (Programmable Read Only Memory) programmable électriquement une seule fois par le constructeur,
 De la EPROM (Erasable & Programmable Read Only Memory) programmable électriquement et effaçable aux U-V
(appelée aussi UVPROM),
 De la EEPROM (Electrically Erasable & Programmable Read Only Memory) programmable et effaçable
électriquement in situ.
Capacités d’une mémoire :
1 Octet = 8 bits = 1 Byte
1 KOctet = 2 Octets = 1024 Octets et 1Moctet = 210 * 210 Octets = 220 Octets
10
Page 5/6
La capacité totale d’une mémoire représente le nombre de bits total qu’elle peut mémoriser, le
AKxB
nombre de mots et la longueur de chacun n’est pas mis en évidence. C’est pourquoi, sur la plupart
AMxB
des boîtiers mémoire on trouvera le détail présenté selon le format ci-contre où A est le nombre de
AGxB
mots et B la longueur du mot (en bit).
Les Ports :
Ce
sont
des
périphériques
d’entrées/sorties :
- parallèles (Parallel Input/Output)
ou
- séries (USART : Universal Synchronous
Asynchronous
Receiver
Transmitter,
broches nommées Rx ou Tx).
Ils permettent de lire des données venant
de
l’extérieur
ou
de
piloter
des
actionneurs.
Un port peut être préconfiguré en entrée
ou en sortie ou être bidirectionnel, dans
ce cas, il faudra configurer chacune de ses
broches en entrée ou en sortie à l’aide du
registre TRIS.
Les ports sont nommés PA à PE, chaque broche est numérotée (PA0 à PA7 par exemple pour un port parallèle A de 8
bits). Chaque port sera associé à un registre PORTA à PORTE.
Ces ports sont souvent associés à des interfaces permettant l’adaptation des signaux entre le processeur et les
composants auxquels il est connecté.
Les timers :
C’est un élément qui permet de faire des mesures de temps, du comptage d’impulsion ou de générer un signal de
fréquence ou rapport cyclique réglable. Pour le programmer, il faudra regarder la documentation du microcontrôleur
utilisé.
5- Description et programmation de la tâche à accomplir
Un cahier des charges va décrire l’enchainement séquentiel des actions que devra réaliser le microcontrôleur. On
traduira le cycle de fonctionnement à l’aide d’un algorithme ou d’un algorigramme qui nous amènera à écrire le
programme associé en utilisant un langage. Le langage assembleur, est le plus proche du langage machine mais n’est
quasiment plus utilisé. On utilisera de préférence un langage évolué (C, C++, …) qui sera compilé (traduit) en code
machine par un logiciel adapté à la cible utilisée.
Page 6/6
Téléchargement