Les Secrets de l'interface parallele1. Pour trouver l'adresse du portRappel : On peut connaitre l'adresse des ports parallele en regardant le contenu de l'adresse systeme 000408H a 00040FH. 000408H a 00040FH = adresses entree- Sortie (2 octets) pour les interfaces paralleles LPT1, LPT2, LPT3, LPT4 respectivement. Attention! : l'affectation du numero de la voie (LPTx) est realisee par le BIOS dans l'ordre des voies effectivement presentes aux adresses 03BCH, 0378H, 0278H. Par exemple s'il n'existe qu'une interface a l'adresse 0278H, celle-ci est affectee a LPT1. ******** POUR CONNAITRE L'ADRESSE DE VOTRE PORT PARALLELE : ******* Taper debug <RETURN> Taper d 0:400 <RETURN> L'ecran affiche : C:\> debug commande -d 0:400 commande 0000:0400 F8 03 00 00 00 00 00 00-78 03 00 00 00 00 00 00 0000:0410 33 02 C1 80 02 00 41 80-00 00 26 00 26 00 34 05 0000:0420 30 0B 30 0B 0D 1C 73 1F-0D 1C 64 20 65 12 62 30 0000:0430 75 16 67 22 0D 1C 64 20-20 39 30 0B 3A 34 01 00 0000:0440 8C 00 4B 01 07 35 00 B1-20 07 50 00 00 40 00 00 0000:0450 00 08 00 00 00 00 00 00-00 00 00 00 00 00 00 00 0000:0460 0C 0B 00 B4 03 29 00 03-00 00 E0 FF 17 40 16 00 0000:0470 00 00 00 00 00 02 B1 00-14 14 14 14 01 01 01 01 -q C:\>Les 8 premiers octets sont les adresses des ports serie : F8 03 00 00 00 00 00 00 (ici adresse 03F8 Hexa) COM1 COM2 COM3 COM4 il n'y a qu'un port serieLes 8 octets suivants sont les adresses des ports paralleles : 78 03 00 00 00 00 00 00 LPT1 LPT2 LPT3 LPT4 Dans l'exemple : l'adresse de LPT1 (premier port //) est 0378 Hexa (il faut inverser les octets deux a deux). Il n'y a pas d'autre port car les autres octets sont tous a 00. 2. GeneraliteCette interface parallele, comprend : Elle occupe trois adresses : -------------------------------------------------------------------- | | INTERFACE PARALLELE CENTRONICS | | Adresse E/S ------------------------------------- | soit ou ou |Designation du registre |Mode L/E| -------------------------------------------------------------------- | 03BCH | 0378H | 0278H |Registre de donnees 8 bits| L/E | | 03 H | 0379H | 0279H |Port de controle 5 bits | L | | 03 H | 037AH | 027AH |Registre de commande 5 bits| E | -------------------------------------------------------------------- Dans la suite nous parlerons des registres 0378H, 0379H et 037AH, mais les commentaires sont valables pour un autre port si en vous utilisez. Le sequencement des signaux d'echange avec l'imprimante est realise avec les registres et le port de controle ; la temporisation necessaire pour l'adaptation avec differentes vitesses de transmission est realisee au niveau du logiciel (parametre time-out); en effet, sauf pour certaines applications, le logiciel n'utilise pas l'interface parallele en mode d'interruption. L'avantage du port // est qu'il existe des signaux en entree et en sortie par lecture ou ecriture simplement. On peut les utiliser pour n'importe quoi, meme une imprimante !. Sur les micros PS2 IBM, les donnees D0 a D7 sont bidirectionnelles alors que sur PC/AT il est en sortie uniquement. Dans ce cas les bits de controle peuvent etre utilise comme une entree. 2. Description des registresRegistre de donnees : 0378H (lecture/ecriture)L'ecriture a cette adresse provoque la memorisation des donnees sur le port de donnees de l'imprimante. Une lecture a cette adresse provoque le transfert du port de donnees imprimante sur le bus de donnees de l'unite centrale. Registre de commande : 037AH (lecture/ecriture)----------------------------------------------------------------------- | REGISTRE DE COMMANDE INTERFACE PARALLELE | ----------------------------------------------------------------------- | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ----------------------------------------------------------------------- | x | x | x | IRQEN |SELECTIN*| INIT* | AUTOFD*| STROBE* ----------------------------------------------------------------------- | ------------------------------------- | Signaux de commande | envoyes sur | l'interface parallele | IRQEN : (IRQ Enable : validation interruption) _0 = interruption masquee _1 = interruption valide (interrution generee sur le front montant, du signal ACK*) Port de controle : 0379H (lecture)----------------------------------------------------------------- | PORT DE CONTROLE INTERFACE PARALLELE | ----------------------------------------------------------------- | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | ----------------------------------------------------------------- | BUSY | ACK* | PE | SELECT| ERROR*| x | x | x | ----------------------------------------------------------------- ----------------------------------------- Lecture des signaux d'etat de l'interface parallele ; ces bits ne sont pas memorisesUn front montant du signal ACK* genere une demande d'interruption, si cette demande d'interruption n'est pas masquee (bit IRQEN* du registre de commande).
4. Interface electriqueLes niveaux de tous les signaux sont compatibles TTL.![]() Connecteur type HE5 25pts femelle. ---------------------------------------------------- ------------- | BROCHAGE INTERFACE IMPRIMANTE Connecteur J13 | | O | ---------------------------------------------------- | -------\ | |Broche| Signal |Mode E/S||Broche| Signal |Mode E/S| 1| |o o| |14 ---------------------------------------------------- 2| |o o| |15 | 1 |PSTROBE*| S || 14 |PAUTOFD*| S | 3| |o o| |16 | 2 | PDATA0 | S || 15 |PERROR* | E | 4| |o o| |17 | 3 | PDATA1 | S || 16 | PINIT* | S | 5| |o o| |18 | 4 | PDATA2 | S || 17 |PSLCTIN*| S | 6| |o o| |19 | 5 | PDATA3 | S || 18 | | | | 7| |o | | | 6 | PDATA4 | S || 19 | | | | 8| |o o| |20 | 7 | PDATA5 | S || 20 | | | | 9| |o o| |21 | 8 | PDATA6 | S || 21 | | masse| | 10| |o o| |22 | 9 | PDATA7 | S || 22 | | | | 11| |o o| |23 | 10 | PACK* | E || 23 | | | | 12| |o o| |24 | 11 | PBUSY | E || 24 | | | | 13| |o o| |25 | 12 | PE | E || 25 | | | | | --------/ | | 13 | PSLCT* | E --------------------------- | O | -------------------------- ------------- Brochage connecteur parallele
5. Connexion d'une imprimante paralleleORDINATEUR IMPRIMANTE (connecteur HE5, 25 pts) (connecteur 36 pts type Centronics) PSTROBE* 1 ----------------------------> 1 STROBE* PDATA0 a 7 2 a 9 ----------------------------> 2 a 9 D0 a D7 PACK* 10 <---------------------------- 10 ACK* PBUSY 11 <---------------------------- 11 BUSY PE 12 <---------------------------- 12 PE PSLCT* 13 <---------------------------- 13 SELECT* PAUTOFD* 14 ----------------------------> 14 AUTO FEED* PERROR* 15 <---------------------------- 32 ERROR* PINIT* 16 ----------------------------> 31 INIT* PSLCTIN* 17 ----------------------------> 36 SELECT IN* masse 18 a 25 ----------------------------- 19 a 30 masse ------------- | O | | --------- | | --------- | STROBE* 1| || || |19 masse DATA0 2| || || |20 masse DATA1 3| || || |21 masse DATA2 4| || || |22 masse DATA3 5| || || |23 masse DATA4 6| || || |24 masse DATA5 7| || || |25 masse DATA6 8| || || |26 masse DATA7 9| || || |27 masse ACK* 10| || || |28 masse BUSY 11| || || |29 masse PE 12| || || |30 masse SLCT 13| || || |31 INIT* AUTO FEED* 14| || || |32 ERROR* 15| || || |33 masse masse 16| || || |34 chassis 17| || || |35 +5V 18| || || |36 SLCTIN* | --------- | | --------- | | O | ------------- Brochage connecteur type Centronics 36pts 6. Procedure de commande de l'imprimanteL'interface Centronics est une interface parallele entre le micro-ordinateur et une imprimante. Les caracteres sont envoyes a l'imprimante en code ASCII. La synchronisation et le dialogue sont assures par trois signaux : STROBE*, ACK* et BUSY. PROCEDURE DE COMMANDE ------------ ------------ DONNEES -- ---------------- ---------------- <T1><T2> <T1><T2> ------ ------------------------ -------------------- STROBE* ----<T3> ----<T3> --------------- ------------ BUSY ----------------- ------------------ ---- ------------------------ ---------------------------- -- ACK* ---- ---- >--<2,5 a 30 mic.s ------- -- IRQ --------------------------- ------------------------- Les valeurs de temps sont donnees a titre indicatif ; elles dependent du type d'imprimante et de son mode de fonctionnement.
|