Microcontrôleurs : Architecture et Fonctionnalités
Microcontrôleurs : Architecture et Fonctionnalités
2021/2022
Sommaire
2
1
Architecture des
systèmes
microprogrammés
2021/2022
Système à Microcontrôleur
4
Architecture VON NEUMANN
9
10
11
12
13
14
15
16
17
18
Organisation de la mémoire
La mémoire peut être considérée comme une armoire constituée de différents tiroirs. Chaque tiroir représente une
case mémoire
[Link]
[Link]/
20
Organisation de la mémoire
Structure d’une mémoire (suite) :
21
Décodage d’adresse
La multiplication du nombre de périphériques autour du microprocesseur oblige la présence d’un décodeur d’adresses.
Source :[Link]
Ce décodeur d’adresses va aiguiller les données présentes sur le bus de données vers un périphérique donné (ex : le
microprocesseur veut accéder à la mémoire vive).
Par conséquent, le décodeur d’adresses va permettre au microprocesseur, de sélectionner un seul périphérique (avec
qui traiter) à la fois
22
Exemple :
Décodage d’adresse
Le microprocesseur propose sur le bus d’adresses une adresse
globale sur 16 bits (A15A14A13A12…A0) :
Scénario :
23
Décodage d’adresse Entrées Décodeur
(CBA)
Sortie
Décodeur
Périphérique
sélectionné
/Y7/Y6…/Y0
Illustration et exemple
000 1111 1110 Mémoire n°0
(pour un décodeur 3 vers 8) :
001 1111 1101 Mémoire n°1
010 1111 1011 Mémoire n°2
011 1111 0111 Mémoire n°3
100 1110 1111 Mémoire n°4
101 1101 1111 Mémoire n°5
110 1011 1111 Mémoire n°6
111 01111111 Mémoire n°7
Scénario
Supposons que le microP présente l’adresse 1001 0010 1100 1101 avec un
ordre de lecture (bus de commande) sur le bus d’adresse :
Source : [Link]
4. Le microP procède à l’écriture de la donnée via le bus de 1. Le processeur demande à lire la case mémoire @100
données 2. Le bus d’adresse spécifie cette adresse à la
mémoire
3. Le bus de données récupère la donnée et la fournit
au processeur
25
Famille PIC
27
28
29
30
31
Lecture du schéma bloc
d’un microcontrôleur
(Ex : PIC 16FXXX)
40
41
42
43
44
45
46
47
48
Les Ports d’entrée/sorties
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
Conversion
analogique-numérique
(CAN) et numérique
analogique
2021/2022
INTRODUCTION
66 2020 / 2021
Signal à temps
DAC/ADC : Généralités (2) discret
Signal à
Signal à et amplitude discrète
temps continu
temps continu
Monde Calculateur
Monde
physique ? Stockage ? physique
n Traitement m
Capteurs Cryptage Actuateurs
(Mesure) Transmission
Transmissions Contrôle Données
numériques
Filtre Sample
ADC
de & hold
garde
Filtre
dynamique / format DAC H Ampli
résolution / cadence reconst
fidélité / linéarité .
prix / mise en œuvre Contrôle
67
DAC/ADC : Signaux
Amplitude
Continue Discrète
Temps
Signal «analogique Signal quantifié
Monde réel
Continu macros.
Discret
68
09/06/2022 11:40
00110011 Transformations
temps réel ou différé 01100011
10100011
Calcul 10101111
01110110
01110000 Données stockées
00001101 P/DSP/ASIC
t 01101101 t ou de synthèse
Stockage
69
09/06/2022 11:40
Exemple de sous-échantillonnage
DAC/ADC :
DAC ADC
– Principe • Principe
– Architectures • Architectures
– flash / semi-flash
• directes – à rampe(s)
– R et R/2R – approximation
– variantes – multipass
– delta-sigma
• indirectes
– fréquence et temps • Mise en œuvre
– charges • Erreurs et Technologie
– Mise en œuvre
– Erreurs et Techno.
Conclusion et tendances
71
Les convertisseurs Numérique-Analogiques :
Généralités et Principes
Tension de sortie
5*Uref
4*Uref
3*Uref
2*Uref
1*Uref
A = N.q
0 1 2 3 4 5
...
Uref peut correspondre à la pleine dynamique Code
ou à l’échelon élémentaire. d’entrée
72
Les convertisseurs Numérique-Analogiques :
Architectures directes
73
Les convertisseurs Numérique-Analogiques
74
09/06/2022 11:40
Impédance «à droite » R
Tous les points voient 2R/3
R R R R 2R
-
2R
75
09/06/2022 11:40
Exemple
Sortie en
courant
(différentielle)
76
Les convertisseurs Analogique-Numériques
CAN à rampe
77
09/06/2022 11:40
78
09/06/2022 11:40
A’
Intervalle à x%
max= Slew-rate ou fraction de lsb
50%
A
tdd
NN’
Attention : les temps de conversion peuvent être exprimées
Pour 0 Nmax ou pour N N+1 (à 1/2 lsb d’erreur max)
79
09/06/2022 11:40
Eg
80
09/06/2022 11:40
81
Conversion analogique numérique
Fin de conversion
Début effectif
de la conversion
Lancement du « process » de conversion
82
Conversion analogique numérique
2021/2022
Les éléments de base
Les broches du 16F887
85
Configuration de l’horloge
86
Configuration de l’horloge
87
Configuration de l’horloge : choix de l’horloge
Le choix entre oscillateur externe et
oscillateur interne se fait à l’aide du bit SCS
du registre OSCCON :
• Si SCS = 1 :
• Le PIC utilise l’horloge issue de
l’oscillateur interne
• Si SCS = 0 :
• Ce sont les bits Fosc<2:0> du
registre CONFIG1 qui décide si
l’horloge est interne ou externe
Fosc 2 Fosc 1 Fosc 0 oscillateur
0 0 0 externe
1 0 0 ou 1 interne
Registre OSCCON
Les microcontrôleurs, A. Oumnad.
88
Configuration de l’horloge : choix de l’horloge
Si l’on choisit de travailler avec l’oscillateur
interne, les 3 bits IRFC2, IRFC1 et IRFC0
du registre OSCCON permettent de fixer la
fréquence de l’oscillateur interne :
IRFC 2 IRFC 1 IRFC 0 Fréquence
(Hz)
0 0 0 31 khz
0 0 1 125 khz
0 1 0 250 khz
0 1 1 500 khz
1 0 0 1 Mhz
1 0 1 2 Mhz
1 1 0 4 Mhz
1 1 1 8 Mhz
Registre OSCCON
Les microcontrôleurs, A. Oumnad.
89
Les registres de configuration CONFIG1 et CONFIG 2
• IESO = ‘1’ : permet au PIC de commencer à exécuter le programme en utilisant l’horloge interne
en attendant que l’horloge externe se stabilise (basculement alos vers horlge externe)
• CPD =‘0’ : protège la EEPROM d’une éventuelle tentative de lecture de données
• WDTE =‘1’ : active le « Watch Dog »
• WRT1, WRT0 : permet de protéger la mémoire programme contre les tentatives d’écriture
• [0,0] zone mémoire 0000h à 0FFFh protégée
• [1,1] protection désactivée
Le PIC 16F887 dispose de 36 broches d’entrées et sorties regroupés sur 5 ports : PORTA, PORTB, PORTC,
PORTD et PORT E
• Chaque broche d’un port peut être configurée soit en entrée soit en sortie à l’aide des registres TRISA, TRISB,
TRISC, TRISD et TRIS E
• Exemple :
• TRISA = 0b0000 0011 => RA7 à RA2 en sortie (bit à ‘0’) et RA1-RA0 en entrée (bit = ‘1’)
• Moyen mnémotechnique : ‘0’ => Output / ‘1’ => Input
91
Les entrées et sorties
Le PIC 16F887 dispose de registres ANSEL et ANSELH permettant de définir des entrées-sorties en analogique ou
en numérique
Port B Remarques :
• Ports C, D toujours en numérique
• Les autres broches du Port A, B, E toujours en numérique
• Par défaut :
• Tous les ports sont configurés en entrée
• Les entrées A/N sont configurés en analogique
• Les broches configurées en sortie fonctionnent toujours
en numérique (quelque soit ANSEL et ANSELH)
92
Les timers
Les timers permettent de mesurer des durées en seconde. Par exemple, utiliser un timer pour créer une
temporisation de 0,5 seconde dans un programme, durée d’extinction / d’allumage d’une led, …
94
Les timers
95
Le WatchDog Timer WDT
96
Les interruptions
97
Ex : TMR0 passe de 255 à 0 !
Les interruptions le drapeau TOIF passe à 1 Exemple avec le Timer TMR0
99
3
Les microcontrôleurs :
PIC 18
2020/2021
[Link] / M. TRIA
Device Feature
PIC18F8xK22
80 pins
1- PIC 18 Présentation générale
Les modèles de PIC courants sont repérés par une référence de la forme :
- Sur les dernières versions (sous-famille « K »), on peut les utiliser avec un quartz fonctionnant jusqu'à
64 MHz (16 MIPS).
Exemple : 18F85K22 A B Flash EEPROM RAM
Cette famille propose une multitude de dérivés intégrant l'USB, ETHERNET (MAC+PHY)
le CAN, des canaux de MLI dédiés au contrôle moteur. 101 2020 / 2021
Oscillateur externe
Mode Commentaires
LP Oscillateur basé sur un « Low Power Crystal »
XT Quartz ou Résonateur céramique
HS Quartz ou Résonateur céramique « Hi speed »
4*PLL Quartz ou Résonateur céramique « High speed », avec activation de
la PLL interne Jusqu’64 MHz
RC Circuit RC externe. Un signal de fréquence Fosc/4 est disponible sur
RA6
RCIO Circuit RC externe. La ligne RA6 est une ligne E/S classique
EC Horloge externe. Un signal de fréquence Fosc/4 est disponible sur
RA6
ECIO Horloge externe. La ligne RA6 est une ligne E/S classique
INTIO1 Oscillateur interne. Un signal de fréquence Fosc/4 est disponible sur RA6. RA7
(1) est une ligne E/S standard. Oscillateur interne
INTIO2 Oscillateur interne. RA6 et RA7 sont des ligne E/S standard.
(1)
102
3- Gestion MEMOIRE
Mémoire données
Mémoire programme
Les micro-contrôleurs PIC utilisent une structure
dite Harvard :
Adresses Adresses
Le PIC18Fxxxx utilise un jeu d’instructions réduit ( 21 bits 12 bits
stocké dans la mémoire programme).
103
E n p a ra l l è l e
3-1 Organisation MEMOIRE
2 Mo
@ retour
correspondant à
différents sous-
programmes
105
3-1 Organisation MEMOIRE 16 banques de mémoires
Bank 0 à bank 15 (@ de taille 12 bits)
- Bank 0 0x000 – 0x0FF
- Bank 1 0x100 – 0x1FF …
Taille cases de données : 8 bits
Mémoire spécifique
- La zone 0xF16– 0xFFF est allouée aux SFR :
registre dédiés à
une fonction (port E/S, configuration
périphériques, ...)
Exemple :
Le PORT H permet de
completer le bus d’adresse
Le PORT J permet de
constituer le bus de
contrôle
107
3. Le composant 138 (décodeur 3 vers 8)
1. Positionnement de la valeur
permet la sélection de la mémoire (/CE = 0)
de l’@ par le microcontrôleur
voulue par le microC
5.
1.
4.
108
Générateur d’INTERRUPTIONS Exemple :18F452
4- Les Interruptions
Jusqu’à 48 sources d’interruptions sur 2 modes !
109
1
TMROIF = 1 (levée de drapeau
TMROIE = 1 (interruption autorisée)
TMROIP = 1 (interruption prioritaire)
4- Les Interruptions
13 registres sont dédiés à la gestion des Interruptions : 1
1
RCON INTCON INTCON2 INTCON3
PIR1,PIR2,PIR3 GIEH = 1
(validation
PIE1,PIE2,PIE3 des
interruptions
IPR1, IPR2,IPR3 prioritaires)
Exemple pour IPR1
- Timers 1-4
- ADC 12 bits
- EUSART 1 et 2
- RTC
- CCP et ECCP(Capture / Compare / PWM). 4 à 10
- Comparateurs Analogiques.
- CTMU pour la gestion de touches Capacitives
- MSSP ( Bus Synchrones SPI, I2C…).
112
7 PIC 18: Convertisseur A.N
Une interruptions de type overflow (TMROIF) peut être déclenchée. Elle est déclenchée
par le passage de 0xFF à 0x00 en mode 8 bits ou par le passage de 0xFFFF à 0x0000 en
mode 16 bits.
114
TIMER 1 TIMER 2
Implémentations identiques sur les PIC18Fxx2 et 18Fxx20. Caractéristiques du timer TMR1 Là encore, ce timer est implémenté à l'identique sur les PIC 18Fxx2 et 18Fxx20. Ses
: principales caractéristiques sont les suivantes :
-Timer 16 bits. Le registre de comptage est accessible par les deux registres - Timer 8 bits : registre TMR2.
8 bits TMR1H et TMR1L. - Associé à un « Period register » 8 bits : PR2 (pour comparaison)
-Registres de comptage accessibles en lecture/écriture (R/W). - Registres TMR2 et PR2 accessibles en lecture / Ecriture.
- Prédiviseur programmable : divisions par 1, 2, 4 ou 8. - Prédiviseur programmable : divisions par 1, 4 ou 16.
-Horloge interne (mode timer) ou externe (mode compteur). - Postdiviseur programmable : facteur de division compris entre 1 et 16.
-Interruption de type Overflow (TMR1IF) au passage de 0xFFFF à 0x0000. - Interruption (TMR2IF) déclenchée lorsque TMR2 = PR2.
-Remise à 0 possible à partir d'un module CCP.
115
MODULES TIMER3/5/7 MODULES TIMER4/6/8/10/12
Les modules timer 3/5/7 timer/counter intègrent ces fonctionnalités : Les modules de 4/6/8/10/12 ont les caractéristiques suivantes :
• Opération sélectionnable par logiciel en tant que timer ou compteur 16 bits . • Registre TIMER 8bits (TMRx)
• Registres accessibles en R/W (TMRxH et TMRxL) • Registre COMPTEUR 8bits (PRx)
• Source d’horloge sélectionnable (interne ou externe) avec horloge externe • Ensemble des registres en accés R/W
ou oscillateur externe SOSC • Prescaler programmable par software (1:1, 1:4, 1:16)
• Interruption sur overflow
• Postscaler programmable par software (1:1 à 1:16)
• Réinitialisation du module sur l’entrée ECCP
• Interruption sur Overflow TMRx de PRx
Le Timer7 est implémenté à partir des versions 18Kx7K22.
Timer10 et Timer12 a partir des 18Kx7K22.
116
9 PIC 18: Modules CCP
Pour les PIC18Fxx2 et/ou PIC18Fxx20
Chaque µC est doté de 2 modules CCP (Capture / Compare / PWM) :
Chaque module est composé d'un registre 16 bits qui peut faire office de registre de :
Chaque module CCP (CCP1 et CCP2) est associé à un registre 16 bits respectivement CCPR1 et
CCPR2, composé de deux registres 8 bits :
• CCPR1H (resp. CCP2H)
• CCPR1L (resp. CCRP2L)
Les modules sont configurés à travers CCPxCON. Ces modules utilisent les timers du µC
fonctionnement de ce module.
Les sorties des comparateurs sont disponibles en tant que niveau sur
une broche et comme une valeur du registre de contrôle.
10 PIC 18: Horloge Temps Réel
119