Le port parallèle - Université Laval

Transcription

Le port parallèle - Université Laval
Ordinateurs, Structure
et Applications
GIF-1001
Cours 18, Le port parallèle
Etienne Tremblay
Université Laval, Hiver 2012
GIF-1001
Cours 18, p.1
Définition et historique
•
•
•
•
Le port parallèle a été introduit en 1981 par IBM afin de contrôler des
imprimantes à ruban (dot matrix printer). Ce port est plus rapide que le port
série et il a été créé afin de suppléer au manque de vitesse de ce dernier.
Par la suite, le port parallèle a été utilisé pour des disques portables, des
tape backups, des lecteurs de CD-ROM et dans plusieurs applications
maisons.
La version standard du protocole pour le port parallèle (SPP = Standard
Parallel Port), sortie en 1981, avait plusieurs faiblesses: manque de
spécifications électriques, bus de donnée unidirectionnel, lent, très exigeant
au niveau software (E/S programmée nécessitant une séquence de
plusieurs opérations d’E/S). Pour ces raisons, différents protocoles de
communication ont été créés afin de communiquer avec un appareil
connecté au port parallèle.
Le comité IEEE1284 a standardisé le port parallèle en 1994. Ce comité,
constitué de gros joueurs dans l’industrie de l’ordinateur (Lexmark, IBM,
Texas Instruments et autres), a établi la norme IEEE1284.Cette norme
définit cinq protocoles utilisables sur le port parallèle, incluant le protocole
standard, afin de rester compatible avec le passé. Ces protocoles sont
décrits plus loin.
GIF-1001
Cours 18, p.2
Caractéristiques principales
•
•
•
•
•
•
Le port parallèle est un port point-à-point. Il sert à relier un unique
périphérique à un PC.
La vitesse maximale de communication sur le port parallèle est
autour de 2Mbps. La vitesse maximum de communication sur le port
parallèle en utilisant le premier protocole établi en 1981 était autour
de 150kbps.
Le port parallèle utilise habituellement un connecteur DB25 femelle
sur le PC et un connecteur Centronics 36 broches mâle sur le
périphérique.
Il y a 8 lignes de données sur les 25 lignes du port parallèle. Ce port
est donc parallèle.
La longueur maximum des câbles utilisés sur ce port est de 10
pieds. Avant 1994, elle était autour de 6 pieds.
Les premières versions du port étaient unidirectionnelles: le PC
envoyait des données à une imprimante! Les protocoles les plus
récents pour le port parallèle sont bidirectionnels.
GIF-1001
Cours 18, p.3
Connecteur et Signal
•
•
•
•
Il existe plusieurs types de connecteurs pour le port parallèle. Les
principaux connecteurs sont DB25 femelle (à l’arrière d’un PC) et
Centronics 36 broches (voir l’illustration ci-dessous ou
http://www.ntanet.net/nta/cables.html pour une photo).
Les broches du port parallèle fonctionnent à un niveau TTL (0-5Vdc).
Elles peuvent fournir jusqu’à 14mA et elles sont reliées directement à
l’alimentation 5Vdc de votre PC.
Le port parallèle utilise 25 broches dont les directions sont données par la
table ci-dessous.
Le rôle des broches et la séquence d’activation utilisée afin de
transmettre ou recevoir un byte sont déterminés par le protocole de
communication utilisé (voir plus loin).
13
Rôle
Pins DB25
Entrée
10 à 13, 15
Sortie
1,14,16,17
Entrée/Sortie
2à9
Masse
18 à 25
DB-25, femelle
25
18
36
1
14
Centronics
1
19
GIF-1001
Cours 18, p.4
Protocole de communication
•
Il existe cinq protocoles de communication reconnus dans la norme IEEE 1284 pour
le port parallèle: Protocol Standard (SPP) ou Compatibility Mode, Nibble Mode,
Byte Mode, Enhanced Parallel Port (EPP) et Extended Capability Parallel Port
(ECP). Chacun de ces protocoles ou modes utilise les 5 entrées, 4 sorties et 8
lignes bidirectionnelles (lignes de données) de façon différente. Les acétates qui
suivent décrivent chacun de ces modes. Vous retrouverez également un résumé du
rôle des broches en fonction du mode dans la table ci-dessous (voir les références
pour plus de détail).
DB25 pin E/S
1
S
14
S
17
S
16
10
11
12
13
15
2-9
18-25
S
E
E
E
E
E
E/S
-
SPP
Nibble
Byte
EPP
ECP
nSTROBE
nSTROBE
HostClk
nWRITE
HostClk
nAUTOFEED
HostBusy
HostBusy
nDATASTB
HostAck
nSELECTIN
1284Active
1284Active
nADDRSTB
1284Active
nINIT
nINIT
nINIT
nRESET
nReverseRequest
nACK
PtrClk
PtrClk
nINTR
PeriphClk
BUSY
PtrBusy
PtrBusy
nWAIT
PeriphAck
PE
AckDataReq AckDataReq user defined
nAckReverse
SELECT
Xflag
Xflag
user defined
Xflag
nERROR
nDataAvail
nDataAvail
user defined
nPeriphRequest
D[8:1]
D[8:1]
D[8:1]
AD[8:1]
Data[8:1]
GND
GND
GND
GND
GND
GIF-1001
Cours 18, p.5
Compatibility Mode
•
•
Le mode standard est apparu le premier. Dans ce mode, les 8 lignes
de données servent de sorties seulement. Il s’agit de données
envoyées vers une imprimante… Les 4 lignes de sortie servent à
contrôler l’imprimante (avertir que des données arrivent, forcer un
déroulement de papier, initialiser l’imprimante et mettre l’imprimante
hors ligne) et les 5 lignes d’entrée servent pour donner un statut de
l’imprimante (imprimante occupée, manque de papier, accusé
réception de données, erreur et imprimante en ligne ou non).
Le mode standard est le plus vieux. Il a plusieurs faiblesses
importantes. Tout d’abord, le port est unidirectionnel. Le
périphérique ne peut pas envoyer de données au PC! Ensuite, ce
mode est très demandant au niveau logiciel. En effet, il faut faire
plusieurs opération d’E/S pour transmettre un seul byte: lire si
l’imprimante est occupée, mettre les données sur le port, signaler
l’envoi de données et signaler la fin de l’envoi. Ce nombre
d’opérations réduit terriblement la vitesse.
GIF-1001
Cours 18, p.6
Nibble Mode
• Le mode nibble a été introduit par Hewlett Packard. Dans
ce mode, 4 des 5 lignes d’entrées servent à transmettre
la moitié d’un byte (4 bits = un nibble) de l’imprimante
vers le PC. Du multiplexage temporel permet au
périphérique d’envoyer des bytes complets en deux
étapes. Les autres lignes d’entrées ou de sorties sont
adaptées au concept.
• Le mode nibble est aussi très exigeant au niveau logiciel.
Pour cette raison, on peut transférer environ 50kbps
maximum d’un périphérique vers le PC.
• Le mode nibble est compatible 100% avec le mode
standard sans modifications matérielles.
• Malgré sa lenteur, le mode nibble est très utilisé pour les
périphériques devant envoyer peu de données au PC
comme les imprimantes.
GIF-1001
Cours 18, p.7
Byte Mode (enhanced bi-directional)
• Dans le mode byte, les huit lignes de données
sont bidirectionnelles. Les lignes d’entrées et de
sorties servent à gérer le flux et la direction des
données.
• Comme pour les deux modes précédents, le
mode Byte est très exigeant au niveau logiciel et
donc peu rapide (il est tout de même deux fois
plus rapide que le mode nibble pour les données
allant d’un périphérique vers le PC).
• Le mode Byte exige que les 8 lignes de données
soient bidirectionnelle, contrairement aux deux
modes précédents. Toutefois, aucun autre
matériel n’est requis.
GIF-1001
Cours 18, p.8
Enhanced Parallel Port
•
•
•
•
Le protocole ECP est l’un des plus récent. Dans ce protocole, les
lignes de données servent tour à tour de lignes d’adresses et de
lignes de données, dans un sens ou dans l’autre.
Les lignes de sortie indiquent si on lit/écrit des données ou une
adresse. Un ligne de sortie sert au reset du périphérique. En ce qui
concerne les lignes d’entrée, une sert pour la gestion du flux de
données, une autre sert d’interruption et le rôle des trois autres
lignes est laissé au choix du fabricant du périphérique.
Du matériel est ajouté au contrôleur du port parallèle afin qu’une
seule instruction d’E/S soit nécessaire afin d’écrire ou de lire un byte
(pour la description du matériel, voir le 82360 d’Intel ☺). Ainsi, le
taux de transfert des données devient entre 500K byte par secondes
et 2M bytes par seconde (ce qui est à peu près la vitesse maximum
du bus ISA sur lequel le contrôleur de port est habituellement
connecté).
Les anciens protocoles sont supportés sur un port parallèle amélioré
(enhanced).
GIF-1001
Cours 18, p.9
Extended Capability Parallel Port
•
•
•
Le mode ECP est plus récent encore que le mode EPP. Nécessitant
un contrôleur un peu plus complexe que ce dernier, il permet
l’utilisation de DMA (les bytes envoyés à l’imprimante proviennent
directement de la mémoire), supporte le PlugNPlay (un appareil est
détecté lors de sa connexion) et peut contrôler un périphérique ayant
plusieurs fonctionnalités comme une imprimante/télécopieur (le
contrôleur est un canal d’E/S). Par ailleurs, le ECP a des
performances similaires au EPP et il supporte également les autres
protocoles du port parallèle.
Dans le mode ECP, les lignes de données sont bidirectionnelles et
les autres lignes gèrent le flux de données.
Même s’il est le summum de ce qui ce fait en matière de protocole
pour le port parallèle, ce dernier est de plus en plus remplacé par le
USB et le FireWire.
GIF-1001
Cours 18, p.10
Le port parallèle et le x8086 +
programmation avec un PC
•
•
•
•
•
Le port parallèle est apparu en 1981 et le 286, en 1982. L’utilisation
de port parallèle connecté au bus système ou au bus ISA remonte à
plus de 25 ans!
Comme pour le port série, il est possible d’accéder directement aux
ports de l’interface parallèle avec un 8086. Ces ports permettent de
contrôler tous les paramètres de la communication. LPT1 est
habituellement situé aux ports 378h à 37Ah alors que LPT2 est
habituellement situé aux ports 278h à 27Ah. C’est le BIOS, lors de
la mise sous tension de l’ordinateur, qui alloue les ports aux
interfaces détectées.
Il y a moyen de combiner l’utilisation de ces ports avec l’utilisation
des interruptions du port parallèle (interruption matérielle IRQ7).
L’interruption 17h du BIOS, conçue pour le mode parallèle standard,
permet aussi de communiquer par le port parallèle. Notez que cette
interruption est maintenant dépassée, tout comme le mode
standard.
Il existe des fonctions et des composantes déjà toutes faites pour
communiquer sur le port parallèle…
GIF-1001
Cours 18, p.11
Conception d’un périphérique sur le port parallèle
•
•
•
•
La conception d’un périphérique sur le port parallèle est très simple, car le
port a plusieurs entrées et sorties 5Vdc. Pour cette raison, le port parallèle
est très prisé pour de petits montages simples. Il permet de créer
rapidement un contrôle par PC.
Comme le 5Vdc et la masse de port parallèle sont ceux du PC, l’utilisation
de ce port doit se faire avec certaines précautions. Le port parallèle est
facile à endommager…
Les accès au port parallèle sont souvent protégés sous Windows. Il faut
habituellement opérer en mode administrateur pour y accéder.
Plusieurs librairies de fonctions (dll) sont disponibles sur Internet afin
d’accéder facilement à vos ports parallèles.
GIF-1001
Cours 18, p.12
Références et exercices
• Références
– http://www.aurel32.net/elec/port_parallele.php
– http://www.fapo.com/1284int.htm
GIF-1001
Cours 18, p.13