Puertos de ES y Su Interfaz
Puertos de ES y Su Interfaz
Puertos de ES y Su Interfaz
Tema 8.
PUERTOS DE E/S Y SU
INTERFAZ.
Decodificacin de la memoria
Conceptos bsicos en la interfaz de memoria.
La funcin principal de la interfaz de
memoria es la de permitir al procesador leer
o escribir en un registro dado de la
memoria. Para realizar esta operacin, el
microprocesador deber:
1. Ser capaz de activar el circuito integrado
2. Identificar el registro que se va a acceder
3. Habilitar el buffer apropiado
Decodificacin de dispositivos
de E/S
Cmo se realiza la lectura de puertos con el 8086?.
De acuerdo al diagrama de tiempos del ciclo de
bus. Para leer los dispositivos de E/S el 8086
realiza los siguientes pasos:
1. Coloca una direccin de 16 bits en el bus de
direcciones
2. Coloca la seal M/IO en 0 para indicar que
se trata de una direccin de dispositivos de
E/S.
3. Coloca la seal RD en 0 para indicar que se
requiere una operacin de lectura.
Decodificacin de la Memoria
Es importante recordar que el 8086 utiliza las seales
BHE (habilitacin del bus alto) y Ao (bit de direccin Ao)
para seleccionar uno o ambos bancos de puertos de
acuerdo al tamao de la instruccin que se est
ejecutando para la transferencia de datos fuera del
procesador y considerando la siguiente tabla.
BHE
0
0
1
1
Ao
0
1
0
1
Funcin
Habilitacin de ambos bancos 16 bits (D15-D0)
Habilitacin banco alto 8 bits direccin non (D15-D8)
Habilitacin banco bajo 8 bits direccin par (D7-D0)
No se habilita ningn banco
2.
3.
4.
COMUNICACIN Serie/Paralelo
Paralelo
Transmite los datos a travs de n lneas de
datos
n depende del tamao de datos que se
manejen: 8 bits, 16 bits, 32 bits
Ms rpido.
En cortas distancias resulta ms efectivo
Los datos a transmitir no necesitan pretratamiento
A largas distancias resulta ms costoso por la
mayor disposicin a generar errores
COMUNICACIN Serie/Paralelo
Serie
82C55A
Interfaz E/S de propsito
general que conecta
perifrcios con el bus del
microprocesador
Realiza tareas de
buffering y latching
Programable por
software
Utilizado como interfaz
de teclado, puerto paralelo.
82C55A
82C55A
82C55A
Palabra de
Programacin
MOV AL,________
OUT _____,AL
82C55A
82C55A
82C55A
82C55A
82C55A
82C55A
82C55A
82C55A
COMUNICACIN Serie/Paralelo
Paralelo
Transmite los datos a travs de n lneas de datos
n depende del tamao de datos que se manejen: 8 bits, 16 bits, 32
bits
Ms rpido.
En cortas distancias resulta ms efectivo
Los datos a transmitir no necesitan pre-tratamiento
A largas distancias resulta ms costoso por la mayor disposicin a
generar errores
Serie
Transmiten los datos a travs de 1 nica lnea de datos con
independencia del formato. La transmisin de bits es uno detrs de
otro sobre la misma lnea.
Mucho menos costoso
nmero reducido de lneas
Menor disposicin a errores
Los datos necesitan ser serializados/deserializados
Se requiere un protocolo de transmisin
CONCEPTOS BASICOS DE
TRANSMISIN SERIAL
Los conceptos bsicos concernientes al modo
de E/S serial pueden clasificarse en las
siguientes categoras.
Requerimientos de interface.
Formatos de Entrada/Salida serial.
Chequeo de error en comunicacin de
datos.
Estndares en E/S serial
Formato asncrono
Formatos Serie
FORMATO Serie
Sncrono
La comunicacin
sncrona exige al menos
dos lneas: reloj, datos
Mejora la tasa de
transferencia porque
reduce la relacin de
bits de protocolo/bits
de datos.
Los datos se transmiten
por bloques
Lo que distingue a los
protocolos es los bytes
de control que utilizan
Interfaces asncronas
Es de crucial
importancia mantener
la sincronizacin entre
ambos comunicantes
Puede ser necesario la
introduccin de
mtodos de codificacin
que aseguren la
sincronizacin
Formato
Sncrono
Asncrono
Formato de datos
Grupo de caracteres
Un caracter a la vez
Velocidad
20 K bits/segundo o menor
Informacin de la Trama
Caracteres de Sincrona se
envan con cada grupo
Implementacin
Hardware
Hardware y Software
Direccin de datos
Simplex:
Full Duplex.
Es el mtodo de comunicacin ms aconsejable, puesto que en todo momento la
comunicacin puede ser en los dos sentidos posibles simultneamente. El
ejemplo tpico sera el telfono.
VELOCIDAD DE TRANSMISION
En transmisin serial el
receptor debe activar la
recepcin de bits a la
misma velocidad que el
transmisor, de otra
manera el receptor no
sera capaz de detectar la
diferencia entre dos 0s o
1s consecutivos.
La velocidad a la cual los
bits son transmitidos
(bits/seg) se conoce
como baud, sin
embargo, tcnicamente
esta unidad se define
como el nmero de
cambios de seal /seg.
Esquema de codificacin:
Es la correspondencia entre los elementos de
datos (bits) y los elementos de seal
(smbolos). El esquema de codificacin puede
mejorar las presentaciones de la transmisin.
Un criterio es la sincronizacin que permite
determinar el principio y el fin de cada bit. Lo
cual se puede lograr al transmitir una seal de
reloj por separado, pero resulta costoso.
La sincronizacin puede ir incluida en el propio
esquema de codificacin. Ejemplo codificacin
Manchester.
Esquema de codificacin:
Codificacin
Manchester
Codificacin NRZ
( no retorno a cero)
Transicin
en
medio de cada
periodo
La transicin sirve
para la sincrona.
La transicin de
un nivel bajo a uno
alto representa un
uno
La transicin de
un nivel alto a uno
bajo representa un
0
Dos
voltajes
distintos para 0 y 1
Voltaje
constante
para el intervalo
Unipolar: 0 volts
para 0 lgico y V
volts para 1 lgico.
Bipolar: -V volts
para 0, +V volts
para 1
Qu es RS-232?
RS-232 (Estndar ANSI/EIA-232) es
el conector serial de las PCs IBM y
compatibles. Se ha utilizado para una
gran variedad de propsitos, como
conectar un ratn, impresora o
mdem, as como instrumentacin de
medicin. Gracias a las mejoras que
se han ido desarrollando en las lneas
de transmisin y en los cables,
existen aplicaciones en las que se
aumenta el desempeo de RS-232 en
lo que respecta a la distancia y
velocidad del estndar. RS-232 est
limitado a comunicaciones de punto a
punto entre los dispositivos y el
puerto serial de la computadora. El
hardware de RS-232 se puede utilizar
para comunicaciones seriales en
distancias de hasta 50 pies.
Qu es RS-422?
RS-422 (Estndar EIA RS-422-A) es el conector
serial utilizado en las computadoras Apple de
Macintosh. RS-422 usa seales elctricas
diferenciales, en comparacin con seales
referenciadas a tierra como en RS-232. La
transmisin diferencial, que utiliza dos lneas para
transmitir y recibir, tiene la ventaja que es ms
inmune al ruido y puede lograr mayores
distancias que RS-232. La inmunidad al ruido y la
distancia son dos puntos clave para ambientes y
aplicaciones industriales.
Estndar RS-232
Estndar RS-232
RS-232
Acoplamiento
de voltajes
TRANSMISION SERIAL
Chequeo de Errores
Paridad.
Checksum
Chequeo de Redundancia Cclica
(CRC)
Chequeo de errores:
PARIDAD
Paridad.
Se aade un
bit a los bits
de datos,
llamado bit de
paridad que
se elige de
forma tal que
el nmero
total de 1 sea
siempre par o
impar de
acuerdo a la
paridad
seleccionada.
Chequeo de errores:
Checksum
Chequeo de errores:
Checksum
Proceso
El proceso para calcular la paridad de bloque es el siguiente:
Los caracteres a transmitir se agrupan en bloques de n filas y m
columnas
Se calcula el bit de paridad de cada fila y se aade al principio (o al
final, segn convenio) de la fila
Se calcula el bit de paridad de cada columna y se aade al principio (o
al final, segn convenio) de la columna
El bloque final a transmitir tendr por tanto una fila y una columna
ms que el original.
La nueva columna estar formada por los bits de paridad horizontal de
todas las filas
La nueva fila estar formada por los bits de paridad vertical de todas
las columnas.
Adicionalmente se emplea un bit de paridad cruzada que se calcula a
partir de los bits de paridad de filas y columnas.
Los chequeos de paridad horizontal y vertical se usan para detectar y
corregir los posibles errores que se puedan producir durante la
transmisin de datos.
Chequeo de errores:
Chequeo de errores:
Chequeo de redundancia cclica
La tcnica se basa en relaciones matemticas de polinomios, se utiliza en comunicacin
de datos sncrona. Un conjunto de datos puede representarse como un polinomio el
cual es dividido por un polinomio constante conocido como polinomio generador. El
residuo de la divisin (CRC) se enva junto con el conjunto de datos como chequeo de
error. El receptor realiza la divisin del polinomio (datos mas el CRC) entre el polinomio
generador y verifica el residuo para detectar errores en la transmisin conforme al
siguiente procedimiento.
1. Un conjunto de bits de datos se puede representar como:
M(x) = bnX0 + bn-1X1 +. . . +b0Xn ,
donde
b0 = bit menos significativo
bn = bit ms significativo
por ejemplo, el polinomio del nmero hexadecimal 8AH (10001010) es
M(x) = 1X0 + 0X1 +0X2 +0X3 +1X4 +0X5 +1X6 +0X7
M(x) = 1X0 + 1X4 +1X6 = X6+ X4+ 1
2. Asumiendo que la longitud del cdigo CRC es de cuatro bits, en las transmisiones de las
redes actuales el polinomio es de grado 16. Para obtener la divisin, primero, el
polinomio se multiplica por el grado del polinomio generador (en el ejemplo x4, ver
paso 3) y, posteriormente se divide entre el polinomio generador G(x). La formula es:
M(x) * X 4 =Q(x) + R(x)
G(x)
Donde Q(x) es el cociente obtenido por la aritmtica de mdulo 2 y R(x) es el residuo.
Chequeo de errores:
Chequeo de redundancia cclica
2. Asumiendo que la longitud del cdigo CRC es de grado 4, en las transmisiones de las
redes actuales el polinomio es de grado 16. Para obtener la divisin, primero, el
polinomio se multiplica por el grado del polinomio generador (en el ejemplo x4, ver
paso 3) y, posteriormente se divide entre el polinomio generador G(x). La formula es:
M(x) * X 4 =Q(x) + R(x)
G(x)
Donde Q(x) es el cociente obtenido por la aritmtica de mdulo 2 y R(x) es el residuo.
3. Considerando como polinomio generador: G(x) = X 4+ 1, tenemos:
M(x) * X 4 = X10+ X8+ X 4 = (X6+ X4+ X2) + X2
G(x)
X4+ 1
cociente Q(x) residuo R(x)
4. Este residuo se suma al polinomio modificado
M(x) * X 4 + R(x) = X10+ X8+ X 4+ X2 y es transmitido como:
X10
1
0
D1 D2
X8
X4
0
1
0
0
0
1
0
D0
D3 D4 D5 D6 D7 D8
Dato = 8AH
El flujo de bits de datos transmitido incluye el byte
los bits del CRC obtenido que se colocan al final.
X2
1
D9
0
D10
0
D11
Chequeo de errores:
Chequeo de redundancia cclica
5. El receptor divide el
polinomio transmitido
entre G(x), y si el residuo
es 0, esto indica que no
existi error (divide X10+
X8+ X4+ X2 entre X4+ 1 y
checa el resultado).
(Nota: el polinomio generador
de la CCITT es
G(x)= x16 + x12 + x5 + 1)
DDSR (bit MSR(1)) indica si -DSR ha cambiado desde la ltima lectura del MSR. Cuando DSR est activo el modem indica que est listo para intercambiar datos con el 8250; ello
depende del estado del DCE (Data Communications Equipment) local y no implica que
haya comunicacin con la estacin remota.
DTR:Data Terminal Ready. Lnea de salida que puede activarse (poner a 0) escribiendo un
1 en MCR(0), y desactivarse escribiendo un 0 en dicho bit o ante la activacin del pin MR.
Con -DTR activo se indica al DCE que el 8250 puede recibir datos. En algunas
circunstancias, esta seal se usa como LED de 'power on'. Si est inactivo, el DCE
desconecta el modem del circuito de telecomunicaciones.
RTS:Request To Send. Lnea de salida que habilita el modem. Se activa (poner a 0)
escribiendo un 1 en MCR(1). Esta seal se pone en alto en respuesta a MR. -RTS indica al
DCE que el 8250 tiene un dato listo para transmitir. En la modalidad half-duplex, esta
seal se utiliza para controlar la direccin de la lnea.
BAUDOUT:Esta lnea de salida contiene una seal de reloj 16 veces mayor que la
frecuencia usada para transmitir. Equivale a la frecuencia de entrada en el oscilador
dividida por el BRG. La estacin receptora podra emplear esta seal conectndola a RCLK
(para compartir el mismo reloj).
OUTx:Estas dos salidas de propsito general se pueden activar (poner a 0) escribiendo un
1 en MCR(2) y MCR(3). Son desactivadas por la seal MR. En el modo lazo (LOOP o bucle),
estn tambin inactivas.
RI:Ring Indicator. Esta lnea de entrada indica si el modem ha detectado que llaman por
la lnea y puede consultarse en MSR(6). El bit TERI (MSR(2)) indica si esta lnea ha
cambiado desde la ltima lectura del MSR. Si las interrupciones estn habilitadas (IER(3)
activo) esta patilla provoca una interrupcin al activarse. -RI permanece activo durante el
mismo intervalo de tiempo que la zona activa del ciclo de llamada e inactivo en los
intervalos de la zona inactiva (o cuando el DCE no detecta la llamada). El circuito no se
corta por culpa de -DTR.
A2
A1
A0
MODO
NOMBRE
Dir.PC
SIGNIFICADO
RBR
3F8H
THR
3F8H
R/W
IER
3F9H
IIR
3FAH
R/W
LCR
3FBH
R/W
MCR
3FCH
R/W
LSR
3FDH
R/W
MSR
3FEH
R/W
SCR
3FFH
R/W
DLL
3F8H
R/W
DLM
3F9H
Para programar al 8250 primero se debe enviar las palabras para seleccionar
la velocidad de transmisin, lo cual se realiza en los registros DLL y DLM, sin
embargo como estos registros se encuentran multiplexados a travs del bit
DLAB (bit 7 del registro LCR) primero debemos poner a 1 dicho bit.
3F9H-3FAH-3FBH
3FCH
3FDH
3FEH-3FFH--
MOV DX,3FBH
MOV AL, 80H
OUT DX,AL
;Velocidad de Transmisin.
;Para programar la velocidad a 9600 baudios
MOV DX,3F8H
MOV AL,12
OUT DX,AL
MOV DX,3F9H
MOV AL,00
OUT DX,AL
;Programacin de la trama
MOV DX, 3FBH
MOV AL,00001111B
OUT DX,AL
; Subrutina de Interrupcin
SUBINT PROC
MOV DX,3FAH
IN AL,DX
CMP AL,04
JE RECIBIR
MOV AL,DATO
MOV DX,3F8H
OUT DX,AL
JMP SALIR
RECIBIR: MOV DX,3F8H
IN AL,DX
SALIR: IRET
SUBINT ENDP
; Subrutina de Interrupcin
SUBINT PROC
MOV DX,3FAH
IN AL,DX
CMP AL,04
JE RECIBIR
TRANSMITIR: MOV AL,DATO
MOV DX,3F8H
OUT DX,AL
JMP SALIR
RECIBIR: MOV DX,3F8H
IN AL,DX
SALIR: IRET
SUBINT ENDP
Programacin 8251A
;Palabra de Modo basura
MOV AL,XX
OUT CTRL,AL
;Palabra de Comando con RESET
MOV AL,40H
OUT CTRL,AL
;Palabra de Modo
;2bits paro,sin paridad,7 bits
;factor 1
MOV AL,11X01001B
OUT CTRL,AL
;Palabra de comando
MOV AL,
OUT CTRL,AL
Programacin 8251A
;Palabra de Modo basura
MOV AL,XX
OUT CTRL,AL
;Palabra de Comando con RESET
MOV AL,40H
OUT CTRL,AL
;Palabra de Modo
;2bits paro,sin paridad,7 bits
;factor 1
MOV AL,11X01001B
OUT CTRL,AL
;Palabra de comando
MOV AL,X0X101X1B
OUT CTRL,AL
Programacin 8251A
POLEO
;Palabra de Modo basura
MOV AL,XX
OUT CTRL,AL
;Palabra de Comando con RESET
MOV AL,40H
OUT CTRL,AL
;Palabra de Modo:2bits paro, sin
; paridad,7 bits factor 1
MOV AL,11X01001B
OUT CTRL,AL
;Palabra de comando
MOV AL,X0X101X1B
OUT CTRL,AL
;Poleo Transmisin
XX: IN AL,CTRL
AND AL,01
JZ XX
;-----------------------TX: MOV AL, DATO
OUT PTO_DATOS,AL
;Poleo Recepcin
YY: IN AL,CTRL
AND AL,02
JZ YY
;-----------------------RX: IN AL,PTO_DATOS
Programacin 8251A
INTERRUPCIONES
;CODIGO CAMBIO DE VECTOR TX
;CODIGO CAMBIO DE VECTOR RX
;Palabra de Modo basura
MOV AL,XX
OUT CTRL,AL
;Palabra de Comando con RESET
MOV AL,40H
OUT CTRL,AL
;Palabra de Modo:2bits paro, sin
; paridad,7 bits factor 1
MOV AL,11X01001B
OUT CTRL,AL
;Palabra de comando
MOV AL,X0X101X1B
OUT CTRL,AL
.
.
.
;Subrutina de TX
SUB_TX PROC
MOV AL,DATO
OUT PTO_DATOS,AL
IRET
SUB_TX ENDP
;Subrutina de RX
SUB_RX PROC
IN AL, PTO_DATOS
IRET
SUBRX ENDP