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