SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
UTILIZANDO O MICROCONTROLADOR PIC NA CONSTRUÇÃO DE UMA
SOLUÇÃO DE ACESSO RESTRITO
Alan Carvalho de Assis1
, Afonso Cunha Silva Júnior2
Resumo  Este artigo apresenta um trabalho
interdisciplinar onde foram envolvidas as áreas de
programação, microcontroladores, eletrônica e sistemas
embarcados. O principal objetivo era resolver o problema
de acessos indevidos no laboratório de sistemas tempo real.
Algumas condições foram impostas, como: a aplicação teria
que ser independente, baixo custo para implementação,
permitir o gerenciamento de até 10 usuários e nesse
gerenciamento deveria incluir a possibilidade de mudar a
senha de acesso. Para atender a essas necessidades
procurou-se trabalhar com um recurso de programação que
atendesse expressamente o que estava sendo exigido, assim
definiu-se por utilizar um microcontrolador PIC, porém
além desses recursos vários outros foram necessários para
finalizarmos esse projeto.
Palavras Chaves  Microcontroladores, Sistemas
Embarcados, Linguagem de Programação.
INTRODUÇÃO
Os sistemas de controle de acesso visam restringir acessos
não autorizados à determinados setores e departamentos das
organizações, evitando assim danos em equipamentos,
acesso ilegal a informações importantes, roubos, entre outros
problemas.
Muitas empresas de tecnologias gastam verdadeiras
fortunas em sistemas de controle de acesso para ambientes
restritos e esquecem que de nada adiantará investir em
segurança se os funcionários e usuários não estiverem
preparados para lhe dar de forma eficaz com situações onde
o invasor convence a vítima a, literalmente, abrir as portas.
Prova disso são os engenheiros sociais, pessoas dispostas
a terem acessos ilegais às informações e recursos de
empresas de outras pessoas, que enganam até mesmo os
profissionais mais bem treinados para lidar com situações
que exigem precação e vigilância.
Uma boa referência com vários exemplos destes tipos de
práticas é o livro 'A Arte de Enganar'[3] de Kevin Mitnick,
famoso hacker e engenheiro social, que passou vários anos
na cadeia por este tipo de prática ilegal. Em seu livro
Mitnick explica que, ao contrário do que as pessoas pensam,
os hackers utilizam várias técnicas de engenharia social para
terem acesso aos dados e sistemas de computadores das
empresas.
Portanto de nada adiantará ter o sistema de controle de
acesso mais seguro do mundo se as pessoas que utilizarão
esta tecnologia não estão preparadas para evitar invasões e
roubos de informações.
Atualmente existem várias tecnologias destinadas aos
sistemas de controle de acesso, entre elas destacam-se as
biométricas. As principais tecnologias biométricas incluem
identificação de usuário por voz, reconhecimento facial,
reconhecimento de impressão digital e reconhecimento de
íris.
O projeto em destaque não utiliza recursos biométricos,
devido aos custos que estas tecnologias demandam. O
controle será realizado através de uma senha que o usuário
deverá digitar para ter acesso ao laboratório.
As vantagens deste sistema são: baixo custo, elimina o
inconveniente de ter que carregar as chaves, elimina o risco
de perda das chaves e que outras pessoas tenham acesso a
elas, entre outras vantagens.
O projeto aqui apresentado foi implantado no laboratório
de pesquisa LTR (Laboratório de Sistemas de Tempo Real)
do UnilesteMG.
O LTR é um laboratório de pesquisa voltado para o
desenvolvimento de pesquisas sobre sistemas de tempo real.
Por tratar-se de um ambiente restrito aos acadêmicos
pesquisadores e professores da instituição e por possuir
equipamentos e placas de alto valor, seu acesso deve ser
controlado.
Visando controlar os acessos físicos ao laboratório de
pesquisa LTR, foi proposto um sistema eletrônico de
controle de acesso. Inicialmente foi definido que o sistema
deveria possuir um baixo custo, cada usuário deveria possuir
uma senha individual e o usuário poderia alterar sua senha
sempre que desejasse.
Após esta definição foi realizada uma pesquisa em vários
sites de eletrônica, a fim de encontrar algum projeto que
atendesse a estas necessidades, porém nenhum projeto com
tais características foi encontrado. Entretanto um projeto
com algumas características importantes foi encontrado.
O projeto encontrado, cujo nome é 'Electronic door
codelock'[1], possuía as seguintes características:
· Baixo custo;
· Simplicidade;
· Esquemático e layout de circuito impresso disponíveis;
· Possibilidade de alteração de senha;
· Utiliza o microcontrolador PIC16F84;
· Licença de uso livre.
1
Alan Carvalho de Assis, Graduando em Sistemas de Informações pela UnilesteMG, Rua Tucamã, 534, Vila Militar, 35.170-000, Ipatinga, MG, Brazil,
alan@unilestemg.br
2
Afonso Cunha Silva Júnior, Professor da UnilesteMG, Av. Tancredo Neves, 3500, Bairro Universitário, 35170-054, Cel. Fabriciano, MG, Brazil,
acjunior@usiminas.com.br
Porém este projeto não atendia a uns pré-requisitos
básicos, entre eles a necessidade de cada usuário possuir
uma senha individual, visto que o projeto só aceitava uma
única senha. Como este projeto possuía os principais
requisitos necessários ao sistema de controle de acesso
proposto, foi definido que a melhor solução seria alterar o
projeto original para que o mesmo suportasse as
características necessárias.
E assim, semelhante ao processo que ocorre atualmente
com os chamados programas de código fonte aberto e com
os softwares livres, iniciou-se então as modificações sobre o
projeto 'Electronic door codelock'. Antes de realizar as
modificações o projeto original foi montado e testado,
verificando assim seu funcionamento como descrito na
página do projeto.
O desenvolvimento do projeto está implementado no
microcontrolador PIC16F84, portanto a seção seguinte faz
uma breve abordagem a este microcontrolador.
O MICROCONTROLADOR PIC16F84
Microcontrolador é um tipo especial de dispositivo
eletrônico que possui integrado em uma única pastilha de
silício (CI) o microprocessador, a memória (RAM, EPROM
e/ou EEPROM) e endereçadores de I/O.
O microcontrolador PIC16F84, desenvolvido pela
Microchip[2], utiliza um processador RISC (Reduced
Instruction Set Computer) de 8 bits, trabalhando com a
arquitetura Harvard que se caracteriza por possuir o
barramento de memória de programas separado do
barramento de memória de dados, como pode ser visto na
Figura 1.
FIGURA 1
ARQUITETURA DE HARVARD
Como a arquitetura Harvard separa os barramentos de dados
e de programas, tem-se então uma melhor fluência dos dados
pela CPU, o que, por conseqüência, gera um aumento da
velocidade de funcionamento.
O PIC16F84 possui um barramento de memória de
programas de 14 bits, permitindo que as instruções sejam
executadas em apenas um ciclo de máquina, pois nestes 14
bits estão inclusos a instrução propriamente dita (6 bits) e o
dado a ser operado (8 bits).
Por tratar-se de um microcontrolador RISC, o PIC16F84
possui um número reduzido de instruções, mais precisamente
35 instruções. Processadores do tipo CISC (Complex
Instruction Set Computer), por exemplo, os da família Intel
x86, possuem mais de 100 instruções.
O PIC16F84 é um microcontrolador de baixo custo
possuindo entre as principais características:
· Freqüência de clock de 10MHz;
· 1Kx14 bits de memória de programas (Flash);
· 68 bytes de memória de dados;
· 13 pinos de I/O.
O diagrama em blocos do PIC16F84 é apresentado na
Figura 2.
FIGURA 2
DIAGRAMA EM BLOCOS DO PIC16F84
Os sinais de I/O estão divididos em duas portas, que
fazem a ligação destes com o mundo externo. A 'PORTA A'
possui 5 pinos e a 'PORTA B' possui 8 pinos, totalizando 13
pinos de I/O.
O PROJETO ELECTRONIC DOOR CODELOCK
O Projeto 'Electronic Door Codelock' foi desenvolvido pelo
engenheiro elétrico húngaro Peter Jakab, que disponibilizou
gratuitamente na Internet o esquemático e o programa do
microcontrolador PIC.
O sistema consiste basicamente de uma fechadura elétrica
(fecho eletromagnético), um teclado matricial de 12 teclas
usando em aparelhos telefônicos convencionais e um
microcontrolador PIC16F84, além de outros componentes
discretos.
Todo o funcionamento lógico do projeto é implementado
diretamente no microcontrolador PIC16F84, o que permite
criar alterações significativas no funcionamento do projeto
sem necessitar alterar o circuito eletrônico.
O circuito funciona através de interrupções geradas pelo
teclado matricial, quando uma tecla é pressionada ela gera
uma interrupção, esta por sua vez ativa uma função que
guarda o código desta tecla numa fila FIFO (First In First
Out). Quando a fila está cheia (4 dígitos no projeto original)
e a tecla '#' é pressionada, os códigos armazenados nesta fila
são então comparados com o código da senha armazenada na
memória EEPROM.
Caso as seqüências de teclas digitadas sejam iguais às
seqüências do código da senha armazenada na memória
EEPROM um sinal de I/O é ativado, este sinal é responsável
por acionar o relé que dispara o fecho eletromagnético. Em
caso contrário, um longo sinal sonoro (beep) é gerado,
indicando que o código digitado está incorreto.
Se a tecla '#' for pressionada, mas a fila não estiver cheia,
todo o conteúdo que estava na fila é apagado, ou seja, a fila
será esvaziada.
O projeto original também permite alterar a senha que
inicialmente é hard coded na memória EEPROM, para isso o
usuário deverá digitar a senha atual, pressionar a tecla '*',
digitar a nova senha, pressionar a tecla '#', e confirmar a
nova senha, digitando-a novamente e pressionando '#'.
A senha padrão do projeto é '1234', mas o usuário poderá
alterá-la no próprio código fonte, digitando outro valor por
ele desejado, ou alterá-la quando o projeto estiver em
funcionamento, usando o método padrão de alterar senha,
visto anteriormente.
O usuário poderá também definir uma senha com mais de
quatro dígitos, para isso, ele deverá alterar a senha no código
fonte e a variável clen para que esta contenha a quantidade
de dígitos formada pela nova senha.
O esquemático eletrônico original do projeto 'Electronic
Door Codelock' é apresentado na figura 3, não foi necessário
fazer alterações neste projeto para que o mesmo suportasse
mais senhas, as alterações foram realizadas apenas no código
fonte do algoritmo gravado no microcontrolador PIC, como
será visto na próxima seção.
FIGURA 3
ESQUEMÁTICO DO 'ELECTRONIC DOOR CODELOCK'
ACRESCENTANDO MAIS SENHAS AO PROJETO
O projeto original, apesar de todas as suas qualidades,
não supria todas as necessidades básicas de um sistema de
controle de acesso, uma vez que não permitia a cada usuário
ter a sua própria senha.
Visando melhorar o projeto 'Electronic Door Codelock',
foi iniciada uma modificação para que o mesmo suportasse
tais características. O objetivo era suportar 10 senhas, porém
devido à limitação de memória EEPROM, preferiu-se
utilizar apenas oito senhas e elevar o número de dígitos das
senhas de quatro para seis, objetivando assim obter um
pouco mais de segurança.
As oito senhas foram adicionadas no código fonte do
programa, na região destinada à memória EEPROM, em
seguida, a função que verifica se a senha digitada está
correta ou incorreta foi alterada.
A alteração foi necessária porque a função que verifica a
senha só retornará verdadeiro (flag Z = 0) se a senha digitada
for igual a primeira senha salva na EEPROM. Se a senha
digitada não for igual à primeira ocorrência, o algoritmo não
deverá retornar falso imediatamente (flag Z = 1), mas sim
verificar se senha digitada coincide com alguma das demais
ocorrências na memória EEPROM e, somente se, a senha
não coincidir com nenhuma das ocorrências, deverá retornar
falso.
Após a função de verificação de senha ser alterada, o
algoritmo foi gravado no microcontrolador PIC e testado no
módulo de testes da DataPool, e então as senhas foram
testadas, assim pode-se verificar pequenos erros, que foram
corrigidos em seguida.
Para realizar a programação do PIC foi utilizado o
MPLAB da Microchip e o gravador PROGPIC[4].
Uma vez testada e corrigida a função de verificação de
senha, o próximo passo foi modificar a função de alteração
de senha. Como toda o operação é realizada apenas sobre um
cópia das senhas em memória RAM (Random Access
Memory), o processo de deslocamento para encontrar a
senha a ser alterada é semelhante ao utilizado pela função de
verificação de senha, porém esta função não retornará, mas
sim ficará aguardando o usuário digitar a nova senha.
A senha digitada pelo usuário é imediatamente copiada
sobre a senha antiga que está na memória RAM, porém esta
cópia em RAM só será gravada definitivamente na memória
EEPROM se o usuário digitar novamente a mesma senha.
Este algoritmo foi então gravado no PIC e testado no
módulo, então foi verificado que a função de alteração de
senha tinha funcionado como o esperado.
CONCLUSÃO
Através das alterações no projeto 'Electronic Door
Codelock' conseguiu-se atender ao objetivo inicial proposto
para um sistema de controle de acesso simples, e que pôde
ser implantado no laboratório LTR.
Como contribuição pelo uso do projeto original, as
modificações foram enviadas ao autor do projeto e este as
tornou disponível, para quem estiver interessado, em seu site
http://jap.hu/electronic/codelock.html.
AGRADECIMENTOS
Ao Centro Universitário do Leste de Minas Gerais pelo
apoio no desenvolvimento desse projeto.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Electronic door codelock,
www.jap.hu/electronic/codelock.html, 17 novembro 2003.
[2] Microchip, www.microchip.com, 24 novembro 2003.
[3] Mitnick, Kevin, D, "A Arte de Enganar", São Paulo, ed.
Makron Books, 2003.
[4] PROGPIC, http://www.kitpic.cjb.net , 03 novembro 2003.

