Vous êtes sur la page 1sur 117

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

"Microprocesseur

6809"

Plan du cours
I.1 Introduction
I.2 Architecture du microprocesseur
I.3 Architecture externe
Le schma fonctionnel
LUAL
Laccumulateur
Le compteur d'instructions
Le registre d'adresses
Le registre d'instructions
Le registre d'tat
Les registres temporaires de l'UAL
Les registres gnraux
La logique de contrle
II. Introduction au jeu d'instructions du microprocesseur
Le jeu d'instructions
Le code mnmonique
Les modes d'adressage
la pile
III. Les interruptions
IV. Les interfaces
le P.I.A. (Interface parallle)
Les mmoires
l'A.C.I.A. (Interface srie)

Master en Contrle et instrumentation

Page 1

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Historique
Le microprocesseur est l'aboutissement de progrs technologiques tant dans les
domaines mcanique, informatique et lectronique.
Quelques dates :
1690 : Pascal invente la machine calculer entirement
mcanique (addition et soustraction)
1800 : Jacquart invente le mtier tisser avec cartes
perfores.
1810 : Invention de l'orgue de barbarie (succession de cartes
perfores).
1940 : Premier ordinateur relais mcaniques (Navy)
1946 : Premier ordinateur tubes vide (1800).
1948 : Progrs de la physique quantique avec dcouverte de
l'effet transistor.
1950 : Ralisation des premires mmoires ferrites.
1958 : Dveloppement du premier circuit intgr (4 5 tr/puce).
1964 : Ordinateur transistors ( base de circuits TTL : 50
transistors dans une puce).
1970 : Premiers circuits L.S.I.- naissance du premier
microprocesseur 4 bits avec 1000 transistors sur une puce.
1975 : Naissance du microprocesseur Motorola 6800 (8 bits).
1980 : Apparition du microprocesseur 16 bits avec 50000
transistors sur la puce.
1984 : Apparition du microprocesseur 32 bits avec un million de
transistor sur la puce.
1994 : Apparition du Pentium avec 3,5 millions de transistors.
C'est en 1971 que le premier microprocesseur est sorti des laboratoires d'Intel.
Travaillant sur 4 bits et d'une puissance faible, l'intrt de ce nouveau
composant lectronique ne fut pas vident jusqu' ce que l'ide de le
transformer en calculatrice fut trouve.
Sept ans plus tard, l'arrive du 8088 multiplie dj cette puissance de calcul par
200.
Cette date correspond la naissance des vritables micro-ordinateurs. Arrivent
ensuite les microprocesseurs 68000 et 80286 (16 bits) avec les Macintosh et
P.C. que nous connaissons. Ils ont introduit l'image et le son.
Ensuite, tout n'est plus qu'une question de course la puissance de calcul.
Chaque bond technologique apporte sont innovation. Aujourd'hui, le multimdia
puis le 3 D et le temps rel. Demain, le monde virtuel.

Master en Contrle et instrumentation

Page 2

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Principes de base
Les premiers automatismes taient raliss partir de la logique cble selon le
synoptique suivant :

Les systmes logique cble sont conus l'aide de circuits intgrs logiques.
Certains de ces circuits font appel :

(Les sorties sont dfinies uniquement partir des variables d'entre)

(Les sorties dpendent toujours des entres mais aussi des tats antrieurs)

Master en Contrle et instrumentation

Page 3

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le fonctionnement n'est plus dfini par un ensemble de circuits logiques, cbls


entre eux, mais par une suite ordonne d'instructions stockes en mmoire et
gres par cet lment.
Nouveau synoptique :

Principe de la logique programme


Illustration partir d'un circuit simple constitu de 3 cases mmoires et
3 portes logique ET, OU et NON.
On se propose de raliser la fonction : A exclusif B
Schma :

Initialisation [M1] = A et [M2] = B


Master en Contrle et instrumentation

Page 4

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Droulement :

Master en Contrle et instrumentation

Page 5

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le microprocesseur
Dfinition : Le microprocesseur, not aussi M.P.U. (Microprocessor unit) ou
encore C.P.U. (Central Processing Unit) est un circuit intgr complexe
appartenant la famille des VLSI (Very Large Scale Intgration) capable
d'effectuer squentiellement et automatiquement des suites d'oprations
lmentaires.
Son rle : Ce circuit remplit deux fonctions essentielles :

Le traitement des donnes


On parle d'unit de traitement. Cette fonction est ddie l'U.A.L. Elle
concerne la manipulation des donnes sous formes de transfert, oprations
arithmtiques, oprations logiques....

Le contrle du systme
Cette fonction se traduit par des oprations de dcodage et d'excution des
ordres exprims sous forme d'instruction.

Puissance d'un microprocesseur


Dfinition : La notion de puissance est la capacit de traiter un grand nombre

d'oprations par seconde sur de grands nombres et en grande quantit.


Intrinsquement la puissance se joue donc sur les trois critres suivants:
La longueur des mots : donnes et instructions (on parle de largeur du bus
des donnes).
Le nombre d'octets que le microprocesseur peut adresser (on parle de
largeur du bus des adresses).
La vitesse d'excution des instructions lie la frquence de
fonctionnement de l'horloge de synchronisation exprime en MHZ.
Laspect dimensionnel renseigne assez bien de la puissance du composant.

Master en Contrle et instrumentation

Page 6

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Familles des Microprocesseurs:

Systme base du microprocesseur 6809.

Master en Contrle et instrumentation

Page 7

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Description du microprocesseur 6809 :


Le microprocesseur 6809 est un processeur 8 bits, de haute gamme,
dont l'organisation interne est oriente 16 bits. Il est fabriqu en technologie
MOS canal N et se prsente sous la forme d'un botier DIL 40 broches. Il est
mono- tension (5V). Il existe en deux versions diffrencies par l'horloge.
Le 6809 est rythm par une horloge interne (f=1 MHZ, 1.5 MHZ et 2 MHZ).
Le 6809E est rythm par une horloge externe.
Ce dernier est adapt aux applications multiprocesseur. Il prsente la
particularit de pouvoir tre synchronis par une horloge extrieure.
Compatibilit complte entre les deux versions.

Master en Contrle et instrumentation

Page 8

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Prsentation du brochage :

Lalimentation (Vss - Vcc )


Le bus des donnes 8 bits (Do D7) : Ces huit broches sont
bidirectionnelles. Elles permettent la communication avec le bus des
donnes interne du microprocesseur. Chaque broche peut "piloter" une (1)

Master en Contrle et instrumentation

Page 9

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

charge TTL et 8 entres de circuits appartenant la famille 6800. Le bus


est en logique trois (03) tats.
Le bus des adresses 16 bits (Ao A15) : Ces broches unidirectionnelles
transfrent l'adresse 16 bits fournie par le microprocesseur au bus
d'adresse du systme. Mmes caractristiques lectriques que pour le bus
des donnes. Bus en logique trois tats.
NB : les adresses sont valides sur le front montant de Q.
Le bus de contrle :
des

: Cette broche indique le sens de transfert


donnes sur le bus des donnes. Ligne logique 3 tats.

Cette ligne est valide sur le front montant de Q.


- Les lignes d'tat du bus : BA (Bus Available) et BS (Bus State)
Information qui permet de connatre l'tat du microprocesseur tout
moment.

1er cas :
Le microprocesseur est en fonctionnement normal, il gre les bus d'adresses
et de donnes.
2eme cas :
Le microprocesseur est en phase de reconnaissance d'interruption pendant
deux cycles. Cet tat correspond la recherche des vecteurs d'interruption :
Re set , NMI , IRQ , SW1, 2 et 3.
3eme cas :
Ce signal apparat lorsque le microprocesseur rencontre l'instruction de
synchronisation externe (niveau bas sur SYNC). Il attend alors cette
Master en Contrle et instrumentation

Page 10

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

synchronisation sur une des lignes d'interruption. Les bus sont en haute
impdance pendant ce temps.
4eme cas :
Correspond l'arrt du microprocesseur (niveau bas sur HALT ). Le
microprocesseur laisse la gestion des bus des donnes et des adresses un
circuit annexe (contrleur de DMA). Les bus sont en haute impdance.
La ligne BA au niveau haut indique que les bus sont en haute impdance.
Broche d'initialisation Re set : Un niveau bas sur cette broche entrane
une rinitialisation complte du circuit.
Consquences :
Linstruction en cours est arrte ;
Le registre de pagination (DP) est mis zro ;
Les interruptions IRQ et FIRQ sont masques ;
Linterruption non masquable NMI est dsarme ;
Pour que cette ligne soit active, elle doit tre maintenue un niveau bas
durant un temps suffisamment long (plusieurs cycles d'horloge).

Le schma adopt est gnralement le suivant :

Le P.C. est initialis avec le contenu des vecteurs d'initialisation qui se


Trouvent aux adresses $FFFE et $FFFF. Ce contenu reprsente l'adresse du
dbut du programme qui sera Excut par le microprocesseur.

Master en Contrle et instrumentation

Page 11

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

La broche : HALT (Arrt du microprocesseur).


Un niveau bas sur cette broche provoque l'arrt du microprocesseur (mais
la fin de l'excution de l'instruction en cours). Il n'y a pas perte des donnes.
(BA = BS = 1)
Dans ce cas :
Les demandes d'interruption IRQ et FIRQ sont inhibes
Les demandes d'accs direct (DMA) la mmoire sont autorises.
Les demandes d'interruptions Re set et NMI sont prises en compte mais
leur traitement est diffr.
Les broches d'interruption :

NMI (No Masquable Interrupt)


IRQ (Interrupt Request)
FIRQ (Fast Interrupt Request)
Entres (actives sur un niveau
bas) qui peuvent interrompre le
fonctionnement normal du microprocesseur sur front descendant de Q.
Entres d'horloge XTAL et EXTAL (Extension crystal) :

La frquence du quartz (horloge)


microprocesseur.

est quatre fois la frquence du

Eout : reprsente le signal d'horloge commun au systme. Il permet la


synchronisation du microprocesseur avec la priphrie.
Qout : reprsente le signal d'horloge en quadrature avec Eout.
Les donnes sont lues ou crites sur le front descendant de Eout.
Les adresses sont correctes partir du front montant de Qout.

Master en Contrle et instrumentation

Page 12

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Broches complmentaires du bus de contrle :


MRDY (Memory ready) : Cette broche de commande permet d'allonger la
dure de Eout pour utiliser des mmoires temps d'accs long. Active sur
un niveau bas. l'allongement est un multiple de un quart de cycle et sa
valeur maximale est de 10 cycles.
DMA/BREQ : (Direct Memory Acces/Bus Request), Cette broche permet
de suspendre l'utilisation des bus du microprocesseur, pour faire de
l'accs direct ou du rafrachissement mmoire.
Fonctionnement :
Pendant que Q est au niveau haut (si DMA/BREQ bas) cela entrane l'arrt du
microprocesseur la fin du cycle en cours ... et non de l'instruction.
(BA = BS = 1 ce qui veut dire que tous les bus sont en haute impdance). Le
circuit ayant gnr cette commande dispose de 15 cycles machines avant que
le microprocesseur ne reprenne le contrle des bus.

Broches spcifiques au 6809 E


Entres d'horloge : EIN et QIN, Ce sont deux broches dans
lesquelles on applique des signaux identiques Eout et Qout du 6809.
Ces signaux doivent aussi tre fournis l'ensemble du systme
(signaux de synchronisation).
TSC (Tree States Control) : Cette broche a le mme rle que
l'entre DMA/BREQ prcdente. Possibilit de faire du DMA afin de
raliser des oprations de : rafrachissement
Partage de bus avec un autre microprocesseur
LIC (Last Instruction Cycle) : Cette broche de sortie est l'tat
haut pendant le dernier cycle de chacune des instructions excutes
par le microprocesseur. Le cycle qui suit ce signal est donc toujours un
cycle de recherche de code opratoire dune instruction.
Cette sortie au niveau haut signifie que le microprocesseur utilisera les bus
au cours du cycle suivant. La nature prdictive de ce signal permet
d'amliorer le fonctionnement d'un systme multiprocesseur bus partag.
Elle permet un contrle efficace des ressources communes d'un dispositif
multiprocesseur.
AVMA (Advanced Valid Memory Access) : (Contrle des ressources
communes en multiprocesseur), C'est une broche de sortie qui signale
un prochain accs au bus par le microprocesseur.
Master en Contrle et instrumentation

Page 13

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

BUSY (Occupation des bus) : Sortie mise au niveau haut pendant les
instructions du type : lecture, criture et excution du premier octet
d'un oprande constitu de deux octets (une adresse par exemple).
Dans un systme multiprocesseur, ce signal indique le besoin pour un
microprocesseur de disposer des bus au cours du prochain cycle pour
assurer l'intgrit de l'opration en cours. Cela vite l'adressage
simultan d'une mme zone mmoire par 2 microprocesseurs.
On ne doit pas activer TSC quand BUSY est actif.
Exemple d'application :

Architecture interne du microprocesseur 6809 :

Master en Contrle et instrumentation

Page 14

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Architecture interne du 6809


L'Unit Arithmtique et Logique :
Son rle : Ce circuit permet de traiter et tester les donnes. Toute
instruction qui modifie une donne fait toujours appel l'UAL. L'entre de
L'UAL est connecte au bus interne via un registre "temporaires" et un
registre particulier appel "accumulateur". La sortie de l'UAL est connecte
uniquement l'entre de l'accumulateur.
Noter :
Les deux entres sont prcdes par une mmoire tampon. On les appelle
encore des registres tampons ou verrou. Ces registres permettent de stocker
des octets aux entres de l'UAL. L'UAL tant constitu d'une logique
combinatoire, elle est dpourvue de moyen propre de stockage.
Ce type de registre ne peut tre manipul par le programmeur. Il lui est
totalement transparent.
La logique de contrle :
Appel encore Squenceur ou Unit de Contrle (U.C.)
Son rle : Permet tous les lments constitutifs du microprocesseur de
travailler ensemble et dans l'ordre.
Commentaires : La logique de contrle est pilote par le Registre
d'Instruction via le dcodeur d'instruction. Cette unit joue en quelque sorte

Master en Contrle et instrumentation

Page 15

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

un rle d'intendance puisqu'elle dcide de la disponibilit du bus tel ou tel


