You are on page 1of 9

Cours de microprocesseur

mercredi 3 mars 2010


08:21

Le 68hc12 et son assembleur


68hc12= microcontroleur
--> intgre sur un meme morceau de silicium
-microprocesseur
-mmoire
-Entres/sorties
112 broches
Le 68hc12 intgre :
- 32 Ko de mmoire flash EPROM mmoire programmables lectriquement rapide utilise pour le programme
- 1 Ko de RAM mmoire volatile utilise pour les donnes temporaires
- 768 octets de EEPROM utilise pour les donnes non volatiles
- CPU= P
- Port A, port B: port d'entres/sorties parallles pour communiquer avec les priph externes. On peut galement
utiliser ces ports pour dialoguer ou pour grer de la mmoire externe si la mmoire interne au microcontrleur
n'est pas suffisante.
- ATD converter= convertisseur analogique numrique (analogic to digital)

Signal
Analogique
Fourni par un capteur

ATD

Mot
binaire

Timer: gestion de temps


SCI: interface de communication en srie asynchrone
SPI:
//
//
synchrone
PWM: pulse wave modulation
permet de commander un moteur en modulant sur la largeur d'une impulsion
- BDLC: protocole de communication spcifique
- I/O: entres/sorties
-

Le plan mmoire
Par dfaut:
0000h-01FFh:512 octets de registres
0800h-0BFFh: 1Ko de RAM <-- dbut de donnes temp. en 0800h
dcroissantes
0D00h-0FFFh:768 octets d'EEPROM
8000h-FFFFh:52 Ko de Flash <--dbut du programme en 8000h

dbut de la pile en C00h (SP instantane en C00h) car la pile se remplit dans le sens des adresses

Pile: sert la sauvegarde temporaire des donnes lors de l'appel d'un sous programme
Sous programme

Prog princ.

Fin sous programme

appeler sous-programme
3
finprogramme

Flash

8000h

Programme
8400h
Appeler sous programme

9000h

9001h

Sous programme

Pile gre au LIFO last in first out


l'adresse de la dernire donne mmoire est fournir par SP

Nouvelle section 1 Page 1

La pile permet de mmoriser l'adresse de retour l'xcution du programme principal


Aprs l'xcution du sous programme.

l'adresse de la dernire donne mmoire est fournir par SP


1) Mmorisation de l'ad retour
SP<-- SP-2
(PCh)=84H est mmorise dans la case d'adresse SP
(PCl)=00H
//
//
SP+1
2) Restauration de l'adresse de retour
PCh <-- la donne d'adresse SP
PCl<-//
SP+1
SP<-- SP+2
Registre du 68hc12

Internes au P interne au 68hc12


Reg D 16bits
A

15

0
UAL

La partie haute de D s'appelle A


La partie basse de D s'appelle B
---> utilis pour les oprations arithmtiques et logiques
Reg X --->16 bits
RegY---> 16 bits
Reg d'index--> utilis pour mmoriser une valeur qui sert soit de donnes soit d'adresse

SP: pointeur de pile, fournit l'adresse de la dernire donne mmorise dans la pile
PC: pointeur de programme, donne l'adresse de l'instruction suivante
Reg d'tat: CCR regroupe des bits (drapeaux) dont la valeur est positionne en fonction du rsultat de l'opration arithmtique ou logique.
H: retenue intermdiaire
N: rsultat ngatif
Z: rsultat nul
V: dpassement
C: retenue
S,I,X: sont positionns par l'utilisateur
S: autorise l'instruction stop
I: autorise des interruptions sur maquette
X: en rserve
Format d'une instruction
{tiquette} Mnmonique {oprande 1}{oprande 2}{;commentaire}
obligatoire
indique la nature de l'instruction
Les modes d'adressage

Indiquent si l'oprande est une donne ou une adresse


