Introducción a las Interfaces de entrada / salida.

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

Procesador El sistema computador se centra en un procesador Aparece la Entrada /Salida Pero un procesador es una piedra si no se comunica con el exterior.
SENTENCIAS SECUENCIALES
REGISTROS INTERNOS DEL PROCESADOR.
Fernando Escribano Pro 1º de Bachillerato
ORGANIZACIÓN COMPUTACIONAL
RESUMEN: Softmicro de 8 bits Xilinx
Resolución de Problemas y Algoritmos Buffer - Read & Readln
Seminario de Actualización - Excel Avanzado y Macros
1. Introducción Estructura básica de un computador.
Programación en Lenguaje Ensamblador.
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Semana 4 - periferico.

 SON FUNCIONES LÓGICAS  REPRESENTADAS POR TABLAS DE VERDAD  SIMPLIFICABLES POR LÓGICA BOOLEANA  SIMPLIFICABLES POR KARNAUGH  APLICACIONES: funciones.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Introducción al lenguaje ensamblador
Interfaces de entrada / salida
Unidad 2: Organización del CPU
Interfases de Entrada / Salida
ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS
Placa de expansión para Comunicaciones C ommunication B oard T ask F orce.
Arquitectura del 8086/8088 TEEL 4011
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Resolución de Problemas y Algoritmos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
Conceptos Arquitectónicos del computador
Diseño lógico combinacional mediante VHDL
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Microcomputadores Prof: Tatiana Marín R.. Lenguaje máquina = lenguaje binario InstrucciónLenguaje máquina (binario)OP ( hex)Nemónico Restar F0SUB.

Control de Flujo.
Diseño Lógico Combinacional con VHDL
P ROYECTO F IN D E C ARRERA TELECONVERSOR A MORSE MICROCONTROLADO Francisco Vázquez Cristóbal. Autor: Francisco Vázquez Cristóbal. Andrés Roldán Aranda.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Módulo LCD Controlador HD44780.
Librerías y packages (paquetes)
Introducción a las Interfaces de entrada / salida.
Sistemas de E/S, Programada por Interrupciones su Gestión
Capítulo.3 - Diseño Lógico Combinacional con VHDL
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
RESUMEN: Softmicro de 8 bits Xilinx
PICmicro GAMA MEDIA: PIC16F84 [I]
Alumno: Gerardo Mario Valdés Ortega
Estructuras de Control
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Programando puertos en C freescale
José Alvarado – Cristian Anzola
Resolución de problemas Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Unidad de transferencia de memoria
Módulo Serial Asicrónico SCI (Serial Communications Interface Module)
Arquitectura de Computadores
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
Manejador de interrupción (subrutina)
Explicación 2 Interrupciones.
Hardware Description Language
Programación en VHDL.
Transcripción de la presentación:

Introducción a las Interfaces de entrada / salida

Puerto de Salida Básico #OE Salidas Registro (Latch) Bus de Datos del Sistema CLK #WR #CE D0 D7 Q0 Q7

Entity Salida is port ( HCLK : in std_logic; RESET : in std_logic; CS: instd_logic; WR : instd_logic; D: instd_logic_vector (7 downto 0); --Bus datos es siempre entrada O: outstd_logic_vector (7 downto 0) --Salidas al exterior ); end Salida; Sintesis en vhdl de un puerto de salida

architecture B2 of Salida is begin process (HCLK, RESET) begin if RESET = '1' then O ( 7 downto 0 )<= " "; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then if WR = '0' then O (7 downto 0) <= D ( 7 downto 0 ); end if; end process; end B2;

Estimulo – Puerto de salida

Simulación – Puerto de salida

Puerto de Entrada Básico #OE Entradas Puerta de 3 estados (Transceiver) Bus de Datos del Sistema #CE #RD O0 O7 I0 I7

