You are on page 1of 19

TUTORIAL DE ENTRADA/SALIDA

1.- Introduccin
Los dispositivos o puertos de entrada/salida permiten realizar transferencias de informacin entre el
exterior y el microprocesador. Existen dos modos de transferencia:
paralelo: el puerto utiliza un conjunto de lneas, tantas como bits a transmitir
simultneamente, por las ue cada una pasa un bit en un intervalo de tiempo.
!erie: el puerto utiliza una "nica lnea por la ue, en intervalos de tiempo diferentes, se
transmiten, uno a uno, todos los bits del dato.
#$n%ase en cuenta ue las transferencias entre el microprocesador y el puerto concreto, ue se
realizan a trav$s del bus de datos, son, siempre, de tipo paralelo.
&
2.- Dispositivos o puertos de entrada/saida con trans!erencia en paraeo.
'n puerto de entrada/salida en su forma ms bsica es un simple re%istro o latc(.
L)#*+ ,-L!.,.
'na confi%uracin de este dispositivo como puerto de salida se muestra a continuacin:
En la fi%ura anterior, el latc( siempre muestra su contenido en la salida, puesto ue el pin //* 01.
) su vez, las salidas del latc( se conectan con diodes LE2! ue permiten visualizar su contenido,
de forma ue un & en al%una salida del L)#*+ provoca ue el LE2 asoicado se ilumine, mientras
ue un 1, lo apa%a. Las entradas del latc( se conectan al bus de datos del sistema 3ue se (a
4
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
D
Q
OC
I0
I1
I2
I3
I4
I5
I6
G
I7
O0
O1
O2
O3
O4
O5
O6
O7
LATCH
373
BUS
DE
DATOS
Decodificador
de
direccioe!
BUS
DE
DI"ECCIO#ES
OC G
supuesto de 5 bits6. 7or otro lado, la entrada de (abilitacin, 8, se conecta, a trav$s del sistema de
decodificacin, al bus de direcciones del microprocesador, por lo ue para una direccin de
memoria concreta, el latc( se (abilitar y almacenar el contenido del bus de datos. 2esde el punto
de vista del pro%ramador, el encendido o apa%ado de los LE2s, slo es cuestin de una escritura en
una posicin de memoria.
Ejemplo: !upon%amos un microprocesador %en$rico para el ue se le (a asi%nado la direccin de
memoria 9:E! al re%istro concreto. La secuencia de instrucciones necesarias para encender de
forma pro%resiva cada uno de los LE2! sera:
;'*LE: <'E=E >951,9:E!
<'E=E >9-1,9:E!
<'E=E >941,9:E!
<'E=E >9&1,9:E!
<'E=E >915,9:E!
<'E=E >91-,9:E!
<'E=E >914,9:E!
<'E=E >91&,9:E!
!)L#/ ;'*LE
7:/;LE<): La rapidez con la ue se ejecuta ese cdi%o provocara ue se vean todos
lo LE2s encendidos. 3El ojo (umano no distin%ue frecuencias superiores a .1+z6

'na confi%uracin del mismo re%istro, pero como puerto de entrada, se representa en la si%uiente
fi%ura.
7uesto ue la entrada 8 est a & l%ico, el L)#*+, permanentemente, almacena el contenido de sus
entradas. ) su vez, las entradas del re%istro estn conectadas a pulsadores mecnicos ue disponen
de una resistencia de pull?up. !i un pulsador est presionado, el latc( se car%a con un 1 l%ico, sino,
con un & l%ico. Las salidas del latc( se conectan al bus de datos del microprocesador 3ue (emos
.
LATCH
373
BUS
DE
DATOS
Decodificador
de
direccioe!
BUS
DE
DI"ECCIO#ES
OC
"
5$
5$
5$
G
supuesto i%ualmente de 5 bits6, para lo ue se necesita la alta impedancia, por lo ue, a(ora, la
entrada /E, ue controla la lectura del latc(, se conecta al bus de direccin a trav$s de un
decodificador de direccin. 7ara evitar conflictos en el bus de datos, el decodificador dispone de un
(abilitador conectado a la se@al de : ue %enera el microprocesador en todo acceso de lectura ya sea
memoria o a entrada/salida. 2esde el punto de vista del pro%ramador, la lectura de una direccin de
memoria permitir determinar si las teclas estn pulsadas o no.
Ejemplo: !e desea desarrollar un pro%rama ue permita realizar una accin si se pulsa el botn
situado en la posicin ms si%nificativa del bus. 3!e supone un microprocesador %en$rico y ue el
re%istro est mapeado en la direccin de memoria 9:E!6:
*L: 21 A21,2&,24 son re%istros internos del microprocesador.
<'E=E >9BB, 2& A2& es un re%istro ue contiene el valor inicia BB ue
Aindica ue nin%una tecla (a sido pulsada.
;'*LE: <'E=E 9:E!,21 ALectura del puerto.
<'E=E 21,24 A!e salva el contenido de 21 en 24
)C2 >951,21 AEl re%istro 21 tiene un 1 si la tecla est pulsada y D1
Aen caso contrario.
;CE posicion
<'E=E 24,2&
!)L#) ;'*LE
7osicion: <'E=E 2&,2
)C2 >951,21 A*omprueba el valor del bit ms si%nificativo
;EE ;'*LE
F!: accion
<'E=E >9BB,2&
!)L#) ;'*LE
Este pro%rama comprueba si la tecla (a sido pulsada o no y lo comprueba con el valor de
pulsacin de la "ltima vez ue accedi al puerto de entrada.
7:/;LE<): Esta rutina no elimina los fenmenos fsicos de los rebotes en los contactos.
Los puertos de entrada/salida suelen incluir al%una circuitera adicional con informacin de estado,
ue incluye:
disponibilidad del perif$rico para la lectura de un dato o re%istro interno
disponibilidad del perif$rico para la escritura de un dato
Esto d lu%ar a dos tipos de transferencias entre el microprocesador y el puerto:
Gncondicionales: el microprocesador no debe acceder al puerto de E/! para saber si este
est disponible para la transferencia.
*ondicionales: el microprocesador debe acceder para determinar si el puerto est
disponible para la transferencia.
Ejemplos de transferencia incondicionales se (an presentado con anterioridad en la lectura del
teclado o la visualizacin de LE2s. *omo ejemplo de transferencia condicional supon%amos ue un
determinado sistema tiene ue recibir informacin de otro. La informacin recibida es leda por el
microprocesador a trav$s de un puerto de E/! del tipo ,-L!.,.. El sistema remoto pone un dato
-
nuevo en la entrada del latc( cada cierto tiempo. La lectura del latc( est condicionada a ue el
sistema remoto coloue un nuevo dato en $l. 'na lectura incondicional del latc(, en la ue no
sabramos si el sistema remoto a situado un nuevo dato, provocara multiplicidades y p$rdidas de
datos. 7ara conse%uir una transferencia condicional, debe utilizarse cierto (ardHare ue informe al
microprocesador de ue el sistema remoto (a depositado un nuevo dato en el latc(. En la si%uiente
fi%ura se aprecian estos cambios.

El dispositivo de entrada dispone de un bus por el ue se transfiere los datos y una lnea adicional
ue avisa de la existencia de un nuevo dato en el bus. El cambio del valor l%ico de dic(a lnea 3de
1 a &6 produce la car%a del nuevo dato en el latc( y la puesta a & del biestable 2. Este biestable,
puede considerarse como otro puerto de entrada/salida ue se sit"a en una direccin de memoria
3puerto&6 diferente a la del latc( 3puerto46. Las direcciones puerto& y puerto4 se obtienen mediante
sendos decodificadores conectados al bus de direcciones. La salida del biestable se conecta a una
lnea del bus de datos 3supon%amos la lnea ,6 a trav$s de un buffer triestado ue se activa cuando el
microprocesador (ace una operacin de lectura sobre la direccin puerto&. El latc( coloca su
contenido en el bus de datos cuando el microprocesador realiza una operacin de lectura sobre la
direccin de memoria puerto4, lo cual pone a 1 el contenido del biestable 2. El microprocesador
debe consultar el contenido del bit , de la posicin de memoria puerto4 para determinar si existe un
nuevo dato 3si est a &6, o no 3si est a 16. !i existe dato nuevo, se aplica lectura sobre la posicin de
memoria puerto&, lo cual borra el bit , de la posicin puerto4.
El si%uiente pro%rama ilustra todo este proceso.
;'*LE: <'E=E >97'E:#/&,21
;EE ;'*LE
<'E=E >97'E:#/4,3)16I
!)L#) ;'*LE
'no de los principales problemas ue plantea la transferencia paralelo es la velocidad a la ue esta
puede tener lu%ar. !i el dispositivo externo enva datos con mayor velocidad ue la ue el receptor
es capaz de leer los datos, se puede dar el caso de p$rdidas de informacin: /=E::'C. La
solucin de este problema se encuentra en el dilo%o con el dispositivo externo. Este "ltimo slo
manda cuando el primero est disponible para recibir el dato. Este dilo%o se denomina
+)C2!+)JE. 'na posible solucin para el caso del ejemplo anterior sera:
K
LATCH
BU%%E"S
T"IESTADO
D
Q
DATOS
DEL
DIS&OSITI'O
DE
E#T"ADA
BUS
DE
DATOS
1
()er*o1
()er*o2
ACTI'ADO"
DESDE
EL DIS&OSITI'O
DE E#T"ADA
El emisor dispone de una entrada adicional, ;'!L %enerada por el euipo ue recibe los datos. La
salida ;'!L se obtiene de la salida del biestable 2.3;'!L0E6. La lectura del latc( por parte del
microprocesador local pone a 1 el biestable y la lnea ;'!L ue solicita al emisor un nuevo dato.
El ejemplo ms com"n de (ands(aMe en una transferencia en paralelo es la comunicacin de un
ordenador con la impresora, donde ;'!L (ace las veces de )*J, y el activador, de !#:/;E
N
LATCH
BU%%E"S
T"IESTADO
D
Q
DATOS
DEL
DIS&OSITI'O
DE
E#T"ADA
BUS
DE
DATOS
1
()er*o1
()er*o2
ACTI'ADO"
DESDE
EL DIS&OSITI'O
DE E#T"ADA
BUS+
,LI#EA DE
OCU&ADO-
.AC/
.S*ro0e
BUS DE
DATOS
E1i!or
"ece(*or
B)! de da*o!
.S*ro0e
.AC/
<uc(as de las funciones de transferencia de entrada/salida paralelo vienen inte%radas en c(ips cuyas
funciones pueden ser pro%ramadas dinmicamente por el microprocesador en funcin de las
necesidades.
'n mismo componente puede inte%rar varios latc(es
inte%rar funciones de control de la transferencia paralela 3protocolos (ands(aMe6
pro%ramar el modo de funcionamiento de cada uno de los bits de todos los puertos, esto
es, si (acen funcin de entrada o salida.
Ejemplo: Gnterfaz perif$rico pro%ramable 54KK
2ispone de un bus de datos de 5 bits 32,?16, un bus de direcciones con dos lneas para la seleccin
de los re%istros internos 3)&?16, un bus de control 3/*!,:E!E#,/O:,/:26 y tres puertos
bidireccionales de 5 bits cuyas salidas son 7),?1,7;,?1,7*,?1.
El microprocesador se conecta con este dispositivo mediante su bus de datos 21?,, el bus de
direcciones, cuyas lneas de menor peso, )&,)1 se conectan directemente a las entradas del mismo
nombre del 54KK, mientras ue las restantes lneas de direcciones del microprocesador se utilizan
para la decodificacin de las direcciones de memoria donde se (aya ubicada este c(ip y ue activan
la entrada /*! del mismo. )dems las lneas de entrada /:2 y /O2 distin%uen si la transferencia se
realiza desde al microprocesador al 54KK 3escritura6 o desde el 54KK al microprocesador 3lectura6.
La lnea de :E!E# inicializa el inte%rado y se conecta con la se@al :E!E# %eneral ue inicializa
todo el sistema.
,
24
23
22
21 20
12
13
17
16
15
14
13
1
2
3
4
5
6
7
3
2
10
11
12
&A3
A1
A0
D3
G#D
45"
"ESET
D2
D1
'CC
D7
D6
D5
D4
23
27
26
25
32
31
30
22
35
34
33
37
36
40
32
33
&A2
&A1
&A0
&A4
&A5
&A6
&A7
4"D
4CS
&C3
&C2
&C1
&C0
&C7
&C6
&C5
&C4
&B0
&B1
&B2
&B5
&B4
&B3
&B7
&B6
D0
3255
Ejemplo de conexin:
El microprocesador ve en la memoria un total de cuatro direcciones consecutivas ue provocan el
acceso al dispositivo. 7or ejemplo: si el decodificador de direcciones activa su salida para )&K?
409&111, entonces para las direcciones )&K?10 9&111,9&11&, 9&114 y 9&11., se accede a los
re%istros internos del 54KK.
)& )1 :e%istro
1
1
&
&
1
&
1
&
7uerto )
7uerto ;
7uerto *
:e%istro de
comando
/tro ejemplo: =G) NK44
5
3255
Decodificador
de
direccio
4CS
4"D
45"
4"D
45"
BUS
DE
DATOS
6IC"O&"OCESADO"
A0
A1
BUS
DE
DI"ECCIO#ES
A07A15
A1572
&A770
&B770
&C770
2ispone de un bus de datos de 5 bits 32,?216, un bus de direcciones con cuatro lneas 3:!.?:!16
para seleccionar &N re%istros internos, bus de control y dos puertos 7),?1 y 7),?1 entre otras
funciones avanzadas.
..? 2ispositivos o puertos de entrada/salida con transferencia en serie
La transferencia en paralelo permite una velocidad de transmisin mayor ue la serie, por eso se utiliza
en sistema ue reuieren un volumen de intercambio de informacin importante. La transferencia en
paralelo tiene un %ran coste 3proporcional al n"mero de bits a transmitir y la distancia entre emisor y
receptor6. 2os factores influyen en el coste:
el valor del enlace
el valor de los drivers o circuitos ue controlan los niveles de tensin en cada una de las lneas.
) mayor lon%itud de cable, mayor resistencia y capacidad presenta este, por lo ue el driver
debe ser ms potente.
Otro problema de la transferencia paralelo es el skewing, que aumenta cuando las longitudes de
los cables son mayores. El skewing se realaciona con las diferencias entre los tiempos de
propagacin de las distintas seales por sus respectivos cables.
) distancias cortas la transferencia paralelo es ms ventajosa, pero cuando la distancia aumenta, el
incremento en el coste e la instalacin se (ace tan %rande ue es razonable plantearse una p$rdida de
velocidad en beneficio de una bajada en el coste. La transferencia en paralelo se limita a sistemas
cerrados en ue las distancias no son muy %randes 3p.ej.: la interconexin entre los distintos circuitos
inte%rados de una placa6 y la transferencia en serie se emplea para sistemas ue estn relativamente
alejados.
El interfaz serie es un circuito inte%rado ue realiza transferencias de datos en paralelo con el
procesador y las convierte en trasferencias serie con el exterior. El n"cleo de un perif$rico serie es un
re"istro de despa#a$iento

P
#oda transferencia de informacin reuiere de sincronizacin entre el receptor y el transmisor. El
receptor de una transferencia en serie debe saber en u$ instantes debe %enerar el desplazamiento del
contenido de su re%istro de recepcin para capturar, correctamente, los bits de informacin. 3la clM de
ambos perif$ricos debe ser la misma6. Existen dos modalidades de transferencia en serie atendiendo al
modo de sincronizacin:
sncrona
asncrona
En la transferencia seria sncrona el transmisor enva, en una lnea adicional a la de datos, la se@al de
reloj de su re%istro de desplazamiento. El receptor recupera la se@al de esta lnea y la utiliza como reloj
de su re%istro de desplazamiento. En esta t$cnica se reuiere dos lneas como mnimo, lo ue produce
efectos de sMeHin% y coste no deseados. Existen t$cnicas de comunicacin sncrona ue permiten
eliminar una de las dos lnea 3autoreloj6.
En el m$todo por transferencia en serie asncrona, el transmisor slo enva los datos, por tanto la forma
en ue el receptor se sincroniza es bien diferente. Los sistemas involucrados en una transferencia serie
asncrona tienen ue cumplir al%unos reuisitos para ue $sta ten%a lu%ar:
los relojes del transmisor y del receptor deben operar a la misma frecuencia3aunue esto no es
posible por la existencia de tolerancias en los componentes6.
la (ilera de bits transmitidos debe incluir al%una informacin de sincronizacin adems de los
bits de los datos 3especie de :eady6
los bits de sincronizacin activan el modo de recepcin avisando ue a partir de ellos se
reciben, uno tras otro, los bits de datos
Brecuentemente se necesitara intercalar bits de sincronismo entre los bits de los datos para
conse%uir resincronizar el reloj del receptor.
..& #ransferencia seria asncrona
La transferencia en serie asncrona est orientada al carcter. Esto es, cada byte ue se deseatransmitir
se va a rodear de cierta informacin ue permite su sincronizacin y la posible deteccin de errores.
&1
!i el transmisor est en reposo, es decir, no tiene nada ue transmitir, su salida se mantiene a & l%ico
3MA!6. !i el transmisor va a iniciar una transferencia, primero pone su salida a 1,3"#A$E6 durante el
mismo tiempo ue la duracin de un bit de datos 3#
bit
6. Esto se conoce como el bit de inicio o bit de
start. ) continuacin, se envan de K a 5 bits de datos, comenzando por el menos si%nificativo del
%rupo. 2espu$s del "ltimo bit del dato, y de manera opcional, se enva un bit de paridad ue puede ser
par, impar o fija 3& o 1 l%icos6. Binalmente se enva un bit de stop cuya duracin vara entre & y 4 #
bit
y
ue se corresponde con un & l%ico 3MA!6. !i el transmisor no tiene un nuevo byte ue enviar, este
pasa al estado de reposo y, su salida, a & l%ico. 7or contra, si existe un nuevo dato ue transmitir, a
continuacin del bit de stop se enva el bit de start del si%uiente byte.
El formato asncrono reuiere, como mnimo, de 4 bits adicionales a los de datos para su
sincronizacin y & bit opcional, como la paridad, para la deteccin de errores. 7ero, Q*mo se
sincroniza el receptorR. El receptor continuamente muestrea la entrada en busca de un bit de start. La
frecuencia con la ue realiza este muestreo es &N veces superior a la frecuencia de la se@al ue debe
servir como desplazamiento de su re%istro. / sea, el receptor, en el tiempo de duracin de un bit 3#
bit
6,
muestrea su entrada &N veces.
!i comienza la transmisin de un byte. La lnea de salida del transmisor pasa de & l%ico 3reposo6 a 1
l%ico 3bit de start6 . *uando el primer tick 3o pulso de reloj6 de muestreo del receptor detecta esta
transicin en su entrada, se activa un contador cuya misin consiste en esperar 5 ciclos de reloj o ticks.
#ranscurridos estos ciclos, el receptor vuelve a muestrear la entrada 3 aproximadamente esto coincide
con el punto medio del bit de start 6. !i esta es &, el receptor se reinicializa buscando una nueva
transicin de bajada 3 asume ue se (a recibido un falso bit de start 6. !i la entrada es un 1, el receptor
da como vlida la lle%ada de un bit de start. !i se detecta un bit de start vlido, se activa el mecanismo
de sincronizacin, %racias a la (abilitacin de un contador mdulo &N por el ue se obtiene, a partir de
la se@al de muestreo, el reloj de desplazamiento del re%istro de recepcin.
&&
Entonces, Q7ara u$ un bit de stopR. El bit de stop interviene en la funcin sincronizadora en el sentido
de ue permite ase%urar una transicin de <):J 3bit de stop del carcter anterior6 a "#A$E 3bit de
start del carcter actual6 cuando se transmiten datos de forma continuada.
'n receptor asncrono dispone, adems de un re%istro de desplazamiento, un re%istro intermedio
3:+:6 del tipo paralelo?paralelo ue (ace de interfaz entre el re%istro de desplazamiento y el bus de
datos del microprocesador. Esto (ace ue no sea tan crtico el momento del lectura del byte recibido.
8racias al :+: el procesador tiene un tiempo i%ual al de duracin de la recepcin de un nuevo byte
para leer este re%istro antes de ue su contenido se pierda por la sobreescritura. En al%unos receptores
este re%istro, denominado re%istro de mantenimiento de recepcin 3:+: ? eceiver %olding egister ?
o simplemente re%istro de recepcin, :: ? eceiver egister ?6, es sustituido por una cola o BGB/.
)sociado al re%istro de recepcin existe un bandern o flag ue se activa cada vez ue el re%istro de
desplazamiento transfiere un dato nuevo (acia el re%istro de recepcin. #ambi$n podemos encontrar un
flag de Overrun o de sobreescritura. #odos los receptores asncronos tienen una circuitera adicional
ue muestrea y c(euea el bit de stop. !i este no es &, se dice ue existe un error de trama o &ramming
error ue es reco%ido por un flag del mismo nombre.
&4
Bi* de S*ar*
"e(o!o
LS
B
18
38
18 168
A9 co1()*ador
":D
"e;i!*ro de De!(9a<a1ie*o
"e;i!*ro de
6a*ei1ie*o
%9a;
"H"
Los transmisores asncronos tambi$n son implementados mediante un re%istro de desplazamiento. 'n
circuito simplificado se muestra a continuacin.
El procesador car%a en paralelo el carcter a transmitir dentro de este re%istro %racias a la activacin de
la lnea S*ar%aS. 2urante este proceso la posicin menos si%nificativa y la ms si%nificativa del
re%istro, se escriben con 1 y & respectivamente 3 bit de start y bit de stop 6. Binalizado el proceso de
car%a 3 desactivacin de la lnea S*ar%aS y (abilitacin del reloj 6 se inicia el de desplazamiento, %racias
al cual primero sale el bit de start, despu$s los bits del dato y por "ltimo el bit de stop, atravesando,
todos ellos, un biestable llamado Lnea. Este biestable est conectado a la lnea de comunicaciones e,
inicialmente, se encuentra a & l%ico. 2espu$s de transmitir todos los bits del formato asncrono, el
biestable mantiene el bit de stop, de esta forma se ase%ura ue la salida se mantiene a & antes de ue se
inicie la transmisin de un nuevo dato. )simismo, se dispone de un flag asociado con el re%istro de
desplazamiento ue informa si este se encuentra vaco y, por tanto, disponible para aceptar un nuevo
dato.
7ara una transmisin lo ms eficiente posible en el sentido de aprovec(amiento del canal, o sea, ue
este se encuentre desocupado el menor tiempo posible, se realiza un doble SbufferingS en los
transmisores.
&.
El procesador no accede directamente al re%istro de desplazamiento. *ar%a el byte ue uiere enviar en
un re%istro de mantenimiento 3#+: ? 'ransmitter %olding egister ? o #: ? 'ransmitter egister ?6 el
cual transfiere automticamene su contenido al de desplazamiento cuando este se encuentra vaco.
)sociado al re%istro de transmisin, tambi$n existe un flag ue avisa de cundo este est disponible
para aceptar un nuevo dato.
..&.& '):#
'n dispositivo ue permite la transmisin y recepcin serie de informacin en modo asncrono se
denomina con las si%las '):# ? (niversal Async)ronous eceiver 'ransmiter? #ransmisor :eceptor
)sncrono 'niversal.
Externamente la '):# dispone de lneas de conexin con el microprocesador adems de las propias
de transmisin y recepcin. Estas son:
- bus de datos
&-
- lneas de direcciones,
- lneas de control y sincronismo
El bloue transmisor se compone de:
- un decodificador de formato de datos ue en funcin del n"mero de bits de datos 3K?56,
n"mero de bits de stop 3&?46 y el byte a transmitir, forma la !2' 3unidad de datos serie6 ue
se car%ar en el re%istro de desplazamiento del transmisor #!: 3'ransmitter ")ift
egister* para su transmisin. La !2' contiene el bit de start, los bits de datos, paridad y
bits de stop.
- :e%istro de mantenimiento de transmisin, #+:
- :e%istro de desplazamiento de transmisin #!:
- Bla% de #+:E 3 'ransmisor %olding egister Empty o buffer de transmisin vaco6 ue se
encuentra en un re%istro llamado :e%istro de estado de serializacin, !: 3 "tatus egister 6.
Este flag se desactiva cuando el microprocesador escribe un dato en el #+:.
- &lag de '"E 3 'ransmitter ")ift egister Empty o re%istro de desplazamiento vaco6, ue
se activa cuando el re%istro #!: se (a uedado vaco y ue se encuentra en el re%istro !:.
El bloue de recepcin consta de:
- re%istro de desplazamiento de recepcin :!: 3eceiver ")ift egister 6, ue almacena los bits
de la !2' ue se esperan recibir en funcin de los parmetros confi%urados de datos, stop y
paridad
- re%istro de mantenimiento de recepcin, :+: 3 eceiver %olding egister 6,
- Bla% :x:2L ue se encuentra en el re%istro !: ue y ue se activa en cada transferencia del
:!: al :+: *uando el re%istro :+: es ledo, el flag :x:2L se desactiva automticamente.
- En paralelo con la car%a del nuevo dato en el re%istro :+: y la activacin de :x:2L, se
actualizan unos bits ue informan sobre los posibles errores ocurridos en la recepcin. Estos
&K
BLOQUE DE T"A#S6ISIO#
bits son: overrun, framming error y parity error.
El %enerador de baudios pro%ramable %enera la temporizacin necesaria para los bloues transmisor y
receptor. La frecuencia de la se@al de reloj %enerada es &N veces mayor ue la velocidad con la se desea
transmitir y recibir los bits por el interfaz serie. Esta constituido por:
- un contador cuya se@al de reloj es la ue recibe la '):#
- un re%istro ue almacena un determinado n"mero depositado por el microprocesador
- un comparador cuya misin es determinar si el contenido del re%istro es i%ual o menor
ue el valor de cuenta del contador. !i obtenemos un i%ual como resultado de la
comparacin, se activa la puesta a cero del contador y se %enera un pulso de salida ue
es utilizado como se@al de referencia para el bloue de transmisin y de recepcin.
- 2entro de cada bloue, a su vez, existe un contador mdulo &N cuya salida act"a de
reloj de los re%istros de desplazamiento. 2e esta forma la se@al clMTtxTrx %enera los &N
ticks o pulsos de reloj por bit necesarios por el circuito de sincronizacin del bloue
receptor.
&N
BLOQUE DE "ECE&CI=#
La l%ica de interrupciones permite activar su lnea GC#:7# si suceden los si%uientes eventos
- la lle%ada de un nuevo dato
- el re%istro de transmisin se (a uedado vaco
- se (a producido un error
- cambio de estado en las lneas del modem, etc.
..4 #ransferencia serie sncrona
En este tipo de transferencia, adems de los bits de datos se reuiere el envo de la se@al de reloj. La
t$cnica ms fcil es la ue implementan muc(os microcontroladores en el denominado interfaz !7G
3!erial perip(eral interface6.
En el interfaz !7G existen dos dispositivos: el )</, ue %enera la se@al de reloj para la comunicacin
serie sncrona y el E!*L)=/. Los re%istros de desplazamiento del amo y del esclavo se confi%uran a
modo de re%istro circular, por lo ue se puede realizar una transmisin full?duplex siempre ue los dos
dispositivos ten%an informacin ue enviar simultneamente. La se@al de reloj %enerada por el )</
slo est activa el tiempo necesario para la transmisin de todos los bits del re%istro de desplazamiento.
En el interfaz !7G el re%istro de desplazamiento no es accesible directamente por la *7', sino ue se
&,
GE#E"ADO" DE BAUDIOS
T0i* > 16? Tc9@?Are;i!*roB
'0(!> %c9@4,16?Are;i!*roB-
accede a trav$s de un re%istro de mantenimiento. /bs$rvese ue a diferencia de la '):#, el mismo
re%istro de desplazamiento se utiliza tanto para transmisin como recepcin. Lo mismo ocurre con el
re%istro de mantenimiento ue es accedido por la *7'. )dems de los re%istros anteriores, existen
otros re%istros, dentro del interfaz, ue permiten la pro%ramacin del modo de funcionamiento del
mismo.
- :e%istro de control !7G 3!7G*:6: 2ispone de un conjunto de bits ue permiten
enmascarar o (abilitar las interrupciones, seleccin del orden de transmisin/recepcin
de bits 3primero el L!; o primero el <!;, despu$s los dems6, la frecuencia de reloj, la
polaridad del mismo, si el dispositivo act"a como amo o esclavo, etc.
- :e%istro de estado !7G3!7G!:6.2a informacin sobre el estado del interfaz, esto es, si el
fla% de peticin de interrupcin est activo o no, si se (a producido overrun, etc.
Existen otros dispositivos al%o ms complejos, ue al estilo de la '):#, disponen de dos canales
diferentes para transmisin y recepcin y en el ue no existe un amo ue cuenta los pulsos de reloj
necesarios para transmitir todos los bits del dato. 7ara estos dispositivos se plantea el problema de
saber cundo empieza el primer bit de un carcter.
En %eneral, la estructura de estos dispositivos es similar a las de la '):#, e incorporan un
mecanismo de identificacin de un carcter de sincronismo !LC. Este carcter de sincronismo se
enva al principio de cada transmisin serie, antes de cualuier octeto de datos. El receptor est
escuc(ando la entrada en cada ciclo de reloj, y compara el contenido del re%istro de desplazamiento
con el carcter de !LC. *uando se detecte la recepcin de un carcter !LC, el receptor sabe ue el
si%uiente bit ue se reciba se corresponde con el primero del octeto de datos, por lo ue ensambla de
5 en 5 los bits ue va recibiendo para formar el carcter ue deposita en el re%istro buffer de
recepcin. Este proceso continua (asta ue el procesador indiue al dispositivo ue ya (a terminado
la recepcin de caracteres o/y ue el dispositivo debe estar atento para la deteccin de otro carcter
de sincronismo.
Estos dispositivos tienen una estructura similar a las '):#, de (ec(o existen inte%rados ue
mezclan tanto la funcin sncrona como la asncrona 354K&6.
&5
La parte emisora y la parte receptora tienen entradas de reloj diferentes 3:x* y #x*6 y disponen de
dos re%istros de desplazamiento. Estos "ltimos, no son accesibles por la *7' directamente, sino a
trav$s de los re%istros de mantenimiento #+:,:+:.
Existe un re%istro de !LC ue permite seleccionar el tipo de carcter ue se emplea para la
sincronizacin de las '!:#. *uando se (abilita el transmisor sncrono, el carcter !LC se enva en
primer lu%ar, de forma automtica, antes de ue se enve el primer dato. *uando se (abilita el
receptor de la '!:#, este comienza automticamente en la fase de deteccin del carcter !LC, tras
el ue se comienza el proceso de ensamblado del octeto entrante y transferencia (acia el :+: para
su posterior lectura de la *7'. En muc(os sistemas se utiliza un se%undo re%istro de !LC ue
ase%ura una mayor eficacia en la deteccin del inicio de la trama.
La confi%uracin del modo de funcionamiento de la '!:# se especifica en los re%istros de control y
modo. En ellos se puede confi%urar el n"mero de bits de datos ue contiene cada octeto 3K,N,,,56 si
estos tienen paridad 3 y en caso afirmativo, el tipo de paridad6, el n"mero de caracteres de
sincronismo ue se utilizan, la (abilitacin o in(abilitacin del bloue de recepcin o de
transmisin, confi%uracin del modo b"sueda, etc.
El re%istro de estado contiene informacin del estado interno del dispositivo, esto es, si es buffer de
transmisin est vaco, si el buffer de recepcin est lleno, error de overrun, de paridad, etc.
&P
"e;i!*ro de 1odo
S+#
"e;i!*ro de co*ro9
"S"
TS"
"H"
TH"
"e;i!*ro de e!*ado
BUS DE DATOS
":C
T:C
T:D
":D
c9@

You might also like