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:

  • logique de contrôle et de commande
  • étage tampon pour le BUS de données
  • au moins 8 entrée/sorties programmables

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.


FIGURE 60 : 8255


FIGURE 61 : ORGANISATION INTERNE DU 8255


FIGURE 62 : STRUCTURE DES PORTS DU 8255

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.

  • PORT A — bits de données PA7 - PA0, broches 37-40 et 1-4
  • PORT B — bits de données PB7 - PB0, broches 25-21 et 20-18
  • PORT C — bits de données PC7 - PC0, broches 18-10

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:

A1A0signification
00

Les données du BUS de donnéés sont transmises au port A.

01Les données du BUS de données sont transmises au port B.
10Les données du BUS de données sont transmises au port C.
00Les données du BUS de données sont interprétées comme signaux de commande.


CS (-Chip-Select-), sélection du circuit, broche 6

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 :

  • MODE 0: Fonctionnement standard sans handshake
  • MODE 1: Fonctionnement avec handshake
  • MODE 2: BUS de données bidirectionnel avec handshake

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:

  • Deux ports 8 bits et deux ports 4 bits
  • Chaque port peut être programmé en entrée ou en sortie
  • Les entrées et sorties ne possèdent pas de mémoire tampon
  • Il existe dans ce mode 16 configurations d'E/S différentes, elles sont représentées à la figure 63

POSSIBLES EN MODE 0
D4D3D1D0GROUPE A
PORT A PORT C bit 4-7
GROUPE B
PORT B PORT C bit 0-3
0000000011111111000011110000111100110011001100110101010101010101sortie sortie
sortie sortie
sortie sortie
sortie sortie
sortie entrée
sortie entrée
sortie entrée
sortie entrée
entrée sortie
entrée sortie
entrée sortie
entrée sortie
entrée entrée
entrée entrée
entrée entrée
entrée entrée
sortie sortie
sortie entrée
entrée sortie
entrée entrée
sortie sortie
sortie entrée
entrée sortie
entrée entrée
sortie sortie
sortie entrée
entrée sortie
entrée entrée
sortie sortie
sortie entrée
entrée sortie
entrée entrée

REMARQUE: Après la mise en marche ou après un RESET tous les ports sont configurés en entrée.


FIGURE 64 : DIAGRAMME DES TEMPS (Read-Write) EN MODE 0

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:

  • Deux ports A et B
  • Chaque port Inclue 8 bits de données et 4 bits de commande
  • Présence d'une mémoire tampon, pour les sorties et pour les entrées
  • Les 4 bits de commande reflètent l'état logique des bits de données

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

  • broche PC 4 pour port A
  • broche PC 2 pour port B

Un niveau L sur sur cette broche fait charger les données dans le buffer d'entrée.

IBF = input Buffer Full

  • broche PC 5 pour port A
  • broche PC 1 pour port B

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

  • broche PC 7 pour port A
  • broche PC 1 pour port B

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

  • broche PC 6 pour port A
  • broche PC 2 pour port B

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.

Page précédente : Book Montages Extension Peripheriques du CPC 12.1 : Interface E/S 32 Voies avec le 8212
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 343 millisecondes et consultée 1267 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.