Professional Documents
Culture Documents
Aspects Matriels
NOM:
PRENOM:
Grpe:
Gnralits
Structure des systmes micro programm
Architecture matrielle
Un microprocesseur est un
circuit intgr complexe. Il
rsulte de lintgration sur
une puce de fonctions
logiques
combinatoires
(logiques
et/ou
arithmtique)
et
squentielles
(registres,
compteur, etc). Il est
capable d'interprter et
d'excuter les instructions
d'un programme
les
coupleurs
,
ou
contrleurs
de
priphriques,
ralisent
linterface lectrique et
fonctionnelle
entre
le
microprocesseur et les
priphriques associs par
le biais des diffrents bus.
Gnralits
Les mmoires
Principe de fonctionnement des mmoires
Objectif : stocker les codes instructions du programme ainsi que les donnes associes ce
programme
Principe de fonctionnement
Une mmoire peut tre reprsente comme une armoire de rangement constitue de diffrents tiroirs.
Chaque tiroir reprsente alors une case mmoire qui peut contenir un seul lment : des donnes. Le
numro du tiroir que lon souhaite ouvrir est repr par un numro appel adresse.
bus dadresses : numro du tiroir ouvrir
bus de donnes : contenu du tiroir
signaux de contrle : contrle de louverture de la fermeture
Les mmoires
reprsentation des nombres
Reprsentation hexadcimale
Lorsquune donne est reprsente sur plus de 4 bits, on prfre souvent lexprimer en hexadcimal. Les
nombres sont exprims par des chiffres et des lettres pouvant prendre 16 valeurs : 0 1 2 3 4 5 6 7 8 9 A
B C D E F .A chaque chiffre est affect un poids exprim en puissance de 16.
Ex : ( 9A )16 <> 9x161+ Ax160 = 9x161 + 10x160 = ( 154 )10
Reprsentation signe
Reprsentations signe et valeur
Reprsentations en complment un
Reprsentations en complment deux
En informatique :
1 kilo = 210 = 1024
1 Mega = 210k = 220= 1024.1024 = 1048576
1 Giga = 210M = 220k = 230
1 Tera = 210G = 220M = 230k = 240
en anglais octet = byte (kb,Mb,...)
Attention : ne pas confondre avec le bit
Les mmoires
Les memoires ROM
PROM
EPROM
EEPROM
FLASH
et le PIC?
6
Software
le P est une sorte dautomate capable deffectuer la demande un ensemble
limit dactions
chaque action correspond une instruction du langage compris par le P
Chaque instruction est code par une srie de nombres suivant un format
prdfini
Un programme est une suite dinstruction crite par lutilisateur
Le programme est excut instruction par instruction par le P
Exemple de
codage dun
programme
Hardware
partie matrielle du systme
partie sur laquelle va agir le programme
Le microprocesseur
Architecture simplifie
LUnit Arithmtique et Logique (UAL) est un
circuit complexe qui assure les fonctions
logiques (ET, OU, Comparaison, Dcalage ,
etc) ou arithmtique (Addition, soustraction).
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 :
o retenue (carry : C)
o retenue intermdiaire
o signe (Sign : S)
o dbordement (overflow : OV ou V)
o zro (Z)
o parit (Parity : P)
Le microprocesseur
Cycle dexcution dune instruction
Dvelopp par Microchip depuis une dizaine dannes, les PIC sont des micro-contrleurs de
seconde gnration de type 8 bits externes avec une architecture interne de type Harvard
autour de son unit centrale permettant des oprations arithmtiques et logiques simples et
rapides
10
Les micro-contrleurs PIC utilisent une structure dite Harvard dans laquelle les mmoires
Programme et Donnes sont spares, adresses toutes deux par deux bus dadresses
diffrents.Dans ce cas les instructions et les donnes sont clairement spares ce qui permet au
micro-contrleur de traiter une donne en mme temps quil prpare le cycle de linstruction
suivante
De plus le micro-contrleur PIC utilise un jeu dinstructions rduit ( stock dans la mmoire
programme)
Cette structure est appele architecture RISC (Reduced Instruction Set Computer)
11
Technologie flash
21 bits d'adresses =2 Mo d'espace adressable
32ko implments (de 0x0000 0x7FFF)
Au Reset PC = 0x000000
Premire instruction qui est excute par le pic au dmarrage
architecture de harvard
les instructions et les donnes sont clairement spares ce qui permet au micro-contrleur de traiter une
donne en mme temps quil prpare le cycle de linstruction suivante
Une Horloge qui est un gnrateur de signaux logiques priodiques stables est ncessaire au
fonctionnement des micro-contrleurs PIC pour cadencer leur fonctionnement instruction aprs
instruction
la plupart des instructions sont excutes en un cycle
Le cadenceme
1cycle dure 4 priodes de l'horloge dnommes : Q1,Q2,Q3,Q4
Tcy = 4 . Tosc
Tosc = 1/Fosc avec Fosc : frquence de l'horloge
Diffrentes possibilits peuvent tre utilises pour raliser les circuits dhorloge
Horloges quartz soit basse frquence (type LP) pour conomiser en consommation.
Horloge Quartz rapide ou haute vitesse (type HS)
Horloge Quartz ou rsonateur standard (type XT).
Horloge rseau R-C (type RC).
Horloge rseau R-C externe (type EXTRC).
Horloge rseau R-C interne (type INTRC).
13
14
Environnement de dveloppement
Mthodes de dveloppement
Dveloppement natif
Le dveloppement logiciel est ralis sur la carte matrielle ou le programme sera embarqu. Les logiciels
de dveloppement sont intgrs dans une mmoire de type rom sur la cible. Ces outils de dveloppement
sont en gnrale rudimentaire.
Le dveloppement logiciel est ralis sur un PC. Toutes les fonctionnalits dun PC peuvent tre alors
utilises ( disques durs accessibles, connexions rseau.)
Lenvironnement de dveloppement est fourni par le constructeur ou par des entreprises tierces
Notre environnement de dveloppement: MPLAB 7.xx fournis par la socit MICROCHIP ( gratuit!)
Comprend un diteur de texte
un compilateur C et assembleur.
des outils de mise au point (debugage)
les outils de transfert et de programmation du PIC
La plupart des briques logicielles sont dvelopps en C.(seules quelques parties sont crites en
assembleur pour des questions doptimisation et de rapidit dexcution du code)
15
Environnement de dveloppement
La chane de dveloppement
char x , y ;
....;
x=3;
y=x + 2 ;
....;
compilateur
movlw 3
movwf 0x000
movf 0x000 , w
addlw 2
movwf 0x001
18f4520i.lkr
LIBPATH .
FILES c018i.o //code de dmarrage
FILES clib.lib //librairie standard
FILES p18f4520.lib //lib librairie spcifique f4520
CODEPAGE NAME=vectors START=0x0
END=0x29
PROTECTED
CODEPAGE NAME=page
START=0x2A
END=0x7DBF // adresse o sera stock
votre programme
CODEPAGE NAME=debug
START=0x7DC0
END=0x7FFF
PROTECTED
CODEPAGE NAME=idlocs START=0x200000
END=0x200007
PROTECTED
CODEPAGE NAME=config START=0x300000
END=0x30000D
PROTECTED
.
16
Environnement de dveloppement
Structure simplifie dun programme en C
/* titre du programme */
/*
*/
dfinit du commentaire donc non compil.
/* directives de compilation */ //le # prcde toutes directives de compilation,
#include xlcd100.h // inclusion de fichiers : ici .H ncessaire lutilisation de lafficheur LCD de la carte PICDEM2+.
#include <p18cxxx.h> //inclue la librairie p18cxxx.h qui dfinie toutes les quivalences entre le nom des registres et leur adresse.
#include <stdio.h>
/* suivant les fonctions systme utilises, inclure les bonnes librairies */
#define S3 PORTAbits.RB3
//PORTAbits.RA4 : reprsente le bit RA4 du port A, peut tre utilis tel quel, o avec ltiquette S2
#define n 0X50
// remplacera toute les tiquettes n par la valeur hexa 0x50
/* configuration du PIC18F 4520 pour lapplication sur PICDEM2+ */
# pragma config OSC = HS
//Oscillateur externe.
# pragma config WDT = OFF
//Watch Dog inhib.
# pragma config LVP = OFF
//Low Voltage ICSP dvalid.
# pragma config PBADEN =OFF
//les broches RB0 RB4 sont des entres DIGITALES au reset.
/* dclaration des variables globales (1) */
signed char i, j;
//variables de type caractre, signes sur 8 bits.
unsigned char c = 9;
//c sera initialise 9 avant lappel de la fonction main (variable non signe).
signed char tab [20];
//rservation dun tableau de 20 caractres.
signed int var1;
// variable de type entier, signe sur 16 bits
unsigned char tab1[ ] = bonjour;
//rservation dun tableau contenant une chane de caractres
const unsigned char tabcons [ ] = {0xfa,65,a,22,r}; //dclaration dun tableau de constantes
unsigned char e = 0b11001010
//0b indique que la valeur dinitialisation est donne en binaire
For( ;;)
17
Environnement de dveloppement
Type dune variable
Classes de stockage
Qualificateurs
18