Practica Sistemas Digitales
yurgensuarez16 de Septiembre de 2014
2.764 Palabras (12 Páginas)380 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"; # Socket clock
Descripción general
Parapoderutilizarla alarma,el usuario ha de seleccionarmediante
tecladoel modo de trabajoenel que quiere que funcione (M1 o M2); si no,
aunqueintroduzcaloscódigos de desactivaralarma(DA) o antiatraco (AAT)
no se activaráningunaseñal de alarmani serealizará ningunallamada
telefónica.
El sistemase pone en marcha mediante pulsadores;la entrada quellega
desde los pulsadores pasa por una bateríade filtros antirebotes paraevitar
unadetecciónerróneadelaspulsaciones. Una vezfiltradala entrada se
detectael código introducidomediante unbloque de estados (ACCESO). En
caso de ser un código correcto, se informaaotro bloque de estados
(NUCLEO)que, en función del código introducido funcionaráen unode dos
posibles modosde trabajo:
– En el modo detrabajoM1 laalarmacontrolaráincidenciasde tipono
intrusivomediantesensores externos;encaso de ocurrir unevento (ya
seauna fugade gas,aguao unincendio) el sistemaactivaráuna alarma
(AL1)que avisaalusuario. Además el sistemamarcaráelnúmero de
teléfono correspondiente alaincidenciamedianteun tren depulsos.
– En el modo detrabajoM2 laalarmacontrolatodo tipo de incidencias, ya
que se supone que el localestavacío.Incluyetodas las delmodoM1.
En el momento de la activar el modo M2 el sistema esperadurante una
temporización(T1ON) en laque nose controla el sensor deaperturade
puertaprincipal (PP), esto permite alusuario abandonar el local;por otro
lado,si la alarma estáfuncionando en modo M2 y unusuario entraenel local,
éste dispondráde untiempo (T2ON)paradesactivarla,ya que sinó se pondrá
enmarchala señal (AL2) que indicaquealguien que no conoce el códigode
desactivaciónha entrado;como puede darse el caso de queelusuario se
equivoqueal introducir elcódigo de desactivación,el marcadode lallamada
por robo no se produce (pero sí la señal AL2)hasta que el usuariointroduce
elcódigo AAT.
En el hipotético caso deque el usuario que conoce la clavede DA fuera
forzado a desactivarla alarma,éste puede intoducir el código AATen
cualquier momento (incluso si estáactivado yaAL2), conesto parará el AL2
pero segenerará una llamada telefónica(NROB).
Si mientras el sistemaestátrabajandoen cualquiera de los dos modos
ocurre unaindicencia(fuga de gas por ejemplo), se detectael problema yse
activala marcación del número de teléfono correspondiente medianteun
bloquedeestados(LLAMADAS) queva generando pulsosenfunción de un
número deteléfono que se encuentraalmacenado en una memoria
direccionadapor los bloquesLLAMADASyNUCLEO.
Bloques usados
A continuación sedetallael proceso que hemos seguido para
...