Reloj Digital

download Reloj Digital

of 44

Transcript of Reloj Digital

Universidad Mayor de San Andrs Facultad de Ingeniera Carrera Ingeniera Electrnica

Proyecto de Final de Curso ETN 601 - Sistemas Digitales I

DISEO E IMPLEMENTACIN DE UN RELOJ DIGITAL

Por: Amrico lvarez Surci

Docente: Roberto Oropeza Crespo

La Paz Bolivia Diciembre 2010

i

INDICE GENERALINDICE DE FIGURAS INDICE DE TABLAS RESUMEN CAPITULO 1: ANTECEDENTES Y PROPSITOS1.1. Introduccin 1.2. Objetivos 1.2.1. Objetivo principal 1.2.2. Objetivos secundarios 1.3. Metodologa IV V VI

11 2 2 2 2

CAPITULO 2: DESARROLLO TERICO2.1. Elementos del reloj digital 2.1.1. Codificadores, decodificadores 2.1.2. Contadores 2.1.3. Generador de pulsos (multivibrador-astable) 2.3. Descripcin de Hardware 2.3.1. VHDL i) Elementos Bsicos VHDL ii) Estructura Bsica de un archivo fuente en VHDL

35 5 8 11 13 13 14 16

CAPITULO 3: MECANISMO DE DISEO3.1. SS: Segundos 3.2. MM: Minutos 3.3. HH: Horas 3.4. Ajuste de hora 3.5. Descripcin VHDL ii

2121 22 23 24 25

CAPITULO 4: SIMULACIONES Y PRUEBAS EN LABORATORIO4.1. Simulacin plano circuital usando Proteus 4.2. Simulacin VHDL usando Quatus2

3030 32

CAPITULO 5: CONCLUSIONES Y MEJORAS5.1. Conclusiones 5. 2. Mejoras

3535 35

6. BIBLIOGRAFA 7. ANEXOS7.1. Tarjeta Cyclone II- DE2 de Altera

36 3636

iii

INDICE DE FIGURASFigura 1: Reloj Digital Figura 2: Reloj Atmico NIST-F1, EE.UU. Figura 3: Decodificador Bsico Figura 4: Diagrama de Pines CI 7447 Figura 5: Contador Sncrono Modulo-3 Figura 6: Diagrama de Tiempos Contador Flanco descendente Figura 7: Contador Asncrono Figura 8: Multivibrador Astable con transistores Figura 9: Multivibrador astable con CI 555 Figura 10: Ejemplo de Entity Figura 11: Diagrama de bloques del Segundero Figura 12: Diagrama de bloques del decodificador Figura 13: Diagrama de bloques del Minutero Figura 14: Diagrama de bloques del Horero Figura 15: Plano Circuital completo del Reloj digital Figura 16: cada 60 Pulsos de 1Hz, se enva un Impulso (clock del minutero) Figura 17: cada 60 impulsos del minutero, se enva un Impulso (clock del horero) Figura 18: Segmento de cuenta segundero y reset Figura 19: Segmento, ajustando horas y minutos

iv

INDICE DE TABLASTabla 1: Decodificador binario a display 7 segmentos nodo comn Tabla 2: tabla de verdad de CI 7447 Tabla 3: Secuencia de Cuenta de CI 7490 Tabla 4: Tabla de verdad de CI 7490 Tabla 5: Codigo VHDL reloj digital Tabla 6: Numero decimal mostrado en quartus2 que representa los 7 bits, del decodificador

v

ResumenCon la utilizacin de contadores, decodificadores y varios otros componentes digitales se implementara en laboratorio un reloj que nos mostrara horas, minutos segundos, adems se implementara este mismo en una tarjeta de estudio DE2, utilizando lenguaje de descripcin de hardware VHDL. Se visualizara el reloj en displays de 7 segmentos, contara con la funcionalidad de modificar la hora, adems que contara con un clock de 1 segundo.

vi

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

CAPITULO 1: ANTECEDENTES Y PROPSITOS

1.1. IntroduccinEn los tiempos actuales es masiva la utilizacin de Sistemas Digitales ya que proporcionan una serie de ventajas con respecto a la electrnica analgica, y ha sido utilizada incluso en dispositivos pequeos como un reloj, el cual ha pasado del uso de las manecillas para la indicacin de la hora a proporcionar una visualizacin numrica de la misma gracias a la electrnica digital. El reloj digital es un proyecto ampliamente conocido y realizado en cursos bsicos de sistemas digitales, con este proyecto se pretende demostrar todo lo aprendido en dicho curso. La bibliografa que se puede encontrar sobre este tema es extensa, el aadido de este trabajo es que aparte de disear el reloj con circuitos integrados comunes, se utiliza la descripcin de hardware para describir nuestro reloj digital.

