Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos...

26
Estructura de Computadores Estructura de Computadores Módulo D. El subsistema de E/S Módulo D. El subsistema de E/S Tema 7. Interfaces de E/S programables Tema 7. Interfaces de E/S programables 1. Estructura y función del interfaz de E/S 2. Interfaces de E/S paralela 3. Fundamentos de la E/S serie 4. Interfaces de E/S serie

Transcript of Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos...

Page 1: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 2: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 3: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 4: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 5: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 6: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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)

Page 7: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 8: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 9: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 10: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 11: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 12: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

NO

Page 13: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 14: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 15: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 16: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 17: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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 =

Page 18: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 19: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 20: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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)

Page 21: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 22: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 23: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 24: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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*

Page 25: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

Page 26: Estructura de Computadores Módulo D. El subsistema de E/S · ðCuando la CPU quiere recibir datos del periférico los lee desde el registro(s) de datos de entrada Ø Registro de

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

NO

¿TDR vacío?¿SR[1]=1?

NO

NO