A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 1/32 Chapitre II
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 1/32 Chapitre II LE MICROPROCESSEUR MC6809 DE MOTOROLA II.1 – Introduction : Le MC6809 est réalisé en technologie HCMOS dans un boîtier de 40 broches. Le MC6809 possède des entrées/sorties compatibles TTL. Il s’alimente avec une tension unipolaire de +5V. Il existe plusieurs modèles du MC6809 (certains ont même des RAM, ROM, et même des ports d’E/S intégrés). Ce microprocesseur 8 bits utilise pour la manipulation des données et d’adresses des registres à 16 bits. De l’extérieur, le MC6809 est un 8 bits, et à l’intérieur c’est un 16 bits. La figure II.1 montre le brochage de ce microprocesseur, la description complète de chacun des signaux échangés est donnée au paragraphe II.6. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 MC6809 BS NMI IRQ FIRQ BA Vss Vcc (+5V) A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A15 A14 A13 D0 D1 D2 D3 D4 D5 D6 D7 R / W DMA /BREQ Q E MRDY RESET EXTAL XTAL HALT Figure II.1 – Brochage du MC6809 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 2/32 Le MC6809 est disponible en plusieurs versions. Le code du constructeur permet d’avoir toutes les informations sur la version considérée : MC 68 A 09 C P Circuit intégré MOTOROLA Famille 6800 Vitesse du µP : vide = 1 MHz A = 1.5 MHz B = 2 MHz Désignation du circuit de la famille 6800 Plage de température : vide : 0°C 70°C, C : -40°C Type de boîtier : P : plastique, L : Céramique Les BUS d’adresses (de 16 bits) et de données (de 8 bits) ne sont pas multiplexés comme c’est le cas d’autres microprocesseurs. Cette caractéristique est très avantageuse dans la mesure où elle facilite grandement le développement de systèmes à base de ce microprocesseur. Le MC6809 intègre le circuit d’horloge dans son boîtier. II.2 – Caractéristiques essentielles du MC6809 : ● Six possibilités d’interruption : trois interruptions matérielles (dont une entrée d’interruption rapide) et trois interruptions logicielles (SWI, SWI2 et SWI3); ● Possibilité de fonctionner avec des mémoires lentes ; ● Deux sorties indiquant l’état de l’unité centrale de traitement à un instant donné ; ● Dix modes d’adressage différents ; ● Unité arithmétique et logique permettant des opérations sur 16 bits ; ● Multiplication 8 bits par 8 bits avec résultats sur 16 bits en une seule instruction ; ● 139 mnémoniques simples autorisant, compte tenu des différents modes d’adressage et de la structure interne, 1464 codes opératoires différents donc un ensemble des plus riches quand on parle de microprocesseurs équivalents. II.3 – Les registres du MC6809 : Le MC6809 est un microprocesseur 8 bits externes – 16 bits internes. Tous les registres utilisés pour la manipulation des données et d’adresses ont une longueur de 16 bits. Les registres du MC6809 sont énumérés ci-dessous et sont montrés à la figure II.2 : A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 3/32 ● Deux registres d’index : X et Y; ● Deux pointeurs de pile : U et S; ● Deux accumulateurs de 8 bits : A et B représentés sous forme d’un accumulateur de 16 bits appelé D; ● Un compteur ordinal ou compteur programme de 16 bits : PC; ● Un registre d’état (Code Condition Register) de 8 bit : CCR; ● Un registre de page directe (Direct Page Register) : DP. COMPTEUR ORDINAL – PC INDEX – X INDEX – Y POINTEUR DE PILE UTILISATEUR – U POINTEUR DE PILE SYSTÈME – S ACCUMULATEUR – A ACCUMULATEUR – B ACCUMULATEUR – D REGISTRE DE PAGE DIRECTE – DP REGISTRE D’ETAT – CCR b0 b7 b15 Figure II.2 – Registres du MC6809 II.3.1 – Registres A et B : Ce sont deux accumulateurs à usage général utilisés pour des opérations arithmétiques et logiques. Ils peuvent être concaténés (Registre A contenant les poids les plus forts et B contenant les poids les plus faibles), pour réaliser un accumulateur de 16 bits (D). II.3.2 – Registres X et Y : Ce sont deux registres de 16 bits utilisés principalement pour le mode d’adressage indexé. Cependant, un certain nombre d’opérations arithmétiques et logiques peuvent être réalisés avec ces registres, en particulier entre ces derniers et les accumulateurs. II.3.3 – Registres U et S : Ce sont deux registres de 16 bits dont la fonction principale est de servir de pointeurs de pile. Ils peuvent aussi être utilisés en index et se comportent par conséquent comme X et Y. En utilisation en pointeurs de pile : A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 4/32 ● Le registre S est affecté au système, c'est-à-dire qu’il est contrôlé automatiquement par le MC6809 lors des opérations faisant appel à la pile (saut à un sous-programme, mise en interruption, …etc.). ● Le registre U est le pointeur de pile « utilisateur ». Il est contrôlé entièrement par le programmeur (cette possibilité est exploitée pour la programmation « multitâches » où les paramètres sont passés par la pile), ou pour réaliser des passages d’arguments de ou vers des sous-programmes. SSSS CCR ACC. A ACC. B DP XH XL UL PCH PCL SSSS - 1 SSSS - 12 YH YL UH SSSS CCR ACC. A ACC. B X Y S U PC DP SSSS - 12 Figure II.3 – Ordre d’empilement des registres sur la pile S La décrémentation précède toujours le début de la phase d’empilement. A la fin du stockage, le pointeur de pile reste au niveau du dernier registre entré. Dans le cas d’un dépilement, le dernier registre entré sort en premier. Le dernier registre dépilé est suivi d’une incrémentation du pointeur de pile. Le pointeur de pile S pointe le haut de la pile. Il est décrémenté avant chaque empilement et incrémenté après chaque dépilement. II.3.4 – Registre PC : C’est le compteur ordinal qui est commun à tous les microprocesseurs. Ce registre pointe l’instruction suivant immédiatement celle en cours d’exécution. A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 5/32 II.3.5 – Registre CCR : C’est le registre d’état formé de 8 bits indiquant chacun un état particulier du MC6809. Ces bits sont montrés à la figure II.4. N Z V C E F H I Bit de retenue (CARRY) Bit de dépassement (OVERFLOW) Bit de zero (ZERO) Bit de signe négatif (NEGATIVE) Masque d’interruption (IRQ MASK) Bit de demie retenue (HALF CARRY) Masque d’interruption rapide (FIRQ MASK) Contexte complet ou réduit (ENTIRE FLAG) Figure II.4 – Registre d’état du MC6809 La signification de chaque bit du registre CCR est donnée ci-dessous : C (Carry) c’est le bit de retenue suite à des opérations d’addition ou de soustraction. Exemple : ADCA #$2C (Addition avec retenue de l’accumulateur A et de la valeur hexadécimale 2C). L’accumulateur A contient la valeur $F2. C=1 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 V (oVerflow) c’est le bit de dépassement ou débordement. Il passe à « un » lorsque le résultat d’une opération produit un débordement (résultat insignifiant) si l’on considère les conventions de représentation des nombres binaires en complément à deux (avec signe). A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre II Page 6/32 Z (Zero) Ce bit passe à un quand le résultat d’une opération exécutée est nul. Exemple : ANDA #$C4 (ET logique entre le contenu de l’accumulateur A et la valeur hexadécimale C4, le résultat dans l’accumulateur A). L’accumulateur A contient la valeur $3B. Z=1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 N (Negative) Contient la valeur du bit de poids le plus fort du résultat de l’opération exécutée. Ainsi en complément à deux signé, il représente le signe du résultat (ce bit passe à « un » quand le résultat est négatif). Exemple : LDA #$C1 (Chargement de l’accumulateur A avec la valeur hexadécimale C1). 1 0 0 0 0 0 1 1 → ACC. A Bit 7 : b7 = 1 ⇒ N=1 I (Interrupt mask) C’est le masque d’interruption. Lorsque ce bit est à « un », le MC6809 ignore toutes les interruptions ayant lieu via la ligne IRQ . Par ailleurs, les interruptions NMI, FIRQ, IRQ, RESET et SWI mettent automatiquement ce bit à « un ». Les interruptions SWI2 et SWI3 n’affectent pas ce bit. H (Half carry) C’est le bit de demie-retenue. Il indique une retenue lors d’opérations en BCD sur 4 bits et permet ce type d’opérations au moyen de l’instruction DAA (Decimal Adjust A). F (Fast IRQ Mask) C’est le masque d’interruption rapide FIRQ. Lorsque ce bit est à « 1 », les interruptions uploads/Philosophie/ sys-up-chap-ii.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 03, 2021
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 0.2844MB