RESUMO
Esta experiência consiste no projeto e na implementação de um circuito de controle digital para verificação de códigos de segurança. O procedimento de operação deste circuito é bem semelhante ao funcionamento padrão de um cofre ou de um cadeado eletrônico com um mecanismo de senhas. A liberação da trava do circuito está condicionada à introdução de uma combinação igual a um código previamente cadastrado. Tentativas de burlar este procedimento devem ser previstas e bloqueadas.
OBJETIVOS
Após a conclusão desta experiência, os seguintes tópicos devem ser conhecidos pelos alunos:
Projeto de um sistema digital;
Fluxo de dados e Unidade de controle;
Memórias.
1. ESPECIFICAÇÃO FUNCIONAL
O circuito do verificador de senhas a ser projetado nesta experiência é um circuito simplificado de um sistema completo para uso em segurança de bens ou valores. Pode ser usado para controlar o acesso a depósitos de valores ou documentos sigilosos. O mecanismo de acesso é baseado na verificação de uma combinação de dígitos de segurança.
O circuito deve possuir dois modos de operação: o Modo de Configuração e o Modo de Segurança. Estes modos são selecionados através de uma chave no painel de controle. As outras chaves do painel somente ficam ativas enquanto o sistema não estiver bloqueado.
No Modo de Configuração é feita a programação da combinação de abertura do circuito que consta de 4 dígitos. Cada dígito é selecionado a partir de um total de 8 chaves de entrada. Esta combinação deve ficar armazenada na memória do sistema.
No Modo de Segurança é inserido um código, também constituído de 4 dígitos. Após a entrada deste código, caso haja coincidência com a senha de abertura programada anteriormente, um sinal deve ser enviado ao controle da trava para este ser aberto. Este sinal será representado através de um LED que deve permanecer aceso enquanto a trava não for aberta.
A entrada das teclas que compõem a combinação deve ser feita sequencialmente. O pressionamento de uma tecla é simulado através da ativação de uma chave (esta ativação se dará com a mudança da chave para o nível baixo). A chave deve ser desativada para que outra tecla seja posteriormente ativada (mesmo que seja o mesmo código).
Após a mudança do modo de operação do circuito, deve-se prever uma reinicialização do sistema (RESET). Isto permite que, no modo de configuração, caso seja efetuado o cadastramento de uma senha inválida, seja possível o recadastramento da senha com o acionamento do sinal de RESET.
Por outro lado, no caso de acionamento de um dígito inválido no modo de segurança, o usuário pode corrigir a entrada da senha correta, acionando-se o RESET. Isto só será possível durante a entrada dos três primeiros dígitos da senha, pois o circuito deve bloquear seu funcionamento após a entrada do último dígito e se a senha não for correta. Ou seja, caso o usuário não fornecer a senha correta, o circuito deve bloquear seu funcionamento e não responder a nenhum acionamento de qualquer tecla ou botão (p.ex. RESET, etc). Neste caso é necessário o acionamento do sinal DESBLOQUEAR para que ele saia deste estado de bloqueio.
A figura 1 abaixo ilustra a interface do circuito Verificador de Senhas a ser desenvolvido.
Verificador de Senhas
Figura 1. Interface do Verificador de Senhas.
2. DETALHAMENTO DO VERIFICADOR DE SENHAS
2.1. Diagrama de Blocos
O projeto básico do circuito do verificador de senhas deve seguir o Diagrama de Blocos apresentado na figura 2. Os blocos que compõem o projeto são os seguintes:
CODIFICADOR: codifica cada chave de entrada selecionada em um código binário de 2 bits, que indica a chave selecionada;
MEMÓRIA: armazena a senha cadastrada no Modo de Configuração;
CONTADOR: fornece o endereço no qual o código da tecla deverá ser armazenado ou lido da memória;
COMPARADOR: compara cada um dos códigos inseridos no Modo de Segurança com o código correspondente previamente armazenado na memória;
UNIDADE DE CONTROLE: controla o funcionamento do circuito do verificador de senhas nos Modos de Configuração e de Segurança.
Figura 2. Diagrama de Blocos do Verificador de Senhas.
VERIFICADOR DE SENHAS TECLAS (CHAVES) RESET DESBLOQUEAR CONF/SEG CLOCK 0 1 2 3 4 5 6 7 BLOQUEADO ABRE MODO 1 CONTADOR ZERA ENTRADA ENDEREÇO C O M P A R A D O R SAÍDA CLOCK CÓDIGO (D0) = COMPARAÇÃO TECLAS (CHAVES) MEMÓRIA TECLA ACIONADA (L8) (B ) RESET CONFIG / SEGURANÇA MODO (CH7) UNIDADE DE CONTROLE MODO (L0) ABRE (L1) CONTA C O M P A R A D O R = TECLAS (CHAVES) SINAIS DE CONTROLE DA MEMÓRIA (B1 ) BLOQUEADO (L2) 0 FLUXO DE DADOS C O D I F I C A D O R 3 2 5 4 7 6 CONT A GE M (d isp la y D3) CÓDIGO _ M E M ÓRIA (d isp la y D1) A B (B ) DESBLOQUEAR (B2 )
2.2. Sinais do Circuito do Verificador de Senhas
Os sinais do circuito são os apresentados abaixo, classificados como sinais de entrada, sinais de saída e sinal de controle interno. É apresentada também a designação dos leds e displays de sete segmentos a serem usados para acompanhar estes sinais na montagem no painel.
NÃO SERÁ PERMITIDA A MUDANÇA DE QUALQUER UM DESTES SINAIS E NEM DO SEU NÍVEL LÓGICO. QUALQUER MUDANÇA IMPLICARÁ EM UMA PENALIZAÇÃO.
a) Sinais de Entrada:
TECLAS (CH0 a CH6) chaves1 que correspondem às teclas de senha;
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅/SEGURANÇA (CH7) seleciona o modo de operação do circuito (0 = modo de configuração e 1 = modo de segurança);
RESET (B1) inicialização do sistema em cada um dos modos de operação (pulso em nível alto);
DESBLOQUEAR (B2) – permite desbloquear o circuito em caso de senha errada;
CLOCK sinal do gerador externo para sincronismo do controle. b) Sinais de Saída:
MODO (LED 0) indica o modo de operação do circuito (0 = modo de segurança e 1 = modo de configuração);
̅̅̅̅̅̅̅ (LED 1) quando em nível “zero” indica a abertura do circuito;
BLOQUEADO (LED 2) indica que o circuito está travado/bloqueado. c) Sinais de Controle Internos:
TECLA ACIONADA sinal auxiliar que indica a seleção de uma chave de entrada;
CONTA sinal de controle do contador para varredura (incremento) dos endereços da memória;
ZERA sinal para zerar o valor do contador para varredura dos endereços da memória;
COMPARAÇÃO saída do comparador indicando igualdade ou não entre o código cadastrado e o código inserido;
SINAIS DE CONTROLE DA MEMÓRIA utilizados para controle de operações de leitura e gravação de dados na memória.
d) Sinais Internos:
CÓDIGO (display D0) código binário de 2 bits da chave selecionada;
CÓDIGO_MEMÓRIA (display D1) código armazenado na memória;
CONTAGEM (display D3) endereço para acesso à memória;
ATENÇÃO:
Note que, exceto o sinal ̅̅̅̅̅̅̅, todos os outros são de lógica positiva, ou seja, ativos quando em nível 1.
3. PARTE EXPERIMENTAL
A parte experimental desta experiência diz respeito à implementação do circuito verificador de senhas, incluindo a montagem e os testes no painel de montagens experimentais.
3.1. Atividades Pré-Laboratório
a) Atividades de Familiarização: O circuito referente ao Fluxo de Dados do circuito verificador de senhas será fornecido aos alunos, programado na placa MAX7-PCS, com a funcionalidade conforme apresentada na figura 2. Os alunos deverão ligar suas entradas e saídas em chaves, botões, leds e displays de 7 segmentos para verificar seu funcionamento.
b) Realizar atividades de familiarização de funcionamento do circuito fornecido e verifique seu funcionamento. Anote observações e comportamentos que deverão ser usados no projeto do circuito verificador de senhas.
c) Verifique se a trepidação das chaves é tratada pelo circuito fornecido. Por exemplo, acione algumas vezes uma chave e veja se o contador é incrementado apenas uma vez a cada acionamento.
d) Verifique que funcionalidades são fornecidas e quais devem ser implementadas. Anote no relatório na forma de comentários.
e) Projeto do Circuito: Implemente o circuito verificador de senhas, conforme especificação apresentada e de forma a usar o módulo fornecido e estudado no item 3.1.b.
f) Documente e apresente um Manual de Usuário do projeto.
3.2. Montagem em Laboratório
g) A montagem do circuito Verificador de Senhas deverá ser realizada conforme planejado. Reporte o que aconteceu durante esta etapa.
h) A demonstração ao professor deve seguir as etapas abaixo: 1. Modo de Configuração
Nesta etapa, deverá ser apresentado o funcionamento do Modo de Configuração. A equipe deve planejar os passos necessários para esta etapa, mostrando os testes que devem ser efetuados para apresentar um circuito funcionalmente correto.
2. Modo de Segurança
Aqui, devem ser demonstrado o funcionamento do Modo de Segurança. A equipe deve planejar os procedimentos adequados para a demonstração do funcionamento correto do circuito.
3. Integração e Teste do circuito completo
Nesta etapa, o circuito completo do Verificador de Senhas deverá ser avaliado para se verificar o seu pleno funcionamento.
DICAS:
Para auxiliar a depuração do circuito, especifique sinais extras de teste e depuração (por exemplo, estado atual da unidade de controle).
O acionamento das chaves do painel de montagens experimentais gera a ocorrência da trepidação (“bounce”) do sinal elétrico. Mostre que isto é tratado no projeto.
3.3. Operação do Circuito
Nesta etapa, o circuito completo deverá ser avaliado. A sequência normal de utilização deverá ser testada pela equipe: inicialmente, uma senha deverá ser cadastrada, e depois, ao menos dois casos, serão analisados (senha válida e senha inválida). O uso dos sinais RESET e DESBLOQUEAR também deverão ser levados em conta.
i) A seguir, o funcionamento do circuito completo deverá ser demonstrado ao professor, de acordo com o Manual do Usuário escrito pela equipe.
3.4. Modificação do Projeto Base
j) Uma pequena modificação ou adaptação do projeto base será solicitada. Esta modificação deverá ser implementada tendo como base o circuito projetado pelo grupo. A descrição e a documentação desta modificação devem ser incluídas no relatório.
3.5. Atividades Pós-Laboratório
Após a conclusão das atividades programadas, responda as perguntas abaixo:
1. O que ocorre no circuito projetado, caso o usuário tente inserir mais de 16 dígitos quando estiver cadastrando uma senha? 2. O que ocorre na operação do circuito se o botão B1 (sinal RESET) fosse substituído por uma chave?
3. Como a lógica de bloqueio do circuito em caso de senha errada é implementada no circuito?
4. Como poderia ser implementada a característica de se permitir que o usuário tenha mais uma tentativa para “entrar” a senha correta?
5. Descreva que modificações seriam necessárias no projeto caso se desejasse a implementação de uma “senha padrão de fábrica”. (Uma senha padrão de fábrica seria uma segunda senha que permitiria a abertura da trava. Esta senha viria pré-programada no circuito.)
4. AVALIAÇÃO
A avaliação do projeto do Verificador de Senhas será realizada considerando o funcionamento correto de cada subsistema e a sua apresentação de maneira convincente pelos alunos ao professor.
5. BIBLIOGRAFIA
1. FREGNI, E. & SARAIVA, A. M. Engenharia do Projeto Lógico Digital: Conceitos e Prática. Editora Edgard Blücher Ltda, 1995.
2. MENEZES, Marlim Pereira, SATO, L.M., MIDORIKAWA, E.T. Projeto de Circuitos com Quartus II 9.1. Apostila de Laboratório Digital. 2011.
3. PCS-EPUSP. Cadeado Eletrônico. Apostila de PCS2308. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. Edição de 2001.
4. PCS-EPUSP. Cofre Digital. Apostila de PCS2308. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. Edição de 2002.
5. RANZINI, E.; HORTA, E. L.; MIDORIKAWA, E. T. Projeto de circuitos com MAX+PLUS II. Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. 2002.
6. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Digital Systems: principles and applications. 11th ed.,
Prentice-Hall, 2011.
6. MATERIAL DISPONÍVEL
Circuitos Integrados TTL
7400, 7404, 7408, 7432, 7474, 7485 (comparador de magnitude), 7486, 74138, 74148 (codificador de prioridade), 74151, 74161, 74163, 74175, 74189 (memória). Caso seja necessário o uso de outro componente, verifique antes sua disponibilidade no Laboratório Digital.
7. EQUIPAMENTOS NECESSÁRIOS
1 painel de montagens experimentais.
1 fonte de alimentação fixa, 5V 5%, 4A.
1 osciloscópio digital.
1 multímetro digital.
1 gerador de pulsos.
1 placa de lógica programável MAX7-PCS.
1 computador com o programa Altera Quartus II.
Histórico de Revisões E.T.M./2002 – adaptação
E.T.M./2003 – revisão e adaptação E.T.M./2004 – revisão E.T.M./2006 – revisão E.T.M./2010 – revisão E.T.M./2012 – revisão E.T.M./2013 – revisão E.T.M./2014 – revisão