You are on page 1of 13

223

INTERFACE PARALLLE ET ROBOTIQUE


Grard MOLINENGAULT

Au cours de cet article, les principes lmentaires de fonctionnement de l'interface parallle sont prsents. Le remplacement de l'imprimante par de petits montages exprimentaux permettant une meilleure comprhension du fonctionnement de cette interface sera vu dans un prochain article. Ces principes s'appliquent tous les types de compatibles PC. Ce sera donc l'occasion de ressortir les vieux XT ou autres appareils dits prims et de leur redonner ainsi une nouvelle jeunesse. L'ensemble complet permettant la ralisation effective est disponible dans une brochure que l'on peut se procurer auprs de l'EPI. L'INTERFACE PARALLLE (INTERFACE CENTRONICS) Tout systme base de microprocesseur doit pouvoir communiquer avec le monde extrieur, le rle d'une interface tant l'appariement de ce systme et des priphriques qui lui sont connects. Un priphrique est un ensemble produisant des donnes transmises l'ordinateur ou acceptant des donnes de l'ordinateur. On connat les plus frquemment utiliss : clavier, cran, imprimante, lecteur de disquettes, disque dur,... L'ordinateur communique de faons diffrentes suivant les priphriques utiliss, mais toujours par l'intermdiaire de ports d'entres/sorties : port srie, port parallle, port SCSI... Pour pouvoir communiquer avec une imprimante parallle, un ordinateur compatible PC est dot d'une interface dite parallle. Les mots utiliss ont une largeur de 8 bits (D0 D7), ces 8 bits tant transmis simultanment 1 par l'intermdiaire d'un cble dont 8 fils leur sont ddis. Les donnes y sont transfres et contrles en respectant le
1 Au contraire, dans une transmission dite srie, les bits sont transmis les uns aprs les autres et un seul fil leur est alors ddi. LA REVUE DE L'EPI N 80 INTERFACE ET ROBOTIQUE

224

protocole dit Centronics. Il ne s'agit pas d'une norme parfaitement dfinie, le protocole Centronics ayant t dvelopp par un fabricant d'imprimantes (la socit Centronics) et, au fil des ans, adopt par les fabricants d'ordinateurs. C'est donc une "norme de fait". L'interface Centronics, du ct ordinateur, est porte par une carte d'extension ou directement implante sur la carte mre. L'accs extrieur se fait par l'intermdiaire d'un connecteur Cannon femelle 25 contacts ; l'imprimante comporte un connecteur "Centronics" (aux normes IEEE 488) femelle 36 contacts. Le cble de liaison entre l'ordinateur et l'imprimante est quip l'une de ses extrmits d'un connecteur Cannon mle 25 contacts et d'un connecteur "Centronics" mle 36 contacts de l'autre. Les schmas des diffrents connecteurs figurent l'annexe 1. Le tableau ci-aprs indique le brochage de la prise normalis Centronics du ct ordinateur. N broche 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Signal Strobe : octet envoy Donne 0 Donne 1 Donne 2 Donne 3 Donne 4 Donne 5 Donne 6 Donne 7 Acknowledge (Ack) : octet reu Busy : occup Paper End : plus de papier Select : imprimante slectionne Auto Feed : line feed automatique Error : imprimante en erreur Reset : remise zro Select in : slection GND : masse E/S SORTIE SORTIE SORTIE SORTIE SORTIE SORTIE SORTIE SORTIE SORTIE ENTREE ENTREE ENTREE ENTREE SORTIE ENTREE SORTIE SORTIE

- STROBE Le rle de ces trois signaux, utiliss pour - ACKNOWLEDGE (ACK) dfinir le protocole de communication - BUSY entre l'ordinateur et l'imprimante, sera examin plus loin.
Grard MOLINENGAULT LA REVUE DE L'EPI

225