entity Entrada is port ( HCLK :instd_logic; RESET : instd_logic; CS :in std_logic; RD :instd_logic; D :outstd_logic_vector (7 downto 0); -- Bus Datos es siempre salida I :instd_logic_vector (7 downto 0) -- Entradas externas ); end Entrada; Sintesis en vhdl de un puerto de entrada

architecture B2 of Entrada is Begin process (HCLK, RESET) Begin if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then-- Flanco de ascendente if CS = '0' then -- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= I (7 downto 0); else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD esta en 1 el bus esta en "Z" end if; else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS esta en 1 el bus esta en "Z" end if; end process; end B2;

Estimulo – Puerto de entrada

Simulación – Puerto de entrada

entity Registro is port ( HCLK :instd_logic; RESET : instd_logic; CS :instd_logic; RD :instd_logic; WR :instd_logic; D :inoutstd_logic_vector (7 downto 0) -- Bus de datos es Entrada/Salida ); end Registro; Síntesis en vhdl de un registro interno (sin líneas de entrada ni salida)

architecture B2 of Registro is Begin process (HCLK, RESET) variable REGISTRO : std_logic_vector (7 downto 0) := " "; Begin if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then-- Flanco de ascendente if CS = '0' then -- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= REGISTRO (7 downto 0); else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD = 1, bus en "Z" if WR = '0' then REGISTRO (7 downto 0) := D ( 7 downto 0 ); end if; else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS = 1, bus en "Z" end if; end process; end B2;

Estimulo – Registro interno

Simulación – Registro interno

Generador PWM #OE Salida Registro Bus de Datos del Sistema CLK #CE #WR D0 D7 Q0 Q7 CLK Q0 Q7 HCLK Contador Comparador PWM

entity PWM is port ( HCLK:instd_logic; RESET : in std_logic; CS:instd_logic; RD :instd_logic; WR:instd_logic; D:inoutstd_logic_vector (7 downto 0); PWM:out std_logic ); end PWM;

architecture B2 of PWM is Begin process (HCLK, RESET) variable REGISTRO : std_logic_vector (7 downto 0) := " "; variable CICLO : std_logic_vector (7 downto 0) := " "; variable CONTADOR : std_logic_vector (7 downto 0) := " "; Begin if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; PWM <= '0'; else if HCLK = '1' and HCLK'event then-- Flanco de ascendente if CS = '0' then-- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= REGISTRO (7 downto 0); else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD es 1 el bus es "Z" if WR = '0' then REGISTRO (7 downto 0) := D ( 7 downto 0 ); end if; else D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS es 1 el bus es "Z" end if;

CONTADOR := CONTADOR +1; if CONTADOR > CICLO then PWM <= '0'; else PWM <= '1'; end if; if CONTADOR = " " then CICLO := REGISTRO; end if; end process; end B2;

#OE Salida Entrada Registro (Latch) Puerta de 3 estados (Transceiver) #WR #CE #RD Puerto de Entrada + Salida Básico Bus de Datos #OE

Salida Entrada Registro (Latch) Puerta de 3 estados (Transceiver) Bus de Datos Puerto de Entrada + Salida Básico #OE #WR #CE #RD #OE

Salida Entrada Puerta de 3 estados (Transceiver) Bus de Datos Puerto de Entrada / Salida Programable Registro (Latch) Exterior #OE #WR #CE #RD #OE

Salida Entrada Bus de Datos #WR #CE #RD #OE #WR #CE 1 #OE Exterior Puerto de Entrada / Salida Programable

#OE Salida Entrada Bus de Datos #WR #CE #RD #OE #WR A0 #OE Exterior Puerto de Entrada / Salida Programable

#CE #WR A0 #RD Bus de Datos Lógica de control de lectura y escritura (LCLE) #OE Salida Entrada #OE Exterior Puerto de Entrada / Salida Programable

Bus de Datos Lógica de control de lectura y escritura (LCLE) #OE Salida Entrada #OE Exterior Puerto de Entrada / Salida Programable #CE #WR A0 #RD

