Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos...
-
Upload
trinhkhanh -
Category
Documents
-
view
217 -
download
0
Transcript of Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos...
1
Estructura de ComputadoresEstructura de Computadores
Módulo D. El subsistema de E/SMódulo D. El subsistema de E/S
Tema 7. Interfaces de E/S programablesTema 7. Interfaces de E/S programables
1. Estructura y función del interfaz de E/S 2. Interfaces de E/S paralela3. Fundamentos de la E/S serie4. Interfaces de E/S serie
2
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Repaso de conceptos
⌦ Los dispositivos periféricos se conectan al computador a través de un INTERFAZ de E/SØ Interfaz = Controlador = Adaptador = Tarjeta de E/S
⌦ Funciones del interfaz de E/S Ø Interpretar las órdenes que recibe de la CPU y transmitirlas al periférico
Ø Controlar la transferencia de datos entre la CPU y el periféricoð Conversión de formatos y/o niveles eléctricos
ð Adaptar la diferencia de velocidades entre CPU y periférico (mediante buffers de almacenamiento)
Ø Informar a la CPU del estado del periférico
8 0 8 5
8085
INTERFAZ PERIFÉRICOConexión
con periféricos
BUS Sistemao de E/S
CPU
CPU
1. Estructura y función del interfaz de E/S1. Estructura y función del interfaz de E/S
Ejemplo conversión de formatos
Dat
os
en e
l per
ifér
ico
ANALÓGICOS
DIGITALES
SERIE
PARALELO
Tipo de conversión
E: conversión A/DS: conversión D/A
E: conversión S/PS: conversión P/S
E: --S: --
Esquema de conexión CPU-interfaz-periférico
3
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Estructura general de un interfaz de E/S
⌦ Un interfaz de E/S se está constituido de 3 elementos básicosØ Líneas de comunicación con la CPU
ð Permiten a la CPU comunicarse con el interfaz
Ø Líneas de comunicación con el periféricoð Permiten al interfaz comunicarse con el periférico
Ø Registros del interfazð Permiten a la CPU programar el interfaz, consultar el estado y enviar o recibir datos hacia/desde el periférico
REGISTROCONTROL
REGISTROESTADO
DECODIF.DIR
BUSDIR
LOGICACONTROL
REGISTRODATOS
ENTRADA
REGISTRODATOSSALIDA
BUSDATOS
CS*
RS
R/W*
SAL. Datos
ENT. Datos
SAL Control
ENT Control
IRQ*
CPU
Periférico
Bus del sistema o de E/S
Interfaz
1. Estructura y función del interfaz de E/S1. Estructura y función del interfaz de E/S
4
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Estructura general de un interfaz de E/S (cont.)⌦ Registros del interfaz
Ø Registro de datos de salidað Cuando la CPU quiere enviar datos al periférico los escribe sobre el registro(s) de datos de salida
Ø Registro de datos de entradað Cuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada
Ø Registro de estado ð Cuando la CPU quiere conocer el estado del periférico, lo hace leyendo el registro de estado:
Ø Registro de control ð Cuando la CPU quiere transmitir una orden al periférico lo hace escribiendo en el registro de control
⌦ Líneas de comunicación con la CPUØ Líneas de datos
ð Para transferencia de datos entre la CPU y el interfazð Programación del registro de control y lectura del registro de estado
Ø Línea R/W*ð Para especificar el tipo de operación (lectura o escritura)
Ø Línea CS* (Chip Select) y RS (Register Select)ð Para seleccionar el interfaz y acceder a un registro particular del mismoð Normalmente se conectan al bus de direcciones (mediante un descodificador en el caso de CS*)
Ø Línea IRQ*ð Para petición de interrupción cuando el periférico está listo para transmitir/recibir
⌦ Líneas de comunicación con el interfazØ Líneas de datos de entrada y salida
ð Para transferencia de datos entre el interfaz y el periféricoØ Líneas de control de entrada y salida
ð Para transferencia de órdenes al periférico (salida control) y consultar su estado (entrada control)
1. Estructura y función del interfaz de E/S1. Estructura y función del interfaz de E/S
5
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Tipos de interfaces de E/S⌦ De propósito general: Permiten conectar distintos tipos de dispositivos al
computadorØ Interfaces de E/S paralela
ð Para conectar dispositivos que realizan E/S paralela (reciben o transmiten varios bits de forma simultánea)ð Ejemplos: MC6821 PIA, R6522 VIA, MC68320 PI/T, i8255 PPI
Ø Interfaces de E/S serieð Para conectar dispositivos que realizan E/S serie ð Ejemplos: MC6850 ACIA, R6552 DACIA, MC6854 ADLC, UART i8250, USART i8251
⌦ De propósito específico: Diseñados para conectar un tipo particular de periféricoØ Controladores de teclado/display
ð Ejemplos: i8279Ø Controladores de disco y disquete
ð Ejemplos: MC6824, i8271, i82062Ø Controladores de red de área local
ð Ejemplos: i82501 (controlador Ethernet)Ø Conversores A/D-D/A
ð Ejemplos: AD7824 Ø etc.
1. Estructura y función del interfaz de E/S1. Estructura y función del interfaz de E/S
6
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Interfaz PIA MC6821 (Peripheral Interface Adaptor)
2. Interfaces de E/S paralela2. Interfaces de E/S paralela
⌦ Interfaz paralelo diseñado para sistemas basados en el MC6800 (bus síncrono)⌦ Compatible con el MC68000
Organización de la PIA⌦ Registros de datos (ORA y ORB)
Ø Se utilizan como registro de entrada o de salida de datos, según como estén programadas las líneas de comunicación con el periférico (PA7-PA0 y PB7-PB0)
⌦ Registros de sentido de datos (DDRA y DDRB)Ø Se utilizan para programar las líneas de comunicación con
el periférico (PA7-PA0 y PB7-PB0)ð Si DDRA[i] = 0 ⇒ PAi actúa como línea de entradað Si DDRA[i] = 1 ⇒ PAi actúa como línea de salida
(El mismo funcionamiento para el puerto B)
⌦ Líneas de control (CA1-CA2, CB1-CB2)Ø Se utilizan como líneas de control de entrada y salida
ð Para examinar el estado de los periféricos ð Para generar señales de control sobre los mismos
⌦ Registros de control (CRA, CRB)Ø Se utilizan para programar el funcionamiento de las líneas
de control (CA1-CA2, CB1-CB2)Ø Permiten capacitar/decapacitar localmente las
interrupciones del interfazØ También contienen información de estado
⌦ Dispone de dos puertos paralelos de 8 bits cada uno (Puerto A y Puerto B)
⌦ Las líneas de comunicación con el periférico (PA7-PA0, PB7-PB0), pueden programarse como entradas o como salidas
PA7-PA0
R/W*
CS0
RS0
RS1
CS1
CS2*
D7-D0
DDRA
ORA
CRA
DDRB
ORB
CRB
CA1
CA2
PB7-PB0
CB2
CB1
Puerto A
Puerto B
IRQA*
IRQB*
E (reloj)
7
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Selección de registros en la PIA
2. Interfaces de E/S paralela2. Interfaces de E/S paralela
⌦ Para acceder a cualquier registro de la PIA deben estar activadas las líneas de Chip SelectØ CS0-CS1 se activan a altaØ CS2* se activa a baja
⌦ Para seleccionar un registro particular se usan las líneas de Register SelectØ RS1 selecciona entre el puerto A o el puerto B
ð Si RS1 = 0 ⇒ acceso a puerto Að Si RS1 = 1 ⇒ acceso a puerto B
Ø RS0 selecciona entre los registros de datos del puerto (ORx, DDRx) y registro de control (CRx)ð Si RS0 = 0 ⇒ acceso a registros de datos (ORx o DDRx)
(Para discriminar entre el registro ORx y DDRx se utiliza el bit 2 del registro de control CRx)ð Si RS0 = 1 ⇒ acceso a registros de control (CRx)
RS1 RS0 CRA2 CRB2 Registroseleccionado
0 0 0 x DDRA0 0 1 x ORA0 1 x x CRA1 0 x 0 DDRB1 0 x 1 ORB1 1 x x CRB
Acceso a puerto A
Acceso a puerto B
8
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Programación de la PIA
2. Interfaces de E/S paralela2. Interfaces de E/S paralela
⌦ La programación de la PIA se realiza a través de los registros de control CRA y CRBØ Tipo de transición a detectar por las líneas Cx1 y Cx2 (positiva o negativa) Ø Capacitación/descapacitación de interrupciones cuando se detecta la transición programadaØ Programación de Cx2 como salida para generar pulsos o señales de control específicas
Se activa cuando se detecta latransición programada por Cx1(activa IRQx* si está capacitada)
Se activa cuando se detecta latransición programada por Cx2(activa IRQx* si está capacitada)
Selección del accesoa DDRx o ORx
Programación de Cx1 (sólo entrada)⌦ CRx[1]: tipo de transición a detectar
CRx[1] = 0 ⇒ transición positivaCRx[1] = 1 ⇒ transición negativa
⌦ CRx[0]: Capacitación de IRQx*CRx[0] = 0 ⇒ IRQx* descapacit.CRx[0] = 1 ⇒ IRQx* capacitada
7 6 5 4 3 2 1 0
CRx Trans.Cx1 Program. Cx2 Program. Cx1DDRx
/ORxTrans.Cx2
CRx Modo Descripciónbit 5 bit 4 bit 3
1 0 0"Handshake"en lectura (A)
o en escritura (B)
Cx2 a alta cuando se produce unatransición programada por Cx1Vuelve a baja cuando se hace una lectura(A) o una escritura (B) del puerto
1 0 1 Salida pulsoCx2 a baja durante un ciclo después deuna lectura (A) o una escritura (B) delpuerto. Puede usarse para indicar alperiférico que se ha leído el dato
1 1 0 Salida manual Cx2 a baja (sigue a bit 3)1 1 1 Salida manual Cx2 a alta (sigue a bit 3)
Programación de Cx2 (línea de entrada/salida)⌦ CRx[5]: programa Cx2 como entrada o salida
CRx[5] = 0 ⇒ Cx2 actúa como entradaCRx[5] = 1 ⇒ Cx2 actúa como salida
Si Cx2 programada como salida
⌦ CRx[4]: tipo de transición a detectarCRx[4] = 0 ⇒ transición positivaCRx[4] = 1 ⇒ transición negativa
⌦ CRx[3]: Capacitación de IRQx*CRx[3] = 0 ⇒ IRQx* descapacitadaCRx[3] = 1 ⇒ IRQx* capacitada
Si Cx2 programada como entrada
9
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Ejemplo: conexión de una impresora paralela al MC68000 a través de la PIA
2. Interfaces de E/S paralela2. Interfaces de E/S paralela
DECODIF.DIR
AS*
LDS*
MC68000
VMA*
E
CS2*CS0
CS1
RS0
EN*
E
VPA*
A23-A3
D7-D0
RS1A2A1
MC6821
D7-D0
PIA
PA7-PA0
CA2
CA1
STB
ACK
D7-D0IMPRESORAPARALELA8 BITS
Puerto A
PB7-PB0
CB2
CB1
Puerto B
D7-D0
STB
ACK
carácter 1 carácter 2 carácter n
Protocolo de comunicación con la impresora(Handshake simple)
⌦ Líneas de datos de la impresora (D0-D7)Se conectan a las líneas PA0-PA7 (programadas como salidas)
⌦ Línea de orden de impresión (STB = Strobe)Se conecta a la línea CA2 (progr. como salida)Ø Un flanco positivo por STB indica a la
impresora que hay un nuevo carácter en el registro ORA que debe imprimir
⌦ Línea de respuesta de “dato impreso” (ACK)Se conecta a la línea CA1 (entrada)Ø La impresora genera un flanco positivo
por ACK cuando ha terminado de imprimir un carácter y está lista para el siguiente
Conexión de la PIA (puerto A) a la impresora
10
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
2. Interfaces de E/S paralela2. Interfaces de E/S paralela
⌦ Utilizamos el bus síncrono del MC68000 (ya que la PIA es un interfaz síncrono)
Ø E (señal de reloj) conectada al reloj de la PIA
Ø VMA* (Valid Memory Address) conectada a CS2*
⌦ Conectamos la parte baja del bus de datos (D0-D7) a las líneas de datos de la PIA
⌦ Elegimos direcciones impares para los registros de la PIA
Ø LDS* conectada a CS2*
Ø A23-A3 conectadas a CS1 a través de un descodificador (elegimos direcciones no usadas por la
memoria)
Ø A1-A2 conectadas a RS0-RS1
⌦ Conectamos VPA* a la salida del descodif. para que el MC68000 utilice ciclo de bus
síncrono (compatible con MC6800)
Conexión de la PIA al bus del MC68000
TRANSPARENCIA 24 TEMA 4
11
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
2. Interfaces de E/S paralela2. Interfaces de E/S paralelaPrograma de impresión a través de la PIA con E/S programada con espera de respuesta
⌦ Inicialización de la PIAØ 1.Programamos las líneas PA0-PA7 como salida: DDRA ← 11111111 = $FF (CRA[2] debe tener
el valor 0)Ø 2.Programación del registro de control CRA: CRA ← XX11X110 = $36Ø a) Programamos CA2 como salida manual (haciendo que siga al valor de CRA3) para generar la
señal STBð CRA[5] ← 1; CRA[4] ← 1
Ø b) Programamos para que CA1 detecte un pulso positivo (señal ACK) y descapacitamosinterrupciones
ð CRA[1] ← 1; CRA[0] ← 0
Ø c) CRA[2] ← 1 para que quede seleccionado el registro de datos ORA
⌦ Transmisión de un carácter a la impresoraØ 1. Enviar carácter a ORA (datos válidos en PA0-PA7)Ø 2. Generar manualmente pulso de Strobe
ð Poner CA2 a 0 (poniendo un 0 en CRA[3] ⇒ CRA ← XX110110 = $36)
ð Poner CA2 a 1 (poniendo un 1 en CRA[3] ⇒ CRA ← XX111110 = $3E)
Ø 3. Comprobar valor de CRA[7]Ø 4. Si CRA[7]=0 (impresora no ha generado el pulso positivo ACK) volver a 3
12
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
2. Interfaces de E/S paralela2. Interfaces de E/S paralelaPrograma ensamblador para control de una impresora paralelaa través de la PIA mediante E/S por espera de respuesta
ORA EQU $ee0001 Etiqueta de ORADDRA EQU $ee0001 Etiqueta de DDRA (=ORA)CRA EQU $ee0003 Etiqueta del registro CRAMAXCAR EQU 100 Máx. nº de caracteres del textoEOT EQU 20 Carácter ASCII de fin de texto*TEXTO DS.B MAXCAR Reservamos MAXCAR bytes* para el texto*INICIO MOVE.B #0,CRA Seleccionar DDRA (CRA[2] ← 0)
MOVE.B #$FF,DDRA Programar PA0-PA7 como salidasMOVE.B #$36,CRA Programar el registro CRAMOVEA.L #TEXTO,A0 Llevar dir. de comienzo del texto a A0
BUCLE MOVE.B (A0)+,D0 Leer carácter e incrementar A0 * para apuntar al siguiente carácter
CMP #EOT,D0 Comprobar si es el final de textoBEQ FIN Si es final de texto ⇒ vamos a FINMOVE.B D0,ORA Enviar carácter a impresoraMOVE.B #$36,CRA Generar señal STB ⇒ CA2 = 0MOVE.B #$3E,CRA Generar señal STB ⇒ CA2 = 1
LEE_CRA BTST.B #7,CRA Chequer CRA[7]BEQ LEE_CRA Si CRA[7] = 0 ⇒ carácter no impresoBRA BUCLE Si CRA[7] = 1 ⇒ siguiente carácter
FIN TRAP #15 FIN: Regresar al programa monitorDC.W $10
Programar PIA
Inicializar puntero del textoA0←#TEXTO
Leer siguiente carácterD0 ←(A0)+
Enviar carácter a impres.ORA ←D0
Generar pulso STBCRA ← #$36CRA ← #$3E
¿ACK activada?¿CRA[7]=1?
¿Final de texto?¿D0 = #EOT? FIN
NO
SÍ
NO
SÍ
13
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
Ejemplo: Programación de una impresoraEjemplo: Programación de una impresora
R/W*CLK
CS0CS1CS2*
RS0RS1
ORA
DDRA
CRA
0 0 0 0 0 0 0 01 1 1 1 1 1 1 1
0 0000000
1 1111111
0 0 1 1 0 1 0 0
1 0110100
Dato=10101010
1 0101001
00111110
10101010
00110110
1
1
0110100
0101001
1
1
0111100
0101001
CA2
CA1
14
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
2. Interfaces de E/S paralela2. Interfaces de E/S paralelaOtros interfaces paralelos compatibles con el MC68000
⌦ VIA R6522 (Vesatile Interface Adaptor)
Ø Interfaz paralelo diseñado para el MC6800 y compatible con el MC68000
Ø Similar a la PIA, aunque más versátil
ð Dos puertos de E/S de 8 líneas cada uno (puerto A y puerto B)
ð Dos contadores temporizadores de 16 bits cada uno (T1 y T2)
⌦ PI/T MC68230 (Parallel Interface/Timer)
Ø Interfaz paralelo diseñado para el MC68000
Ø Similar a la VIA, aunque con algunas características más avanzadas
ð Conexión directa al bus asíncrono del MC68000
ð Posibilidad de utilizar interrupciones vectorizadas o autovectorizadas
ð Capacidad para conexión a un DMAC
ð Tres puertos paralelos de 8 bits cada uno
ð Un contador/temporizador de 24 bits
ð Cuatro líneas de control programables como entradas o como salidas
15
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
3. Fundamentos de la E/S serie3. Fundamentos de la E/S serieComparación entre E/S paralela y E/S serie
⌦ E/S paralela Ø Utiliza varias líneas de comunicación a través de las cual se se envía varios bits de información de
forma simultáneaØ Es adecuada para conexión de dispositivos a distancias cortas, que requieran altas velocidades de
transmisiónð Conexión de elementos dentro de un computador mediante buses
ð Conexión de dispositivos externos a cortas distancias a través de un interfaz paralelo
Ø Problema de la E/S paralelað Para conectar dispositivos a distancias medias o largas resulta muy costosa
ð Redes de computadores
ð Los dispositivos de baja velocidad no aprovechan el potencial de la transmisión paralela
ð Teclados, ratones, modems, etc.
⌦ E/S serie Ø Utiliza una única línea de comunicación a través de las cual se se envían varios bits de información
de forma secuencialØ Es menos costosa que la E/S paralela
ð Adecuada para conexión de dispositivos a largas distancias
ð Adecuada para conexión de dispositivos de velocidad media o baja
Ø Modos de transmisión serieð Transmisión asíncrona
ð Transmisión síncrona
16
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
3. Fundamentos de la E/S serie3. Fundamentos de la E/S serieModo de transmisión serie asíncrona
⌦ El emisor y el receptor utilizan señales de reloj distintas
⌦ ProblemaØ Aunque utilicen la misma frecuencia, los relojes
del emisor y el receptor pueden estar desfasados
Ø Aunque ambos relojes estén perfectamente sincronizados, transcurrido un cierto tiempo tenderán a desincronizarse
⌦ SoluciónØ El receptor y el emisor resincronizan sus relojes al
inicio de cada carácter
Ø Con cada carácter se incluyen un bit de start y uno (o varios) bits de stop
ð Polaridad opuesta ⇒ provoca una transición al inicio de cada carácter
ð Esta transición es utilizada por el receptor para sincronizarse con el emisor
⌦ Es útil únicamente a bajas velocidades de transmisiónØ Desde unos pocos bps hasta varios Kbps
0 1 0 0 1 0 1 1 1 0 1
muestreosincronizado
muestreodesincronizado
0 1 0 0 1 0 1 1 1 0 1
0 1 0 0 1 0 1 1 1 1 0
datostransmitidos
Errores
1 1 0 1 0 0 0 1
STARTPARI(par) STOP
t
DATOS
muestreos enrecepción
Periodo1 bit
Caracter transmitido: $8B (10001011)
Punto mediobit deSTART
LSB MSB
car1 car2 car3 car4
Errores por desincronización de los relojes
Sincronización mediante bits de start y stop
17
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
3. Fundamentos de la E/S serie3. Fundamentos de la E/S serieModo de transmisión serie síncrona
⌦ El emisor y el receptor utilizan la misma señal de relojØ Puede utilizarse una línea independiente para transmitir la señal de reloj en paralelo con los datos
ð Mayor coste de la línea
Ø Puede codificarse la señal de reloj junto con los datos ð Codificación bipolar
ð Codificación Manchester
ð Codificación Manchester diferencial
ð Etc.
⌦ Es necesaria para transmisión serie a velocidades medias y altasØ Del orden de Mbps o Gbps
Codificaciónpor Nivel
CodificaciónManchester
Relojextraído
CódigoManchester:
0 1 1 1 0 11 0
0 =
1 =
18
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
⌦ Líneas TxD y RxDØ Para transmisión y recepción de datos
⌦ Líneas Hin y HoutØ Líneas de control o handshake para realizar los
protocolos de comunicación⌦ Registro de desplazamiento de transmisión
Ø Realiza la conversión serie/paralelo⌦ Registro de desplazamiento de recepción
Ø Realiza la conversión paralelo/ serie⌦ Generador de reloj
Ø Genera la señal de reloj de la transmisión y la recepción ⌦ Registro de estado
Ø Permite detectar el estado de las líneas de handshake de entradaØ Permite conocer el estado de los registros de recepción y transmisión (llenos o vacíos)
⌦ Registro de controlØ Permite programar los parámetros de la transmisión
ð Velocidad de transmisiónð Nº de bits de stop (1, 1.5 ó 2)ð Nº de bits por carácter (5, 6, 7 u 8)ð Tipo de paridad (par, impar, no paridad)
Ø Permite programar el funcionamiento de las líneas de handshake de salidaØ Permite capacitar/descapacitar localmente las interrupciones
3. Fundamentos de la E/S serie3. Fundamentos de la E/S serieEsquema de un interfaz serie asíncrono
Reg Control
Reg Estado
LógicaControl
Reg Desp. T
Reg Trans.
Reg Desp. R
Reg Recep.
Reloj Trans.
Reloj Recep.
GeneradorReloj
R/W*CS*RS
...
TxD
RxD
BusDatos
IRQ
Hin
Hout
19
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
⌦ Líneas TxD y RxDØ Para transmisión y recepción de datos
⌦ Líneas Hin y HoutØ Líneas de control o handshake para realizar
los protocolos de comunicación ⌦ Registro de desplazamiento de transmisión
Ø Realiza la conversión serie/paraleloØ Mezcla la señal de reloj junto con los datos
⌦ Registro de desplazamiento de recepciónØ Realiza la conversión paralelo/serie Ø Extrae la señal de datos a partir de la señal recibida
⌦ Extractor de relojØ Extrae la señal de reloj a partir de la señal recibida
⌦ Colas (FIFO) de transmisión y recepciónØ Para adaptar la velocidad de los dispositivos
⌦ Registro de estadoØ Permite detectar el estado de las líneas de handshake de entradaØ Permite conocer el estado de los registros y las colas de recepción y transmisión
⌦ Registro de controlØ Permite programar los parámetros de la transmisiónØ Permite programar el funcionamiento de las líneas de handshake de salidaØ Permite capacitar/descapacitar localmente las interrupciones
3. Fundamentos de la E/S serie3. Fundamentos de la E/S serieEsquema de un interfaz serie síncrono
Reg Control
Reg Estado
LógicaControl
Reg Desp. T
FIFOTrans.
Reg Desp. RFIFO
Recep.
Reloj Trans.
Reloj Recep.
GeneradorReloj
R/W*CS*RS
...
TxD
RxDBusDatos
IRQ
ExtractorReloj
Hin
Hout
20
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serie
Ejemplos de interfaces de E/S serie
⌦ Interfaces para comunicación serie asíncronaØ i8250 UART (Universal Asynchronous Receiver-Transmitter)
Ø MC6850 ACIA (Asynchronous Communications Interface Adapter)
Ø R6552 DACIA (Dual Asynchronous Communications Interface Adapter), compatible con Motorola6800/68000
⌦ Interfaces para comunicación serie síncronaØ i8273 (Programmable HDLC/SDLC Protocolo Controller)
Ø MC6852 ADLC (Advanced Data-Link Controller)
Ø MC6854 SSDA (Synchronous Serial Data Adapter)
⌦ Interfaces para comunicación serie síncrona y asíncronaØ i8251 USART (Universal Synchronous-Asynchronous Receiver-Transmitter)
Ø MC68661 EPCI (Enhaced Programmable Communications Interface)
21
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serieInterfaz MC6850 ACIA (Asynchronous Communications Interface Adapter)⌦ Interfaz de comunicación serie asíncrona diseñado para sistemas basados en el MC6800 (bus síncrono)
⌦ Compatible con el MC68000
Organización de la ACIA
R/W*
CS0
RS
CS1
CS2*
D7-D0TDR
RDR
CR
SR
RTS*
IRQ*
TxData
RxData
CTS*
DCD*
TxCLK
RxCLK
E
Línea de transmisión de datosLínea de recepción de datos
Señal de reloj de la transmisiónSeñal de reloj de la recepción
Señales de control de la transmisiónpara protocolos de comunicación (handshake)Son un subconjunto de las líneas del RS-232
⌦ Registro de transmisión de datos (TDR)Ø Para enviar datos a través de TxDØ Realiza la conversión paralelo/serie
⌦ Registro de recepción de datos (RDR)Ø Para leer los datos recibidos a través de RxDØ Realiza la conversión serie/paralelo
⌦ Registro de estado (SR)Ø Información del estado de los registros RDR y TDRØ Información del estado de las líneas de controlØ Información sobre situaciones de error
⌦ Registro de control (CR)Ø Programación de los parámetros de la transferenciaØ Programación de las líneas de controlØ Capacitación/descapacitación local de interrupciones
Líneas de comunicacióncon la CPU
Suelen conectarse al mismo oscilador
22
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serieSelección de registros de la ACIA
⌦ La ACIA dispone de 4 registros de 8 bits cada unoØ Dos registros de escritura: TDR y CR
Ø Dos registros de lectura: RDR y SR
⌦ Para acceder a cualquier registro de la ACIA deben estar activadas las líneas de Chip Select (CS)Ø CS0-CS1 se activan a alta
Ø CS2* se activa a baja
⌦ Para seleccionar un registro particular se usan las línea de Register Select (RS) y R/W*Ø Si RS = 0 ⇒ acceso a registros de control y estado
Ø Si RS = 1 ⇒ acceso a registros de transmisión y recepción
RS
0011
R/W*
0101
Reg. Selecc.
CR (escritura)SR (lectura)TDR (escritura)RDR (lectura)
Señales de control de la transmisión
⌦ Son un subconjunto de las líneas RS-232 para la conexión y control de un módem
⌦ RTS* (Request to Send) → Solicitud de envíoØ Línea de salida que activa la CPU cuando quiere solicitar permiso para enviar un dato al módem
⌦ CTS* (Clear to Send) → Preparado para el envíoØ Línea de entrada que activa el módem cuando está listo para recibir datos de la CPU (en respuesta a RTS)
y enviarlos a través de la línea telefónica
⌦ DCD* (Data Carrier Detect) → Detección de portadoraØ Línea de entrada que activa el módem cuando detecta datos de llegada por la línea telefónica
23
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serieProgramación de la ACIA
⌦ La programación de la ACIA se realiza a través del registro de control CR
Control de la TransmisiónCR[6] CR[5] Función
0 0 Descapacita interrupciones por TDR vacíoPone RTS* a baja
0 1 Capacita interrupciones por TDR vacíoPone RTS* a baja
1 0 Descapacita interrupciones por TDR vacíoPone RTS* a alta
1 1 Descapacita interrupciones por TDR vacíoPone RTS* a baja y TxD a baja
Control de la RecepciónCR[7] Función
0 Descapacita interrupciones por RDR lleno1 Capacita interrupciones por RDR lleno
CR[4] CR[3] CR[2] Función 0 0 0 7 bits datos + paridad par + 2 bits stop 0 0 1 7 bits datos + paridad impar + 2 bits stop 0 1 0 7 bits datos + paridad par + 1 bit stop 0 1 1 7 bits datos + paridad impar + 1 bit stop 1 0 0 8 bits datos + no paridad + 2 bits stop 1 0 1 8 bits datos + no paridad + 1 bit stop 1 1 0 8 bits datos + paridad par + 1 bit stop 1 1 1 8 bits datos + paridad impar + 1 bit stop
Selección del formato
Permite seleccionar los siguientes parámetros:• Nº de bits de datos (7 u 8)• Tipo de paridad (par, impar, no paridad)• Nº de bits de stop (1 ó 2)C R [ 1 ] C R [ 0 ] F u n c i ó n
0 0 D iv is ió n p o r 10 1 D iv is ió n p o r 1 61 0 D iv is ió n p o r 6 41 1 R e s e t A C I A
Selección de la frecuenciaPuede modificarse la frecuencia de transmisión o recepción dividiendo la frecuencia del oscilador por 1, 16 ó 64
CR
7
6
5
4
3
2
1
0
ControlRecepc.
Selecc.
Formato
ControlTransmis.
Selecc.
Frecuen-
cia
24
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serieRegistro de estado de la ACIA (SR)⌦ El registro de estado SR contiene información del estado de los registros RDR y TDR, información sobre
el valor de las líneas de control e información sobre situaciones de error
Bit
SR
7
6
5
4
3
2
1
0
IRQ
ErrorParidad
CTS*Activado
DCD*Activado
ErrorSolapam.Recepc.
ErrorFormato
TDRVacío
RDRLleno
• Se activa cuando se ha recibido un carácter completo (el carácter recibido está almacenado en RDR)• Se desactiva al leer RDR
• Se activa cuando se ha transmitido completamente el contenido de TDR • Se desactiva al escribir sobre TDR
• Indica si la línea DCD* está activada
• Indica si la línea CTS* está activada
Error de paridadSe activa cuando la paridad calculada no coincide con el valor del bit de paridad del carácter recibido
Error de solapamiento de la recepciónSe activa cuando se recibe un nuevo carácter por RxD antes de que el anterior haya sido leído
Error de formatoSe activa cuando se recibe un carácter con un formato erróneo (nº de bits de datos o de stop erróneo)
Flag de interrupción Refleja el estado de la línea de petición de interrupción IRQ*
25
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serieEjemplo: conexión de una impresora serie al MC68000 a través de la ACIA
⌦ Línea de transmisión(TxD)Ø Se conecta a la línea de recepción (RxD)
de la impresora⌦ Línea RTS* (Request to Send)
Ø Se conecta a la línea DSR* (Data SetReady) de la impresora
Ø Estará activada durante toda la transmisión (desde el primer carácter hasta el último)
⌦ Línea de CTS* (Clear to Send)Ø Se conecta a la línea DTR* (Data Terminal
Ready) de la impresoraØ La impresora activa esta línea cuando ha
impreso un carácter y está preparada para recibir el siguiente
Conexión de la ACIA a la impresora
DECODIF.DIR
AS*
LDS*
MC68000
VMA*
E
CS2*CS0
CS1
RS
EN*
E
VPA*
A23-A2
D7-D0
A1
MC68250
D7-D0
ACIA
TxD
CTS*
RTS*
DTR*
DSR*
RxDIMPRESORASERIE
Programación de la ACIA para realizar E/S programada con espera de respuesta
1. Control de recepciónNo permitir interrupciones por recepción ⇒ CR[7]=0
2. Control de transmisiónTransmisión sin interrupciones y activación de RTS*
⇒ CR[6]=0; CR[5]=03. Selección del formato
8 bits de datos, no paridad, 1 bit de stop ⇒ CR[4]=1; CR[3]=0; CR[2]=1
4. Selección de la frecuenciaDividir frecuencia por 16 ⇒ CR[1]=0; CR[0]=1
Valor de CR: %00010101 = $15
26
Estructura de ComputadoresEstructura de Computadores
Tema 7. Interfaces de E/S programables
4. Interfaces de E/S serie4. Interfaces de E/S serie
Programa ensamblador para control de una impresora seriea través de la ACIA mediante E/S por espera de respuesta
TDR EQU $ee0001 Etiqueta de TDRCR EQU $ee0003 Etiqueta de CRSR EQU $ee0003 Etiqueta de SR (=CR)MAXCAR EQU 100 Máx. nº de caracteres del textoEOT EQU 20 Carácter ASCII de fin de texto*TEXTO DS.B MAXCAR Reservamos MAXCAR bytes* para el texto*INICIO MOVE.B #$15,CR Programar ACIA
MOVEA.L #TEXTO,A0 Llevar dir. de comienzo del texto a A0BUCLE MOVE.B (A0)+,D0 Leer carácter e incrementar A0 * para apuntar al siguiente carácter
CMP #EOT,D0 Comprobar si es el final de textoBEQ FIN Si es final de texto ⇒ vamos a FINMOVE.B D0,TDR Enviar carácter a impresora
TEST_TDR BTST.B #1,SR Chequear SR[1] (TDR vacío)BEQ TEST_TDR Si SR[1] = 0 ⇒ TDR no vacío
TEST_CTS BTST.B #3,SR Chequear SR[3] (CTS* activado)BEQ TEST_CTS Si SR[3] = 0 ⇒ CTS* desactivadoBRA BUCLE Pasar a imprimir siguiente carácter
FIN TRAP #15 FIN: Regresar al programa monitorDC.W $10
Programar ACIACR ← #$15
Inicializar puntero del textoA0 ← #TEXTO
Leer siguiente carácterD0 ← (A0)+
Enviar carácter a impres.TRD ← D0
¿CTS* activado?¿SR[3]=1?
¿Final de texto?¿D0 = #EOT?
FIN
SÍ
NO
SÍ
¿TDR vacío?¿SR[1]=1?
SÍ
NO
NO