Vous êtes sur la page 1sur 18

SISTEMA DE SEGURANÇA

Alunos:

Frederico Gomes Lacerda 140900042

Lara Karoline Alves Ferreira 140900027

Washington Lucius Militão dos Santos Rachid Araújo 140900006

Orientador:

Davidson Lafitte Firmo

1
Resumo

A privacidade e a segurança são duas das principais preocupações


modernas. Seja em nossas casas, nas redes sociais ou até mesmo nos nossos
aparelhos de celular uma maneira de nos passar o controle sobre quem tem acesso
aquilo que julgamos importante são as senhas que atuam desde nos cofres, até os
padrões de desbloqueio das telas. Esse relatório aborda a criação de um circuito
lógico projetado para ser usado como um sistema de segurança simples e facilmente
adaptável, baseado na comparação numérica de uma senha preestabelecida com a
entrada do usuário. O sistema ainda é pensado para que haja um limite de tentativas
e uma vez extrapolado esse limite ocorre o bloqueio temporário do sistema. Após
sua criação, usando os conceitos abordados na disciplina de Circuitos Lógicos,
chegou-se finalmente em um projeto que foi pensado com o mínimo de
componentes necessários para atender às exigências que nos foram feitas e pode
ser adaptado em uma grande diversidade de situações.

Introdução

Uma das características humanas é a de tentar proteger aquilo que julgamos


importante. Essa peculiaridade nos levou a alguns padrões interessantes ao longo
do tempo. Desde o clássico baú do tesouro enterrado em um lugar que só se
poderia chegar com um mapa que marcava com um grande “X” sua localização, até
as pirâmides que guardavam tudo aquilo que os faraós julgavam importante em suas
vidas e exigiam até que os servos que conheciam sua saída se sacrificassem e
ficassem presos lá dentro para que os segredos da tão grandiosa “sala segura”
ficassem guardados exclusivamente na mente do faraó que uma hora voltaria a vida
e sairia de lá então com tudo aquilo que ele quis guardar em sua vida passada, ou
mesmo um simples cofre que engenhosamente era trancado e só revelaria seu
conteúdo se aquele que o tentasse abrir pudesse reproduzir uma combinação de
movimentos. Uma característica que todas essas criações e conceitos humanos
trazem em comum é a intenção de tornar inacessível determinado conteúdo a
qualquer um que não seja o portador de determinada informação. Mesmo que seja
pensado para outras necessidades esse conceito continua sendo aplicado na
contemporaneidade, seja por um policial preocupado que quer manter sua arma em

2
segurança longe de seus filhos, por uma família que quer restringir o acesso de
pessoas à sua casa exclusivamente àqueles que têm uma senha do portão da
garagem ou por um usuário de um banco que pretende ser o único a movimentar o
seu dinheiro, ainda buscamos mecanismos que nos diferencie e nos dê
exclusividade naquilo que julgamos ter a necessidade de ser protegido.

Motivação

Focado nessa problemática e baseado nos desdobramentos e utilizações dos


circuitos digitais, pode-se pensar em criar um sistema simples e facilmente adaptável
em diferentes situações que se baseie na comparação de senhas que permite ou
bloqueia o acesso a algo, é sobre objetivo que se discorreu o trabalho que será
explicado subsequente.

Desenvolvimento:

Conforme as orientações recebidas para se montar um projeto, o primeiro


passo é destrinchar a ideia final e dividi-lo em pequenas partes que podem ser
facilmente executadas e unidas, que juntas trarão o funcionamento desejado desde
o início. Congruente com o processo de pensamento utilizado na criação do sistema
de segurança, estará dividido nas etapas em que foi realizado o processo de criação
de tal mecanismo.

A principal parte do sistema de segurança para funcionar conforme as


expectativas é filtrar quem pode ou não ter acesso a aquilo que é protegido. Tal
filtragem é baseada na comparação de senhas. Essa comparação é dada da
seguinte forma: O sistema, seja na sua fabricação ou no momento inicial de sua
configuração, terá uma senha pré-gravada em sua memória, o usuário que buscar o
acesso deve inserir uma outra senha e as duas devem ser comparadas. O acesso
só deve ser liberado se houver concordância entre as senhas.