Contenu connexe

En vedette

Justins Resume Sponsor
Justins Resume SponsorJustins Resume Sponsor
Justins Resume Sponsor
Justin Grube
 
Інга Воран – фестываль “Рок-вясна”, Пружаны.
Інга Воран – фестываль “Рок-вясна”, Пружаны.Інга Воран – фестываль “Рок-вясна”, Пружаны.
Інга Воран – фестываль “Рок-вясна”, Пружаны.
budzma
 
Don't apologise - it's the arts
Don't apologise - it's the artsDon't apologise - it's the arts
Don't apologise - it's the arts
Natalie Blackburn
 
Halcyon Dive Catalogue 2010
Halcyon Dive Catalogue 2010Halcyon Dive Catalogue 2010
Halcyon Dive Catalogue 2010
DiveStock
 
tanggung jawab auditor
tanggung jawab auditortanggung jawab auditor
tanggung jawab auditor
Sii Octavaryum
 

En vedette (12)

Justins Resume Sponsor
Justins Resume SponsorJustins Resume Sponsor
Justins Resume Sponsor
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Інга Воран – фестываль “Рок-вясна”, Пружаны.
Інга Воран – фестываль “Рок-вясна”, Пружаны.Інга Воран – фестываль “Рок-вясна”, Пружаны.
Інга Воран – фестываль “Рок-вясна”, Пружаны.
 
