Vous êtes sur la page 1sur 117

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

"Microprocesseur

6809"

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

Master en Contrle et instrumentation

Page 1

Cours Microprocesseur 6809


Historique

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 2

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

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

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

Master en Contrle et instrumentation

Page 3

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Le fonctionnement n'est plus dfini par un ensemble de circuits logiques, cbls entre eux, mais par une suite ordonne d'instructions stockes en mmoire et gres par cet lment. Nouveau synoptique :

Principe de la logique programme


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

Initialisation [M1] = A et [M2] = B Master en Contrle et instrumentation Page 4

Cours Microprocesseur 6809


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 squentiellement et automatiquement des suites d'oprations lmentaires. Son rle : Ce circuit remplit deux fonctions essentielles :

Le traitement des donnes


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

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

Puissance d'un microprocesseur Dfinition : La notion de puissance est la capacit de traiter un grand nombre

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

Master en Contrle et instrumentation

Page 6

Cours Microprocesseur 6809


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

Master en Contrle et instrumentation

Page 8

Cours Microprocesseur 6809


Prsentation du brochage :

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 9

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

charge TTL et 8 entres de circuits appartenant la famille 6800. Le bus est en logique trois (03) tats. Le bus des adresses 16 bits (Ao A15) : Ces broches unidirectionnelles transfrent l'adresse 16 bits fournie par le microprocesseur au bus d'adresse du systme. Mmes caractristiques lectriques que pour le bus des donnes. Bus en logique trois tats. NB : les adresses sont valides sur le front montant de Q. Le bus de contrle : des : Cette broche indique le sens de transfert donnes sur le bus des donnes. Ligne logique 3 tats.

Cette ligne est valide sur le front montant de Q. - Les lignes d'tat du bus : BA (Bus Available) et BS (Bus State) Information qui permet de connatre l'tat du microprocesseur tout moment.

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Le schma adopt est gnralement le suivant :

Le P.C. est initialis avec le contenu des vecteurs d'initialisation qui se Trouvent aux adresses $FFFE et $FFFF. Ce contenu reprsente l'adresse du dbut du programme qui sera Excut par le microprocesseur.

Master en Contrle et instrumentation

Page 11

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

La frquence du quartz (horloge) microprocesseur.

est quatre fois la frquence du

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

Master en Contrle et instrumentation

Page 12

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Broches complmentaires du bus de contrle :


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

Broches spcifiques au 6809 E


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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Architecture interne du microprocesseur 6809 :

Master en Contrle et instrumentation

Page 14

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 15

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

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

Master en Contrle et instrumentation

Page 17

Cours Microprocesseur 6809


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

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

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

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

Master en Contrle et instrumentation

Page 19

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Master en Contrle et instrumentation

Page 20

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Code d'Instruction :

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

Code opration

Octet1

Code opration

Donne immdiate ou Octet2 adresse dire cte /relative

Donne immdiate ou Octet3 adresse dire cte /relative

Octet1 Octet2

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 instructions font rfrence des donnes ou a des adresses de diverses faons, ces rfrences tant les modes d'adressage dont dispose le microprocesseur.

Master en Contrle et instrumentation

Page 21

Cours Microprocesseur 6809


Structure d'une instruction : Octeti code opratoire ordre oprations : arithmtique logique 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: Frquence de l'horloge E= 1 MHz donc T = 1 s. La dure dpend de la complexit de l'instruction, son expression est : = . Mode de fonctionnement d'une instruction : Excuter une instruction c'est en faite raliser le cycle suivant :

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

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


extrait. Un octet donc = .

Master en Contrle et instrumentation

Page 22

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Linterprtation se fait selon le processus suivant :

Registre d'Instructi ons

D codeur d'Instructi ons

logi que de contrle mi ssi on de si gnaux vers le s circui ts R/W Registre 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 : Instructions de traitement des donnes Instructions arithmtiques 1. Addition (DAA, ABX, ADC) 2. Multiplication (MUL) 3. Soustraction (SBC, SUB) Exemples : ADDD #$1200 avec (A)=$10 et (B)=$01, c--d (D)=$1001 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 et gauche (ASR, LSR et ASL, LSL) 3. Les fonctions logiques de base (AND, OR, EOR) 4. Lincrmentation/dcrmentation et complmentation (COM - NEG NOP - INC - DEC - CLR) Exemples : AND B # $55 avec (B)= $AA

