Vous êtes sur la page 1sur 10

Communication des données Notes de cours ELT234

CHAPITRE 1 : LES ENTRÉES/SORTIES PARALLÈLES

1. LES CIRCUITS PROGRAMMABLES


1.1. Présentation
Les circuits programmables sont des dispositifs pouvant être configurés pour réaliser
des fonctions diverses. A l’aide d’un seul circuit programmable, on peut ainsi réaliser
plusieurs fonctions logiques par simple programmation.
Les circuits logiques programmables ou encore P.L.D (Programmable Logic Logic
Device) sont généralement des circuits d’interfaçages permettant d’assurer la
communication entre le microprocesseur et les périphériques (Capteur, clavier, moniteur
ou afficheur, imprimante, modem, etc…).
Un PLD est donc un circuit intégré qui peut être programmé afin d'exécuter des
fonctions logiques spécifiques. La plupart des PLDs sont constitués de deux réseaux de
portes logiques, un réseau AND suivi d'un réseau OR. Les équations des fonctions
programmées sont écrites sous la forme minterme ou somme de produits. (Voir cours
d'électronique numérique - Systèmes logiques combinatoires).
La structure des PLDs étant très différente de celle des portes TTL ordinaires, de
nouvelles notations logiques ont été développées.
Exemple : S = A.B.C

• La porte AND est appelée une ligne de produits • Les lignes verticales sont les entrées du PLD.
• Les "X" représentent des fusibles • Les fusibles relient les entrées du PLD aux entrées de la porte AND
Lors de la programmation d'un PLD, un fusible indésirable est ouvert et le "X"
disparaît.
Exemple : S = A.B

BTS2 Page 3
Communication des données Notes de cours ELT234

1.2. Classification des familles de PLD


Les circuits programmables par l'utilisateur se décomposent en deux familles :
- Les PROM, les PLA, les PAL et les EPLD,
- Les FPGA.

1.2.1. PROM: Programmable Read Only Memories


Ce sont des PLDs en lecture seule, qui peuvent servir à stocker des programmes
fixes ou être utilisées pour des applications logiques. Dans ce cas, le réseau AND est fixe
et le réseau OR est programmable.

BTS2 Page 4
Communication des données Notes de cours ELT234

1.2.2. FPLA : Field Programmable Logic Array


Les deux réseaux AND et OR sont programmables.

1.2.3. P.A.L. : Programmable Array Logic


La famille des P.A.L. constitue les P.L.Ds les plus anciens. Le réseau AND est
programmable et le réseau OR est fixe.

BTS2 Page 5
Communication des données Notes de cours ELT234

La programmation de ces circuits s'effectue par destruction de fusibles. Une fois


programmée on ne peut plus les effacer. On distingue deux sous familles:
- Les P.A.L combinatoires ou P.A.L simples qui sont constitués de fonctions
logiques combinatoires.
- Les P.A.L à registres ou F.P.L.S (Field Programmable Logic Séquencer),
constitués de logique combinatoire et séquentielle (Registre).

1.2.3. P.A.L. effaçables


Les P.A.L. effaçables ou E.P.L.D (Erasable Programmable Logic Device) sont des
circuits logiques programmables et effaçables. Ils peuvent être effacés par U.V. ou
électriquement. Ils sont encore appelés P.A.L. CMOS

1.2.4. Les G.A.L.


Les G.A.L (Generic Array Logic) sont des réseaux logiques génériques. Leur
fonctionnement est identique aux P.A.L. CMOS, ils sont programmables et effaçables
électriquement.

BTS2 Page 6
Communication des données Notes de cours ELT234

1.2.5. Les C.P.L.D.


Les C.P.L.D (Complex Programmable Logic Device) sont des circuits composés de
plusieurs P.A.L élémentaires reliés entre eux par une zone d’interconnexion. Grâce à cette
architecture, ils permettent d’atteindre des vitesses de fonctionnement élevées (plusieurs
centaines de Mhz).

1.2.6. Les L.C.A. & F.P.G.A. à anti-fusible.


- Les L.C.A (Logic Cell Array) ou encore réseau de cellules logiques sont composés de
blocs logiques élémentaires de 2000 à 10000 portes que l'utilisateur peut interconnecter.
- Les F.P.G.A à anti fusibles sont identiques aux L.C.A sauf qu'ils permettent une plus
grande intégration de portes et ils ne sont pas effaçables électriquement. Le nom anti-
fusible vient de la programmation des connexions qui s'effectue par fermeture de circuits,
comparé aux fusibles où l'on ouvre les circuits.

2. INTERFACE D’ENTREE/SORTIE
2.1. Rôle
Chaque périphérique sera relié au système par l’intermédiaire d’une interface (ou
contrôleur) dont le rôle est de :
- Connecter le périphérique au bus de données
- Gérer les échanges entre le microprocesseur et le périphérique.

2.2. Constitution
L’interface est constituée de :
- Un registre de commande dans lequel le processeur décrit le travail à effectuer (sens
de transfert, mode de transfert).
- Un ou plusieurs registres de données qui contiennent les mots à échanger entre le
périphérique et la mémoire.
- Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien
déroulé, etc… On accède aux données de l’interface par le biais d’un espace d’adresses
d’entrées/sorties.

3. TECHNIQUES D’ECHANGE DE DONNEES


Avant d’envoyer ou de recevoir des informations, le microprocesseur doit connaître
l’état du périphérique. En effet, le microprocesseur doit savoir si un périphérique est prêt à
recevoir ou à transmettre une information pour que la transmission se fasse correctement.
Il existe 2 modes d’échange d’information :

BTS2 Page 7
Communication des données Notes de cours ELT234

- Le mode programmé par scrutation ou interruption où le microprocesseur sert


d’intermédiaire entre la mémoire et le périphérique.
- Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se charge
pas de l’échange de données.

3.1. Echange programmé


3.1.1. Scrutation
Dans la version la plus rudimentaire, le microprocesseur interroge l’interface pour
savoir si des transferts sont prêts. Tant que des transferts ne sont pas prêts, le
microprocesseur attend.
L’inconvénient majeur est que le microprocesseur se retrouve souvent en phase
d’attente. Il est complètement occupé par l’interface d’entrée/sortie. De plus, l’initiative de
l’échange de données est dépendante du programme exécuté par le microprocesseur. Il
peut donc arriver que des requêtes d’échange ne soient pas traitées immédiatement car le
microprocesseur ne se trouve pas encore dans la boucle de scrutation. Ce type d’échange
est très lent.

3.1.2. Interruption
Une interruption est un signal, généralement asynchrone au programme en cours,
pouvant être émis par tout dispositif externe au microprocesseur. Le microprocesseur
possède une ou plusieurs entrées réservées à cet effet. Sous réserve de certaines
conditions, elle peut interrompre le travail courant du microprocesseur pour forcer
l’exécution d’un programme traitant la cause de l’interruption.
Dans un échange de données par interruption, le microprocesseur exécute donc son
programme principal jusqu’à ce qu’il reçoive un signal sur sa ligne de requête
d’interruption. Il se charge alors d’effectuer le transfert de données entre l’interface et la
mémoire.
Principe de fonctionnement d’une interruption
Avant chaque exécution d’instructions, le microprocesseur examine s’il y a eu une
requête sur sa ligne d’interruption. Si c’est le cas, il interrompt toutes ces activités et
sauvegarde l’état présent (registres, PC, accumulateurs, registre d’état) dans un registre
particulier appelé pile. Les données y sont ‘’entassées’’ comme on empile des livres (la
première donnée sauvegardée sera donc la dernière à être restituée). Ensuite, il exécute
le programme d’interruption puis restitue l’état sauvegardé avant de reprendre le
programme principal.

BTS2 Page 8
Communication des données Notes de cours ELT234

Remarque:
Certaine source d’interruption possède leur propre autorisation de fonctionnement sous la forme d’un bit
à positionner, on l’appelle masque d’interruption. Chaque source d’interruption possède un vecteur
d’interruption où est sauvegardé l’adresse de départ du programme à exécuter. Les interruptions sont
classées par ordre de priorité. Dans le cas où plusieurs interruptions se présentent en même temps, le
microprocesseur traite d’abord celle avec la priorité la plus élevée.

3.2. Echange direct avec la mémoire


Ce mode permet le transfert de blocs de données entre la mémoire et un périphérique
sans passer par le microprocesseur. Pour cela, un circuit appelé contrôleur de DMA
(Direct Memory Access) prend en charge les différentes opérations.
Le DMA se charge entièrement du transfert d’un bloc de données. Le microprocesseur
doit tout de même :
- Initialiser l’échange en donnant au DMA l’identification du périphérique concerné
- Donner le sens du transfert
- Fournir l’adresse du premier et du dernier mot concerné par le transfert
Un contrôleur de DMA est doté d’un registre d’adresse, d’un registre de donnée, d’un
compteur et d’un dispositif de commande (logique câblée). Pour chaque mot échangé, le
DMA demande au microprocesseur le contrôle du bus, effectue la lecture ou l'écriture
mémoire à l'adresse contenue dans son registre et libère le bus. Il incrémente ensuite
cette adresse et décrémente son compteur. Lorsque le compteur atteint zéro, le dispositif
informe le processeur de la fin du transfert par une ligne d'interruption.
Le principal avantage est que pendant toute la durée du transfert, le processeur est
libre d'effectuer un traitement quelconque. La seule contrainte est une limitation de ses
propres accès mémoire pendant toute la durée de l'opération, puisqu'il doit parfois retarder
certains de ses accès pour permettre au dispositif d'accès direct à la mémoire d'effectuer
les siens : il y a apparition de vols de cycle.

4. ÉTUDE DU PIA 8255


4.1. Description générale du PIA 8255A
Le PIA 8255A est un circuit intégré de 40 broches ayant 24 E/S compatible TTL, utilisé
pour interfacer des microprocesseurs de Intel. Son brochage est proposé par la figure ci-
contre.

BTS2 Page 9
Communication des données Notes de cours ELT234

Brochage du PIA 8255A.

4.2. Architecture générale du PIA 8255A


Le PIA 8255A comprend trois registre de 8 bits, A, B et C (appelés PORTS) ET un
registre de commande. La sélection de ces quatre registres s’effectue par les deux bits
d’adresse A0 et A1.
L’interface vers le processeur se trouve à la partie gauche du schéma. Elle
comprend la broche de sélection de boîtier, appelée CS, deux broches d’adresse (A0 et
A1), les trois broches de commande de lecture RD, d’écriture WR et de RAZ (Reset), et
huit broches de données bidirectionnelles (D0 à D7).

 CS (chip select) : un niveau bas sur cette ligne d’entrée autorise la communication entre
le PIA 8255A et le microprocesseur.
 RD (Read) : un niveau bas sur cette entrée permet le transfert des informations du PIA
8255A vers le microprocesseur.
 WR (Write) : un niveau bas sur cette commande autorise le CPU d’écrire des
informations sur le PIA 8255A.
(A0 et A1) : la combinaison de ces deux entrées avec le signal RD et le signal WR
permet la sélection d’un seul registre parmi les trois ports et le registre de contrôle.
Elles sont connectées aux deux bits les moins significatifs du bus d’adresse.
RESET : un niveau haut sur cette entrée mis à zéro le registre de contrôle et les ports
A, B et C sont mis en mode d’entrée.
Commande de groupe A et B : La configuration de chaque port du PIA 8255A est
programmée d’une manière software. Chaque groupe de commandes (groupe A et groupe
B) forme le mot de commande pour chaque port, en recevant les signaux de commande

BTS2 Page 10
Communication des données Notes de cours ELT234

envoyés par le bloc de la logique de contrôle ainsi que le mot de contrôle via le bus de
données interne.
Le groupe de commande A contrôle le port A et le port C supérieur, et le groupe de
commande B contrôle le port B et le port C inférieur.
 Port A : Port de données de huit bits, peut être configuré soit en sortie soit en entrée.
Notons que les données au niveau du port A peuvent être latchées en entrée comme
en sortie.
 Port B : Port de données de huit bits, il peut être aussi configuré soit en sortie soit en
entrée. Les données au niveau du port B peuvent être latchées en sortie mais pas en
entrée.
 Port C : Port de données de huit bits, mémorisées uniquement en sortie. Ce port peut
être divisé en deux ports de 4 bits (port C supérieur C4 à C7 et port C inférieur C0 à C3).
Les 04 bits de chaque port peuvent être utilisés comme des signaux de commande et
d’état avec les deux ports A et B.

4.4. Opérations de base du PIA 8255A


Le tableau ci-dessous résume les opérations de base de l’interface PIA 8255A.
A1 A0 RD WR CS Opérations en entrée (INPUT OPERATION : READ)
0 0 0 1 0 (Port A) vers le bus de données
0 1 0 1 0 (Port B) vers le bus de données
1 0 0 1 0 (Port C) vers le bus de données
Opérations en sortie (OUTPUT OPERATION : WRITE)
0 0 1 0 0 (Bus de données) vers le port A
0 1 1 0 0 (Bus de données) vers le port B
1 0 1 0 0 (Bus de données) vers le port C
1 1 1 0 0 (Bus de données) vers le registre de contrôle
Fonctions non autorisées (DISABLEFUNCTION)
x x x x 1 Bus de données en Hz
1 1 0 1 0 Condition illégale
x x 1 1 0 Bus de données en Hz

4.5. Mode de fonctionnement du PIA 8255A


Il y ’ a trois modes de fonctionnement du PIA 8255A à savoir :
- Mode 0 : Entrée et sortie de base, ou encore entrée/sortie de bits ;
- Mode 1 : Entrée / sortie échantillonnée ;
- Mode 2 : Bus bidirectionnel ;
Mode 0 : En mode 0, le 8255A fonctionne en configuration « E/S de base » ou E/S
de bits. Ceci signifie que les broches définies comme des sorties resteront aux niveaux
donnés par une sortie du microprocesseur vers le 8255A, jusqu'à ce qu’ils soient modifiés

BTS2 Page 11
Communication des données Notes de cours ELT234

par une autre opération de sortie du microprocesseur. Les sorties en mode 0 sont
mémorisées, les entrées ne le sont pas.
Mode 1 : le mode 1 est le mode d’E/S échantillonné du 8255A. Les ports de
données sont A et B, Les ports C servant pour les lignes de commandes et d’état de
l’asservissement échantillonné. Le port A utilise pour l’asservissement les bits 3, 4 et 5,
tandis que le port B utilise les bits 0, 1 et 2. Les bits 6 et 7 du port C restent disponibles
pour des E/S de bits.
Mode 2 : le mode 2 est le mode de fonctionnement du 8255A le plus complexe seul
le port A peut-être fonctionné dans ce mode. Le port A est utilisé comme un accès de
données bidirectionnel tandis que cinq bits du port C sont utilisés comme signaux
d’asservissement. Le port B peut être utilisé en mode 1 ou en mode 0 pendant que le port
A fonctionne en mode 2. Les bits du port C restants sont disponibles soit pour des E/S de
bits, soit comme lignes d’asservissement pour le port B. la ligne de demande d’interruption
INTR est commune aux opérations d’entrée et sortie en mode 2.

BTS2 Page 12

Vous aimerez peut-être aussi