El Puerto Paralelo Del PC
El Puerto Paralelo Del PC
Introduccin Descripcin fsica del conector Acceso al puerto Registros Puertos extendidos Miscelnea
Introduccin
Hace aos, IBM dise el puerto paralelo para mane ar impresoras desde su gama de microcomputadores P!"#$"A$% &n conector estndar mac'o de () pines apareca en la parte trasera del P! con el solo propsito de ser*ir de interfa+ con la impresora% ,l sistema operati*o D-. cargado en dic'os P! soporta 'asta tres puertos paralelos asignados a los identificadores /P$0, /P$( 1 /P$2, 1 cada puerto re3uiere tres direcciones consecuti*as del espacio de ,". 4entrada5salida6 del procesador para seleccionar todas sus posi7ilidades% Desde el punto de *ista del hardware, el puerto consta de un conector 'em7ra DB() con doce salidas latch 4poseen memoria"buffer intermedio6 1 cinco entradas, con oc'o lneas de tierra% Desde el punto de *ista del software, el puerto paralelo consta de tres registros 4datos, estado 1 control6 de 8 7its cada uno, 3ue ocupan tres direcciones de ,". 4I"-6 consecuti*as de la ar3uitectura x89%
/a funcin normal del puerto consiste en transferir datos a una impresora mediante 8 lneas de salida de datos, usando las seales restantes como control de flu o% .in em7rago, puede ser usado como un puerto ,". de propsito general por cual3uier dispositi*o o aplicacin 3ue se a uste a sus posi7ilidades de entrada"salida%
,n este conector<
8 lneas (pines) son para salida de datos 47its de DATOS6% .us *alores son :nicamente modifica7les a tra*=s de soft>are, 1 *an del pin ( 4dato ?, D?6 al pin @ 4dato A, DA6% 5 lneas son de entrada de datos 47its de ESTADO6, :nicamente modifica7les a tra*=s del 'ard>are externo% ,stos pines son< 00, 0?, 0(, 02 1 0), del ms al menos significati*o% 4 lneas son de control 47its de O!T"O#6, numerados del ms significati*o al menos< 0A, 09, 0; 1 0% Ha7itualmente son salidas, aun3ue se pueden utili+ar tam7i=n como entradas 1, por tanto, se pueden modificar tanto por soft>are como por 'ard>are% las lneas de la $8 a la 25 son la tierra%
,n la siguiente ta7la se detallan la nomenclatura 1 descripcin de cada lnea% /a columna B!entronics pinB se refiere a las lneas del conector tipo !entronics usado en las impresoras% /a columna ,". se refiere al dato *isto desde el lado del P!%
DB25 pin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Se&al
Descripcin
Strobe .i est 7a o ms de ?%) Cs, 'a7ilita a la impresora para 3ue reci7a los datos en*iados% D0 D1 D2 D3 D4 D5 D6 D7 Ack Busy Bit ? de datos, 7it menos significati*o 4/.B6 Bit 0 de datos Bit ( de datos Bit 2 de datos Bit ; de datos Bit ) de datos Bit 9 de datos Bit A de datos, 7it ms significati*o 4M.B6 &n pulso 7a o de D00Cs indica 3ue se 'an reci7ido datos en la impresora 1 3ue la misma est preparada para reci7ir ms datos% ,n alto indica 3ue la impresora est ocupada%
PaperEnd ,n alto indica 3ue no 'a1 papel% Select n ,n alto para impresora seleccionada% Auto!eed .i est 7a o, el papel se mue*e una lnea tras la impresin% Error n"t ,n 7a o indica error 4no 'a1 papel, est fuera de lnea, error no det%6% .i se en*a un pulso en 7a o E )? Cs la impresora se reinicia%
Select ,n 7a o selecciona impresora 4en gral% no se usa, 1a 3ue .electIn se fi a a alto6% %&D Masa retorno del par tren+ado% Masa lgica Masa c'asis
,l nom7re de cada seal corresponde a la misin 3ue cumple cada lnea con relacin a la impresora, el perif=rico para el 3ue fue diseado el puerto paralelo% /as seales acti*as a ni*el 7a o aparecen con la 7arra de negacin 4por e emplo, .tro7e6% !uando se indica alto o 'a(o se refiere a la tensin en el pin del conector% Alto e3ui*ale a D)F en $$/ 1 7a o a D?F en $$/%
Acceso al puerto
,l puerto paralelo se identifica por su direccin de ,". 4entrada"salida, I"-6 7ase 1 se reconoce en sistemas M.5D-. por el n:mero /P$ 4lp en &nix"/inux6% !uando arranca la m3uina, la BI-. 4Basic Input Output System6 c'e3uea direcciones especficas de ,". en 7usca de puertos paralelos 1 constru1e una ta7la de las direcciones 'alladas en la posicin de memoria 4)*+8* 4o )*+)4)8*6 4*=ase direccionamiento segmentado6% ,sta ta7la contiene 'asta tres pala7ras de 09 7its, cada pala7ra con el 71te 7a o primero seguido por el 71te alto% !ada pala7ra es la direccin de E%S 'ase del puerto paralelo 43ue denominaremos /P$GBA., en lo sucesi*o6% /a primera corresponde a /P$0, la segunda a /P$( 1 la tercera a /P$2% Ha1 3ue agregar 3ue, en M.5D-. tenemos el dispositi*o PRH 3ue es un alias a uno de los dispositi*os /P$ 4generalmente es /P$0, pero se puede cam7iar con la orden M-D,6% /as direcciones 7ase estndar para los puertos paralelos son<
c'e3ueadas en este orden% /a siguiente ta7la muestra, como e emplo, la memoria en un P! con dos puertos paralelo instalados en las direcciones 'exadecimales 2A8 1 (A8%
Identificador DOS
'P(1 'P(2 'P(3)*no) "nstalado+
Direccin
0000:0408/9 0000:040A/B 0000:040C/D
"e2istros
,l puerto paralelo estndar 4.PP6 consta, como se mencion antes, de tres re2istros de 8 'its locali+ados en direcciones ad1acentes del espacio de ,". del P!% /os registros se definen relati*os a la direccin de ,". 7ase 4/P$GBA.,6 1 son<
O!T"O#
37Ah 27Ah 3BEh
Hom7re 'a7itual
LPT1 LPT2 MDA con p. paralelo
.e 'ar referencia a cada 7it de los registros como una inicial 3ue identifica el registro seguido de un n:mero 3ue identifica el n:mero de 7it, siendo ? el /.B 47it menos significati*o6 1 A el M.B 47it ms significati*o6% Por e emplo, D? es el 7it ? del reg% de datos, .A es el 7it A del reg% de estado 1 !( es el 7it ( del reg% de control% .e indican con una 7arra de negacin los 7its 3ue utili+an l2ica ne2ati5a% ,n l2ica positi5a un $ l2ico e3ui*ale a alto 4D) F $$/6 1 un ) l2ico a 'a(o 4D? F $$/6% ,n l2ica ne2ati5a 0 e3ui*ale a 7a o 4D? F6 1 ? e3ui*ale a alto 4D) F6%
,s preciso no confundir la l2ica 6ue si2ue el puerto con la l2ica 6ue 1antiene la i1presora% Por e emplo, la impresora pone a alto B !" 4pin 006 para indicar 3ue est ocupada% Pero en realidad, al leer el registro de estado, B !" la interpretamos como ? 4puesto 3ue el pin 00 se corresponde con .A6% ,s decir, es como si fuera acti*a en 7a o 4B !"6%
,l registro de estado se 'alla en /P$GBA.,% .e puede leer 1 escri7ir% ,scri7ir un dato en el registro causa 3ue dic'o dato apare+ca en los pines ( a @ del conector del puerto% Al leer el registro, se lee el :ltimo dato escrito 4H- lee el estado de los pinesJ para ello 'a1 3ue usar un puerto 7idireccional6%
,l estndar es 3ue las salidas sean /. $$/ 4low schottky $$/6, aun3ue las 'a1 3ue son de tipo -! 4colector a7ierto6% /a corriente 3ue pueden entregar 4modo source6 es de (,9 mA mximo 1 pueden a7sor7er 4modo sink6 un mximo de (; mA% n el puerto original de IBM 'a1 condensadores de (,( nK a masa% /as tensiones para el ni*el 7a o son entre ? 1 ?,8F 1 el ni*el alto entre (,;F 1 )F%
"e2istro de estado (S) ,l registro de estado est en /P$GBA.,I0% ,s de slo lectura 4las escrituras sern ignoradas6% /a lectura da el estado de los cinco pines de entrada al momento de la lectura% ,n la ta7la siguiente los nom7res de los pines se de aron en ingl=s por3ue es como generalmente se identifican%
/a lnea B !" tiene, generalmente, una resistencia de pull-up interna% ,l estndar es 3ue sean entradas tipo /. $$/%
/os cuatro 7its inferiores son salidas% /a lectura de*uel*e lo :ltimo 3ue se escri7i a dic'os 7its% .on $$/ a colector a7ierto con resistencias de pull-up de ;%A L, por lo 3ue un dispositi*o externo puede for+ar el estado de los pines sin daar el driver% ,sto permite utili+ar estas cuatro lneas como entradas% Para ello, se ponen en alto las cuatro salidas 4escri7iendo ?0??7, es decir, ;', en /P$GBA.,I(6 lo 3ue 'ace 3ue las salidas BflotenB% A'ora, un dispositi*o externo puede for+ar a 7a o alguna de las salidas con lo 3ue, le1endo el puerto, sa7emos si esto sucedi o no% ,s posi7le reali+ar esta t=cnica en salidas totem-pole 4como D?5DA6 pero no se recomienda su uso por3ue 'a7ra 3ue tener un conocimiento preciso de la corriente, 1a 3ue se puede so7recargar los transistores de salida 1 daar el driver 4especialmente en puertos integrados /.I6% Bit de puerto 'idireccional (co1pati'le 7S%2) ,l 7it !), est disponi7le slo si se trata de un puerto 7idireccionalJ en los puertos comunes no se utili+a, al igual 3ue los 7its !9 1 !A% .i !)M0, el 7uffer de los datos de salida se pone en alta impedancia, BdesconectandoB dic'o 7uffer de los pines ( a @ del conector del puerto 4D? a DA6% .i se escri7e al registro de datos, se escri7e al 7uffer pero no a la salida% ,sto permite 3ue al leer el puerto, se lea el estado de las entradas 1 no lo 3ue 'a1 en 7uffer% !uando !)M? el puerto retorna al modo salida, su estado por defecto%
,n las computadoras IBM P."(, para 'a7ilitar el puerto paralelo 7idireccional, adems de lo antes descrito, se de7e poner a 0 el 7it A del registro del puerto 0?(' 4opciones de configuracin6% ,n computadoras 3ue no tengan puerto paralelo 7idireccional compati7le P."( 'a1 3ue modificar uno o ms 7its de alg:n puerto especfico correspondiente al c'ipset de la placa% A *eces se 'a7ilita por el .etup o por umper en la placa del puerto% Bit de interrupcin ,n tra7a os normales de impresin ni el BI-. ni el D-. 'acen uso de la interrupcin% ,l 'ec'o de poseer una lnea de interrupcin 3ue est conectada directamente al PI! 4Programmable Interrupt Controller6, lo 'ace mu1 :til para experimentacin en dataloggers por e emplo% ,l 7it de interrupcin est conectado al control de un 7uffer de tres estados% !uando !;M0, se acti*a el 7uffer 1 su entrada, .9, se conecta a la lnea IRN 4en general es IRNA o IRN)6% /a lectura del 7it, nos de*uel*e el estado del mismo 4es decir si el 7uffer est en alta impedancia o no6% .e producir una interrupcin, cuando 'a1a un flanco descendente en el pin correspondiente a .9% A continuacin, se descri7en los pasos para poder utili+ar interrupciones%
Kinalmente, se muestra una ta7la 3ue re:ne las caractersticas 'ard>are 1 soft>are del puerto paralelo% DB25 pin
1
Se&al
Descripcin
.i est 7a o ms de ?%) Cs, Strobe 'a7ilita a la impresora para 3ue reci7a los datos en*iados% D0 D1 D2 D3 D4 D5 D6 D7 Bit ? de datos, 7it menos significati*o 4/.B6 Bit 0 de datos Bit ( de datos Bit 2 de datos Bit ; de datos Bit ) de datos Bit 9 de datos Bit A de datos, 7it ms
2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
S S S S S S S S
significati*o 4M.B6 S6 E!#a*o '() 6 E!#a*o 7 E!#a*o & E!#a*o 4 Con#rol 1 E!#a*o 3 Con#rol 2 &n pulso 7a o de D00Cs indica 3ue se 'an reci7ido datos en la impresora 1 3ue la misma est preparada para reci7ir ms datos% ,n alto indica 3ue la impresora est ocupada%
10
10
al#o
Ack
11 12 13 14
11 12 13 14
S7 S5 S4 ,1
E E E S
$a%o
Busy
al#o PaperEnd ,n alto indica 3ue no 'a1 papel% al#o Select n ,n alto para impresora seleccionada% .i est 7a o, el papel se $a%o Auto!eed mue*e una lnea tras la impresin% al#o Error ,n 7a o indica error 4no 'a1 papel, est fuera de lnea, error no det%6% .i se en*a un pulso en 7a o E )? Cs la impresora se reinicia%
15
32
S3
16
31
,2
al#o
n"t
17
36
Con#rol ,3 3
$a%o
,n 7a o selecciona Select impresora 4en gral% no se usa, 1a 3ue .electIn se fi a a alto6% %&D Masa retorno del par tren+ado% Masa lgica Masa c'asis
8iscel9nea
7rotocolo del puerto con la i1presora ,l handshaking 4Bapretn de manosB o protocolo6 es un con unto de reglas 3ue am7os extremos de un sistema de comunicacin tienen 3ue seguir para 3ue la comunicacin sea correcta% ,l puerto paralelo, usado con una impresora, transmite datos 1 transmite"reci7e las
seales de protocolo% /as principales son +#ro$e, Ac, 1 B !"% /a secuencia a seguir para en*iar datos sera< 0% !olocar el 71te a en*iar en el registro de datos% (% Ferificar 3ue la impresora no est= ocupada 4B !" M 7a o, .A M 06% 2% Indicarle a la impresora 3ue acepte los datos 4+#ro$e M 7a o , !? M 0, pulso E)us6% ;% ,n ese instante la impresora indica 3ue est ocupada reci7iendo los datos 4B !" M alto, .A M ?6% )% Kinalmente, la impresora en*a un pulso de aceptacin indicando 3ue se reci7ieron los datos 1 3ue se puede *ol*er al paso 0 4Ac, M 7a o, .9 M ?, pulso de entre ) s 1 0) s seg:n impresora6% /as otras seales sir*en para *erificar el estado de la impresora 4,rror, PaperEn*6, para reiniciarla 4Init6 1 para configurarla 4AutoKeed, +elec#6% ,n los nue*os puertos, estas seales ad3uieren otra funcin, a *eces parecida 1 otras totalmente distintas%
Interrupciones con el puerto paralelo ,n primer lugar, se de7e 'a7ilitar el 7uffer 3ue conecta la lnea A!O con la lnea IRN% ,sto lo 'acemos poniendo a 0 el 7it ; del registro de control 4/P$GBA.,I(6% /uego se de7e preparar una I.R 4Interrupt Service Routine6 3ue atienda la interrupcin recordando en*iar la seal ,-I 4(?'6 al registro de control del PI! 4puerto (?'6 al salir de la rutina% /a interrupcin soft>are corresponde a la n:mero ?D' para IRN) 1 ?K' para IRNA% Kinalmente se 'a7ilita con ? la interrupcin IRN) 4o IRNA6 escri7iendo al 7it ) 4o A6 del registro de interrupciones del PI! 4puerto (0'6% Para desinstalar la I.R, se des'a7ilita la IRN) 4o IRNA6 escri7iendo un 0 al 7it ) 4o A6 del registro de interrupciones del PI! 4puerto (0'6% /uego se 'ace 3ue !;M?%
:elocidad &n puerto paralelo I.A normal toma un ciclo5I.A para leer o escri7ir% ,n un sistema cu1a *elocidad de 7us sea 0,2 M'+, se puede decir 3ue la lectura se puede 'acer cada 0 s 4idealmente, 1a 3ue siempre existen otras instrucciones soft>are, etcJ ,n la prctica pueden
ser desde 0%( s a ( s6% Algunos puertos soportan un modo Btur7oB 3ue elimina los 2 estados de espera de la !P&, con lo 3ue la *elocidad de lectura"escritura del puerto se duplica 4(,A MH+6%