Practica Sistemas Digitales
Enviado por yurgensuarez • 16 de Septiembre de 2014 • 2.764 Palabras (12 Páginas) • 341 Visitas
Planteamiento del problema
Se pide diseñar e implementar una alarma domestica que monitorize
varias señales governadas por sensores tales como detección de fuego, fugas
de agua e intrusiones. Dicha alarma se especifica en el enunciado en forma de
dos bloques generales: el primero se ocupa de detectar un código numérico
tecleado por el usuario mientras que el segundo se encarga de gestionar las
accionesdela propia alarma.
Se ha decidido partir el problema en varios sub-bloques para disponer de
un diseño modular más limpio y mantenible facilitando así las tareas de
depuración y mantenibilidad. Dichos bloques se describen en el apartado
“diagrama de bloques”.
Cabe destacar en este punto los estados o modos que soporta la alarma y
que se activan/desactivan en función de claves introducidas por el usuario.
Dichosmodosson:
– AV:Clavede activacióndelmodo M1.
– AA:Clavede activacióndelmodo M2.
– AAT:Clavede atraco.
– DA:Clavede desactivaciónde laalarma.
Por otraparte,lasseñales relevantes del sistema seenumeranyexplican
acontinuación:
– PP: Indicasi lapuertaprincipalha sido abierta
– AP:Vale“1”sialgunaventanao puertadiferente de laprincipalse
encuentraabierta,0encaso contrario.
– SF:Se activaen casode detectarsefuego.
– SG:Avisasobrelapresenciade una fugade gas.
– SA:Informaencaso de detectarseun escapede agua.
El sistema debe ser capaz de gestionar una serie de situaciones que se
especifican claramente en el enunciado. También se detalla en el enunciado el
cómo realizar llamadas telefónicas una vez detectada una de las situaciones
antes citadas.
Diagrama de bloques
La captura de pantalla siguiente muestra el “top” schematic del proyecto,
con todos los módulos interconectados y los signals de entrada/salida
mapeadospor las contraints.
Enumeramos seguidamente una breve descripción de las funciones de
cada módulo, así como el fichero de constraints resultante, cada módulo se
verá com más detalleenla sección “Bloquesusados”:
1) Reloj de múltiples frecuencias: El circuito dispone de necesidades
variables en cuanto a tiempos de reloj. Este módulo proporciona 4
frecuenciasderelojdistintas apartirde laquefacilitalaplaca(50Mhz).
2) Detección de código: Sirve para permitir o denegar las claves de
activación/desactivaciónde laalarma.
3) Anti-rebotes: Proporcionado ya implementado en la práctica, sirve para
evitarseñales residualespormalos contactosenlos pulsadores.
4) Núcleo: Parte central del diseño, se encarga como se ha dicho antes, de
toda la lógica de estados inherente de la alarma (control de modos,
activacióndesenyales de alarma,activaciónde llamadas,etc..).
5) Temporizador: Hace posible cumplir con los requistos del enunciado
referentes a esperas para activar/desactivar estados en la alarma (T1 &
T2).
6) Llamadas: Ejecuta el tren de pulsos para realizar las llamadas según el
tipo de alarma que ha sido activado, previo direccionado del número que
se encuentraenel módulo memoria.
7) Memoria: Almacena los números de teléfono a los que llamar en caso de
atraco,fuego, fugade gaso de agua.
Elementosfísicos delaplaca (constraint.ucf)
El fichero de contraints(constraint.ucf) asocialasconexiones físicas de la
placa Spartan3con losnombres lógicos de las entradas y salidas. Después de
cambiaralguno de estos aliasycomentar los queno necesitábamos, queda de
la siguiente forma:
######################################
# Constraint file for Spartan3 Board #
######################################
#---------------------#
# Seven Segments
#---------------------#
NET "SEL3" LOC = "E13"; # Select one of the four 7 segments
NET "SEL2" LOC = "F14"; #
NET "SEL1" LOC = "G14"; #
NET "SEL0" LOC = "D14"; #
NET "A" LOC = "E14"; # A
NET "B" LOC = "G13"; # ----NET "C" LOC = "N15"; # F -> | | <- B
NET "D" LOC = "P15"; # | G |
NET "E" LOC = "R16"; # ----NET "F" LOC = "F13"; # E -> | | <- C
NET "G" LOC = "N16"; # | D |
NET "DP" LOC = "P16"; # ---- . <- DP
#---------------------#
# Switches
#---------------------#
#NET "SW0" LOC = "F12";
#NET "SW1" LOC = "G12";
#NET "SW2" LOC = "H14";
#NET "SW3" LOC = "H13";
#NET "SW4" LOC = "J14";
#NET "SW5" LOC = "J13";
#NET "SW6" LOC = "K14";
#NET "SW7" LOC = "K13";
#---------------------#
# Push Buttons
#---------------------#
NET "BTN0" LOC = "M13";
NET "BTN1" LOC = "M14";
NET "BTN2" LOC = "L13";
NET "BTN3" LOC = "L14"; # User Reset button
#---------------------#
# LEDs
#---------------------#
#NET "LED7" LOC = "P11";
#NET "LED6" LOC = "P12";
#NET "LED5" LOC = "N12";
#NET "LED4" LOC = "P13";
#NET "LED3" LOC = "N14";
NET "LED2" LOC = "L12";
NET "LED1" LOC = "P14";
#NET "LED0" LOC = "K12";
#---------------------#
# Clocks
#---------------------#
NET "CLK" LOC = "T9"; # 50Mhz clock
NET "SCLK" LOC = "D9"; #
...