lment logique.
La logique de contrle possde une architecture complexe et trs
spcialise. L'lment central est reprsent par le dcodeur d'instructions
qui dcode les informations (premier octet) stockes dans le R.I. pour
gnrer les signaux ncessaires l'excution de l'instruction. La logique de
contrle gnre sur les lignes de contrle des niveaux logiques qui activent
les diffrents circuits environnant tels que mmoires et circuits I/O.
Cette unit fournit, partir d'un signal de rfrence qui est l'horloge,
tous les signaux de synchronisation utiles au bon fonctionnement de
l'ensemble. Cette horloge est cre partir d'un oscillateur interne qui utilise
un signal en provenance d'un quartz externe.
Deux actions complmentaires noter :
Le contrle de mise sous tension du microprocesseur (initialisation
des registres).
Le traitement des interruptions.
Rsum : Dune manire gnrale le rle de lunit de commande est Cherche,
dcode et excute les instructions :
Compose de circuits logiques et de temporisations, elle gre
le
fonctionnement et la synchronisation de tout le systme en gnrant le signal
d'horloge et les signaux internes ou externes (bus des commandes) au
microprocesseur.
Elle permet grer la squence le droulement des instructions
Elle cherche l'instruction dans la mmoire en envoyant l'adresse avec un
signal de lecture la mmoire
Elle dcode l'instruction et dtermine l'opration excuter
Gnre les signaux ncessaires l'excution de l'instruction
Prparation de l'instruction suivante.
Le Registre d'Instructions RI :
Sa tche : Le registre d'instructions contient le premier octet de
l'instruction en cours d'excution.
Commentaires :
Le registre est charg pendant le cycle de base extraction-excution. Il
reoit l'information (octet) grce au bus de donnes auquel il est connect.
L'information qu'il "capture" sur le bus des donnes est utilise par le
dcodeur d'instructions. Suivant le protocole ci-dessous :
La donne extraite de la mmoire est stocke dans le R.I. (c'est la phase
extraction). Ensuite ce contenu est interprt par le dcodeur d'instructions
qui agit alors sur la logique de contrle (c'est la phase excution).
Master en Contrle et instrumentation

Page 16

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Cet octet indique au microprocesseur deux choses :


Une action (une lecture, une criture ou autre ...)
Un lieu d'action (un registre, un accumulateur, une case mmoire...)
Le rsultat de cette interprtation se traduit par des niveaux logiques sur le
bus de contrle.

L'accumulateur :
C'est le registre le plus important du microprocesseur, il sert
systmatiquement lorsque le microprocesseur a besoin de "manipuler" des
donnes. La plupart des oprations logiques et arithmtiques sur les donnes
font appel au couple "UAL - accumulateur" selon la procdure suivante:

Il en est de mme pour les dplacements et transferts des donnes d'un


endroit un autre comme :
De mmoire mmoire.
De mmoire units d'entre-sortie (I/O).
Cette action se fait en deux temps : Source Vers Accumulateur et ensuite
Accumulateur vers destination.
Les instructions supportes par un accumulateur sont trs nombreuses. Au
niveau de la programmation, il reprsente une grande souplesse d'utilisation!
Les autres registres ne permettent que des oprations limites. Certains
microprocesseur, possdent des accumulateurs de longueur double tel D chez
Motorola et HL chez Intel - dissocis en deux et gnralement baptiss
individuellement A et B ou H et L respectivement.
Gros avantage prsent par un microprocesseur possdant plusieurs
accumulateurs : les oprations logiques et arithmtiques se font entre
accumulateurs limitant ainsi les accs (transferts) avec l'extrieur.
Les deux registres A et B sont interchangeables (mme rle/instruction)
sauf pour les instructions ABX et DAA et les oprations sur 16 bits.
Certaines instructions regroupent les registres A et B pour former un seul
accumulateur D de 16 bits. Dans ce cas l'accumulateur A reprsente l'octet
de poids fort et laccumulateur B loctet de poids faible.

Master en Contrle et instrumentation

Page 17

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le Compteur d'Instructions :
Appel encore Compteur Programme (P.C.) ou Compteur Ordinal (C.O.)

Son rle : Pointer TOUJOURS le premier octet d'une instruction.


Commentaires : Le programme excuter est une succession d'instructions
ordonnes (chaque instruction pouvant prend plusieurs octets!) qui se trouve
rang dans une zone mmoire, gnralement des adresses successives. Le
P.C. "repre" le premier octet de chaque instruction du programme. La taille
du PC a une longueur de 16 bits ce qui lui permet d'adresser 65536 adresses
mmoire soit 64 k octets (le champ mmoire).
A la mise sous tension, une valeur particulire est dpose sur le bus
d'adresses (Dans le cas du 6809, cette valeur est $FFFE). Le contenu des
cases mmoires ($FFFE-$FFFF) reprsente en gnral l'adresse o se trouve
le premier octet de la premire instruction du programme.
Les registres pointeurs :

Les registres d'index (registres de 16 bits) Les registres d'index X et Y

sont utiliss pour les modes d'adressage index. Les donnes - 16 bitscontenues dans ces registres servent de pointeur de donnes (adresses). Ces
adresses "peuvent tre modifies" par une constante, prise comme valeur de
dplacement (offset) qui permet alors de calculer une adresse effective.
[Le pivot + offset] cela revient [X] ou [Y] + le dplacement, le contenu de
ces registres peut-tre incrment ou dcrment pour grer des donnes
stockes sous forme de table.
Les registres S et U (registres 16 bits) :
- Le pointeur de pile S (Systme) est utilis automatiquement par le
microprocesseur pour mmoriser l'tat de tous ces registres internes dans le
cas o il doit excuter un sous programme (d'interruption ou non).
- Le pointeur de pile U (Utilisateur) est gr exclusivement par le
programmeur pour effectuer, avec facilit, le passage des paramtres entre
programmes et sous programmes, (nanmoins, il peut-tre utilis pour
sauvegarder un contexte mais cette fois, ce n'est pas automatique).
Les registre U et S peuvent faire office de pointeurs - registres d'index.
Gestion de ces pointeurs :
Ces registres "pointent" toujours le haut de la zone mmoire qui leur est
attribue, (haut dans le sens adresse la plus grande).
On appelle cette zone une pile. Cette pile fonctionne en mode LIFO (Last In
First Out).
Master en Contrle et instrumentation

Page 18

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Remarque : (Le fonctionnement type premier entr - premier sorti


s'apparente plus au fonctionnement d'un pipeline appel pile FIFO (First In
First Out)).

Le Registre de Codes Condition (CCR) :

Ce registre donne tout instant l'tat des indicateurs (ou Flag) du


microprocesseur. Il y a deux types d'indicateurs : Les indicateurs sur la
nature des rsultats lis aux manipulations des donnes et les indicateurs lis
au fonctionnement en interruption.

Prsentation des diffrents indicateurs :


CCRb0 : (indicateur de retenue baptis : C). Indique l'existence d'une
retenue lors d'une opration arithmtique effectue par l'ALU.
CCRb1 : (indicateur de dbordement baptis : V). Il est mis 1 si le rsultat
en complment 2 d'une opration arithmtique dborde.
CCRb2 : (indicateur de rsultat nul baptis : Z). Il est mis 1 si le rsultat de
l'opration est nul. Cet indicateur est affect par les instructions de
chargement, de stockage, des oprations arithmtiques et logiques.
CCRb3 : (indicateur de rsultat ngatif baptis : N). Il recopie le bit de poids
fort (MSB) de l'octet contenu dans le registre avec lequel on vient de
travailler.
(Un rsultat ngatif en complment 2 positionne ce flag 1).
CCRb4 : (indicateur de masque dinterruption (Interrupt Mask) baptis : I).
cest le bit de masque de linterruption IRQ ; la mise un du bit I masque
linterruption IRQ

Master en Contrle et instrumentation

Page 19

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

CCRb5 : (indicateur de demi-retenue (Half curry) baptis : H). Il reprsente


le bit de demi-retenue. Il est utilis par l'ALU comme indicateur de retenue
entre les bits b3 et b4 (retenue du demi-octet le moins significatif) dans le
cas d'une addition sur 8 bits. Ce flag est pris en compte dans l'instruction
DAA pour raliser l'opration d'ajustement dcimal.
CCRb6 : (indicateur de masque dinterruption FIRQ (Fast Interrupt Mask)
baptis : F). La mise un du bit F masque linterruption FIRQ.
CCRb7 : (indicateur de sauvegarde des registres dans la pile, baptis : E). La
mise un du bit E indique la sauvegarde des diffrents registres dans la pile.
Exemple de sauvegarde de tous les registres avec S :

Registre de page (DP):


Registre de 8 bits, est prvu pour tendre la possibilit dadressage direct
tout lespace mmoire sous contrle du logiciel. Le contenu de ce registre
apparat sur les lignes A15- A8 (poids fort du bus dadresse).

Master en Contrle et instrumentation

Page 20

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chapitre II :Programmation du 6809


II.1 Introduction :
Une instruction est code gnralement avec deux champ :
- champ d'opration (codeop)
- champ de code oprande

Code d'Instruction :

Code Opration Code Oprande


Une instruction peut tre simple : 1 octet, ou complexe : 4 octets.
La plupart des instructions permettent un traitement ou un dplacement des
donnes se trouvant en mmoire ou dans un registre.
L'ensemble des instructions de base, compris par le Registre d'Instruction, est
constitu de quelques 86 instructions. En tenant compte des variantes (modes
d'adressage) il atteint 1464 instructions.
1

Code opration

Octet1

Donne immdiate ou
Octet2
adresse dire cte /relative

Code opration

Octet1

Adresse sur 2 octets


ou
dplace me nt sur 2 octets

Octet2
Octet3

Octet2

Donne immdiate ou
Octet3
adresse dire cte /relative

Code opration

Octet1

Code opration

{
{

Adresse sur 2 octets


ou
dplace me nt sur 2 octets

Octet1
Octet2
Octet3
Octet4

Les divers modes de codage en mmoire des instructions et modes d'adressage.


Ces instructions font rfrence des donnes ou a des adresses de diverses
faons, ces rfrences tant les modes d'adressage dont dispose le
microprocesseur.

Master en Contrle et instrumentation

Page 21

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Structure d'une instruction :


Octeti

Octeti+1

Octeti+2

Octeti+3

code

post-octet

code oprande

facultatif

adresse

opratoire
ordre
oprations : arithmtique

expression directe ou indirecte

logique et de transfert

(modes d'adressage)

Dure d'une instruction : L'excution complte d'une instruction n'est pas


instantane, l'unit de mesure est la priode de l'horloge : encore appel
Cycle Machine .
Ex: Frquence de l'horloge E= 1 MHz donc T = 1 s.
La dure dpend de la complexit de l'instruction, son expression est :
= .
Mode de fonctionnement d'une instruction :
Excuter une instruction c'est en faite raliser le cycle suivant :

extraction- excution
Extraction : lecture de la donne en mmoire, = . avec priode de
l'horloge E
Il y a autant d'extractions que d'octets (code opratoire et code oprande)
constituant l'instruction.
Si m octets alors = .

Excution : traduction et interprtation de l'octet (code opratoire) une fois


extrait. Un octet donc = .

Master en Contrle et instrumentation

Page 22

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Linterprtation se fait selon le processus suivant :

Registre d'Instructi ons

D codeur d'Instructi ons

logi que de contrle


mi ssi on de si gnaux
vers le s circui ts

R/W
Registre
d'Adre sse s

Registre s
M moi re s Pri phri ques
e xtri eur

Compteur
A.L.U.
d'Instructions
i nt ri eur

Une priode TE supplmentaire est ncessaire pour raliser concrtement


l'opration demande.
La dure totale de l'excution d'une instruction est :
. + . + . ( + ).

Master en Contrle et instrumentation

Page 23

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le jeu d'Instructions
Les instructions
caractristiques.

sont

rparties

en

groupes

dtermins

par

leurs

Classification :
Instructions de traitement des donnes
Instructions arithmtiques
1. Addition (DAA, ABX, ADC)
2. Multiplication (MUL)
3. Soustraction (SBC, SUB)
Exemples :
ADDD #$1200 avec (A)=$10 et (B)=$01, c--d (D)=$1001

SUB A # $02 avec (A)=$04

Instructions logiques
1. Rotation droite et gauche (ROL, ROR)
2. Dcalage droite et gauche (ASR, LSR et ASL, LSL)
3. Les fonctions logiques de base (AND, OR, EOR)
4. Lincrmentation/dcrmentation et complmentation (COM - NEG NOP - INC - DEC - CLR)
Exemples :
AND B # $55 avec (B)= $AA

Master en Contrle et instrumentation

Page 24

Cours Microprocesseur 6809

ASLA

avec (A)=$80

ASRA

avec (A)= $81

ROLA

avec (A)= $81

Dr. Lachouri Abderrazek

Instruction de transfert de donnes


a) transferts internes entre registres (EXG - TFR)
b) transferts externes avec la mmoire (LD - ST)
Exemples :

EXG A, B avec (A)= $10 et (B)= $01

Master en Contrle et instrumentation

Page 25

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

TFR A, B

LDA #$80

LDX #$1000

LDX $1000 avec ($1000)=$AA et ($1001)=$55

STA $2000 avec ($2000)=$45 et (A)=$60

Instructions de tests et de branchements : ces instructions sont


utilises pour raliser des tests de bits et des comparaisons. Les contenus
mmoires et accumulateurs ne sont pas modifis. Les rsultats de ces
instructions agissent uniquement sur les indicateurs du registre dtat.
a) instructions de tests sur un bit / un octet (BIT, TST)
b) instruction de comparaison (CMP)
c) instruction de branchement conditionnel
(branchement
les indicateurs du CCR sont actifs
Master en Contrle et instrumentation

si

Page 26

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exemple :
CMPA
BCC
LDA
Loop LDB

END

#$20
Loop
#$10
#$AA

Instructions de branchement inconditionnel et de saut.


(provoquent la rupture de la squence sans condition)
a) saut relatif (BRA, BRN : 1 ou 2 octets)
b) saut absolu (JMP : 2 octets)
Exemple :
Debut CLRA
LDA
$1000
STA
$8000
BRA
Debut
Instructions dappel et de retour de sous-programme
Appel :
a) saut absolu (JSR)
b) saut relatif (BSR)
Retour : RTS
Le contenu (PC) sauvegard dans la pile est restitu dans le registre PC.
Reprise du programme lendroit o il a t interrompu.
Exemple :
CLRA
CLRB
LDA
STA
JSR
LDB
STB
HLT
SP1
LDA
STA
RTS

#$10
$1000
SP1
#$55
$1002
#$55
$2000

Master en Contrle et instrumentation

Page 27

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Instructions oprant sur les pointeurs U, S et X, Y.


a) Load effective adress (in register) : LEA.
Permet de manipuler des donnes sur 16 bits. Ces donnes reprsentent
gnralement des adresses.
Exemple :
LEAX avec (X)=$1010

Instructions oprant sur les pointeurs S et U


a) Empilement des registres dans la pile (PSH)
b) Dpilement des registres de la pile (PUL)
Aprs chaque sauvegarde/extraction,
dcrment/incrment de 1
Exemple :
PSHS A, X

le

pointeur

est

automatiquement

avec (S)= $1008, (A)= $22 et (X)=$2000

Dfinition d'une pile : Zone mmoire RAM gre par des pointeurs qui
permettent de transfrer rapidement des donnes dans des cases mmoires
selon un protocole bien tabli.
Ordre des actions :
Toujours suivie de loprande qui permet de slectionner les registres :

b7
PC U/S

b0
X

DP

CC R

e mpi lem en t
dpile me nt

Master en Contrle et instrumentation

Page 28

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Les modes d'adressage du 6809


Le microprocesseur 6809 possde 59 instructions de base. Combines avec le jeu
des modes dadressage (9 au total), elles fournissent 1464 codes opratoires
diffrents.
(Pour le 6800 ou 6802, on avait 72 instructions de base et 193 codes opratoire)
Les modes d'adressage sont :
ladressage
ladressage
ladressage
ladressage
ladressage
ladressage
ladressage
ladressage
ladressage

inhrent ou implicite
immdiat
tendu
tendu indirect
direct
par registre
index direct
index indirect
relatif

Au moyen des signaux quil gnre sur le bus dadresses, le microprocesseur a la


possibilit dadresser les divers circuits mmoires et interfaces, qui lui sont
connects au travers des bus afin d'accder leur contenu.
Cet accs se traduit par une opration dadressage
Cette opration peut se faire de plusieurs faons grce la prsence de
diffrents modes dadressage.
Remarque : La puissance dun microprocesseur dpend de son jeu dinstructions
mais aussi des ses modes dadressage.

Ladressage inhrent ou implicite


Ladressage inhrent est utilis par les instructions qui agissent seulement sur
les registres internes du microprocesseur. Ici, le code opratoire de linstruction
contient toute linformation dadressage ncessaire (adresse source ou/et
adresse destination).
Exemples :

Adressage par registre :

ABX, ASL, ASR, CLR, INC

Master en Contrle et instrumentation

Page 29

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le code opratoire est immdiatement suivi dans la mmoire dun octet qui
dfinit un registre ou le jeu de registres devant tre utiliss par linstruction.
Cet octet est appel post-octet.
Le tableau ci-dessous prsente le codage de ce post-octet :
b7
b4

b3
b0

Source
Post-octet transfert/change

Exemple :

Destinataire

code

Registre

0000

0001

0010

0011

0100

0101

PC

1000

1001

1010

CCR

1011

DP

TFR X,Y (transfert de X dans Y).

CCR E F H I N Z V C
D

