Introducción a las
This presentation is the property of its rightful owner.
Sponsored Links
1 / 70

Introducción a las Interfaces de entrada / salida PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on
  • Presentation posted in: General

Introducción a las Interfaces de entrada / salida. Puerto de Salida Básico. Registro (Latch). #CE. CLK. #WR. #OE. D0 D7. Q0 Q7. Bus de Datos del Sistema. Salidas. Sintesis en vhdl de un puerto de salida. Entity Salida is port ( HCLK : in std_logic;

Download Presentation

Introducción a las Interfaces de entrada / salida

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Introducci n a las interfaces de entrada salida

Introducción a las

Interfaces de entrada / salida


Introducci n a las interfaces de entrada salida

Puerto de Salida Básico

Registro (Latch)

#CE

CLK

#WR

#OE

D0

D7

Q0

Q7

Bus de Datos

del Sistema

Salidas


Introducci n a las interfaces de entrada salida

Sintesis en vhdl de un puerto de salida

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;


Introducci n a las interfaces de entrada salida

architecture B2 of Salida is

begin

process (HCLK, RESET)

begin

if RESET = '1' then

O ( 7 downto 0 )<= "00000000";

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 if;

end if;

end if;

end process;

end B2;


Introducci n a las interfaces de entrada salida

Estimulo – Puerto de salida


Introducci n a las interfaces de entrada salida

Simulación – Puerto de salida


Introducci n a las interfaces de entrada salida

Puerto de Entrada Básico

Puerta de 3 estados

(Transceiver)

#CE

#RD

#OE

O0

O7

I0

I7

Bus de Datos

del Sistema

Entradas


Introducci n a las interfaces de entrada salida

Sintesis en vhdl de un puerto de entrada

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;


Introducci n a las interfaces de entrada salida

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 if;

end if;

end process;

end B2;


Introducci n a las interfaces de entrada salida

Estimulo – Puerto de entrada


Introducci n a las interfaces de entrada salida

Simulación – Puerto de entrada


Introducci n a las interfaces de entrada salida

Síntesis en vhdl de un registro interno (sin líneas de entrada ni salida)

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;


Introducci n a las interfaces de entrada salida

architecture B2 of Registro is

Begin

process (HCLK, RESET)

variable REGISTRO : std_logic_vector (7 downto 0) := "00000000";

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;

end if;

else

D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS = 1, bus en "Z"

end if;

end if;

end if;

end process;

end B2;


Introducci n a las interfaces de entrada salida

Estimulo – Registro interno


Introducci n a las interfaces de entrada salida

Simulación – Registro interno


Introducci n a las interfaces de entrada salida

Generador PWM

Contador

Comparador

HCLK

CLK

Q0

Q7

Salida

PWM

Registro

#CE

#WR

#OE

CLK

D0

D7

Q0

Q7

Bus de Datos

del Sistema


Introducci n a las interfaces de entrada salida

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;


Introducci n a las interfaces de entrada salida

architecture B2 of PWM is

Begin

process (HCLK, RESET)

variable REGISTRO : std_logic_vector (7 downto 0) := "00000000";

variable CICLO : std_logic_vector (7 downto 0) := "00000000";

variable CONTADOR : std_logic_vector (7 downto 0) := "00000000";

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;

end if;

else

D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS es 1 el bus es "Z"

end if;


Introducci n a las interfaces de entrada salida

CONTADOR := CONTADOR +1;

if CONTADOR > CICLO then

PWM <= '0';

else

PWM <= '1';

end if;

if CONTADOR = "00000000" then

CICLO := REGISTRO;

end if;

end if;

end process;

end B2;


Introducci n a las interfaces de entrada salida

Puerto de Entrada + Salida Básico

#CE

Registro

(Latch)

#WR

#OE

Salida

Bus de Datos

Entrada

Puerta de

3 estados

(Transceiver)

#OE

#RD


Introducci n a las interfaces de entrada salida

Puerto de Entrada + Salida Básico

#CE

Registro

(Latch)

#WR

#OE

Salida

Bus de Datos

Entrada

Puerta de

3 estados

(Transceiver)

#OE

#RD


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

#CE

Registro

(Latch)

#WR

#OE

Exterior

Salida

Bus de Datos

Entrada

Puerta de

3 estados

(Transceiver)

#OE

#RD


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

#CE 1

#WR

#OE

Exterior

#CE

#WR

#OE

Salida

Bus de Datos

Entrada

#OE

#RD


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

A0

#WR

#OE

#CE

Exterior

#WR

#OE

Salida

Bus de Datos

Entrada

#OE

#RD


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

#CE #WR

A0 #RD

#OE

Lógica de control de lectura y escritura (LCLE)

Exterior

#OE

Salida

Bus de Datos

Entrada

#OE


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

#CE #WR

A0 #RD

#OE

Lógica de control de lectura y escritura (LCLE)

Exterior

#OE

Salida

Bus de Datos

Entrada

#OE


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable

#CE #WR

A0 #RD

#OE

LCLE

Puerta bidireccional de 3 estados (Transceiver)

#OE

Salida

#OE Dd

Entrada

Bus de Datos del sistema

#OE


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable con Reset

#CE #WR

A0 #RD

RESET

#OE

LCLE

Puerta bidireccional de 3 estados (Transceiver)

#OE

Salida

#OE Dd

Entrada

Bus de Datos del sistema

#OE


Introducci n a las interfaces de entrada salida

Puerto de Entrada / Salida Programable con Reset

#CE #WR

A0 #RD

RESET

#OE

LCLE

Puerta bidireccional de 3 estados (Transceiver)

#OE

Salida

#OE Dd

Entrada

Bus de Datos del sistema