Inhrent: - pas d'oprande
--> ex: TBA transfrer le contenu du reg B vers reg A
- oprandes= registres du P --> ex: EXG A B: change les contenus des reg A et B
Immdiat: l'oprande est une donne code sur 8 ou 16 bits
ex: LDAA # $ 12 mettre dans le reg A la valeur 12h (# = adressage immdiat, $ = valeur hexadcimale
Direct: l'oprande prsente l'adresse de la donne. Cette adresse est sur 8 bits entre 0000h et 00FFh
ex: LDAA mettre dans le reg A la donne dont l'adresse est 12h
Etendu : idem adressage direct mais l'oprande reprsente une adresse sur 16 bits( entre 0000h et FFFFh
ex: LDAA $1424
Index : avec un offset constant
ex: LDAA 12,X mettre dans le reg A la donne donct l'adresse est fournie par le reg X auquel on ajoute 12
Pr-dcrment : ex: LDAA 3,-X
1 dcrmenter X de 3
2 charger le reg A avec la valeur dont l'adresse est fournie par X
Pr-incrment: ex: LDAA,+ X
1 incrmentation de X
charger dans reg A la donne d'adresse fournie par X
Post-incrment: LDAA 2,X+
LDAA 3,X1 chargement du reg A avec la donne donc l'adresse est fournie par X
2modification du registre X
Index- Indirect: LDAA [3,X]
charger dans le reg A la donne dont l'adresse se trouve l'adresse X+3
Relatif: utilis pour les instruction de saut
bcl

BRA bcl reprendre l'excution du programme partir d'une tiquette qui s'appelle bcl , l'oprande l'instruction reprsente une adresse

Jeu d'instruction
1: instructions de transfert et d'changes entre registre (cf. tab 5-2)
2: instructions de lecture -criture (cf tab. 5-1)
3: instructions arithmtiques
4: instructions logiques
5: instructions permettant de raliser des boucles

Nouvelle section 1 Page 2

5: instructions permettant de raliser des boucles


ex: pour i=10 to 1 faire
LDAA #10
s
encore
s
s
s
s
tq A>0
s
s
s
fin pour
DBNE A encore
s
s
si A=0
s
s

;dcrmente le reg. A de 1 si la valeur du reg A est diffrente de 0


on reprend encore sinon on passe l'instruction suivante

Vecteur reset: chaque fois que l'on met le contrleur sous tension , il va toujours lire le contenu d'un mme emplacement mmoire, celui d'adresse FFFEh, FFFFh.
On doit mettre dans cet emplacement mmoire l'adresse du programme excuter

Les circuits d'entres/sorties (E/S)


I) Introduction
Le microprocesseur avec l'extrieur via des interfaces qui adaptent les signaux (0V,5V) utiliss par le P ceux compris parles priphriques.

Interface sortie

adresse

donnes
P

Mmoire=
Programme
+
Donnes

commande

Interface sorties

Moteur
-10V, +10V

Le dialoque P-interface s'effectue via les bus d'adresse , de donnes et de commande (de la mme faon qu'avec une mmoire)
Le dialogue interface-priphrique s'effectue via des lignes d'E/S
Priph vers interface = entre
Priph vers priph= sortie
Les lignes d'E/S sont regroupes dans des ponts
Exemple: interface avec 2 points de 8bits

CS slectionne l'interface pour l'ensemble des interfaces et des mmoires


1 bit d'adresse pour faire

II) l'adressage des interfaces


2 possibilits
- Adressage cartographique
//
indpendant

Nouvelle section 1 Page 3

1) l'adressage cartographique

1) l'adressage cartographique
On a attribue une parti de l'espace mmoire disponiqble des interfaces
Les o,terfaces sont projetes dans le plan mmoire
On accde aux interfaces avec les mmes instruction que pour la mmoire
ex: LDAA port 1 le reg. A reoit le contenu du port 2
2) l'adressage indpendant
Les interfaces ont leur propre espace d'adresage
Le P utilise un signal supplmentaire pour faire la distinction entre les 2 espaces
M/IO= 1 --> accs mm.
M/IO=0 --> accs E/S (M=memory , I/O= input,output
M/IO est gnr partir de l'instruction utilise

III) Les liaisons parallles

Si le P veut aficher 1 il doit activer les segments b et c, le chiffre 2 a b g e d


