Cours PDF
Cours PDF
Cours PDF
Cyrille DROMAS
Doctorant - CubeSat Picard (Contrôle d'attitude)
E-mail: [email protected]
● Examen - 10 points/20 :
Contrôle des connaissances avec documents, sans calculatrice, sur les notions vues
en cours (TD inclus) ainsi qu’en TP.
Source: Distrimed
Dans une base donnée, le nombre s'exprime comme une somme pondérée.
Par exemple, le nombre 123 décimal (base 10) est constitué de 3 chiffres :
Chiffre Poids
Dans une base donnée, le nombre s'exprime comme une somme pondérée.
Chiffre Poids
Remarques :
• Le binaire est la base la plus simple : 2 chiffres (ou bits - binary digits)
« 0 » et « 1 ».
• Un byte (ou octet) est une information de 8 bits.
Dans une base donnée, le nombre s'exprime comme une somme pondérée.
Par exemple, le nombre 1AF hexadécimal (base 16) est constitué de 3 chiffres :
Chiffre Poids
1 0 1 0b
1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 = 10d
1 A Fh
431d 16
F = 15 26 16
A = 10 1 16
1 0
431d = 1AFh
Le codage hexadécimal a été créé afin de simplifier l’exploitation des nombres binaires.
Il permet en particulier une conversion simple par regroupement des bits par 4 en
partant de la droite. Chaque quartet (4 bits) étant alors simple à convertir.
Bit de signe
1 0 0 1 1 0 0 1 = -103d
Bit de signe
1 0 0 1 1 0 0 1 = -103d
Nous retrouvons bien notre 103d de départ, ce qui est logique vu que -(-103d) = 103d
Addition : V = A + B
1 1
1001 0110b
+ 0101 0101b
= 1110 1011b
Addition : V = A + B
1 1
1001 0110b
+ 0101 0101b
= 1110 1011b
Une addition de deux nombres de n bits donne un résultat sur n+1 bits !
1 111
1111b
+ 1111b
= 1 1110b
Soustraction : V = A – B = A + (-B)
Pour calculer V, on calcule la somme entre A et le complément à deux de B
1 111 11
1001 0110b 150d
1001 0110b- 0101 0101b + 1010 1011b - 85d
= 1 0100 0001b = 65d
Multiplication : V = A x B
1011b
x 1010b
1
1 0110b
+ 101 1000b
= 110 1110b
Multiplication : V = A x B
1011b
x 1010b
1
1 0110b
+ 101 1000b
= 110 1110b
Une multiplication de deux nombres de n bits donne un résultat sur 2 x n bits !
11b
x 11b
11b
+ 110b
= 1001b
Division : V = A / B
11011001b 110b
- 110 100100b
= 0
1
11
110
- 110
= 0
0
1
Etat
E1 E2 S
0 0 X
0 1 X
1 0 X
1 1 X
Notation :
Les états VRAI et FAUX sont codés respectivement 1 et 0.
La variable NON x est notéex et ce lit « x barre ».
NON
Equation logique : S=a
Table de vérité:
a S
0 1
1 0
Symboles :
NFC03-212 Américain
ET
Equation logique : S=a.b
Table de vérité: a b S
0 0 0
0 1 0
1 0 0
Symboles : 1 1 1
NFC03-212 Américain
OU
Equation logique : S=a+b
Table de vérité: a b S
0 0 0
0 1 1
1 0 1
Symboles : 1 1 1
NFC03-212 Américain
OU EXCLUSIF (XOR)
Equation logique : S = a ⊕ b = a.b + a.b
Table de vérité: a b S
0 0 0
0 1 1
1 0 1
Symboles : 1 1 0
NFC03-212 Américain
NON-ET (NAND)
Equation logique : S=a.b
Table de vérité: a b S
0 0 1
0 1 1
1 0 1
Symboles : 1 1 0
NFC03-212 Américain
NON-OU (NOR)
Equation logique : S=a+b
Table de vérité: a b S
0 0 1
0 1 0
1 0 0
Symboles : 1 1 0
NFC03-212 Américain
NFC03-212 Américain
En logique TTL-standard :
Tension d’alimentation : Vcc = 5V (± 0,25V)
En entrée :
• 0 à 0,8 V : niveau logique 0
• 2 à 5 V : niveau logique 1
En sortie :
• 0 à 0,4 V : niveau logique 0
• 2,4 à 5 V : niveau logique 1
En logique CMOS-standard :
Tension d’alimentation : Vcc = 3V à 18V
En entrée :
• 0.55 x Vcc à Vcc : niveau logique 0
• 0 à 0,45 x Vcc : niveau logique 1
En sortie :
• 0 à 0,05 x Vcc : niveau logique 0
• 0,95 x Vcc à Vcc : niveau logique 1
A BC 00 01 11 10
0 1 0 0 0 S1 = B . C + A . B . C
1 1 0 1 0
S2 :
A BC 00 01 11 10
0 0 0 0 0 S2 = A . B
1 1 1 0 0
Logigramme:
S2 = A . B
S1 = B . C + A . B . C
Dans les microcontrôleurs, les états du système changent en fonction d'une base de
temps qui est l'horloge. Ceci conduit naturellement à introduire les
chronogrammes comme outil d'analyse des états logiques d'un système.
Le verrou D (D Latch) :
Le verrou D (ou bascule D asynchrone) copie en sortie l'état de l'entrée D
uniquement si sa commande C est active ; dans le cas contraire, l'état en sortie Q
est celui précédent.
Entrées Sorties
C D Qn+1 Qn+1
0 X Qn Qn
1 0 0 1
1 1 1 0
Entrées Sorties
S R Qn+1 Remarque
0 0 Qn Mémorisation
0 1 0 Mise à zéro
1 0 1 Mise à un
1 1 X Interdit !
La bascule D (Flip-Flop D) :
C'est la version synchrone du verrou D !
Entrées Sorties
C D Qn+1 Qn+1
0 X Qn Qn
0 0 1
1 1 0
Entrées Sorties
S R H Qn+1 Remarque
X X X Qn Mémorisation
0 0 Qn Mémorisation
0 1 0 Mise à zéro
1 0 1 Mise à un
1 1 X Interdit !
Entrées Sorties
CLK J K Qn+1 Qn+1
0 X X Qn Qn
1 X X Qn Qn
↓ X X Qn Qn
0 0 Qn Qn
0 1 0 1
1 0 1 0
1 1 Qn Qn
Exercice :
1 - Donner la table de vérité du comparateur ci-dessus
2 - En déduire les équation booléenne des sorties
3 - Dessiner le logigramme correspondant
Exercice :
1 - Donner la table de vérité de l’additionneur ci-dessus
2 - En déduire les équation booléenne des sorties
3 - Dessiner le logigramme correspondant
Exercice :
1 - Donner la table de vérité du multiplexeur ci-dessus
2 - En déduire les équation booléenne des sorties
3 - Tracer le logigramme correspondant
Table de vérité :
A B S Y
Equation booléenne des sorties :
0 0 0 0
Y=A.B.S+A.B.S+A.B.S+A.B.S=A.S+B.S
0 0 1 0
0 1 0 0 Logigramme :
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Quand l’horloge devient active, les trois bits présents en entrée sont transférés en
sortie. Les trois bits restent ensuite mémorisés en sortie aussi longtemps que
l’horloge est inactive.
Applications :
• Registres de microprocesseurs (8, 16, 32 bits)
• Mémoire SRAM : mémoire cache des ordinateurs …
Avantages Inconvénients
• Très rapide • Faible modularité
• Consommation moindre • Possibilité d'évolution limité
• Optimisé pour une application • Coût élevé
Avantages Inconvénients
• Forte modularité • Mise en œuvre plus complexe
• Rapidité • Coût de développement élevé
Avantages Inconvénients
• Mise en œuvre simple • Plus lent
• Coûts de développement réduits • Utilisation sous optimale
« Largeur du bus »
8
« Unidirectionnel »
« Bidirectionnel »
● Harvard :
Mémoire
Mémoire
contenant Bus de données Bus de données
Unité de contenant
uniquement
calcul uniquement
des Bus d’adresses Bus d’adresses
des données
instructions
PC (Program Counter)
Issu de la documentation
technique du PIC16F628
Multiplexeurs
Décodeur d’instructions
Horloge
Stack (pile) :
LIFO (Last In First Out)
FIFO (First In First Out)
Issu de la documentation
technique du PIC16F628
• CCP
(Capture/Compare/PWM)
Modulation en largeur
d'impulsions
• Timer
• Comparateur
• CAN/CNA
• Référence de tension
• Module HF
Issu de la documentation • Liaison USB, ...
technique du PIC16F628
Architecture :
• ALU (8, 16, 32, 64 bits)
• Structure du processeur (Harvard, Von Neumann)
• Type de processeur (RISC, CISC)
• Taille des mémoires programme et données
• Nombre de ports d’entrées / sorties
Fonctionnalités :
• Fonctions analogiques : CAN, CNA, Comparateur, ...
• Fonctions de timing : Timer, Watchdog, ...
• Fonctions de communication : UART (Communication série), USB, I2C, ...
• Facilité de programmation : In-Circuit Serial Programming, Self Programming, ...
Caractéristiques électriques :
• Fréquence d’horloge
• Tensions d’alimentation
• Consommation d’énergie, modes faible consommation d’énergie, ...
Caractéristiques physiques :
• Type de boîtier: DIL, PLCC, ...
Pile (Stack)
Mémoire programme :
Zone mémoire réservée au stockage des programmes écrits
par l’utilisateur.
Les timers sont des registres incrémentés à chaque réalisation d’un événement, la
valeur de ces registres pouvant être pré-positionnée à une valeur initiale.
• Capture :
Ce mode déclenche une action si un événement prédéterminé apparaît (ex :
changement d’état sur une broche). Utilisé avec les timers, ce module peut compter les
temps d'arrivées.
• Compare :
Le mode compare effectue une comparaison permanente entre le contenu d’un timer
et une valeur donnée pour déclencher une action si ces contenus sont égaux.
Remarque :
- La pleine échelle et la dynamique permettent de calculer la résolution en tension du
module de conversion A/N
- La fréquence d'échantillonnage doit respecter le « théorème de Shannon »
La phase de test doit être menée pour vérifier que le cahier des charges initial est
bien rempli. Cette phase de test « finale » n'empêche pas d'avoir mené des tests
séparés lors des phases de développement matériel et logiciel.
Développement
matériel
code
.asm MPASM code Programmer
assembler .hex
Les opérandes utilisées par les instructions ASM peuvent être de plusieurs types :
W : registre de travail
f : adresse mémoire de registres (register file address)
PC : compteur programme
Création d’un pipeline: Permet une exécution plus rapide des instructions
ex : MOVLW 5Ah ;
ex : ANDWF REG, W, 0
Access Bank
Pointeurs vers des zones mémoires
Attention ! En adressage
direct, on doit s’assurer que
l’on travaille dans la bonne
page mémoire.
L’adressage indirect (indexé) : l’opérande est l’adresse d’un registre qui contient
l’adresse de la donnée.
Sous-programme
Initialisation
Test d’une
Faux
condition
Instructions
Vrai
RAZ du PORTB
Broche 2 à 7 du PORTB en sortie
Broche 1 du PORTB en entrée
Broche 1 du
PORTB à
l'état haut ?
;
; Filename : premier_programme.asm
;
; Description : Recopie de l'état de la broche 1 du PORTB sur la broche 2 du PORTB
;
; Author: Cyrille DROMAS
; Company: Université de Picardie Jules Vernes
; Revision: 1.00
; Date: 2012/11
; Définitions des emplacements mémoires des registres (définie par MPLAB - logiciel de développement Microchip)
#include <p18f67k22.inc>
;
; Filename : premier_programme.asm
;
; Description : Recopie de l'état de la broche 1 du PORTB sur la broche 2 du PORTB
;
; Author: Cyrille DROMAS
; Company: Université de Picardie Jules Vernes
; Revision: 1.00
; Date: 2012/11
; Définitions des emplacements mémoires des registres (définie par MPLAB - logiciel de développement Microchip)
#include <p18f67k22.inc>
;
; Filename : premier_programme.asm
;
; Description : Recopie de l'état de la broche 1 du PORTB sur la broche 2 du PORTB
;
; Author: Cyrille DROMAS
; Company: Université de Picardie Jules Vernes
; Revision: 1.00
; Date: 2012/11
; Définitions des emplacements mémoires des registres (définie par MPLAB - logiciel de développement Microchip)
#include <p18f67k22.inc>
;
; Filename : premier_programme.asm
;
; Description : Recopie de l'état de la broche 1 du PORTB sur la broche 2 du PORTB
;
; Author: Cyrille DROMAS
; Company: Université de Picardie Jules Vernes
; Revision: 1.00
; Date: 2012/11
; Définitions des emplacements mémoires des registres (définie par MPLAB - logiciel de développement Microchip)
#include <p18f67k22.inc>
init
clrf PORTB
movlw b'00000001' ; (Broche 1 en entrée - Broches 2 à 8 en sortie)
movwf TRISB ; Configuration de la direction du PORTB
RAZ du PORTB
Broche 2 à 7 du PORTB en sortie
Broche 1 du PORTB en entrée
init
clrf PORTB
movlw b'00000001' ; (Broche 1 en entrée - Broches 2 à 8 en sortie)
movwf TRISB ; Configuration de la direction du PORTB
boucle
; Broche 1 du PORTB à l'état haut ? Si oui, saute l'instruction suivante
btfss PORTB, 0
goto allumer
eteindre Broche 1 du
; Broche 2 du PORTB à l'état haut PORTB à l'état
bcf PORTB, 1 haut ?
goto boucle
end
Jacky Senlis :
http://jgsenlis.free.fr/