Master en Contrle et instrumentation

Page 24

Cours Microprocesseur 6809

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

si

Page 26

Cours Microprocesseur 6809


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 absolu (JMP : 2 octets) Exemple : Debut CLRA LDA $1000 STA $8000 BRA Debut Instructions dappel et de retour de sous-programme Appel : a) saut absolu (JSR) b) saut relatif (BSR) Retour : RTS Le contenu (PC) sauvegard dans la pile est restitu dans le registre PC. Reprise du programme lendroit o il a t interrompu. Exemple : CLRA CLRB LDA STA JSR LDB STB HLT SP1 LDA STA RTS

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

Master en Contrle et instrumentation

Page 27

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Instructions oprant sur les pointeurs U, S et X, Y. a) Load effective adress (in register) : LEA. Permet de manipuler des donnes sur 16 bits. Ces donnes reprsentent gnralement des adresses. Exemple : LEAX avec (X)=$1010

Instructions oprant sur les pointeurs S et U a) Empilement des registres dans la pile (PSH) b) Dpilement des registres de la pile (PUL) Aprs chaque sauvegarde/extraction, dcrment/incrment de 1 Exemple : PSHS A, X le pointeur est automatiquement

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

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

b7 PC U/S 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 base. Combines avec le jeu des modes dadressage (9 au total), elles fournissent 1464 codes opratoires diffrents. (Pour le 6800 ou 6802, on avait 72 instructions de base et 193 codes opratoire) Les modes d'adressage sont : ladressage ladressage ladressage ladressage ladressage ladressage ladressage ladressage ladressage inhrent ou implicite immdiat tendu tendu indirect direct par registre index direct index indirect relatif

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

Ladressage inhrent ou implicite


Ladressage inhrent est utilis par les instructions qui agissent seulement sur les registres internes du microprocesseur. Ici, le code opratoire de linstruction contient toute linformation dadressage ncessaire (adresse source ou/et adresse destination). Exemples : 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 registre ou le jeu de registres devant tre utiliss par linstruction. Cet octet est appel post-octet. Le tableau ci-dessous prsente le codage de ce post-octet : b7 b4 Source 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 linstruction. La donne existe sous la forme de 1 ou 2 octets. (le code opratoire est immdiatement suivi en mmoire de la donne sur laquelle porte lopration) Cet adressage concerne tous les registres internes sauf le DP. Exemples : LDA #$35

CCR E F H I N Z V C D X Y S U PC
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

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 haute de ladresse est fournie par le contenu du Registre Direct de Page (DP). Intrt : Ce mode ncessite moins de place mmoire (1 octet donc taille mmoire rduite) par consquent lexcution de linstruction est plus rapide. Master en Contrle et instrumentation Page 31

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

CCR E F H I N Z V C 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 octets qui suivent le code opratoire pointent une adresse dont le contenu reprsente ladresse de la donne recherche. Le code opratoire est form de deux octets - le post-octet est toujours $9F. Exemples : LDA [$1997] Chargement de laccumulateur A avec le contenu dont ladresse se trouve en 1997-1998.
CCR E F H I N Z V C D 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 haute) 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 effectuer le calcul de ladresse effective de la donne recherche. Il existe 5 types dadressage index. Ladressage index avec dplacement nul Ladressage index avec dplacement constant (non nul). Ladressage index avec dplacement accumulateur Ladressage index avec auto-incrmentation/dcrmentation Ladressage index relatif au Compteur Programme (PC) Loctet qui suit le code opratoire (le post-octet) spcifie : La nature de lindexation Le type dadressage (direct ou indirect) Le registre pointeur utilis. Loctet qui suit le code opratoire (le post-octet) spcifie : 1. La nature de lindexation 2. Le type dadressage (direct ou indirect) 3. Le registre pointeur utilis. Le tableau ci-joint montre le format de ce post-octet.