Market Metrics - January 2016
Market Metrics - January 2016Market Metrics - January 2016
Market Metrics - January 2016
 
Municipio
MunicipioMunicipio
Municipio
 
Don't apologise - it's the arts
Don't apologise - it's the artsDon't apologise - it's the arts
Don't apologise - it's the arts
 
Halcyon Dive Catalogue 2010
Halcyon Dive Catalogue 2010Halcyon Dive Catalogue 2010
Halcyon Dive Catalogue 2010
 
tanggung jawab auditor
tanggung jawab auditortanggung jawab auditor
tanggung jawab auditor
 
Canadian Sales 2015
Canadian Sales  2015Canadian Sales  2015
Canadian Sales 2015
 
Attention is a Currency
Attention is a CurrencyAttention is a Currency
Attention is a Currency
 
Праект "Замчышча"
Праект "Замчышча"Праект "Замчышча"
Праект "Замчышча"
 
Кірмаш праектаў - Гомель: 11. Фестываль ткацтва “Кросенцы”
Кірмаш праектаў - Гомель: 11. Фестываль ткацтва “Кросенцы”Кірмаш праектаў - Гомель: 11. Фестываль ткацтва “Кросенцы”
Кірмаш праектаў - Гомель: 11. Фестываль ткацтва “Кросенцы”
 

