You are on page 1of 10

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

5. INTERFACE PARALLELE IMPRIMANTE LPT. PIO 8255


Architecture PC

8088 NMI Unit Centrale INTR 8087 Coprocesseur CPU

8288 Contrleur de bus Dmultiplexage et bufferisation du bus systme 8259 Contrleur d'interruption Dcodage adresses E/S 8250 Interface E/S srie 8253 Horloge 8255 Interface E/S parallle 8237 Contrleur DMA Interface clavier Commande HP E/S

Bus

Dcodage adresses ROM ROM MEMOIRE Dcodage adresses RAM

RAM Test de parit

Slots d'Extension

Schma-bloc de la carte mre du PC


TR 5. 1

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

Mapping des E/S du PC Adresse d'E/S 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 Unit connecte Contrleur DMA 8237 Libre Contrleur d'interruption 8259 Libre Compteurs programmables 8253 Libre Ports d'E/S de la carte mre Libre Registres DMA Libre Adaptateurs jeux Libre Rserv Libre Rserv Libre

378 - 37F
380 - 3AF 3B0 - 3BF 300 - 3CF 3D0 - 3DF 3E0 - 3EF 3F0 - 3F7 3F8 - 3FF 400 - FFFF

INTERFACE PARALLELE (IMPRIMANTE)