Master en Contrle et instrumentation

Page 35

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Tableau 1 : Format du registre post octet du mode dadressage index. Les bits du registre post-octet Mode dadressage index 7 6 5 4 3 2 1 0 0 R R d d d D d EA = R + 5 bits Offset 1 R R 0 0 0 0 0 ,R+ 1 R R 1 0 0 0 1 ,R++ 1 R R 0 0 0 1 0 ,-R 1 R R 1 0 0 1 1 ,--R 1 R R 1 0 1 0 0 EA = R + 0 Offset 1 R R 1 0 1 0 1 EA = R + ACCB Offset 1 R R 1 0 1 1 0 EA = R + ACCA Offset 1 R R 1 1 0 0 0 EA = R + 8 bits Offset 1 R R 1 1 0 0 1 EA = R + 16 bits Offset 1 R R 1 1 0 1 1 EA = R + D Offset 1 X X 1 1 1 0 0 EA = PC + 8 bits Offset 1 X X 1 1 1 0 1 EA = PC + 16 bits Offset 1 R R 1 1 1 1 1 EA = [, Adresse] Champ du mode dadressage Champ indirect (bit signe B7=0) Champ du registre RR 00=X 01=Y 10=U 11=S X= dont care D=Offset 0 not indiretc1 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 complement offsets) Auto increment/decrement R Constant offset from PC (2s complement 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 offset 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 1RR01000 1RR01001 1RR00110 1RR00101 1RR01011 1RR00000 1RR00001 1RR00010 1RR00011 1xx01100 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] 1RR10011 [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 deux) et du contenu du registre nomm pris comme base. A.E. = [Registre nomm] + expression du dplacement. Le contenu du registre nest pas modifi.

Syntaxe :

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

Trois formes sont possibles selon l'expression de la valeur de la constante qui suit le post-octet. Le dplacement s'exprime sur 4 bits + un bit de signe. Le dplacement est compris dans l'intervalle [-161O 151O] Le post-octet suffit. Exemple : LDA -2, X A6 1E soit 0 00 1 1110 Le dplacement s'exprime sur 7 bits + un bit de signe. Le dplacement est compris dans l'intervalle [-1281O 1271O]. Un octet supplmentaire aprs le post-octet est ncessaire. 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 dans 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 index avec dplacement accumulateur. Code

Ce mode est semblable au mode prcdent except que la valeur du dplacement (exprim en complment 2) se trouve dans un accumulateur afin dtre ajout au contenu du registre pointeur nomm pour former lA.E. de la donne. Les contenus de laccumulateur et du pointeur ne sont pas modifis par cette addition. Master en Contrle et instrumentation Page 38

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Cest le post-octet qui spcifie laccumulateur utilis (pas doctet supplmentaire). Intrt : la valeur du dplacement est calcule par le programme en cours dexcution, en fonction des vnements. Exemples : LDA B,X avec post-octet = $85 soit 1 00 0 0101.

Chargement du registre A avec le contenu se trouvant l'adresse exprime par la somme des contenus des registres B et X.

CCR E F H I N Z V C D 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 des 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 ladresse de la donne. En plus de l'utilisation en mode index avec dplacement nul, il est possible de modifier le contenu du registre selon le mcanisme suivant : La pr-dcrmentation Le pointeur est dcrment de un ou deux avant utilisation. La post-incrmentation : Le pointeur est incrment de un ou de deux aprs utilisation. Dans tous les cas, le contenu du registre est modifi. Intrt : Une incrmentation/dcrmentation permet de grer des tables de donnes 8 bits (octets). Deux incrmentations/dcrmentations permettent de grer des tables de donnes de 16 bits (mots ou adresses). Les aspects pr-dcrmentation et post-incrmentation sont trs utiles pour crer des piles logicielles supplmentaires dont le comportement est identique celui des piles S et U (hardware). (gestion efficace de blocs-mmoire organiss en donnes 8 bits ou 16 bits) Exemples : LDA 0,-X Code A6 82 soit 1 00 0 0010

