Publicité
Porta Eletronica
Porta Eletronica
Porta Eletronica
Prochain SlideShare
Minicurso Arduino e Blynk - Introdução a IoT (Internet das coisas)Minicurso Arduino e Blynk - Introdução a IoT (Internet das coisas)
Chargement dans ... 3
1 sur 3
Publicité

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.
Publicité