Sie sind auf Seite 1von 8

LePIA 6821

Interfaces de la famille 6809

Jusqu'à présent nous avons vu les caractéristiques du microprocesseur 6809 et la


façon de travailler avec l'environnement mémoire.

Toutefois, l'utilisation des instructions du 6809, la gestion des registres internes, le


transfert des données entre le microprocesseur et la mémoire ne représentent pas un tout,
il faut pouvoir dialoguer avec l'environnement extérieur. Le rôle des interfaces est de
permettre ce dialogue.

Le dialogue entre le processeur et l'environnement extérieur est bidirectionnel. Les


entrées désignent la saisie des données à partir de périphériques extérieurs, les sorties le
transfert des données vers des unités extérieures.

Toutes les interfaces simples ou spécialisés de la famille 6800 sont compatibles avec
le 6809.

A. FAKKAR 68
LePIA 6821
Interface d'entrées/sorties parallèles : PIA-6821

Le PIA 6821 (Peripheral / Interface Adapter) est le coupleur de périphérique qui


permet de réaliser la liaison parallèle entre le microprocesseur 6809 et ses périphériques.

Le PIA communique avec le microprocesseur par l'intermédiaire des bus de données


(8 bits), d'adresses (5 lignes) et de contrôle. Les dialogues avec la périphérie sont assurés
par deux bus 8 bits bidirectionnels, quatre broches de contrôle assurent la synchronisation
des transferts.

La programmation interne du PIA est fonction du périphérique connecté.

a. Organisation interne du PIA :

Le PIA est un circuit divisé en deux parties A et B indépendantes. Chacune des


parties possède :

 un port 8 bits bidirectionnels,

 deux lignes de contrôle du dialogue avec la périphérie,

 trois registres internes 8 bits à lecture et écriture.

CRA-CRB (Control Register A et B) : Ces deux registres internes (8 bits) contiennent


les paramètres de fonctionnement (6 bits) accessibles en lecture et écriture et les
indicateurs d'état (2 bits) accessibles en lecture.

DDRA-DDRB (Data Direction Register A et B) : Le rôle de ces registres (8 bits) à


lecture et écriture est de définir le sens de travail de chacune des lignes composant les
ports A et B.

ORA-ORB (Output Register A et B) : Ces registres permettent de mémoriser une


donnée en sortie lors d'une écriture. Les données présentes sur les ports A et B en entrées
sont prises en compte par une lecture de ORA ou ORB mais ne sont pas mémorisées dans
ces registres.

b. Organisation externe du PIA :

Le PIA se présente sous forme d'un boîtier DIL, 40 broches mono-tension (0. +5V).
A. FAKKAR 69
LePIA 6821
* Liaisons avec le microprocesseur :

 Bus de données DO.....D7 :

Ces 8 lignes bidirectionnelles sont directement reliées au bis du 6809. Elles assurent
l'échange des données entre le microprocesseur et le PIA. Si elles ne sont pas utilisées, ces
lignes sont dans l'état haute impédance.

Bus d'adresses :

- CS0, CS1, CS2 (Chip Select LINE) : Ces trois entrées permettent de sélectionner le
boîtier

- RS0, RS1 (Register Select Line) : Les quatre combinaisons de ces deux lignes permettent
de sélectionner les registres internes (4 octets mémoire).

Bus de contrôle :

- E : Signal d'activation des échanges.

- RESET : Initialisation du PIA. Les registres internes sont mis à zéro.

- R/W : Lecture-écriture.

- IRQA, IRQB : Reliées à IRQ FIRQ ou NMI du microprocesseur, ces lignes permettent
d'interrompre l'exécution d'un programme.

* Liaisons avec la périphérie :

Ports de transfert

- PA0-PA7 : Ces 8 broches permettent de transmettre ou de recevoir un mot de 8 bits.


Suivant la programmation de DDRA, elles sont utilisées en entrée ou en sortie (DDRAx = 0
==> PAx est en entrée ; DDRAx = 1 ==> PAx est une sortie x = 0, 1,…7).

- PB0-PB7 : Comme pour la partie A, ces 8 lignes sont utilisables en entrée ou en sortie,
suivant la programmation de DDRB. Contrairement à la partie A, ces lignes sont en logique
trois états.
Lignes de transfert

A. FAKKAR 70
LePIA 6821
- CA1-CB1 : Ces deux entrées associées respectivement aux parties A et B sont actives
sur des fronts montants ou descendants suivant la programmation des registres de contrôle
associés et positionnent un drapeau d'interruption (bit 7 des registres de contrôle).

- CA2 : Cette ligne associée à la partie A du PIA peut être programmé en entrée ou en
sortie. Elle permet de contrôler l'échange à travers le PIA, son rôle est déterminé par le
contenu des bits 3, 4 et 5 de CRA. Elle positionne, en entrée, un drapeau d'interruption
(bit 6 de CRA).

- CB2 : Cette ligne associée à la partie B du PIA travaille en entrée ou en sortie dans un
monde défini par les bits 3, 4 et 5 de CRB. En sortie elle peut servir de source de courant
(1 mA sous 1,5 V), contrairement à CA2. En entrée, elle positionne un drapeau
d'interruption (bit 6 de CRB).

c. Fonctionnement du PIA :

Le diagramme fonctionnel du PIA permet d'apprécier le rôle des différents registres


internes accessibles à l'utilisateur.

A. FAKKAR 71
LePIA 6821
Transfert d'une donnée de la périphérie vers le processeur :