{AB
7

1F
12

X
Y
S
U
PC

Adr
Adr+1

Adr+2
DP
15

Master en Contrle et instrumentation

Page 30

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Adressage immdiat : La donne se trouve immdiatement aprs le code


opratoire de linstruction. La donne existe sous la forme de 1 ou 2 octets. (le
code opratoire est immdiatement suivi en mmoire de la donne sur laquelle
porte lopration)
Cet adressage concerne tous les registres internes sauf le DP.
Exemples :
LDA #$35

CCR E F H I N Z V C
D
X
Y
S
U
PC

{ AB

DP

35
7

adr

15

86
35

Adr
Adr+1

Adr+2

LDY#$1997

CCR E F H I N Z V C
D
X
Y
S
U
PC

{ AB

10
8E
19

1997

DP
15

97

adr
7

Adr+4

Adr
Adr+1
Adr+2
Adr+3
Adr+4

Adressage direct : On exprime le lieu de l'action par l'expression de l'adresse


effective. Le code oprande indique la partie basse de cette adresse. La partie
haute de ladresse est fournie par le contenu du Registre Direct de Page (DP).
Intrt : Ce mode ncessite moins de place mmoire (1 octet donc taille
mmoire rduite) par consquent lexcution de linstruction est plus rapide.
Master en Contrle et instrumentation

Page 31

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Remarque : Avec ce mode, la mmoire est dcoupe en 256 pages de 256 octets
chacune.
Ce mode est intressant dans le cadre des systmes dexploitation temps rel
multitche, o on alloue chaque tche une page.
Exemples :
LDA $97
Charge l'Accumulateur A avec le contenu dont l'adresse est forme
par [DP] et l'oprande
CCR E F H I N Z V C
D

adr

Adr+2

DP

Adr
Adr+1

X
Y
S
U
PC

96
97

37

A
B

37

1997

19

15

LDY $97
Charge le registre Y avec le contenu sur 16 bits dont les adresses
sont [DP] et partie basse et partie basse+1.
CCR E F H I N Z V C
D

10
9E
97

A
B

X
Y
S
U
PC

Adr
Adr+1
Adr+2

1960
adr

Adr+3

DP
15

19
7

Master en Contrle et instrumentation

19
60

1997
1998

Page 32

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Adressage tendu (direct) : On exprime le lieu de l'action par l'expression de


l'adresse effective. Le contenu des deux octets qui suivent immdiatement le
code opratoire spcifi reprsente ladresse (16bits) de la donne.
L'instruction occupe de 3 4 octets.
Exemples :
LDA $1997
Charge laccumulateur A avec le contenu de ladresse 1997.

CCR E F H I N Z V C
A
B

X
Y
S
U
PC

B6
19
97

37

adr

Adr
Adr+1
Adr+2
Adr+3

Adr+3

DP
15

37

1997

LDY $1997
Charge le registre Y avec le contenu de ladresse 1995.

CCR E F H I N Z V C
D

X
Y
S
U
PC

10
BE
19

A
B
0

97

1960

Adr
Adr+1
Adr+2
Adr+3
Adr+4

adr

Adr+4

DP
15

Master en Contrle et instrumentation

19
60

1997
1998

Page 33

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Adressage tendu indirect : Identique au mode dadressage tendu mais on


accde la donne en passant par une adresse intermdiaire spcifie aprs le
code opratoire. Les deux octets qui suivent le code opratoire pointent une
adresse dont le contenu reprsente ladresse de la donne recherche.
Le code opratoire est form de deux octets - le post-octet est toujours $9F.
Exemples :
LDA [$1997]
Chargement de laccumulateur A avec le contenu dont
ladresse se trouve en 1997-1998.
CCR E F H I N Z V C
D

A
B

A6
9F
19

1960

37

X
Y
S
U
PC

37

97

Adr
Adr+1
Adr+2
Adr+3
Adr+4

adr

Adr+4

DP
15

19
60

1997
1998

LDY [$1997]
Chargement du registre Y avec le contenu dont l'adresse
(partie haute) se trouve en $1997.

CCR E F H I N Z V C
D

{AB
7

X
Y
S
U
PC

37
60

10
AE
9F

1960
1961

3760
adr

19

Adr+2
Adr+3

97

Adr+4

19
60

1997
1998

Adr+4

DP
15

Adr
Adr+1

Master en Contrle et instrumentation

Page 34

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Adressage index
Deux possibilits :
Adressage index direct et indirect
Dans ce mode, les registres pointeurs (X, Y, U, S et PC) sont utiliss pour
effectuer le calcul de ladresse effective de la donne recherche.
Il existe 5 types dadressage index.
Ladressage index avec dplacement nul
Ladressage index avec dplacement constant (non nul).
Ladressage index avec dplacement accumulateur
Ladressage index avec auto-incrmentation/dcrmentation
Ladressage index relatif au Compteur Programme (PC)
Loctet qui suit le code opratoire (le post-octet) spcifie :
La nature de lindexation
Le type dadressage (direct ou indirect)
Le registre pointeur utilis.
Loctet qui suit le code opratoire (le post-octet) spcifie :
1. La nature de lindexation
2. Le type dadressage (direct ou indirect)
3. Le registre pointeur utilis.
Le tableau ci-joint montre le format de ce post-octet.

Master en Contrle et instrumentation

Page 35

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Tableau 1 : Format du registre post octet du mode dadressage index.


Les bits du registre post-octet
Mode dadressage
index
7
6
5
4
3
2
1
0
0
R
R
d
d
d
D
d
EA = R + 5 bits Offset
1
R
R
0
0
0
0
0
,R+
1
R
R
1
0
0
0
1
,R++
1
R
R
0
0
0
1
0
,-R
1
R
R
1
0
0
1
1
,--R
1
R
R
1
0
1
0
0
EA = R + 0 Offset
1
R
R
1
0
1
0
1
EA = R + ACCB Offset
1
R
R
1
0
1
1
0
EA = R + ACCA Offset
1
R
R
1
1
0
0
0
EA = R + 8 bits Offset
1
R
R
1
1
0
0
1
EA = R + 16 bits Offset
1
R
R
1
1
0
1
1
EA = R + D Offset
1
X
X
1
1
1
0
0
EA = PC + 8 bits Offset
1
X
X
1
1
1
0
1
EA = PC + 16 bits Offset
1
R
R
1
1
1
1
1
EA = [, Adresse]
Champ du mode dadressage
Champ indirect (bit signe B7=0)
Champ du registre RR
00=X
01=Y
10=U
11=S
X= dont care
0 not indiretc1
D=Offset
1 indirect

Index a offset constant:


5 bits (-16 +15) ;
8 bits (-128 127) ;
16 bits (-32768 +32767) ;
Constitution du post-octet.
b7=1
b4 : indicateur d'indirection o non
b4 = 1 : mode indirect
b4 = 0 : mode direct
b7=0
b4 reprsente le signe
b5 et b6 reprsente le registre concern
b0,b1,b2 et b3 indiquent le mode dadressage.
Master en Contrle et instrumentation

Page 36

Cours Microprocesseur 6809


Non indirect
Assembler
Postbyt
form
opcode

Type

Forms

Constant offset from R


(2s complement
offsets)

No Offset
5-bits off
8-bits off
16-bits off
A reg offset
B reg offset
Dreg offset
Incr by 1
Incr by 2
Decr by 1
Decr by 2
8-bits offset
16-bits off
16-bits adr

Accumulator offset
from R (2s complement
offsets)
Auto
increment/decrement
R
Constant offset from
PC (2s complement off)
Extended indirect

Dr. Lachouri Abderrazek

,R
n,R
n,R
n,R
A,R
B,R
D,R
,R+
,R++
,-R
,--R
n,PCR
n,PCR
-

1RR00100
0RRnnnnn
1RR01000
1RR01001
1RR00110
1RR00101
1RR01011
1RR00000
1RR00001
1RR00010
1RR00011
1xx01100
1xx11100
-

+
#

indirect
Assembler
Postbyt
form
opcode

0
1
1
4
1
1
4
2
3
2
3
1
5
-

0
0
1
2
0
0
0
0
0
0
0
1
2
-

[,R]
1RR10100
Defaults to 8-bits
[n,R]
1RR11000
[n,R]
1RR11001
[A,R]
1RR10110
[B,R]
1RR10101
[D,R]
1RR11011
Not allowed
[,R++]
1RR10001
Not allowed
[,--R]
1RR10011
[n,PCR]
1xx11100
[n,PCR]
1xx11101
[n]
10011111

+
#

4
7
4
4
7

1
2
0
0
0

6
4
8
5

0
1
2
2

R= X, Y, U or S
X= dont care
RR
00=X
01=Y
10=U
11=S

Adressage index dplacement nul


Le registre pointeur contient ladresse effective (A.E.) de la donne.
Un chargement pralable du registre est impratif.
Exemple : LDA O,X ou LDA ,X
CCR E F H I N Z V C
D
X
Y
S
U
PC

A
B

A6
84

37
7

Adr+2

1997

adr

Adr+1

DP
15

Adr
Adr+1

37

1997

Lgende de la valeur $84 soit 1 00 0 0100 du post-octet (ligne numro 6 du


tableau).
Adressage index dplacement constant
Master en Contrle et instrumentation

Page 37

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Ladresse effective de la donne est la somme du dplacement (constante en


complment deux) et du contenu du registre nomm pris comme base.
A.E. = [Registre nomm] + expression du dplacement.
Le contenu du registre nest pas modifi.

Syntaxe :

Un code opratoire + un post-octet + un oprande.

Trois formes sont possibles selon l'expression de la valeur de la constante qui


suit le post-octet.
Le dplacement s'exprime sur 4 bits + un bit de signe.
Le dplacement est compris dans l'intervalle [-161O 151O]
Le post-octet suffit.
Exemple : LDA -2, X

Code

A6
1E soit 0 00 1 1110
Le dplacement s'exprime sur 7 bits + un bit de signe. Le dplacement est
compris dans l'intervalle [-1281O 1271O]. Un octet supplmentaire aprs le
post-octet est ncessaire.

Exemple : LDA 53,X

Code

A6
88 soit 1 00 0 1000
35 (5316)

Le dplacement s'exprime sur 15 bits + un bit de signe.Le dplacement est


compris dans l'intervalle [-327681O +327671O]. Deux octets supplmentaires
aprs le post-octet sont ncessaires.
Exemple : LDA $997,X

Code

A6
89 soit 1 00 0 1001
09
97
Adressage index avec dplacement accumulateur.

Ce mode est semblable au mode prcdent except que la valeur du dplacement


(exprim en complment 2) se trouve dans un accumulateur afin dtre ajout
au contenu du registre pointeur nomm pour former lA.E. de la donne.
Les contenus de laccumulateur et du pointeur ne sont pas modifis par cette
addition.
Master en Contrle et instrumentation

Page 38

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Cest le post-octet qui spcifie laccumulateur utilis (pas doctet


supplmentaire).
Intrt : la valeur du dplacement est calcule par le programme en cours
dexcution, en fonction des vnements.
Exemples :
LDA B,X

avec post-octet = $85 soit 1 00 0 0101.

Chargement du registre A avec le contenu se trouvant l'adresse


exprime par la somme des contenus des registres B et X.

CCR E F H I N Z V C
D

A
B

A6
85

00
37

X
Y
S
U
PC

Adr
Adr+1
Adr+2

1960

+
adr

adr+2

00

1997

DP
15

LDX D,Y

avec post-octet = $AB soit 1 01 0 1011.

Charge le registre X avec le contenu se trouvant l'adresse exprime par


la somme des contenus des registres D et X ainsi que D+1 et X.

CCR E F H I N Z V C
D

A
B

X
Y
S
U
PC

AE
AB

09
97
0

2000
1000

Adr+2

adr

adr+2

DP
15

Adr
Adr+1

20
00

1997
1998

Master en Contrle et instrumentation

Page 39

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Adressage index avec auto-incrmentation/dcrmentation


Le registre concern contient ladresse de la donne. En plus de l'utilisation en
mode index avec dplacement nul, il est possible de modifier le contenu du
registre selon le mcanisme suivant :
La pr-dcrmentation
Le pointeur est dcrment de un ou deux avant utilisation.
La post-incrmentation : Le pointeur est incrment de un ou de deux aprs
utilisation. Dans tous les cas, le contenu du registre est modifi.
Intrt : Une incrmentation/dcrmentation permet de grer des tables de
donnes 8 bits (octets).
Deux incrmentations/dcrmentations permettent de grer des tables de
donnes de 16 bits (mots ou adresses).
Les aspects pr-dcrmentation et post-incrmentation sont trs utiles pour
crer des piles logicielles supplmentaires dont le comportement est identique
celui des piles S et U (hardware). (gestion efficace de blocs-mmoire organiss
en donnes 8 bits ou 16 bits)
Exemples :
LDA 0,-X

Code

A6
82 soit 1 00 0 0010

Chargement de l'accumulateur A avec le contenu se trouvant l'adresse


exprime par le contenu de X dcrment de 1.
LDY 0,--X

Code

10
AE
83 soit 1 00 0 0011

Chargement du registre Y avec le contenu se trouvant l'adresse exprime par


le contenu de X dcrment deux fois.
LDA 0,X+

Master en Contrle et instrumentation

Code

A6
80 soit 1 00 0 0000

Page 40

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chargement de l'accumulateur A avec le contenu se trouvant l'adresse


exprime par le contenu de X. Aprs le chargement, le contenu de X est
incrment de 1.
LDD 0,X++

Code

EC
81 soit 1 00 0 0001

Chargement de l'accumulateur D avec le contenu se trouvant l'adresse


exprime par le contenu de X. Aprs le chargement, le contenu de X est
incrment deux fois.

Adressage index relatif au compteur-programme (PC)


Un programme qui contient des instructions exprimes dans le mode tendu ou
direct, faisant rfrence des adresses situes lintrieur de sa zone
dimplantation en mmoire ne pourra pas tre excut si lon transfre son code
objet dans une autre zone mmoire.
On dit, dans ce cas, que le programme nest pas translatable.
Cet inconvnient peut-tre vit en utilisant le mode dadressage index avec
dplacement relatif au PC.
Syntaxe :
code opratoire destination-(adr+4), PC
l'expression de "destination-(adr+4)" est code en complment 2.
Exemples :
Chargement du registre A avec le contenu se trouvant l'adresse $1997.
Code

$1000

adr
adr+1
adr+2
adr+3

A6
8D
09
93

soit 1 00 0 1101

Justification :
Si adr=$1000 alors destination ($1997) est gale $1997-$1004 soit $993.
Master en Contrle et instrumentation

Page 41

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Il faut tenir compte de la longueur de l'instruction puisque le PC pointe toujours


l'instruction suivante.
LDA $FO,PC
Chargement de laccumulateur A avec le contenu mmoire dont ladresse est la
valeur de PC + $FO.
Code

adr
adr+1
adr+2

A6
8C
F0

soit 1000 1100

La donne se trouve l'adresse (adr+3)-$10 donc en amont du programme.


Avantage du mode index relatif au PC :
Si lensemble du programme est charg une autre adresse, le mme code objet
permet toujours de retrouver la donne dans le corps du programme et dobtenir
ainsi une excution correcte.
Le mme traitement appliqu lensemble des instructions du programme, le
rendra entirement translable et totalement indpendant de son implantation
physique dans la mmoire. Les adresses des donnes tant toutes refrences
par rapport la valeur relle du PC au moment de lexcution.
Lutilisation dune tiquette facilite l'emploi de ce mode.
Illustration :
LEAX ETIQ, PC
Chargement du registre X avec le contenu dont l'adresse est exprime par la
valeur issue de l'opration ETIQ-(adr+4).

Code du post-octet : $8D soit 1 00 0 1101

Master en Contrle et instrumentation

Page 42

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

CCR E F H I N Z V C
D

30

A
B

X
Y
S
U
PC

8D
00
11

1122

adr

Adr = $1000
Adr+1
Adr+2
Adr+3
Adr+4

adr+4

DP
15

11
12

ETIQ = $2015

Dplacement = $2015 -($1000+4) soit 11


Adressage index indirect.
Dans ce mode, lAdresse Effective est contenue lemplacement indiqu par le
contenu du registre dindex utilis auquel on additionne le dplacement.
Ici, lA.E. transite par une adresse intermdiaire.
Syntaxe :
A.E(H)={[Registre] + expression du dplacement}.
A.E(L)={[Registre] + expression du dplacement+1}.
Tous les modes dadressage index peuvent travailler en indirection sauf les
modes :
auto-incrmentation/dcrmentation par 1
dplacement constant cod sur 5 bits
Illustration :
LDA [$960,X]
Chargement de A avec le contenu mmoire dont ladresse est le contenu de
[X+960, X +961].

Master en Contrle et instrumentation

Page 43

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

CCR E F H I N Z V C
D

X
Y
S
U
PC

A6
99
09
60

37

A
B

1OOO

adr

Adr
Adr+1
Adr+2
Adr+3
Adr+4

adr+4

DP
15

19
97

1960
1961

37

1997

Quelques exemples :
Adressage index indirect avec dplacement nul.
LDA [0,X]
Chargement de A avec le contenu mmoire dont ladresse est [X, X +1].
Adressage index indirect avec dplacement constant.
LDA [$35,X]
Chargement de A avec le contenu mmoire dont ladresse est [X+$35, X +$36].
Adressage index indirect avec dplacement accumulateur.
Le dplacement exprim en complment deux est contenu dans A, B ou D.
LDU [D, Y]
Chargement du registre U avec le contenu mmoire dont ladresse est
[Y+D] et [Y+D+1]
Adressage index indirect avec double auto-incrmentation/dcrmentation.
ADDA [ , U++]
Master en Contrle et instrumentation

Page 44

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Addition du contenu de A et du contenu-mmoire dont ladresse est [U] et [U+1],


suivi de deux incrmentations.
Adressage index indirect relatif au compteur programme.
Les dplacements sont cods sur 8 ou 16 bits en complment 2.
LDA [$1997, PC]
Chargement de A avec la valeur dont ladresse est la valeur issue de
l'opration PC + $1997.
Adressage relatif
Technique dadressage utilise avec les instructions de branchement conditionnel
ou non.
Constitution :

adr. relatif court


adr. relatif long

code opratoire
1 octet
1 octet + $10

code oprande
1 octet
2 octets

Le code opratoire reprsente le test et le type de branchement (court ou long :


$10) raliser. Le code oprande reprsente le dplacement sign qui est ajout
au contenu du PC. Dans le mode d'adressage relatif court, le dplacement est
exprim sur un octet en complment deux : -128 dplacement +127
Dans le mode d'adressage relatif long, le dplacement est exprim sur deux
octets en complment deux : -32768 dplacement +32767
Ralisation de l'Adresse Effective : Adresse Effective = PC +2(4) + dplacement
(PC+2)- valeur dplacement (PC+2)+ valeur
Dans la syntaxe assembleur il faut rajouter un (L) comme prfixe dans le cas
d'un saut long.

Master en Contrle et instrumentation

Page 45

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Quelques exemples :
Adressage relatif court avec un dplacement positif.
BEQ LOOP
branchement si Z=1

?
CCR E F H I N 1 V C
D

27

A
B

33
0

X
Y
S
U
PC

Adr = $1960
Adr+1
Adr+2
+35

adr

op

Adr+2

$1997

DP
15

Valeur = $1997-($1960+2) soit $35


Adressage relatif long avec un dplacement positif.

?
CCR E F H I N 1 V C
D

10

A
B

X
Y
S
U
PC

26
16
7B

adr

Adr+2
Adr+3
Adr+4
+1675

Adr+4

DP
15

Adr = $1997
Adr+1

op
7

$3010

Valeur = $3010-($1997+4) soit $1675

Master en Contrle et instrumentation

Page 46

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Principe de fonctionnement :
Cellules mmoires

code opratoire

Compteur ordinal

Registre d'Instruction

Dcodage

Logique de contrle

Squenceur
de commandes

Excution

Fonctionnement squentiel
La ralisation de toute instruction s'effectue selon le cycle extractionexcution qui se dcompose comme suit :
1er temps : Phase d'extraction
Recherche de linstruction suivie du dcodage
2me temps : Phase d'excution
Excution du code opratoire
Cette tape est plus ou moins longue suivant la complexit de l'instruction.

Master en Contrle et instrumentation

Page 47

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chaque opration lmentaire constituant ce cycle est valide par un signal


dhorloge.
Illustration :
Extraction
(fetch)

Excution

Horloge E

cycle machine
dpot de
l'adresse
puis
stockage
du code
dans le R.I.
dcodage
du code

ralisation de
l'action
demande

Simulations :
Premier exemple :
$0000
$0002

LDA
ADDA

#$10
#$29

$0004

NOP

12

86
8B

10
29

Deuxime exemple :
$0000
$0003
$0006

LDA
ADDA
STA

$0014
$0016
$0018

#
3
3
3

$0009
$000C
$000F
$0012

LDA
ADCA
STA
BRA

$0015
$0017
$0019
$FE

3
3
3
2

Master en Contrle et instrumentation

~
5
5
5
5
5
5
3

Page 48

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Commentaire :
PC
00

0C

registre interne
intermdiaire

registre
des
adresses

00

00
00

15

0A
0B

Bus des adresses

Apport du 6809 dans la famille des microprocesseurs 8 bits :


Son architecture et ses diffrents modes dadressage permettent daborder des
concepts logiciels tels que :
La gnration de programmes translatables, rentrants et structurs.
Prsentation de ces concepts :
1- Dfinition d'un programme translatable
Ce type de programme fonctionne quelque soit ladresse laquelle il est implant
en mmoire. Ce ci est possible grce aux modes dadressage relatif (BSR, BRA)
et index par rapport au PC (LDA valeur, PC).
L'avantage de ce mode de programme est qu'il est utilisable dans n'importe
quelle application.
Le principe du programme relogeable existe aussi. Dans ce cas, ( la diffrence
du cas prcdent) les adresses relatives sont transformes en adresses absolues
aprs dition des liens.

Master en Contrle et instrumentation

Page 49

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

2- Dfinition d'un programme rentrant.


Un programme rentrant est un programme qui peut-tre utilis nimporte quel
niveau de priorit (Pour cela il doit tre interruptible).
Dans ce cas, le programme dinterruption peut utiliser la mme squence de
programme que celle quil vient dinterrompre. Il ne doit pas perturber les
informations et rsultats de la tche interrompue. ncessit dutiliser deux
zones de sauvegarde des donnes.
Le concept de rentrance est possible avec un microprocesseur possdant
plusieurs pointeurs de pile pour grer plusieurs zones de sauvegarde.
Rendu possible avec l'existence des instructions de manipulation de pile
hardware PSH et PUL et logicielle STA, -X et LDA, X+.
Equivalence :
LDX
STX

,U++
,--U

quivalent
quivalent

PULU
PSHU

X
X

LDA
STA

,U+
,-U

quivalent
quivalent

PULU
PSHU

A
A

Illustration :
Sauvegarde
du contexte
dans la pile U
Procdure

Appel
procdure

Programme
d'interruption

Sauvegarde
du contexte
dans la pile S

Master en Contrle et instrumentation

Page 50

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Les langages de programmation :


Un langage est un ensemble de rgles ou commandes utilises par un
programmeur afin de raliser un programme crit tout d'abord sous la forme
d'un algorithme et ensuite traduit par un organigramme.
Le langage volu
Les critres pris en compte lors du choix dun langage sont :
le temps de programmation
la maintenance
la transportabilit
Un programme crit dans un langage volu donn peut tre implant
"facilement" sur diverses machines sans rcriture. (compilateurs appropris)
Un programme crit dans un langage volu est traduit en binaire de deux
manires diffrentes.
En faisant appel soit un interprteur soit un compilateur.
Tous deux sont des programmes puissants de traduction.
Un interprteur agit pendant lexcution du programme. Chaque ligne du
programme est traduite en instruction binaire juste avant son excution.
A mesure quune ligne est excute, la traduction de la ligne suivante commence.
Un compilateur traduit dabord le programme en langage hexadcimal et ensuite
le code gnr est sauvegard sous la forme dun nouveau programme binaire.
(ressemble beaucoup un assembleur).
Le compilateur prsente linconvnient par rapport linterprteur, de ncessit
beaucoup plus de mmoire mais par contre il est beaucoup plus rapide
lexcution.
Lapprentissage dun langage volu ne rapporte strictement rien en ce qui
concerne la connaissance de larchitecture fondamentale dun microprocesseur.
Par contre la programmation langage machine ou assembleur ncessite une bonne
connaissance de larchitecture du microprocesseur.
Quelles sont les raisons pour lesquelles on choisit un langage moins volu?
Deux raisons cela :

Master en Contrle et instrumentation

Page 51

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Gain en place mmoire : Le langage volu ncessite pour effectuer la


mme tche beaucoup plus dinstructions machines.

Exemple : une simple instruction du type WRITELN peut faire appel une
centaine dinstruction. Ainsi plus despace-mmoire est ncessaire.
Gain de temps lexcution : Plus dinstructions de base implique un temps
dexcution plus lent moins de disposer de microprocesseur puissant
(rapide) avec un grand champ mmoire.
Le langage dassemblage
Ce langage est lintermdiaire entre un langage volu comme C ou Pascal et le
langage machine. Le langage dassemblage est li au microprocesseur. Chaque
processeur possde son propre ensemble dinstructions.
Ses avantages :
minimise le code
meilleur contrle sur le matriel.
[bien adapt lcriture des routines dentres/sorties]
Lassembleur est un petit compilateur. Ce langage sappuie sur labrviation de
terme anglais pour chaque instruction.
Exemple de la fonction de remise zro (CLEAR) : CLR
Vocabulaire
Le langage dassemblage : C'est un langage constitu dinstructions et de
pseudo-instructions. Un programme crit dans ce type de langage est une
suite de lignes symboliques crites dans un ordre logique.
Lassembleur : Cest un programme de traduction qui traite chaque ligne du
programme source pour fournir le code machine. Il dtecte les erreurs. Le
rsultat de son travail sappelle le programme objet.
Macro-assembleur : Cest un assembleur qui permet de traiter des macroinstructions : ensemble dinstructions regroupes sous formes de fonction.
Cross-assembleur : Cest un assembleur qui permet de dvelopper en
langage dassemblage, une application utilisant un microprocesseur donn
Master en Contrle et instrumentation

Page 52

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

laide dun systme possdant un microprocesseur diffrent. Le systme,


dit hte, engendre du code machine pour le microprocesseur cible.
Intressant pour les petits systmes car dans ce cas, on bnficie des
avantages dun systme plus important : Editeur, Systme dexploitation,
etc...
Dsassembleur : C'est un logiciel qui travaille linverse de lassembleur. A
partir dun programme machine, il construit le langage mnmonique.
Exemple : $86 traduction de LoaD accumulateur A.
Lassembleur 6809 : Le langage dassemblage est un langage de
programmation utilise dans les systmes de dveloppement, dispositifs daide
lcriture de programmes. Il permet de traduire un programme source crit en
langage symbolique (ou mnmonique) en un langage binaire.
Cette opration appele "Assemblage" est ralise par un programme appropri
appel "Assembleur".
Il gnre directement un programme excutable par le microprocesseur encore
appel "programme objet".
Comme tout langage, ce dernier possde une syntaxe et un vocabulaire propres
quil est indispensable de connatre afin dtablir le programme source.
Syntaxe du langage assembleur : Chaque ligne dinstruction du programme
comporte quatre parties appeles "champs". Chaque champ est spar par un
blanc (espace).
Illustration :

Etiquette

Code
Code
Commentaire
opratoire
oprande
_________________________________________

Master en Contrle et instrumentation

i+2

j+2

Page 53

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Dfinition des diffrents champs :


Etiquette : Ce champ nest pas obligatoire.
Une tiquette est un symbole dau plus 6 caractres alpha-numriques,
commenant obligatoirement par une lettre de lalphabet.
Dans le cas, o le champ tiquette est vide au moins un blanc doit prcder le
champ suivant. Si le 1er caractre de la ligne est une *, la ligne est alors
considre comme un commentaire.
Le rle de ltiquette est de permettre de reprer la position dune instruction
dans le programme.
Le champ opration : Il contient soit un code mnmonique de lopration
effectuer soit une directive dassemblage.
Le champ oprande : Il complte le champ opration et contient la "donne"
ncessaire lexcution de linstruction.
Sa syntaxe est varie et dpend du mode dadressage attribu linstruction.
On trouve :
des tiquettes (des noms)
des symboles (nom de registre)
des nombres
des expressions : Combinaison des 3 lments ci
dessus.
Les nombres peuvent tre reprsents dans diffrentes bases dcimale,
octale(@), hexadcimale ($) et binaire (%).
Lidentificateur de la base seffectue grce un suffixe ou un prfixe dans le
cas de certain assembleur (H).
Sans indication particulire, un nombre est interprt comme un dcimal.
Les expressions : Elles se composent dune suite de nombres et de symboles
spars par des oprateurs logiques, arithmtiques et des parenthses.
Elles servent spcifier une valeur selon les rgles de la logique et de
larithmtique.

Master en Contrle et instrumentation

Page 54

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le champ commentaire : facultatif, il permet de documenter le programme.


Tous les caractres dcriture disponibles dans l'diteur sont utilisables.
Les directives dassemblage :
Une directive dassemblage (ou pseudo-instruction) est une commande que le
programmeur utilise pour donner des directives lassembleur et qui agit sur le
processus dassemblage. On distingue 5 catgories de directive.
Affectation de symboles : EQU et SET
Gestion de lespace mmoire : ORG et RMB
Inscription de constantes en mmoire : FCB, FDB et FCC
Assistance la programmation : END et OPT
Prsentation des listings : TITLE et PAGE
EQU : affectation dune valeur un symbole ou tiquette
Syntaxe :
Symbole
EQU Expression
Rle :
Cette directive affecte au symbole situ dans le champ tiquette la valeur
(8 ou 16 bits) de lexpression place dans le champ oprande.
Les symboles utiliss avec EQU ne peuvent pas tre redfinis dans la suite du
programme.
SET : affectation temporaire dune valeur un symbole.
Rle :

SET est semblable EQU except que laffectation est temporaire. Les
symboles dfinis avec cette directive peuvent tre nouveau dfinis par la suite
dans le mme programme.
Exemples :
ARG
ARG
ARG

SET
SET
SET

$2
ARG*$2
ARG*ARG

ARG=$2
ARG=$4
ARG=$10(1610)

ORG : Origine (initialisation du compteur programme)


Syntaxe :

ORG Expression

Master en Contrle et instrumentation

Page 55

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Rle :
Dfinition dune adresse dorigine.
Charge le PC la valeur spcifie par lexpression situe dans le champ oprande.
Remarque : Plusieurs ORG peuvent-tre utiliss dans un mme programme
source.
On structure ainsi lespace mmoire en blocs :
le programme principal
les sous programmes
la gestion des interfaces
Chaque bloc est initialis par un ORG.
RMB : Reserve Memory Bytes (Rservation doctets en mmoire)
Syntaxe :

Symbole

RMB

Expression

Rle :
Provoque lors de lassemblage un "saut" du PC, dun nombre doctets gal
la valeur de lexpression.
Le but tant de rserver une zone mmoire pour un usage particulier.
FCB : Form Constant Byte (dfinition dune constante dun octet)
Syntaxe :

Symbole

FCB expr1, expr2...

Rle :

Inscrit la valeur exprime sur 8 bits des expressions du champ oprande


dans les cases mmoires dfinies par la valeur du PC.
Pour chaque criture en moire : PC = PC+1
Remarque : Les expressions peuvent tre numriques ou alphanumriques. Le
symbole ' plac devant le caractre, le dsigne comme tant alphabtique, dans
ce cas, le code ASCII est mis en mmoire.

Master en Contrle et instrumentation

Page 56

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exemples :
DATA

DIX

ORG
FCB
FCB
FCB
FCB
EQU
LDX
END

$4000
1,$62+$48,'A,'B
$FF
'4,$4
DIX+2
$A
DATA

$4000

01
AA
41
42
FF
34
04
0C
8E
40
00

FDB : Form Double Byte Constant (dfinition dune constante de deux octets)
Syntaxe :

Symbole

FDB

Exp1, Exp2,...

Rle :

Identique FCB mais cette fois, lexpression (valeur numrique et


symbole) reprsente une valeur sur 16 bits.
Le PC est incrment de 2 pour chaque mot crit.
Exemples :
DATA

DIX
FIN

ORG
FDB
FDB
FDB
FDB
FDB
FDB
EQU

$4000
$1997,$5432+$ABCD
'A,'B
'5,$5
10,$10
FIN
0
4

$4000

19
97
FF
FF
00
41
00
42
00
35

00
05
00
0A
00
10
00
04
00
00

FCC : Forme Constant Character string (dfinition dune constante chane de


caractres
Syntaxe :

Symbole

FCC

Master en Contrle et instrumentation

dlimiteur chane dlimiteur

Page 57

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Rle :
Inscrit en mmoire le code ASCII des caractres situs dans le champ
oprande entre les dlimiteurs. Et PC = PC+1 pour chaque caractre inscrit.
Remarque :
Les deux dlimiteurs doivent tre identiques et peuvent tre n'importe lequel
des caractres imprimables (on prend en gnral //).
L'expression
FCC /A/
est quivalent
FCB 'A
Illustration :
MESS

FCC
FCC
FCC
FCC

/FIN/
'LUNDI'
#MARDI#
252

$2000

46
49
4E
4C
55
4E
44

49
4D
41
52
44
49
35

END : fin d'assemblage


Syntaxe :

END

Rle :

Cette directive marque la limite du programme source.


Les lignes situes aprs cette directive sont ignores par l'assembleur.
PAGE : Saut de page
Syntaxe :

PAGE

Rle :

Fait avancer le papier de l'imprimante au dbut de la page suivante.


NAME : nom du programme
Syntaxe :

Master en Contrle et instrumentation

NAME PMAK

Page 58

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Rle :
Cette directive permet de donner un nom au programme qui apparait en
tte de page.
OPT : Option d'assemblage
Syntaxe :

OPT

ABS

Rle :
Cette directive fournit des complments d'informations lors de
l'assemblage. Les options sont crites dans le champ oprande et sont spares
par des virgules.
Diffrentes options :
ABS : ABSolu, le programme est crit avec un adressage absolu.
REL : RELogeable, le programme est crit avec un adressage relatif.
CRE : permet d'obtenir la table dite des rfrences croises.
L : demande l'impression du listing aprs opration d'assemblage termin.
Lopration dassemblage :
Elle seffectue gnralement en deux tapes (2 passes).
1re passe :
Consiste en une lecture de lensemble du programme source.
Au cours de cette phase, 3 analyses sont effectues :
Analyse lexicographique :
Compare le code opratoire une table interne (fichier comprenant les codes).
Analyse syntaxique :
Cette analyse dtecte :

Master en Contrle et instrumentation

les tiquettes manquantes


les codes opratoires errons
les oprandes manquants
Page 59

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Analyse smantique :
Cette analyse permet de dire si une ligne syntaxiquement correcte un sens.
Dtecte un symbole non dfini par ailleurs.
Lassembleur construit la table des symboles employs. Il regroupe tous les
symboles dfinis par le programmeur en leur donnant une valeur chacun deux
(Cration de la table des rfrences croiss).
Il gnre un code intermdiaire qui servira au second passage.
Les directives dassemblage sont galement interprtes.
2me passe :
Lassembleur gnre le code objet en tenant compte des adresses et des
donnes relles qui figurent dans la table des symboles.
3me passe :
Cette phase fournit le listing avec son code objet.

Master en Contrle et instrumentation

Page 60

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Plan adopt pour l'criture d'un programme


OPT
ABS
Dfinition des variables
DEBUT
EQU
$4000
TIRQ
EQU
$5000
TFIRQ
EQU
$6000
MEM
EQU
$2000
PIA
EQU
$EF20
Rservation des cases mmoires
ORG
MEM
MEM1
RMB
1
MEM2
RMB
2
PILE
RMB
100
PPILE
EQU
*
Rservation des ports
ORG
PIA
DDRA
RMB
1
CRA
RMB
1
Programme principal
ORG
DEBUT
LDS
#PPILE
"
"
BRA
*
Traitement des interruptions IRQ
ORG
TIRQ
"
"
RTI
Traitement des interruptions FIRQ
ORG
TFIRQ
"
"
RTI
Initialisation des vecteurs d'interruption
ORG
$FFF6
FDB
TFIRQ
FDB
TIRQ
FDB
TSWI
FDB
TNMI
FDB
DEBUT
END
Master en Contrle et instrumentation

Page 61

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Appel de lEditeur : EDITE


Exemples de commande :
BUILD fichier.ASM:1
LOAD fichier.ASM: 1

[si le fichier nexiste pas encore]


[si le fichier existe dj]

Appel de lassembleur : AS11


Exemple de commande :
AS11 fichier.ASM:
Si pas derreur, cration du fichier.S19.

Master en Contrle et instrumentation

Page 62

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Jeux dInstruction du 6809


Modes dAdressages
CC bit
Immdiat Direct Index tendu Inhrent
5 3 21 0
Instruction Mnemonic Op ~ # Op ~ # Op ~ # Op ~ # Op ~ #
Description
HNZVC
ABX
3A 3 1 X = B+X (Unsigned)
+ + ++ +
ADCA 89 2 2 99 4 2 A9 4+ 2+ B9 5 3
A = A+M+C
+ + ++ +
ADC
ADCB C9 2 2 D9 4 2 E9 4+ 2+ F9 5 3
B = B+M+C
+ + ++ +
ADDA 8B 2 2 9B 4 2 AB 4+ 2+ BB 5 3
A = A+M
+ + ++ +
ADD
ADDB CB 2 2 DB 4 2 EB 4+ 2+ FB 5 3
B = B+M
+ + ++ +
ADDD C3 4 3 D3 6 2 E3 6+ 2+ F3 7 3
D = D+M:M+1
+ ++ +
ANDA 84 2 2 94 4 2 A4 4+ 2+ B4 5 3
A = A && M
+ +0
AND
ANDB C4 2 2 D4 4 2 E4 4+ 2+ F4 5 3
B = B && M
+ +0
ANDCC 1C 3 2
C = CC && IMM
? ? ? ? ?
ASLA
48 2 1
8 +++ +
Arithmetic
ASL
ASLB
58 2 1
shift
8 +++ +
left
ASL
08 6 2 68 6+ 2+ 78 7 3
8 +++ +
ASRA
47 2 1
8 ++ +
Arithmetic
ASR
ASRB
57 2 1
shift
8 ++ +
right
ASR
07 6 2 67 6+ 2+ 77 7 3
8 ++ +
BITA 85 2 2 95 4 2 A5 4+ 2+ B5 5 3
Bit Test A (M&&A)
+ +0
BIT
BITB C5 2 2 D5 4 2 E5 4+ 2+ F5 5 3
Bit Test B (M&&B)
+ +0
CLRA
4F 2 1 A = 0
0 10 0
CLR
CLRB
5F 2 1 B = 0
0 10 0
CLR
0F 6 2 6F 6+ 2+ 7F 7 3
M=0
0 10 0
CMPA 81 2 2 91 4 2 A1 4+ 2+ B1 5 3
Compare M from A 8 + + + +
CMPB C1 2 2 D1 4 2 E1 4+ 2+ F1 5 3
Compare M from B 8 + + + +
10 5 4 10 7 3 10 7+ 3+ 10 8 4
Compare M:M+1
CMPD
+++ +
83
93
A3
B3
from D
11 5 4 11 7 3 11 7+ 3+ 11 8 4
Compare M:M+1
CMPS
+++ +
8C
9C
AC
BC
from S
CMP
11 5 4 11 7 3 11 7+ 3+ 11 8 4
Compare M:M+1
CMPU
+++ +
83
93
A3
B3
from U
4 3 9C 6 2 AC 6+ 2+ BC 7 3
Compare M:M+1
CMPX 8C
+++ +
from X
10 5 4 10 7 3 10 7+ 3+ 10 8 4
Compare M:M+1
CMPY
+++ +
8C
9C
AC
BC
from Y
COMA
43 2 1 A = complement(A)
++0 1
COM
COMB
53 2 1 B = complement(B)
++0 1
COM
03 6 2 63 6+ 2+ 73 7 3
M = complement(M)
++0 1
=>
CC = CC ^ IMM;
CWAI
3C
2
7
20
Wait for Interrupt
Master en Contrle et instrumentation

Page 63

Cours Microprocesseur 6809


DAA
DEC

EOR
EXG
INC
JMP
JSR

DECA
DECB
DEC
EORA
EORB
R1,R2
INCA
INCB
INC

88 2
C8 2
1E 8

0A
2 98
2 D8
2

0C
0E
9D

Dr. Lachouri Abderrazek

19 2 1 Decimal Adjust A
4A 2 1 A = A 1
5A 2 1 B = B 1
6 2 6A 6+ 2+ 7A 7 3
M=M 1
4 2 A8 4+ 2+ B8 5 3
A = A XOR M
4 2 E8 4+ 2+ F8 5 3
B = M XOR B
exchange R1,R2
4C 2 1 A = A + 1
5C 2 1 B = B + 1
6 2 6C 6+ 2+ 7C 7 3
M=M+1
3 2 6E 3+ 2+ 7E 4 3
pc = EA
7 2 AD 7+ 2+ BD 8 3
jump to subroutine

Master en Contrle et instrumentation

+
+
+
+
+
+

+0 +
++
++
++
+0
+0

+++
+++
+++

Page 64

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Jeux dInstruction du 6809


Modes dAdressages
Immdiat Direct Index Etendu Inhrent
Instruction Mnemonic Op ~ # Op ~ # Op ~ # Op ~ # Op ~ #
LDA 86 2 2 96 4 2 A6 4+ 2+ B6 5 3
LDB C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3
LDD
CC 3 3 DC 5 2 EC 5+ 2+ FC 6 3
10 4 4 10 6 3 10 6+ 3+ 10 7 4
LDS
LD
CE
DE
EE
FE
LDU
CE 3 3 DE 5 2 EE 5+ 2+ FE 6 3
LDX
8E 3 3 9E 5 2 AE 5+ 2+ BE 6 3
10 4 4 10 6 3 10 6+ 3+ 10 7 4
LDY
8E
9E
AE
BE
LEAS
32 4+ 2+
LEAU
33 4+ 2+
LEA
LEAX
30 4+ 2+
LEAY
31 4+ 2+
LSLA
48 2 1
LSL
LSLB
58 2 1
LSL
08 6 2 68 6+ 2+ 78 7 3
LSRA
44 2 1
LSR
LSRB
54 2 1
LSR
04 6 2 64 6+ 2+ 74 7 3
MUL
NEG

40
50
00 6 2 60 6+ 2+ 70 7 3

NOP
OR

12
ORA
ORB
ORCC
PSHS

PSH
PSHU
PULS
PUL
PULU
ROL

8A
CA
1A
34

2
2
3
5+

2 9A 4 2 AA 4+ 2+ BA 5 3
2 DA 4 2 EA 4+ 2+ FA 5 3
2
2

36 5+ 2
35 5+ 2
37 5+ 2

ROLA
ROLB

Master en Contrle et instrumentation

49
59

S = M:M+1

++0

U = M:M+1
X = M:M+1

++0
++0

Y = M:M+1

++0

S = EA
U = EA
X = EA
Y = EA
+
+
+
0
0
0

Logical
shift
left
Logical
shift
right

D = A*B
(Unsigned)
2 1 A = !A + 1
2 1 B = !B + 1
M = !M + 1
2 1 No Operation
A = A || M
B = B || M
C = CC || IMM
Push Registers
on S Stack
Push Registers
on U Stack
Pull Registers
from S Stack
Pull Registers
from U Stack
2 1 Rotate left thru
carry
2 1

3D 11 1
NEGA
NEGB
NEG

Description
A=M
B=M
D = M:M+1

CC bit
5 3 21 0
HNZVC
+ +0
+ +0
++0

+
+
+++
+++
+++
+ +
+ +
+ +
+

8 ++++
8 ++++
8 ++++
+ +0
+ +0
? ? ? ? ?

++++
++++

Page 65

Cours Microprocesseur 6809

ROR

ROL
RORA
RORB
ROR

09 6 2 69 6+ 2+ 79 7 3
46
56
06 6 2 66 6+ 2+ 76 7 3

RTI

SBCA
SBCB

82 2 2 92 4 2 A2
C2 2 2 D2 4 2 E2

STA
STB
STD

97 4 2 A7
D7 4 2 E7
DD 5 2 ED
10 6 3 10
DF
EF
DF 5 2 EF
9F 5 2 AF
10 6 3 10
9F
AF
80 2 2 90 4 2 A0
C0 2 2 D0 4 2 E0
83 4 3 93 6 2 A3

SEX

ST

STS
STU
STX
STY

SUB

SUBA
SUBB
SUBD
SWI

SWI

SWI2
SWI3

SYNC
TFR
TST

2 1
Rotate Right
2 1
thru carry

+
0
0
0

+++
+ +
+ +
+ +

Return from
? ? ? ? ?
Interrupt
Return from
39 5 1
subroutine
4+ 2+ B2 5 3
A=A-M-C 8 + + + +
4+ 2+ F2 5 3
B=B-M-C 8 + + + +
Sign extend B
1D 2 1
++0
into A
4+ 2+ B7 5 3
M=A
+ +0
4+ 2+ F7 5 3
M=B
+ +0
5+ 2+ FD 6 3
M:M+1 = D
++0
6+ 3+ 10 7 4
M:M+1 = S
++0
FF
5+ 2+ FF 6 3
M:M+1 = U
++0
5+ 2+ BF 6 3
M:M+1 = X
++0
6+ 3+ 10 7 4
M:M+1 = Y
++0
BF
4+ 2+ B0 5 3
A=A-M 8 + + + +
4+ 2+ F0 5 3
B=B-M
8 ++++
6+ 2+ B3 7 3
D = D - M:M+1 + + + +
3F 19 1
Software
interrupt 1
10 20 2
Software
3F
interrupt 2
11 20 2
Software
3F
interrupt 3
>=
Synchronize to
13
1
4
Interrupt
R2 = R1
4D 2 1
Test A
++0
5D 2 1
Test B
++0
6+ 2+ 7D 7 3
Test M
++0
3B 6/15 1

RTS
SBC

Dr. Lachouri Abderrazek

R1,R2
TSTA
TSTB
TST

1F 6 2

0D 6 2 6D

Master en Contrle et instrumentation

Page 66

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Legend:
+ Test and set if true,
OP Operation Code(Hexadecimal)
cleared otherwise
= Transfer from
- Not Affected
~ Number of MPU Cycles
H Half carry (from bit 3)
CC Condition Code Register # Number of Program Bytes
N Negative (sign bit):
: Concatenation
+ Arithmetic Plus
Z Zero (Reset)
|| Logical or
Arithmetic Minus
V Overflow, 2's complement && Logical and
* Multiply
C Carry from ALU
EOR Logical Exclusive or EA Effective Address:w
! Complement of M

Notes:
1. This column gives a base cycle and byte count. To obtain total count, add the values
obtained from the INDEXED ADDRESSING MODE table, in Appendix F.
2. Rl and R2 may be any pair of 8 bit or any pair of 16 bit registers.
The 8 bit registers are: A, B, CC, DP
The 16 bit registers are: X, Y, U, S, D, PC
3. EA is the effective address.
4. The PSH and PUL instructions require 5 cycles plus 1 cycle for each byte pushed or pulled.
5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instructions.
6. SWI sets I and F bits. SW12 and SW13 do not affect I and F.
7. Conditions Codes set as a direct result of the instruction.
8. Value of half carry flag is undefined.
9. Special Case Carry set if b7 is SET.

Instruction
BCC

Forms
BCC
LBCC

BCS

BCS
LBCS

BEQ

BEQ
LBEQ

BGE

BGE
LBGE

BGT

BGT
LBGT

Mode
Relative
OP
Description
24 3 /
2 Branch C=O
10 5l6)
4 Long Branch
24
C=O
25 3
2 Branch C= 1
10 56)
4 Long Branch
25
C=l
27 3
2 Branch Z=O
10 5(6)
4 Long Branch
27
Z=O
2C 3
2 Branch2Zero
10 5(6)
4 Long Branch2Zero
2C
2E 3
2 Branch > Zero
10 5(6)
4 Long Branch>Zero
2E

Master en Contrle et instrumentation

5 3 2 1 0
H N Z V C

Page 67

Cours Microprocesseur 6809


BHI

BHI
LBHI

BHS

BHS
LBHS

BLE

BLE
LBLE

BLO

BLO
LBLO

BLS

BLS
LBLS

BLT

BLT
LBLT

BMI

BMI
LBMI

BNE

BNE
LBNE

BPL

BPL
LBPL

BRA
BRN
BSR
BVC
BVS

BRA
LBRA
BRN
LBRN
BSR
LBSR
BVC
LBVC
BVS
LBVS

Dr. Lachouri Abderrazek

22 3
10 5(6)
22
24 3
10
24
2F
10
2F
25
10
25
23
10
23
2D
10
2D
2B
10
2B
26
10
26
2A
10
2A
20
16
21
10
21
8D
17
28
10
28
29
10
29

2 Branch rligher
4 Long Branch Higher
2 Branch Higher
or Same
4 Long Branch Higher
or Same
2 BranchsZero
4 Long BranchsZero

516)
3
5(6)
3
56)
3
5(6)

2 Branch lower
4 Long Branch Lower

3
5i6)

2 Branch Lower or Same


4 Long Branch Lower
or Same
2 Branch<Zero
4 Long Branch<Zero

3
5(6)

2 Branch Minus
4 Long Branch Minus

3
5(6)

2 Branch ZtO
4 Long Branch
Z0
Branch Plus
4 Long Branch Plus

"
5i6)
3
5
3
5