#OE Salida Entrada Bus de Datos del sistema #OE LCLE #OE Puerta bidireccional de 3 estados (Transceiver) # OE Dd Puerto de Entrada / Salida Programable #CE #WR A0 #RD

#OE Salida Entrada Bus de Datos del sistema Puerto de Entrada / Salida Programable con Reset #OE LCLE #OE Puerta bidireccional de 3 estados (Transceiver) RESET #OE Dd #CE #WR A0 #RD

#OE Salida Entrada Bus de Datos del sistema #OE LCLE #OE Puerta bidireccional de 3 estados (Transceiver) RESET Puerto de Entrada / Salida Programable con Reset #OE Dd #CE #WR A0 #RD

entity IOP is port ( HCLK:instd_logic; RESET : instd_logic; CS:instd_logic; AD0:instd_logic; --0 = DATOS 1 = DDR WR :instd_logic; RD:instd_logic D:inoutstd_logic_vector (7 downto 0); -- El bus de datos es Entrada/Salida ES:inoutstd_logic_vector (7 downto 0) -- Entradas/Salidas al exterior ); end IOP;

architecture B2 of IOP is Begin process (HCLK, RESET) variable DDR: std_logic_vector ( 7 downto 0) :=" ";-- 0 = entrada variable DAT: std_logic_vector ( 7 downto 0) :=" "; Begin if RESET = '1' then ES ( 7 downto 0 )<= "ZZZZZZZZ"; DDR ( 7 downto 0 ) := " "; DAT ( 7 downto 0 ) := " "; D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then-- Flanco de ascendente if CS = '0' then if WR = '0' then if AD0 = '0' then DAT( 7 downto 0 ) := D( 7 downto 0 ); n1: for i in 0 to 7 loop if DDR(i) = '1' then ES (i) <= D (i); else ES (i) <= 'Z'; end if; end loop n1;

else DDR( 7 downto 0 ) := D( 7 downto 0 ); n2: for i in 0 to 7 loop if D(i) = '1' then ES (i) <= DAT (i); else ES (i) <= 'Z'; end if; end loop n2; end if; else if RD = '0' then if AD0 = '0' then n3: for i in 0 to 7 loop if DDR(i) = '1' then D (i) <= DAT (i); else D (i) <= ES(i); end if; end loop n3; else D(7 downto 0) <= DDR(7 downto 0); end if; else D( 7 downto 0 ) <= "ZZZZZZZZ"; end if;

else D( 7 downto 0 ) <= "ZZZZZZZZ"; end if; end process; end B2;

Estimulo – Puerto de entrada-salida programable

Simulación – Puerto de entrada-salida programable

#OE Entrada #OE 1 D Q #R INTR Bus de Datos Puertas de 3 estados (Transceiver) Habilitación Bandera Puerto de E / S con Pedido de Atención y Bandera

#OE Entradas Puerto de Entrada con Líneas de control y con capacidad de solicitar interrupciones #OE 1 D Q #R INTR Bus de Datos Habilitación Bandera #CE A0 #WR #RD LCLE #OE0 DAV DAC #CE #OE1 CLK1

Aplicación OE Habilitaciones (Cátodos) Excitación (Ánodos) K3 K2 K1 K0 CLK CE1 OE WLWL CLK CE1 WHWH D7 … D0 D15 … D8 Q7 Q0 Q3

a c b d e g f p

CÁTODO COMÚN ÁNODOS

abcdefgpabcdefgp Vcc ÁNODOS CÁTODO COMÚN

5. 8. ÁNODOS ULN2003 KHHKLLKMHKML

ÁNODOS ULN2003 KLLKMHKML

ÁNODOS ULN2003 KLLKMHKML

8. 6. ÁNODOS ULN2003 KLLKMHKML

