Documente Academic
Documente Profesional
Documente Cultură
contenidos
CPU
BUS Sistema o de E/S
INTERFAZ
PERIFRICO
Conexin con perifricos
Interfaz
ENT Control
ENT. Datos
BUS DATOS
CPU
BUS DIR DECODIF. DIR
SAL. Datos
CS* RS R/W*
LOGICA CONT ROL REGISTRO CONTROL
SAL Control
P e r i f r i c o
Un interfaz de E/S se est constituido de 3 elementos bsicos Lneas de comunicacin con la CPU
Permiten a la CPU comunicarse con el interfaz
Registro de estado
Cuando la CPU quiere conocer el estado del perifrico, lo hace leyendo el registro de estado:
Registro de control
Cuando la CPU quiere transmitir una orden al perifrico lo hace escribiendo en el registro de control
Lnea R/W*
Para especificar el tipo de operacin (lectura o escritura)
Lnea IRQ*
Para peticin de interrupcin cuando el perifrico est listo para transmitir/recibir
forma simultnea
Es adecuada para conexin de dispositivos a distancias cortas, que requieran altas velocidades de
transmisin
Conexin de elementos dentro de un computador mediante buses Conexin de dispositivos externos a cortas distancias a travs de un interfaz paralelo
E/S serie Utiliza una nica lnea de comunicacin a travs de las cual se se envan varios bits de informacin
de forma secuencial
Es menos costosa que la E/S paralela
Adecuada para conexin de dispositivos a largas distancias
Es til para conexin de dispositivos de velocidad media o baja Modos de transmisin serie
Transmisin asncrona Transmisin sncrona
Conversores A/D-D/A
Ejemplos: AD7824
etc.
Organizacin de la PIA
Dispone de dos puertos paralelos de 8 bits cada uno (Puerto A y Puerto B) Las lneas de comunicacin con el perifrico (PA7-PA0, PB7-PB0), pueden programarse como entradas o como salidas
IRQA* D7-D0
E (reloj)
R/W*
Se utilizan como registro de entrada o de salida de datos, segn como estn programadas las lneas de comunicacin con el perifrico (PA7-PA0 y PB7-PB0) Se utilizan para programar las lneas de comunicacin con el perifrico (PA7-PA0 y PB7-PB0) Si DDRA[i] = 0 PAi acta como lnea de entrada Si DDRA[i] = 1 PAi acta como lnea de salida (El mismo funcionamiento para el puerto B) Se utilizan como lneas de control de entrada y salida Para examinar el estado de los perifricos Para generar seales de control sobre los mismos Se utilizan para programar el funcionamiento de las lneas de control (CA1-CA2, CB1-CB2) Permiten capacitar/decapacitar localmente las interrupciones del interfaz Tambin contienen informacin de estado
Puerto A DDRA
ORA CRA
CA 1
CA2 PA7-PA0
CS0
CS1
CS2*
DDRB ORB
PB7-PB0 CB1
CB2
CS0-CS1 se activan a alta CS2* se activa a baja 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 0 0 0 1 1 1
RS0 0 0 1 0 0 1
CRA2 0 1 x x x x
CRB2 x x x 0 1 x
Acceso a puerto A
Acceso a puerto B
10
Tipo de transicin a detectar por las lneas Cx1 y Cx2 (positiva o negativa) Capacitacin/descapacitacin de interrupciones cuando se detecta la transicin programada Programacin de Cx2 como salida para generar pulsos o seales de control especficas
7 C Rx 6 5 4 3 2 1 0
Program. Cx2
Se activa cuando se detecta la transicin programada por Cx1 (activa IRQx* si est capacitada) Se activa cuando se detecta la transicin programada por Cx2 (activa IRQx* si est capacitada) Programacin de Cx2 (lnea de entrada/salida) CRx[5]: programa Cx2 como entrada o salida CRx[5] = 1 Cx2 acta como entrada CRx[5] = 0 Cx2 acta como salida Si Cx2 programada como entrada
CRx[4]: tipo de transicin a detectar
Programacin de Cx1 (slo entrada) CRx[1]: tipo de transicin a detectar CRx[1] = 1 transicin positiva CRx[1] = 0 transicin negativa CRx[0]: Capacitacin de IRQx* CRx[0] = 0 IRQx* descapacit. CRx[0] = 1 IRQx* capacitada Seleccin del acceso a DDRx o ORx
CRx[4] = 0 transicin positiva CRx[4] = 1 transicin negativa CRx[3]: Capacitacin de IRQx* CRx[3] = 0 IRQx* descapacitada CRx[3] = 1 IRQx* capacitada
1 1
1 1
0 1
11
PIA MC6821 Puerto A PA7-PA0 CA2 CA1 Puerto B PB7-PB0 CB2 CB1 D7-D0 STB ACK IMPRESORA PARALELA 8 BITS
ACK
Lneas de datos de la impresora (D0-D7) Se conectan a las lneas PA0-PA7 (programadas como salidas) Lnea de orden de impresin (STB = Strobe) Se conecta a la lnea CA2 (progr. como salida) Un flanco positivo por STB indica a la impresora que hay un nuevo carcter en el registro ORA que debe imprimir Lnea de respuesta de dato impreso (ACK) Se conecta a la lnea CA1 (entrada) La impresora genera un flanco positivo por ACK cuando ha terminado de imprimir un carcter y est lista para el siguiente
12
Utilizamos el bus sncrono del MC68000 (ya que la PIA es un interfaz sncrono) E (seal 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 lneas de datos de la PIA Elegimos direcciones impares para los registros de la PIA LDS* conectada a CS2* A23-A3 conectadas a CS1 a travs de un descodificador (elegimos direcciones no usadas por la memoria) A1-A2 conectadas a RS0-RS1 Conectamos VPA* a la salida del descodificador para que el MC68000 utilice interrupciones autovectorizadas
Programa de impresin a travs de la PIA con E/S programada con espera de respuesta Inicializacin de la PIA
1. Programamos las lneas PA0-PA7 como salida: DDRA 11111111 = $FF (CRA[2] debe tener el valor 0) 2. Programacin del registro de control CRA: CRA XX11X110 = $36 a) Programamos CA2 como salida manual (haciendo que siga al valor de CRA3) para generar la seal STB CRA[4] 1; CRA[3] 1 b) Programamos para que CA1 detecte un pulso positivo (seal ACK) y descapacitamos interrupciones CRA[1] 1; CRA[0] 0 c) CRA[2] 1 para que quede seleccionado el registro de datos ORA
13
Final de texto? D0 = #EOT? NO Enviar carcter a impres. ORA D0 Generar pulso STB CRA #$36 CRA #$3E
FIN
BUCLE *
MOVE.B MOVE.B MOVE.B MOVEA.L MOVE.B CMP BEQ MOVE.B MOVE.B MOVE.B BTST.B BEQ BRA TRAP DC.W
#0,CRA #$FF,DDRA #$36,CRA #TEXTO,A0 (A0)+,D0 #EOT,D0 FIN D0,ORA #$36,CRA #$3E,CRA #7,CRA LEE_CRA BUCLE #15 $10
FIN
14
distintas
Problema
Aunque utilicen la misma frecuencia, los relojes del emisor y el receptor pueden estar desfasados Aunque ambos relojes estn perfectamente sincronizados, transcurrido un cierto tiempo tendern a desincronizarse
Errores
Solucin
El receptor y el emisor resincronizan sus relojes al inicio de cada carcter Con cada carcter se incluyen un bit de start y uno (o varios) bits de stop
Polaridad opuesta provoca una transicin
LSB 1 1 0 1 0 0 0 Caracter transmitido: $8B (10001011)
MSB 1
START
DATOS
transmisin
15
Puede utilizarse una lnea independiente para transmitir la seal de reloj en paralelo con los datos
Mayor coste de la lnea
Cdigo Manchester: 0=
1=
Codificacin Manchester
Reloj extrado
16
Lneas TxD y RxD Para transmisin y recepcin de datos IRQ Lneas Hin y Hout Reg Estado Reg Trans. Lneas de control o handshake para realizar los Reg Desp. T protocolos de comunicacin Reg Control Reloj Trans. Bus Registro de desplazamiento de transmisin Datos Realiza la conversin serie/paralelo Reloj Recep. Registro de desplazamiento de recepcin R/W* Reg Desp. R CS* Lgica Realiza la conversin paralelo/ serie ... Reg Recep. Control RS Generador de reloj Genera la seal de reloj de la transmisin y la recepcin Registro de estado Permite detectar el estado de las lneas de handshake de entrada Permite conocer el estado de los registros de recepcin y transmisin (llenos o vacos) Registro de control Permite programar los parmetros de la transmisin Velocidad de transmisin N de bits de stop (1, 1.5 2) N de bits por carcter (5, 6, 7 u 8) Tipo de paridad (par, impar, no paridad) Permite programar el funcionamiento de las lneas de handshake de salida Permite capacitar/descapacitar localmente las interrupciones
Hin
TxD
Hout
17
Lneas TxD y RxD Para transmisin y recepcin de datos IRQ Lneas Hin y Hout Reg Estado FIFO Trans. Lneas de control o handshake para realizar los protocolos de comunicacin Reg Control Bus Registro de desplazamiento de transmisin Datos Realiza la conversin serie/paralelo FIFO Recep. R/W* Mezcla la seal de reloj junto con los datos CS* Lgica ... Registro de desplazamiento de recepcin Control RS Realiza la conversin paralelo/serie Extrae la seal de datos a partir de la seal recibida Extractor de reloj Extrae la seal de reloj a partir de la seal recibida Colas (FIFO) de transmisin y recepcin Para adaptar la velocidad de los dispositivos Registro de estado Permite detectar el estado de las lneas de handshake de entrada Permite conocer el estado de los registros y las colas de recepcin y transmisin Registro de control Permite programar los parmetros de la transmisin Permite programar el funcionamiento de las lneas de handshake de salida Permite capacitar/descapacitar localmente las interrupciones
Hin
RxD
Extractor Reloj
Hout
18
i8250 UART (Universal Asynchronous Receiver-Transmitter) MC6850 ACIA (Asynchronous Communications Interface Adapter) R6552 DACIA (Dual Asynchronous Communications Interface Adapter), compatible con Motorola 6800/68000
i8273 (Programmable HDLC/SDLC Protocolo Controller) MC6852 ADLC (Advanced Data-Link Controller) MC6854 SSDA (Synchronous Serial Data Adapter)
i8251 USART (Universal Synchronous-Asynchronous Receiver-Transmitter) MC68661 EPCI (Enhaced Programmable Communications Interface)
19
Organizacin de la ACIA
D7-D0 TDR RDR CS0 CS1 TxCLK RxCLK
TxData
RxData
Lnea de transmisin de datos Lnea de recepcin de datos Seal de reloj de la transmisin Seal de reloj de la recepcin Suelen conectarse al mismo oscilador
CS2* E R/W * RS CR SR
Seales de control de la transmisin para protocolos de comunicacin (handshake) Son un subconjunto de las lneas del RS-232
IRQ*
Para enviar datos a travs de TxD Realiza la conversin paralelo/serie Para leer los datos recibidos a travs de RxD Realiza la conversin serie/paralelo
Informacin del estado de los registros RDR y TDR Informacin del estado de las lneas de control Informacin sobre situaciones de error Programacin de los parmetros de la transferencia Programacin de las lneas de control Capacitacin/descapacitacin local de interrupciones
20
Dos registros de escritura: TDR y CR Dos registros de lectura: RDR y SR CS0-CS1 se activan a alta CS2* se activa a baja SR 0 0 1 1 R/W* 0 1 0 1 Reg. Selecc. CR (escritura) SR (lectura) TDR (escritura) RDR (lectura)
Para acceder a cualquier registro de la ACIA deben estar activadas las lneas de Chip Select (CS)
Lnea de salida que activa la CPU cuando quiere solicitar permiso para enviar un dato al mdem Lnea de entrada que activa el mdem cuando est listo para recibir datos de la CPU (en respuesta a RTS) y enviarlos a travs de la lnea telefnica Lnea de entrada que activa el mdem cuando detecta datos de llegada por la lnea telefnica
21
Seleccin del formato Permite seleccionar los siguientes parmetros: N de bits de datos (7 u 8) Tipo de paridad (par, impar, no paridad) N de bits de stop (1 2)
CR[4] 0 0 0 0 1 1 1 1 CR[3] CR[2] Funcin 0 0 7 bits datos + paridad par + 2 bits stop 0 1 7 bits datos + paridad impar + 2 bits stop 1 0 7 bits datos + paridad par + 1 bit stop 1 1 7 bits datos + paridad impar + 1 bit stop 0 0 8 bits datos + no paridad + 2 bits stop 0 1 8 bits datos + no paridad + 1 bit stop 1 0 8 bits datos + paridad par + 1 bit stop 1 1 8 bits datos + paridad impar + 1 bit stop
Selecc. Frecuencia
Selecc. Formato
CR
4
Control de la Transmisin
CR[6] 0 0
5 Control Transmis. 6
1 1
CR[5] Funcin 0 Descapacita interrupciones por TDR vaco Pone RTS* a baja 1 Capacita interrupciones por TDR vaco Pone RTS* a baja 0 Descapacita interrupciones por TDR vaco Pone RTS* a alta 1 Descapacita interrupciones por TDR vaco Pone RTS* a baja y TxD a baja ("break")
Control de la Recepcin
7 Control Recepc.
CR[7] Funcin 0 Descapacita interrupciones por RDR lleno 1 Capacita interrupciones por RDR lleno
22
Se activa cuando se ha recibido un carcter completo (el carcter 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 lnea CDC* est activada Indica si la lnea CTS* est activada Error de formato Se activa cuando se recibe un carcter con un formato errneo (n de bits de datos o de stop errneo) Error de solapamiento de la recepcin Se activa cuando se recibe un nuevo carcter por RxD antes de que el anterior haya sido ledo Error de paridad Se activa cuando la paridad calculada no coincide con el valor del bit de paridad del carcter recibido Flag de interrupcin Refleja el estado de la lnea de peticin de interrupcin IRQ*
SR
4
IRQ
23
ACIA MC68250
D7-D0 RS
TxD RTS*
CTS*
CS1
CS0 CS2* E
Lnea de transmisin(TxD) Se conecta a la lnea de recepcin (RxD) de la impresora Lnea RTS* (Request to Send) Se conecta a la lnea DSR* (Data Set Ready) de la impresora Estar activada durante toda la transmisin (desde el primer carcter hasta el ltimo) Lnea de CTS* (Clear to Send) Se conecta a la lnea DTR* (Data Terminal Ready) de la impresora La impresora activa esta lnea cuando ha impreso un carcter y est preparada para recibir el siguiente
24
Programa ensamblador
TDR CR SR MAXCAR EOT * TEXTO * * INICIO BUCLE * EQU EQU EQU EQU EQU DS.B $ee0001 $ee0003 $ee0003 100 20 MAXCAR Etiqueta de TDR Etiqueta de CR Etiqueta de SR (=CR) Mx. n de caracteres del texto Carcter ASCII de fin de texto Reservamos MAXCAR bytes para el texto Programar ACIA Llevar dir. de comienzo del texto a A0 Leer carcter e incrementar A0 para apuntar al siguiente carcter Comprobar si es el final de texto Si es final de texto vamos a FIN Enviar carcter a impresora Chequear SR[1] (TDR vaco) Si SR[1] = 0 TDR no vaco Chequear SR[3] (CTS* activado) Si SR[3] = 0 CTS* desactivado Pasar a imprimir siguiente carcter FIN: Regresar al programa monitor
FIN
MOVE.B MOVEA.L MOVE.B CMP BEQ MOVE.B BTST.B BEQ BTST.B BEQ BRA TRAP DC.W
#$15,CR #TEXTO,A0 (A0)+,D0 #EOT,D0 FIN D0,TDR #1,SR TEST_TDR #3,SR TEST_CTS BUCLE #15 $10
NO
TEST_TDR TEST_CTS
NO
FIN