Chargement de l'accumulateur A avec le contenu se trouvant l'adresse exprime par le contenu de X dcrment de 1. LDY 0,--X Code 10 AE 83 soit 1 00 0 0011

Chargement du registre Y avec le contenu se trouvant l'adresse exprime par le contenu de X dcrment deux fois. LDA 0,X+ 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++ Code EC 81 soit 1 00 0 0001

Chargement de l'accumulateur D avec le contenu se trouvant l'adresse exprime par le contenu de X. Aprs le chargement, le contenu de X est incrment deux fois.

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

soit 1 00 0 1101

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Il faut tenir compte de la longueur de l'instruction puisque le PC pointe toujours l'instruction suivante. LDA $FO,PC Chargement de laccumulateur A avec le contenu mmoire dont ladresse est la valeur de PC + $FO. Code adr adr+1 adr+2 A6 8C F0

soit 1000 1100

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

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

Master en Contrle et instrumentation

Page 42

Cours Microprocesseur 6809


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

Master en Contrle et instrumentation

Page 43

Cours Microprocesseur 6809


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] Chargement de A avec le contenu mmoire dont ladresse est [X, X +1]. Adressage index indirect avec dplacement constant. LDA [$35,X] Chargement de A avec le contenu mmoire dont ladresse est [X+$35, X +$36]. Adressage index indirect avec dplacement accumulateur. Le dplacement exprim en complment deux est contenu dans A, B ou D. LDU [D, Y] Chargement du registre U avec le contenu mmoire dont ladresse est [Y+D] et [Y+D+1] Adressage index indirect avec double auto-incrmentation/dcrmentation. ADDA [ , U++] Master en Contrle et instrumentation Page 44

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Addition du contenu de A et du contenu-mmoire dont ladresse est [U] et [U+1], suivi de deux incrmentations. Adressage index indirect relatif au compteur programme. Les dplacements sont cods sur 8 ou 16 bits en complment 2. LDA [$1997, PC] Chargement de A avec la valeur dont ladresse est la valeur issue de l'opration PC + $1997. Adressage relatif Technique dadressage utilise avec les instructions de branchement conditionnel ou non. Constitution : 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 PC. Dans le mode d'adressage relatif court, le dplacement est exprim sur un octet en complment deux : -128 dplacement +127 Dans le mode d'adressage relatif long, le dplacement est exprim sur deux octets en complment deux : -32768 dplacement +32767 Ralisation de l'Adresse Effective : Adresse Effective = PC +2(4) + dplacement (PC+2)- valeur dplacement (PC+2)+ valeur Dans la syntaxe assembleur il faut rajouter un (L) comme prfixe dans le cas d'un saut long.

Master en Contrle et instrumentation

Page 45

Cours Microprocesseur 6809


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

?
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 cycle extractionexcution qui se dcompose comme suit : 1er temps : Phase d'extraction Recherche de linstruction suivie du dcodage 2me temps : Phase d'excution Excution du code opratoire Cette tape est plus ou moins longue suivant la complexit de l'instruction.

Master en Contrle et instrumentation

Page 47

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chaque opration lmentaire constituant ce cycle est valide par un signal dhorloge. Illustration :
Extraction (fetch) Excution

Horloge E

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

ralisation de l'action demande

Simulations : Premier exemple : $0000 $0002 $0004 Deuxime exemple : $0000 $0003 $0006 $0009 $000C $000F $0012 LDA ADDA STA LDA ADCA STA BRA $0014 $0016 $0018 $0015 $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 ces concepts : 1- Dfinition d'un programme translatable Ce type de programme fonctionne quelque soit ladresse laquelle il est implant en mmoire. Ce ci est possible grce aux modes dadressage relatif (BSR, BRA) et index par rapport au PC (LDA valeur, PC). L'avantage de ce mode de programme est qu'il est utilisable dans n'importe quelle application. Le principe du programme relogeable existe aussi. Dans ce cas, ( la diffrence du cas prcdent) les adresses relatives sont transformes en adresses absolues aprs dition des liens.

Master en Contrle et instrumentation