Similaire à Porta Eletronica

Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
Gabriel Lima
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
JADSON SANTOS
 
Protocolos e redes industriais
Protocolos e redes industriaisProtocolos e redes industriais
Protocolos e redes industriais
Everton_michel
 

Similaire à Porta Eletronica (20)

Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptx
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEMMICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Programando microcontroladores pic março
Programando microcontroladores pic marçoProgramando microcontroladores pic março
Programando microcontroladores pic março
 
Automacao residencial, a casa inteligente
Automacao residencial, a casa inteligenteAutomacao residencial, a casa inteligente
Automacao residencial, a casa inteligente
 
Robô seguidor de linha
Robô seguidor de linhaRobô seguidor de linha
Robô seguidor de linha
 
Computação Física e Internet das Coisas
Computação Física e Internet das CoisasComputação Física e Internet das Coisas
Computação Física e Internet das Coisas
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
TUDO SOBRE PLC
TUDO SOBRE PLCTUDO SOBRE PLC
TUDO SOBRE PLC
 
Introdução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoIntrodução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-curso
 
Protocolos e redes industriais
Protocolos e redes industriaisProtocolos e redes industriais
Protocolos e redes industriais
 
Aula de Robótica
Aula de RobóticaAula de Robótica
Aula de Robótica
 