Libre Contrleur parallle imprimante Libre Contrleur graphique/couleur Libre Contrleur disquettes (floppy disk) Interface srie (RS-232C) Libre (reste des 64K canaux d'E/S)

TR 5.

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

Connecteur port parallle imprimante (DB25) ct 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.

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

/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

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

4. Architecture logicielle de linterface parallle


4.1. Paramtrage du BIOS Mode Sens de transfert SPP (Normal) Bidirectionnel (OUT/IN) EPP Bidirectionnel (OUT/IN) ECP Monodirectionnel (OUT) Spcificit Mode normal Mode rapide Fonctions tendues

4.2. Adresse de linterface parallle Adresse (note BASE) Spcificit Paramtrage 378H LPT1 Modifiable par le BIOS 278H LPT2 Modifiable par le BIOS 4.3. Affectation des broches du connecteur parallle (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 parallle imprimante LPT (PIO 8255)

4.4. Ports de linterface parallle

Connecteur parallle 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 dfaut) BASE+1 Status port IN only 8 bits 10-13 (si donnes crites ignores) +15 BASE+2 Control port IN/OUT 8 bits 1 (slect. sens Data port en Mode Bidir.) +14 +16-17 4.5. Data port de linterface parallle Adresse Port Direction (READ-IN / WRITE OUT) BASE+0 Data port OUT en Mode Monodir. OUT/IN en Mode Bidir. (OUT par dfaut) 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 Bit #

TR 5.

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

4.6. Status port de linterface parallle Adresse Port Direction Bit # (READ-IN / WRITE OUT) BASE+1 Status port IN only Bit 7 (si donnes crites ignores) Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 4.7. Control port de linterface parallle Adresse Port Direction Bit # (READ-IN / WRITE OUT) BASE+2 Control port IN/OUT Bit 7 (slect. sens Bit 6 de Data port Bit 5 Mode Bidir.) Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Signal Pin # DB25 Signal
Busy

Ack Paper out Select in Error


IRQ

Reserved Reserved

Pin # DB25 11 10 12 13 15 -

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 ladresse BASE + 2 pour slection du Data port IN/OUT :


MSB 7 6 5 4 3 2 1 0 LSB

MSB 7

6 0

5 1

4 0

3 0

2 0

1 0

0 0

LSB

.Data port IN:

mot =

X X 1

X X X X X

=
LSB

mot = 20H
LSB

MSB 7

MSB 7

6 0

5 0

4 0

3 0

2 0

1 0

0 0

.Data port OUT: mot =


TR 5.

X X 0

X X X X X

mot = 00H
6

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

5. Programmation de linterface parallle


Programme C CVI pilotant le port parallle (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 ladresse de base #define PORT_STATUS ADR_LPT1+1 // Port STATUS ladresse de base + 1 #define PORT_CTRL ADR_LPT1+2 // Port CTRL ladresse de base + 2 main() { unsigned char mot; outp(PORT_CTRL,0x00); outp(PORT_DATA, 0xFF);

// Dclarations // Place le port DATA en sortie (par dfaut) // 8 bits 1 sont envoys sur le port DATA // (et y restent mmoriss cette valeur // les ports du 8255 intgrent un registre) // Place le port DATA en entre

outp(PORT_CTRL,0x20);

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 stocke dans mot } // Sans la boucle infinie, 1 seule acquisition // serait ralise linstant de lexcution // de mot = inp(PORT_DATA) // et serait mmorise dans mot }
TR 5. 7

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

6. Application de linterface parallle


6.1. Entres/Sorties en mode Monodirectionnel
Par LPT : . Affichage dun digit (en code binaire) . Acquisition dun chiffre (en code DCB) par roue codeuse . CNA dun fichier audio
Maquette PIO

DB25 Parallel Interface Male Connector Pins HP Female Connector Pins 18 16 GND L R

Status Port Bits

10 12 13 15 7 6 MSB 5 4 3 2 1 0 LSB

Control Port Bits 16 7 6 MSB 5 4 3 2 1 0 LSB

7 5

6 4

5 3

4 2

3 1

2 0 Data Port Bits LSB

7 6 MSB

+5 Volts

+5 Volts R' = 470 R' R' R' R' R' R' R'

GND
-5 Volts

GND
-5 Volts

C
MSB 8

0 +

4 2 LSB 1

g f NC a b 10 9 8 7 6 a f g b e e
R R R R R = 470

d 3

c 4

d GND c

p 5 p

1 2 3 4 5 6 7 8 9 10 11 12

24 23 22 21 20 19 18 17 16 15 14 13

CNA

Roue codeuse

Rsistances de pull-down GND : masse L : Left

Afficheur 7 segments 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 dcaler loctet dacquisition.

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 lallumage des segments correspondant chaque chiffre.

Commande CNA (Conversion Numrique/Analogique audio 8 bits)


Echantillons transmis priodiquement au Data port (OUT) sur les bits 7,6,5,4,3,2,1,0. Horloge dclenchant 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 parallle imprimante LPT (PIO 8255)

6.2. Autres applications de linterface parallle


Interface de clavier et de dispositif d'affichage
8255
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC2 PC3 PC4 PC5 PC6 PC7 D0 D1 D2 D3 D4 D5 SHIFT CONTROL STROBE ACK

Interface d'imprimante
8255
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC4 PC5 PC6 PC7 DATA READY ACK

CLAVIER dcod

LOGIQUE de CONTROLE
DATA READY ACK PAPER FEED FWD / REV

AFFICHEUR D0 D1 intelligent D2 D3 D4 D5 BACKSPACE CLEAR


DATA READY ACK BLANKING CANCEL WORD

IMPRIMANTE

RELAIS des MARTEAUX

DATA READY ACK PAPER FEED FWD / REV RIBBON CARRIAGE RETURN

Demande d'interruption Demande d'interruption

Demande d'interruption Demande d'interruption

Interface contrleur de disquette


CAN / CNA
8255
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PC2 PC3 PC4 PC5 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC6 PC7 D0 CNA D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11

8255
12 bits

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC7

D0 D1 D2 D3 D4 D5 D6 D7

CONTROLEUR

SORTIE ANALOGIQUE

DATA STROBE ACK (IN) DATA READY ACK (OUT) TRACK SENSOR SYNC READY INDEX ENGAGE FWD / REV READ ENABLE WRITE ENABLE DISC SELECT ENABLE CRC TEST BUSY

CLOCK OUTPUT ENABLE D0 D1 D2 D3 D4 D5 D6 D7

CAN 8 bits
ENTREE ANALOGIQUE

CLOCK SAMPLE ENABLE

Demande d'interruption

TR 5.

Informatique Industrielle

5. Interface parallle imprimante LPT (PIO 8255)

5 ANNEXE. Interface parallle imprimante LPT (PIO 8255)


Le contrleur de linterface parallle (PIO) est le composant 8255. Contrleur PIO 8255 de liaison parallle
Bus PC (ordinateur) BUS DONNEES PORT A 8255 A0 A1 CS RD WR Reset Priphrique I/O

Adresses

A0 A1 A2

8 PORT C Bas 4 PORT C Haut 4 PORT B 8

I/0 R I/O W Reset

I/O

I/O

__________

TR 5.

10

You might also like