- PE Paper End (Fin de papier). Le dispositif de dtection de la prsence de papier (feuille feuille ou la chane) de l'imprimante se manifeste en faisant passer ce signal au niveau logique haut lorsque le papier arrive sa fin. Sur de nombreuses imprimantes cette situation entrane une mise hors fonction automatique de l'appareil qui cesse d'imprimer. - SELECT Le niveau logique de cette ligne rend compte de l'tat de l'imprimante. Un niveau logique haut indique l'ordinateur que l'imprimante est prte (on line). - SELECT IN Ce signal permet l'ordinateur de mettre l'imprimante en et horsfonction. Lorsqu'il se trouve au niveau logique bas, l'imprimante est en circuit (on line). - AUTO FEED L'ordinateur demande l'imprimante de passer automatiquement la ligne suivante lorsqu'elle est arrive la fin d'une ligne en mettant ce signal au niveau bas. - RESET Ce signal, que l'on retrouve galement sous la dnomination INIT ou INPUT PRIME, sert, par l'application d'un niveau logique bas, la remise zro de l'imprimante. Le processus conscutif l'activation de cette ligne varie d'une imprimante l'autre. - ERROR En faisant passer au niveau logique bas ce signal, l'imprimante indique qu'il s'est pass quelque chose d'anormal. Ces six signaux ne sont pas indispensables, il peut se faire que l'on soit confront des problmes dus la prise d'un niveau indfini voire erron par une ligne laisse "en l'air" 2. Cependant, toute bonne imprimante comporte des rsistances qui forcent au niveau logique haut les lignes non utilises, ce qui devrait liminer tout problme.

Une ligne est dite "en l'air" si elle est dans un tat logique indtermin. INTERFACE ET ROBOTIQUE

LA REVUE DE L'EPI

226

Il nous reste parler d'un dernier signal, la ligne de masse (GND). Si l'on examine de prs le brochage d'un connecteur pour interface Centronics, on constate que le nombre de lignes de masse est impressionnant. Leur fonction est, en principe, de rduire autant que possible la valeur ohmique de cette connexion de masse. Le schma de ralisation du cble permettant la liaison est donn en annexe 2 LE PROTOCOLE DE COMMUNICATION IMPRIMANTE ORDINATEUR Il n'est pas ncessaire, pour faire fonctionner une imprimante, de disposer de tous les signaux indiqus plus haut. Il est impratif pourtant que les lignes de donnes D0 D7 et les lignes d'acquittement STROBE, BUSY et ACKNOWLEDGE soient relies l'ordinateur. Les niveaux lectriques sont de type TTL 3. Une telle liaison ne doit donc pas dpasser les 1,5 2 mtres de longueur sauf utiliser du cble trs soign (paires torsades par exemple). La logique utilise pour les donnes est vraie ou positive, c'est--dire qu'un niveau haut est un 1 logique. En mode parallle, une donne est transfre sous la forme d'un mot dont tous les bits sont transmis simultanment. Dans le cas d'un compatible PC, ce nombre de bits est de huit, que nous noterons de D0 D7. Ces donnes sont accompagnes d'un signal de validation "Strobe" ainsi que d'autres signaux. L'ordinateur envoie travers les 8 lignes de donnes le mot binaire reprsentant le caractre imprimer. Il fait ensuite passer la ligne STROBE brivement au niveau bas. L'imprimante connecte accepte alors l'octet de donnes et procde son acquittement en faisant passer la ligne BUSY au niveau haut. Le niveau haut sur cette ligne est maintenu jusqu' ce que l'imprimante soit prte prendre en compte de nouvelles donnes. En fonction du type d'imprimante, le caractre reu est imprim tout de suite ou bien stock, temporairement, dans la mmoire de l'imprimante. Il existe aussi d'autres raisons pour lesquelles la ligne BUSY peut prsenter un niveau logique haut. Ceci est le cas par exemple si l'on met l'imprimante "Off line", ou s'il n'y a plus de papier. Lorsque l'imprimante a termin - avec succs - le traitement d'un

3 Norme lectronique dfinissant les niveaux haut et bas des bits correspondant aux 0 et 1. Grard MOLINENGAULT LA REVUE DE L'EPI

227

caractre, elle applique une impulsion ngative de 5s environ la ligne ACK pour informer l'ordinateur de la russite de cette opration. En rsum, le dialogue unit centrale-priphrique s'tablit comme schmatis ci-dessous.

Le micro-ordinateur, aprs s'tre assur que Busy (signal imprimante) tait au niveau bas, place les donnes sur les lignes D0 D7 et fait descendre le signal Strobe (signal ordinateur) pendant un temps d'au moins 500 ns. L'imprimante y rpond en faisant monter son signal Busy indiquant ainsi qu'elle est dans l'tat occup. Lorsqu'elle a termin la prise en compte des donnes, elle fait descendre son signal Acknowledge puis fait descendre Busy pour indiquer qu'elle est prte recevoir de nouvelles donnes. ACK remonte ensuite. Ce protocole prsente l'avantage majeur d'autosynchroniser les deux quipements connects, le plus rapide attendant ncessairement le plus lent. Il prsente l'inconvnient de pouvoir fonctionner en utilisant seulement Busy ou ACK comme rponse de l'imprimante, d'o certains problmes de connexion avec des micro-ordinateurs bas de gamme et (ou) des imprimantes de la mme catgorie qui n'exploitent pas ces trois signaux. Ces cas particuliers restent nanmoins exceptionnels. Aucune vitesse de transmission standard n'est indique pour une liaison de ce type, compte tenu de l'autoadaptation des quipements vue ci-avant. Si ceux-ci sont assez rapides, le 1 000 caractres par seconde est facilement atteint. L'volution des composants lectroniques utiliss permet une augmentation importante de ce dbit, notamment par l'utilisation de ports parallles dits EPP (Enhanced Parallel Port, port parallle amlior).