Chaque fil du port de sortie est reli un segment de l'afficheur
L'interface dialoque avec le pr"phrique via n fils en //
Chaque bit d'une mme donne est dpos sur un fil
Exemple de priphrique fonctionnant en //
- Imprimante: affichage de caractre A code ascii (60 h : 0110 0000 => n fils en //)
- Commande d'un bras de robot:
Rotation selon 3 axes
+ translation selon trois axes
==> 6 moteurs commander en //
1) Architecture interne d'un circuit d'E/S //
Cf schma "circuit E/S // p.14 du poly microprocesseur et microcontrleurs.

CS: slectionne l'interface parmi les autres et parmi les mmoires


a:slectionne port A ou port B
RD=1 si le P veut lire une donne qui vient d'un priphrique
WR=1 -------------- crire une donne vers un priphrique
Mode entre: le P lit une donne d'un priph (CS= celui de l'interface
a= slection du bon port
RD=1)

Nouvelle section 1 Page 4

Di => fil i du bus de donne du tampon


Ei=> fil i reliant le port A et le priph
Mode sortie: le P envoie une donne vers un priphrique (CS= celui de l'interface
a= celui du port de sortie
WR=1)

Logique de commande: gnre des signaux de commande des portes 3 tats et des bascules
Registre de commande: accessible en criture permet l'utilisateur de dfinir sir les lignes de dialogue
avec le priphrique sont des entres ou des sorties (ex: DDRA, DDRB pour le 68hc12)
Registre d'tat: accessible en lecture . Donne des informations sur l'tat de la communication (donne mise, donne reue, priphrique prt.)

IV) Les liaisons sries


On dialogue avec le priph via 1 seul fil

Les n bits qui forment un mme caractre sont envoys les uns la suite des autres

Nouvelle section 1 Page 5

Les n bits qui forment un mme caractre sont envoys les uns la suite des autres
Ex: 'A': code 60h =>0110 0000
Ex de priphrique srie: souris, fax, modem, rseau
2 modes de communication possible:
- Asynchrone
- Synchrone
Mode asynchrone:
'BONJOUR' : 8 bits pour 'R': 0110 1110
8 bits pour 'U': 1001 0001
8 bits pour 'O': ..
Chaque caractre mis est form par :
- 1 bit de dpart qui permet de prvenir le rcepteur de l'arrive d'un nouveau caractre
- 8 bits qui correspondent au code du caractre= bits de donnes
- ventuellement 1 bit de parit (paire, impaire)
- 1 ou 2 bit(s) de stop.

Mode synchrone:
Les donnes forment 1 suite continue de bits sans qu'il soit possible d'identifier les limites de chaque caractre dans ce flot. Il existe juse quelques bits
de synchronisation au dpart pour synchroniser le rcepteur sur l'metteur. Avantage: + rapide inconvnient erreur si dcalage dans la lecture des bits.

1) Architecture interne d'une interface srie


Partie mission: le P veut mettre une donne sous forme srie un priph

Reg. De transmission = registre dcalage charg en // via le bus de donnes, dcal sous le contrle de la logique de transmission
Les bits sont mis sur la ligne mission de donnes une frquence fixe par l'horloge d'mission

Nouvelle section 1 Page 6

On peut modifier la vitesse de transmission en envoyant les bits toutes les 1 2 4 8 16 priodes d'horloge.

Rception d'un caractre:


La donne en provenance du priphrique est reue sous forme srie dans le registre de rception , sous contrle de la logique de rception avant
d'tre fournie au P sous forme // via le tampon et bus de donnes.

l'horloge de rception regarde chaque demi-priode l'tat de la ligne rception de donnes. Ds que la ligne rception de donnes passe 0, un
dbut de communication est suppos, l'horloge vrifie qu'il s'agit bien d'un bit start en vrifiant que la ligne rception de donnes est toujours 0
aprs une demi-priode.

On rcupre la valeur des autres bits par lecture de la ligne rception chaque priode d'horloge.
Le registre d'tat
Donne des informations sur l'tat de la communication. On sait ainsi si ,
- Le registre de rception est plein
- Le registre de transmission est vide
- s'il y a une erreur de parit (s'il existe une diffrence entre le bit de parit calcul par le rcepteur partir des bits d e donnes reues et bits de
parit mis)
- s'il y a une erreur de format (la ligne n'est pas 1 au moment o le rcepteur devrait lire les bits de stop)
Le registre de commande:
Permet de dfinir le protocole de communication (vitesse, nb de bits de donnes, parit)
Les signaux de commande du modem:
Permettent d'tablir un code de poigne de main (hand-shaking)

