Professional Documents
Culture Documents
Chapitre 3 : La programmation
Universit de Savoie
Prsentation TD
TD : 10.5 h en 7 sances
TD1 : Rappel sur les systmes microprocesseur. Cadencement dun microcontrleur. Instructions assembleurs. TD2 : Utilisation du timer dun microcontrleur. Configuration des ports dentre/sortie dun microcontrleur. TD3 : Les interruptions
Universit de Savoie
Prsentation TP
TP : 12h en 3 sances de 4h
TP1 : Prise en main dun environnement de programmation sur microcontrleur TP2 : Etude du Watchdog, et des interruptions dans un microcontrleur TP3 : Ralisation dun minuteur laide dun afficheur 7 segment.
Universit de Savoie
1.1 Rappel sur larchitecture interne des microprocesseurs 1.2 Le traitement des instructions 1.3 Les modes dadressages 1.4 Exemple dexcution dun programme
Universit de Savoie
Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop. Cest donc un ensemble de millions de transistors.
Universit de Savoie
Larchitecture interne
Unit commande/traitement
Universit de Savoie
Larchitecture interne
Schma
Universit de Savoie
Larchitecture interne
Lunit de commande (1)
Elle permet de squencer le droulement des instructions. Elle effectue la recherche en mmoire de l'instruction, le dcodage de linstruction code sous forme binaire. Enfin elle pilote lexcution de linstruction.
Le compteur de programme (PC : Programme Counter) appel aussi Compteur Ordinal (CO) est constitu par un registre dont le contenu est initialis avec l'adresse de la premire instruction du programme. Il contient toujours ladresse de la prochaine instruction excuter.
Universit de Savoie 9
Larchitecture interne
Lunit de commande (2)
2.
Le registre d'instruction et le dcodeur d'instruction : Chacune des instructions excuter est transfr depuis la mmoire dans le registre instruction puis est dcode par le dcodeur dinstruction. Bloc logique de commande (ou squenceur) : Il organise l'excution des instructions au rythme dune horloge. Il labore tous les signaux de synchronisation internes ou externes (bus de commande) du microprocesseur en fonction de linstruction quil a a excuter. Il s'agit d'un automate ralis de faon microprogramme.
3.
Universit de Savoie
10
Larchitecture interne
Lunit de commande (3)
Universit de Savoie
11
Larchitecture interne
Lunit de traitement (1)
Elle regroupe les circuits qui assurent les traitements ncessaires l'excution des instructions
2.
Les accumulateurs sont des registres de travail qui servent stocker une oprande au dbut d'une opration arithmtique et le rsultat la fin de l'opration. LUnit Arithmtique et Logique (UAL) est un circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Dcalage, etc) ou arithmtique (Addition, soustraction).
Universit de Savoie
12
Larchitecture interne
Lunit de traitement (2)
3.
Le registre d'tat est gnralement compos de 8 bits considrer individuellement. Chacun de ces bits est un indicateur dont l'tat dpend du rsultat de la dernire opration effectue par lUAL. On les appelle indicateur dtat ou flag ou drapeaux. Dans un programme le rsultat du test de leur tat conditionne souvent le droulement de la suite du programme. On peut citer par exemple les indicateurs de :
Retenue (carry : C) Dbordement (overflow : OV ou V) Zro (Z) ...
Universit de Savoie 13
Larchitecture interne
LUnit de traitement (3)
UAL
R Rsultat
Universit de Savoie
14
Larchitecture interne
Lunit de traitement (4)
Universit de Savoie
15
Larchitecture interne
Architecture complte
Universit de Savoie
16
CPU
4 3
Mmoire
(1) Charger une instruction depuis la mmoire (2) Charger les oprandes depuis la mmoire (3) Effectuer les calculs (4) Stocker le rsultat en mmoire
Universit de Savoie
17
Larchitecture
Von Neuman
CPU
BUS
Architecture des processeurs dusage gnral Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie 18
Larchitecture
Harvard
Mmoire programme Mmoire donne
CPU
Larchitecture
Harvard : Cas des microcontrleurs PIC
Seul les bus de donne (data ou instructions) sont reprsentes
Universit de Savoie
20
Universit de Savoie
21
La taille d'une instruction peut varier, elle est gnralement de quelques octets (1 8), elle dpend galement de l'architecture du processeur.
Universit de Savoie
22
Instruction Addition :
Accumulateur = Accumulateur + Oprande
Correspond linstruction ADD A,#2
Instruction (16 bits) Code opratoire (5 bits) Champ oprande (11 bits) ADD A #2 11001 000 0000 0010
Cette instruction est comprise par le processeur par le mot binaire :
11001
Universit de Savoie
24
Universit de Savoie
25
Universit de Savoie
26
L architecture CISC
(Complex Instruction Set Computer)
Larchitecture RISC
(Reduced Instruction Set Computer)
Universit de Savoie
27
Universit de Savoie
28
Universit de Savoie
29
Universit de Savoie
30
M Mmoire
Adresses
0x00 0x01
Contenu
0100 0101 .. 0010 1111 ..
1101 0101 ADDA 0 1 1 0#4 0 0 1 1 .. 1010 1101 0011 1000 1100 0101 1010 1001 . 0111 1010
Universit de Savoie
Accumulateur
31
0110 1101 ..
Mmoire
Adresses
0x00 0x01
Contenu
0100 0101 .. 0010 1111 ..
adresseX
0xxxx xxxx0 011 100 1100 0101 1010 1001 . 0111 1010
Universit de Savoie
Accumulateur
32
0110 1101 ..
Mmoire
Adresses
0x00 0x01
Contenu
0100 0101 .. 0010 1111 ..
@adresseX adresseX
0 adresseX 0 011 100 1100 0101 1010 1001 xxxxx xxxxxx . 0111 1010
Universit de Savoie
Accumulateur
33
0110 1101 ..
Universit de Savoie
34
Universit de Savoie
35
Exemple dexcution
Directives dassemblage Valeurs des symboles
00000040 00000000 00000001 000000 000000 000000 000002 000004 000006 000008 00000B 3E D3 3E D3 C3 00 40 01 40 00 00 .TITLE .PROC .START HP HPOFF HPON .LOC 0 OSCIL: MOVE MOVE MOVE MOVE JUMP Bruit_HP I8085 OSCIL = = = 1064 0 1 ; Titre du programme ; Processeur utilis ; Adresse dbut programme ; Adresse du Haut-Parleur (40 Hexa) ; Constante, membrane relache ; Constante, membrane attire ; Adresse dassemblage du programme
; Charge valeur HPOFF (0) dans laccumulateur A ; Charge A sur priphrique HP ; Charge valeur HPON (1) dans laccumulateur A ; Charge A sur priphrique HP ; Saute au dbut OSCIL
Adresses
; Fin de lassemblage
Commentaires
36
Exemple dexcution
Programme: instructions
.00
Vue symbolique
,A
MOVE #HPOFF,A
3E 00 D3 40 3E 01 D3 40 C3 00 00
MOVE
Adresses
#HPOFF MOVE A,
MOVE A,$HP
$HP MOVE ,A
MOVE #HPON,A
.04
#HPON MOVE A,
MOVE A,$HP
$HP JUMP
JUMP OSCIL
OSCIL 37
Exemple dexcution
Continue.
cle ucle cle ucle u ou bo e bo e bo b e m m m i i i 2 4 3
re
Universit de Savoie
38
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
39
Universit de Savoie
40
Universit de Savoie
42
Universit de Savoie
44
EEPROM memory
Cest une mmoire similaire la mmoire programme. En revanche, le contenu peut tre modifi en cours dutilisation de lapplication.
Universit de Savoie
45
SFR (Special Function Register) : Cest aussi de la mmoire RAM, sauf que les rles de chacune des cases mmoire (registres) ont t dfinis par le fabriquant. Chaque registre SFR est connect un priphrique matriel spcifique et permet de la contrler. Exemple :
ADCON0 register (adresse 9Fh) permet de piloter le convertisseur A/D.
Universit de Savoie
46
Universit de Savoie
47
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
48
Cadencement du microcontrleur
Schma du pic 16F877
Universit de Savoie
49
Cadencement du microcontrleur
Les cadencements possibles (1)
Quartz
Trs bonne Stabilit (10 ppm)
Rsonateur cramique
Stabilit ( 0.5%) Moins couteux que le quartz
50
Cadencement du microcontrleur
Les cadencements possibles (2)
Externe
Permet de synchroniser plusieurs lments du microsystme
RC
Trs peu stable mais trs faible cout Pas possible pour tous les microprocesseurs
51
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
52
Les timers
Mode compteur ou temporisateur
Un timer est le nom courant de compteur / temporisateur . Il sert :
- Mesurer du temps (compter le nombre de coup dhorloge) > Mode temporisateur
- Compter le nombre dvnement sur une broche (exemple : Nombre dappuis sur un bouton poussoir > Mode compteur
Universit de Savoie
53
Les timers
Mode compteur ou temporisateur
En pratique, on visualise la valeur de dpart, puis la valeur darrive. La valeur de comptage est la diffrence des deux valeurs.
Dans quelle mode fonctionne le timer ici? Donner la valeur du temps en fonction de A et B dans cette application.
Universit de Savoie
54
Les timers
Utilisation dun prescaler
Universit de Savoie
55
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
56
Universit de Savoie
57
Universit de Savoie
58
Universit de Savoie
60
Des sorties trois tats peuvent tre relies entres elles mais il faut bien veiller ce que une seule impose un niveau (haut ou bas) et que les autres sorties soit en haute impdance.
Universit de Savoie 61
Fonctionnement
T2 Satur Bloqu S "0" Dpend du montage
Universit de Savoie
62
Pour gnrer le niveau "1", une rsistance extrieure est ncessaire (rsistance de tirage // pull-up). Plusieurs sorties "collecteur ouvert" peuvent tre relies entre elles, cela ralise un "ET logique" Une sortie collecteur ouvert peut commander une charge sous une tension diffrente de la tension d'alimentation.
Universit de Savoie 63
"1" "0" Vi
Vseuil- Vseuil+
Universit de Savoie
64
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
65
La liaison srie
La liaison srie USART (Universal Synchronous Asynchronous Receiver Transmitter ) est le mode le plus rependu pour communiquer (et aussi le plus vieux).
66
La liaison srie
Connexions (1)
Une liaison srie permet de transmettre des donnes sur un nombre limit de fils. Cette liaison peut tre Half duplex (liaison synchrone) ou full duplex (liaison asynchrone). Sur le microcontrleur PIC16F877A, la liaison srie asynchrone peut tre mise en uvre laide des pins RxD et TxD. Elle est ralise par un USART :
RxD, signal de rception de lUSART TxD, signal de transmission de lUSART
Universit de Savoie
67
La liaison srie
Connexions (2)
La liaison srie
USART Transmit bloc register
Universit de Savoie
69
La liaison srie
USART receive bloc register
Universit de Savoie
70
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
71
Le Watchdog (1)
Le chien de garde (watchdog) est un dispositif matriel et logiciel qui permet de se prmunir contre les plantages accidentels. Lide est de provoquer un RESET du CPU afin de relancer lapplication. (Les donnes sont bien sur perdues). Le plantage est dfini lorsque le programme nest pas venu temps faire signe au watchdog.
Universit de Savoie
72
Le Watchdog (2)
MICROCONTROLEUR
73
2.1 Dfinition dun microcontrleur 2.2 Cadencement du microcontrleur 2.3 Les timers 2.4 Les ports dentre/sortie 2.5 La liaison srie 2.6 Le watchdog 2.7 Le CAN
Universit de Savoie
74
Le CAN
CAN : Dans les microcontrleurs, les voix de conversion analogique/numrique sont souvent multiplexes. Ceci signifie que la frquence maximale de conversion analogique numrique est divise par le nombre de voies utilises.
Trs souvent, il faut configur les entres de conversion en entre analogique car celles-ci peuvent aussi tre utilise en entre numrique.
Universit de Savoie
75
Le CAN
Le CAN
Daprs la datasheet : Quel est le nombre de bits du convertisseur AN. Dans quels registres est stock le rsultat? Comment fait-on pour justifier le rsultat droite ou gauche. Combien possde t on de voies multiplexs? A quoi correspond Vref+ et Vref - ? Comment configure t on une entre en analogique?
Universit de Savoie
77
Le CAN
Sur lapplication ci-dessous, quelle est la rsolution maximale que nous pourrons avoir?
Donner lexpression de la rsolution en fonction de Vref+, Vref- et du nombre de bits du convertisseur. Exprimer la valeur analogique en fonction de Vref+, Vref- et de la valeur numrique donne par le convertisseur.
Universit de Savoie 78
Le CAN
Donner le code C permettant dobtenir un entier reprsentatif de la valeur de conversion en fonction des valeurs de ADRESH et ADRESL.
Universit de Savoie
79
Le CAN
Dans lapplication ci-dessous, donner :
La rsolution Lexpression de Vin en fonction de la valeur numrique du convertisseur.
Universit de Savoie
80
Le CAN
Vitesse maximale du convertisseur
Universit de Savoie
81
Etc
Universit de Savoie 82
Chapitre 3 : La programmation
Universit de Savoie
83
Les interruptions
Problmatique & dfinition
Un systme informatique nest utile que sil communique avec lextrieur. Lobjectif est de pouvoir prendre connaissance que le priphrique sollicite le processeur. Cette sollicitation arrive de faon totalement asynchrone. Deux modes sont possibles :
Une mthode par scrutation (polling) permet dinterroger rgulirement les priphriques afin de savoir si une nouvelle donne est prsente. Une mthode par interruption permet au priphrique luimme de faire signe au processeur de sa prsence.
Universit de Savoie
84
Les interruptions
Scrutation Vs interruption
Scrutation (polling)
Coteux en temps (multiplier par le nombre de priphrique interroger) Implmentation : Appel classique une fonction dans le programme
Interruption
Demande linitiative du priphrique Prise en compte rapide de lvnement Implmentation : Interruption asynchrone dun programme puis retour au mme endroit la fin du traitement
Universit de Savoie
85
Les interruptions
Schma
Une interruption est un arrt temporaire de l'excution normale d'un programme informatique par le microprocesseur afin d'excuter un autre programme (appel routine d'interruption).
Universit de Savoie
86
Les interruptions
Types dinterruption
Interruption masquable
Un masque dinterruption est un mot binaire de configuration du microprocesseur qui permet de choisir (dmasquer) quels modules pourront interrompre le processeur parmi les interruptions disponibles.
Universit de Savoie
87
Les interruptions
Configuration
Un systme peut accepter plusieurs sources dinterruption. Chacune est configurable par registre (registre dinterruption). Mthode de configuration des interruptions
Slectionner les interruptions qui nous intressent Valider les interruptions de faon globale Ecrire le/les sous programme dinterruption Dfinir les priorits entres interruptions
Universit de Savoie
88
Les interruptions
Configuration
Dans le sous programme dinterruption
Sauvegarder le contexte (fait automatique en langage C) Dfinir la source dinterruption (si le sous programme est commun entres plusieurs sources dinterruption) Rinitialiser les flags dinterruption Ecrire le code relatif lapplication Restituer le contexte (fait automatique en langage C)
Flag dinterruption
Bit de masquage
Les interruptions
Dmasquage des interruptions
Universit de Savoie
91
Les interruptions
Les flags dinterruption
Universit de Savoie
92
Les interruptions
Le rle de la pile
La pile est une mmoire LIFO (Last In First Out) dans laquelle on stoke des variable temporaire (donne ou adresse). Le haut de la pile est point par le registre SP (Stack Pointer).
93
Les interruptions
Rle de la pile
Elle va servir :
sauvegarder le contexte lenvironnement (adresse du programme et valeur des registres au moment de linterruption). restituer le contexte la fin de linterruption
Note 1 : La sauvegarde et la restitution est faite implicitement en langage C. Note 2 : Une fonction dinterruption est not spcifiquement. Exemple du PIC qui ne possde quun seul vecteur dinterruption :
Universit de Savoie
94
Les interruptions
Avant linterruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal
Registres
x xx
Pile
Programme dinterruption
95
Les interruptions
Arrive dune interruption
PC ( Addr Prog IT )
Registres
x
Addr Prog xx
Pile
Programme dinterruption
96
Les interruptions
Arrive dune interruption : Sauvegarde contexte
PC ( Addr Prog ) SP ( Addr Pile + 3)
Programme principal
Registres
x xx
x
xx Addr Prog
Pile
Programme dinterruption
97
Les interruptions
Fin dune interruption : Restitution contexte
PC ( Addr fin Prog IT)
SP ( Addr Pile + 1)
Programme principal
Registres
x xx
x
Addr Prog
xx
Pile
Programme dinterruption
98
Les interruptions
Fin dune interruption
PC ( Addr Prog ) SP ( Addr Pile)
Programme principal
Registres
x xx
Addr Prog
Pile
Programme dinterruption
99
Les interruptions
Retour au programme principal
PC ( Addr Prog + 1 )
SP ( Addr Pile)
Programme principal
Registres
x xx
Pile
Programme dinterruption
100
Les interruptions
Exemple sur le PIC 16F877
Quelle interruption est concerne ici ? Quelles actions sont ralises pendant le sous-programme dinterruption?
Universit de Savoie
101
Chapitre 3 : La programmation
Universit de Savoie
102
Le logiciel
La chane de compilation
Universit de Savoie
103
Remplacer les deux lignes du programme C par le code assembleur correspondant Donner le code machine correspondant chaque instruction trouve
Le logiciel
Programmation de la mmoire programme (Flash)
Utilisation dun logiciel de programmation de mmoire Flash
Universit de Savoie
105
Le logiciel
Programmation de la mmoire programme (Flash)
Universit de Savoie
106
Le logiciel
Avantage du langage C
Universit de Savoie
107