2
3
2
4

Branch Alwavs
Long Branch Always
Branch Never
Long Branch Never

7
2 Branch to Subroutine
9
3 Long Branch to Subroutine
3
2 Banch V=0
5(61 4 Long Branch
V=0
3
2 Branch V= 1
5(6) 4 Long Branch
V=l

Master en Contrle et instrumentation

Page 68

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chapitre III : Le fonctionnement en interruption


Dfinition : une interruption est une procdure qui permet de suspendre
l'excution d'un programme au profit d'un autre, avec la possibilit de
reprendre l'excution du programme initial l o il avait t suspendu.
Interruptions "matrielles"
Le microprocesseur est capable de rpondre des sollicitations extrieures.
Ainsi peut-il traiter des informations en "temps rel". Pour cela, le
microprocesseur est "coupl" au monde extrieur par des lignes sur lesquelles
s'effectue, de faon indterministe, un change de messages sous forme de
signaux logiques !
A partir des sollicitations extrieures, le microprocesseur doit changer "d'tat"
en fonction des priorits relatives de l'opration en cours et de celle qui est
demande. Selon le cas, il interrompt ou non le droulement "normal" du
programme.
Contrainte :
Si la demande est prise en compte, le microprocesseur doit tre capable de
traiter rapidement cette demande externe.
Le microprocesseur 6809 possde pour cela quatre lignes, baptises "entre
d'interruption" matrielles qui sont par ordre de priorit :
RESET : Rinitialisation du microprocesseur.
: Non Masquable Interrupt.
NMI
: Fast Interrupt Request.
FIRQ
IRQ

: Interrupt Request.

Ces entres sont actives sont un niveau "bas".


Rle du Registre de Code Condition
a- Fonction du flag I
*Masque concernant l'interruption IRQ.
Tableau

Master en Contrle et instrumentation

Page 69

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Lorsque ce flag est mis 1, le microprocesseur ne prend pas en compte les


demandes d'interruption arrivant sur la ligne IRQ. Avec ce type d'interruption,
le contexte total du microprocesseur (12 octets) est sauvegard sur la pile S.
b- Fonction du flag F
* Masque concernant l'interruption FIRQ.
Tableau

Lorsque ce flag est mis 1, le microprocesseur ne prend pas en compte les


demandes d'interruption arrivant sur la ligne FIRQ.
Ici, le contexte partiel du microprocesseur (3 octets) est sauvegard sur la pile
S. (seuls les contenus des registres PC et CCR sont concerns.
Mthode de changement de l'tat des flags I et F!.
On peut forcer l'tat des deux bits l'aide des instructions suivantes :
ANDCC d'une part et ORCC d'autre part !
Tableau

c- Fonction du flag E
Ce flag est positionn par le microprocesseur afin d'indiquer le type de
sauvegarde devant tre ralise (partielle ou complte). Il fait office en quelque
sorte de mmoire interne.

Master en Contrle et instrumentation

Page 70

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Tableau

Ce flag est utilis (sous forme de test), systmatiquement lors de l'instruction


RTI, par le microprocesseur, pour dterminer quelle action mener afin de
revenir proprement dans le programme suspendu (nombre de registres dpils).
Interruptions "logicielles :
Hormis les demandes d'interruptions matrielles, il existe d'autres causes
d'interruption de programme. Ce sont les interruptions "soft". Elles se
traduisent par des instructions par entire que l'on place dans les programmes.
Elles reprsentent des vnements "dterministes".
La sauvegarde du contexte est totale. On en dnombre trois, qui sont :
SWI (SoftWare Interrupt)
SWI2 (SoftWare Interrupt n2)
SWI3 (SoftWare Interrupt n3)
Les interruptions de synchronisation. Pour finir, le microprocesseur peut se
mettre en attente d'vnements extrieurs afin de synchroniser son volution
sur l'apparition de ces derniers.
Il y a une "pr sauvegarde" complte du contexte. Pour cela, on trouve les
instructions suivantes :
CWAI (attente d'interruption).
SYNC (attente de synchronisation).
Quelques remarques importantes :
Les lignes NMI, FIRQ, IRQ et RESET ainsi que l'instruction SWI
positionnent automatiquement le flag CCRb4 1 (masquage de l'IRQ).
Les lignes NMI, FIRQ et RESET ainsi que l'instruction SWI positionnent
automatiquement le flag CCRb6 1 (masquage de la FIRQ).
Rien n'empche de repositionner 0 ces flags si on le souhaite!
Les bits I et F tant positionns 1 lors de l'excution d'un programme
d'interruption, il est possible, nanmoins d'autoriser la prise en compte de
nouvelles interruptions en les repositionnant O.

Master en Contrle et instrumentation

Page 71

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Illustration :

Master en Contrle et instrumentation

Page 72

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Tableau rcapitulatif :
Interruptions :

Instructions d'interruption :

Traitement des interruptions :


Le traitement dune interruption se fait selon un protocole bien tabli que nous
allons dtaill. Ds la mise au niveau bas de la broche dinterruption, ou bien ds
la rencontre de linstruction SWI, le microprocesseur entame une "procdure
implicite", programme dans la silice, dont les organigrammes respectifs sont
reprsents plus loin.
Master en Contrle et instrumentation

Page 73

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

On remarque que chaque organigramme se termine par un chargement du PC avec


la valeur contenue dans le vecteur de linterruption demande. Ceci provoque un
saut ladresse correspondante.
Dans un systme simple et fig, o la demande dinterruption ne peut provenir
que dune seule source, et o lon nenvisage quun seul programme dinterruption,
il est possible dimplanter directement le dbut de ce programme ladresse
contenue dans le vecteur dinterruption. La sortie de la procdure implicite
aboutira directement lexcution du programme.
Dans ce cas gnral o plusieurs "utilisateurs" peuvent demander linterruption
et o un "utilisateur" au moins veut pouvoir choisir entre plusieurs programmes
dinterruption diffrents, la "procdure implicite" doit aboutir dabord un
programme de gestion de linterruption.
Le programme de gestion dune interruption IRQ par exemple, doit assurer les
oprations suivantes :
dabord identifier le demandeur
faire respecter une hirarchie dans les demandeurs lorsquil y a des
appels simultans. La priorit entre demandes simultanes de
diffrentes interruptions est ralise en partie par le jeu des masques.
brancher le microprocesseur (par un changement du PC) au programme
dinterruption souhait par le demandeur.
Mthodologie de gestion des priphriques dentres-sorties :
Les transferts E/S peuvent seffectuer selon diffrents modes. Deux grands
modes apparaissent : Le mode programm et le mode interruptible.
Le mode programm :
Les transferts seffectuent linitiative du microprocesseur. Cest lui (c.a.d. le
programme) qui dcide du moment des actions. Ces transferts peuvent tre
nanmoins inconditionnels ou non.
Mode inconditionnel :
Dans ce cas, le transfert est excut quelque soit ltat du priphrique. Ceci
suppose que ce dernier est toujours prt envoyer la donne ou disponible pour
recevoir celle-ci. (Possible pour des priphriques rapides).
Mode conditionnel :
Dans ce cas, au transfert sajoute des changes de signaux de commande entre
une interface (le PIA) et le priphrique. Ceci afin dassurer un minimum de
synchronisation. (Technique de la poigne de main ou handshaking).

Master en Contrle et instrumentation

Page 74

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Principes:
Avant deffectuer un transfert, le microprocesseur teste ltat du priphrique
et ne ralise lopration quaprs stre assur de sa diponibilit. Ltat du
priphrique (prt ou occup, registre de rception plein ou registre de
transmission vide...) est gnralement indiqu par un bit dtat appel flag.
Dans le cas o il y a beaucoup dinterfaces il excute des boucles dattente sur
des vnements extrieurs en passant son temps tester les indicateurs dtat
de chacun (technique du sondage ou polling).
Consquence de cette technique le microprocesseur est immobilis dans cette
tche. Trs pnalisant !
Le remde...
Le mode interruptible :
Dans ce cas, les transferts dE/S seffectuent la demande du priphrique.
(Exemple du clavier : le microprocesseur ne peut pas savoir quel moment
lutilisateur appuiera sur une touche du clavier).
Celui-ci envoie par lintermdiaire du circuit dinterface une demande
dinterruption au microprocesseur. Si celle-ci nest pas masque ou inhibe, le
microprocesseur termine lexcution de linstruction en cours, puis se branche
dans le programme dIT grce au vecteur dinterruption. Cette mthode permet
de dcharger le microprocesseur des oprations de polling.
Avantage :
Les priphriques peuvent fonctionner leur propre vitesse sans pnaliser pour
autant le microprocesseur.
Questions :
Que faire sil y a plusieurs priphriques susceptibles de faire des demandes
dIT?
Dans ce cas, il faut pouvoir identifier le priphrique demandeur.
Trois possibilits :
1- On utilise les diffrentes entres dIT du microprocesseur si cela est
possible.
Master en Contrle et instrumentation

Page 75

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

2- On runit les diffrentes sorties de demande dinterruption avec un cblage


en "ou cble". Cela oblige alors de faire une recherche du demandeur par
scrutation.
3- On utilise des circuits spciaux qui rpondent au mieux ce problme avec
prise en compte des priorits au niveau des demandes simultanes.
Cas 1 : Pas de problme.
Chaque priphrique possde son propre vecteur dinterruption. On sait quel est
le mcanisme mis en place lors de la prise en compte dune telle demande :

Sauvegarde du contexte intgral ou partiel.


Chargement du PC avec le contenu de vecteur d'interruption spcifique.

Schma :

Cas 2 :
On considre une seule entre de demande dinterruption sur le microprocesseur
avec plusieurs interfaces. On est amen alors adopter le schma suivant :

Master en Contrle et instrumentation

Page 76

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Gestion des priorits :


Cas3 :
Avec la structure du "ou cbl", le programme d'interruption doit comporter un
mcanisme de recherche (de scrutation) pour connatre quel est le contrleur qui
a provoqu la demande. Ainsi apparat la notion de Priorit!
La gestion des priorits peut se faire de faon logicielle ou matrielle.
Mthode logicielle
Aprs prise en compte de l'interruption (le contenu de vecteur allant dans le PC),
la premire tche du programme d'interruption est de tester chaque indicateur
d'tat des interfaces afin de savoir qui a effectu la demande.
Master en Contrle et instrumentation

Page 77

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Ici l'ordre de scrutation dtermine le niveau de priorit des interfaces entre


eux. Dans cet esprit, il est ncessaire de grer une table dans laquelle se trouve
les adresses (pointeurs d'entre) des diffrents sous-programmes d'IT.
On peut "voir" ces adresses comme des vecteurs d'IT de second niveau propre
chaque interface.
Mthode matrielle :
On peut tablir la hirarchie entre les interfaces en utilisant une logique
supplmentaire qui permet d'identifier directement l'origine de la demande.
C'est dire que l'on cre directement le vecteur d'IT de second niveau.
Avantage :
Prise en compte rapide de la demande d'IT en provenance dune interface (la
phase de recherche disparat...).
Premire illustration matrielle :

Commentaires :
1. Registre d'entre capable de stocker huit demandes d'IT.
2. Registre interne de masque d'IT (initialis par le microprocesseur).
3. Ensemble de ET pour bloquer ou non les demandes d'IT partir des
informations du registre de masques.
Master en Contrle et instrumentation

Page 78

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

4. Codeur de priorit qui fournit le codage de la demande la plus prioritaire


parmi celles actives.
5. Registre de sortie qui fournit l'octet constituant une partie de l'adresse
du vecteur. Lautre partie tant dfinie par ailleurs (b 5, b6 et b7 tant
initialiss par le microprocesseur).
Seconde illustration :
Vectorisation par dcodeur de priorit et Mux : Ici, les sorties du codeur de
priorit sont multiplexes avec les lignes d'adresse A1, A2 et A3.

Commentaires :
La ligne A0 est relie directement la mmoire car on agit sur les adresses.
Le multiplexeur est actif seulement en phase de reconnaissance d'IT (BA=0 et
BS=1) et lorsque le vecteur d'IT est dpos sur le bus d'adresse ($FFF8 et
$FFF9 dans notre exemple).
Le reste du Mux se traduit par l'apparition d'un code ( o1, o2 et o3 ).
Ainsi, le microprocesseur accde directement au vecteur d'IT correspondant
la demande. Il n'y a donc plus besoin de la scrutation logicielle des interfaces.

Master en Contrle et instrumentation

Page 79

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chapitre IV : Interfaage du Microprocesseur 6809


IV.1 INTRODUCTION : La plupart des microprocesseurs prsentent peu
dutilit fonctionnelle par eux mmes. La plupart dentre eux comporte peu de
mmoire et peu sont munis de portes dentres et de sorties qui les connectent
directement des priphriques. Parailleurs, deux problmes surgissent avec la
conception des sections de programmes pour les entres et les sorties : le
premier concerne la faon dinterfacer les priphriques avec le
microprocesseur, de transfrer les donnes, les tats et les signaux de
commandes ; le second traite la faon dadresser les dispositifs dentressorties (E/S) afin que lUCM (unit centrale de microtraitement) puisse en
slectionner un pour un transfert de donnes. Gnralement, les transferts de
donnes de et vers lUCM, via les bus prennent lune des formes suivantes :
1- Lecture mmoire ;
2- Ecriture mmoire ;
3- Lecture dE/S ;
4- Ecriture dE/S ;
5- Gestion dinterruption ou de rinitialisation.
Objectifs de ce Chapitre est dtudier les circuits mmoires :
Comprendre l'organisation et le fonctionnement de plusieurs types
Comprendre la terminologie lie aux circuits mmoires
Connatre les diffrences entre RAM et ROM et entre mmoire de masse
et mmoire volatile
Comprendre lorganisation et le fonctionnement de plusieurstypes de
mmoires
Apprendre l'utilisation et la combinaison des mmoires
IV.1 Interfaage avec mmoire :
IV.1.1 Introductioon : aprs lUCM pour le microprocesseur, la mmoire est
lorgane le plus important dun microordinateur. Il existe deux catgories deux
mmoires : mmoire centrale et mmoire auxiliaire.
- La mmoire centrale o lUCM excute ses instructions ;
- La mmoire centrale est trs rapide par rapport aux mmoires auxiliaires ;
- La mmoire centrale un espace mmoire limit par contre les mmoires
auxiliaires sont trs grandes. Les deux principales mmoires centrales sont la
RAM et la ROM.
Gnralement, la mmoire peut tre soit accs squentiel, soit accs
alatoire. A accs squentiel signifie que pour localiser des donnes, il faut
parcourir en squence toute la mmoire. Par exemple , quand les donnes sont
ranges sur une bande magntique, il est ncessaire de parcourir la mmoire en
entier jusqu' localiser les donnes cherches.
Master en Contrle et instrumentation

Page 80

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Dans le cas de laccs alatoire, toute case mmoire peut tre crite ou
lue en un temps donn (dit temps daccs). Les units de ROM et de RAM des
microordinateurs sont toutes les deux du type accs alatoire, bien plus rapide
que les units accs squentiel.
IV.1.1.2 Dfinition dune mmoire : Arrangement binaire de cases , chaque
case est rfrencie par un nombre qui lui est propre de manire non ambigu ; ce
nombre est appel adresse de la case.
IV.1.1.3 Capacit mmoire dun ordinateur: Cest le nombre de cases
mmoires o les informations sont emmagasines.
Exemple: RAM de 1KO (kilo octet) = 210 x 8bits.
RAM de 1 Mga
= 220 x 8bits.
IV.1.1.4 Temps dcriture: Temps qui scoule entre linstant o linformation
stocker et ladresse sont fournies lentre de la mmoire et le moment o
linformation est effictivement crite.
IV.1.1.5 Temps de lecture: Temps qui scoule entre linstant o ladresse est
fournie la mmoire et le moment o la donne apparat en sortie.
IV.1.1.6 Temps daccs la mmoire: Le temps entre le signal dactivation et
le moment o lopration est acheve.
IV.1.1.7 Temps de cycle la mmoire: Le temps qui doit scouler entre deux
activations successives de la mmoire.

Master en Contrle et instrumentation

Page 81

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.1.2 RAM : (Random Accesc Memory) deux types de RAM

IV.1.2.1 Les RAMs statiques: Ce sont des mmoires volatiles. Linformation


stocke disparat lorsquelles ne sont plus sous tension. Elles sont ralises en
technologie MOS, CMOS, bipolaire ou ECL. Ces mmoires sont toujours
monotension: +5v, compatible TTL et sortie trois tats (systmatiquement
pour les MOS et CMOS) ou collecteur ouvert (exclusivement pour certaines
bipolaires et ECL).

Fig.IV.1 Cellule mmoire dune RAM statique.


Elle comprend six (06) transistors, ce qui limite les possibilits dintgration
dans ltat actuel.

Master en Contrle et instrumentation

Page 82

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exemple : La RAM HM2064

OE: Output Enable


Fig.IV.2 RAM Statique type HM2064
w : Write
I/O: Input/Output
Les RAMs statiques sont donc, plus simples utiliser mais elles prsentent les
inconvinients suivants:
1- Un cot par bit plus lev;
2- Une intgration limite;
IV.1.2.2 Les RAMs dynamiques: La limitation dintgration des RAMs statiques
de grande capacit a pouss la cration de RAM dynamiques. Llment
mmoire de base est la capacit de gchette-source dun transistor MOS, mais la
rsistance gchette-source ntant pas infinie, cette capacit se dchargera, il
faudra donc la recharger pour maintenir linformation, on dit quil faut rafraichir
la mmoire. En technologie MOS ce rafrachissement doit intervenir toutes les
2ms pour une cellule.

Master en Contrle et instrumentation

Page 83

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Fig.IV.3 Cellule mmoire dynamique


Si la tension VGS est de polarit et damplitude convenables le MOS T1 sera
satur, si non il sera bloqu. Pour lire ltat bloqu ou satur du MOS T1 on aura
recours un MOS T3 qui sera conducteur lors dune lecture.
Pour une cellue il yaura:
- Une ligne de slection de lecture;
- Une ligne de slection dcriture;
- Une ligne dentre des donnes (pour lcriture);
- Une ligne de sortie des donnes (pour la lecture);

Master en Contrle et instrumentation

Page 84

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exemples:

Fig.IV.4. Constitution mmoire de 4 mots de 4 bits et de 4 mots de 8 bits.


IV.1.2.3 Rafrachissement des mmoires dynamiques: Le principe consiste
reboucler la ligne de sortie sur la ligne dentre de donne par lintermidiaire dun
amplificateur puisque lopration de lecture affecte le niveau de linformation
lue. Le rafraichissement est automatique lors de la lecture dune cellule.

Fig.IV.5 Circuit de rafraichissement mmoire.


Lorganisation de la mmoire facilite lopration de rafraichissement
puisque, lorsquon fournit une adresse de ligne, toutes les colonnes sur cette
ligne sont adresses. Donc, pour une mmoire de 4k bits cest dire 64 lignes x
64 colonnes, on aura seulement 64 amplificateurs de rgnration et non 4096
amplificateurs.

Master en Contrle et instrumentation

Page 85

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.1.3 ROM, PROM et EPROM:


IV.1.3.1 ROM (Read Only Memory): Cest une mmoire lecture seule. En
raison de sa non volatilit la ROM est utilise pour stocker des programmes de
commande appels souvent programmes moniteurs.
La ROM est une mmoire programmable par masque , et qui ne peut tre produite
que par le fabricant. Le cot lev pour la ralisation des masques impose une
production en grande srie (le nombre minimal est gale 1000).

Exemple:

sorties
Fig.IV.6 ROM de 4 mots de 4 bits.
Opration de lecture: La slection dun mot seffectue par la mise zro de la
ligne correspondant ce mot (fermture de linterrupteur I i ) . La prsence
dune diode relie une colonne avec une ligne; elle est polarise en sens direct
(passante), donc on aura la sortie un zro 0 . Labsence de diode donne la
sortie un 1 .
Exemple: Slection du 2eme ligne (I1)
S3
1
Master en Contrle et instrumentation

S2
1

S1
0

S0
0
Page 86

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.1.3.2 PROM: Ce sont des mmoires mortes mais programmables par


lutilisateur de manire irrversible.
a) Par claquage de fusible:
La structure dune PROM est trs proche de celle dune ROM. A chaque
intersection dune ligne et dune colonne, le constructeur a plac un transistor
dont une des lectrodes est en srie avec un fusible de Nichrom ou de
polysilicium. Initialement toutes les lignes et les colonnes sont relies (elles sont
zro). Claquer un fusible se fait laide des programmateurs de PROM qui fera
circuler un courant lectrique de quelques dizaines de mA pour dteruire un
fusible et ainsi crire un 0. Cependant, si on dsire conserver un 1 , il faut
empcher le transistor conduire en mettant la source du transistor 5 volts.
Donc, la ddP entre la grille et la source est infrieur au tension de seuil, en effet
le transistor est bloqu.
Pour effectuer une lecture, une tension de 5 volts est place sur la grille
et le drain commun. Si un fusible est prsent, la valeur 1 est rcupre sur la
colonne correspondante; alors un zro 0 est rcupr sil n y a pas de fusible.
Exemple:

Fig.IV.7 Exemple de PROM base des transistors MOS.


b) Par claquage de jonctions:
La mmoire est organise sous forme matricielle en rseaux de diodes
montes en tte-bche. Ainsi tous les croisements sont isols au dpart. Pour
tablir la connexion et ainsi crire un zro, il faut claquer par avalanche la diode
D1 correspondant au croisement concern; ceci est effectu par la mise du
colonne de ce croisement sous une tension inverse suffisante et la ligne du mot
programmer sous une tension nulle (0v). Par ailleurs, pour prserver les
croisements isols; il faut relier les colonnes correspondante une tension nulle
(0v).
Pour la lecture dun mot, il faut tout dabord mettre la ligne du mot lire
zro, et relier les colonnes 5 volts. Si les croisements sont connects, donc on
aura la sortie un zro 0 , si dans le cas contraire cest un 1 qui est
rcupr la sortie.

Master en Contrle et instrumentation

Page 87

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Fig.IV.8 Exemple de PROM base des jonctions.


IV.1.3.3
EPROM: Ce sont des mmoires mortes programmables par
lutilisateur; llment qui est la base dune mmoire morte effaable est le
transistor de type particulier FAMOS (Floating gate Avalanche injection MOS),
canal N. Ce conducteur est noy dans un dilectrique trs forte rsistivit, il
peut alors conserver pendant de trs longues dures des charges lectriques;
mme avec llvation de la temprature ; la charge se conserverait plusieurs
annes. Initialement le transistor est off ; la source et le drain ne sont pas
relis.

Fig.IV.9 Exemple d EPROM base des transistors type FAMOS (MOS).


Cependant, une forte impulsion de -40v dclonche une conduction par
avalanche, projtant les lectrons du substrat avec une grande nergie sur le
drain et surtout sur la grille (gate) flottante dun MOS conventionnel canal N.
Aprs disparition de limpulsion les lectrons restent prsonier sur la grille et
dveloppe un champ lectrique qui repousse les lectrons du susbstrat crant
ainsi une zone avec conduction par trous. Un courant lectrique stabli entre le
drain et la source . Le transistor est dit on (passant).
IV.1.3.4 Effacement dun EPROM:
Il faut communiquer suffisamment dnergie aux lectrons accumuls sur
la grille afin quils puissent traverser la couche doxyde et rejoindre le substrat,
cela consiste soumettre le boitier une nergie radioactive : rayon ultraviolet.
Les photons hurlent (frappent) la grille flottante de silicium dlogeant les
lectrons et provoquent leur immigration vers le substrat.

Master en Contrle et instrumentation

Page 88

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.1.3.5 EEPROM : (Electrical Erasable Programmable ROM)

IV.1.4 OPERATIONS DE LECTURE ET DECRITURE


IV.1.4.1 Lecture de RAM: Fig.III.10 lecture dun RAM.

1- Placer ladresse de la case mmoire sur le bus dadresse .


2- Envoyer lordre de lecture.
3- Recuprer aprs un certains temps la donne sur un bus de donne.

Fig.IV.11 chronogrammes de lecture mmoire


IV.1.4.2 Ecriture mmoire:
1- Fournir ladresse de la case mmoire o lon veut crire une donne;
2- Fourinir la donne elle mme (placer la donne sur le bus de donnes);
3- Donner lordre dcriture;
Master en Contrle et instrumentation

Page 89

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Fig.IV.11 chronogrammes de lcriture mmoire.


IV.1.4.3 Lecture de ROM:

Fig.III.12 Exemple de lecture mmoire ROM

Fig.IV.13chronogrammes de lecture mmoire ROM.


Donc, la lecture dune ROM consiste :
1- Fournir ladresse de la case mmoire concerne sur le bus dadresse;
2- Envoyer lordre de lecture;
3- recuprer aprs un certains temps la donne sur le bus de donne.

Master en Contrle et instrumentation

Page 90

Cours Microprocesseur 6809

Master en Contrle et instrumentation

Dr. Lachouri Abderrazek

Page 91

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

EXERCICES
EXO1
Slection linaire dadresse:Une mmoire de 1K x 8bits, est faite
partir dun nombre de boitiers organiss en 128 x 8 bit, les adresses de ce plan
mmoire doivent tre conscutives et aller de $0080 $047F.

1- Trouver le nombre de boitiers utiliser;


2- Faire la table des adresses du plan mmoire considr;
3- Raliser le circuit dinterfaage de cette mmoire avec le microprcesseur
6809.
EXO2: Une mmoire est constutue dune EPROM stend de ladresse $0800
ladesse CFFFH et une RAM stend partir de ladresse $C000 ladresse
$CFFF.
1- Quelle est la capacit mmoire de chaque type mmoire (RAM et EPROM)?.
2- Considrons que lEPROM est constitue dun nombre de boitiers ayant chacun
une capacit de 2kx8bits. Trouver le nombre de boitiers constituant cette
EPROM.
3- La RAM est constitue aussi par des boitiers de capacit mmoire de 256x4
bits. Trouver le nombre de boitiers constituant cette RAM.
4- Faire le circuit dinterfaage de ces deux mmoires (RAM et EPROM) avec le
microprocesseur 6809 en utilisant les dcodeurs suivants:

EXO3: Une mmoire EPROM de 64ko est organise en pages (segments); chaque
page est constituer dun nombre de boitiers de 1ko de capacit mmoire. Sachant
que les segments sont identiques et la dernire page setend de $E000 $FFFF.
Pour la slection des boitiers et des pages, on utilise des dcodeurs valids
lorsquils receveront le signal IO/ M envoy par le microprocesseur 6809.
Master en Contrle et instrumentation

Page 92

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

1- Trouver la capacit mmoire de chaque segment (page).


2- Trouver le nombre de boitiers constituant chaque segment.
3- Faire la table des adresses du plan mmoire considr.
4- Ralier le circuitdinterfaage de cette mmoire avec le microprocesseur
6809.

Master en Contrle et instrumentation

Page 93

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.2 Interface du PIA 6820 (Peripheral Interface Adapter)


IV.2.1 Description gnrale du circuit dinterface parallle 6820
Ladaptateur dInterface parallle (PIA 6820) est un moyen de connexion des
quipements dE/S avec l'unit du microprocesseur (MPU). Le PIA 6820
communique avec la MPU par un bus de donnes bidirectionnel de huit bits, trois
chips selects, deux registres de slection, deux lignes dinterruptions, une ligne
de Read/Write et une ligne de Reset.
Le PIA 6820 est quip de deux ports (PortA et PortB) bidirectionnels de huit
bits utiliss pour communiquer avec les priphriques dE/S. Chaque ligne des
deux ports (PortA et PortB) peut tre programme pour agir comme une entre
ou une sortie.

Figure IV.2.1 Bloc fonctionnel du PIA 6820

En plus des deux ports de communication priphriques, le PIA6820 possde


deux lignes de contrle CA2 et CB2 pouvant tre programms pour agir comme
une voie de transmission de donnes priphrique.
Larchitecture interne du PIA 6820 est ralise autour de deux registres de
contrle (CRA et CRB), deux registres de direction de donnes (DDRA et DDRB)
et deux registres dinterface priphrique (ORA et ORB).
IV.2.2 Architecture interne du PIA 6820 : Le PIA6820 possde six registres
de huit bits, deux registres de contrle (CRAet CRB), deux registres de
direction de donnes (DDRA et DDRB) et deux registres de sorties (ORA et
ORB). Le schma fonctionnel du PIA6820 est donn par la figure ci-dessous :

Master en Contrle et instrumentation

Page 94

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Figure IV.2.2 Bloc fonctionnel du PIA 6820


IV.2.2.1 Le Port A : Un port de huit lignes, chaque ligne peut tre programme
en entre ou en sortie. Cette configuration est effectue par la mise 1
dans le bit correspondant du registre de direction de donnes DDRx si cette
ligne devrait tre en sortie. Ce pendant, si au contraire cette ligne devrait tre
en entre, une mise 0 du bit correspondant du registre DDRx. En mode de
lecture, le contenu des lignes programmes pour agir en entres , apparat
directement sur le bus de donnes interne.
IV.2.2.2 Le Port B : Un port de huit lignes, de la mme faon que le Port A,
chaque ligne peut tre programme en entre ou en sortie. Cette programmation
est ralise par la mise 1 du bit correspondant du registre de direction de
donnes DDRx si cette ligne devrait tre en sortie. Ce pendant, si au contraire
cette ligne devrait tre en entre, une mise 0 est ncessaire dans le bit
correspondant du DDRx. Le registre de sortie travaillant avec ces lignes est
trois tats. Les donnes dans le registre priphrique du port B programmes en
sorties sur les lignes, peuvent tre lues par la MPU en utilisant linstruction LDA
PIA.
Master en Contrle et instrumentation

Page 95

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.2.2.3 Bus de donnes D0-D7: Un bus de donnes de huit bits


bidirectionnels, permettant de transfrer les donnes de et vers le PIA et la
MPU. Les dirvers de sortie du bus de donnes sont des circuits trois tats.
IV.2.2.4 Les lignes Chip Select (CS1, CS2, CS3) : des lignes devront tre
connectes au bus dadresse de la MPU. En effet, cest travers ces lignes que
le PIA est slectionn ou adress. Pour slectionner le PIA, les lignes CS1 et CS2
doivent tre niveau haut 1 et la ligne CS3 doit tre niveau bas 0 . Ces
lignes doivent tre maintenu leurs tats pendant la dure de limpulsion E
(Enable). Cette impulsion de validation E est normalement lhorloge 2 .
IV.2.2.5 La ligne de validation E : Limpulsion de validation (E) est le seul
signal de timing fourni au PIA par la MPU. Tous les autres signaux de timing font
rfrence au signal E.
IV.2.2.6 La ligne de Reset : cette ligne est utilise pour rinitialiser tous les
registres du PIA 6820 un zro logique. Cette initialisation peut tre ralise
par une mise sous tension. La transition de cette ligne du niveau haut un niveau
bas puis un niveau haut initilise tous les registres du PIA6820.
IV.2.2.7 La ligne Read/Write R / W : cette ligne est fournie par la MPU pour
contrler la direction de transfert des donnes sur le bus de donnes. Un niveau
bas sur cette ligne valide les registres dentre permettant les donnes dtres
transfres du MPU vers le PIA (MPU Write). Un niveau haut sur la ligne R / W
permet le transfert de donnes du PIA vers la MPU (MPU Read).
IV.2.2.8 Les lignes dinterruptions (IRQA et IRQB): ces lignes sont actives
au niveau bas et sont utilises pour interrompre la MPU directement ou
indirectement selon un circuit de priorit. Les interruptions sont gres par des
routines en examinant (lire et tester) squentiellement le contenu des deux bits
(B6 et B7) des registres de contrle (voir plus loin).
IV.2.2.9 Les lignes dentres dinterruptions (CA1 et CB1): Ces lignes sont en
entres uniquement et positionnent 1 le bit B7 du registre contrle du PIA
(voir plus loin).
IV.2.2.10 La ligne de contrle (CA2): cette ligne peut tre programme
dagir comme une entre dinterruption ou une sortie priphrique et elle est
compatible avec la logique TTL. La fonction de cette ligne est programme par
les bits (bits 3, 4 et 5) du registre de contrle.

Master en Contrle et instrumentation

Page 96

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.2.2.11 La ligne de contrle (CB2): cette ligne aussi peut tre programme
dagir comme une entre dinterruption ou une sortie priphrique. En entre,
cette ligne a une impdance dentre suprieure M et compatible TTL. En
sortie, elle est aussi compatible TTL et elle peut vhiculer un courant allant de
1mA 1.5 mA. La fonction de cette ligne est programme par les bits (bits 3, 4
et 5) du registre de contrle.

Registre de contrle CRA


Registre de contrle CRB
a- Contrle de la ligne CA1/CB1 (bit 0 et 1) : La ligne de contrle CA1(CB1)
est une ligne uniquement en entre, peut tre utilise comme une ligne
dinterruption par la mise 1 par le bit flag IRQA/IRQB (bit7) du
registre de contrle CRA(B). Les bits 0 et 1 dterminent le mode de
fonctionnement de cette ligne dinterruption. Aprs une lecture du registre de
donnes A, le bit IRQA1/IRQB1 (bit 7) est mis zro.

b- Le contrle du Registre de Direction de Donnes DDRx (CRx(2): Le bit


CRx(2), en combinaison avec les deux lignes RS0 et RS1 du registre de slection,
est utilis pour diffrencier entre le registre de sortie ORA(B) et le registre de
direction de donnes DDRA(B).

Master en Contrle et instrumentation

Page 97

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

c- Contrle de la ligne Cx2 (Bit 3, 4 et 5 du CRx) : cette ligne, plus de sa


fonction en signal dinterruption, peut tre utilise comme un signal de sortie.
Les bits 3, 4 et 5 du registre de contrle CRx dterminent la fonction de cette
ligne.

Cx2 en Sortie : Si le bit CRx (5) est mis 1 , Cx2 est dsign comme
une sortie. Les quatre options utilisant Cx2 comme une sortie sont
reprsentes ci-dessous. Pour les quatre options, le bit IRQx2 (bit CRx
(6) reste zro et la ligne de demande dinterruption IRQx reste
un 1 ).
Bit 5, 4, 3 du CRx = 100 (Mode dialogue Handshake mode)

Bit 5, 4, 3 du CRx = 101

Master en Contrle et instrumentation

Page 98

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Bit 5, 4, 3 du CRx = 101 :Cx2 prendra toujours le niveau bas avec les
bits 5, 4, et 3 gale 110.
Bit 5, 4, 3 du CRx = 111 :Cx2 prendra toujours le niveau haut avec les
bits 5, 4, et 3 gale 111.

Master en Contrle et instrumentation

Page 99

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.2.2.12 Rsum de la fonction des bits du registre CRx :

Figure 3.2.3 Fonction des bits du registre CRx du PIA 6820

Master en Contrle et instrumentation

Page 100

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Ct Priphriques (Entres/Sorties)

C
O
T
E
A
L
I
M
E
N
T
A
T
I
O
N

Ct Microprocesseur (MPU)
Figure IV.2.4 Types des lignes de Commande du PIA 6820

Master en Contrle et instrumentation

Page 101

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Etude de linterface srie asynchrone


A.C.I.A. 6850
I- Gnralits
A.C.I.A. : Asynchronous Communication Interface Adapter. Adaptateur pour
la communication asynchrone. Appartient la famille des U.A.R.T.
Ce circuit programmable permet la communication srie asynchrone selon la
procdure START-STOP. Procdure trs utilise pour de faibles dbits
dinformations (50 ->19 200 bits/seconde : vitesse de travail de bon nombre de
priphriques).
Format du mot :
Il comprend entre 5 et 8 bits, lensemble tant prcd dun bit de start et suivi
de 1 ou 1,5 ou 2 bits de stop. Le bit de start est synchronis sur une horloge
mais la suite des caractres est asynchrone.
Illustration :

Le circuit travaille en parallle (bus donnes 8 bits) cot microprocesseur et en


srie cot priphrique (tltype, clavier, imprimante, Modem, etc...
Les niveaux logiques dlivrs par lACIA sont compatibles TTL. Pour configurer
les signaux au standard RS-232C, il est ncessaire dadjoindre des circuits, de
conversion de niveaux (TTC R232), les 1489 et (RS232 TTC), les 1488. Il faut
distinguer les niveaux fournis par lACIA : TTC (logique positive) et ceux dlivrs
par la ligne.
Illustration :

Master en Contrle et instrumentation

Page 102

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Gnralement, les infos sont vhicules, dans le code ASCII,


soit par boucle de courant recommand pour les milieux fortement
perturbs :
Niveau 0 : circuit ouvert.
Niveau 1 : 20 mA.
soit par liaison RS 232 (20Kbits)
RS 423 (100 Kbits).
RS 422 (10 mgabits).
Niveau 1 : -12V.
Niveau 0 : +12V.
Schma :

Prsentation

Remarque : il ny a pas dentre Reset.


Ce circuit intgre :
Un metteur de donnes asynchrone ;
Un rcepteur de donnes asynchrone ;
Une logique de commande Modem ;
Des entres dhorloge spares pour lmission et la rception.
Master en Contrle et instrumentation

Page 103

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Lmission et la rception peuvent fonctionner simultanment (full-duplex) et


avec des vitesses diffrentes.
Ce circuit comprend quatre registres internes :
1 registre de transmission ;
1 registre de rception ;
1 registre de contrle ;
1 registre d'tat ;

Etude matrielle

Ce circuit possde 24 broches.


Cot microprocesseur :
1- Le bus des donnes : D0 ... D7.
Assure lchange des donnes autre le microprocesseur et lACIA.
Lorsque le botier nest pas slectionn ces lignes bidirectionnelles sont en haute
impdance.
2- Le bus de contrle :
La ligne E : Signal dactivation des changes.
La ligne R/W : ligne de contrle du transfert des donnes avec le
microprocesseur.
R/W = 1 ; seuls les buffers de sorties sont activs (possibilit de lire un
registre).
R/W = O ; seuls les buffers dentre sont activs (possibilit dcriture dans
un registre).
Cette ligne est utilise galement comme ligne supplmentaire pour ladressage
des registres internes.
On remarque labsence de la ligne RESET - Ce qui signifie que linitialisation se
fait par soft.
3- Le bus des adresses :
CSO, CS1 ET /CS2 (Chip Select), Ces 3 lignes sont relies via le dcodeur au bus
des adresses du microprocesseur pour slectionner le botier, la slection est
valide lorsque la combinaison est : (110).
RS (Register select)
Cette entre permet de slectionner les registres internes (2 octets mmoire).
Elle est utilise conjointement avec la ligne R/W de sorte que lon puisse choisir
un registre parmi les 4 disponibles. (Voir plus loin tableau rcapitulatif).
3- IRQ (Interrupt request) :
Ligne de sortie a drain ouvert (pas de R de rappel) active sur un niveau bas relie aux entres IRQ ou NMI du microprocesseur ou au PIC (6828 : priority
interrupt control).
Master en Contrle et instrumentation

Page 104

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

COTE EXTERIEUR :
1- Les lignes "horloge"
Txclk : horloge de transmission Sert de synchronisation (rfrence) pour la
transmission des donnes sur la ligne Txdata.
Le registre de dcalage concernant la transmission est synchronis sur un front
descendant de ce signal.
Rxclk : horloge de rception Sert de synchronisation pour la rception des
donnes sur la ligne Rxdata.
Le registre de dcalage (chargement et dcalage), spcifique la rception, est
pilot par un front montant de ce signal.
Les vitesses de transmission et rception peuvent varier de O 500 Kbits/s.
Il y a possibilit de diviser ces deux horloges par 16 ou 64.
2- Les lignes de contrle dun priphrique type modem.
a- Ligne CTS (Clear To send) Entre permettant de savoir si le modem est prt
recevoir des infos.
Un niveau bas signifie que le modem est prt.
Un niveau haut signifie que le modem est absent (ou non prt).
Influence sur le bit (TDRE) du SR
Remarque : Sil ny a pas de modem (ou autre) mettre toujours cette entre au
niveau bas.
b- Ligne DCD (Data carrier detect) Dtection de porteuse ou perte de la
porteuse.
Entre permettant de savoir si la porteuse au niveau du modem est prsente.
Une absence de celle-ci inhibe la rception, cela se traduit par un niveau haut sur
cette entre. (Dfaut sur la ligne !).
Un niveau bas signifie une prsence de la porteuse au niveau du modem, tat
normal.
Remarque : non utilise, elle doit tre toujours au niveau bas !
Cette entre peut gnrer une interruption IRQ, si CR7 = 1 et si un front
montant est apparu sur DCD.
c- La sortie RTS (Request To Send) Demande dmission.
Cette sortie permet de solliciter le modem (ou autre) pour une transmission par
le microprocesseur (mission demande par le microprocesseur).
Ltat de cette sortie dpend du mot crit dans le CR. La demande dmission se
traduit par RTS au niveau bas.
Exemples d'utilisation :
a- Modem command par un ACIA accus de rception pour la demande de
transmission.

Master en Contrle et instrumentation

Page 105

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

b- Liaison Acia Acia

Organisation interne
1- TDR (Transmit Data Register) Registre de transmission dans lequel on place
le mot (8 bits) transmettre. Lcriture du mot a lieu sur le front descendant de
E.
Fonctionnement :
Si pas de transmission en cours, alors le contenu du TDR est transfr dans le
registre dcalage automatiquement aprs une instruction dcriture.
Si par contre, un caractre est en cours de transmission, le transfert TDR dans
le registre dcalage est diffr que l'opration de dcalage est en cours (b0 en
1er). Grce au double registre, le caractre suivant peut-tre crit dans TDR
mme si le caractre prcdent est encore en cours de transmission dans le
registre dcalage.
Ds que le transfert lieu - Un bit du registre dtat est positionn "1".
2- RDR (Rception Data Register) Registre de rception dans lequel on reoit
le mot (8 bits) en provenance du priphrique.
Fonctionnement :
Quand un caractre complet est reu, il est automatiquement transfr du
registre de dcalage de rception dans le RDR. A ce moment l, un bit dans le
registre dtat est positionn "1". Le caractre peut alors tre lu par le
microprocesseur.

Master en Contrle et instrumentation

Page 106

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Tant que le bit dans le registre dtat est 1, le transfert automatique est
suspendu !
Du fait du double registre, la lecture peut-tre diffre tant que la rception du
mot suivant nest pas termin.
Cest le bit b0 de la donne qui est reu en 1er
Le registre dtat SR (Status Register). Permet au microprocesseur de
connatre tout instant ltat dune transmission ou dune rception.
Le registre de contrle CR (Control Register) : Permet de configurer le
circuit en adquation avec le priphrique. Reoit les paramtres de
fonctionnement sous forme dun mot de contrle (8 bits) crit sur le front
descendant de E - aussi bien pour la transmission que la rception.
Ces registres ont la particularit d'tre soit en criture soit en lecture
uniquement. Etant donn que l'ACIA est vu par le microprocesseur comme deux
cases-mmoire, le complment du dcodage est ralis par la ligne R/W barre.
Les combinaisons entre RS et R/W permettent de slectionner l'ensemble des
registres selon le schma suivant :

Master en Contrle et instrumentation

Page 107

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Prsentation du registre de contrle


CR0 et CR1 : Dterminent le rapport de division sur les signaux dentre Rxclk
et Txclk. La combinaison (11) gnre un
reset logiciel (Master reset))
indispensable avant toute programmation du CR.
Le Master reset : initialisation locale (propre l'ACIA)
Consquences :
Remise 0 du SR except les bits lis aux conditions externes :
Initialise le TDR et RDR (contenu nul)
Aucune modification nanmoins des autres bits du CR.
CR2, CR3 et CR4 :
Choix du format de loctet transmettre o recevoir conformment au
tableau ci-joint.
Remarques :
On a la possibilit dinsrer un bit de parit. Si l'on a choisi une parit paire, le
nombre total de bits au niveau haut, y compris le bit de parit, doit tre pair.
Si l'on a choisi une parit dite impaire, le nombre total de bits au niveau haut, y
compris le bit d'imparit, doit tre impair.
Une erreur de parit est signale si au cours de la transmission un parasite fait
apparatre ou disparatre un bit au niveau haut.
Une erreur de format est signale si le bit de stop nexiste pas.
CR5 et CR6 :
Ces deux bits contrlent la fois la sortie RTS et la demande dinterruption en
transmission ; autorisent ou non une interruption provoque par le fait que le
TDR est vide (TDRE = 1 voir plus loin).
Pourquoi ?

Master en Contrle et instrumentation

Page 108

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Dune faon gnrale, lenvoi dun caractre vers la priphrie est toujours
prcd dun test sur TDR pour sassurer que celui-ci est vide. Ce test peut tre
obtenu par :
1- Une scrutation permanente du bit dans le SR (dans ce cas on choisit CR6 et
CR5 = 00).
2- Une interruption gnre par lACIA vers le microprocesseur chaque fois que
le TDR est vide (dans ce cas, on choisit CR6 et CR5 = 01).
Remarque :
LACIA met systmatiquement CR6 et CR5 = 01 la mise sous tension pour viter
lenvoi dinformation intempestive.
CR5 et CR6 = 11 permet denvoyer un break sur la ligne de sortie cest--dire
un niveau bas.
CR7 (Ne concerne que le rcepteur) : Ce bit sert de masque dinterruption
concernant les vnements suivants :
1- Registre de rception plein
2- Front montant sur lentre DCD indiquant la perte de la porteuse.
Ce bit mis 1 traduit ces vnements par une demande dinterruption IRQ bas.

Fonctionnement du registre de contrle CR de lACIA 6850

Etude des bits du registre d'tat


Registre dtat SR
SR0 : La lecture du bit b0 indique si le registre de Rception RDR est plein (SR0
= 1)
Master en Contrle et instrumentation

Page 109

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Remise 0 par :
Une lecture du RDR.
Un Master Reset.
Une entre DCD haut (plus de porteuse donc plus de donne!).
Remarque : SR0 = 0 --> RDR vide --> on attend !
SR1 : Concerne le registre de Transmission.
SR1 = 1 : lorsque la donne est disponible dans le TDR.
Remise 0 par :
Une criture dans le TDR.
Un Master reset.
Une entre CTS haut (par prt recevoir).
Remarque : SR1 = 0 --> TDR est plein --> on attend !
SR2 : Indique ltat lectrique de la ligne DCD barre.
SR2 = 1 si DCD = 1 (absence de la porteuse)
Ceci peut gnrer une interruption IRQ si autorise (CR7 = 1)
Ce bit est remis 0 par :
Une lecture du SR suivie par une lecture du RDR aprs avoir DCD retour
bas bien sr !
SR3 : Indique ltat de lentre CTS
SR3 = 1 signifie que CTS est haut (modem pas prt recevoir)
Consquence : forage de SR1 0 (TDR plein) ce qui signifie que la transmission
est interrompue !
Ce bit n'est pas affect par un Master reset.
SR4 : Indique une erreur de formatage (FE)
SR4 = 1 : indique un problme de synchronisation qui se caractrise par une
absence du (des) bit(s) de stop.
Mise 0 de SR4 aprs :
une lecture du RDR aprs disparition du problme.
un MASTER RESET.
un niveau bas sur DCD.
SR5 : Indique un dbordement (OVRN)
SR5 = 1 signifie que plusieurs caractres ont t reus avant la lecture du
caractre prcdent.
Si problme rsolu, mise 0 de SR5 aprs :
Lecture du RDR.
Un niveau haut sur DCD ou un Master RESET.

Master en Contrle et instrumentation

Page 110

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

SR6 : Indique une erreur de parit (PE)


SR6 = 1, indique que la parit reue avec le caractre est incorrecte.
SR6 est remis zro aprs :
Une lecture du RDR si pb rsolu !
Un MASTER RESET.
SR7 :
SR7=1 : Indique quil y a une demande dinterruption.
Cette demande peut provenir des vnements suivants :
RDR plein (SR0 = 1) si CR7 = 1.
TDR vide (SR1 = 1) si CR5 = CR6 = 1.
DCD haut si CR7 = 1.
Remise 0 de ce bit aprs :
par une lecture de RDR.
par une criture de TDR.
par une lecture de SR et du RDR (DCD).

Brochage de lACIA 6850

Master en Contrle et instrumentation

Page 111

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Architecture interne de lACIA 6850

Interfaage de lACIA 6850 avec le bus RS232C

Master en Contrle et instrumentation

Page 112

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exemple : Connexion de lACIA ladresse $E0XX pour interfacer la ligne srie


300 baud (4800 Hz clock) avec le format de donnes suivante :
7 bits de donnes, pas de parit, 2 bits de stop.
RTS=0 et validation des interruptions.
brancher au sous programme derreur par interruption pour indiquer une
erreur lors de la reception ou la transmission.
Dbut de location des donnes transmettre ladresse $D002.
Les donnes reues seront stockes ladresse $D000.

Programme dinterfaage de lACIA 6850


START LDAA #$03
STAA $E000
LDAA #$A1

DMY
ISR

STAA $E000

BRA DMY
LDAA $E000
RORA
BCS RECV
BITA #$38

reset ACIA
store in control register
sets IRQ, !RTS=0, 7 data bits even parity, 2 stop
bits, clk:16
store in control register
set interrupt vector.
main program
Read Status Register
rotate right (RDRF -> Carry)
if carry is set -> jump RECV
test error bits (PE, OVRN, FE)
note: right shift was performed

Master en Contrle et instrumentation

Page 113

Cours Microprocesseur 6809

RECV

ERR

BNE ERR
LDAA $D002
STAA $E001
RTI
LDAA $E001
STAA $D000
RTI
do something
LDAA #$03
STAA $E000
RTI

Dr. Lachouri Abderrazek

if not zero -> jump ERR perform transmission.


take data from address $D002.
send data to ACIA Tx Register.
get data from Rx Register
store to address $D000

reset flags
store in control register

Exemples :
Exemple 1 :
Facteur de rythme= 16
8 bits par caractre
Pas de parit
2 bits stop
mission et rception valide
pas de reset interne
Pas de RAZ des indicateurs derreur
pas de break
Mot de commande
10110001 soit $B1
LDA #$B1
Programmation du 6850
STA Re gistre de commande CR

Exemple 2 :
Sortie dun caractre sur TTY ou CRT ; le caractre transfrer sera suppos
dans laccumulateur.

BCL1

STA
LDA
ANDA
BEQ
LDA
STA

ADR
registre dtat
#$02
BCL1
ADR
registre mission

sauvegarde du caractre
lecture registre dtat
test de TxRDY par masquage
restauration du caractre

Exemple 3 : Entre dun caractre dans laccumulateur partir de la console


CRT ou de la tltype (TTY).
BCL2
LDA
registre dtat
lecture registre dtat
ANDA
#$01
test de RxRDY par masquage
BEQ
BCL2
LDA
registre rception
lecture du caractre

Master en Contrle et instrumentation

Page 114

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

EXERCICES
Exo1 : On dsire recevoir un caractre partir dun tlimprimeur avec les
hypothses suivantes :
- Vitesse de transmission 110 b ;
- 7 bits dinformation ;
- 2 bits de stop ;
- Parit impaire ;
- Facteur dinversion horloge 1/16 cest dire il faut 16 bits ;
Questions :
1- Faire le programme en assembleur du 6809 pour recevoir le caractre du
tlimprimeur ;
2- Faire le circuit dinterfaage du 6850 avec le microprocesseur 6850;
3- Si la dure dun bit est de 9ms ; quelle est alors la frquence de lhorloge
utilise.

Master en Contrle et instrumentation

Page 115

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Exo2 : On dsire envoyer un caractre se trouvant en mmoire en 2020 un


tlimprimeur via le circuit dinterface srie 6850 en utilisant de lexercice 1.
Questions :
1- Faire le programme en assembleur 6809 pour envoyer ce caractre vers le
tlimprimeur ;
2- Faire le schma lectrique dtaill pour interfacer le 6850 avec 6809.
Exo3 : Un tlimprimeur (TTY)
But : transfrer des donnes de et vers un tlimprimeur standard 10
caractres par second, en mode srie. Le mode habitu change de donnes
avec un tlimprimeur est le mode asynchrone srie. La procdure est la
suivante :
Tlimprimeur standard format des caractres
1) La ligne est normalement un.
2) Un bit de start (zro) prcde chaque caractre.
3) Le caractre est gnralement en code ASCII, sur 7 bits, celui de plus faible
poids tant transmis le premier.
4) Le bit de plus fort poids est le bit de parit, paire, impaire ou encore fix
zro ou 1.
5) Deux bits de stop (niveau logique 1) suivant chaque caractre.
La figure ci-dessous montre ce format : chaque caractre requirent onze bits,
seuls sept contiennent linformation. Puisque la vitesse dchange est de dix
caractres par second, la transmission se fait 11x10=110 bits par second, ou
110 bauds. Chaque bit occupe donc 1/110 dune seconde, soit 9.1 ms. Cette largeur
est une moyenne, la prcision dun tlimprimeur ntant pas leve.
Niveau 1
Niveau 0