Nouvelle section 1 Page 7

1)RTS
2)CTS
3)mission de donnes
1)DSR
2)DTR
3)rception de donnes

V) Les techniques de gestion des E/S


A chaque E/S correspond 1 ou plusieurs tches effectuer:
Exemple d'un PC: clavier, souris, moniteur, Modem, imprimante, HP, micro
A chaque tche correspond un sous-programme. Le P ne peut excuter qu'un sous-programme la fois. c'est au programmeur de dfinir les instants
d'xcution de chaque sous-programme= Ordonnancement.
Il existe deux grandes techniques pour grer les E/S:
- La scrutation
- Les interruptions
1) La scrutation
Le P interroge les interfaces tour de rle pour savoir s'il doit faire quelque chose pour elles.
Le P sait si l'interface demande quelque chose en lisant son registre d'tat.
Ex: l'interface srie indique qu'elle est prte mettre ou qu'une donne reue est disponible en positionnant un bit d'tat.
Boucle de scrutation:
Tq non fin
Lire reg. tat interface 1
Si bit x=1 alors traitement x
Si bit y=1 alors traitement y
.
.
.
Lire reg tat interface 2
Si bit w=1 alors traitement w
Si bit z=1 alors traitement z
.
.
.
.
.
.
Fin tq

Avantages:
- Pas de matriel supplmentaire
- La scrutation est synchrone avec l'excution du programme. On sait exactement combien de temps on mettra pour rpondre un vnement.
Inconvnients:
- Le temps de rponse un vnement peut tre long
- On perd du temps interroger des dispositifs qui ne demandent rien
2) La technique des interruptions
Ce sont les interfaces qui d'elles mme indiquent au P qu'elles ont besoin qu'on s'occupe d'elle par une ligne de communication spcifique appele
interruption

Le traitement des interruptions


A chaque instruction le P regarde l'tat de la ligne INTR
Si la ligne INTR est active:
- Le P termine l'instruction en cours
- Il sauvegarde dans la pile l'adresse de l'instruction suivante plus le contenu d'autres registres
- Il excute le sous programme qui correspond l'interruption

Nouvelle section 1 Page 8

- Il excute le sous programme qui correspond l'interruption


- Il recharge de la pile l'adresse de reprise du programme principal.
Ex:
prg principal
_____
_____
1
_____
INTR _____
_____
_____
_____
3
_____
______
fin prg principal

Prg d'interruption
______
______
2 ______
______
______
______
Fin prg d'interruption

Identification de l'origine de l'interruption


- Identification logicielle
chaque fois que le P reoit un signal d'interruption , il lit les reg d'tat des interfaces pour savoir laquelle a gnr l'interruption.
- Identification matrielle
On utilise un composant matriel supplmentaire capable de recevoir plusieurs demandes d'interruption, d'en dterminer l'origine et de fournir
l'adresse du programme d'interruption excuter au P.

Il faut crire autant de programmes d'interruption qu'il y a d'interruptions possibles. Les adresses de chaque programme d'interruptioin sont ranges
un endroit prcis de la mmoire table des vecteurs.

Le contrleur d'interruption regarde en permanence quelles sont les lignes d'interruption qui passent 1. ds qu'il en voit une passer 1, il envoie le
signal INTR au P et dpose sur le bus de donnes le numro de vecteur correspondant.
Le P n'a plus qu' lire le contenu de ce vecteur pour avoir l'adresse du programme d'interruption excuter.
Priorit des interruptions
La priorit des interruptions dtermine l'interruption traiter en premier lorsqu'il y a plusieurs interruptions simultanes.
Elle peut-tre dfinie par le programmeur.
Masquage des interruptions
Il est posssible de ne pas prendre en compte certaines interruptions dans certaines parties du programme par l'utilisation d'instruction ou de mots de
commande particuliers.
STI: autorise les interruptions
CLI: masque les interruptions

Nouvelle section 1 Page 9

You might also like