Buscar este blog

domingo, 27 de octubre de 2019

Practica : Sistema de seguridad de una caja fuerte.

El proyecto de esta semana consistio en implementar un circuito que permita definir una clave de seguridad y que sea capaz de reconocerla despues para que responda abriendo la caja.

Componentes necesarios:

-Registro de desplazamiento (4 bit)
-Decodificador de teclado matricial
-Componente de visualizacion dinamica
-Componente que almacena y compara la clave
-Bloqueo del teclado por un tiempo t.

Almacenamiento y verificacion de clave:

Para esta componente solamente fueron necesarios flip-flops tipo D y compuertas xor. La suma exclusiva funciona como comparador de un bit, si se coloca entre la salida y entrada del ffD nos indica cuando son iguales la entrada del ff y el dato que tiene almacenado.
Finalmente se juntaron 16 comparadores de este tipo (16 bits) con una sola salida que indica cuando todos son iguales.

Decodificador de teclado matricial:

Este componente fue diseñado previamente, hay en mas detalles aqui.

Componente de visualizacion dinamica:

Este componente fue diseñado previamente, hay en mas detalles aqui.

Registro de dezplazamiento (4 bit)

El ingreso de datos de la caja fuerte se hizo por medio de un registro de desplazamiento, el cual funciona con flipflops tipo D para guardar el dato y con MUX (8 a 4) para escoger si esta en modo escritura (desplazamiento a la izquierda) o en modo borrar (desplazamiento a la derecha).


Todos los flipflops tienen el mismo reloj, y como se puede observar depende del selector si los MUX envian el dato del flipflop siguiente o del anterior. Este selesctor depende de un flipfliop JK donde J es escribir y K borrar.
Se presento un problema dado que el selector de los MUX debia cambiar del estado de escritura a borrado inmediatamente, de lo contrario seguirian ingesando 0's en el display. La primera solucion fue "resetear" de manera asincrona el flipflop que controla aquel selector.
Sin embargo luego de borrar se presenta el mismo problema, debe volver al estado de escritura justo despues de haber borrado, para evitar este problema se uso un debouncer con la entrada negada para que envie un ulso al reloj de flipfliop cada vez que se deja de presionar "borrar" para que vuelva al estado escribir.

Bloqueo del teclado:

 Para impedir que se puedan ingresar datos por el teclado se utilizaron dos contadores, uno para el numero de errores y otro para el tiempo de bloqueo del teclado.

Montaje:

 En PSoC creator:

Los componentes necesarios se juntan de la siguiente forma en el top design:
Los datos ingresan por medio del decodificador de teclado matricial al registro de desplazamiento y a un comparador que sirve para diferenciar numeros de letras, entre otras cosas. Todo se sincroniza con el debouncer del teclado.
La salida del registro de desplazamiento va a la visualizacion dinamica y a el componenete que almacena y compara la clave. 
Finalmente la salida del componente comparador va al contador de errores, para activar el bloqueo del teclado.

 En protoboard:

 

No hay comentarios:

Publicar un comentario

Control de ciclo util de un PWM

La modulación por ancho de pulsos es una técnica en la que se modifica el ciclo de trabajo (o ciclo util) de una señal periódica, para tran...