#OE


Introducci n a las interfaces de entrada salida

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;


Introducci n a las interfaces de entrada salida

architecture B2 of IOP is

Begin

process (HCLK, RESET)

variable DDR: std_logic_vector ( 7 downto 0) :="00000000";-- 0 = entrada

variable DAT: std_logic_vector ( 7 downto 0) :="00000000";

Begin

if RESET = '1' then

ES ( 7 downto 0 )<= "ZZZZZZZZ";

DDR ( 7 downto 0 ) := "00000000";

DAT ( 7 downto 0 ) := "00000000";

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;


Introducci n a las interfaces de entrada salida

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;

end if;


Introducci n a las interfaces de entrada salida

else

D( 7 downto 0 ) <= "ZZZZZZZZ";

end if;

end if;

end if;

end process;

end B2;


Introducci n a las interfaces de entrada salida

Estimulo – Puerto de entrada-salida programable


Introducci n a las interfaces de entrada salida

Simulación – Puerto de entrada-salida programable


Introducci n a las interfaces de entrada salida

Puerto de E / S con Pedido de Atención y Bandera

Habilitación

INTR

Bandera

Puertas de

3 estados

(Transceiver)

1

#OE

D

Q

#R

Bus de Datos

#OE

Entrada


Introducci n a las interfaces de entrada salida

Puerto de Entrada con Líneas de control y con capacidad de solicitar interrupciones

Bandera

INTR

#OE0

#CE

A0

#WR

#RD

#OE1

Habilitación

LCLE

1

CLK1

D

Q

DAV

#R

#OE

Bus de Datos

#OE1

DAC

#OE

#CE

#OE0

Entradas


Introducci n a las interfaces de entrada salida

8.

8.

8.

8.

Aplicación

Q7

CE1

Excitación

(Ánodos)

WL

CLK

D7

D0

OE

Q0

CE1

WH

CLK

K3

K2

K1

K0

D15

D8

Q3

Q0

OE

Habilitaciones

(Cátodos)


Introducci n a las interfaces de entrada salida

a

f

b

g

e

c

p

d


Introducci n a las interfaces de entrada salida

ÁNODOS

CÁTODO COMÚN

ÁNODOS


Introducci n a las interfaces de entrada salida

Vcc

a

b

c

d

e

f

g

p

CÁTODO COMÚN

ÁNODOS


Introducci n a las interfaces de entrada salida

ÁNODOS

5.

8.

8.

8.

KHH

KMH

KML

KLL

ULN2003

1 0 0 0


Introducci n a las interfaces de entrada salida

ÁNODOS

8.

8.

3.

8.

KMH

KML

KLL

ULN2003

0 1 0 0


Introducci n a las interfaces de entrada salida

ÁNODOS

8.

9.

8.

8.

KMH

KML

KLL

ULN2003

0 0 1 0


Introducci n a las interfaces de entrada salida

ÁNODOS

8.

8.

8.

6.

KMH

KML

KLL

ULN2003

0 0 0 1


Introducci n a las interfaces de entrada salida

;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 , 00000001

db3, 2; , 00000010

db5, 4; , 00000100

db7, 8;MSD; 00001000

;PORT_A : Etiqueta que especifica la dirección del puerto del display

PORT_AequXXXX


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

;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


Introducci n a las interfaces de entrada salida

Teclado

C0

C1

Entradas

C2

C3

F0

F1

Teclas

Salidas

F2

F3


Introducci n a las interfaces de entrada salida

TECLADO

0

0

Entradas

0

0

0

1

Salidas

0

0


Introducci n a las interfaces de entrada salida

TECLADO

0

1

Entradas

0

0

0

1

Salidas

0

0


Introducci n a las interfaces de entrada salida

TECLADO

0

0

Entradas

0

0

0

1

Salidas

0

0


Introducci n a las interfaces de entrada salida

TECLADO

0

0

Entradas

0

0

0

1

Salidas

0

0


Introducci n a las interfaces de entrada salida

Teclado

C0

C1

Entradas

C2

C3

F0

F1

Teclas

Salidas

F2

F3


Introducci n a las interfaces de entrada salida

8.

8.

8.

8.

Aplicación

Q7

CE1

Excitación

(Ánodos)

WL

CLK

D7

D0

OE

Q0

CE1

WH

CLK

K3

K2

K1

K0

D15

D8

Q3

Q0

OE

Habilitaciones

(Cátodos)


Introducci n a las interfaces de entrada salida

Teclado

C0

C1

Entradas

C2

C3

Q0

Q1

Teclas

Q2

Q3


Introducci n a las interfaces de entrada salida

PUERTO_B

Puerta de 3 estados

CE

OE1

RDL

OE2

Entradas

D0

D7

O0

O7

I0

I7


Introducci n a las interfaces de entrada salida

Teclado

I0

I1

Entradas

I2

I3

P

U

E

R

T

O

A

Q0

Q1

Teclas

Q2

Q3


Introducci n a las interfaces de entrada salida

Teclado

I3 I2 I1 I0 I4 I5 I6 I7

Entradas

PUERTO_B

P

U

E

R

T

O

A

Q0

Q1

Teclas

Q2

Q3


Introducci n a las interfaces de entrada salida

Subrutina SCAN :

Variables utilizadas :

TECLA : Código ultima tecla presionada

TECLAdb0

;SUB. DE EXPLORACION DE TECLADO

SCANPROCNEAR

MOVDX, PORT_B

INAL, DX

TEST AL, 0F0h

JZnotec

MOVTECLA, AL

notec:

RET


Introducci n a las interfaces de entrada salida

; 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


Introducci n a las interfaces de entrada salida

; 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


  • Login