You are on page 1of 18

Cours de PIC

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.

Une mmoire est un circuit


semi-conducteur
permettant
denregistrer, de conserver et de
restituer
des
informations
(instructions et variables).

Un bus est un ensemble de fils qui


assure la transmission du mme
type dinformation. Linformation
est code de manire binaire.
Lensemble des 0 et des 1 forment
une valeur en fonction du type de
reprsentation adopte (binaire
naturel, reprsentation signe
etc.)

Gnralits

Les mmoires
Principe de fonctionnement des mmoires

Objectif : stocker les codes instructions du programme ainsi que les donnes associes ce
programme

classification classique suivant 2 familles


RAM : mmoire volatile -> lecture et criture des donnes
ROM : mmoire permanente -> lecture uniquement des donnes (lcriture correspond la
programmation)

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 en binaire naturel


Les nombres sont exprims par des chiffres pouvant prendre deux valeurs 0 ou 1. A chaque chiffre est
affect un poids exprim en puissance de 2
Ex : ( 101 )2 <> 1x 2 + 0x21 + 1x20 = ( 5 )10

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

programmation par lutilisateur- contenu fig


reprogrammable effaable par rayons U.V.
reprogrammable effaable lectriquement

FLASH

tension de programmation 12,24Volts

reprogrammable effaable lectriquement


composant dit ISP
Ex : BIOS carte mre PC sur Flash
Exemple de ce cycle de lecture

Les mmoires RAM

RAM statiques : donnes mmorises tant que lalimentation est prsente


mmoire cache externe PC ( 256/ 512 Ko/1Mo)
Mmoire RAM des micro-contrleurs.
Registres internes des circuits lectroniques (P,UART,...)

RAM dynamique : dgradation de linformation au cours du temps =>Rafrachissement


ncessaire
utilisation intensive dans les PC (EDO, SDRAM, DDRam)

et le PIC?
6

Le microprocesseur et son environnement


Hardware/Software

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).

le registre d'instruction et le dcodeur d'instruction : chacune des


instructions excuter
est range dans le registre instruction puis est dcode par le dcodeur
dinstruction

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 :
o retenue (carry : C)
o retenue intermdiaire
o signe (Sign : S)
o dbordement (overflow : OV ou V)
o zro (Z)
o parit (Parity : P)

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 des divers signaux de commande provenant du dcodeur
dinstruction ou du registre dtat par exemple. Il s'agit d'un automate ralis
soit de faon cble (obsolte), soit de faon micro-programme, on parle
alors de micromicroprocesseur.

les registres d'usage gnral permettent


l'unit de traitement de manipuler des donnes
vitesse leve. Ils sont connects au bus
donnes interne au microprocesseur.
les registres d'adresses (pointeurs)
connects sur le bus adresses.

Le microprocesseur
Cycle dexcution dune instruction

Etape 1 => recherche des instructions en mmoire

Etape 2 : dcodage de linstruction


Etape 3 : Excution de linstruction

Les PIC 18Fxxxx


Microcontrleurs

Un microcontrleur est un microprocesseur dans lequel on a ajout au sein du mme botier


un ensemble de priphriques: convertisseurs analogiques/ numrique et numrique/analogique, timer..
Une quantit limite de mmoire pour stocker le programme ainsi que des variables

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 PIC 18Fxxxx


Architecture du PIC

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

Les PIC 18Fxxxx


Mmoire programme interne

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

Les instructions sont codes sur 16 bits (2 cases).


Les instructions commencent donc toujours une adresse paire.
32ko => 16k instructions

Mmoire donne interne

12 bits d'adresses 0x000 0xFFF et 8 bits de donnes


16 banques de 256o: bank0 bank15
bank0 0x000 0x0FF
bank1 0x100 0x1FF

La zone 0xF80 0xFFF est alloue aux SFR : registre ddis


une fonction (port E/S, configuration priphriques, ...)
12

Les PIC 18Fxxxx


Squencement des instructions

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

Les PIC 18Fxxxx


schma de cblage minimum

LICD2 permet de charger un programme


dans le micro (programmeur) et
de contrler son excution, de voir et
de modifier des variables, de placer
des points d'arrt (debugger)

Autre possibilit avec


bouton poussoir de reset

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.

Dveloppement crois ( cross compilation )


Mthode de dveloppement la plus courante

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

dition du texte: criture de votre programme en C.


Phase de compilation: obtention dun fichier objet
Phase ddition de liens (utilisation du LINKERSCRIPT): permet de lier les diffrents fichiers objets qui constituent votre
projet
Chargement du programme sur la cible: utilisation de lICD2
Test et mise au point du programme

char x , y ;
....;
x=3;
y=x + 2 ;
....;

compilateur

EXTRAIT DU LINKER SCRIPT

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

/* Ecriture de la fonction main */

void main (void)


{
/* dclaration des variables locales (5) la fonction main */
unsigned int x; //entier, variable non signe sur 16 bits.

// mettre le code dinitialisation des priphriques


TRISBbits.TRISB3 = 0 ; // RB3 en sortie

For( ;;)

// les taches de votre programme ICI!!!!


}
}

Le programme embarqu dans le micro a la


particularit de dmarrer la mise sous tension
du systme et de ne s'arrter qu' la coupure de
l'alimentation. C'est donc un programme qui aprs
une squence d'initialisation tourne en une boucle
infinie.

17

Environnement de dveloppement
Type dune variable

Voir document du compilateur C18

Classes de stockage

auto : dfinit une variable de type locale


extern : dclare une variable sans la cre (la cration est dans un autre fichier)
register : demande au compilateur de faire tout son possible pour utiliser un registre processeur
pour cette variable ;
static : rend une dfinition de variable persistante
Utilis dans les interruptions pour mmoriser un tat entre deux interruptions
Attention: static ne modifie pas la porte dune variable locale ( la visibilit reste locale mais la dure de
vie est globale )

Qualificateurs

Volatile : indique au compilateur une interdiction doptimisation sur cette variable


A utiliser lorsque la valeur dune variable change indpendamment du programme
zone mmoire mappe sur un priphrique: exemple PORT,LAT etc
Variable globale modifie par une interruption

18

You might also like