LA REVUE DE L'EPI

INTERFACE ET ROBOTIQUE

228

LES SIGNAUX D'ENTREES-SORTIES Nous avons vu que par l'intermdiaire du port parallle, on pouvait communiquer avec une imprimante parallle. Ce port est adress par unit centrale, c'est--dire que le priphrique est considr comme occupant un certain nombre d'adresses mmoire, trois 4 dans le cas qui nous intresse. La connexion d'une interface sur la sortie parallle permet une simplification importante du schma de l'interface en liminant tous les composants lis au dcodage d'adresse qui seraient ncessaires pour une connexion directe sur le bus du PC, ce dcodage tant ralis par la carte parallle de l'ordinateur qui est un lment standard de toute configuration. D'autre part, outre le fait d'occuper un slot pour une seule fonction, il est toujours "dlicat" de raliser une carte car un circuit (imprim) double face est obligatoire et sa ralisation n'est pas la porte de tous. La plupart des compatibles PC ne disposent pas d'origine de sortie parallle sur la carte mre mais, selon les versions et dans la plupart des modles, cette sortie est situe sur la carte adaptateur d'cran monochrome (solution ancienne qui n'est plus que rarement utilis dans les machines modernes) ou sur une carte adaptateur d'imprimante parallle (cas des portables et de certains compatibles quips de cartes graphiques couleur). Ces deux sorties sont quivalentes, mais n'utilisent pas les mmes adresses de ports d'entres-sorties, afin de permettre ventuellement de disposer des deux sorties sur une mme machine. En utilisation normale, l'utilisateur n'a pas se soucier de leur adressage physique, mais seulement en cas de sorties multiples, de leur adressage logique. Le DOS reconnat la ou les sorties prsentes et leur attribue l'adresse logique LPT1 ou LPT2, le BIOS se chargeant de leur adressage physique. Dans le cadre d'interfaage utilisant ces entres-sorties, nous devrons donc les adresser directement. Elles occupent trois adresses conscutives dpendant de la situation "gographique" de la prise utilise. Le tableau suivant nous les indique en hexadcimal et en dcimal.

4 Ces trois adresses mmoires sont conscutives et ne sont pas dans la zone RAM ordinaire. Elles appartiennent la zone dite d'entres/sorties. Grard MOLINENGAULT LA REVUE DE L'EPI

229

Adresses Adapt. imprimante Port de sorties donnes Port d'entres status Port de sorties commande &H378 = 888 &H379 = 889 &H37A = 890

Adresses Adapt. monochrome &H3BC = 956 &H3BD = 957 &H3BE = 958

Les adresses les plus frquemment utilises dans les matriels rcents sont &H378, &H379 et &H37A. Ce sont celles que nous utiliserons dans les applications proposes. Pour utiliser une extension, il faut utiliser un logiciel de pilotage. Le langage choisi est le QuickBASIC de Microsoft livr partir du DOS 6 dans sa version rduite (sans compilateur). C'est lui que l'on ouvre en tapant qbasic sous DOS. La version complte ( acheter sparment) permet la compilation des programmes, ce qui ne sera utile que lorsque une grande vitesse d'excution est ncessaire (cas du son notamment). Pour la plupart des applications ici dcrites, le basic interprt est suffisant, ce qui vite un achat supplmentaire. Une des particularits intressantes de qbasic est qu'il n'est pas obligatoire de numroter les lignes du programme. On peut utiliser des tiquettes, ce qui permet souvent une meilleure lisibilit des programmes. C'est ce choix qui est appliqu dans cet article. Tous ces programmes peuvent tre crit avec un autre basic (GWBasic par exemple) et l'utilisateur devra alors les adapter, en particulier en numrotant les lignes et en adaptant certaines commandes trs rduites (SLEEP notamment). Il suffira de se reporter au manuel du langage utilis. COMMUNICATION ENTRE ORDINATEUR ET PRIPHRIQUE PARALLLE. Deux ordres sont ncessaires pour pouvoir crire et lire une case mmoire d'adresse connue dans le domaine des entres/sorties. Pour remplir une case mmoire d'adresses connue avec un contenu donn ou calcul, on utilise la commande basic OUT dont la syntaxe est : OUT adresse, donne.
LA REVUE DE L'EPI INTERFACE ET ROBOTIQUE