La donnée disponible sur le port A par exemple (PA0-PA7 en entrée  contenu de


DDRA = 0) est directement transmise à l'amplificateur bus de données par l'intermédiaire
du bus de sortie. Elle ne transite pas par ORA, il n’y a donc pas mémorisation de données
en entrée. Ce transfert se fait sous le contrôle de CRA. Un signal actif sur CA1 sera validé
sur IRQA si et seulement si le contenu du registre de contrôle le permet.

La fonction est identique sur la partie B.

Transfert d'une donnée du processeur vers la périphérie :

La donnée disponible sur le bus du MPU est chargée dans le registre de sortie B par
exemple, par l'intermédiaire du bus d'entrée, elle est donc mémorisée. Le port B est en
sortie (DDRB = $FF), la donnée est disponible tant qu'une nouvelle écriture n'est pas
intervenue.

1. Sélection des registres internes :

Comme nous venons de le voir, le type de liaison entre le processeur et la périphérie


dépend du contenu des registres internes du PIA. Le microprocesseur accède à ces
registres internes par l'intermédiaire des lignes sélection de boîtier (CS0-CS1-/CS2) et
sélection de registre (RS0-RS1). Le tableau résume la méthode d'adressage des registres
internes du PIA. Le PIA occupe 4 octets mémoire pour les registres internes, deux
registres sont donc accessibles directement par le microprocesseur (CRA et CRB), les
quatre autres registres tiennent compte de l'état du bit 2 de CRA ou CRB suivant le cas.

Les lignes A2-A15 sont reliées à une logique de décodage qui détermine l'adresse
de base de PIA en sélectionnant le boîtier. Les lignes A0-A1 sont respectivement
connectées aux lignes sélection de registre interne. L'occupation mémoire du PIA se situe
aux adresses ADR, ADR+1, ADR+2 et ADR+3.

A. FAKKAR 72
LePIA 6821

2. Programmation du PIA :

Les registres de contrôle du PIA remplissent deux rôles ; le mode de


fonctionnement est déterminé par le contenu des bits 0 à 5 (à lecture et écriture) tandis
que les bits 6 et 7 remplissent le rôle d'indicateurs d'état associés aux lignes de dialogue
CA1, CA2, CB1 et CB2.

Programmation des lignes de dialogue CA1, CA2, CB1 et CB2 en entrée.

CA1 et CB1 toujours en entrée sont initialisées par le contenu des bits 0 et 1 de
CRA et CRB. Elles positionnent l'indicateur CRA7 ou CRB7 quand elles sont actives.

CA2 et CB2 travaillent en entrées quand CRX5 = 0 (X=A ou B). Elles sont
initialisées de la même manière que CA1 et CB1, par le contenu des bits 3 et 4 de CRA et
CRB. Elles positionnent l'indicateur CRA6 ou CRB6 quand elles sont actives.

Programmation des lignes de dialogue CA2 et CB2 en sortie

CA2 et CB2 travaillent en sorties quand CRX5 = 1 (X= A ou B). Le contenu du bit
4 permet alors de choisir deux modes de fonctionnement : le mode dialogue (CRX4 = 0) ou
le mode programmé (CRX4 = 1).

- Pour le fonctionnement en mode programmé, les lignes CA2 et CB2 prennent l'état du
bit 3. Pour CRA3 = 0, par exemple, la ligne CA2 est à l'état bas, l'écriture de CRA3= 1
entraîne le passage de CA2 à l'état haut. Le fonctionnement est identique pour CB2-
CRB3.

- Contrairement aux autres modes de fonctionnement, dans le mode dialogue, les parties A
et B du PIA ont un fonctionnement différent. Le port A travaille en entrée, la lecture par le
microprocesseur du registre ORA entraîne le passage à l'état bas de CA2 (CRA4 = 0). Le
port B travaille en sortie, l'écriture par le microprocesseur du registre ORB entraîne le
passage à l'état bas de CB2.
A. FAKKAR 73
LePIA 6821
Dans ces deux cas, c'est le contenu de CRX3 qui détermine le mode de retour à
l'état initial de CA2 ou CB2 Les lignes CA2 ou CB2 repassent à l'état haut (CRX = 0)
quand un front actif est détecté sur CA1 ou CB1. Si CRX3 = 1, CA2 ou CB2 reprennent
leur état initial quand le circuit est déselecté, sur un front montant (CB2) ou descendant
(CA2).

La figure suivante donne le diagramme de fonctionnement des lignes CA2 et CB2 en


sortie, en fonction du contenu des bits 3 et 4 de CRX.

Le tableau ci-dessous résume l’ensemble des modes de programmation du PIA.

A. FAKKAR 74
LePIA 6821
REGISTRE DE DIRECTION DU PORT A
7 6 5 4 3 2 1 0
0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée 0 = entrée
1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie 1 = sortie

REGISTRE DE CONTRÔLE DU PORT A


7 6 5 4 3 2 1 0
IRQ IRQ accès à DDRA
CONTRÔLE DE CA2 ou à PA CONTRÔLE DE CA1
de CA1 de CA2
0 0
0 0 0 0 0
aucune aucune
0 CA2 actif interruption CA1 actif interruption
transition transition
sur . masquée DDRA sur . masquée
active sur CA1 active sur CA2 CA2
1 1 en 1 1 1 1 1
transition transition entrée CA2 actif interruption CA1 actif interruption
active sur CA1 active sur CA2 sur . permise PA sur . permise

P 1 X
R
O Mode dialogue:
G
R
A CA2 = CRA3 Rx : CA1 ou => CA2 et CRA7
M
M
E
Lire PA => CA2 et CRA7
1 0 1
P
CA2 U
0 L lire PA => CA2 Tx : Écrire sur PB => CB2
en S
écrire PB => CB2
É
sortie CB1 ou => CB2
D 0 0
I
A
L
O
G
U
voir
E

A. FAKKAR 75