Como armazenar uma senha pré-gravada? O fato de haver uma senha já na


memória do sistema armazenada como senha correta implica na necessidade de
haver uma memória no circuito, tal qual composta por flip-flops do tipo D ou flip-flops
DATA, que são unidades básicas de memória simples de se trabalhar. Cada um

3
deles armazena um bit. Em um primeiro momento foi proposto uma senha de 4 bits,
portanto seriam necessários 4 flip-flops na unidade de memória. Entretanto, uma
senha com 4 dígitos binários oferece apenas 16 combinações possíveis, número
muito baixo se tratando de um sistema de senhas, fornecendo pouca segurança e
comprometendo o intuito do trabalho. Para resolver tal complicação resolve-se então
adotar senhas em números decimais: foi escolhido um sistema com uma senha
composta por 4 dígitos decimais, culminando em 10.000 combinações possíveis –
Um aumento considerável da ideia anterior - fazendo assim com que o sistema seja
mais confiável e mais difícil de ser burlado. Tal mudança obviamente exigiu uma
melhora do sistema de memória. Para maior comodidade de quem projetou e para
uma maior padronização do nosso sistema com qualquer outra tecnologia que se
queira comunicar com ele, foi adotado o código BCD -Um código que associa os
números decimais à combinações de 4 dígitos binários-. Portanto o sistema precisou
ser equipado com 16 flip-flops do tipo D para armazenar uma senha composta por 4
dígitos decimais, sendo que cada um deles é composto de 4 dígitos binários.

Para nível de organização nas simulações, essa parte do circuito responsável


por armazenar a senha correta foi representada por chaves mecânicas, tal solução
foi proposta pelo professor-orientador desse projeto. A solução com chaves
mecânicas é prática, porém não explora as áreas do conhecimento que devem ser
abordadas no decorrer do projeto. (Imagem em anexo)

Uma vez resolvido o problema da memória, é interessante abordar como é


feita a entrada pelo usuário da senha que deve ser comparada com a
preestabelecida. Tal comunicação se dá por meio de um teclado. Apesar de haverem
teclados prontos disponíveis para serem usados, nessa situação preferiu-se criar um
exclusivamente para esse circuito. Foram usados 11 botões, dez deles com os
números decimais -de 0 a 9- e um deles com o símbolo #. Para cada um dos botões
que representavam um número foi associado o seu correspondente em BCD dadas
as associações, precisou-se criar um arranjo de portas lógicas que pudesse reduzir
a quantidade de material para distinguir qual o número que havia sido pressionado
(Tabela verdade em anexo)

Após as interpretações das tabelas verdades e com o auxílio do mapa de


Karnaugh, concluiu-se que o arranjo mínimo satisfatório para as necessidades do

4
teclado era composto por quatro portas OR -Sendo delas, duas com 4 entradas, uma
com 5 entradas e uma com duas entradas- e mais quatro portas AND todas com
duas entradas sendo uma barrada e outra normal. Esse arranjo permite a
composição dos dez números utilizados no BCD e impede a criação de alguma
combinação indesejada que poderia ter sido criada com quatro bits, essas
combinações são posteriormente armazenadas em dezesseis flip-flops do tipo D que
mais tarde serão comparados à senha pré-gravada.

Ainda pensando na logística da entrada do usuário, temos de ser capazes de


diferenciar em qual ordem o número havia sido pressionado, pois nesse sistema não
é apenas o conjunto de números que determina a senha e sim a ordem em que os
determinados números aparecem. Para resolver essa questão foi necessário
adicionar mais dois flip-flops, do tipo T, arranjados de maneira a criarem um contador
que é capaz de criar 4 combinações diferentes, cada uma delas associada a um
número. (Tabela em anexo) Cada vez que o usuário digita um número no teclado
esse contador é ativado e muda qual posição aquele dígito deverá estar no momento
da comparação, essa comparação é feita por um arranjo de dezesseis portas AND,
todas com duas entradas normais, essas portas são associadas quatro a quatro com
um dígito da senha correta pré-gravada. Além dos dois flip-flops tipo T, foram ainda
necessárias para a composição -do que ficou conhecido nesse projeto como
direcionador de dígitos- mais quatro portas AND de duas entradas sendo que delas
uma tinha todas as entradas barradas, duas tinham uma entrada barrada e uma não
tinha entradas barradas.