Figura 1: Reloj Digital

Amrico lvarez Surci

1

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

1.2. Objetivos1.2.1. Objetivo principal Diseo e implementacin de un Reloj digital utilizando componentes digitales bsicos y descripcin de este, utilizando VHDL.

1.2.2. Objetivos secundarios Descripcin de diferentes contadores digitales para la utilizacin en segundero, minutero y horas. Manejo de decodificadores de binario a 7 segmentos (display). Descripcin en un solo modulo, para representar el reloj.

1.3. MetodologaLa elaboracin de este proyecto tiene dos etapas importantes: hardware y el software En la parte de hardware nos enfocaremos en el diseo utilizando diferentes circuitos integrados bsicos, conectados de tal forma que emulen el funcionamiento de un tpico reloj digital. Y cuando nos referimos a software utilizaremos el paquete informtico Quatus-2, para realizar la descripcin de hardware utilizando el lenguaje vhdl, para describir nuestro circuito reloj digital. Adems para correcciones si se lo amerita se empleara el software Proteus, para la simulacin de nuestro circuito a montar en laboratorio.

Amrico lvarez Surci

2

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

CAPITULO 2: DESARROLLO TERICO

Se denomina reloj a un instrumento que permite medir el tiempo. Existen diversos tipos, que se adecuan segn el propsito: Conocer la hora actual (reloj de pulsera (automtico o 'de cuerda'), reloj de bolsillo, reloj de saln o pared, cronmetro) Medir la duracin de un suceso (crongrafo, reloj de arena) Sealar las horas por sonidos parecidos a campanadas o pitidos (reloj de pndulo, reloj de pulso con bip a cada hora) Activar una alarma en cierta hora especfica (reloj despertador)

Los relojes se utilizan desde la antigedad. A medida que ha ido evolucionando la ciencia y la tecnologa de su fabricacin, han ido apareciendo nuevos modelos con mayor precisin, mejor prestancia y menor costo de fabricacin. Es quiz uno de los instrumentos ms populares que existen actualmente y casi todas las personas disponen de uno o varios relojes personales de pulsera. Mucha gente, adems de la utilidad que los caracteriza, los ostenta como smbolo de distincin y estatus social. La mayor precisin conseguida hasta ahora es la del ltimo reloj atmico desarrollado por la Oficina Nacional de Normalizacin (NIST) de los EE.UU., el NIST-F1, puesto en marcha en 1999, es tan exacto que tiene un margen de error de solo un segundo cada 20 millones de aos. A pesar de ello, los fsicos continan experimentando con nuevas variaciones, como los msers de hidrgeno (Townes), los de bombeo ptico de rubidio (Kasler) o los recientemente propuestos de mercurio, que permitiran alcanzar mayor precisin. En agosto de 2004 del NIST hicieron la primera demostracin de un reloj atmico del tamao de un circuito integrado. Esto representa un reloj cien veces menor que cualquier otro construido hasta la fecha y con un consumo de slo 0,079 vatios. Un reloj digital es un tipo de reloj que basa su funcionamiento en la electrnica digital para marcar el tiempo. La invencin, en 1956, del reloj digital supuso una gran revolucin en el campo de la relojera porque se consigui fabricar relojes mucho ms baratos y precisos que los de funcionamiento mecnico.

Amrico lvarez Surci

3

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

Para representar la hora, muchos relojes digitales usan los siete segmentos LED (los que se usan en el proyecto), VFD o LCD, para formar cada uno de los nmeros. Estos relojes tambin incluyen otros elementos, para indicar si la hora es por la maana AM o por la tarde PM, as como si est activada la alarma y a qu hora est programada. Los relojes digitales son muy pequeos, tiles y baratos. Por estas razones se han incorporado a la mayora de equipos electrnicos. La ruptura principal con el reloj mecnico es que se eliminaron todos los mecanismos que haba en el interior de la caja de los relojes y fueron sustituidos por unos circuitos electrnicos alimentados por una pequea batera y que facilitaba la lectura directa del tiempo. Debido a lo barato que son los relojes digitales ya se han impuestos en muchas aplicaciones, y as la mayora de despertadores son ya digitales, los relojes que hay en electrodomsticos, ordenadores, telfonos celulares, automviles, etc. Asimismo, muchos de los relojes de pulsera que se utilizan son digitales si bien en el campo de los relojes de pulsera se han impuesto los relojes electrnicos analgicos de cuarzo.

