HARDWARE ★ MONTAGES, EXTENSIONS ET PÉRIPHÉRIQUES DU CPC ★

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.


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.

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:

A1 A0 signification
0 0

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

 

0 1

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

1 0

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

0 0

Les 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 :

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
D4 D3 D1 D0 GROUPE A
PORT A PORT C bit 4-7
GROUPE B
PORT B    PORT C bit 0-3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
sortie 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:

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.

 

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

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 906 millisecondes et consultée 92 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.