Uma vez que já somos capazes no nosso projeto de ter uma parte para
armazenar a senha correta preestabelecida e temos um meio de obter do usuário
uma entrada que já convertida e armazenada para os parâmetros que o sistema
trabalha -binário- e ainda somos capazes de determinar a ordem de entrada dos
dígitos, o próximo passo lógico é criar um meio de comparar a entrada com a senha
correta. Tal ação é feita pelo comparador, outro mecanismo especialmente projetado
para esse circuito. O comparador consiste em um arranjo de portas lógicas que une
três informações que devem existir antes de sua ação. A primeira informação
necessária é a entrada do usuário, uma vez em posse da mesma, ele deve saber
com quem comparar, tal resposta é dada pelo direcionador de dígitos que associa o
digito fornecido pelo usuário com a posição que ele ocupa na senha, por fim o
5
comparador deve buscar na memória do sistema qual é o digito preestabelecido
como correto. Caso a informação fornecida pelo usuário seja congruente com a
salva na memória devemos receber um “sinal alto” que nada mais é do que a
confirmação de que esse digito está conforme o esperado. Caso todos os quatro
dígitos em suas respectivas posições estejam de acordo com o esperado o sistema
deve ser liberado, caso contrário o sistema deve permanecer bloqueado e um erro
precisa ser computado. O comparador é formado por quatro unidades básicas,
sendo cada uma delas empregada em um dígito. Cada unidade, após o correto
dimensionamento baseado nas tabelas verdades e no mapa de Karnaugh assumiu
uma estrutura composta por quatro portas XNOR -Cada uma associada a um dos
flip-flops do tipo D que compõem o dígito correto- e uma porta AND com quatro
entradas. O funcionamento de cada unidade se baseia em saber se há
correspondência entre a código binário inserido pelo usuário e o pré-gravado na
memória, caso tal igualdade seja verdade para os quatro flip-flops é emitido um
“sinal alto” o que indica que o dígito correspondente à unidade, está correto. O
processo se repete para todos os quatro números da senha e, por fim, o resultado
de cada uma das unidades é levado até uma nova porta AND de quatro entradas,
caso todos os valores que cheguem nessa porta sejam altos, haverá a liberação do
sistema, se houver algum valor em estado baixo deve ser computado um erro.
Portanto, a melhor estruturação do comparador é dada por dezesseis portas XNOR
e cinco portas AND de quatro entradas. (Imagem em anexo)

A partir desse ponto, já temos um sistema de segurança que começa a


ganhar forma, o circuito já é capaz de receber, organizar, armazenar e comparar
informações e de posse dessa comparação é capaz de liberar o sistema, entretanto
para adicionar confiabilidade, funcionalidade e nos mantermos na linha de trabalho
proposta, é preciso que o circuito seja capaz de identificar e computar os erros, para,
após excedido um determinado limite, bloquear o sistema, com o intuito de dificultar
a quebra de segurança.

Tal funcionalidade é dada pela ação conjunta de duas partes distintas do