Figura 2: Reloj Atmico NIST-F1, EE.UU. Amrico lvarez Surci 4

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

2.1. Elementos del reloj digitalUn reloj electrnico es un reloj en el que la base de tiempos es electrnica o electromecnica y la divisin de frecuencia, tambin. La exactitud del reloj depende de la base de tiempos, que puede consistir en un oscilador o en un adaptador que, a partir de una referencia, genera una seal peridica. El divisor de frecuencia es un circuito digital formado por una sucesin de contadores hasta obtener una frecuencia de 1 Hz, que permite mostrar segundos. Si se quiere mostrar dcimas, la divisin se detiene al llegar a los 10 Hz. Esta frecuencia pasa al mdulo de presentacin, que puede ser electrnico o mecnico, donde otros divisores van separando los segundos, minutos y horas para presentarlas mediante algn tipo de display.

2.1.1. Codificadores, decodificadores

Decodificador: Se trata de un dispositivo con n entradas y 2n salidas donde en funcin de la combinacin binaria de sus entradas, una y slo una de las salidas se activa. Es decir, convierte un cdigo binario de entrada en cdigo "1-entre-n. Su smbolo para el caso DEC 2:4 con habilitacin y salidas activa en alta, su tabla de verdad y sus ecuaciones de cada salida se muestran a continuacin:

Figura 3: Decodificador Bsico Amrico lvarez Surci 5

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

Decodificador binario 4bits a display 7 segmentos nodo comn: La cuenta de nmeros se lo realizara en binario 4 bits, no obstante este nmero de base 2 no representa los nmeros decimales 0 a 9 mostrados por un tpico reloj, por tal motivo se utilizara decodificadores de 4 bits a 7 segmentos. Los displays de nodo comn son activos en nivel bajo y tienen un punto comn que es la alimentacin de este. Para mostrar nmeros decimales en los displays, los 7 bits deben de obedecer la siguiente tabla: Binario Display 4bits 7 segmentos Decimal B3 B2 B1 B0 a b c d e f g 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 2 0 0 1 0 0 0 1 0 0 1 0 3 0 0 1 1 0 0 0 0 1 1 0 4 0 1 0 0 1 0 0 1 1 0 0 5 0 1 0 1 0 1 0 0 1 0 0 6 0 1 1 0 1 1 0 0 0 0 0 7 0 1 1 1 0 0 0 1 1 1 1 8 1 0 0 0 0 0 0 0 0 0 0 9 1 0 0 1 0 0 0 0 1 0 0 10 1 0 1 0 X X X X X X X 11 1 0 1 1 X X X X X X X 12 1 1 0 0 X X X X X X X 13 1 1 0 1 X X X X X X X 14 1 1 1 0 X X X X X X X 15 1 1 1 1 X X X X X X X Tabla 1: Decodificador binario a display 7 segmentos nodo comn De la tabla, los elementos marcados con X, no sern utilizados por que tan solo necesitamos los nmeros 0 al 9, el circuito integrado que realiza la decodificacin de binario a display nodo comn es el 7447.

Amrico lvarez Surci

6

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

Tabla 2: Tabla de verdad de CI 7447

Figura 4: Diagrama de Pines CI 7447 Amrico lvarez Surci 7

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

2.1.2. ContadoresLos contadores son circuitos que tienen la propiedad de incrementar su contenido (ascendentes), decrementarlo (descendentes) o ambas (reversibles). Un contador mdulo-K cuenta K valores de forma cclica, normalmente entre 0 y el K-1. Adems, estos dispositivos pueden tener operaciones que permitan cargar un estado inicial de cuenta, (carga o load) y restablecer el estado inicial de cuenta, ya sea el cero para contadores ascendentes (clear) o todos los bits a 1 (estado 2n-1) para los descendentes (preset). Existe gran diversidad de contadores dependiendo del tipo de operaciones que realizan y del tamao del contador. El tamao se especifica por el mdulo (p.ej.: mdulo 10) o por el nmero de bits en caso de mdulos 2n. Por ejemplo, en la siguiente figura se muestra el esquema de un contador sncrono ascendente de mdulo 8 (3 bits) con las operaciones de cuenta arriba, carga, puesta a 0 e inhibicin.

Figura 5: Contador Sncrono Modulo-3

