Créée le, 19/06/2015

 Mise à jour le, 29/12/2019

Visiteurs N°  




Accueil
Site en Français Site en Anglais Nos Promotions Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes JavaScript (en cours de travaux) PHP et Programmes Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires avec nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages Livre d'Or Livre d'Or Annuaires Sites

Signets :
  Conclusion du Z80 de la Carte CPU    Bas de page  


Explication du Fonctionnement du Circuit Microprocesseur "Z80" :


4. 3. - FONCTIONNEMENT DU CIRCUIT MICROPROCESSEUR Z80

Cette expérience a permis d'obtenir les signatures des signaux d'adresse générés par le Z80 ; ceux-ci sont périodiques comme le montre la figure 21.

Chronogramme_des_4_1er_signaux_du_Z80.GIF

Chaque début de lecture d'une instruction se fait sur commande du Z80 par un signal RD_barre.GIF généré par le microprocesseur ; RD vient du mot anglais READ (lire).

Pour des raisons de place, on a seulement indiqué sur la figure 21 les quatre premiers signaux d'adresse, relatifs aux seize premières adresses parmi les 65 536 possibles. Les autres signaux jusqu'à A15, qui ne sont pas montrés figure 21, ont une allure périodique analogue.

Le bit A15 reste au niveau bas pendant 32 768 impulsions de RD_barre.GIF et au niveau haut pendant les 32 768 impulsions suivantes.

La séquence des bits qui entrent dans le registre à décalage dépend de la sortie d'adresse considérée et du signal d'horloge utilisé. Puisque dans notre circuit de test c'est le signal RD_barre.GIF qui fait office d'horloge, la séquence de A0 et donc : 01 01 01 01 ... et ainsi de suite ; celle de A1 est par contre 00 11 00 11 ... ; celle de A2 00 00 11 11 00 00 ... ; celle de A3 00 00 00 00 11 11 11 11 ... etc.

Voyons maintenant plus en détail le fonctionnement du circuit que l'on vient d'expérimenter, en examinant le schéma électrique de la figure 18-b. La partie du circuit dessiné à gauche du Z80 sert à générer le signal d'horloge pour le microprocesseur.

