Vous êtes sur la page 1sur 121

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 adr
sses 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 instructio
ns du microprocesseur
Le jeu d instructions
Le code mnmonique
Les modes d adressa
ge la pile III. Les interruptions IV. Les interfaces
le P.I.A. (Interface paralll
e) Les mmoires
l A.C.I.A. (Interface srie)
Master en Contrle et instrumentation
Page 1

Cours Microprocesseur 6809


Historique
Dr. Lachouri Abderrazek

Le microprocesseur est l aboutissement de progrs technologiques tant dans les dom


aines mcanique, informatique et lectronique. Quelques dates :
1690 : Pascal invent
e la machine calculer entirement mcanique (addition et soustraction) 1800 : Jacqua
rt invente le mtier tisser avec cartes perfores. 1810 : Invention de l orgue de ba
rbarie (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 mmoi
res ferrites.
1958 : Dveloppement du premier circuit intgr (4 5 tr/puce). 1964 : O
dinateur transistors ( base de circuits TTL : 50 transistors dans une puce).
1970
: Premiers circuits L.S.I.- naissance du premier microprocesseur 4 bits avec 10
00 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 transi
stor 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 composan
t lectronique ne fut pas vident jusqu ce que l ide de le transformer en calculatric
e fut trouve. Sept ans plus tard, l arrive du 8088 multiplie dj cette puissance de c
alcul par 200. Cette date correspond la naissance des vritables micro-ordinateurs
. Arrivent ensuite les microprocesseurs 68000 et 80286 (16 bits) avec les Macint
osh 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 te
chnologique 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
s 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 lmen
. Nouveau synoptique :
Principe de la logique programme
Illustration partir d un circuit simple constitu de 3 cases mmoires et 3 portes lo
gique 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


Droulement :
Dr. Lachouri Abderrazek
Master en Contrle et instrumentation
Page 5

Cours Microprocesseur 6809


Le microprocesseur
Dr. Lachouri Abderrazek
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 squentiellem
ent et automatiquement des suites d oprations lmentaires. Son rle : Ce circuit rempl
it deux fonctions essentielles :
Le traitement des donnes
On parle d unit de traitement. Cette fonction est ddie l U.A.L. Elle concerne la ma
nipulation des donnes sous formes de transfert, oprations arithmtiques, oprations lo
giques....
Le contrle du systme
Cette fonction se traduit par des oprations de dcodage et d excution des ordres exp
rims sous forme d instruction.
Puissance d un microprocesseur Dfinition : La notion de puissance est la capacit d
e 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 horl
oge de synchronisation exprime en MHZ. Laspect dimensionnel renseigne assez bien d
e la puissance du composant.
Master en Contrle et instrumentation
Page 6

Cours Microprocesseur 6809


Familles des Microprocesseurs:
Dr. Lachouri Abderrazek
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 organis
ation 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 e
xiste 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 d
eux versions.
Master en Contrle et instrumentation
Page 8

Cours Microprocesseur 6809


Prsentation du brochage :
Dr. Lachouri Abderrazek
Lalimentation (Vss - Vcc )
Le bus des donnes 8 bits (Do D7) : Ces huit broches son
t bidirectionnelles. Elles permettent la communication avec le bus des donnes int
erne 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 log
ique trois (03) tats.
Le bus des adresses 16 bits (Ao A15) : Ces broches unidirec
tionnelles transfrent l adresse 16 bits fournie par le microprocesseur au bus d a
dresse 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 b
us 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 micro
processeur tout moment.
1er cas : Le microprocesseur est en fonctionnement normal, il gre les bus d adres
ses 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 lor
sque le microprocesseur rencontre l instruction de synchronisation externe (nive
au 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 su
r 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 initialisati
on Re set : Un niveau bas sur cette broche entrane une rinitialisation complte du c
ircuit. Consquences : Linstruction en cours est arrte ; Le registre de pagination (D
P) est mis zro ; Les interruptions IRQ et FIRQ sont masques ; Linterruption non mas
quable NMI est dsarme ; Pour que cette ligne soit active, elle doit tre maintenue u
n 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 Trouve
nt aux adresses $FFFE et $FFFF. Ce contenu reprsente l adresse du dbut du programm
e 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 provoq
ue 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 inter
ruption IRQ et FIRQ sont inhibes Les demandes d accs direct (DMA) la mmoire sont au
torises. Les demandes d interruptions Re set et NMI sont prises en compte mais le
ur traitement est diffr.
Les broches d interruption :
NMI (No Masquable Interrupt) IRQ (Interrupt Request) FIRQ (Fast Interrupt Reques
t) Entres (actives sur un niveau bas) qui peuvent interrompre le fonctionnement n
ormal 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 synchronisatio
n du microprocesseur avec la priphrie. Qout : reprsente le signal d horloge en quad
rature 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 allongeme
nt 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 rafrach
issement mmoire. Fonctionnement : Pendant que Q est au niveau haut (si DMA/BREQ b
as) 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 impda
nce). Le circuit ayant gnr cette commande dispose de 15 cycles machines avant que l
e 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 d
es signaux identiques Eout et Qout du 6809. Ces signaux doivent aussi tre fournis
l ensemble du systme (signaux de synchronisation).
TSC (Tree States Control) : C
ette broche a le mme rle que l entre DMA/BREQ prcdente. Possibilit de faire du DMA afi
n de raliser des oprations de : rafrachissement Partage de bus avec un autre microp
rocesseur
LIC (Last Instruction Cycle) : Cette broche de sortie est l tat haut pe
ndant 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 opra
toire dune instruction. Cette sortie au niveau haut signifie que le microprocesse
ur 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 pe
rmet un contrle efficace des ressources communes d un dispositif multiprocesseur.
AVMA (Advanced Valid Memory Access) : (Contrle des ressources communes en multip
rocesseur), 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 deu
x octets (une adresse par exemple). Dans un systme multiprocesseur, ce signal ind
ique 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 p
ermet de traiter et tester les donnes. Toute instruction qui modifie une donne fai
t toujours appel l UAL. L entre de L UAL est connecte au bus interne via un regist
re "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 c
onstitu 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 en
semble et dans l ordre. Commentaires : La logique de contrle est pilote par le Reg
istre 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 logi
que. La logique de contrle possde une architecture complexe et trs spcialise. L lment
entral est reprsent par le dcodeur d instructions qui dcode les informations (premie
r octet) stockes dans le R.I. pour gnrer les signaux ncessaires l excution de l instr
uction. La logique de contrle gnre sur les lignes de contrle des niveaux logiques qu
i activent les diffrents circuits environnant tels que mmoires et circuits I/O. Ce
tte 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 es
t cre partir d un oscillateur interne qui utilise un signal en provenance d un qu
artz externe. Deux actions complmentaires noter : Le contrle de mise sous tension
du microprocesseur (initialisation des registres). Le traitement des interruptio
ns. Rsum : Dune manire gnrale le rle de lunit de commande est Cherche, dcode et ex
instructions : Compose de circuits logiques et de temporisations, elle gre le fonc
tionnement 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 p
ermet grer la squence le droulement des instructions Elle cherche l instruction dan
s 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 excutio
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 l
e dcodeur d instructions. Suivant le protocole ci-dessous : La donne extraite de l
a mmoire est stocke dans le R.I. (c est la phase extraction). Ensuite ce contenu e
st 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 c
riture ou autre ...) Un lieu d action (un registre, un accumulateur, une case mmo
ire...) 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 l
orsque le microprocesseur a besoin de "manipuler" des donnes. La plupart des oprat
ions logiques et arithmtiques sur les donnes font appel au couple "UAL - accumulat
eur" selon la procdure suivante:

Il en est de mme pour les dplacements et transferts des donnes d un endroit un autr
e comme :
De mmoire mmoire.
De mmoire units d entre-sortie (I/O). Cette action s
t en deux temps : Source Vers Accumulateur et ensuite Accumulateur vers destinat
ion. 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, possd
ent 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 respectivem
ent. 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 interchange
ables (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


Le Compteur d Instructions :
Dr. Lachouri Abderrazek
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 (ch
aque instruction pouvant prend plusieurs octets!) qui se trouve rang dans une zon
e mmoire, gnralement des adresses successives. Le P.C. "repre" le premier octet de c
haque 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-$FF
FF) reprsente en gnral l adresse o se trouve le premier octet de la premire instructi
on du programme. Les registres pointeurs :