En la siguiente figura aparece la secuencia de salidas de un contador mdulo 8 ascendente. Como se observa, el periodo de las seales de salida va duplicndose, lo que motiva que a los contadores se les denomine, tambin, divisores de frecuencia.

Amrico lvarez Surci

8

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

Figura 6: Diagrama de Tiempos Contador Flanco descendente Al momento de definir nuestro reloj requeriremos de dos contadores modulo-60 para el segundero y el minutero, adems de un contador modulo-24 para las horas si nuestras horas son en ese sistema. Hay dos formas de realizar contadores: 1) los de rizado (ripple-counter) o contadores asncronos; y 2) los sncronos. En los contadores de rizado la salida de cada biestable se utiliza como seal de reloj del siguiente.

Figura 7: Contador Asncrono El circuito integrado 7490 nos brinda un contador BCD de modulo-10. Con la interconexin de varios podemos realizar contadores de mdulos mayores (p.ej.: modulo-60).

Amrico lvarez Surci

9

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

Tabla 3: Secuencia de Cuenta de CI 7490Note A: Salida QA tiene que estar conectada a la entrada B para la cuenta BCD

Tabla 4: Tabla de verdad de CI 7490

Amrico lvarez Surci

10

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

2.1.3. Generador de pulsos (multivibrador-astable)Los contadores digitales anteriormente vistos, utilizar una seal de clock que no es otra cosa ms que un tren de pulsos con una frecuencia dada. La precisin del reloj depende de esta frecuencia de clock. En electrnica, un astable es un multivibrador que no tiene ningn estado estable, lo que significa que posee dos estados "cuasi-estables" entre los que conmuta, permaneciendo en cada uno de ellos un tiempo determinado. La frecuencia de conmutacin depende, en general, de la carga y descarga de condensadores.

Figura 8: Multivibrador astable con transistores

Tambin podemos obtener un multivibrador utilizando el CI 555, que un circuito integrado ampliamente conocido con mucha informacin.

Amrico lvarez Surci

11

3 de diciembre de 2010 555 modo astable:

PROYECTO RELOJ DIGITAL

Figura 9: Multivibrador Astable con CI 555 Este tipo de funcionamiento se caracteriza por una salida con forma de onda cuadrada (o rectangular) continua de ancho predefinido por el diseador del circuito. El esquema de conexin es el que se muestra. La seal de salida tiene un nivel alto por un tiempo t1 y un nivel bajo por un tiempo t2. La duracin de estos tiempos depende de los valores de R1, R2 y C, segn las frmulas siguientes:

t1 ln 2 R1 R2 C t1 0.693 R1 R2 CLa frecuencia con que la seal de salida oscila est dada por la frmula:

y

t 2 ln 2 R2 C t 2 0.693 R2 C

f

1 0.693 C R1 2 R2

Amrico lvarez Surci

12

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

2.3. Descripcin de HardwareCon la creciente complejidad de los diseos digitales ha aparecido una necesidad de describir un circuito de la forma ms eficiente y prctica posible. Un lenguaje de programacin ofrece la posibilidad de un alto nivel de abstraccin y es la solucin adecuada para dicha tarea. Los lenguajes de descripcin hardware son lenguajes de alto nivel con una sintaxis similar a los de programacin (C, ADA, Pascal, Modula, etc.) y una semntica que permite el modelado y simulacin de los dispositivos hardware a diferentes niveles de abstraccin. Los primeros lenguajes de este tipo slo pretendan servir de vehculo de comunicacin del diseo. Los actuales lenguajes han adquirido un alto grado de estandarizacin y han adoptado los nuevos conceptos de la ingeniera de software, permitiendo la verificacin de la especificacin del diseo mediante simulacin.

2.3.1. VHDLVHDL es un lenguaje de descripcin de circuitos electrnicos digitales que utiliza distintos niveles de abstraccin. El significado por sus siglas VHDL es VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. Esto significa que VHDL permite acelerar el proceso de diseo. VHDL no es un lenguaje de programacin, por ello conocer su sintaxis no implica necesariamente saber disear con l. VHDL es un lenguaje de descripcin de hardware genrico, que permite describir circuitos sncronos y asncronos. Para realizar esto debemos: - Pensar en puertas y biestables, no en variables ni funciones. - Evitar bucles combinacionales y relojes condicionados. - Saber qu parte del circuito es combinacional y cul secuencial. Los circuitos descritos en VHDL pueden ser simulados utilizando herramientas de simulacin para reproducir el funcionamiento del circuito. Adems utilizando herramientas de sntesis se puede implementar dicho circuito en un dispositivo lgico programable o en un circuito integrado.

