★ CODING ★ CLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★ |
2/7.1 - Etude générale d'un système à microprocesseur : III. Les liaisons ou BUS | Coding Classeurs Weka |
2/7.1 - Etude générale d'un système à microprocesseurIII. Les liaisons ou BUS Comme annoncé précédemment, les différents organes d'un système à microprocesseur doivent être connectés ensemble, pour pouvoir dialoguer. Sur les cartes imprimées seront donc effectuées des liaisons électriques entre les broches des composants (pas n'importe comment tout de même). Ces liaisons, tout en n'étant pas identiques (sinon pourquoi les différencier), possèdent la caractéristique de pouvoir être regroupées en ce que l'on appelle BUS. Tout comme si vous teniez dans vos mains deux gros paquets de fils dont l'un est destiné à la commande automatique de votre lave-linge, et l'autre à votre chauffe-eau, vous appelleriez l'un bus du lave-linge, et l'autre bus de chauffe-eau, pour éviter de dénommer chacun des fils. Nous vous proposons donc d'étudier les trois bus que comportent quasiment tous les systèmes à microprocesseur : les bus de données, d'adresse, et de contrôle. LE BUS DE DONNÉES Passons à la loupe le bus de données. Un bus de données sera constitué de tous les fils de données, c'est-à-dire les fils où transite l'information (rappelons-le : des mots binaires, chaque fil étant ramené au potentiel zéro volt pour un zéro logique, ou + 5 volt pour un 1 logique). Dans notre exemple, en figure 5, le bus de données contient 8 fils (c'est le cas du Z80 ou du 6809), mais il aurait pu comporter 16 fils (cas du 68000), et même plus. Ces fils sont numérotés de D0 pour le poids faible (le plus à droite), à D7 pour le poids fort (le plus à gauche), on peut ainsi reconstituer une donnée en alignant les différents états de la façon suivante : D7 D6 D5 D4 D3 D2 D1 D0 Ainsi le mot binaire 0 1 0 0 0 0 0 1 trouvé sur le bus de données voudra dire que le fil D7 est au potentiel 0 volt, D6 au potentiel + 5 volt, D5 à 0 volt, etc. Signalons que ce mot possédera la valeur hexadécimale &41, plus facile à lire, et pourra signifier, par exemple, que l'instruction LD B,C va être exécutée, si une instruction doit être exécutée, ou que le caractère ASCII « A » va être traité, s'il est attendu un caractère ASCII (nous verrons ultérieurement ce qui est considéré comme programme, par rapport aux valeurs ASCII ou non). Tous les bus de données reliés à un microprocesseur sont bi-directionnels, c'est-à-dire que les données peuvent transiter dans les deux sens (ce qui est indiqué par des flèches à deux directions), car le microprocesseur peut éventuellement vouloir sauvegarder en mémoire le résultat d'une opération, ou alors relire un précédent résultat pour une nouvelle opération, voir effectuer un dialogue complet avec l'extérieur. Attention, même si il peut circuler dans les deux sens, ce transfert ne peut s'effectuer que dans un sens à un instant donné. Remarquons aussi, que le bus de données est généralement distribué à tous les composants constituant la mémoire et l'interface avec l'extérieur. LE BUS D'ADRESSES La figure 6 représente le bus d'adresses d'un microprocesseur tel le Z80. Ce bus est constitué de 16 fils d'adresses nommés de AO à A15, que l'on rassemble, afin de reconstituer le chiffre représentant l'adresse se trouvant sur tous les fils, sous la forme : A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Une adresse pourra ainsi se présenter, par exemple 0111111110100100 en binaire, ou encore en hexadécimal :&7FA4 (avouez que cette notation est beaucoup plus simple, et moins soumise à l'erreur). Remarquons que ce bus est unidirectionnel, les adresses étant toujours fournies par le microprocesseur et destinées aux composants l'entourant. Ces adresses sont fournies à l'unité de décodage, qui effectue des opérations logiques grâce aux fils du bus pour sélectionner les différents composants mémoires et organes d'interfaçage. Ce décodage peut être total (ce qui est très rare), mais très souvent partiel, et parfois non réalisé (l'Amstrad CPC utilise cette dernière forme de décodage pour les ports d'entrées/sorties, le Z80 s'y prêtant bien, car possédant deux lignes de contrôle signalant si l'adresse présente sur le bus est une adresse mémoire, ou une adresse de port d'interface).
LE BUS DE CONTRÔLE La figure 7 représente les différentes lignes de contrôle du Z80 (il a fallu choisir, car contrairement aux bus d'adresses et de données, les bus de contrôle diffèrent selon les microprocesseurs). Ce bus, bien que représenté bi-directionnel, est en fait multi-directionnel, c'est-à-dire que certaines liaisons sont unidirectionnelles dans un sens, et d'autres dans un sens différent. Comme son nom l'indique, ce bus comporte des liaisons qui vont permettre le contrôle de la communication entre le microprocesseur et les composants qui l'entourent. Passons donc brièvement en revue les signaux de contrôle du Z80 — tous les signaux surmontés d'une barre indique qu'ils sont actifs sur un niveau bas (0 volt), tandis que ceux qui n'en possèdent pas sont actifs sur un niveau haut ( + 5 volt).
Vous trouverez des explications plus détaillées en Partie 2, Chapitre 3, pages 5 et 6.
|