{
Page 49

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 priorit (Pour cela il doit tre interruptible). Dans ce cas, le programme dinterruption peut utiliser la mme squence de programme que celle quil vient dinterrompre. Il ne doit pas perturber les informations et rsultats de la tche interrompue. ncessit dutiliser deux zones de sauvegarde des donnes. Le concept de rentrance est possible avec un microprocesseur possdant plusieurs pointeurs de pile pour grer plusieurs zones de sauvegarde. Rendu possible avec l'existence des instructions de manipulation de pile hardware PSH et PUL et logicielle STA, -X et LDA, X+. Equivalence : LDX STX 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 choix dun langage sont : le temps de programmation la maintenance la transportabilit Un programme crit dans un langage volu donn peut tre implant "facilement" sur diverses machines sans rcriture. (compilateurs appropris) Un programme crit dans un langage volu est traduit en binaire de deux manires diffrentes. En faisant appel soit un interprteur soit un compilateur. Tous deux sont des programmes puissants de traduction. Un interprteur agit pendant lexcution du programme. Chaque ligne du programme est traduite en instruction binaire juste avant son excution. A mesure quune ligne est excute, la traduction de la ligne suivante commence. Un compilateur traduit dabord le programme en langage hexadcimal et ensuite le code gnr est sauvegard sous la forme dun nouveau programme binaire. (ressemble beaucoup un assembleur). Le compilateur prsente linconvnient par rapport linterprteur, de ncessit beaucoup plus de mmoire mais par contre il est beaucoup plus rapide lexcution. Lapprentissage dun langage volu ne rapporte strictement rien en ce qui concerne la connaissance de larchitecture fondamentale dun microprocesseur. Par contre la programmation langage machine ou assembleur ncessite une bonne connaissance de larchitecture du microprocesseur. Quelles sont les raisons pour lesquelles on choisit un langage moins volu? Deux raisons cela :

Master en Contrle et instrumentation

Page 51

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Gain en place mmoire : Le langage volu ncessite pour effectuer la mme tche beaucoup plus dinstructions machines.

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Etiquette

Code Code Commentaire opratoire oprande _________________________________________ 5 7 i i+2 j j+2

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

Master en Contrle et instrumentation

Page 54

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

SET est semblable EQU except que laffectation est temporaire. Les symboles dfinis avec cette directive peuvent tre nouveau dfinis par la suite dans le mme programme. Exemples : ARG ARG ARG SET SET SET $2 ARG*$2 ARG*ARG ARG=$2 ARG=$4 ARG=$10(1610)

ORG : Origine (initialisation du compteur programme) Syntaxe : ORG Expression Page 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 situe dans le champ oprande. Remarque : Plusieurs ORG peuvent-tre utiliss dans un mme programme source. On structure ainsi lespace mmoire en blocs : le programme principal les sous programmes la gestion des interfaces Chaque bloc est initialis par un ORG. RMB : Reserve Memory Bytes (Rservation doctets en mmoire) Syntaxe : Rle : Provoque lors de lassemblage un "saut" du PC, dun nombre doctets gal la valeur de lexpression. Le but tant de rserver une zone mmoire pour un usage particulier. FCB : Form Constant Byte (dfinition dune constante dun octet) Syntaxe : Rle : Symbole FCB expr1, expr2... Symbole RMB Expression

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

Master en Contrle et instrumentation

Page 56

Cours Microprocesseur 6809


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 une valeur sur 16 bits. Le PC est incrment de 2 pour chaque mot crit. Exemples : DATA 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 Syntaxe : 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 dlimiteurs doivent tre identiques et peuvent tre n'importe lequel des caractres imprimables (on prend en gnral //). L'expression FCC /A/ est quivalent FCB 'A Illustration : MESS FCC FCC FCC FCC /FIN/ 'LUNDI' #MARDI# 252 $2000 46 49 4E 4C 55 4E 44 49 4D 41 52 44 49 35

END : fin d'assemblage Syntaxe : 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 est crit avec un adressage absolu. REL : RELogeable, le programme est crit avec un adressage relatif. CRE : permet d'obtenir la table dite des rfrences croises. L : demande l'impression du listing aprs opration d'assemblage termin. Lopration dassemblage : Elle seffectue gnralement en deux tapes (2 passes). 1re passe : Consiste en une lecture de lensemble du programme source. Au cours de cette phase, 3 analyses sont effectues : Analyse lexicographique : Compare le code opratoire une table interne (fichier comprenant les codes). Analyse syntaxique : Cette analyse dtecte : les tiquettes 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 employs. Il regroupe tous les symboles dfinis par le programmeur en leur donnant une valeur chacun deux (Cration de la table des rfrences croiss). Il gnre un code intermdiaire qui servira au second passage. Les directives dassemblage sont galement interprtes. 2me passe : Lassembleur gnre le code objet en tenant compte des adresses et des donnes relles qui figurent dans la table des symboles. 3me passe : Cette phase fournit le listing avec son code objet.

Master en Contrle et instrumentation

Page 60

Cours Microprocesseur 6809


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

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

Cours Microprocesseur 6809


DAA DEC 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 4C 2 1 A = A + 1 5C 2 1 B = B + 1 6 2 6C 6+ 2+ 7C 7 3 M=M+1 3 2 6E 3+ 2+ 7E 4 3 pc = EA 7 2 AD 7+ 2+ BD 8 3 jump to subroutine

+++ +++ +++

Master en Contrle et instrumentation

Page 64

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Jeux dInstruction du 6809 Modes dAdressages Immdiat Direct Index Etendu Inhrent Instruction Mnemonic Op ~ # Op ~ # Op ~ # Op ~ # Op ~ # LDA 86 2 2 96 4 2 A6 4+ 2+ B6 5 3 LDB C6 2 2 D6 4 2 E6 4+ 2+ F6 5 3 LDD CC 3 3 DC 5 2 EC 5+ 2+ FC 6 3 10 4 4 10 6 3 10 6+ 3+ 10 7 4 LDS LD CE DE EE FE LDU CE 3 3 DE 5 2 EE 5+ 2+ FE 6 3 LDX 8E 3 3 9E 5 2 AE 5+ 2+ BE 6 3 10 4 4 10 6 3 10 6+ 3+ 10 7 4 LDY 8E 9E AE BE LEAS 32 4+ 2+ LEAU 33 4+ 2+ LEA LEAX 30 4+ 2+ LEAY 31 4+ 2+ LSLA 48 2 1 LSL LSLB 58 2 1 LSL 08 6 2 68 6+ 2+ 78 7 3 LSRA 44 2 1 LSR LSRB 54 2 1 LSR 04 6 2 64 6+ 2+ 74 7 3 MUL NEG NOP OR ORA ORB ORCC PSHS PSH PSHU PULS PUL PULU ROL ROLA ROLB 8A CA 1A 34 2 2 3 5+ 2 9A 4 2 AA 4+ 2+ BA 5 3 2 DA 4 2 EA 4+ 2+ FA 5 3 2 2 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 Stack Pull Registers from S Stack Pull Registers from U Stack 2 1 Rotate left thru 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 carry

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 AF 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 R2 = R1 4D 2 1 Test A ++0 5D 2 1 Test B ++0 6+ 2+ 7D 7 3 Test M ++0 3B 6/15 1

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 = Transfer from - Not Affected ~ Number of MPU Cycles H Half carry (from bit 3) CC Condition Code Register # Number of Program Bytes N Negative (sign bit): : Concatenation + Arithmetic Plus Z Zero (Reset) || Logical or Arithmetic Minus V Overflow, 2's complement && Logical and * Multiply C Carry from ALU EOR Logical Exclusive or EA Effective Address:w ! Complement of M Notes: 1. This column gives a base cycle and byte count. To obtain total count, add the values obtained from the INDEXED ADDRESSING MODE table, in Appendix F. 2. Rl and R2 may be any pair of 8 bit or any pair of 16 bit registers. The 8 bit registers are: A, B, CC, DP The 16 bit registers are: X, Y, U, S, D, PC 3. EA is the effective address. 4. The PSH and PUL instructions require 5 cycles plus 1 cycle for each byte pushed or pulled. 5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instructions. 6. SWI sets I and F bits. SW12 and SW13 do not affect I and F. 7. Conditions Codes set as a direct result of the instruction. 8. Value of half carry flag is undefined. 9. Special Case Carry set if b7 is SET. Mode Relative OP Description 24 3 / 2 Branch C=O 10 5l6) 4 Long Branch 24 C=O 25 3 2 Branch C= 1 10 56) 4 Long Branch 25 C=l 27 3 2 Branch Z=O 10 5(6) 4 Long Branch 27 Z=O 2C 3 2 Branch2Zero 10 5(6) 4 Long Branch2Zero 2C 2E 3 2 Branch > Zero 10 5(6) 4 Long Branch>Zero 2E

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 LBLE BLO LBLO BLS LBLS BLT LBLT BMI LBMI BNE LBNE BPL LBPL BRA LBRA BRN LBRN BSR LBSR BVC LBVC BVS LBVS 22 3 10 5(6) 22 24 3 10 24 2F 10 2F 25 10 25 23 10 23 2D 10 2D 2B 10 2B 26 10 26 2A 10 2A 20 16 21 10 21 8D 17 28 10 28 29 10 29 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 Higher 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<Zero 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 Branch Never

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

Master en Contrle et instrumentation

Page 68

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Chapitre III : Le fonctionnement en interruption


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

: Interrupt Request.

Ces entres sont actives sont un niveau "bas". Rle du Registre de Code Condition a- Fonction du flag I *Masque concernant l'interruption IRQ. Tableau

Master en Contrle et instrumentation

Page 69

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

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

Master en Contrle et instrumentation

Page 70

Cours Microprocesseur 6809


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

Cours Microprocesseur 6809


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 protocole bien tabli que nous allons dtaill. Ds la mise au niveau bas de la broche dinterruption, ou bien ds la rencontre de linstruction SWI, le microprocesseur entame une "procdure implicite", programme dans la silice, dont les organigrammes respectifs sont reprsents plus loin. Master en Contrle et instrumentation Page 73

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 74

Cours Microprocesseur 6809


Principes:

Dr. Lachouri Abderrazek

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

2- On runit les diffrentes sorties de demande dinterruption avec un cblage en "ou cble". Cela oblige alors de faire une recherche du demandeur par scrutation. 3- On utilise des circuits spciaux qui rpondent au mieux ce problme avec prise en compte des priorits au niveau des demandes simultanes. Cas 1 : Pas de problme. Chaque priphrique possde son propre vecteur dinterruption. On sait quel est le mcanisme mis en place lors de la prise en compte dune telle demande : Sauvegarde du contexte intgral ou partiel. Chargement du PC avec le contenu de vecteur d'interruption spcifique.

Schma :

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

Master en Contrle et instrumentation

Page 76

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Master en Contrle et instrumentation

Page 79

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 81

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Fig.IV.1 Cellule mmoire dune RAM statique. Elle comprend six (06) transistors, ce qui limite les possibilits dintgration dans ltat actuel.

Master en Contrle et instrumentation

Page 82

Cours Microprocesseur 6809


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 inconvinients suivants: 1- Un cot par bit plus lev; 2- Une intgration limite; IV.1.2.2 Les RAMs dynamiques: La limitation dintgration des RAMs statiques de grande capacit a pouss la cration de RAM dynamiques. Llment mmoire de base est la capacit de gchette-source dun transistor MOS, mais la rsistance gchette-source ntant pas infinie, cette capacit se dchargera, il faudra donc la recharger pour maintenir linformation, on dit quil faut rafraichir la mmoire. En technologie MOS ce rafrachissement doit intervenir toutes les 2ms pour une cellule.

Master en Contrle et instrumentation

Page 83

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 84

Cours Microprocesseur 6809


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 lopration de lecture affecte le niveau de linformation lue. Le rafraichissement est automatique lors de la lecture dune cellule.

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

Master en Contrle et instrumentation

Page 85

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Exemple:

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Master en Contrle et instrumentation

Page 87

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

Master en Contrle et instrumentation

Page 88

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

IV.1.3.5 EEPROM : (Electrical Erasable Programmable ROM)

IV.1.4 OPERATIONS DE LECTURE ET DECRITURE IV.1.4.1 Lecture de RAM: Fig.III.10 lecture dun RAM.

1- Placer ladresse de la case mmoire sur le bus dadresse . 2- Envoyer lordre de lecture. 3- Recuprer aprs un certains temps la donne sur un bus de donne.

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Fig.IV.11 chronogrammes de lcriture mmoire. IV.1.4.3 Lecture de ROM:

Fig.III.12 Exemple de lecture mmoire ROM

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

Master en Contrle et instrumentation

Page 90

Cours Microprocesseur 6809

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 doivent tre conscutives et aller de $0080 $047F.

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

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 93

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Figure IV.2.1 Bloc fonctionnel du PIA 6820

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

Master en Contrle et instrumentation

Page 94

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 96

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

b- Le contrle du Registre de Direction de Donnes DDRx (CRx(2): Le bit CRx(2), en combinaison avec les deux lignes RS0 et RS1 du registre de slection, est utilis pour diffrencier entre le registre de sortie ORA(B) et le registre de direction de donnes DDRA(B).

Master en Contrle et instrumentation

Page 97

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

c- Contrle de la ligne Cx2 (Bit 3, 4 et 5 du CRx) : cette ligne, plus de sa fonction en signal dinterruption, peut tre utilise comme un signal de sortie. Les bits 3, 4 et 5 du registre de contrle CRx dterminent la fonction de cette ligne.

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

Bit 5, 4, 3 du CRx = 101

Master en Contrle et instrumentation

Page 98

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 99

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Figure 3.2.3 Fonction des bits du registre CRx du PIA 6820

Master en Contrle et instrumentation

Page 100

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Ct Priphriques (Entres/Sorties)

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

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

Master en Contrle et instrumentation

Page 101

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Etude de linterface srie asynchrone A.C.I.A. 6850


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

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

Master en Contrle et instrumentation

Page 102

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Prsentation

Remarque : il ny a pas dentre Reset. Ce circuit intgre : Un metteur de donnes asynchrone ; Un rcepteur de donnes asynchrone ; Une logique de commande Modem ; Des entres dhorloge spares pour lmission et la rception. Master en Contrle et instrumentation Page 103

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

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

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

Master en Contrle et instrumentation

Page 105

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

b- Liaison Acia Acia

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

Master en Contrle et instrumentation

Page 106

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 107

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Prsentation du registre de contrle


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

Master en Contrle et instrumentation

Page 108

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Fonctionnement du registre de contrle CR de lACIA 6850

Etude des bits du registre d'tat


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

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 110

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Brochage de lACIA 6850

Master en Contrle et instrumentation

Page 111

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

Architecture interne de lACIA 6850

Interfaage de lACIA 6850 avec le bus RS232C

Master en Contrle et instrumentation

Page 112

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Programme dinterfaage de lACIA 6850


START LDAA #$03 STAA $E000 LDAA #$A1 STAA $E000 BRA DMY LDAA $E000 RORA BCS RECV BITA #$38 reset ACIA store in control register sets IRQ, !RTS=0, 7 data bits even parity, 2 stop bits, clk:16 store in control register set interrupt vector. main program Read Status Register rotate right (RDRF -> Carry) if carry is set -> jump RECV test error bits (PE, OVRN, FE) note: right shift was performed Page 113

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 bits stop mission et rception valide pas de reset interne Pas de RAZ des indicateurs derreur pas de break Mot de commande 10110001 soit $B1 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 restauration du caractre

Exemple 3 : Entre dun caractre dans laccumulateur partir de la console CRT ou de la tltype (TTY). BCL2 LDA registre dtat lecture registre dtat ANDA #$01 test de RxRDY par masquage BEQ BCL2 LDA registre rception lecture du caractre

Master en Contrle et instrumentation

Page 114

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 115

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

0 1 Bit de start (Dpart)

7 bits de caractres

bit de bits de stop parit

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

Master en Contrle et instrumentation

Page 116

Cours Microprocesseur 6809

Dr. Lachouri Abderrazek

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

Master en Contrle et instrumentation

Page 117