Amrico lvarez Surci

13

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

i)

Elementos bsicos VHDL

VHDL es un lenguaje y como tal, posee sus tipos de datos y operadores. Los datos se almacenan en objetos que contienen valores de un tipo dado. IDENTIFICADORES. - CONSTANT. Los objetos de esta clase tienen un valor inicial que es asignado de forma previa a la simulacin y que no puede ser modificado durante sta. o constant identificador: tipo:= valor; - VARIABLE. Los objetos de esta clase contienen un nico valor que puede ser cambiado durante la simulacin con una sentencia de asignacin. Las variables generalmente se utilizan como ndices, principalmente en instrucciones de bucle, o para tomar valores que permitan modelar componentes. Las variables NO representan conexiones o estados de memoria. o variable identificador: tipo [:= valor]; - SIGNAL. Los objetos de esta clase contienen una lista de valores que incluye el valor actual y un conjunto de valores futuros. Las seales representan elementos de memoria o conexiones y si pueden ser sintetizadas. Los puertos de una entidad son implcitamente declarados como seales en el momento de la declaracin, ya que estos representan conexiones. Tambin pueden ser declaradas en la arquitectura antes del BEGIN, lo cual nos permite realizar conexiones entre diferentes mdulos. o signal identificador: tipo; VHDL permite utilizar tipos predefinidos, as como otros definidos por el usuario. BIT 0, 1 BIT_VECTOR (range*) BOOLEAN TRUE, FALSE CHARACTER {ascii} STRING {ascii} SEVERITY_LEVEL {WARNING, ERROR, FALURE} INTEGER range* Amrico lvarez Surci 14

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

NATURAL range* POSITIVE range* REAL range* TIME *(range: n_min TO n_max; n_max DOWNTO n_min) STD_LOGIC. Tipo predefinido en el estndar IEEE 1164. Este tipo representa una lgica multivaluada de 9 valores. Adems del 0 lgico y el 1 lgico, posee alta impedancia Z, desconocido X sin inicializar U entre otros. Igual que se permite crear un vector de bits se puede crear un vector de std_logic, STD_LOGIC_VECTOR. Para poder utilizar el tipo std_logic hay que aadir la librera que lo soporta. Para poder utilizar el tipo: use ieee.std_logic_1164.all. Para poder utilizar las funciones aritmeticolgicas definidas (suma, resta multiplicacin) use ieee.std_logic_arith.all. Si los vectores estn en representacin binaria pura use ieee.std_logic_unsigned.all. Los vectores estn en C2 use ieee.std_logic_unsigned.all. TIPO ENUMERADO es un tipo de dato con un grupo de posibles valores asignados por el usuario. Los tipos enumerados se utilizan principalmente en el diseo de mquinas de estados type nombre is (valor1, valor2, ); Los tipos enumerados se ordenan de acuerdo a sus valores. Los programas de sntesis automticamente codifican binariamente los valores del tipo enumerado para que estos puedan ser sintetizados. Algunos programas lo hacen mediante una secuencia binaria ascendente, otros buscan cual es la codificacin que mejor conviene para tratar de minimizar el circuito o para incrementar la velocidad del mismo una vez que la descripcin ha sido sintetizada. Tambin es posible asignar el tipo de codificacin mediante directivas propias de la herramienta de sntesis. TIPOS COMPUESTOS un tipo compuesto es un tipo de dato formado con elementos de otros tipos, existen dos formas de tipos compuestos, arrays y records. Amrico lvarez Surci 15

3 de diciembre de 2010

PROYECTO RELOJ DIGITAL

UN ARRAY es un objeto de datos que consiste en una coleccin de elementos del mismo tipo. type nombre is array (rango) of tipo; UN RECORD es un objeto de datos que consiste en una coleccin de elementos de distintos tipos. type nombre is record elemento1: tipo_de_dato1; elemento2: tipo_de_dato2; end record;

OPERADORES. Un operador nos permite construir diferentes tipos de expresiones mediante los cuales podemos calcular datos utilizando diferentes objetos de datos con el tipo de dato que maneja dicho objeto. En VHDL existen distintos operadores de asignacin con lo que se transfieren valores de un objeto de datos a otro, y operadores de asociacin que relacionan un objeto de datos con otro, lo cual no existe en ningn lenguaje de programacin de alto nivel. abs *, /, mod, rem + (sig.), - (sig) +, -, & and, or, nand, nor, xor := asignacin de valores a constantes y variables.