;Subrutina DISP ;Variables utilizadas: ;STATUS : Próximo dígito de Buffer que es necesario refrescar ;BUFFER : Tabla de 8 bytes que contiene los datos para el display y los códigos de habilitación correspondientes STATUS dw0 BUFFERdb1, 1;LSD, db3, 2;, db5, 4;, db7, 8;MSD; ;PORT_A : Etiqueta que especifica la dirección del puerto del display PORT_AequXXXX

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN BUFFER MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA ANDBX, 7 MOVSTATUS,BX RET

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN BUFFER MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOVSTATUS,BX RET

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN BUFFER MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA ANDBX, 7 MOVSTATUS,BX RET

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN TRABLA MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOVSTATUS,BX RET

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN TRABLA MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOVSTATUS,BX RET

;SUB. DE REFRESCO DISPPROCNEAR XORAX,AX MOVDX, PORT_A OUTDX,AX;APAGA DISPLAY MOVBX, STATUS;BUSCA DATOS EN TRABLA MOVSI, OFFSET BUFFER MOVAX,(BX+SI) OUTDX,AX;ENCIENDE DIGITO ADDBX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOVSTATUS,BX RET

F0 F1 F2 F3 C0 C1 C2 C3 Teclado Teclas Salidas Entradas

TECLADO Salidas Entradas

TECLADO 1 Salidas Entradas

TECLADO Salidas Entradas

TECLADO Salidas Entradas

F0 F1 F2 F3 C0 C1 C2 C3 Teclado Teclas Salidas Entradas

Aplicación OE Habilitaciones (Cátodos) Excitación (Ánodos) K3 K2 K1 K0 CLK CE1 OE WLWL CLK CE1 WHWH D7 … D0 D15 … D8 Q7 Q0 Q3

Q0 Q1 Q2 Q3 C0 C1 C2 C3 Teclado Teclas Entradas

PUERTO_B OE1 Entradas Puerta de 3 estados RD L CE O0 O7 I0 I7 OE2 D0 D7

Q0 Q1 Q2 Q3 I0 I1 I2 I3 Teclado Teclas PUERTOAPUERTOA Entradas

Q0 Q1 Q2 Q3 I3 I2 I1 I0 I4 I5 I6 I7 Teclado Teclas PUERTOAPUERTOA Entradas PUERTO_B

;SUB. DE EXPLORACION DE TECLADO SCANPROCNEAR MOVDX, PORT_B INAL, DX TEST AL, 0F0h JZnotec MOVTECLA, AL notec: RET Subrutina SCAN : Variables utilizadas : TECLA : Código ultima tecla presionada TECLAdb0

; SUB. HS_INP ; PUNTERO variable que apunta al lugar de almacenamiento ; N variable que contiene el numero de bytes que se van a recibir ; CRSR etiqueta con la dirección del registro de control/estados (Wr/Rd) ; DATR etiqueta con la dirección del registro de entrada ; FLAG etiqueta con todos “0” y un solo “1” en posición de la “Flag” HS_INPPROCNEAR TESTN,0FFFFh JNZOK_DAT;salta a recepción MOVDX, CRSR;apunta al registro de control XORAL,AL OUTDX,AL;deshabilita pedido de interrupción SALERET OK_DATMOVDX, CRSR;Apunta al registro de estados INAL,DX;verifica si hay dato para leer TESTAL, FLAG; “ JZSALE;si no hay dato sale MOVDX, DATR;apunta al registro de entrada MOVSI, PUNTERO;carga el puntero para guardar el dato INAL,DX MOV(SI),AL;guarda el dato DECN;actualiza contador INCPUNTERO;actualiza puntero RET ENDP

; SUB. INI _ HS_INP ; Parámetros de entrada:BXpuntero al área de memoria libre CXcantidad de datos para almacenar ALconfiguracion del puerto ; PUNTERO variable que apunta al lugar de almacenamiento ; N variable que contiene el numero de bytes que se van a recibir ;CRSR etiqueta con la dirección del registro de control/estados (Wr/Rd) INI_HS_INPPROCNEAR MOVN, CX MOVPUNTERO, BX MOVDX, CRSR OUTDX,AL RET ENDP