sistema. A primeira é composta por um arranjo de flip-flops do tipo T, semelhante ao
usado no direcionador de dígitos, entretanto esse contador só muda de estado
quando o comparador sinaliza um erro -Saída do comparador em estado baixo-. É
de nosso entendimento que três tentativas são mais do que suficientes para que
6
alguém de posse da senha correta libere o sistema, portanto nosso contador foi
especialmente dimensionado para que apenas no terceiro erro a segunda parte
entre em ação. A segunda parte é composta pela associação de uma porta OR de
dez entradas, cada uma delas ligada em um dos botões que outrora foram
associados aos números decimais, uma porta AND com duas entradas, sendo uma
delas barrada e uma normal. Na entrada normal da porta AND está ligada a saída da
porta OR citada anteriormente, já à entrada barrada está associado um conjunto
composto por um contador Hexadecimal que quando acionado vai de zero até
14(hexa) o que corresponde a 20 pulsos do contador. Durante o tempo que esse
contador está acionado a porta AND impede qualquer ação do usuário sobre o
sistema. Foi ainda utilizado um CI555 na sua forma astável, ou seja, gerando um
pulso de clock. Esse CI555 foi dimensionado para obter tempos de “alto e baixo”
iguais, com período de 0,67 segundos, ou frequência de 1,5Hz. Tal configuração nos
permite bloquear o sistema por 30 segundos toda vez que o usuário erra a senha
mais vezes do que o permitido -Três vezes-. Os condutores são arranjados ainda de
forma que a cada ciclo de bloqueio o próprio contador hexadecimal aciona o seu
Clear, deixando o sistema de travamento pronto para ser utilizado novamente.

Vale ainda ressaltar que o sistema foi pensado para apenas computar um erro
após o último dígito ter sido pressionado, caso o usuário perceba seu engano
enquanto digita a senha ele pode pressionar o botão # que está ligado no clear dos
flip-flops de direcionador de dígitos e no clear dos flip-flops que armazenam a senha
a ser comparada, tal ação tomada pelo usuário não computa erro e lhe concede
uma nova oportunidade de inserir a senha de forma correta.

Foram ainda incorporados ao circuito 3 LED's que servem para mostrar o


estado do sistema, um deles é associado à parte do circuito responsável pelo
bloqueio, sempre que o usuário não pode fazer alterações, ou seja, nos trinta
segundos subsequentes a três tentativas erradas, o LED fica aceso. Os outros dois
LED's estão ligados à parte de desbloqueio do sistema, um deles é ativo em baixo e
o outro em alto. Quando o LED que é ativo em baixo está aceso o sistema indica
estar trancado, quando o LED ativo em alto está aceso o sistema está liberado.

Todas essas partes e ferramentas, quando colocadas juntas, formam o


circuito em sua composição original e funcional, tal sistema foi satisfatório durante

7
todas as simulações e está de acordo com a expectativa de seus desenvolvedores.
O sistema está ainda, nessa forma, congruente com todas as recomendações do
professor-orientador.

Conclusão

8
Percebeu-se então com o desenrolar do projeto, até sua finalização que o
conhecimento adquirido, seja nas aulas ministradas de circuitos lógicos ou nas
valiosas horas dedicadas à literatura de tal disciplina, foram mais do que suficientes
para a boa execução do projeto. O sistema de segurança, conforme discutido nesse
relatório se mostrou funcional em todas as simulações no programa Logisim. O
circuito abordado aqui foi pensando para ser um sistema de segurança genérico
com vasta aplicação, podendo se implantado em sistemas de segurança
residenciais, travas automatizadas de cofres, sistemas de alarme e diversas outras
aplicações em que suas características sejam úteis. Foi ainda tomado o cuidado
utilizar códigos como o BCD para facilitar sua interação com outros sistemas. O
projeto final conforme exposto no relatório e na simulação entregue ao professor-
orientador apresenta-se reduzido pelos métodos que nos foram ensinados, visando
diminuir os custos de sua produção e aumentar a sua viabilidade.

9
Agradecimento

Os integrantes do grupo sentem-se profundamente agradecidos à Universidade


Federal de São João-del Rei, por nos dar a oportunidade de cursar a disciplina em
que esse projeto foi proposto e por disponibilizar suas instalações para reuniões do
grupo e encontros com o professor-orientador. È de suma importância que fique aqui
registrado também a gratidão dos alunos pelo professor Davidson Lafitte Firmo que
não só ministrou o conteúdo necessário para a execução de tamanha tarefa, como
orientou da melhor maneira possível aos integrantes que efetivamente participaram
desse projeto. è importante ainda demonstrar gratidão ao companheiro de grupo que
por motivos pessoais não nos pode acompanhar até o fim desse projeto. Por fim,
gostaríamos de agradecer a Deus, pois a construção do conhecimento é uma forma
de louvar à criação.

10
Bibliografia

