★ HARDWARE ★ MONTAGES, EXTENSIONS ET PÉRIPHÉRIQUES DU CPC ★ |
Book Montages Extension Peripheriques du CPC 13 : Interfaces E/S Paralleles |
13. INTERFACES E/S PARALLELES Lorsque l'on désire faire entrer en contact son ordinateur avec le monde extérieur, lorsque l'on veut transmettre ou recevoir des données, on nécessite une interface spéciale. Toutes ces interfaces ont en commun les sous-groupes suivants:
Dans ce qui suit nous allons vous présenter les possibilités étendues de deux de ces interfaces. Vous allez d'abord apprendre à connaître le circuit 8255, puis le Z80-PI0. Chacun de ces deux circuits a ces propres avantages, en particulier le Z80-PI0 est bon marché et disponible partout. Cela se paye par quelques complications de programmation par rapport au 8255, un circuit interface universel, mais d'un prix plus élevé. LE CIRCUIT INTERFACE 8255 Vous trouverez â la figure 60 le brochage de ce circuit intégré ainsi que son schéma synoptique à la figure 61. Le 8255 est divisé en divers groupes dont voici les fonctions: 1. LOGIQUE DE COMMANDE ECRITURE/LECTURE Cette partie s'occupe de tous les problèmes de transmission entre l'ordinateur et le circuit périphérique. C'est ici également que l'on détermine si les PORTs du CI travaillent en entrée ou en sortie. Elle décide aussi si les signaux qui arrivent doivent être interprétés comme des données ou comme des Instructions de commandes. Nous reviendrons au cours du développement sur les différentes significations de ces commandes ainsi Que sur leur programmation. 2. BUFFER DE BUS DE DONNEES Tous les signaux en provenance de l'ordinateur commencent par être stockés ici avant d'être traités par la suite. 3. PORTS Le 8255 dispose de 8 ports de 8 bits pouvant être individuellement programmés en entrée ou en sortie. Ces différents ports sont représentés à la figure 62.
Remarquez que le port C occupe un emplacement particulier. Les 4 bits de poids faible C0-C3 peuvent être ajoutés au port B et les 4 Dits de poids fort C4-C7 au port A, on obtient alors deux ports à 12 bits. Le 8255 dispose au total de 40 broches dont nous allons maintenant étudier plus en détail la signification.
Ces 24 bits peuvent être programmés soit en entrée soit en sortie, le signal est compatible TTL, on peut lui faire débiter Jusqu'à 1 mA. READ (-RD-), lecture, broche 5 Un L sur cette broche indique que le 8255 est prêt à transmettre des données au CPU (c'est le CPU qui lit). WRITE (-WR-), écriture, broche 36 Fonctionnement similaire à READ. Un niveau L indique que le CPU envoie des données dans le buffer du 8255 (c'est le CPU qui écrit). RESET , Initialisation, broche 35 Un niveau L fait initialiser tous les registres du 8255 et les ports A, B et C sont configurés en entrée. A0, A1, lignes d'adresses, broches 8 et 9 Avec ces deux bits on peut fabriquer 4 adresses différentes, ces 4 adresses suffisent à la commande des registres internes du 8225:
Comme nous l'avons vu, ce circuit est adressé avec seulement les deux bits A1 et AO. La validation proprement dite du circuit a lieu avec un signal Chip-Select sur la broche 6. Tant que cette entrée est au niveau H, le 8255 est déconnecté. Il est ainsi possible de brancher plusieurs de ces PIOs que l'on activera successivement en envoyant au bon moment un niveau L sur la broche 6. Nous verrons plus tard un montage faisant fonctionner Jusqu'à quatre 8255. MODES DE FONCTIONNEMENT DU 8255 Il a déjà été fait allusion aux trois modes de fonctionnement du 8255, que voici :
Ces modes sont programmables à l'aide d'un registre de commande. Nous allons maintenant passer en revue les différents modes de fonctionnement. MODE 0 Ceci est le mode standard, il est caractérise par les propriétés suivantes:
POSSIBLES EN MODE 0
REMARQUE: Après la mise en marche ou après un RESET tous les ports sont configurés en entrée. En mode 0 les données ne sont pas stockées dans en buffer, On volt à la figure 64 que les données (D7-DO) apparaissent avec un léger décalage après le signal RD. De même on retrouve ce retard par rapport à WR en écriture. MODE 1 Il a les caractéristiques suivantes:
La différence majeure avec le mode 0 réside dans le fait que nous avons Ici des signaux de contrôle autorisant ce que l'on appelle le HANDSHAK1NG (ou technique de la "poignée de main"). Ceux-ci permettent aux circuits périphériques ou au CPU de signaler qu'ils sont prêt à recevoir ou à envoyer des données, et de confirmer par la suite la bonne réception de ces données. Ce surcroît de signaux ne laisse que 16 lignes pour la communication, 4 des bits du port C étant réservés pour le handshaklng. Suivant que l'on se trouve en entrée ou en sortie, les mots de commande n'ont pas le même effet. MODE 1 entrée, signaux de commande -STB- = Strobe input
Un niveau L sur sur cette broche fait charger les données dans le buffer d'entrée. IBF = input Buffer Full
Lorsque les données ont été chargées, l'état de cette broche passe à H et signale ainsi que tout c'est bien passé. Ce signal est déclenché par un front descendant de STB et remis à 0 après un front montant de RD. Le diagramme des temps des différents signaux en entrée est représenté en haut de la figure 66. mode 1 sortie, signaux de commande Lorsque les ports sont programmés en sortie nous avons d'autres signaux de commande: -OBF- = Output Buffer Full
Un niveau L signale que le CPU vient d'écrire des données dans dans le registre de sortie. OBF est activé par un front positif sur WR et annulé par un front descendant du signal ACK. Voyez aussi le bas de la figure 66. -ACK- = Acknowledge Input
C'est ici que le circuit périphérique signale, en mettant un niveau L, qu'il a bien reçu les données en provenance du CPU via le port A ou B. Si par contre cette entrée est au niveau H, les ports de sortie se mettant en état haute impédance. La totalité des configurations possibles en mode 1 vous donnée aux figures 68 (entrée) et 69 (sortie). MODE 2 Ce mode constitue une entrée/sortie bidirectionnelle synchrone, et ne travaille qu'avec le groupe A. Comme cette technique est utilisée assez rarement en pratique, nous ne nous y attarderons donc pas. La programmation du PIO 8255 se fait par l'intermédiaire du registre de commande, dont vous pouvez voir tous les détails à la figure 67.
|