(Nous reportons ici le schéma de la figure 18-b afin d'en faciliter la lecture).

Schema_electrique_du_circuit_de_controle_du_Proc_Z80.GIF 

Deux triggers de Schmitt, reliés comme les oscillateurs du digilab, produisent un signal rectangulaire dont la fréquence est d'environ 1 MHz. Ce signal est appliqué à l'entrée d'horloge de la bascule 74LS74 dont la sortie, adaptée par le transistor T1, permet de commander l'entrée d'horloge f du Z80.

Nous avons déjà eu l'occasion, lors de la pratique N°1, de nous attarder sur le fonctionnement du circuit d'adaptation construit autour de T1.

Les entrées WAIT_Barre.GIF, NMI_Barre.GIF, BUSRQ_Barre.GIF, INT_Barre.GIF sont reliées à la tension positive d'alimentation par l'intermédiaire de quatre résistances de 1 kW de façon à assurer le fonctionnement régulier du Z80.

Les entrées D0 à D7 sont, par contre, reliées à la masse de manière que le microprocesseur lise toujours l'instruction NOP.

La sortie A15 est reliée au générateur de cycle de mesure qui est formé de trois bascules de type D ; celle repérée par FF2 sert à "lisser" le signal issu de A15.

En effet, les signaux d'adresse générés par le Z80 ne se présentent pas exactement comme l'illustre la figure 21, car pendant le temps où le Z80 décode et exécute l'instruction (ici NOP), les sept bits les moins significatifs (A0 à A6) du bus d'adresse contiennent une adresse de rafraîchissement pour mémoires dynamiques.

En effet, les mémoires de ce type perdent leur contenu si elles ne sont pas "rafraîchies" périodiquement.

A chaque cycle, c'est-à-dire à chaque impulsion se présentant à la sortie RD_barre.GIF, il y a incrémentation de l'adresse de rafraîchissement.

Simultanément, le contenu du registre d'interruption (dont le rôle sera examiné ultérieurement) est présenté sur les entrées d'adresse A8 à A15. Comme une remise à zéro (RESET) du microprocesseur est effectuée, ces bits passent à zéro à chaque impulsion de RD_barre.GIF.

Le bit A7 est, quant à lui, forcé à 0 lorsque le contenu du registre d'interruption et l'adresse de rafraîchissement sont présentés sur le bus d'adresse.

Il en résulte que les signaux A7 à A15 ont l'allure indiquée figure 22.

Allure_des_signaux_A7_a_A15_du_Z80.GIF

Pour obtenir la signature des différentes sorties d'adresse, on a besoin d'une impulsion de durée égale à la période du signal A15.

Puisque celui-ci est forcé lors de chaque instruction à 0 comme le montre la figure 22, il convient de le mettre en forme pour obtenir un signal analogue à ceux de la figure 21.

Pour cela, il suffit de relier la sortie A15 à l'entrée D de FF2 et de prendre comme signal d'horloge le signal RD obtenu en inversant le signal RD_barre.GIF avec l'inverseur 74LS14.

Ainsi, la bascule FF2 mémorise le signal présent sur l'entrée D lorsque l'horloge RD passe du niveau bas au niveau haut, c'est-à-dire lorsque RD_barre.GIF passe au niveau bas.

On transfère donc à la sortie Q le signal A15 sans les impulsions dues au bit (égal à 0) de poids fort du registre d'interruption (I).

Ce transfert est illustré par le chronogramme de la figure 23.

Chronogramme_Flip_Flop_FF2.GIF


Le signal A15 ainsi produit et celui obtenu au moyen du bouton-poussoir P1 commandent à leur tour le générateur de cycle de mesure constitué des deux bascules FF3 et FF4.

Celles-ci sont contenues dans le circuit intégré 74LS74 inséré sur le support ICX.

Le fonctionnement de ce générateur est simple. Observez la figure 24 : lorsque l'on appuie sur P1, on envoie une impulsion d'horloge à la bascule FF3 dont l'entrée D2 est câblée au niveau haut ; la sortie Q2 passe donc au niveau haut.

Chronogramme_relatif_au_generateur_de_cycle.GIF

L'entrée D3 de la bascule FF4, étant reliée à Q2, est au niveau haut.

Le premier front de montée du signal A15 fait basculer FF4 ; ainsi, la sortie Q3 passe au niveau haut et Q_barre.gif3 passe au niveau bas.

L'entrée CLEAR de FF3, reliée à Q_barre.gif3, est également portée au niveau bas et remet donc FF3 à zéro ; Q2 repasse au niveau bas ainsi que D3.

Au front montant suivant de A15, la bascule FF4 dont l'entrée D3 était au niveau bas. Q3 repasse alors au niveau bas et Q_barre.gif3 au niveau haut. On désactive ainsi l'entrée CLEAR de FF3 qui est prête pour un autre cycle.

Comme le montre le chronogramme reproduit figure 24, on obtient à la sortie (Q3) du générateur de cycle de mesure un signal qui reste au niveau haut pendant un temps exactement égal à la période de A15.

C'est le temps nécessaire au microprocesseur pour qu'il génère toutes les adresses possibles de 0000 à FFFF.

Le signal Q3 est envoyé sur une entrée de la porte ET désignée par A ; sur l'autre entrée, arrive le signal RD. La sortie de cette porte est reliée à l'entrée d'horloge du registre à décalage qui, de cette façon, reçoit les impulsions RD seulement lorsque Q3 est au niveau haut.

En appuyant une seconde fois sur P1, on peut faire démarrer un autre cycle de mesure ; en outre, à chaque nouvelle mesure, il est nécessaire d'initialiser le registre en le remettant à zéro, ce que l'on obtient en ramenant au niveau bas l'entrée RESET_barre.GIF par l'intermédiaire de l'interrupteur SW0.

HAUT DE PAGE 4. 4. - CONCLUSION

Dans la pratique précédente, vous avez appris à mieux connaître le Z80 ainsi que les circuits qui l'entourent. On peut donc commencer à construire un schéma synoptique de l'unité centrale plus détaillé que celui présenté dans la Théorie 1. (Voir figure 3)

Nous avons vu que le Z80 possède seize sorties pour les adresses et huit entrées / sorties pour les données.

Le Z80 communique grâce à ces broches spécialisées avec la mémoire et les périphériques, par exemple avec le clavier ou l'afficheur.

On pourrait relier directement le Z80 à une seule mémoire comme le montre la figure 25 mais cette mémoire devrait avoir une très grande capacité.

En effet, puisque les bits d'adresse sont au nombre de seize, il est possible d'adresser 65 536 données différentes (c'est-à-dire 64K), chacune de huit bits, la mémoire devrait donc avoir une capacité de 65 536 x 8 = 524 288 bits.

 Schema_de_raccordement_du_Z80_a_une_memoire.GIF

Une mémoire RAM statique de cette capacité est difficile à trouver et coûteuse ; de plus, elle n'est pas intéressante. En effet, il est nécessaire dans la plupart des cas, d'utiliser au moins deux types de mémoire : une ROM (ou PROM ou EPROM) et une RAM.

Les mémoires à lecture seule (ROM) servent à conserver la partie du programme qui ne doit pas être modifiée ; Les mémoires RAM, par contre, sont utilisées pour stocker temporairement les données traitées par le microprocesseur.

Dans certains cas, les RAM sont utilisées pour écrire un programme en cours de développement ou d'essai.

On a déjà dit que les mémoires sont coûteuses ; donc, si une capacité de 4K est suffisante par exemple, il est inutile d'employer une mémoire de 64K. Ainsi, sur la carte CPU ou UC, on trouve en plus du microprocesseur six supports de mémoires permettant d'insérer, de façon adéquate, différents types de mémoire, l'adressage étant facilité par des straps.

Il faut maintenant savoir répartir ces mémoires et connaître la manière de les relier au Z80.

Étant donné qu'il y a six supports par exemple et qu'on a la possibilité d'adresser au maximum 65 536 positions mémoire, chacune de ces six mémoires pourra contenir au maximum 65 536 / 6 = 10 922 données de huit bits chacune.

Ces composants ont donc huit entrées / sorties sur lesquelles se présente la donnée à lire ou à écrire, comme on le voit figure 26.

Schema_de_principe_du_cablage_memoires.GIF

Les entrées / sorties de toutes les mémoires sont reliées en parallèle entre elles et raccordées au bus du Z80.

Si le circuit était réalisé comme représenté figure 26, il ne pourrait pas fonctionner. En effet, si deux ou plusieurs mémoires émettaient simultanément des données vers le Z80, il se produirait un mélange de celles-ci.

Il est donc nécessaire qu'une seule mémoire à la fois soit habilitée à fonctionner de façon que, pendant que l'on envoie des données par exemple à la mémoire 2, les autres mémoires soient déconnectées du circuit.

De même, il faut que les autres mémoires n'envoient pas d'autres données sur la même ligne lorsque le microprocesseur lit des données dans la mémoire 1.

En d'autres termes, il faut sélectionner une mémoire, c'est-à-dire indiquer à quelle mémoire le microprocesseur veut accéder à un instant donné pour lire ou écrire des données.

Dans ce but, chaque boîtier de mémoire possède une ou plusieurs entrées de validation désignées habituellement par CE (initiales de Chip Enable) ou CS (Chip Select) ; selon le niveau de tension appliqué à ces entrées, le composant est sélectionné ou non.

C'est le microprocesseur, dans notre cas le Z80, qui devra commander les entrées de validation.

Il existe deux méthodes : la sélection linéaire et le décodage mémoire.

La méthode de la sélection linéaire est la plus simple et consiste à utiliser les bits les plus significatifs de l'adresse pour sélectionner les mémoires comme le montre le schéma de la figure 27.

Cablage_des_entrees_de_validation_des_memoires.GIF

La mémoire 6 est sélectionnée lorsque le bit A15 vaut 1, la mémoire 5 lorsque le bit A14 vaut 1, etc.

L'avantage de cette méthode est qu'elle ne réclame aucun circuit supplémentaire. Elle présente toutefois un gros inconvénient : elle est très rigide et ne permet pas d'organiser la mémoire d'une façon assez souple, c'est-à-dire de disposer les composants dans les espaces de mémoire (ensembles de positions mémoire) les mieux appropriés.

Le plan de mémoire qui en résulte (c'est-à-dire la disposition des boîtiers de mémoire à l'intérieur du champ d'adresse) n'est absolument pas pratique.

En effet, la mémoire 6 est sélectionnée par toutes les adresses qui ont le bit A15 égal à 1, soit celles qui vont de :

  •             1000  0000  0000  0000

  • à          1111  1111  1111  1111

La moitié des adresses possibles est donc réservée à la mémoire 6 qui, pour être exploitée entièrement, devrait avoir une capacité de 32K.

Il vaut donc mieux utiliser la méthode du "décodage de mémoire". Supposons que l'on veuille partager la mémoire de telle sorte que le dernier boîtier comprenne toutes les adresses qui vont de :

  •             1   1   1   1   1   0   0   0    0   0   0   0   0   0   0   0

  • à          1   1   1   1   1   1   1   1   1   1   1    1   1   1   1   1

Il s'agit donc d'une mémoire de 2K. On remarque que les cinq bits les plus significatifs (A11 à A15) sont toujours égaux à 1 ; en appliquant ces bits à une porte ET, comme indiqué figure 28, on obtient un signal qui peut valider la mémoire parce que la sortie du ET est seulement active lorsque les adresses données par le Z80 sont comprises dans l'intervalle mentionné ci-dessus.

Entree_de_validation_CE_d_une_memoire_au_Proc.GIF

Il est possible d'utiliser un réseau de décodage différent pour chaque mémoire mais il est plus commode encore d'employer un décodeur unique pour toutes les mémoires ; dans notre cas, il est constitué par la PROM CPU de type 74S472 que vous avez testée lors de la Pratique 1.

Cette PROM reçoit les bits d'adresse compris entre A10 et A15 et fournit sur ces six sorties les signaux de sélection des mémoires notés CS1_barre.GIF, CS2_barre.GIF, CS3_barre.GIF, CS4_barre.GIF  CS5_barre.GIF et CS6_barre.GIF.

La PROM a été programmée de telle sorte qu'un signal de sélection devienne actif (niveau bas) lorsque l'adresse émise par le Z80 se situe dans le champ d'adresse assigné à la mémoire correspondante.

La figure 29 montre comment la PROM de décodage est reliée au Z80 et aux mémoires.

Selection_des_memoires_par_une_PROM.GIF 

Dans cette pratique, vous avez appris qu'il existe un circuit RESTART (redémarrage).

Ainsi, les bits d'adresse A12, A13, A14 et A15 ne vont pas directement à la PROM de décodage, mais passent d'abord par le circuit RESTART.

Un schéma synoptique de la carte CPU englobant tous les circuits que vous avez vu jusqu'à présent, est dessiné figure 30.

Schema_synoptique_simplifie_de_la_carte_CPU.GIF

On remarque que le décodeur de mémoire fournit deux autres signaux de sortie notés SEL_barre.GIF7 et SEL_barre.GIF8 dont le premier est envoyé au circuit WAIT.

Lorsque l'on prévoit d'utiliser une mémoire lente, on programme la PROM de façon que SEL_barre.GIF7 soit au niveau bas (niveau actif) chaque fois que le Z80 accède à cette mémoire.

Ainsi, le Z80 reste en attente le temps nécessaire. La sortie SEL_barre.GIF8 a une autre utilisation qui sera vue plus tard.

Il est à noter également que les mémoires ont une autre entrée de validation notée OE_barre.GIF (abrégé de Output Enable ou validation de sortie) et reliée à la broche RD_barre.GIF du Z80. Nous avons déjà vu la fonction de cette sortie : lorsque le Z80 veut lire une donnée d'une mémoire, il envoie un niveau bas de tension à la broche RD_barre.GIF. De cette manière, on valide la sortie des données de la mémoire sélectionnée sur les lignes D0 à D7.

D'autres entrées que l'on peut voir sur le schéma de la figure 30 sont relatives à des demandes et commandes provenant de l'extérieur de la carte.

La commande NMIRQ_barre.GIF indique une demande d'interruption que le Z80 ne peut ignorer ; lorsque celle-ci passe au niveau bas, le Z80 interrompt le programme en cours pour exécuter celui d'interruption.

La commande INTRQ_barre.GIF est par contre une demande d'interruption que le Z80 peut ignorer ; une autre demande d'interruption peut parvenir de la carte CPU elle-même, plus précisément d'un circuit appelé CTC (initiales de Counter Timer Circuit, circuit temporisateur compteur). Dans certaines conditions, par exemple à la fin d'un calcul, il peut signaler une demande d'interruption, en activant l'entrée CTC_INT_barre.GIF. Un dernier signal de commande est BUSRQ_Barre.GIF dont nous allons voir le rôle.

Nous savons que les mémoires ont en commun le bus de données. Il peut arriver qu'un dispositif extérieur à la carte CPU doive utiliser le bus ; dans ce cas, il envoie une demande au Z80 par l'intermédiaire du signal BUSRQ_Barre.GIF (abréviation de Bus Request) et le microprocesseur cède le contrôle du bus dès que l'instruction en cours est terminée.

Nous aurons l'occasion de revenir par la suite sur la fonction des différentes entrées dont nous venons de faire une rapide description.

Pour l'instant, il suffit de savoir que les adresses et les données parcourent des lignes ou bus reliant entre eux de nombreux dispositifs.

Rappelez-vous enfin que tous les signaux comme RD_barre.GIF, IORQ_barre.GIF sont actifs lorsqu'ils sont au niveau bas : ceci est indiqué par la barre.

Cette pratique vous a permis d'élargir vos connaissances sur la carte CPU et notamment le fonctionnement du Z80 . Bien évident, nous allons pas construire un micro-ordinateur car cela représente un travail énorme et coûteux.


  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet.   Haut de page
  Page précédente   Page suivante 






Nombre de pages vues, à partir de cette date : le 15 JUILLET 2019

compteur gratuit

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 4. 12 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 02 Septembre 2016.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en Septembre 2016.