Porta Eletronica

  • 1. UTILIZANDO O MICROCONTROLADOR PIC NA CONSTRUÇÃO DE UMA SOLUÇÃO DE ACESSO RESTRITO Alan Carvalho de Assis1 , Afonso Cunha Silva Júnior2 Resumo  Este artigo apresenta um trabalho interdisciplinar onde foram envolvidas as áreas de programação, microcontroladores, eletrônica e sistemas embarcados. O principal objetivo era resolver o problema de acessos indevidos no laboratório de sistemas tempo real. Algumas condições foram impostas, como: a aplicação teria que ser independente, baixo custo para implementação, permitir o gerenciamento de até 10 usuários e nesse gerenciamento deveria incluir a possibilidade de mudar a senha de acesso. Para atender a essas necessidades procurou-se trabalhar com um recurso de programação que atendesse expressamente o que estava sendo exigido, assim definiu-se por utilizar um microcontrolador PIC, porém além desses recursos vários outros foram necessários para finalizarmos esse projeto. Palavras Chaves  Microcontroladores, Sistemas Embarcados, Linguagem de Programação. INTRODUÇÃO Os sistemas de controle de acesso visam restringir acessos não autorizados à determinados setores e departamentos das organizações, evitando assim danos em equipamentos, acesso ilegal a informações importantes, roubos, entre outros problemas. Muitas empresas de tecnologias gastam verdadeiras fortunas em sistemas de controle de acesso para ambientes restritos e esquecem que de nada adiantará investir em segurança se os funcionários e usuários não estiverem preparados para lhe dar de forma eficaz com situações onde o invasor convence a vítima a, literalmente, abrir as portas. Prova disso são os engenheiros sociais, pessoas dispostas a terem acessos ilegais às informações e recursos de empresas de outras pessoas, que enganam até mesmo os profissionais mais bem treinados para lidar com situações que exigem precação e vigilância. Uma boa referência com vários exemplos destes tipos de práticas é o livro 'A Arte de Enganar'[3] de Kevin Mitnick, famoso hacker e engenheiro social, que passou vários anos na cadeia por este tipo de prática ilegal. Em seu livro Mitnick explica que, ao contrário do que as pessoas pensam, os hackers utilizam várias técnicas de engenharia social para terem acesso aos dados e sistemas de computadores das empresas. Portanto de nada adiantará ter o sistema de controle de acesso mais seguro do mundo se as pessoas que utilizarão esta tecnologia não estão preparadas para evitar invasões e roubos de informações. Atualmente existem várias tecnologias destinadas aos sistemas de controle de acesso, entre elas destacam-se as biométricas. As principais tecnologias biométricas incluem identificação de usuário por voz, reconhecimento facial, reconhecimento de impressão digital e reconhecimento de íris. O projeto em destaque não utiliza recursos biométricos, devido aos custos que estas tecnologias demandam. O controle será realizado através de uma senha que o usuário deverá digitar para ter acesso ao laboratório. As vantagens deste sistema são: baixo custo, elimina o inconveniente de ter que carregar as chaves, elimina o risco de perda das chaves e que outras pessoas tenham acesso a elas, entre outras vantagens. O projeto aqui apresentado foi implantado no laboratório de pesquisa LTR (Laboratório de Sistemas de Tempo Real) do UnilesteMG. O LTR é um laboratório de pesquisa voltado para o desenvolvimento de pesquisas sobre sistemas de tempo real. Por tratar-se de um ambiente restrito aos acadêmicos pesquisadores e professores da instituição e por possuir equipamentos e placas de alto valor, seu acesso deve ser controlado. Visando controlar os acessos físicos ao laboratório de pesquisa LTR, foi proposto um sistema eletrônico de controle de acesso. Inicialmente foi definido que o sistema deveria possuir um baixo custo, cada usuário deveria possuir uma senha individual e o usuário poderia alterar sua senha sempre que desejasse. Após esta definição foi realizada uma pesquisa em vários sites de eletrônica, a fim de encontrar algum projeto que atendesse a estas necessidades, porém nenhum projeto com tais características foi encontrado. Entretanto um projeto com algumas características importantes foi encontrado. O projeto encontrado, cujo nome é 'Electronic door codelock'[1], possuía as seguintes características: · Baixo custo; · Simplicidade; · Esquemático e layout de circuito impresso disponíveis; · Possibilidade de alteração de senha; · Utiliza o microcontrolador PIC16F84; · Licença de uso livre. 1 Alan Carvalho de Assis, Graduando em Sistemas de Informações pela UnilesteMG, Rua Tucamã, 534, Vila Militar, 35.170-000, Ipatinga, MG, Brazil, alan@unilestemg.br 2 Afonso Cunha Silva Júnior, Professor da UnilesteMG, Av. Tancredo Neves, 3500, Bairro Universitário, 35170-054, Cel. Fabriciano, MG, Brazil, acjunior@usiminas.com.br
  • 2. Porém este projeto não atendia a uns pré-requisitos básicos, entre eles a necessidade de cada usuário possuir uma senha individual, visto que o projeto só aceitava uma única senha. Como este projeto possuía os principais requisitos necessários ao sistema de controle de acesso proposto, foi definido que a melhor solução seria alterar o projeto original para que o mesmo suportasse as características necessárias. E assim, semelhante ao processo que ocorre atualmente com os chamados programas de código fonte aberto e com os softwares livres, iniciou-se então as modificações sobre o projeto 'Electronic door codelock'. Antes de realizar as modificações o projeto original foi montado e testado, verificando assim seu funcionamento como descrito na página do projeto. O desenvolvimento do projeto está implementado no microcontrolador PIC16F84, portanto a seção seguinte faz uma breve abordagem a este microcontrolador. O MICROCONTROLADOR PIC16F84 Microcontrolador é um tipo especial de dispositivo eletrônico que possui integrado em uma única pastilha de silício (CI) o microprocessador, a memória (RAM, EPROM e/ou EEPROM) e endereçadores de I/O. O microcontrolador PIC16F84, desenvolvido pela Microchip[2], utiliza um processador RISC (Reduced Instruction Set Computer) de 8 bits, trabalhando com a arquitetura Harvard que se caracteriza por possuir o barramento de memória de programas separado do barramento de memória de dados, como pode ser visto na Figura 1. FIGURA 1 ARQUITETURA DE HARVARD Como a arquitetura Harvard separa os barramentos de dados e de programas, tem-se então uma melhor fluência dos dados pela CPU, o que, por conseqüência, gera um aumento da velocidade de funcionamento. O PIC16F84 possui um barramento de memória de programas de 14 bits, permitindo que as instruções sejam executadas em apenas um ciclo de máquina, pois nestes 14 bits estão inclusos a instrução propriamente dita (6 bits) e o dado a ser operado (8 bits). Por tratar-se de um microcontrolador RISC, o PIC16F84 possui um número reduzido de instruções, mais precisamente 35 instruções. Processadores do tipo CISC (Complex Instruction Set Computer), por exemplo, os da família Intel x86, possuem mais de 100 instruções. O PIC16F84 é um microcontrolador de baixo custo possuindo entre as principais características: · Freqüência de clock de 10MHz; · 1Kx14 bits de memória de programas (Flash); · 68 bytes de memória de dados; · 13 pinos de I/O. O diagrama em blocos do PIC16F84 é apresentado na Figura 2. FIGURA 2 DIAGRAMA EM BLOCOS DO PIC16F84 Os sinais de I/O estão divididos em duas portas, que fazem a ligação destes com o mundo externo. A 'PORTA A' possui 5 pinos e a 'PORTA B' possui 8 pinos, totalizando 13 pinos de I/O. O PROJETO ELECTRONIC DOOR CODELOCK O Projeto 'Electronic Door Codelock' foi desenvolvido pelo engenheiro elétrico húngaro Peter Jakab, que disponibilizou gratuitamente na Internet o esquemático e o programa do microcontrolador PIC. O sistema consiste basicamente de uma fechadura elétrica (fecho eletromagnético), um teclado matricial de 12 teclas usando em aparelhos telefônicos convencionais e um microcontrolador PIC16F84, além de outros componentes discretos. Todo o funcionamento lógico do projeto é implementado diretamente no microcontrolador PIC16F84, o que permite criar alterações significativas no funcionamento do projeto sem necessitar alterar o circuito eletrônico. O circuito funciona através de interrupções geradas pelo teclado matricial, quando uma tecla é pressionada ela gera uma interrupção, esta por sua vez ativa uma função que guarda o código desta tecla numa fila FIFO (First In First Out). Quando a fila está cheia (4 dígitos no projeto original) e a tecla '#' é pressionada, os códigos armazenados nesta fila são então comparados com o código da senha armazenada na memória EEPROM. Caso as seqüências de teclas digitadas sejam iguais às seqüências do código da senha armazenada na memória EEPROM um sinal de I/O é ativado, este sinal é responsável por acionar o relé que dispara o fecho eletromagnético. Em caso contrário, um longo sinal sonoro (beep) é gerado, indicando que o código digitado está incorreto. Se a tecla '#' for pressionada, mas a fila não estiver cheia, todo o conteúdo que estava na fila é apagado, ou seja, a fila será esvaziada.
  • 3. O projeto original também permite alterar a senha que inicialmente é hard coded na memória EEPROM, para isso o usuário deverá digitar a senha atual, pressionar a tecla '*', digitar a nova senha, pressionar a tecla '#', e confirmar a nova senha, digitando-a novamente e pressionando '#'. A senha padrão do projeto é '1234', mas o usuário poderá alterá-la no próprio código fonte, digitando outro valor por ele desejado, ou alterá-la quando o projeto estiver em funcionamento, usando o método padrão de alterar senha, visto anteriormente. O usuário poderá também definir uma senha com mais de quatro dígitos, para isso, ele deverá alterar a senha no código fonte e a variável clen para que esta contenha a quantidade de dígitos formada pela nova senha. O esquemático eletrônico original do projeto 'Electronic Door Codelock' é apresentado na figura 3, não foi necessário fazer alterações neste projeto para que o mesmo suportasse mais senhas, as alterações foram realizadas apenas no código fonte do algoritmo gravado no microcontrolador PIC, como será visto na próxima seção. FIGURA 3 ESQUEMÁTICO DO 'ELECTRONIC DOOR CODELOCK' ACRESCENTANDO MAIS SENHAS AO PROJETO O projeto original, apesar de todas as suas qualidades, não supria todas as necessidades básicas de um sistema de controle de acesso, uma vez que não permitia a cada usuário ter a sua própria senha. Visando melhorar o projeto 'Electronic Door Codelock', foi iniciada uma modificação para que o mesmo suportasse tais características. O objetivo era suportar 10 senhas, porém devido à limitação de memória EEPROM, preferiu-se utilizar apenas oito senhas e elevar o número de dígitos das senhas de quatro para seis, objetivando assim obter um pouco mais de segurança. As oito senhas foram adicionadas no código fonte do programa, na região destinada à memória EEPROM, em seguida, a função que verifica se a senha digitada está correta ou incorreta foi alterada. A alteração foi necessária porque a função que verifica a senha só retornará verdadeiro (flag Z = 0) se a senha digitada for igual a primeira senha salva na EEPROM. Se a senha digitada não for igual à primeira ocorrência, o algoritmo não deverá retornar falso imediatamente (flag Z = 1), mas sim verificar se senha digitada coincide com alguma das demais ocorrências na memória EEPROM e, somente se, a senha não coincidir com nenhuma das ocorrências, deverá retornar falso. Após a função de verificação de senha ser alterada, o algoritmo foi gravado no microcontrolador PIC e testado no módulo de testes da DataPool, e então as senhas foram testadas, assim pode-se verificar pequenos erros, que foram corrigidos em seguida. Para realizar a programação do PIC foi utilizado o MPLAB da Microchip e o gravador PROGPIC[4]. Uma vez testada e corrigida a função de verificação de senha, o próximo passo foi modificar a função de alteração de senha. Como toda o operação é realizada apenas sobre um cópia das senhas em memória RAM (Random Access Memory), o processo de deslocamento para encontrar a senha a ser alterada é semelhante ao utilizado pela função de verificação de senha, porém esta função não retornará, mas sim ficará aguardando o usuário digitar a nova senha. A senha digitada pelo usuário é imediatamente copiada sobre a senha antiga que está na memória RAM, porém esta cópia em RAM só será gravada definitivamente na memória EEPROM se o usuário digitar novamente a mesma senha. Este algoritmo foi então gravado no PIC e testado no módulo, então foi verificado que a função de alteração de senha tinha funcionado como o esperado. CONCLUSÃO Através das alterações no projeto 'Electronic Door Codelock' conseguiu-se atender ao objetivo inicial proposto para um sistema de controle de acesso simples, e que pôde ser implantado no laboratório LTR. Como contribuição pelo uso do projeto original, as modificações foram enviadas ao autor do projeto e este as tornou disponível, para quem estiver interessado, em seu site http://jap.hu/electronic/codelock.html. AGRADECIMENTOS Ao Centro Universitário do Leste de Minas Gerais pelo apoio no desenvolvimento desse projeto. REFERÊNCIAS BIBLIOGRÁFICAS [1] Electronic door codelock, www.jap.hu/electronic/codelock.html, 17 novembro 2003. [2] Microchip, www.microchip.com, 24 novembro 2003. [3] Mitnick, Kevin, D, "A Arte de Enganar", São Paulo, ed. Makron Books, 2003. [4] PROGPIC, http://www.kitpic.cjb.net , 03 novembro 2003.