Projeto de um Controlador Digital de Abertura de Portas
Ricardo R. Gudwin
DCA-FEEC-UNICAMP
Agosto de 2003
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.
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.
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.
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.