230

Adresse est un nombre positif infrieur ou gal 65535 (&HFFFF en hexadcimal) et donne un nombre entier positif infrieur ou gal 255 (&HFF en hexadcimal). Ainsi OUT 888,68 place le nombre 68 l'adresse 888, ce qui est la mme chose que OUT &H378,&H44. Remarque : il n'existe pas de case d'adresse dcimale ou de contenu d'une case mmoire qui soit un nombre dcimal. Si dans l'utilisation de OUT on utilise des dcimaux, ils seront systmatiquement arrondis, ce qui est noter lors de l'utilisation de formules de calcul pour dterminer adresses et donnes. L'opration rciproque de l'criture d'une donne est la lecture du contenu d'une case mmoire. On utilise la commande basic INP() dont la syntaxe est : INP(adresse). Adresse est un nombre positif infrieur ou gal 65535 et donne un nombre entier positif infrieur ou gal 255. Ainsi, ACQ = INP(&H378) donne la valeur du contenu de la case mmoire d'adresse &H378 la variable ACQ. En rsum OUT permet l'criture et INP() la lecture. Les ports de sorties donnes et commande sont latchs 5, c'est-dire que l'tat impos par une instruction OUT subsiste jusqu' ce qu'on le modifie par une autre instruction OUT. A l'inverse, le port d'entres status n'est pas latch, ce qui permet par scrutation de connatre l'tat des entres en temps rel. Les donnes, en code ASCII tendu sur 8 bits dans le cas de l'imprimante, sont envoyes sur les bornes de sortie D0 D7 par une instruction OUT l'adresse &H378. Les signaux de commande (STROBE, AUTOFEED,...) sont envoys sur les bornes correspondantes de la prise par une instruction OUT l'adresse &H37A. L'tat (status) de l'imprimante peut tre lu par une instruction INP() l'adresse &H379 (lecture de BUSY, ACKNOWLEDGE, PAPER END,...). Voici une description plus pousse de la signification de ces trois mots (chacun d'eux est un octet).
5 latchs se dit d'tats logiques qui ne changent pas en temps rel mais seulement sous l'action d'un signal de commande. On parle aussi de verrou. Grard MOLINENGAULT LA REVUE DE L'EPI

231

Le port de sortie DONNEES en &H378 Les broches sont celles de la prise parallle de l'ordinateur. Ce tableau indique que D0 est disponible sur la broche n2, D1 sur la broche n3, etc. Port de sortie DONNEES : &H378 Bit D7 D6 D5 D4 Broche 9 8 7 6 D3 5 D2 4 D1 3 D0 2

Les huit sorties donnes, l'adresse &H378, commandent directement 8 bits de l'interface. Les sorties ne sont pas inverses, ces bits sont l'tat bas sur un 0, l'tat haut sur un 1. Les sorties ne doivent pas tre forces par le priphrique qui y est connect (sortie "Totem-Ple"). Comme les sorties sont latches, le dernier mot envoy peut tre lu par une instruction INP() la mme adresse. Le port de sortie COMMANDES en &H37A Ce tableau indique que D0 est disponible sur la broche n1 et correspond au signal Strobe, D1 sur la broche n14 et reprsente le signal Autofeed, etc.
Bit Broche D7 D6 Port de sortie COMMANDES : &H37A D5 D4 D3 D2 D1 17 16 14 Interrupt Select in Initialize Autofeed Enable D0 1 Strobe

Toutes les sorties sont inverses (sorties collecteur ouvert) l'exception de Initialize : STROBE AUTOFEED INITIALIZE SELECT IN est l'tat haut sur un 0, l'tat bas sur un 1. est l'tat haut sur un 0, l'tat bas sur un 1. est l'tat haut sur un 1, l'tat bas sur un 0. est l'tat haut sur un 0, l'tat bas sur un 1.

Pour les faire tous passer l'tat bas, il faut donc crire le nombre (X reprsente un tat indiffrent que nous prendrons gal 0 pour simplifier les calculs) D7 X
LA REVUE DE L'EPI

D6 X

D5 X

D4 X

D3 1

D2 0

D1 1

D0 1

INTERFACE ET ROBOTIQUE

232

128

64

32

16

soit 1 * 1 + 1 * 2 + 0 * 4 + 1 * 8 = 11 en &H37A ce qui correspond la commande : OUT &H37A,11 Pour les faire tous passer l'tat haut, il faut donc crire le nombre D7 X 128 D6 X 64 D5 X 32 D4 X 16 D3 0 8 D2 1 4 D1 0 2 D0 0 1

soit 1 * 0 + 0 * 2 + 1 * 4 + 0 * 8 = 4 en &H37, ce qui correspond la commande : OUT &H37A,4 Interrupt Enable : lorsque le bit D4 est mis un, la carte gnre une interruption du processeur pour toute transition ngative sur la broche 10. Nous n'utiliserons pas cette possibilit dans cet article. La lecture de ce port par une instruction INP() renverra le rsultat d'un OU logique entre la dernire sortie envoye et l'tat impos aux broches par le priphrique. Le port d'entres STATUS en &H379 Ce tableau indique que D3 est disponible sur la broche n15 et correspond au signal Error, D5 sur la broche n12 et reprsente le signal Paper End, etc. Bit Broche D7 11 Busy Port entres STATUS : &H379 D6 D5 D4 D3 D2 10 12 13 15 Ack Paper Select Error End donne 0 sur un tat bas, donne 1 sur un tat bas, donne 0 sur un tat bas, donne 0 sur un tat bas, D1 D0

Toutes les entres sont inverses sauf BUSY. ACK BUSY PAPER END SELECT

ERROR donne 0 sur un tat bas mais sur certaines cartes ce signal n'est pas connect. Nous viterons donc de l'utiliser lorsque cela est possible. Il faut utiliser un masque pour lire les entres indpendamment les unes des autres.
Grard MOLINENGAULT LA REVUE DE L'EPI

233

ACK BUSY PAPER END SELECT ERROR

INP(&H379) AND 64 INP(&H379) AND 128 INP(&H379) AND 32 INP(&H379) AND 16 INP(&H379) AND 8

Nous verrons des applications pratiques de ces lments thoriques dans un prochain article.

Grard MOLINENGAULT Bureau national de l'EPI

ANNEXE 1 Le cblage Le connecteur sur le PC est une prise Cannon DB 25 femelle, celui sur l'imprimante est une Amphnol femelle 36 broches (dite Centronics).

36 broches au pas de 2,16 mm 1 18

19

36,72 mm
Centronics femelle sur imprimante
13 12 11 10 9 8 7 6 5 4 3 2 1

36

25 24 23 22 21 20 19 18 17 16 15 14
LA REVUE DE L'EPI INTERFACE ET ROBOTIQUE

234

Cannon DB 25 femelle sur ordinateur Le cble de liaison Le connecteur ct PC est une prise Cannon DB 25 mle, celui ct imprimante (qui sera celui de notre interface) est une Amphnol mle 36 broches (dite Centronics).

25 broches au pas de 2,76 mm

9 10 11 12 13

14 15 16 14 18 19 20 21 22 23 24 25

1,38 mm

33,12 mm
Cannon DB 25 mle sur cble

18

36
Centronics mle sur cble

19

Grard MOLINENGAULT

LA REVUE DE L'EPI

235

ANNEXE 2 Voici le cblage d'un cble permettant de relier une carte parallle de PC avec un priphrique Centronics, une imprimante par exemple. ATTENTION : bien que les connecteurs soient semblables, ce n'est pas le mme cblage que celui d'un cble reliant un MO5 une imprimante. Si vous avez un cble dont vous ne connaissez pas la provenance, testez-le avec un ohmmtre pour savoir si son cblage correspond celui qui est indiqu. Dans le doute, abstenez-vous de l'utiliser. C'est ce cble, qui correspond donc au cble standard reliant l'unit centrale l'imprimante, que nous utiliserons dans la suite de cet article pour connecter les diffrents montages l'unit centrale. On prendra soin de mettre hors tension les appareils avant de procder un changement dans les connections. D'aucuns manipulent les appareils sous tension et se demandent ensuite pourquoi des problmes surgissent. Les bornes infrieures sont ct ordinateur, les suprieures ct imprimante.

LA REVUE DE L'EPI

INTERFACE ET ROBOTIQUE

You might also like