Logisim 2.7.1 (Simulador digital de circuito lógicos)

Biblioteca de Referências Logisim para portas, conexões, entrada/saída e memória

Sistemas digitais 10ª edição- Ronald Tocci (livro referência)

Material didático disponível em (http://www.campusvirtual.ufsj.edu.br/)

Data sheet's disponíveis em (http://www.eletrodex.com.br)

11
Anexos

(Cores associadas ao colorido do circuito impresso)

Decodificação BCD:

A) 010=00002

B) 110= 00012

C) 210=00102

D) 310=00112

E) 410=01002

F) 510=01012

G) 610=01102

H) 710=01112

I) 810=10002

J) 910=10012

Lógica BCD: número na forma: w x y zBCD

Número menos significativo : ***z

“z” é ativo quando o botão correspondente a um dos números {1,3,5,7,9} 10 for


pressionado, ou seja: z= B+D+F+H+J

Segundo número menos significativo **y*

“y”é ativo quando o botão correspondentes a um dos números {2,3,6,7}10 for


pressionado, ou seja: y= C+D+G+H

Segundo número mais significativo: *x**

“x” é ativo quando o botão correspondentes a um dos números {4,5,6,7} 10 for


pressionado, ou seja: x= E+F+G+H

Número mais significativo: w***

“w” é ativo quando o botão correspondentes a um dos números {2,3,6,7} 10 for


pressionado, ou seja: w=I+J
12
Decodificador de posição:

Um contador de dois bits compostos por dois flip-flops tipo T que fazem a
contagem:

{00, 01, 10, 11} que corresponde aos respectivos digitos{1º,2º,3º,4º} cada
contagem é associada a uma porta and que represente o número que são
respectivamente:

imagem da simulação do logisim

Contador de erros:

Apenas quando é digitado o último digito da senha, quando o decodificador de


posição indica 11 é registrada uma tentativa. O registro é zerado com a senha
correta ou, depois que o sistema foi travado e reiniciado, quando o contador de
travamento atinge seu fim.

Travamento do sistema:

Ligado, com uma inversora, em uma and com o decodificador BCD e com a
entrada do decodificador de posição, quando ativo impede que o sinal proveniente
dos botões se propague.

Armazenamento da tentativa:

Como o decodificador de posição liberou sinal apenas para o digito correto, o


sinal do botão, codificado em BCD propagará para os flip-flops de memória (tipo “D”)
corretos.

Sinal do decodificador de posição

13
Sinal do Decodificador BCD

Armazenamento da tentativa nos flip-flops.

imagem da simulação do logisim

Comparador:

Formado pela seguinte lógica

A comparação primária é feita a nível BCD em que apenas


quando o algarismo do usuário for igual ao pré-definido. O mapa
de karnaugh nos mostra um diagonal o que indica porta exclusiva,
no caso é:

A porta and associada às exclusivas, liberará sinal positivo(alto) quando o


digito estiver correto, esse sinal é associado aos dos demais dígitos por meio de
outra porta and informa valor lógico positivo quando todos os dígitos estiverem
corretos:

Demais
dígitos

Senha predefinida;

Sinal da tentativa

Projeto inicial com senha de 4 dígitos binários, sem implementação de


ordem
14
15
Circuito Pronto:

16
Lista de componentes:

Para o clock:

1 TRIMPOT 100K

1 CI LM555LN

1 CAPACITOR 10 MICROF

1 CAPACITOR 10 NANOF

Para o sistema:

2 HEXA INVERSOR 7404

4 FLIP FLOPS D-QUADRUPLO-CD40175BE

2 FLIP FLOPS JK-DUAL-74HC112

10 OR DUPLO DE 4 ENTRADAS 74HTC32

11 BOTÕES

4 XNOR QUADRUPLO 4077

7 AND QUADRUPLO DUAS ENTRADAS 74HC08

1 LED VERMELHO PARA O SISTEMA TRAVADO

1 LED VERDE PARA O SISTEMA DESTRANCADO

1 LED BRANCO PARA O SISTEMA EM OPERAÇÃO

17
18

Vous aimerez peut-être aussi