Projeto de um Controlador Digital de Abertura de Portas

 

Ricardo R. Gudwin

DCA-FEEC-UNICAMP

Agosto de 2003

 

Introdução

 

Em ambientes comerciais e industriais, bem com em prédios públicos, existe um grande número de salas e um grande número de pessoas que devem acessar essas salas. Entretanto, nem todas as pessoas possuem as mesmas permissões de acesso, sendo que algumas salas são de uso exclusivo de grupos restritos de pessoas, e certas pessoas têm acesso permitido somente a certo conjunto de salas. Uma maneira de tornar bastante efetivo um protocolo de acesso como esse, é implementando-se controladores digitais de abertura de portas, que permitam o acesso às salas, somente aos portadores de uma senha adequada.

Controladores desse tipo são encontrados em diversos graus de sofisticação e complexidade, desde sistemas isolados até sistemas com acesso de rede e controle remoto. Usualmente, consistem de um teclado, disponibilizado na parte externa da porta que se conecta por meio de uma interface adequada a um micro-controlador, que além do teclado também controla outros periféricos, tais como beepers, o sinal de abertura de porta na fechadura, expansões de memória, interface serial, interface de rede, etc. Exemplos de controladores como esse podem ser encontrados, por exemplo, em alguns dos laboratórios no bloco E, onde para abrir a porta, necessitamos de inserir nossa identificação e uma senha.

Neste semestre, estaremos desenvolvendo como projeto para o curso de EA079 um controlador digital de abertura de portas.

 

Um Controlador de Abertura de Portas

                                                

Por questão de simplicidade, o controlador de abertura de portas a ser desenvolvido neste semestre não terá acesso a rede, mas deverá ser um controlador standalone. Uma visão da arquitetura do controlador pode ser apreciada na figura abaixo:

 

 

Nesta arquitetura, vemos à esquerda o teclado, que se conecta com o HC11 por meio de uma interface com o teclado, à direita uma expansão de memória, que se conecta com o HC11 por meio de uma interface com a memória, e uma interface paralela de saída, que controla simultaneamente um conjunto de LEDs, um Beeper e o sinal de acionamento de abertura da fechadura.

O funcionamento de circuito deve ser conforme a seguir:

- Inicialmente, o sistema prevê a existência de um administrador, que deve possuir uma identificação e uma senha. Esse administrador nunca deixa de existir no sistema. Para abrir a porta, o administrador entra pelo teclado com o código numérico que o identifica (utilizando uma sequência numérica padrão, como 000000, por exemplo), seguido do caracter # e em seguida sua senha (que deve ser programada hard-coded no sistema) e novamente o caracter #. A cada botão do teclado pressionado, deve haver um beep que identifica que o dígiito foi pressionado. Em seguida, o sistema deve abrir a fechadura da porta, enviando um pulso digital à fechadura.

- Além de abrir a porta, o administrador poderá programar outros usuários. Para isso, ao invés de pressionar inicialmente sua identificação numérica, ele pressionará a tecla * seguida do dígito 1. Em seguida, deverá digitar sua senha, o caracter #, o identificador do usuário que está sendo cadastrado, o caracter #, a senha do novo usuário e novamente o caracter #. Todo esse procedimento deve ser monitorado por um conjunto de LEDs que identificam em que estágio da sequência o sistema se encontra. Ao terminar o procedimento, o novo usuário está cadastrado, e poderá acessar a porta, da mesma maneira que o administrador.

- O administrador pode também cancelar usuários (só não pode cancelar a si próprio). Nesse caso, ele deve iniciar o procedimento teclando * e o dígito 2. Em seguida, digita sua senha, o caracter #, o identificador do usuário sendo cancelado e novamente o caracter #. Da mesma maneira, os LEDs devem indicar em que estágio do procedimento o sistema se encontra.Ao final do procedimento, o usuário em questão será cancelado, deixando de existir no sistema.

 

Estágios de Desenvolvimento

O desenvolvimento do projeto se dará em 4 etapas. Inicialmente desenvolveremos a Interface Paralela de Saída, que controlará os LEDs, o Beeper e a Fechadura. Em seguida, desenvolveremos a interface com o teclado e depois, projetaremos uma expansão de memória. Essa expansão de memória deverá simular uma EPROM que carregaria o código do programa, de modo que possamos fazer um experimento em que o sistema funcione em modo standalone, desacoplado do PC que é utilizado para desenvolvimento. Essa simulação de EPROM se dará por meio da inserção de um Jumper no sinal que alimenta o pino de escrita da memória. Ao retirarmos o Jumper, a memória não poderá mais ser escrita, agindo portanto como uma memória ROM. Um efeito semelhante aconteceria se substituíssemos a memória RAM por uma EPROM, obtendo a simulação desejada.

Ao final desses três estágios, procederemos à etapa final, de integração. Nessa etapa, todos os módulos devem ser conectados e um programa que implemente o controlador de porta deve ser desenvolvido. Da mesma forma, algumas modificações devem ser efetuadas na configuração da PDHC11-FEEC, para que o sistema inicialize (após o boot) no programa e não no monitor Buffalo, como normalmente é feito durante o desenvolvimento. Ao final do semestre, o sistema deverá estar completamente operacional.

 

Observações

Observe que esta especificação é uma especificação de alto nível, do tipo que um cliente traria como contribuição inicial de um projeto que estivesse contratando. O projeto definitivo (por exemplo, especificando quantos LEDs o sistema deve ter, como deve ser o beep, e outras questões técnicas como o formato do pulso a ser enviado à fechadura) devem ser definidos durante o desenvolvimento pelos alunos.