5. INTERFACE PARALLELE IMPRIMANTE LPT. PIO 8255

Transcription

5. INTERFACE PARALLELE IMPRIMANTE LPT. PIO 8255
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
5. INTERFACE PARALLELE IMPRIMANTE LPT. PIO 8255
Architecture PC
8288
Contrôleur de bus
8088
NMI Unité
Centrale
INTR
8087
Coprocesseur
Démultiplexage
et bufferisation
du bus système
Bus
8259
Contrôleur
d'interruption
Décodage
adresses E/S
CPU
Décodage
adresses ROM
ROM
MEMOIRE
Décodage
adresses RAM
RAM
8250
Interface E/S série
E/S
8253 Horloge
8255
Interface E/S
parallèle
8237
Contrôleur DMA
Interface clavier
Commande HP
Test de parité
Slots d'Extension
Schéma-bloc de la carte mère du PC
TR 5.
1
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
Mapping des E/S du PC
Adresse d'E/S
Unité connectée
00 - 0F
10 - 1F
20 - 21
22 - 3F
40 - 43
44 - 5F
60 - 64
65 - 7F
80 - 83
84 - 1FF
200 - 20F
210 - 26F
270 - 27F
280 - 2F7
2F8 - 2FF
300 - 377
Contrôleur DMA 8237
Libre
Contrôleur d'interruption 8259
Libre
Compteurs programmables 8253
Libre
Ports d'E/S de la carte mère
Libre
Registres DMA
Libre
Adaptateurs jeux
Libre
Réservé
Libre
Réservé
Libre
378 - 37F
INTERFACE PARALLELE (IMPRIMANTE)
380 - 3AF
3B0 - 3BF
300 - 3CF
3D0 - 3DF
3E0 - 3EF
3F0 - 3F7
3F8 - 3FF
400 - FFFF
Libre
Contrôleur parallèle imprimante
Libre
Contrôleur graphique/couleur
Libre
Contrôleur disquettes (floppy disk)
Interface série (RS-232C)
Libre (reste des 64K canaux d'E/S)
TR 5.
2
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
Connecteur port parallèle imprimante (DB25) côté PC :
Parallel (PC)
(at the PC)
25 PIN D-SUB FEMALE at the PC
Pin Name
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TR 5.
/STROBE
D0
D1
D2
D3
D4
D5
D6
D7
ACK
/BUSY
PO
SEL IN
/AUTOFD
ERROR
INIT
/SEL
GND
GND
GND
GND
GND
GND
GND
GND
Dir
↔
↔
↔
↔
↔
↔
↔
↔
↔
←
←
←
←
↔
←
↔
↔








Description
Strobe
Data Bit 0
Data Bit 1
Data Bit 2
Data Bit 3
Data Bit 4
Data Bit 5
Data Bit 6
Data Bit 7
Acknowledge
Busy
Paper out
Select in
Autofeed
Error
Initialize
Select Printer
Ground
Ground
Ground
Ground
Ground
Ground
Ground
Ground
3
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
4. Architecture logicielle de l’interface parallèle
4.1. Paramétrage du BIOS
Mode
Sens de transfert
SPP (Normal) Bidirectionnel (OUT/IN)
EPP
Bidirectionnel (OUT/IN)
ECP
Monodirectionnel (OUT)
Spécificité
Mode normal
Mode rapide
Fonctions étendues
4.2. Adresse de l’interface parallèle
Adresse (notée BASE) Spécificité Paramétrage
378H
LPT1
Modifiable par le BIOS
278H
LPT2
Modifiable par le BIOS
4.3. Affectation des broches du connecteur parallèle (LPT1)
Pin # DB25
Signal
Direction Register
1
IN/OUT Control
Strobe
2
Data0
OUT/IN Data
3
Data1
OUT/IN Data
4
Data2
OUT/IN Data
5
Data3
OUT/IN Data
6
Data4
OUT/IN Data
7
Data5
OUT/IN Data
8
Data6
OUT/IN Data
9
Data7
OUT/IN Data
10
Ack
IN
Status
Busy
11
IN
Status
12
Paper out
IN
Status
13
Select in
IN
Status
14
IN/OUT Control
Auto linefeed
15
Error
IN
Status
16
Initialize printer IN/OUT Control
Select printer
17
IN/OUT Control
18-25
Ground
GND
TR 5.
4
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
4.4. Ports de l’interface parallèle
Connecteur parallèle LPT = 3 “ ports ” :
Adresse Port
Direction (READ-IN / WRITE -OUT) Taille Pin #
DB25
BASE+0 Data port
OUT
si Mode Monodir. (BIOS) 8 bits 2-9
OUT/IN si Mode Bidir. (BIOS)
(OUT par défaut)
BASE+1 Status port IN only
8 bits 10-13
(si données écrites → ignorées)
+15
BASE+2 Control port IN/OUT
8 bits 1
(sélect. sens Data port en Mode Bidir.)
+14
+16-17
4.5. Data port de l’interface parallèle
Adresse Port
Direction
(READ-IN / WRITE –OUT)
BASE+0 Data port OUT
en Mode Monodir.
OUT/IN en Mode Bidir.
(OUT par défaut)
TR 5.
Bit #
Signal Pin #
DB25
Bit 7(MSB) Data7 9
Data6 8
Bit 6
Data5 7
Bit 5
Data4 6
Bit 4
Data3 5
Bit 3
Data2 4
Bit 2
Data1 3
Bit 1
Bit 0(LSB) Data0 2
5
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
4.6. Status port de l’interface parallèle
Adresse Port
Direction
Bit #
(READ-IN / WRITE –OUT)
BASE+1 Status port IN only
Bit 7
(si données écrites → ignorées) Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Signal
Busy
Ack
Paper out
Select in
Error
IRQ
Reserved
Reserved
Pin #
DB25
11
10
12
13
15
-
4.7. Control port de l’interface parallèle
Adresse Port
Direction
Bit #
(READ-IN /
WRITE –OUT)
BASE+2 Control port IN/OUT
Bit 7
(sélect. sens Bit 6
de Data port Bit 5
Mode Bidir.) Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Signal
Pin #
DB25
Reserved
Reserved
Select Data port IN/OUT Enable IRQ via Ack line Select printer
17
Initialize printer
16
14
Auto linefeed
1
Strobe
Mot à écrire à l’adresse BASE + 2 pour sélection du Data port IN/OUT :
MSB 7
.Data port IN:
mot =
MSB 7
.Data port OUT: mot =
TR 5.
6
5
X X 1
6
5
X X 0
4
3
2
1
0
LSB
=
X X X X X
4
3
2
1
0
X X X X X
LSB
=
MSB 7
6
5
4
3
2
1
0
0
0
1
0
0
0
0
0
MSB 7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
LSB
→ mot = 20H
LSB
→ mot = 00H
6
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
5. Programmation de l’interface parallèle
Programme C CVI pilotant le port parallèle (LPT1) du PC
Ecriture du mot FFH sur le port DATA puis lecture en boucle du port DATA
#include <utility.h>
// Inclusion de la librairie utility (fonctions inp(), outp())
#define ADR_LPT1 0x378
// 378H s'écrit en C : 0x3F8
#define ADR_LPT2 0x278
#define PORT_DATA ADR_LPT1
// Port DATA situé à l’adresse de base
#define PORT_STATUS ADR_LPT1+1 // Port STATUS à l’adresse de base + 1
#define PORT_CTRL ADR_LPT1+2
// Port CTRL à l’adresse de base + 2
main()
{
unsigned char mot;
// Déclarations
outp(PORT_CTRL,0x00);
// Place le port DATA en sortie (par défaut)
outp(PORT_DATA, 0xFF);
// 8 bits à « 1 » sont envoyés sur le port DATA
// (et y restent mémorisés à cette valeur
// les ports du 8255 intègrent un registre)
outp(PORT_CTRL,0x20);
// Place le port DATA en entrée
while(1)
// Boucle infinie
{
mot = inp(PORT_DATA); // Lecture permanente du port DATA
// à la cadence horloge PC
// avec 1 acquisition par cycle horloge
// chaque acquisition étant stockée dans mot
}
// Sans la boucle infinie, 1 seule acquisition
// serait réalisée à l’instant de l’exécution
// de mot = inp(PORT_DATA)
// et serait mémorisée dans mot
}
TR 5.
7
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
6. Application de l’interface parallèle
6.1. Entrées/Sorties en mode Monodirectionnel
Par LPT :
. Affichage d’un digit (en code binaire)
. Acquisition d’un chiffre (en code DCB) par roue codeuse
. CNA d’un fichier audio
Maquette PIO
DB25 Parallel Interface Male Connector Pins
HP Female Connector Pins
GND
18 16
Status Port Bits
Control Port Bits 16
10 12 13 15
7 6
MSB
5
4
3
2
1 0
LSB
7 6
MSB
5
4
3
9
2
1 0
LSB
8
7
7 6
MSB
6
5
5
4
4
3
3
2
L
R
2
1
0 Data Port Bits
LSB
+5 Volts
+5 Volts
GND
R' = 470 Ω
GND
R' R' R' R' R' R' R'
-5 Volts
-5 Volts
C
MSB 8
0
+
4
2
LSB 1
Roue codeuse
1
2
3
4
5
6
7
8
9
10
11
12
g f NC a b
10 9 8 7 6
a
f g
b
e
e
R
R R
R
1
2
c
d
3
4
d GND c
p
5
p
24
23
22
21
20
19
18
17
16
15
14
13
CNA
R = 470 Ω
Résistances de pull-down
GND : masse
Afficheur 7 segments
L : Left
R : Right
NC : Non Connecté
Acquisition du chiffre (en code DCB) de la roue codeuse
→ Acquisition par le Status port (IN) sur les bits 6,5,4,3
→ Masquer puis décaler l’octet d’acquisition.
Commande afficheur (en code binaire sur 7 bits)
→ Affichage du digit par le Data port (OUT) sur les bits 6,5,4,3,2,1,0
→ Coder l’allumage des segments correspondant à chaque chiffre.
Commande CNA (Conversion Numérique/Analogique audio 8 bits)
→ Echantillons transmis périodiquement au Data port (OUT) sur les bits 7,6,5,4,3,2,1,0.
→ Horloge déclenchant la CNA de chaque échantillon sur le bit 2 du Control Port.
→ Cadencement par attente active (fonction delai).
TR 5.
8
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
6.2. Autres applications de l’interface parallèle
Interface de clavier et de dispositif d'affichage
8255
PC6
CLAVIER
décodé
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
D0
D1
D2
D3
D4
D5
SHIFT
CONTROL
PC0
PC1
STROBE
ACK
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
AFFICHEUR
D0
D1
intelligent
D2
D3
D4
D5
BACKSPACE
CLEAR
PC2
PC3
PC4
PC5
DATA READY
ACK
BLANKING
CANCEL WORD
PC7
Interface d'imprimante
8255
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
LOGIQUE
de
CONTROLE
PC0
PC1
PC2
PC3
DATA READY
ACK
PAPER FEED
FWD / REV
IMPRIMANTE
}
RELAIS
des
MARTEAUX
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
DATA READY
ACK
PC4
PC5
PC6
Demande d'interruption
Demande d'interruption
DATA READY
ACK
PAPER FEED
FWD / REV
RIBBON
CARRIAGE RETURN
PC7
Demande d'interruption
Demande d'interruption
Interface contrôleur de disquette
CAN / CNA
8255
8255
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PC0
PC1
PC2
PC3
D0 CNA
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
12 bits
PC4
PC5
CLOCK
OUTPUT ENABLE
CAN 8 bits
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
D0
D1
D2
D3
D4
D5
D6
D7
PC6
PC7
CLOCK
SAMPLE ENABLE
TR 5.
SORTIE
ANALOGIQUE
ENTREE
ANALOGIQUE
CONTROLEUR
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
D0
D1
D2
D3
D4
D5
D6
D7
PC0
PC1
PC2
PC3
DATA STROBE
ACK (IN)
DATA READY
ACK (OUT)
PC4
PC5
PC6
TRACK SENSOR
SYNC READY
INDEX
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
ENGAGE
FWD / REV
READ ENABLE
WRITE ENABLE
DISC SELECT
ENABLE CRC
TEST
BUSY
PC7
Demande d'interruption
9
Informatique Industrielle
5. Interface parallèle imprimante LPT (PIO 8255)
5 ANNEXE. Interface parallèle imprimante LPT (PIO 8255)
Le contrôleur de l’interface parallèle (PIO) est le composant 8255.
Contrôleur PIO 8255 de liaison parallèle
Bus PC (ordinateur)
Périphérique
BUS DONNEES
Adresses
{
A0
A1
A2
I/0 R
I/O W
Reset
8
PORT A
8255
A0
A1
CS
RD
WR
Reset
I/O
8
PORT C Bas
4
PORT C Haut
4
PORT B
8
}
I/O
I/O
__________
TR 5.
10

Documents pareils