0
1
Bit de start
(Dpart)

7 bits de caractres

bit de bits de stop


parit

Ce caractre est un E en code ASCII, avec parit paire, soit 45 en Hexadcimal.


Rappelez-vous que la transmission commence avec le bit de start (0), puis les bits
0, 1, 2, 3, 4, 5, 6, le bit de parit, puis les bits de stop.
Mode rception avec tlimprimeur
Afin dassurer une bonne liaison, la procdure suivante doit intervenir :
1) Attente dun bit de start (zro logique) sur la ligne de donnes.
2) Centrage de rception par temporisation de un-demi bit, soit 4.5ms.
3) Lecture des bits de donnes, en attendant pendant un temps de un bit entre
chaque bit. Assemblage des en un mot introduisant le bit dans lindicateur de

Master en Contrle et instrumentation

Page 116

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

retenue (Carry) puis en dcalant circulairement la donne avec le Carry.


Souvenez-vous que cest le bit de plus faible poids qui arrive le premier.
4) Cration du bit de parit du mot reu et comparaison avec celui mis. Sil ny a
pas concordance, indiquer une erreur de parit.
5) Rception de bits de stop (en attendant pendant un bit entre les entres). Sil
ne sont pas corrects (sil ne sont pas tous deux 1), indiquer une erreur de
trame.
Tche demande :
Acqurir dun tlimprimeur via linterface srie 6850 et placer cette donne
ladresse mmoire $2040.
Mode dmission vers un tlimprimeur
But : Transmettre des donnes vers un tlimprimeur via le circuit 6850 ;
sachant que la donne se trouve en mmoire ladresse $2040.
La transmission dune donne seffectue selon les tapes suivants :
1) Emission dun bit de start (un 0 logique).
2) Emission des sept bits de donnes, celui de faible poids dabord.
3) Cration et mission du bit de parit.
4) Emission des deux bits de stop (des 1 logiques).
Tche demande : envoyer la donne se trouvant en mmoire en $2040 un
tlimprimeur via le circuit 6850.
Questions
1) Faire un programme en assembleur du 6809 pour la rception et lmission
dun caractre de et vers un tlimprimeur dont les caractristiques sont
cites ci-dessus.
2) Faire un schma lectrique dinterfaage du circuit 6850 avec le
microprocesseur 6809.

Master en Contrle et instrumentation

Page 117

Vous aimerez peut-être aussi