sont utiliss pour les modes d adressage index. Les donnes - 16 bitscontenues dans c
es registres servent de pointeur de donnes (adresses). Ces adresses "peuvent tre m
odifies" par une constante, prise comme valeur de dplacement (offset) qui permet a
lors 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 gr
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 microprocesseu
r pour mmoriser l tat de tous ces registres internes dans le cas o il doit excuter u
n sous programme (d interruption ou non). - Le pointeur de pile U (Utilisateur)
est gr exclusivement par le programmeur pour effectuer, avec facilit, le passage de
s 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 po
inteurs : Ces registres "pointent" toujours le haut de la zone mmoire qui leur es
t 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
Les registres d index (registres de 16 bits) Les registres d index X et Y

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 interrup
tion.
Prsentation des diffrents indicateurs : CCRb0 : (indicateur de retenue baptis : C).
Indique l existence d une retenue lors d une opration arithmtique effectue par l A
LU. CCRb1 : (indicateur de dbordement baptis : V). Il est mis 1 si le rsultat en co
mplment 2 d une opration arithmtique dborde. CCRb2 : (indicateur de rsultat nul bapti
s : 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 log
iques. CCRb3 : (indicateur de rsultat ngatif baptis : N). Il recopie le bit de poid
s fort (MSB) de l octet contenu dans le registre avec lequel on vient de travail
ler. (Un rsultat ngatif en complment 2 positionne ce flag 1). CCRb4 : (indicateur d
e masque dinterruption (Interrupt Mask) baptis : I). cest le bit de masque de linter
ruption 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 bi
ts b3 et b4 (retenue du demi-octet le moins significatif) dans le cas d une addi
tion 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 (Fa
st Interrupt Mask) baptis : F). La mise un du bit F masque linterruption FIRQ. CCR
b7 : (indicateur de sauvegarde des registres dans la pile, baptis : E). La mise u
n 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 dadres
sage 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 gnr
alement 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 instr
uctions. En tenant compte des variantes (modes d adressage) il atteint 1464 inst
ructions.
1 2
Code opration
Octet1
Code opration
Donne immdiate ou Octet2 adresse dire cte /relative
Donne immdiate ou Octet3 adresse dire cte /relative
{
Octet1 Octet2
3
4
Code opration Adresse sur 2 octets ou dplace me nt sur 2 octets
Octet1
Code opration
{
Octet2 Octet3
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 i
nstructions font rfrence des donnes ou a des adresses de diverses faons, ces rfrences
ant les modes d adressage dont dispose le microprocesseur.
Master en Contrle et instrumentation
Page 21

Cours Microprocesseur 6809


Structure d une instruction : Octeti code opratoire ordre oprations : arithmtique l
ogique et de transfert facultatif Octeti+1 post-octet
Dr. Lachouri Abderrazek
Octeti+2
Octeti+3
code oprande adresse expression directe ou indirecte (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: Fr
de l horloge E= 1 MHz donc T = 1 s. La dure dpend de la complexit de l instruction,
son expression est :
=
.

Mod
nt :
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 opran
de) 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 s M moi
re s Pri phri ques e xtri eur Registre d Adre sse s
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. Classification : Instruct
ions 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 sont rparties en groupes dtermins par leurs

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


Instructions logiques 1. Rotation droite et gauche (ROL, ROR) 2. Dcalage droite e
t 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) E
xemples :
AND B # $55 avec (B)= $AA
Master en Contrle et instrumentation
Page 24

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek

ASLA
avec (A)=$80

ASRA
avec (A)= $81

ROLA
avec (A)= $81
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 ral
iser 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 conditi
onnel (branchement les indicateurs du CCR sont actifs Master en Contrle et instru
mentation
si
Page 26

Cours Microprocesseur 6809


Exemple : CMPA BCC LDA Loop LDB END #$20 Loop #$10 #$AA
Dr. Lachouri Abderrazek
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 ab
solu (JMP : 2 octets) Exemple : Debut CLRA LDA $1000 STA $8000 BRA Debut Instruc
tions 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 C
LRB 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/extr
action, 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 trans
frer rapidement des donnes dans des cases mmoires selon un protocole bien tabli. Ord
re des actions : Toujours suivie de loprande qui permet de slectionner les registre
s :
b7 PC U/S X Y DP B A e mpi lem en t dpile me nt
b0 CC R
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 b


ase. Combines avec le jeu des modes dadressage (9 au total), elles fournissent 146
4 codes opratoires diffrents. (Pour le 6800 ou 6802, on avait 72 instructions de b
ase et 193 codes opratoire) Les modes d adressage sont : ladressage ladressage ladre
ssage ladressage ladressage ladressage ladressage ladressage ladressage inhrent ou imp
icite immdiat tendu tendu indirect direct par registre index direct index indirect re
latif
Au moyen des signaux quil gnre sur le bus dadresses, le microprocesseur a la possibi
lit dadresser les divers circuits mmoires et interfaces, qui lui sont connects au tr
avers des bus afin d accder leur contenu. Cet accs se traduit par une opration dadre
ssage Cette opration peut se faire de plusieurs faons grce la prsence de diffrents mo
des dadressage. Remarque : La puissance dun microprocesseur dpend de son jeu dinstru
ctions mais aussi des ses modes dadressage.
Ladressage inhrent ou implicite
Ladressage inhrent est utilis par les instructions qui agissent seulement sur les r
egistres internes du microprocesseur. Ici, le code opratoire de linstruction conti
ent toute linformation dadressage ncessaire (adresse source ou/et adresse destinati
on). Exemples : ABX, ASL, ASR, CLR, INC
Adressage par registre :
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 regis
tre 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 Sour
ce Post-octet transfert/change code 0000 0001 0010 0011 0100 0101 1000 1001 1010
1011 b3 b0 Destinataire
Registre D X Y U S PC A B CCR DP
Exemple :
TFR X,Y (transfert de X dans Y).
CCR E F H I N Z V C D X Y S U PC DP
15 7 0
{A B
7 0
1F 12
Adr Adr+1
Adr+2
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 linstruc
tion. La donne existe sous la forme de 1 ou 2 octets. (le code opratoire est immdia
tement suivi en mmoire de la donne sur laquelle porte lopration) Cet adressage conce
rne 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
15
{A B
35
7 0
86 35
Adr Adr+1
DP
adr
7 0
Adr+2
LDY#$1997
CCR E F H I N Z V C D X Y S U PC
15
{A B
7
0
1997 adr
7 0
10 8E 19 97 Adr+4
Adr Adr+1 Adr+2 Adr+3 Adr+4
DP
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 ha
ute 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 consq
uent lexcution de linstruction est plus rapide. Master en Contrle et instrumentation
Page 31

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek
Remarque : Avec ce mode, la
e mode est intressant dans
n alloue chaque tche une
contenu dont l adresse est
CCR E F H I N Z V C D X Y S
15 7

mmoire est dcoupe en 256 pages de 256 octets chacune. C


le cadre des systmes dexploitation temps rel multitche, o o
page. Exemples : LDA $97 Charge l Accumulateur A avec le
forme par [DP] et l oprande
U PC DP

{
A B
7
37
0
96 97
Adr Adr+1
adr 19
0
Adr+2
37
1997
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 X Y S U PC DP
15 7
{
A B
7 0
10 9E 97
Adr Adr+1 Adr+2
1960 adr 19
0
Adr+3
19 60
1997 1998
Master en Contrle et instrumentation
Page 32

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek
Adressage tendu (direct) : On exprime le lieu de l action par l expression de l a
dresse effective. Le contenu des deux octets qui suivent immdiatement le code opra
toire spcifi reprsente ladresse (16bits) de la donne. L instruction occupe de 3 4 oct
ets. Exemples : LDA $1997 Charge laccumulateur A avec le contenu de ladresse 1997.
CCR E F H I N Z V C D X Y S U PC DP
15 7 0
{
A B
7
37
0
B6 19 97
Adr Adr+1 Adr+2 Adr+3
adr
Adr+3 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
15
{
A B
7 0
10 BE 19 97
Adr Adr+1 Adr+2 Adr+3 Adr+4
1960 adr DP
7 0
Adr+4
{
19 60
1997 1998
Master en Contrle et instrumentation
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 octe
ts qui suivent le code opratoire pointent une adresse dont le contenu reprsente lad
resse de la donne recherche. Le code opratoire est form de deux octets - le post-oct
et 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 X Y S U PC DP
15 7 0
37
1960
{
A B
7
37
0
A6 9F 19 97
Adr Adr+1 Adr+2 Adr+3 Adr+4
adr
Adr+4
{
19 60
1997 1998
LDY [$1997] Chargement du registre Y avec le contenu dont l adresse (partie haut
e) se trouve en $1997.
CCR E F H I N Z V C D X Y S U PC
15
{A B
7 0
37 60
1960 1961
10 AE 9F 19 97
Adr Adr+1 Adr+2 Adr+3 Adr+4
3760 adr DP
7 0
Adr+4

{
19 60
1997 1998
Master en Contrle et instrumentation
Page 34

Cours Microprocesseur 6809


Adressage index Deux possibilits : Adressage index direct et indirect
Dr. Lachouri Abderrazek

Dans ce mode, les registres pointeurs (X, Y, U, S et PC) sont utiliss pour effect
uer le calcul de ladresse effective de la donne recherche. Il existe 5 types dadress
age index. Ladressage index avec dplacement nul Ladressage index avec dplacement const
nt (non nul). Ladressage index avec dplacement accumulateur Ladressage index avec aut
o-incrmentation/dcrmentation Ladressage index relatif au Compteur Programme (PC) Locte
t 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 l
e code opratoire (le post-octet) spcifie : 1. La nature de lindexation 2. Le type da
dressage (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 re
gistre 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 O
ffset 1 R R 1 0 1 1 0 EA = R + ACCA Offset 1 R R 1 1 0 0 0 EA = R + 8 bits Offse
t 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 D=Offset
0 not indiret
c1
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


Type
Constant offset from R (2s complement offsets) Accumulator offset from R (2s com
plement offsets) Auto increment/decrement R Constant offset from PC (2s compleme
nt off) Extended indirect
Dr. Lachouri Abderrazek
+
0 1 1 4 1 1 4 2 3 2 3 1 5 Forms
No Offset 5-bits off 8-bits off 16-bits off A reg offset B reg offset Dreg offse
t Incr by 1 Incr by 2 Decr by 1 Decr by 2 8-bits offset 16-bits off 16-bits adr
Non indirect Assembler Postbyt form opcode
,R n,R n,R n,R A,R B,R D,R ,R+ ,R++ ,-R ,--R n,PCR n,PCR 1RR00100 0RRnnnnn 1RR01
000 1RR01001 1RR00110 1RR00101 1RR01011 1RR00000 1RR00001 1RR00010 1RR00011 1xx0
1100 1xx11100 + #
0 0 1 2 0 0 0 0 0 0 0 1 2 indirect Assembler Postbyt form opcode
[,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] 1RR10
011 [n,PCR] 1xx11100 [n,PCR] 1xx11101 [n] 10011111
+
3 4 7 4 4 7 6 6 4 8 5
+ #
0 1 2 0 0 0 0 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
15
{
A B
37
7 0
A6 84
Adr Adr+1 Adr+2
1997
adr DP
7 0
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 de
ux) et du contenu du registre nomm pris comme base. A.E. = [Registre nomm] + expre
ssion 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 dplac
ement est compris dans l intervalle [-161O 151O] Le post-octet suffit. Exemple :
LDA -2, X A6 1E soit 0 00 1 1110 Le dplacement s exprime sur 7 bits + un bit de s
igne. Le dplacement est compris dans l intervalle [-1281O 1271O]. Un octet supplmen
taire aprs le post-octet est ncessaire. Code A6 88 soit 1 00 0 1000 35 (5316) Code
Exemple : LDA 53,X
Le dplacement s exprime sur 15 bits + un bit de signe.Le dplacement est compris da
ns l intervalle [-327681O +327671O]. Deux octets supplmentaires aprs le post-octet
sont ncessaires. Exemple : LDA $997,X A6 89 soit 1 00 0 1001 09 97 Adressage inde
x avec dplacement accumulateur. Code
Ce mode est semblable au
omplment 2) se trouve
inteur nomm pour former
eur ne sont pas modifis
age 38

mode prcdent except que la valeur du dplacement (exprim en c


dans un accumulateur afin dtre ajout au contenu du registre po
lA.E. de la donne. Les contenus de laccumulateur et du point
par cette addition. Master en Contrle et instrumentation P

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 som
me des contenus des registres B et X.
CCR E F H I N Z V C D X Y S U PC DP
15 7 0
{
A B
7
00 37
0
A6 85
Adr Adr+1 Adr+2
1960
+
adr adr+2 00 1997
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 d
es contenus des registres D et X ainsi que D+1 et X.
CCR E F H I N Z V C D X Y S U PC DP
15 7 0
{
A B
7
09 97
0
AE AB
Adr Adr+1 Adr+2
2000 1000 adr
+
adr+2 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 ladr
esse de la donne. En plus de l utilisation en mode index avec dplacement nul, il es
t possible de modifier le contenu du registre selon le mcanisme suivant : La pr-dcrm
entation Le pointeur est dcrment de un ou deux avant utilisation. La post-incrmentat
ion : 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 permette
nt de grer des tables de donnes de 16 bits (mots ou adresses). Les aspects pr-dcrment
ation et post-incrmentation sont trs utiles pour crer des piles logicielles supplmen
taires dont le comportement est identique celui des piles S et U (hardware). (ge
stion 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 con
tenu de X dcrment deux fois. LDA 0,X+ Code A6 80 soit 1 00 0 0000
Master en Contrle et instrumentation
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++ C
ode 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 sit
ues lintrieur de sa zone dimplantation en mmoire ne pourra pas tre excut si lon tr
on code objet dans une autre zone mmoire. On dit, dans ce cas, que le programme ne
st pas translatable. Cet inconvnient peut-tre vit en utilisant le mode dadressage ind
ex avec dplacement relatif au PC. Syntaxe : code opratoire destination-(adr+4), PC
l expression de "destination-(adr+4)" est code en complment 2. Exemples : Chargeme
nt 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 toujou
rs l instruction suivante. LDA $FO,PC Chargement de laccumulateur A avec le conte
nu 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, l
e 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 inst
ructions du programme, le rendra entirement translable et totalement indpendant de
son implantation physique dans la mmoire. Les adresses des donnes tant toutes refre
nces par rapport la valeur relle du PC au moment de lexcution. Lutilisation dune tiq
te facilite l emploi de ce mode. Illustration : LEAX ETIQ, PC Chargement du regi
stre X avec le contenu dont l adresse est exprime par la valeur issue de l opratio
n ETIQ-(adr+4).
Code du post-octet : $8D soit 1 00 0 1101
Master en Contrle et instrumentation
Page 42

Cours Microprocesseur 6809


CCR E F H I N Z V C D X Y S U PC
15
Dr. Lachouri Abderrazek
{
A B
7 0
30 8D 00 11
Adr = $1000 Adr+1 Adr+2 Adr+3 Adr+4
1122
adr DP
7 0
adr+4 11 12 ETIQ = $2015
Dplacement = $2015 -($1000+4) soit 11 Adressage index indirect. Dans ce mode, lAdre
sse Effective est contenue lemplacement indiqu par le contenu du registre dindex ut
ilis auquel on additionne le dplacement. Ici, lA.E. transite par une adresse intermd
iaire. Syntaxe : A.E(H)={[Registre] + expression du dplacement}. A.E(L)={[Registr
e] + expression du dplacement+1}. Tous les modes dadressage index peuvent travaille
r en indirection sauf les modes : auto-incrmentation/dcrmentation par 1 dplacement c
onstant cod sur 5 bits Illustration : LDA [$960,X] Chargement de A avec le conten
u mmoire dont ladresse est le contenu de [X+960, X +961].
Master en Contrle et instrumentation
Page 43

Cours Microprocesseur 6809


CCR E F H I N Z V C D X Y S U PC
15
Dr. Lachouri Abderrazek
{
A B
7
37
0
1OOO
A6 99 09 60
Adr Adr+1 Adr+2 Adr+3 Adr+4
adr DP
7 0
adr+4 19 97 1960 1961
37
1997
Quelques exemples : Adressage index indirect avec dplacement nul. LDA [0,X] Charge
ment de A avec le contenu mmoire dont ladresse est [X, X +1]. Adressage index indir
ect avec dplacement constant. LDA [$35,X] Chargement de A avec le contenu mmoire d
ont ladresse est [X+$35, X +$36]. Adressage index indirect avec dplacement accumula
teur. 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], suiv
i 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] Chargeme
nt 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 brancheme
nt conditionnel ou non. Constitution : code opratoire 1 octet 1 octet + $10 code
oprande 1 octet 2 octets
adr. relatif court adr. relatif long

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 P
. 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 dp
lacement est exprim sur deux octets en complment deux : -32768 dplacement +32767 Ra
isation 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


Quelques exemples :
Dr. Lachouri Abderrazek
Adressage relatif court avec un dplacement positif. BEQ LOOP branchement si Z=1
?
CCR E F H I N 1 V C D X Y S U PC DP
15 7 0
{
A B
7 0
27 33
Adr = $1960 Adr+1 Adr+2 +35
adr
Adr+2
op
$1997
Valeur = $1997-($1960+2) soit $35 Adressage relatif long avec un dplacement posit
if.
?
CCR E F H I N 1 V C D X Y S U PC DP
15 7 0
{
A B
7 0
10 26 16 7B
Adr = $1997 Adr+1 Adr+2 Adr+3 Adr+4 +1675
adr
Adr+4 op $3010
Valeur = $3010-($1997+4) soit $1675
Master en Contrle et instrumentation
Page 46

Cours Microprocesseur 6809


Principe de fonctionnement :
Dr. Lachouri Abderrazek
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 cy
cle 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 instr
uction.
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. Ill
ustration :
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 $0004 Deuxime exemple : $0000 $0003 $
0006 $0009 $000C $000F $0012 LDA ADDA STA LDA ADCA STA BRA $0014 $0016 $0018 $00
15 $0017 $0019 $FE # 3 3 3 3 3 3 2 ~ 5 5 5 5 5 5 3 LDA ADDA NOP #$10 #$29 12 86
8B 10 29
Master en Contrle et instrumentation
Page 48

Cours Microprocesseur 6809


Commentaire :
PC H L 00 0C
Dr. Lachouri Abderrazek
registre interne intermdiaire
00
15
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 ce
s concepts : 1- Dfinition d un programme translatable Ce type de programme foncti
onne quelque soit ladresse laquelle il est implant en mmoire. Ce ci est possible grc
e 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 ca
s, ( la diffrence du cas prcdent) les adresses relatives sont transformes en adresses
absolues aprs dition des liens.
Master en Contrle et instrumentation
{
Page 49
registre des adresses
00 00
0A 0B

Cours Microprocesseur 6809


2- Dfinition d un programme rentrant.
Dr. Lachouri Abderrazek
Un programme rentrant est un programme qui peut-tre utilis nimporte quel niveau de p
riorit (Pour cela il doit tre interruptible). Dans ce cas, le programme dinterrupti
on peut utiliser la mme squence de programme que celle quil vient dinterrompre. Il n
e doit pas perturber les informations et rsultats de la tche interrompue. ncessit dut
iliser deux zones de sauvegarde des donnes. Le concept de rentrance est possible a
vec un microprocesseur possdant plusieurs pointeurs de pile pour grer plusieurs zo
nes de sauvegarde. Rendu possible avec l existence des instructions de manipulat
ion de pile hardware PSH et PUL et logicielle STA, -X et LDA, X+. Equivalence :
LDX STX LDA STA Illustration :
Sauvegarde du contexte dans la pile U Procdure
,U++ ,--U ,U+ ,-U
quivalent quivalent quivalent quivalent
PULU PSHU PULU PSHU
X X A A
Appel procdure
Programme d interruption
Sauvegarde du contexte dans la pile S

Master en Contrle et instrumentation


Page 50

Cours Microprocesseur 6809


Les langages de programmation :
Dr. Lachouri Abderrazek

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 ch
oix dun langage sont : le temps de programmation la maintenance la transportabili
t Un programme crit dans un langage volu donn peut tre implant "facilement" sur divers
s 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 in
terprteur soit un compilateur. Tous deux sont des programmes puissants de traduct
ion. 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 da
bord le programme en langage hexadcimal et ensuite le code gnr est sauvegard sous la
forme dun nouveau programme binaire. (ressemble beaucoup un assembleur). Le compi
lateur prsente linconvnient par rapport linterprteur, de ncessit beaucoup plus de m
mais par contre il est beaucoup plus rapide lexcution. Lapprentissage dun langage vo
lu ne rapporte strictement rien en ce qui concerne la connaissance de larchitectur
e fondamentale dun microprocesseur. Par contre la programmation langage machine o
u assembleur ncessite une bonne connaissance de larchitecture du microprocesseur.
Quelles sont les raisons pour lesquelles on choisit un langage moins volu? Deux ra
isons 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 pl
us dinstructions machines.

Exemple : une simple instruction du type WRITELN peut faire appel une centaine di
nstruction. Ainsi plus despace-mmoire est ncessaire. Gain de temps lexcution : Plus d
nstructions de base implique un temps dexcution plus lent moins de disposer de mic
roprocesseur 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 m
achine. Le langage dassemblage est li au microprocesseur. Chaque processeur possde
son propre ensemble dinstructions. Ses avantages : minimise le code meilleur cont
rle sur le matriel. [bien adapt lcriture des routines dentres/sorties] Lassembleur
n petit compilateur. Ce langage sappuie sur labrviation de terme anglais pour chaqu
e instruction. Exemple de la fonction de remise zro (CLEAR) : CLR Vocabulaire Le
langage dassemblage : C est un langage constitu dinstructions et de pseudo-instruct
ions. Un programme crit dans ce type de langage est une suite de lignes symboliqu
es 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 l
es erreurs. Le rsultat de son travail sappelle le programme objet. Macro-assembleu
r : Cest un assembleur qui permet de traiter des macroinstructions : ensemble dins
tructions regroupes sous formes de fonction. Cross-assembleur : Cest un assembleur
qui permet de dvelopper en langage dassemblage, une application utilisant un micr
oprocesseur 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 dex
ploitation, etc... Dsassembleur : C est un logiciel qui travaille linverse de lasse
mbleur. A partir dun programme machine, il construit le langage mnmonique. Exemple
: $86 traduction de LoaD accumulateur A. Lassembleur 6809 : Le langage dassemblag
e est un langage de programmation utilise dans les systmes de dveloppement, disposi
tifs daide lcriture de programmes. Il permet de traduire un programme source crit en
langage symbolique (ou mnmonique) en un langage binaire. Cette opration appele "As
semblage" est ralise par un programme appropri appel "Assembleur". Il gnre directement
un programme excutable par le microprocesseur encore appel "programme objet". Com
me tout langage, ce dernier possde une syntaxe et un vocabulaire propres quil est
indispensable de connatre afin dtablir le programme source. Syntaxe du langage asse
mbleur : Chaque ligne dinstruction du programme comporte quatre parties appeles "c
hamps". Chaque champ est spar par un blanc (espace). Illustration :
Etiquette
Code Code Commentaire opratoire oprande _________________________________________
5 7 i i+2 j j+2
0
Master en Contrle et instrumentation
Page 53

Cours Microprocesseur 6809


Dfinition des diffrents champs :
Dr. Lachouri Abderrazek

Etiquette : Ce champ nest pas obligatoire. Une tiquette est un symbole dau plus 6 c
aractres alpha-numriques, commenant obligatoirement par une lettre de lalphabet. Dan
s le cas, o le champ tiquette est vide au moins un blanc doit prcder le champ suivan
t. Si le 1er caractre de la ligne est une *, la ligne est alors considre comme un c
ommentaire. Le rle de ltiquette est de permettre de reprer la position dune instructi
on dans le programme. Le champ opration : Il contient soit un code mnmonique de lopr
ation effectuer soit une directive dassemblage. Le champ oprande : Il complte le ch
amp opration et contient la "donne" ncessaire lexcution de linstruction. Sa syntaxe e
t varie et dpend du mode dadressage attribu linstruction. On trouve : des tiquettes (
es noms) des symboles (nom de registre) des nombres des expressions : Combinaiso
n des 3 lments ci dessus. Les nombres peuvent tre reprsents dans diffrentes bases dcim
le, octale(@), hexadcimale ($) et binaire (%). Lidentificateur de la base seffectue
grce un suffixe ou un prfixe dans le cas de certain assembleur (H). Sans indicati
on particulire, un nombre est interprt comme un dcimal. Les expressions : Elles se c
omposent dune suite de nombres et de symboles spars par des oprateurs logiques, arit
hmtiques 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 le
s caractres dcriture disponibles dans l diteur sont utilisables. Les directives dasse
mblage : Une directive dassemblage (ou pseudo-instruction) est une commande que l
e programmeur utilise pour donner des directives lassembleur et qui agit sur le p
rocessus dassemblage. On distingue 5 catgories de directive. Affectation de symbol
es : EQU et SET Gestion de lespace mmoire : ORG et RMB Inscription de constantes e
n mmoire : FCB, FDB et FCC Assistance la programmation : END et OPT Prsentation de
s listings : TITLE et PAGE EQU : affectation dune valeur un symbole ou tiquette Sy
ntaxe : 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 oprand
e. Les symboles utiliss avec EQU ne peuvent pas tre redfinis dans la suite du progr
amme. SET : affectation temporaire dune valeur un symbole. Rle :
SET est semblable EQU except que laffectation est temporaire. Les symboles dfinis a
vec 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 Pa
ge 55
Master en Contrle et instrumentation

Cours Microprocesseur 6809


Rle :
Dr. Lachouri Abderrazek

Dfinition dune adresse dorigine. Charge le PC la valeur spcifie par lexpression situ
ans le champ oprande. Remarque : Plusieurs ORG peuvent-tre utiliss dans un mme progr
amme source. On structure ainsi lespace mmoire en blocs : le programme principal l
es sous programmes la gestion des interfaces Chaque bloc est initialis par un ORG
. RMB : Reserve Memory Bytes (Rservation doctets en mmoire) Syntaxe : 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 Cons
tant Byte (dfinition dune constante dun octet) Syntaxe : Rle : Symbole FCB expr1, ex
pr2... Symbole RMB Expression
Inscrit la valeur exprime sur 8 bits des expressions du champ oprande dans les cas
es mmoires dfinies par la valeur du PC. Pour chaque criture en moire : PC = PC+1 Rem
arque : Les expressions peuvent tre numriques ou alphanumriques. Le symbole
plac d
evant 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


Exemples : DATA ORG FCB FCB FCB FCB EQU LDX END $4000 1,$62+$48, A, B $FF 4,$4
DIX+2 $A DATA
Dr. Lachouri Abderrazek
$4000 01 AA 41 42 FF 34 04 0C 8E 40 00
DIX
FDB : Form Double Byte Constant (dfinition dune constante de deux octets) Syntaxe
: Rle : Symbole FDB Exp1, Exp2,...
Identique FCB mais cette fois, lexpression (valeur numrique et symbole) reprsente u
ne valeur sur 16 bits. Le PC est incrment de 2 pour chaque mot crit. Exemples : DAT
A 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
DIX FIN
FCC : Forme Constant Character string (dfinition dune constante chane de caractres S
yntaxe : Symbole FCC dlimiteur chane dlimiteur
Master en Contrle et instrumentation
Page 57

Cours Microprocesseur 6809


Rle :
Dr. Lachouri Abderrazek
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 dlimiteu
rs 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 : M
ESS FCC FCC FCC FCC /FIN/ LUNDI #MARDI# 252 $2000 46 49 4E 4C 55 4E 44 49 4D 4
1 52 44 49 35
END : fin d assemblage Syntaxe : Rle : END
Cette directive marque la limite du programme source. Les lignes situes aprs cette
directive sont ignores par l assembleur. PAGE : Saut de page Syntaxe : Rle : PAGE
Fait avancer le papier de l imprimante au dbut de la page suivante. NAME : nom du
programme Syntaxe : NAME PMAK
Master en Contrle et instrumentation
Page 58

Cours Microprocesseur 6809


Rle :
Dr. Lachouri Abderrazek
Cette directive permet de donner un nom au programme qui apparait en tte de page.
OPT : Option d assemblage Syntaxe : 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 e
st 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 : d
emande l impression du listing aprs opration d assemblage termin. Lopration dassemblag
e : Elle seffectue gnralement en deux tapes (2 passes). 1re passe : Consiste en une l
ecture 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 : les t
iquettes manquantes les codes opratoires errons les oprandes manquants Page 59 OPT
ABS
Master en Contrle et instrumentation

Cours Microprocesseur 6809


Analyse smantique :
Dr. Lachouri Abderrazek

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 em
ploys. 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 inter
ire qui servira au second passage. Les directives dassemblage sont galement interp
rtes. 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 four
nit le listing avec son code objet.
Master en Contrle et instrumentation
Page 60

Cours Microprocesseur 6809


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 c
ases 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 interrup
tions FIRQ ORG TFIRQ " " RTI Initialisation des vecteurs d interruption ORG $FFF
6 FDB TFIRQ FDB TIRQ FDB TSWI FDB TNMI FDB DEBUT END Master en Contrle et instrum
entation
Dr. Lachouri Abderrazek
Page 61

Cours Microprocesseur 6809


Appel de lEditeur : EDITE
Exemples de commande : BUILD fichier.ASM:1 LOAD fichier.ASM: 1
Dr. Lachouri Abderrazek
[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 HNZ
VC 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 8
B 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+ F
4 5 3 B = B && M + +0 ANDCC 1C 3 2 C = CC && IMM ? ? ? ? ? ASLA 48 2 1 8 +++ + A
rithmetic 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 1
0 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 C
MPD +++ + 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 COM
A 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 Wai
t for Interrupt Master en Contrle et instrumentation Page 63

Cours Microprocesseur 6809


DAA DEC DECA DECB DEC EORA EORB R1,R2 INCA INCB INC
Dr. Lachouri Abderrazek
+ + + + + + +0 + ++ ++ ++ +0 +0
EOR EXG INC JMP JSR
88 2 C8 2 1E 8
0A 2 98 2 D8 2
0C 0E 9D
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 4
C 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 p
c = EA 7 2 AD 7+ 2+ BD 8 3 jump to subroutine
+++ +++ +++
Master en Contrle et instrumentation
Page 64

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek
Jeux dInstruction du 6809 Modes dAdressages Immdiat Direct Index Etendu Inhrent Instr
uction 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+ 7
4 7 3 MUL NEG NOP OR ORA ORB ORCC PSHS PSH PSHU PULS PUL PULU ROL ROLA ROLB 8A C
A 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 NEGA NEGB
NEG 3D 11 1 40 50 00 6 2 60 6+ 2+ 70 7 3 12
Description A=M B=M D = M:M+1 S = M:M+1 U = M:M+1 X = M:M+1 Y = M:M+1 S = EA U =
EA X = EA Y = EA Logical shift left Logical shift right
CC bit 5 3 21 0 HNZVC + +0 + +0 ++0 ++0 ++0 ++0 ++0
+ + + 0 0 0
+ + +++ +++ +++ + + + + + + + 9
36 5+ 2 35 5+ 2 37 5+ 2 49 59
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 S
tack Pull Registers from S Stack Pull Registers from U Stack 2 1 Rotate left thr
u carry 2 1
8 ++++ 8 ++++ 8 ++++ + +0 + +0 ? ? ? ? ?
++++ ++++
Master en Contrle et instrumentation
Page 65

Cours Microprocesseur 6809


ROL RORA RORB ROR
Dr. Lachouri Abderrazek
+ 0 0 0 +++ + + + + + +
09 6 2 69 6+ 2+ 79 7 3 46 56 06 6 2 66 6+ 2+ 76 7 3 2 1 Rotate Right 2 1 thru ca
rry
ROR RTI RTS SBC SEX
SBCA SBCB
82 2 2 92 4 2 A2 C2 2 2 D2 4 2 E2
STA STB STD ST STS STU STX STY SUB SUBA SUBB SUBD SWI SWI SWI2 SWI3 SYNC TFR TST
R1,R2 TSTA TSTB TST
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 A
F 80 2 2 90 4 2 A0 C0 2 2 D0 4 2 E0 83 4 3 93 6 2 A3
1F 6 2
0D 6 2 6D
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 R
2 = 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
Master en Contrle et instrumentation
Page 66

Cours Microprocesseur 6809


Legend:
Dr. Lachouri Abderrazek
+ Test and set if true, OP Operation Code(Hexadecimal) cleared otherwise = Trans
fer from - Not Affected ~ Number of MPU Cycles H Half carry (from bit 3) CC Cond
ition Code Register # Number of Program Bytes N Negative (sign bit): : Concatena
tion + 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 IN
DEXED ADDRESSING MODE table, in Appendix F. 2. Rl and R2 may be any pair of 8 bi
t 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 pulle
d. 5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instru
ctions. 6. SWI sets I and F bits. SW12 and SW13 do not affect I and F. 7. Condit
ions Codes set as a direct result of the instruction. 8. Value of half carry fla
g is undefined. 9. Special Case Carry set if b7 is SET. Mode Relative OP Descrip
tion 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 Branc
h2Zero 10 5(6) 4 Long Branch2Zero 2C 2E 3 2 Branch > Zero 10 5(6) 4 Long Branch>
Zero 2E
Instruction BCC BCS BEQ BGE BGT
Forms BCC LBCC BCS LBCS BEQ LBEQ BGE LBGE BGT LBGT
5 3 2 1 0 H N Z V C
Master en Contrle et instrumentation
Page 67

Cours Microprocesseur 6809


BHI BHS BHI LBHI BHS LBHS BLE BLO BLS BLT BMI BNE BPL BRA BRN BSR BVC BVS BLE LB
LE BLO LBLO BLS LBLS BLT LBLT BMI LBMI BNE LBNE BPL LBPL BRA LBRA BRN LBRN BSR L
BSR BVC LBVC BVS LBVS 22 3 10 5(6) 22 24 3 10 24 2F 10 2F 25 10 25 23 10 23 2D 1
0 2D 2B 10 2B 26 10 26 2A 10 2A 20 16 21 10 21 8D 17 28 10 28 29 10 29 516) 3 5(
6) 3 56) 3 5(6) 3 5i6) 3 5(6) 3 5(6) " 5i6) 3 5 3 5
Dr. Lachouri Abderrazek
2 Branch rligher 4 Long Branch Higher 2 Branch Higher or Same 4 Long Branch High
er or Same 2 BranchsZero 4 Long BranchsZero 2 Branch lower 4 Long Branch Lower 2
Branch Lower or Same 4 Long Branch Lower or Same 2 Branch<Zero 4 Long Branch<Ze
ro 2 Branch Minus 4 Long Branch Minus 2 Branch ZtO 4 Long Branch Z0 Branch Plus
4 Long Branch Plus 2 3 2 4 Branch Alwavs Long Branch Always Branch Never Long Br
anch 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 p
rogramme initial l o il avait t suspendu. Interruptions "matrielles" Le microprocesse
ur est capable de rpondre des sollicitations extrieures. Ainsi peut-il traiter des
informations en "temps rel". Pour cela, le microprocesseur est "coupl" au monde e
xtrieur par des lignes sur lesquelles s effectue, de faon indterministe, un change d
e messages sous forme de signaux logiques ! A partir des sollicitations extrieure
s, 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 com
pte, le microprocesseur doit tre capable de traiter rapidement cette demande exte
rne. Le microprocesseur 6809 possde pour cela quatre lignes, baptises "entre d inte
rruption" matrielles qui sont par ordre de priorit : RESET : Rinitialisation du mic
roprocesseur. : 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 aFonction 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 demande
s d interruption arrivant sur la ligne IRQ. Avec ce type d interruption, le cont
exte total du microprocesseur (12 octets) est sauvegard sur la pile S. b- Fonctio
n du flag F * Masque concernant l interruption FIRQ. Tableau
Lorsque ce flag est mis 1, le microprocesseur ne prend pas en compte les demande
s d interruption arrivant sur la ligne FIRQ. Ici, le contexte partiel du micropr
ocesseur (3 octets) est sauvegard sur la pile S. (seuls les contenus des registre
s 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 indique
r 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


Tableau
Dr. Lachouri Abderrazek
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 prop
rement dans le programme suspendu (nombre de registres dpils). Interruptions "logi
cielles : Hormis les demandes d interruptions matrielles, il existe d autres caus
es d interruption de programme. Ce sont les interruptions "soft". Elles se tradu
isent par des instructions par entire que l on place dans les programmes. Elles r
eprsentent des vnements "dterministes". La sauvegarde du contexte est totale. On en
dnombre trois, qui sont : SWI (SoftWare Interrupt) SWI2 (SoftWare Interrupt n2) SW
I3 (SoftWare Interrupt n3) Les interruptions de synchronisation. Pour finir, le m
icroprocesseur 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 d
u contexte. Pour cela, on trouve les instructions suivantes : CWAI (attente d in
terruption). SYNC (attente de synchronisation). Quelques remarques importantes :
Les lignes NMI, FIRQ, IRQ et RESET ainsi que l instruction SWI positionnent aut
omatiquement 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 (masqua
ge 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


Illustration :
Dr. Lachouri Abderrazek
Master en Contrle et instrumentation
Page 72

Cours Microprocesseur 6809


Tableau rcapitulatif : Interruptions :
Dr. Lachouri Abderrazek
Instructions d interruption :
Traitement des interruptions : Le traitement dune interruption se fait selon un p
rotocole bien tabli que nous allons dtaill. Ds la mise au niveau bas de la broche din
terruption, ou bien ds la rencontre de linstruction SWI, le microprocesseur entame
une "procdure implicite", programme dans la silice, dont les organigrammes respec
tifs 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 v
aleur contenue dans le vecteur de linterruption demande. Ceci provoque un saut ladr
esse correspondante. Dans un systme simple et fig, o la demande dinterruption ne peu
t 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 directe
ment lexcution du programme. Dans ce cas gnral o plusieurs "utilisateurs" peuvent dem
ander linterruption et o un "utilisateur" au moins veut pouvoir choisir entre plus
ieurs programmes dinterruption diffrents, la "procdure implicite" doit aboutir dabor
d un programme de gestion de linterruption. Le programme de gestion dune interrupt
ion IRQ par exemple, doit assurer les oprations suivantes :
dabord identifier le d
emandeur faire respecter une hirarchie dans les demandeurs lorsquil y a des appels
simultans. La priorit entre demandes simultanes de diffrentes interruptions est rali
se en partie par le jeu des masques.
brancher le microprocesseur (par un changeme
nt du PC) au programme dinterruption souhait par le demandeur. Mthodologie de gesti
on des priphriques dentres-sorties : Les transferts E/S peuvent seffectuer selon diffr
ents modes. Deux grands modes apparaissent : Le mode programm et le mode interrup
tible. Le mode programm : Les transferts seffectuent linitiative du microprocesseur
. Cest lui (c.a.d. le programme) qui dcide du moment des actions. Ces transferts p
euvent 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 t
oujours 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 h
andshaking).
Master en Contrle et instrumentation
Page 74

Cours Microprocesseur 6809


Principes:
Dr. Lachouri Abderrazek

Avant deffectuer un transfert, le microprocesseur teste ltat du priphrique et ne ralis


e lopration quaprs stre assur de sa diponibilit. Ltat du priphrique (prt ou occu
rception plein ou registre de transmission vide...) est gnralement indiqu par un bi
t dtat appel flag. Dans le cas o il y a beaucoup dinterfaces il excute des boucles dat
ente sur des vnements extrieurs en passant son temps tester les indicateurs dtat de c
hacun (technique du sondage ou polling). Consquence de cette technique le micropr
ocesseur est immobilis dans cette tche. Trs pnalisant ! Le remde... Le mode interrupt
ible : Dans ce cas, les transferts dE/S seffectuent la demande du priphrique. (Exemp
le du clavier : le microprocesseur ne peut pas savoir quel moment lutilisateur ap
puiera sur une touche du clavier). Celui-ci envoie par lintermdiaire du circuit din
terface une demande dinterruption au microprocesseur. Si celle-ci nest pas masque o
u inhibe, le microprocesseur termine lexcution de linstruction en cours, puis se bra
nche dans le programme dIT grce au vecteur dinterruption. Cette mthode permet de dcha
rger le microprocesseur des oprations de polling. Avantage : Les priphriques peuven
t fonctionner leur propre vitesse sans pnaliser pour autant le microprocesseur. Q
uestions : Que faire sil y a plusieurs priphriques susceptibles de faire des demand
es dIT? Dans ce cas, il faut pouvoir identifier le priphrique demandeur. Trois poss
ibilits : 1- On utilise les diffrentes entres dIT du microprocesseur si cela est pos
sible. 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 cbl
e". 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 priphr
ique possde son propre vecteur dinterruption. On sait quel est le mcanisme mis en p
lace lors de la prise en compte dune telle demande :
Sauvegarde du contexte intgra
l ou partiel. Chargement du PC avec le contenu de vecteur d interruption spcifiqu
e.
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 interru
ption doit comporter un mcanisme de recherche (de scrutation) pour connatre quel e
st le contrleur qui a provoqu la demande. Ainsi apparat la notion de Priorit! La ges
tion des priorits peut se faire de faon logicielle ou matrielle. Mthode logicielle A
prs 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 d
es interfaces afin de savoir qui a effectu la demande. Master en Contrle et instru
mentation 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 ad
resses (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 logi
que 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 : Pr
ise 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. Regi
stre 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 ma
sques. 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 parm
i celles actives. 5. Registre de sortie qui fournit l octet constituant une part
ie de l adresse du vecteur. Lautre partie tant dfinie par ailleurs (b 5, b6 et b7 ta
nt initialiss par le microprocesseur). Seconde illustration : Vectorisation par dc
odeur de priorit et Mux : Ici, les sorties du codeur de priorit sont multiplexes av
ec les lignes d adresse A1, A2 et A3.
Commentaires : La ligne A0 est relie directement la mmoire car on agit sur les adr
esses. 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 corresp
ondant la demande. Il n y a donc plus besoin de la scrutation logicielle des int
erfaces.
Master en Contrle et instrumentation
Page 79

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek

Chapitre IV : Interfaage du Microprocesseur 6809 IV.1 INTRODUCTION : La plupart d


es microprocesseurs prsentent peu dutilit fonctionnelle par eux mmes. La plupart dent
re 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 tr
ansfrer 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 microt
raitement) puisse en slectionner un pour un transfert de donnes. Gnralement, les tra
nsferts 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- Ge
stion dinterruption ou de rinitialisation. Objectifs de ce Chapitre est dtudier les
circuits mmoires :
Comprendre l organisation et le fonctionnement de plusieurs ty
pes
Comprendre la terminologie lie aux circuits mmoires
Connatre les diffrences entr
e RAM et ROM et entre mmoire de masse et mmoire volatile Comprendre lorganisation e
t le fonctionnement de plusieurstypes de mmoires
Apprendre l utilisation et la co
mbinaison des mmoires IV.1 Interfaage avec mmoire : IV.1.1 Introductioon : aprs lUCM
pour le microprocesseur, la mmoire est lorgane le plus important dun microordinateu
r. Il existe deux catgories deux mmoires : mmoire centrale et mmoire auxiliaire. - L
a 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 p
ar contre les mmoires auxiliaires sont trs grandes. Les deux principales mmoires ce
ntrales sont la RAM et la ROM. Gnralement, la mmoire peut tre soit accs squentiel, so
t accs alatoire. A accs squentiel signifie que pour localiser des donnes, il faut par
courir en squence toute la mmoire. Par exemple , quand les donnes sont ranges sur un
e bande magntique, il est ncessaire de parcourir la mmoire en entier jusqu localise
r 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 don
n (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 u
n nombre qui lui est propre de manire non ambigu ; ce nombre est appel adresse de l
a 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. RA
M de 1 Mga = 220 x 8bits. IV.1.1.4 Temps dcriture: Temps qui scoule entre linstant o l
formation stocker et ladresse sont fournies lentre de la mmoire et le moment o linf
ation est effictivement crite. IV.1.1.5 Temps de lecture: Temps qui scoule entre lin
stant o ladresse est fournie la mmoire et le moment o la donne apparat en sortie. IV.
.1.6 Temps daccs la mmoire: Le temps entre le signal dactivation et le moment o lopr
on est acheve. IV.1.1.7 Temps de cycle la mmoire: Le temps qui doit scouler entre de
ux 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 dis
parat lorsquelles ne sont plus sous tension. Elles sont ralises en technologie MOS,
CMOS, bipolaire ou ECL. Ces mmoires sont toujours monotension: +5v, compatible TT
L 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


Exemple : La RAM HM2064
Dr. Lachouri Abderrazek

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 inco
nvinients suivants: 1- Un cot par bit plus lev; 2- Une intgration limite; IV.1.2.2 Le
s 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 gchett
rce dun transistor MOS, mais la rsistance gchette-source ntant pas infinie, cette cap
acit se dchargera, il faudra donc la recharger pour maintenir linformation, on dit
quil faut rafraichir la mmoire. En technologie MOS ce rafrachissement doit interven
ir 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 co
nvenables 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 dcritur
e; - Une ligne dentre des donnes (pour lcriture); - Une ligne de sortie des donnes (po
ur la lecture);
Master en Contrle et instrumentation
Page 84

Cours Microprocesseur 6809


Exemples:
Dr. Lachouri Abderrazek
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 lo
pration 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 lopr
ation 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 d
ire 64 lignes x 64 colonnes, on aura seulement 64 amplificateurs de rgnration et no
n 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 lectur
e seule. En raison de sa non volatilit la ROM est utilise pour stocker des program
mes de commande appels souvent programmes moniteurs. La ROM est une mmoire program
mable 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 linterrupteu
r 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 don
ne 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 m
anire 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 constructe
ur a plac un transistor dont une des lectrodes est en srie avec un fusible de Nichr
om 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 fu
sible et ainsi crire un 0. Cependant, si on dsire conserver un 1 , il faut empcher l
e transistor conduire en mettant la source du transistor 5 volts. Donc, la ddP e
ntre la grille et la source est infrieur au tension de seuil, en effet le transis
tor 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 c
rire un zro, il faut claquer par avalanche la diode D1 correspondant au croisemen
t concern; ceci est effectu par la mise du colonne de ce croisement sous une tensi
on 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 co
rrespondante 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 croisemen
ts 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 effaab
e 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 peu
t alors conserver pendant de trs longues dures des charges lectriques; mme avec llvati
n de la temprature ; la charge se conserverait plusieurs annes. Initialement le tr
ansistor 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 fo
rte 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) f
lottante dun MOS conventionnel canal N. Aprs disparition de limpulsion les lectrons
restent prsonier sur la grille et dveloppe un champ lectrique qui repousse les lectr
ons du susbstrat crant ainsi une zone avec conduction par trous. Un courant lectri
que 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 accu
muls sur la grille afin quils puissent traverser la couche doxyde et rejoindre le s
ubstrat, cela consiste soumettre le boitier une nergie radioactive : rayon ultrav
iolet. Les photons hurlent (frappent) la grille flottante de silicium dlogeant le
s 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 lec
ture dun RAM.
1- Placer ladresse de la case mmoire sur le bus dadresse . 2- Envoyer lordre de lect
ure. 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 ladr


esse de la case mmoire o lon veut crire une donne; 2- Fourinir la donne elle mme (plac
r la donne sur le bus de donnes); 3- Donner lordre dcriture; Master en Contrle et inst
rumentation 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


Dr. Lachouri Abderrazek
Master en Contrle et instrumentation
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 doiv
ent tre conscutives et aller de $0080 $047F.

1- Trouver le nombre de boitiers utiliser; 2- Faire la table des adresses du pla


n mmoire considr; 3- Raliser le circuit dinterfaage de cette mmoire avec le microprces
eur 6809. EXO2: Une mmoire est constutue dune EPROM stend de ladresse $0800 ladesse
FH et une RAM stend partir de ladresse $C000 ladresse $CFFF. 1- Quelle est la capaci
t 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 mic
roprocesseur 6809 en utilisant les dcodeurs suivants:
EXO3: Une mmoire EPROM de 64ko est organise en pages (segments); chaque page est c
onstituer 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 boi
tiers et des pages, on utilise des dcodeurs valids lorsquils receveront le signal I
O/ 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 boi
tiers constituant chaque segment. 3- Faire la table des adresses du plan mmoire c
onsidr. 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 gnral
e 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 (Por
tA et PortB) bidirectionnels de huit bits utiliss pour communiquer avec les priphri
ques dE/S. Chaque ligne des deux ports (PortA et PortB) peut tre programme pour agi
r 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 transmissio
n de donnes priphrique. Larchitecture interne du PIA 6820 est ralise autour de deux re
gistres de contrle (CRA et CRB), deux registres de direction de donnes (DDRA et DD
RB) et deux registres dinterface priphrique (ORA et ORB). IV.2.2 Architecture inter
ne 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 cett
e 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 di
rectement sur le bus de donnes interne. IV.2.2.2 Le Port B : Un port de huit lign
es, de la mme faon que le Port A, chaque ligne peut tre programme en entre ou en sort
ie. 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 a
u 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 tro
is tats. Les donnes dans le registre priphrique du port B programmes en sorties sur l
es lignes, peuvent tre lues par la MPU en utilisant linstruction LDA PIA. Master e
n 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, perme
ttant de transfrer les donnes de et vers le PIA et la MPU. Les dirvers de sortie d
u 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 b
as 0 . Ces lignes doivent tre maintenu leurs tats pendant la dure de limpulsion E (E
able). Cette impulsion de validation E est normalement lhorloge
2 . IV.2.2.5 La l
igne 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 le
s 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 pu
is un niveau haut initilise tous les registres du PIA6820. IV.2.2.7 La ligne Rea
d/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 le
s 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 son
t actives au niveau bas et sont utilises pour interrompre la MPU directement ou i
ndirectement selon un circuit de priorit. Les interruptions sont gres par des routi
nes 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 dinterru
ptions (CA1 et CB1): Ces lignes sont en entres uniquement et positionnent 1 le bi
t B7 du registre contrle du PIA (voir plus loin). IV.2.2.10 La ligne de contrle (C
A2): 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 comm
e une entre dinterruption ou une sortie priphrique. En entre, cette ligne a une impdan
ce 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 e
st 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 (bi
t7) du registre de contrle CRA(B). Les bits 0 et 1 dterminent le mode de fonctionn
ement de cette ligne dinterruption. Aprs une lecture du registre de donnes A, le bi
t IRQA1/IRQB1 (bit 7) est mis zro.
b- Le contrle du Registre de Direction de Donnes DDRx (CRx(2): Le bit CRx(2), en c
ombinaison avec les deux lignes RS0 et RS1 du registre de slection, est utilis pou
r diffrencier entre le registre de sortie ORA(B) et le registre de direction de d
onnes 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 fonct
ion 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 q
uatre 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 dinterr
uption 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 ave
c 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 pou
r la communication asynchrone. Appartient la famille des U.A.R.T. Ce circuit pro
grammable permet la communication srie asynchrone selon la procdure START-STOP. Pr
ocdure trs utilise pour de faibles dbits dinformations (50 ->19 200 bits/seconde : vi
tesse 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 st
op. 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 mgabi
ts). Niveau 1 : -12V. Niveau 0 : +12V. Schma :
Prsentation

Remarque : il ny a pas dentre Reset. Ce circuit intgre : Un metteur de donnes asynchro


ne ; Un rcepteur de donnes asynchrone ; Une logique de commande Modem ; Des entres
dhorloge spares pour lmission et la rception. Master en Contrle et instrumentation Pag
103

Cours Microprocesseur 6809


Dr. Lachouri Abderrazek
Lmission et la rception peuvent fonctionner simultanment (full-duplex) et avec des v
itesses diffrentes. Ce circuit comprend quatre registres internes : 1 registre de
transmission ; 1 registre de rception ; 1 registre de contrle ; 1 registre d tat ;

Ce circuit possde 24 broches. Cot microprocesseur : 1- Le bus des donnes : D0 ... D


7. 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 co
ntrle : 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 ga
ent 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 relie
s 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) C
ette 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 regist
re parmi les 4 disponibles. (Voir plus loin tableau rcapitulatif). 3- IRQ (Interr
upt 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 : prior
ity interrupt control). Master en Contrle et instrumentation Page 104
Etude matrielle

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 descend
ant de ce signal. Rxclk : horloge de rception Sert de synchronisation pour la rcep
tion 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 p
rt 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 porte
use. 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 c
ette entre. (Dfaut sur la ligne !). Un niveau bas signifie une prsence de la porteu
se au niveau du modem, tat normal. Remarque : non utilise, elle doit tre toujours a
u niveau bas ! Cette entre peut gnrer une interruption IRQ, si CR7 = 1 et si un fro
nt 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 pa
r 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 dem
ande 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. Fo
nctionnement : Si pas de transmission en cours, alors le contenu du TDR est tran
sfr dans le registre dcalage automatiquement aprs une instruction dcriture. Si par co
tre, 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 r
egistre, le caractre suivant peut-tre crit dans TDR mme si le caractre prcdent est enc
re en cours de transmission dans le registre dcalage. Ds que le transfert lieu - U
n bit du registre dtat est positionn "1". 2- RDR (Rception Data Register) Registre d
e rception dans lequel on reoit le mot (8 bits) en provenance du priphrique. Fonctio
nnement : Quand un caractre complet est reu, il est automatiquement transfr du regis
tre de dcalage de rception dans le RDR. A ce moment l, un bit dans le registre dtat e
st 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 mo
t 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 du
e transmission ou dune rception. Le registre de contrle CR (Control Register) : Per
met 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 part
icularit 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 rali
s par la ligne R/W barre. Les combinaisons entre RS et R/W permettent de slectionn
er 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 Txcl
k. La combinaison (11) gnre un reset logiciel (Master reset)) indispensable avant
toute programmation du CR. Le Master reset : initialisation locale (propre l ACI
A) Consquences : Remise 0 du SR except les bits lis aux conditions externes :
Initi
alise 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 o
n 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 tot
al 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 st
op nexiste pas. CR5 et CR6 : Ces deux bits contrlent la fois la sortie RTS et la d
emande 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 tes
r 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 in
terruption gnre par lACIA vers le microprocesseur chaque fois que le TDR est vide (d
ans 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 e
t 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 concerna
nt 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 d
emande 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 p
orteuse donc plus de donne!). Remarque : SR0 = 0 --> RDR vide --> on attend ! SR1
: Concerne le registre de Transmission. SR1 = 1 : lorsque la donne est disponibl
e 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 ret
our 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 q
ue 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 synch
ronisation qui se caractrise par une absence du (des) bit(s) de stop. Mise 0 de S
R4 aprs : une lecture du RDR aprs disparition du problme.
un MASTER RESET.
un nivea
u 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
5 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 c
aractre est incorrecte. SR6 est remis zro aprs :
Une lecture du RDR si pb rsolu !
MASTER RESET. SR7 : SR7=1 : Indique quil y a une demande dinterruption. Cette dem
ande peut provenir des vnements suivants : RDR plein (SR0 = 1) si CR7 = 1.
TDR vid
e (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 program
me derreur par interruption pour indiquer une erreur lors de la reception ou la t
ransmission. Dbut de location des donnes transmettre ladresse $D002. Les donnes r
seront stockes ladresse $D000.
Programme dinterfaage de lACIA 6850
START LDAA #$03 STAA $E000 LDAA #$A1 STAA $E000 BRA DMY LDAA $E000 RORA BCS RECV
BITA #$38 reset ACIA store in control register sets IRQ, !RTS=0, 7 data bits ev
en parity, 2 stop bits, clk:16 store in control register set interrupt vector. m
ain 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 Page 1
13
DMY ISR
Master en Contrle et instrumentation

Cours Microprocesseur 6809


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
RECV
ERR
reset flags store in control register
Exemples : Exemple 1 : Facteur de rythme= 16 8 bits par caractre Pas de parit 2 bi
ts stop mission et rception valide pas de reset interne Pas de RAZ des indicateurs
derreur pas de break Mot de commande 10110001 soit $B1 Programmation du 6850
LDA
#$B1 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 restauratio
n 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 hypoth
es 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 microproce
sseur 6850; 3- Si la dure dun bit est de 9ms ; quelle est alors la frquence de lhorl
oge 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 l
e programme en assembleur 6809 pour envoyer ce caractre vers le tlimprimeur ; 2- Fa
ire 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 mod
asynchrone srie. La procdure est la suivante : Tlimprimeur standard format des cara
ctres 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 poid
s tant transmis le premier. 4) Le bit de plus fort poids est le bit de parit, pair
e, 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 requiren
t 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)
0
1
0
0
0
1
0
1
1
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. Rappel
ez-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 tlimpri
meur Afin dassurer une bonne liaison, la procdure suivante doit intervenir : 1) At
tente 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-vo


us que cest le bit de plus faible poids qui arrive le premier. 4) Cration du bit d
e 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 entr
e 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
cer cette donne ladresse mmoire $2040. Mode dmission vers un tlimprimeur But : Trans
tre des donnes vers un tlimprimeur via le circuit 6850 ; sachant que la donne se tro
uve en mmoire ladresse $2040. La transmission dune donne seffectue selon les tapes su
vants : 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) Emis
sion des deux bits de stop (des 1 logiques). Tche demande : envoyer la donne se tro
uvant 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 lectri
que dinterfaage du circuit 6850 avec le microprocesseur 6809.
Master en Contrle et instrumentation
Page 117

Vous aimerez peut-être aussi