Projeto de um prottipo apresentado ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias do Curso de Cincia da Computao, para obteno do ttulo de bacharel
Orientador Prof. Rmulo Maia Alves
Lavras Minas Gerais - Brasil 2003
DANIEL AKIRA NUMAJIRI
DESENVOLVIMENTO DE UM SISTEMA DE CONTROLE DE DISPOSITIVOS VIA ACESSO REMOTO
Projeto de um prottipo apresentado ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias do Curso de Cincia da Computao, para obteno do ttulo de bacharel
Aprovada em 11 de Dezembro de 2003.
______________________________ Prof. Anderson Bernardo do Santos
______________________________ Prof. Luciano Mendes do Santos
_____________________________ Prof. Rmulo Maia Alves (Orientador)
Lavras Minas Gerais Brasil i Agradecimentos
Agradeo aos meus pais, pela base pessoal ensinada e todo o incentivo que eles me proporcionaram, a minha irm pela pacincia e companheirismo e aos meus amigos pelo apoio, dicas e risadas trocadas nos momentos de dificuldade. Aos professores do Curso de Bacharelado em Cincias da Computao pelos ensinamentos no decorrer do curso. E ao Luciano e Fabrcio, muito obrigado. ii Resumo Desenvolvimento de um Sistema de Controle de Dispositivos via acesso remoto
Atualmente, com os avanos da tecnologia, coisas que nem imaginvamos h alguns anos atrs se tornam possveis e viveis de implementar, tal como o fato de podermos controlar dispositivos na nossa casa em qualquer parte do mundo atravs da internet. Essa monografia tem como objetivo mostrar o desenvolvimento de um sistema de monitoramento e controle de uma lmpada e o estudo das formas de conexo e transmisso de dados na rede, os dispositivos de controle e comando gerados por controladores e atuadores. E a partir disso estabelecer um modelo base para o desenvolvimento futuro de outros sistemas de controle de dispositivos, como o monitoramento de estufas, granjas, controle de irrigao e dispositivos eletrnicos.
Abstract Development of a System of Control of Devices saw access remote Currently, with the advances of the technology, things that nor we imagined has some years behind become possible and viable to implement, such as the fact to be able to control devices in our house in any part of the world through the InterNet. This monograph has as objective to show to the development of a monitoramento system and control of a light bulb and the study of the connection forms and transmission of data in the net, the devices of control and command generated by controllers and actuators. E to leave of this to establish a model base for the future development of other systems of control of devices, as the monitoramento of greenhouses, farms, control of irrigation and electronic devices.
iii SUMRIO
1 Introduo 1 2 Fundamentao Terica 4 2.1 A Internet - Um pouco da histria............................................................4 2.1.1 Organizao....................................................................................5 2.1.2 Os Recursos da Internet..................................................................6 2.2 Ethernet e IEEE 802.3..............................................................................7 2.2.1 rvore da famlia Ethernet............................................................9 2.3 Introduo ao TCP/IP.............................................................................10 2.3.1 Arquitetura TCP/IP......................................................................11 2.3.2 O Protocolo IP..............................................................................13 2.3.3 O Protocolo TCP..........................................................................14 2.4 Sistema de Controles..............................................................................16 2.5 Interfaces de Comunicao.....................................................................17 2.5.1 Interface Serial.............................................................................18 2.5.2 Porta Serial...................................................................................19 2.5.3 Comunicaes Sncronas e Assncronas......................................21 2.5.4 Bits de Paridade............................................................................23 2.5.5 Polaridade de Sinal.......................................................................23 2.5.6 Velocidade de Envio dos Dados...................................................24 2.6 Micro-controladores Famlia PIC........................................................25 2.6.1 Arquitetura de Microcontroladores..............................................26 2.6.1.1 Memria de Programao.......................................................26 2.6.1.2 Memria de Dados..................................................................27 2.6.1.3 Unidade Lgica Aritmtica.....................................................27 2.6.1.4 Ciclo de Mquina....................................................................28 2.6.1.5 Pipeline....................................................................................28 2.6.1.6 Timer.......................................................................................30 2.6.1.7 Pre-scale..................................................................................30 2.6.1.8 Watchdog................................................................................30 2.6.1.9 Interrupo..............................................................................31 2.6.2 Microcontrolador PIC..................................................................33 2.6.3 PIC16F628...................................................................................33 2.7 Rels.......................................................................................................36 2.7.1 Os Rels na Prtica.......................................................................40 2.7.2 Tipos de Rels..............................................................................42 2.7.2.1 Contatos NA ou Normalmente Abertos..................................42 2.7.2.2 Contatos NF ou Normalmente Fechados................................43 iv 2.7.2.3 Contatos NA e NF ou Reversveis..........................................43 2.7.2.4 Rels abertos, fechados e selados...........................................45 2.7.3 Ligao dos rels ao circuito externo...........................................47 2.7.4 Caractersticas eltricas dos Rels................................................47 2.7.4.1 Caractersticas da bobina........................................................48 2.7.4.2 Caractersticas dos contatos....................................................50 2.7.5 Como usar um Rel......................................................................52 2.7.5.1 Proteo do circuito de acionamento......................................53 2.7.5.2 Proteo dos Contatos.............................................................55 3 Metodologia 57 3.1 Tipo de Pesquisa.....................................................................................57 3.2 Material Utilizado..................................................................................59 3.3 Planejamento..........................................................................................60 3.3.1 A escolha do dispositivo a ser utilizado.......................................60 3.3.2 O estudo do funcionamento do dispositivo..................................60 3.3.3 A criao da interface para a comunicao entre o dispositivo e o computador...................................................................................60 3.3.4 O desenvolvimento de softwares de controle da interface...........61 3.3.5 O desenvolvimento de um servidor de comunicao remota.......61 3.3.6 A modelagem da arquitetura final do sistema..............................62 3.3.7 O desenvolvimento de sistemas web............................................62 3.3.8 O desenvolvimento do prottipo..................................................63 3.3.9 O desenvolvimento de aplicaes distribudas sobre a arquitetura criada............................................................................................63 3.4 Desenvolvimento do Dispositivo de Controle.......................................64 3.4.1 Descrio do Sistema...................................................................64 3.4.2 Conexes via Cabo Serial e Paralelo............................................67 3.4.3 Servidor Internet...........................................................................69 3.4.4 Aplicao Desenvolvida...............................................................70 3.4.5 Software Aplicativo......................................................................73 3.4.6 Funcionamento do Hardware.......................................................77 4 Consideraes Finais 81 4.1 Dificuldades Encontradas.......................................................................81 4.2 Concluso...............................................................................................83 4.3 Trabalhos Futuros...................................................................................83
v LISTA DE FIGURAS
Figura 1 - Camadas da arquitetura TCP/IP .........................................................12 Figura 2 - Formato do datagrama IPv4 ...............................................................14 Figura 3 - Formato do segmento TCP ................................................................16 Figura 4 - Interface serial entre um computador e um dispositivo externo.........21 Figura 5 - Ciclo de Mquiina...............................................................................28 Figura 6 - Atuao do Pipeline............................................................................29 Figura 7 - Pinagem do PIC16F628......................................................................35 Figura 8 - Estrutura eltrica do Rel....................................................................36 Figura 9 - Abertura e fechamento dos contatos...................................................37 Figura 10 - Rel de contato simples....................................................................38 Figura 11 - Ativar uma carga de alta potncia.....................................................39 Figura 12 - A bobina de um Rel.........................................................................41 Figura 13 - Rels tipo NA....................................................................................42 Figura 14 - Rels tipo NF....................................................................................43 Figura 15 - Rel Reversvel.................................................................................44 Figura 16 - Comutao de duas cargas atravs do rel reversvel.......................44 Figura 17 - Rels abertos, fechados e selados.....................................................46 Figura 18 - Rels de 4 terminais..........................................................................47 Figura 19 - Conduo de corrente na Bobina......................................................51 Figura 20 - Proteo do Rel...............................................................................53 Figura 21 - Uso de um diodo para proteger o rel...............................................54 Figura 22 - Uso de um varistor para proteger o rel............................................55 Figura 23 - Uso do diodo em paralelo para evitar altas tenses..........................56 Figura 24 - Arquitetura final do sistema..............................................................62 vi Figura 25 - Maquete do laboratrio.....................................................................64 Figura 26 - Sensor reed-switch............................................................................64 Figura 27 - Diagrama do funcionamento do dispositivo de controle..................65 Figura 28 - Fluxograma do programa do microcontrolador................................66 Figura 29 - Fluxo das requisies e atuaes......................................................67 Figura 30 - Cdigo de Leitura.............................................................................71 Figura 31 - Cdigo de Escrita..............................................................................72 Figura 32 - Parte do cdigo main........................................................................72 Figura 33 - Cdigo main()...................................................................................73 Figura 34 - Trecho do cdigo TPageProducer.....................................................74 Figura 35 - Parte do cdigo que manipula as tags colocados dentro do html.....75 Figura 36 - Cdigo que monta as aes via serial...............................................76 Figura 37 - Trecho de cdigo para ter acesso a porta serial................................77 Figura 38 - Esquema eltrico do prottipo..........................................................78 Figura 39 - Prottipo............................................................................................79 Figura 40 - Regulador de Tenso........................................................................80
vii LISTA DE TABELAS
Tabela 1 - Tecnologias do padro Ethernet.........................................................10 Tabela 2 - COM1/COM2 RS-232 Porta Serial ( DB-9/DB-25 ).........................20 1 Captulo 1
Introduo
Com o crescimento das novas tecnologias de comunicao e o aumento progressivo do nmero de eletro-eletrnicos utilizando essas tecnologias, torna- se interessante o incentivo pesquisas nesta direo. Um dos exemplos mais conhecidos do momento a utilizao de aparelhos celulares permitindo o acesso Internet. Juntamente com outros dispositivos portteis como Palms, Cassiopeias, etc, estes equipamentos visam permitir que usurios acessem servios j existentes e, em sua maioria, a um custo maior e com uma menor qualidade. Outros exemplos de sistemas que atuam nesta rea, porm com outro enfoque, so os desenvolvedores de tecnologias para a interligao e comunicao entre eletrodomsticos, nas quais equipamentos como geladeiras so capazes de fazer o controle de qualidade e de estoque dos mantimentos nelas armazenados. Sistemas como este, acabam por aproveitar os recursos que j esto disponveis como, por exemplo, compras on-line. Outro fator importante que podemos destacar a automao predial que j est presente em muitos lugares. Na atualidade no s os grandes edifcios corporativos de escritrio e comrcio requerem a introduo de sistemas de automao e controle em suas instalaes, o objetivo de gerenciar a utilizao de energia, o conforto dos ocupantes dentro dos ambientes, o acesso de pessoas, a comunicao, os sistemas prediais e de informtica e a preveno de acidentes e falhas de equipamentos, tambm so requeridos pelas residncias. A implantao de um simples controle de acesso e deteco de intruso ou o 2 monitoramento de acesso e o controle remoto de eletrodomsticos esto cada vez mais presentes no sistema de controle e gerenciamento das residncias. Partindo deste ponto de vista, as redes de computadores, que at algum tempo atrs, se ligavam apenas com outras redes de computadores (inclusive a Internet), agora esto conhecendo novos vizinhos e parceiros. Cada vez mais novas aplicaes so idealizadas e projetos so colocados em desenvolvimento no sentido de atingir tais idias, de modo que podemos prever desde agora como sero algumas das novidades futuras. procurando permanecer atualizado em relao a estas novas tecnologias, e buscando possuir o conhecimento e a experincia de trabalhar com elas, que foi proposto o desenvolvimento deste projeto. O objetivo deste trabalho desenvolver um sistema de controle de dispositivos simples acessvel pela internet ou pela rede local a fim de torn-lo um modelo base para que, sempre que possvel, abstrair as idias bsicas do processo possibilitando sua utilizao em quaisquer outros tipos de sistemas, com pequenas adaptaes. O objetivo secundrio ser tentar adaptar o projeto no sistema operacional Linux, pelo fato de ser um ambiente de cdigo livre e possuir programas semelhantes ao do sistema operacional Windows, porm com custo zero. A motivao principal para o desenvolvimento deste trabalho foi suprir a falta de um projeto que envolvesse os conhecimentos adquiridos ao longo do curso de graduao em Cincia da Computao da Universidade Federal de Lavras. Tomando por base a grade curricular do curso, procurou-se por um projeto que englobasse os conhecimentos de hardware e software que so ministrados. Partindo-se disto, o tema escolhido inicialmente foi o desenvolvimento de uma interface para o computador de uma rede local. Sendo assim, esperamos 3 que o objetivo de se desenvolver um projeto envolvendo os conhecimentos de hardware possam ser alcanados. Para alcanar os objetivos de software, o tema foi expandido para a criao de uma arquitetura de rede que desse suporte para as aplicaes distribudas poderem acessar a interface de controle. Desta forma, para atender ambos os objetivos (os de software e de hardware), o trabalho dever ser o desenvolvimento de uma arquitetura para possibilitar aplicaes controlarem dispositivos eletrnicos no convencionais conectados a computadores. Alm disso, estaria em estudo tambm, todo o processo de implantao e configurao de um servidor, aquisio de conhecimento sobre a linguagem de script CGI (Common Gateway Interface), linguagem de programao C e pginas web, para que o processo fosse executado pela internet utilizando um browser qualquer. Como objetivos secundrios deste trabalho destacamos o ganho de experincia no desenvolvimento e gerenciamento de projetos, o aprendizado e utilizao de novas tecnologias e a possibilidade de desenvolvimento de possveis produtos comerciais futuramente. No captulo 1, ser apresentada uma breve introduo sobre o tema proposto, os objetivos e a organizao do trabalho. No captulo 2, sero mostrados os fundamentos e os conceitos sobre a Internet, o protocolo Transmission Control Protocol (TCP) e o Internet Protocol (IP), a arquitetura de rede Ethernet, sistemas de controles, interfaces de comunicao, microcontroladores e rels para uma melhor compreenso da rea e que serve de base para o desenvolvimento do trabalho. No captulo 3, ser mostrado o tipo de metodologia que o projeto seguir, informando o material utilizado e os passos de desenvolvimento do prottipo. 4 No captulo 4 sero mostradas as dificuldades encontradas durante o desenvolvimento do prottipo, uma breve concluso e trabalhos futuros.
Captulo 2
Fundamentao Terica
Neste captulo so apresentados os fundamentos e os conceitos das tecnologias que servem de base para o desenvolvimento do trabalho. Estas tecnologias so importantes para que sejam alcanados os objetivos do trabalho e o conseqente entendimento destes objetivos.
2.1 A Internet Um pouco da histria
Grande parte da Internet resultou da "evoluo" de um sistema criado em 1969. Nesta poca, uma diviso do Departamento de Defesa dos EUA - a Agncia de Projetos de Pesquisa Avanada em Defesa (DARPA) concluiu que o pas precisava criar um modo fcil de trocar informaes militares entre cientistas e pesquisadores localizados em diferentes regies geogrficas. O objetivo, segundo [Stang (1994)], era desenvolver um conjunto de protocolos de comunicao, os quais permitiriam computadores ligados em rede comunicarem-se de forma transparente entre vrias redes diferentes. O sistema de protocolos que foi criado chamou-se TCP/IP. Uma rede simples de quatro computadores, conhecida como DARPANET, foi desenvolvida. Algum tempo depois foi rebatizada de 5 ARPANET e, em 1972, cresceu a ponto de incluir 37 computadores e, ao mesmo tempo, o modo de utilizao da rede comeou a mudar. Alm de ser empregado para trocar informaes importantes, sobre atividades militares, os usurios da ARPANET, comearam a enviar mensagens eletrnicas por meio de caixas de correio pessoais. Em 1990 a Internet comercial comeou a funcionar. Desde ento, o crescimento da internet tem sido simplesmente um fenmeno. O nmero de usurios saltou de 5.000 pessoas para cerca de 30 milhes em apenas dez anos, resultando em crescimento vertiginoso de 6.000%.
2.1.1 Organizao
A estrutura da Internet formada basicamente por trs figuras principais: os backbones, os provedores de acesso e os usurios finais. Backbones so grandes redes de computadores de alta velocidade, projetadas para a transmisso de um grande volume de dados. Pode-se dizer que os backbones so a espinha dorsal das redes de computadores. A Internet formada por vrios backbones espalhados pelo mundo, sendo que seu backbone principal encontra-se nos EUA. Um provedor de acesso conecta-se diretamente aos backbones da Internet, formando conexes dedicadas e permanentes. O objetivo do provedor de acesso fornecer aos usurios finais acesso Internet e a outros servios correlatos. Os usurios finais podem ser particulares ou empresas que desejam obter acesso Internet. Os usurios finais conectam-se aos provedores de acesso atravs de uma rede local ou da rede telefnica, via modem, e podem utilizar todos os recursos disponveis na Internet. 6 A estrutura dos backbones, provedores de acesso ou usurios finais na Internet formada por hosts, que so computadores que esto conectados a uma nica rede fsica e tm o objetivo de executar programas aplicativos, e roteadores, que so computadores conectados a duas ou mais redes fsicas e so responsveis pela transmisso entre as redes.
2.1.2 Os Recursos da Internet
Mesmo possuindo recursos ilimitados, a cada dia surgem novas possibilidades e tecnologias de utilizao da rede. Cita-se os principais: a) correio eletrnico: baseado no protocolo de aplicao Simple Mail Transfer Protocol (SMTP), um recurso que permite a troca de mensagens entre usurios. A troca das mensagens baseada em endereos no formato usurio@domnio, onde usurio corresponde a um nico usurio ou a um conjunto de usurios, e domnio corresponde ao nome do domnio de uma rede onde est localizada a caixa postal do usurio; b) telnet (Telecomunications Network): trata-se de um emulador de sistemas que, atravs de um programa cliente telnet, permite ao usurio conectar-se a outro host e, dependendo das suas permisses, executar aplicativos deste host, como se estivesse trabalhando nele localmente; c) network news: baseado no protocolo de aplicao Network News Transfer Protoco (NNTP), fornece artigos referentes a vrios assuntos, que so agrupadas em categorias denominadas newsgroups. Atravs de um programa de leitura de news o usurio pode conectar-se a um servidor de network news e ler os artigos disponveis; 7 d) transferncia de arquivos: baseado no protocolo de aplicao File Transfer Protocol (FTP) um recurso especializado na transmisso de arquivos pela Internet. Atravs de um cliente de FTP o usurio pode conectar-se a um host, analisar o sistema de arquivos em que est conectado e escolher quais arquivos deseja pegar ou enviar; e) www (World Wide Web): baseado no protocolo de aplicao Hipertext Transfer Protocol (HTTP) um sistema de busca de informaes em que a passagem de um documento para outro est embutida no prprio documento. A este mecanismo dado o nome de navegao por hipertexto. A www permite que sejam incorporados aos documentos recursos de multimdia e imagens. O usurio utiliza um programa denominado browser para ler os documentos da www. no protocolo HTTP que focaremos parte do nosso processo de desenvolvimento do sistema de controle de dispositivos, criando uma interface de computador capaz de comunicar com um microcontrolador que ser responsvel pelo envio de dados de leitura e escrita do dispositivo(liga/desliga) que ser criado, no caso, uma lmpada. Nesta interface ser feito um estudo na parte de programao de pginas web, linguagem de script CGI e linguagem de programao C, que far a comunicao entre o usurio e o dispositivo.
2.2 Ethernet e IEEE 802.3
A Ethernet a tecnologia de rede local (LAN) mais amplamente usada. A Ethernet foi projetada para ocupar o espao entre as redes de longa distncia, com baixa velocidade e as redes especializadas de sala de computao que transportam dados em alta velocidade por distncias muito limitadas. A Ethernet 8 bem adequada a aplicativos em que um meio de comunicao local deva transportar trfego espordico, ocasionalmente intenso, a altas taxas de dados. A arquitetura de rede Ethernet, segundo [Tanenbaum (1997)], tem suas origens nos anos 60, na Universidade do Hava, onde o mtodo de acesso que usado pela Ethernet, carrier sense multiple access/collision detection (CSMA/CD), foi desenvolvido. O Palo Alto Research Center (PARC), da Xerox Corporation, desenvolveu o primeiro sistema Ethernet experimental no incio dos anos 70. Isso foi usado como base para a especificao 802.3 do Institute of Electrical and Electronic Engineers (IEEE), lanada em 1980. Logo aps a especificao 802.3 de 1980 da IEEE, a Digital Equipment Corporation, a Intel Corporation e a Xerox Corporation desenvolveram conjuntamente e lanaram uma especificao Ethernet, verso 2.0, que foi substancialmente compatvel com a IEEE 802.3. Juntas, a Ethernet e a IEEE 802.3 detm atualmente a maior fatia de mercado de todos os protocolos LAN. Hoje, o termo Ethernet freqentemente usado para se referir a todas as LANs baseadas em CSMA/CD que normalmente esto em conformidade com as especificaes Ethernet, incluindo a especificao IEEE 802.3. A Ethernet e a IEEE 802.3 especificam tecnologias similares: ambas so LANs baseadas em CSMA/CD. Estaes em uma LAN CSMA/CD podem acessar a rede a qualquer momento. Antes de enviar dados, as estaes CSMA/CD escutam a rede para determinar se ela j est em uso. Se estiver, ento elas aguardam. Se a rede no estiver em uso, as estaes transmitem. Uma coliso ocorre quando duas ou mais estaes escutam o trfego da rede, no ouvem nada e transmitem simultaneamente. Neste caso, as transmisses so prejudicadas e as estaes devem retransmitir mais tarde. Algoritmos de recuo determinam quando as estaes que colidiram podem retransmitir. As estaes CSMA/CD devem detectar colises, assim, elas sabem quando devem parar a transmisso para retransmitir mais tarde. 9 [Tanenbaum (1997)] diz que ambas as LANs Ethernet e IEEE 802.3 so redes de broadcast. Isso significa que todas as estaes de uma LAN podem ver todos os quadros, independentemente de serem ou no o destino daqueles dados. Cada estao deve examinar os quadros recebidos para determinar se ela o destino. Se for, o quadro passado a um protocolo de camada mais alto dentro da estao para processamento apropriado. As diferenas entre as LANs Ethernet e IEEE 802.3 so sutis. A Ethernet fornece servios correspondentes s camadas 1 e 2 do modelo de referncia OSI, enquanto a IEEE 802.3 especifica a camada fsica, a camada 1, e a parte de acesso a canais da camada de enlace, a camada 2, mas no define um protocolo de controle de enlace lgico, o que feito pelo IEEE 802.2 (Logical Link Control - LLC). Ambas as LANs Ethernet e IEEE 802.3 so implementadas atravs de hardware. Normalmente, a parte fsica desses protocolos uma placa de interface em um host ou um conjunto de circuitos em uma placa de circuitos principal no host.
2.2.1 rvore da famlia Ethernet
Segundo [Tanenbaum (1997)], existem pelo menos 18 variedades de Ethernet especificadas ou em processo de especificao. A Tabela 1 reala algumas das mais comuns e mais importantes tecnologias Ethernet.
10 Tabela 1: Tecnologias do padro Ethernet
2.3 Introduo ao TCP/IP
O termo TCP/IP refere-se aos dois principais protocolos que o constituem: Transmission Control Protocol (TCP) e o Internet Protocol (IP). Existem inmeros outros protocolos que permitem a comunicao entre computadores, sendo o TCP/IP o mais difundido atualmente. O incio se deu quando o Departamento Americano de Defesa, no final da dcada de 60, resolveu criar um software de comunicao entre computadores de forma que fosse possvel a comunicao remota ou local, entre sistemas operacionais iguais ou diferentes utilizando ou no o mesmo tipo de hardware. O protocolo permitiu que, no comeo da dcada de 70, os computadores pudessem comunicar-se remotamente, sendo de suma importncia em navios de guerra ou entre porta-avies. Segundo [Starlin (1999)], para que isto fosse possvel, foi necessrio criar um sistema de comunicao onde a rede como um todo fosse dividida em pequenas redes independentes, passando a usar como padro de interconexo o TCP/IP. 10Base-T 10Base-FL 100Base-TX 100Base-FX UTP Cat 5 Fibra ptica UTP Cat 5 Fibra ptica 10Mbps 10Mbps 100Mbps 100Mbps 100m 100m 2000m 2000m Estrela Estrela Estrela Estrela Barramento Barramento Barramento Barramento Tipo Meio Taxa Mxima Comprimento mximo do segmento Topologia fsica Topologia lgica 11 Como o Departamento Americano de Defesa sempre foi um dos maiores compradores de sistemas de informtica, comunicou que somente compraria as tecnologias que tivessem incorporado o TCP/IP. Desde ento, todos os sistemas operacionais e produtos trazem implementado o conjunto TCP/IP. O TCP/IP possui como algumas de suas caractersticas bsicas a independncia tecnolgica, interconexo universal, comunicao fim-a-fim, padres de protocolos para as diversas aplicaes. Uma das caractersticas mais importantes a flexibilidade de adaptao s tecnologias de redes existentes e futuras, pois o TCP/IP foi concebido de forma independente das tecnologias de redes. A comutao por pacote packet-switching, segundo [Redes (2001)], a base de sua tecnologia de comunicao e utiliza o pacote datagram como unidade de transmisso de dados. Cada host conectado rede possui um endereo nico, possibilitando que a mquina emitente reconhea a mquina receptora.
2.3.1 Arquitetura TCP/IP
Segundo [Comer (1998)], a arquitetura TCP/IP, apresentada na Figura 1, trata de um conjunto de protocolos divididos em quatro camadas, sendo que cada uma destas camadas possui funes bem definidas.
12
Camada de Aplicao Dados
Camada de Transporte Cabealho Dados
Camada Internet Cabealho Cabealho Dados
Enlace de Cabealho Cabealho Cabealho Dados Dados
Figura 1: Camadas da arquitetura TCP/IP
Conforme a Figura 1, as camadas so: a) camada de aplicao: segundo [Stevens (1994)] nesta camada que esto os protocolos de alto nvel como terminal virtual (TELNET), protocolo de transferncia de arquivos (FTP), protocolo de envio de correio eletrnico (SMTP) entre outros. nesta camada que esto os programas dos usurios. b) camada de transporte: responsvel por uma comunicao entre dois hosts fim a fim, podendo oferecer comunicaes orientadas ou no orientadas conexo. Fazem parte desta camada os protocolos Transmission Control Protocol (TCP) e User Datagram Protocol (UDP). c) camada inter-redes ou internet: onde est implementado o protocolo Internet Protocol (IP). Equivalente camada de Rede no modelo OSI, onde feito o roteamento e a entrega dos pacotes IP. d) camada de enlace: responsvel por encapsular os pacotes da camada inter-redes no formato especfico da rede associada e extrair os pacotes 13 dos quadros vindos da rede e encaminh-los camada Inter-redes. O protocolo ARP encontra-se nessa camada.
2.3.2 O Protocolo IP
O Internet Protocol (IP) teve origem em 1970 no desenvolvimento da ARPANET, a qual foi depois interligada a outras redes formando em 1980 um vasto conjunto que passou a ser conhecido por Internet. Com a incluso do protocolo IP no UNIX, em 1982, um grande nmero de universidades passou a formar as suas redes que por sua vez tambm foram ligadas Internet. O Internet Protocol (IP) designado para o uso em sistemas de computadores interconectados (redes), utilizando troca de pacotes. O IP fornece transmisso de blocos de dados chamados datagramas entre origem e destino, sendo que origem e destino so hosts identificados por um endereo de tamanho fixo. Outra funo do IP, definido na [RFC 791 (2001)], a fragmentao e desfragmentao de datagramas longos, se necessrio, para transmisso atravs de redes que apresentam um desempenho melhor com pacotes menores. O protocolo IP especificamente limitado em escopo para fornecer as funes necessrias para entregar um pacote de bits (um datagrama internet) de uma origem para um destino em uma rede de computadores. No h mecanismos para aumentar a confiana fim-afim dos dados, assegurar a seqncia dos datagramas, ou outros servios comumente encontrados em outros protocolos host-to-host. Segundo [Comer (1998)], o pacote pode ser perdido, reproduzido, atrasar-se ou ser entregue com problemas, mas o servio no detectar tais condies, nem informar isso ao transmissor nem ao receptor. Tambm considerado sem conexo porque cada pacote, segundo [Comer (1998)], independente dos outros. Uma seqncia de pacotes enviados de um computador 14 a outro pode trafegar por caminhos diferentes, ou alguns podem ser perdidos enquanto outros so entregues. O formato do datagrama IP est ilustrado na Figura 2:
Figura 2: Formato do datagrama IPv4
2.3.3 O Protocolo TCP
O Transfer Control Protocol (TCP) um protocolo de transporte orientado conexo. Ele garante a confiabilidade da comunicao entre pares de processos localizados em mquinas ligadas ou no a uma mesma rede. Possui como caractersticas principais o estabelecimento e a liberao de conexes em trs fases (handshake triplo); a manipulao da entrega confivel dos pacotes; a entrega seqencial dos pacotes (na ordem em que foram enviados); controle do fluxo de dados, impedindo que pacotes sejam processados em uma velocidade superior capacidade do aplicativo; a recuperao de erros no caso de perda, alterao ou duplicao de pacotes; a demultiplexao do trfego de entrada entre as mltiplas aplicaes usurias. VERS HLEN Service type Total Length Identification Fragment offset FLAGS Time To Live Protocol Header Checksun Source IP Address Destination IP Address IP Options (IF ANY) DATA Pauding 0 4 8 16 19 24 31 15 O protocolo TCP especifica o formato dos dados e das confirmaes que dois computadores trocam para oferecer uma transferncia confivel e, tambm, os procedimentos de que se valem os computadores para assegurar que os dados cheguem corretamente. Especifica ainda como o software TCP confirma os mltiplos destinos em determinada mquina e como as mquinas recuperam-se de erros como pacotes duplicados ou perdidos. O TCP trata o fluxo de dados recebidos da aplicao como uma cadeia (stream) de bytes ou octetos, que vo sendo agrupados dentro do buffer de transmisso. Periodicamente o TCP separa um determinado conjunto de dados a adiciona um cabealho, formando o que chamado de segmento, sendo este a unidade bsica de transferncia de dados. O TCP permite que programas aplicativos mltiplos, de determinada mquina, comuniquem-se simultaneamente. Como o UDP, o TCP utiliza nmeros de porta de protocolo para identificar o destino final em uma mquina. Os projetistas preferiram utilizar o mesmo nmero de portas para qualquer servio que seja acessvel pelo TCP e UDP, tornando-os assim independentes. Os segmentos so trocados para estabelecer conexes, transferir dados, enviar confirmaes, informar tamanho de janelas e encerrar conexes. O formato do segmento TCP pode ser visualizado na Figura 3. Os protocolos TCP de ambas as pontas precisam concordar sobre o segmento mximo que iro transmitir, pois nem todas as redes tm o mesmo tamanho de segmento. Essa negociao feita utilizando o campo opes do segmento, especificado pelo MSS (maximum segment size). O tamanho ideal o que permite que os datagramas IP que transportam os segmentos sejam os maiores possveis, sem exigir a fragmentao em qualquer ponto ao longo do caminho.
16
]
Figura 3: Formato do segmento TCP
Para que seja possvel que as diversas aplicaes que utilizam o protocolo TCP comuniquem-se entre si, necessrio que ocorra um estabelecimento de conexo. Neste momento s mquinas passam a se conhecer trocando diversas informaes de controle e realizando uma verificao de autenticidade entre elas. O TCP um protocolo complexo que promove a comunicao atravs de uma grande variedade de tecnologias de rede. Segundo [Redes (2001)], a generalidade do TCP no parece interferir no seu desempenho. Informaes mais detalhadas podem ser encontradas em [Comer (1998)].
2.4 Sistema de Controles
Segundo [Kuo (1995)], um sistema de controle so coisas que acontece em nossa vida diria, que so numerosos objetivos que precisam ser realizados. Por exemplo, no domnio domstico, ns necessitamos regular a temperatura e umidade de residncias e edifcios para uma vida confortvel. Para o transporte, ns necessitamos controlar o automvel e avio para ir exatamente e com Porta Origem Porta Destino Nmero de Seqncia Nmero do Reconhecimento Tamanho da janela de Recepo Tamanho do cabealho Reserv. U R G A C K P S T S Y N P S H F I N Checksun Porteiro de dados urgentes Opes Enchimento Dados 0 4 16 24 31 17 segurana de um ponto a outro. Industrialmente, os processos de produo contm objetivos numerosos para os produtos que vo satisfazer s exigncias da eficcia da preciso e de custo. Um ser humano capaz de executar uma escala larga das tarefas, incluindo a tomada de deciso. Algumas destas tarefas tais como pegar um objeto e andar de um ponto a outro, so realizadas geralmente em uma forma rotineira. Sob determinadas circunstncias, algumas destas tarefas so executadas da melhor maneira possvel. Por exemplo, um atleta que percorre um trecho de 100 jardas tem o objetivo de percorrer essa distncia no menor tempo possvel. Um corredor de maratona, em outro caso, no somente deve percorrer a distncia no menor tempo possvel, como tambm, ele ou ela deve controlar o consumo da energia e planejar a melhor estratgia para a corrida. Os meios de conseguir estes "objetivos" envolvem geralmente o uso de sistemas de controle que implementam certas estratgias de controle. Baseado nos acontecimentos da nossa vida diria procurarei desenvolver um sistema de controle capaz de fornecer maneiras mais eficazes, rpidas e confortveis de suprir nossas tarefas do dia-a-dia.
2.5 Interfaces de Comunicao
No computador existem duas interfaces de comunicao clssicas: a interface paralela e a interface serial. A alguns anos atrs, toda impressora era conectada interface paralela e todo mouse era um dispositivo serial. Hoje, muitas inpressoras usam a interface USB e nos PCs mais novos, a porta padro para o mouse a PS/2. Contudo, as interfaces paralela e serial ainda existem em todos os computadores e podem ser muito teis.
18 2.5.1 Interface Serial
O termo oficial promulgado pela IBM para a porta serial porta de comunicaes de dados assncrona. Embora normalmente seja abreviado para porta assncrona ou porta de comunicao. Alm disso, como a grande maioria das ligaes seriais aceita pela industria do PC opera sob um padro chamado RS-232 (um nome dado por uma associao industrial, a Electronics Industry Association, ou EIA), a porta serial comum normalmente descrita por sua especificao como porta RS-232. Devido a simplicidade do hardware, a interface serial muito utilizada dentro da indstria eletro-eletrnica. Hoje, o padro de comunicao serial mais utilizado o EIA/TIA 232 ou, simplesmente, RS-232 (Recommended Standard). Com esse padro, pode-se estabelecer uma comunicao bidirecional entre dois dispositivos usando apenas trs fios. Da vem a sua simplicidade e praticidade. A comunicao RS-232 muito utilizada em microcontroladores. A maioria deles tem um perifrico exclusivo para comunicao RS-232. Por isso, a interface serial uma maneira simples e prtica de fazer o computador comunicar-se com o seu projeto. Por exemplo, voc pode construir um pequeno rob e fazer com que a sua programao seja feita conectando-se o microcontrolador (que controla o rob) ao seu computador atravs de uma interface serial. O problema de se utilizar comunicao serial entre o PC e um microcontrolador so os nveis de tenso exigidos pela interface serial. Geralmente, os microcontroladores trabalham com nveis de tenso entre 0 e 5V. Na interface serial do PC, os nveis envolvidos so -12 e 12V. Por isso, voc deve utilizar drivers de tenso para no "torrar" o seu microcontrolador. O driver de interface serial que utilizei neste projeto foi o MAX232. 19
2.5.2 Porta Serial
A porta serial o denominador comum das comunicaes por computador. At mesmo os PCs e perifricos mais primitivos aceitam uma porta serial. No importa o nome usado, todas as portas seriais da IBM so iguais, pelo menos funcionalmente. Todas usam 8, 16 ou 32 bits paralelos que um computador apanha do seu bus (barramento) de dados e vira de lado transformando uma tira de dados digitais em uma cadeia de pulsos que caminha bit a bit. Essa forma de comunicao recebe o nome serial porque os bits individuais de informao so transferidos em longas sries. Muitos infortnios podem cair sobre o vulnervel bit de dado serial medida que percorre a conexo. Um dos bits de um byte inteiro de dados pode se desviar deixando um pedao de dado com um valor menor na chegada do que na partida. Com a vaga no fluxo de dados, todos os outros bits pularo um lugar e assumiro novos valores. Ou ento pode ocorrer o caso oposto, de erros no fluxo da comunicao empurrar todos os bits para trs. De qualquer forma, o prognstico no bom. Com essa forma elementar de comunicaes seriais, um bit a mais ou a menos causar um erro em todos os bytes seguintes. Estabelecer comunicaes seriais confiveis significa contornar esses problemas de erro de bit e muitos outros mais. Graas a alguma engenhosidade digital, no entanto, as comunicaes seriais funcionam e funcionam bem o bastante para que um PC dependa delas. A tabela 3 apresenta a pinagem de conectores de 9 (DB-9) e 25 (DB-25) pinos de acordo com o padro RS-232. A maioria dos computadores atuais utilizam o conector de 9 pinos.
20 Tabela 2: COM1/COM2 RS-232 PORTA SERIAL ( DB-9 - DB25 ) DB 9 DB 25 PINO SINAL PINO 1 CD - Deteco da portadora 8 2 RXD - Recepo de dados 3 3 TXD - Transmisso de dados 2 4 DTR - Terminal de dados pronto 20 5 GND -Terra 7 6 DSR - Dado pronto 6 7 RTS - Permisso para envio 4 8 CTS - Permisso fornecida 5 DB9 MACHO
9 RI - Indicador de chamadas 22 DB25 MACHO
No projeto da interface para conexo a um dispositivo a ser controlado via porta serial, bastam 3 pinos (3 fios): pino 5 Terra, pino 3 transmisso de dados, pino 2 recepo de dados. A figura 5 mostra como ficaria o cabo serial com os devidos conectores para conectar um PC a um dispositivo externo.
21
Tx 3
3 Tx
Rx 2
2 Rx Rx 2
2 Rx
Tx 3
3 Tx GND 5
5 GND
GND 5
5 GND
Figura 5: Interface serial entre um computador e um dispositivo externo
2.5.3 Comunicaes Sncronas e Assncronas
Dois dos principais mtodos de comunicao serial so usados para evitar o desastre dos erros em bits seriais. Em um deles, os sistemas de envio e recepo so sincronizados por meio de algum tipo de sinal auxiliar, de modo que os dois lados da conexo estejam sempre alerta. Um clock, sincronizado entre a unidade de transmisso e recepo, temporiza com preciso o perodo que separa cada bit de dados. Um bit a mais ou a menos pode ser inesperada no fluxo de bits. Apenas olhando o relgio, voc pode distinguir as comunicaes por computador, um bit de dados real do rudo de interferncia. Essa forma de transferncia serial sincronizada pelo tempo chama-se comunicao sncrona, sendo uma tcnica usada principalmente em sistemas de grande porte. O sistema sincronizado falha sempre que os sistemas de envio e recepo perdem sua tranca de sinal mtuo. O fluxo de dados torna-se pouco mais do que um rudo. A alternativa incluir marcadores de lugar no fluxo de bits para ajudar acompanhar cada bit. Um marcador poderia, por exemplo, indicar a posio atribuda a um bit. Um bit ocorrendo sem o seu marcador poderia ser considerado como erro. Naturalmente, esse esquema simples teria muito desperdcio, exigindo dois sinais digitais (o marcador e o bit de dados) para cada bit de informao transferido. PC DB-9 fmea DB-9 macho DB-9 macho Dispositivo DB- 9 fmea 22 Um sistema intermedirio funciona melhor. Em vez de indicar cada bit, o marcador poderia indicar o inicio de um pequeno fluxo de bits. A posio de cada bit no fluxo poderia ser definida sincronizando-os a intervalos regulares. Embora esse mtodo seja semelhante a transferncia sncrona, os sistemas transmissor e receptor no precisam ficar presos, exceto por pequenos intervalos entre os marcadores. A chegada de um marcador indica ao sistema receptor para comear a procurar os bits e rodar um temporizador curto. O problema de enviar e receber timers fora de sincronismo so eliminados reiniciando-se o clock a cada marcador, reduzindo o perodo entre os marcadores, no h tempo suficiente para o timer se perder. Esse sistema de curto prazo temporizado normalmente chamado comunicao assncrona, pois os sistemas de envio e recepo no precisam estar sincronizados exatamente um com o outro. Os bits marcadores oferecem a tranca temporria necessria para distinguir um fluxo curto de bits de dados em seguida. A maioria das comunicaes seriais no PC usa esse esquema. Na maior parte dos sistemas assncronos, os dados so divididos em pequenos pedaos, cada um correspondendo aproximadamente a um byte. Cada um deles chama-se palavra, e pode conter de cinco a oito bits de dados. Os tamanhos de palavra mais usados so sete e oito bits, o primeiro porque inclui todos os caracteres de texto maisculos e minsculos em cdigo ASCII; o segundo porque cada palavra corresponde exatamente a um byte de dados. Como dados seriais, os bits de uma palavra so enviados um de cada vez por um canal de comunicao. Por conveno, o bit menos significativo da palavra enviado primeiro. O restante dos bits segue em ordem de grandeza crescente. Junto a esses bits de dados h um pulso muito especial de tamanho duplo chamado bit de incio; ele indica o incio de uma palavra de dados. Um ou mais bits de fim indicam o final da palavra. Entre o ltimo bit da palavra e o 23 primeiro bit de fim, um bit de paridade costuma ser includo para a verificao da integridade dos dados. Junto, os bits de dados, o bit de incio, o bit de paridade e os bits de fim compem um quadro de dados.
2.5.4 Bits de Paridade
Cinco tipos de bits de paridade podem ser usados na comunicao serial, dois deles oferecendo um meio de detectar erros de transmisso ao nvel de bit. Essa deteco de erros funciona contando o nmero de bits na palavra de dados e determinando se o resultado par ou mpar. Na paridade mpar, o bit de paridade ativado (passado para o nvel lgico um) quando o nmero de bits da palavra impar. A paridade par ativa o bit de paridade quando o total de bits de uma palavra par. Na paridade marca, o bit de paridade sempre ativado no importando o total de bits da palavra. A paridade espao sempre deixa o bit de paridade desativado. Nenhuma paridade significa que o quadro no tem espao para um bit de paridade. Embora emitindo um bit de integridade de dados (que pode ser fornecido por outros meios), isso permite comunicaes mais eficientes, comprimindo mais informaes em um determinado nmero de bits transmitidos.
2.5.5 Polaridade de Sinal
Todos os bits de um sinal serial no padro RS-232 so enviados pela linha de comunicao como pulsos passando para negativo superpostos a uma voltagem positiva normal mantida na linha de dados. Ou seja, a presena de um bit na palavra serial interromper uma voltagem positiva contnua com um breve pulso negativo. 24 Comparado com os sistemas lgicos normais, os dados no padro RS- 232 parecem estar de cabea para baixo. No h um motivo particularmente bom para essa inverso, exceto por ser o modo como as coisas tm sido feitas e, no caso das comunicaes, as coisas funcionam melhor quando todos usam o mesmo padro.
2.5.6 Velocidade de Envio dos Dados
Uma outra caracterstica importante de todo sinal serial a velocidade em que os bits no trem de dados serial so nominalmente enviados. O formato padro dessa medida muito simples: o nmero de bits enviados por segundo, com a unidade padro sendo um bit por segundo, ou bps. Por questes um tanto arbitrrio, as velocidades de bit so enumeradas em incrementos pouco usuais. A velocidade mnima comum 300 bps, embora esteja disponvel submltiplo mais lento: 50 100 e 150 bps. As velocidades mais rpidas simplesmente duplicam as velocidades anteriores, passando para 600, 1200, 4800, 9600 e 19200, a velocidade mais rpida aceita oficialmente pela IBM com portas seriais comuns controladas por microprocessador, encontradas nos modelos 50 a 80 do PS/2. Essas velocidades oficiais lentas so importantes porque o controle da porta serial por software impe uma carga to grande sobre o microprocessador do sistema que os chips mais lentos no podem trabalhar com velocidades maiores. Como as maiores velocidades no podem ser aceitas por todo o software, a IBM escolheu no sancionar tais velocidades em seus computadores mais antigos.
25 2.6 Micro-controladores Famlia PIC
O micro-controlador definido como sendo um sistema computacional integrado, pois ele possui unidade de processamento, memria e entradas e sadas integrados em um nico chip. A maioria das pessoas entende o sistema computacional como sendo o nosso computador pessoal. No entanto todo sistema que a partir de dados de entrada, executa algum processamento mediante um programa armazenado em uma memria gerando uma sada chamado de sistema computacional. Neste projeto, utilizei um microcontrolador da famlia PIC, portanto darei uma viso geral das caractersticas e funes deste microcontrolador. Um dos aspectos mais interessantes do PIC que, mesmo sendo a maior famlia de micro-controladores do mercado em termos de variedade de modelo, todos os modelos foram desenvolvidos a partir da mesma filosofia de produto. Esta caracterstica da famlia PIC permite a compatibilidade de cdigos (linguagem assembler) e a estruturao das aplicaes, pois um cdigo escrito para um modelo de PIC poder ser migrado para outro modelo equivalente em termos de recursos necessrios sem que sejam necessrias grandes mudanas no cdigo fonte. Isto facilita o trabalho de quem desenvolve e preserva o investimento de quem produz. Um sistema computacional composto por uma unidade de processamento, memria e portas de entrada/sada (I/O). A maioria das pessoas limita os conceitos de sistema computacional ao computador que temos em casa, vulgo PC (Personal Computer). No entanto todo sistema que a partir de dados de entrada, executa algum processamento mediante um programa armazenado em uma memria gerando uma sada chamado de sistema computacional. Podemos definir micro-controlador como sendo um sistema computacional integrado, pois ele possui unidade de 26 processamento, memria e entradas e sadas integrados em um nico chip. Alguns ainda possuem perifricos como conversores A/D e D/A, comparadores. Os microcontroladores chegam a custar muitas vezes mais barato do que um transistor. Existe uma quantidade grande de C no mercado, veja alguns nomes a baixo:
A arquitetura de um sistema digital define quem so e como as partes que compe o sistema esto interligadas. As duas arquiteturas mais comuns para sistemas computacionais digitais so as seguintes: Arquitetura de Von Neuman: A Unidade Central de Processamento interligada memria por um nico barramento. O sistema composto por uma nica memria onde so armazenados dados e instrues. Arquitetura de Harvard: A Unidade Central de Processamento interligada a memria de dados e a memria de programa por barramento especfico.
2.6.1.1 Memria de Programao
A memria de programao onde as instrues do programa so armazenadas. No caso do 16F628 esta memria de 2048 palavras (words) de 27 14 bits cada uma. Partes destes 14 bits informam o OPCODE (cdigo da instruo) e o restante traz consigo o argumento da instruo correspondente. Na familia PIC existem trs tipos de memria de programa: EPROM (O.T.P. One Time Programable), EEPROM (janelado) e FLASH. Existem duas posies da memria do programa que recebem nomes especiais: vetor de reset e vetor de interrupo. O vetor de reset para onde o programa vai quando ele inicializado, enquanto que o vetor de interrupo a posio da memria de programa para onde o processamento desviado quando ocorre uma interrupo.
2.6.1.2 Memria de Dados
A memria de dados uma memria voltil do tipo R.A.M. (random access memory). O mapa de memria divido em duas partes: registradores especiais (special function register - S.F.R.) e registradores de uso geral (general purpose register - G.P.R.). Como o ponteiro da memria de programa tem capacidade de enderear somente 128 posies de memria de cada vez (7 bits), a memria de programa dividida em bancos (banco 0 e banco 1 no 16F84). Esta diviso implica em termos posies de memria que somente podero ser acessadas caso o banco a que ela pertena seja previamente selecionado atravs de um bit especfico do S.F.R. STATUS.
2.6.1.3 Unidade Lgica Aritmtica
A unidade lgica aritmtica onde todas as operaes lgicas (funes lgicas booleanas): e ou, (exclusivo e complemento) e aritmticas (soma e subtrao) so efetuadas. O registrador W sempre estar envolvido de alguma forma em toda operao lgica ou aritmtica. Existem dois destinos possveis 28 para estas operaes: o W (work) ou um registrador (posio da memria de dados) definido no argumento da instruo.
2.6.1.4 Ciclo de Mquina
Um micro-controlador pode ser entendido como sendo uma mquina que executa operaes em ciclos. Todos os sinais necessrios para a busca ou execuo de uma determinada instruo devem ser gerados dentro de um perodo de tempo denominado Ciclo de Mquina. Nos PIC com memria de programa de 12 e 14 bits um Ciclo de Mquina corresponde a quatro perodos de clock (1:4) denominados Q1,Q2,Q3 e Q4, conforme pode ser verificado na figura 5.
Figura 5: Ciclo de Mquina
2.6.1.5 Pipeline
Se para efeito de anlise dividirmos o processamento interno do PIC em ciclos de busca e execuo, podemos afirmar que para cada instruo executada foi necessria a execuo prvia de um ciclo de busca. Imagine um sistema que implemente um ciclo de busca e ao mesmo tempo processe um ciclo de 1 Ciclo de mquina = 4 Perodos de clock Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 GLK Q1 Q2 Q3 Q4 Ciclo de Mquina 29 execuo. Desta forma, no incio de cada Ciclo de Mquina haver uma instruo pronta para ser executada. No entanto algumas instrues fazem com que este sistema seja desarticulado: so as chamadas instrues de desvio. As instrues de desvio so aquela que alteram o valor do Program Counter (contador/ponteiro de programa). Quando ocorre um desvio a instruo que j foi previamente buscada pelo sistema de Pipeline no vlida, pois estava na posio de memria de programa apontada pelo PC antes dele ter seu valor alterado para o destino especificado. Conseqentemente torna-se necessrio a execuo de um novo ciclo de busca, que obviamente demandar mais um ciclo de mquina, resultando em um tempo de total de processamento igual a dois ciclos de mquinas. A figura 6 mostra a atuao do pipeline.
Figura 6: Atuao do Pipeline
Toda instruo do PIC demanda um Ciclo de Mquina para ser executada, exceto aqueles que provocam desvio no programa que demanda dois Ciclos de Mquina.
30 2.6.1.6 Timer
O PIC possui internamente um recurso de hardware denominado Timer0. Trata-se de um contador de 8bits incrementado internamente pelo ciclo de mquina ou por um sinal externo (borda de subida ou descida), sendo esta opo feita por software durante a programao (SFR). Como o contador possui 8 bits ele pode assumir 256 valores distintos (0 at 255). Caso o ciclo de mquina seja de 1us, cada incremento do Timer corresponder a um intervalo de 1us. Caso seja necessrio intervalos de tempos maiores para o mesmo Ciclo de Mquina, utilizaremos o recurso de PRE-SCALE.
2.6.1.7 Pre-scale
O Pre Scale um divisor de freqncia programvel do sinal que incrementa o Timer0. Quando temos um pre scale de 1:1, cada ciclo de mquina corresponde a um incremento do Timer0 (unidade de Timer0). Ao alterarmos o pre scale para, por exemplo, 1:4 (os valores possveis so as potencias de dois at 256), o Timer0 ser incrementado uma vez a cada quatro ciclos de mquina.
2.6.1.8 Watchdog
O watchdog um recurso disponvel no PIC que parte do princpio que todo sistema passvel de falha. Se todo sistema pode falhar, cabe ao mesmo ter recursos para que, em ocorrendo uma falha, algo seja feito de modo a tornar o sistema novamente operacional. Dentro do PIC existe um contador incrementado por um sinal de relgio (clock) independente. Toda vez que este contador extrapola o seu valor mximo retornando a zero, provocado a reinicializao do sistema (reset). 31 Clear Watchdog: Se o sistema estiver funcionado da maneira correta, de tempos em tempos uma instruo denominada clear watchdog timer (CLRWDT) zera o valor deste contador, impedindo que o mesmo chegue ao valor mximo. Desta maneira o Watchdog somente ir "estourar" quando algo de errado ocorrer. Pre Scale: O perodo normal de estouro do Watchdog Timer de aproximadamente 18 ms. No entanto, algumas vezes este tempo insuficiente para que o programa seja normalmente executado. A sada neste caso alocar o recurso de Pre Scale de modo a aumentar este perodo. Se sem o pre scale o perodo de 18ms, quando atribumos ao Watchdog Timer um PRE SCALE de 1:2 (um para dois) nos dobramos este perodo de modo que o processamento possa ser executado sem que seja feita uma reinicializao.
2.6.1.9 Interrupo
As Interrupes so causadas atravs de eventos assncronos (podem ocorrer a qualquer momento) que causam um desvio no processamento. Este desvio tem como destino o vetor de interrupo. Uma boa analogia para melhor entendermos o conceito de interrupo a seguinte: voc est trabalhando digitando uma carta no computador quando o seu ramal toca. Neste momento voc, interrompe o que est fazendo, para atender ao telefone e verificar o que a pessoa do outro lado da linha est precisando. Terminada a conversa, voc coloca o telefone no gancho novamente e retoma o seu trabalho do ponto onde havia parado. Observe que no precisamos verificar a todo instante, se existe ou no algum na linha, pois quando o ramal chamado, o telefone toca avisando que existe algum querendo falar com voc. 32 A habilitao das interrupes nos PIC segue a seguinte filosofia. Existe uma chave geral (general interrupt enable) e chaves especficas para cada uma das interrupes. Deste modo, se eu quiser habilitar a interrupo de tempo (TMR0) eu devo setar o bit da chave geral e tambm o bit da chave especfica (T0IE), ambos presentes no registrador especial (S.F.R.) INTCON. POWER ON RESET: um sistema faz com que durante a energizao o pino de Master Clear (/MCLR) permanea durante algum tempo em zero, garantindo a inicializao. POWER UP TIMER: um temporizador que faz com que o PIC, durante a energizao (power up), aguarde alguns ciclos de mquina para garantir que todo o sistema perifrico (display, teclado, memrias, etc) estejam operantes quando o processamento estiver sendo executado. BROWN OUT: O Brown Out monitora a diferena de tenso entre VDD e VSS, provocando a reinicializao do PIC (reset) quando esta cai para um valor inferior ao mnimo definido em manual. SLEEP: O modo de operao Sleep foi includo na famlia PIC para atender um mercado cada vez maior de produtos que devem funcionar com pilhas ou baterias. Estes equipamentos devem ter um consumo mnimo para que a autonomia seja a mxima. Quando o PIC colocado em modo Sleep (dormir), atravs da instruo SLEEP, o consumo passa da ordem de grandeza de mA (mili mperes) para uA (micro mperes). Existem trs maneiras de "acordar o PIC": por interrupo externa/estado, estouro de Watchdog ou reinicializao (/MCRL).
33 2.6.2 Microcontrolador PIC
Os microcontroladores da famlia PIC so dispositivos RISC (Reduced Instruction Set Computer Computador com conjunto reduzido de instrues) com arquitetura HARVARD (Barramentos de memria de programa e de memria de dados diferentes) e fluxo de instrues PIPELINE (Enquanto se executa uma determinada instruo, a prxima j est sendo lida) de ltima gerao, seu uso praticamente ilimitado e seu preo baixo, levando-se em conta as suas excelentes caractersticas. Os PICs so muito versteis, podem possuir de 6 at 66 pinos de I/O, trabalhar em frequncias de at 40MHz, eles podem ter ainda: ADCs = Conversores analgico para digital; DACs = Conversores digital para analgico; Endereadores de memria externa; I/Os seriais; Memria EEPROM de dados, entre outros.
2.6.3 PIC16F628
O PIC16F628 possui arquitetura Harvard. A memria de dados do tipo RAM (voltil) e a memria de programa so do tipo Flash (letra F no cdigo). Este PIC possui 18 pinos e pode ser classificado na faixa superior em termos de recursos disponveis, pois ele possui interrupes e conversores AD ou portas de comunicao serial. O PIC16F628 melhorou as caractersticas do ncleo, a pilha de oito nveis, e fontes internas e externas mltiplas da interrupo. As barras de comunicao separadas da instruo e de dados da arquitetura de Harvard permitem que uma palavra de 14-bit de larga instruo use dados de 8-bit separados. A faixa de dois estgios da instruo permite que 34 toda a instruo seja executada em um nico-ciclo, exceo das filiais do programa (que requerem dois ciclos). O microcontrolador consegue tipicamente uma compresso de cdigo de 2:1 e uma melhoria da velocidade de 4:1 sobre outros microcontroladores 8-bit em sua classe. Os dispositivos do PIC16F628 tm as caractersticas especiais para reduzir componentes externos, assim reduzindo o custo do sistema, realando a confiabilidade do sistema e reduzindo o consumo de potncia. H oito configuraes do oscilador, apenas o oscilador do pino ER fornece uma soluo de baixo custo. O oscilador LP minimiza o consumo de potncia, XT um cristal padro, INTRC um oscilador interno e o HS para cristais de alta velocidade. A modalidade do SLEEP (baixo consumo) oferece economias de energia. O usurio pode ativar a micro plaqueta do SLEEP de diversas interrupes e restaurao externas e internas. A tecnologia FLASH faz a customizao dos programas de aplicao (nveis da deteco, gerao do pulso, temporizadores, etc.) extremamente rpido e conveniente. Os pacotes pequenos da entrada fazem esta srie do microcontrolador ideal para todas as aplicaes com limitaes do espao. Baixo custo, baixo consumo, alta performance, facilidade de utilizao e flexibilidade de I/O faz do PIC16F628 muito verstil. A figura 7 mostra a pinagem do PIC16F628.
35
Figura 7: Pinagem do PIC16F628
Caractersticas tcnicas: Freqncia de operao DC a 20 MHz Memria do programa 3.5K Numero de instrues 2048 RAM 224 bytes EEProm 128 bytes PORT A: RA0 ... RA4 (5 PINOS) PORT B: RB0 ... RB7 (8 PINOS) 1 Mdulo CCP 2 Comparadores Presena de Power On Reset Presena de Brown-out Detect Temporizador 1x16bit 2x8bit WDT W/RC Presena da Tenso de Referncia Vref Capacidade de corrente 25mA Presena do Programa de Circuito Serial
36 2.7 Rels
Os rels so dispositivos comutadores eletromecnicos. A estrutura simplificada de um rel mostrada na figura 8 e a partir dela explicaremos o seu princpio de funcionamento. Nas proximidades de um eletro-im instalado uma armadura mvel que tem por finalidade abrir ou fechar um jogo de contatos. Quando a bobina percorrida por uma corrente eltrica criado um campo magntico que atua sobre a armadura, atraindo-a. Nesta atrao ocorre um movimento que ativa os contatos, os quais podem ser abertos, fechados ou comutados, dependendo de sua posio, conforme mostra a figura 9.
Figura 8: Estrutura eltrica do Rel
ARMADURA BOBINA 37
Figura 9: Abertura e fechamento dos contatos
Isso significa que, atravs de uma corrente de controle aplicada bobina de um rel, podemos abrir, fechar ou comutar os contatos de uma determinada forma, controlando assim as correntes que circulam por circuitos externos. Quando a corrente deixa de circular pela bobina do rel o campo magntico criado desaparece, e com isso a armadura volta a sua posio inicial pela ao da mola. Os rels se dizem energizados quando esto sendo percorridos por uma corrente em sua bobina capaz de ativar seus contatos, e se dizem desenergizados quando no h corrente circulando por sua bobina. Este rel fecha os contatos com a energizao da bobina Este rel abre os contatos com a energizao da bobina Este rel comuta a corrente desviando-a de A para B ATRAO CONTATOS FECHADOS CONTATOS ABERTOS corrente 38 A aplicao mais imediata de um rel com contato simples no controle de um circuito externo ligando ou desligando-o, conforme mostra a figura 10. Observe o smbolo usado para representar este componente.
Figura 10: Rel de contato simples
Quando a chave S1 for ligada, a corrente do gerador E1 pode circular pela bobina do rel, energizando-o. Com isso, os contatos do rel fecham, permitindo que a corrente do gerador E2 circule pela carga, ou seja, o circuito controlado que pode ser uma lmpada. Para desligar a carga basta interromper a corrente que circula pela bobina do rel, abrindo para isso S1. Uma das caractersticas do rel que ele pode ser energizado com correntes muito pequenas em relao corrente que o circuito controlado exige para funcionar. Isso significa a possibilidade de controlarmos circuitos de altas correntes como motores, lmpadas e mquinas industriais, diretamente a partir de dispositivos eletrnicos fracos como transistores, circuitos integrados, fotoresistores etc. A corrente fornecida diretamente por um transistor de pequena potncia da ordem de 0,1A no conseguiria controlar uma mquina industrial, um motor ou uma lmpada, mas pode ativar um rel e atravs dele controlar a carga de alta potncia. (figura 11). 39
Figura 11: Ativar uma carga de alta potncia
Outra caracterstica importante dos rels a segurana dada pelo isolamento do circuito de controle em relao ao circuito que est sendo controlado. No existe contato eltrico entre o circuito da bobina e os circuitos dos contatos do rel, o que significa que no h passagem de qualquer corrente do circuito que ativa o rel para o circuito que ele controla. Se o circuito controlado for de alta tenso, por exemplo, este isolamento pode ser importante em termos de segurana. Do mesmo modo, podemos controlar circuitos de caractersticas completamente diferentes usando rels: um rel, cuja bobina seja energizada com apenas 6 ou 12V, pode perfeitamente controlar circuitos de tenses mais altas como 110V ou 220V. O rel que tomamos como exemplo para analisar o funcionamento possui uma bobina e um nico contato que abre ou fecha. Na prtica, entretanto, os rels podem ter diversos tipos de construo, muitos contatos e apresentar caractersticas prprias sendo indicados para aplicaes bem determinadas.
40 2.7.1 Os Rels na Prtica
O que determina a utilizao de um rel numa aplicao prtica so suas caractersticas. O entendimento dessas caractersticas fundamental para a escolha do tipo ideal. A bobina de um rel enrolada com um fio esmaltado cuja espessura e nmeros de voltas so determinados pelas condies em que se deseja fazer sua energizao. A intensidade do campo magntico produzido e, portanto, a fora com que a armadura atrada depende tanto da intensidade da corrente que circula pela bobina como do nmero de voltas que ela contm. Por outro lado, a espessura do fio e a quantidade de voltas determinam o comprimento do enrolamento, o qual funo tanto da corrente como da tenso que deve ser aplicada ao rel para sua energizao, o que no fundo a resistncia do componente. Todos estes fatores entrelaados determinam o modo como a bobina de cada tipo de rel enrolada. De um modo geral podemos dizer que nos tipos sensveis, que operam com baixas correntes, so enrolados milhares ou mesmo dezenas de milhares de voltas de fios esmaltados extremamente finos, alguns at mesmo mais finos que um fio de cabelo! (figura 12).
41
Figura 12: A bobina de um Rel
As armaduras dos rels devem ser construdas com materiais que possam ser atrados pelos campos magnticos gerados, ou seja, devem ser de materiais ferromagnticos e montadas sobre um sistema de articulao que permita sua movimentao fcil, e retorno posio inicial quando o campo desaparece. Peas flexveis de metal, molas ou articulaes so alguns dos recursos que so usados na montagem das armaduras. A corrente mxima que os rels podem controlar depende da maneira como so construdos os contatos. Alm disso, existe o problema do faiscamento que ocorre durante a abertura e fechamento dos contatos de rel, principalmente no controle de determinado tipo de carga (indutivas). O material usado deve ento ser resistente, apresentar boa capacidade de conduo de corrente e, alm disso, ter um formato prprio, dependendo da aplicao a que se destina o rel. 42 Dentre os materiais usados para a fabricao dos contatos podemos citar o cobre, a prata e o tungstnio. A prata evita a ao de queima provocada pelas fascas, enquanto os contatos de tungstnio evitam a oxidao. O nmero de contatos e sua disposio vo depender das aplicaes a que se destinam os rels.
2.7.2 Tipos de Rels
2.7.2.1 Contatos NA ou Normalmente Abertos
Os rels so dotados de contatos do tipo normalmente abertos, quando estes permanecem desligados at o momento em que o rel seja energizado. Quando o rel energizado, os contatos fecham, e com isso pode circular corrente pelo circuito externo. Podemos ter rels com um ou mais contatos do tipo NA, conforme mostra a figura 13.
Figura 13: Rels tipo NA
1 CONTATO N A 2 CONTATO N A 3 CONTATO N A TERMINAIS DA BOBINA REL DE 1 CONTATO N A 43 Usamos rels com contatos do tipo NA quando queremos ligar uma carga externa ao fazer uma corrente percorrer a bobina do rel, ou seja, quando o energizarmos.
2.7.2.2 Contatos NF ou Normalmente Fechados
Estes rels apresentam um ou mais contatos que esto fechados, permitindo a circulao pela carga externa, quando a bobina estiver desenergizada. Quando a bobina percorrida por uma corrente, o rel abre seus contatos, interrompendo a circulao de corrente pela carga externa. (figura 14).
Figura 14: Rels tipo NF
Usamos este tipo de rel para desligar uma carga externa ao fazer uma corrente percorrer a bobina do rel.
2.7.2.3 Contatos NA e NF ou Reversveis
Os rels podem tambm ter contatos que permitem a utilizao simultnea dos contatos NA e NF ou de modo reversvel, conforme mostra a figura 15.
Quando o rel est com a bobina desenergizada, o contato mvel C faz conexo com o contato fixo NF, mantendo fechado este circuito. Energizando a bobina do rel o contato C (comum) passa a encostar-se ao contato NA, fechando ento o circuito. Podemos usar este tipo de rel para comutar duas cargas, conforme sugere a figura 16.
Figura 16: Comutao de duas cargas atravs do rel reversvel
A energia da fonte E passa ento do circuito de carga 1 para o circuito de carga 2. O nmero de contatos NA e NF de um rel pode variar bastante, o que garante uma enorme versatilidade para este componente. Assim, jogando com os dois contatos reversveis, podemos fazer inverses do sentido de circulao da corrente. N.F. - normalmente fechado C - comum N.A. - normalmente aberto REL DESENERGIZADO REL ENERGIZADO Carga 1 Carga 2 Carga 1 Carga 2 45 Os rels podem ainda ter bobinas para operar tanto com corrente contnua como com corrente alternada. No caso de corrente contnua, a constncia do campo garante um fechamento firme, sem problemas. No entanto, no caso do acionamento por corrente alternada, a inverso do sentido da corrente numa determinada freqncia faz com que o campo magntico aparea e desaparea dezena de vezes por segundo, o que leva a armadura e os contatos a uma tendncia de vibrao. Para evitar este problema tcnicas especiais de construo so usadas, sendo que a mais eficiente consiste na colocao numa das metades do ncleo da bobina de um anel de cobre. Neste anel ento induzida uma forte corrente que cria um segundo campo magntico, o qual divide o campo principal em dois fluxos defasados. Assim, no existe um instante em que o campo seja nulo, quando a armadura pode "descolar", e com isso causar as vibraes. Por este motivo, os rels usados em corrente contnua no so os mesmos empregados em circuitos de corrente alternada.
2.7.2.4 Rels abertos, fechados e selados
Dependendo das aplicaes, temos ainda para os rels montagens diferentes do conjunto de peas que o formam. Os rels podem ser abertos, ou seja, sem proteo, se forem usados em equipamentos fechados, que no estejam sujeitos a poeira, umidade ou outros elementos que prejudiquem o componente. Temos tambm rels fechados, mas sem vedao alguma que so utilizados na maioria das aplicaes comuns. Estes rels possuem coberturas de materiais diversos, como por exemplo, o plstico que pode ser opaco ou transparente. 46 Existem ainda os rels hermticos que so encerrados em invlucros que impedem a penetrao de ar do meio ambiente. Em especial estes rels so empregados em aplicaes que ficam em atmosferas combustveis, j que o acionamento dos contatos pode ser acompanhado de fascas que causariam a ignio do combustvel e com isso o perigo de exploso. Na figura 17 h trs tipos da linha de produtos rels com as mais diversas especificaes adicionais.
Figura 17: Rels abertos, fechados e selados
Esta proteo evita que a poeira se acumule principalmente nos contatos, vindo a prejudicar o funcionamento do rel. Rels abertos Rel fechado Rels vedados 47 2.7.3 Ligao dos rels ao circuito externo
Outro fato importante na construo de um rel a maneira como ele vai ser ligado ao circuito externo. Para esta finalidade, os rels so dotados de terminais. O tipo mais simples possui, ento, 4 terminais sendo 2 para a conexo bobina e 2 para os prprios contatos. (figura 18).
Figura 18: Rels de 4 terminais
O nmero de terminais aumentar na proporo em que aumenta o nmero de contatos e estes podem ter as mais diversas aparncias. Em aplicaes profissionais, onde a eventual substituio rpida de um rel deve ser feita com presteza, so usados encaixes em bases fixas. So os rels de encaixe ou plug-in. Temos ainda rels que comutam sinais de altas freqncias, e que utilizam conectores para os contatos do tipo coaxial. Este tipo de configurao necessrio para que no ocorram perdas na transferncia das correntes que o rel deve comutar em seus contatos.
2.7.4 Caractersticas eltricas dos Rels
Como acionar um rel? Quais circuitos externos podem ser controlados por um rel? Na utilizao de qualquer tipo de rel num projeto fundamental ter respostas para as duas perguntas acima, e em alguns casos para outras. Nos manuais de fabricantes de rels encontramos informaes que permitem a avaliao do que um rel pode fazer e como deve ser usado. No entanto, 48 preciso saber interpretar estas informaes, para que no aconteam surpresas desagradveis num projeto. Iniciaremos ento nossas explicaes pelas caractersticas eltricas dos rels.
2.7.4.1 Caractersticas da bobina
Para que o rel seja energizado corretamente e os contatos atuem, preciso que uma corrente de intensidade mnima determinada circule pela sua bobina. Devemos ento aplicar uma tenso de determinado valor, que em funo da resistncia do enrolamento vai permitir que a corrente mnima determinada seja estabelecida. Na prtica os rels so especificados em termos da corrente que deve passar pelo enrolamento para uma determinada tenso que a tenso de funcionamento. Na verdade preciso levar em conta que, para fechar o rel, precisamos de uma certa intensidade de campo magntico que puxe a armadura para perto da bobina com certa fora, mas uma vez que a armadura se aproxima, o campo j no precisa ser to forte para mant-la junto bobina, e com isso o rel fechado. Devemos ento distinguir a tenso que aciona o rel da tenso que o mantm fechado que muito menor. A corrente que aciona o rel denominada corrente de acionamento, enquanto que a corrente que o mantm fechado (muito menor) a corrente de manuteno. Fixando a tenso que deve disparar um rel de corrente contnua, a corrente que vai circular por sua bobina funo da resistncia do enrolamento, o que pode ser calculado facilmente pela lei de Ohm. Assim, se um rel for especificado para uma tenso nominal de 24 volts, quando ento circula uma corrente de 20 mA (0,02 A), podemos calcular a resistncia com uma simples diviso: R = V/I = 24/0,02 = 1200 ohms 49 As caractersticas da bobina do rel de corrente contnua (resistncia, corrente e tenso) ficam ento perfeitamente definidas quando temos duas das trs grandezas acima citadas: Se tivermos a tenso (V) e a corrente (I), calculamos a resistncia (R) pela frmula: R = V/I Se tivermos a tenso (V) e a resistncia (R), calculamos a corrente pela frmula: I = V/R Finalmente, se tivermos a corrente (I) e a resistncia (R), calculamos a tenso (V) pela frmula: V = R x I Veja que estas tenses so "valores nominais", ou seja, aqueles que so recomendados numa operao normal. Na prtica o rel pode fechar seus contatos com tenses menores, mas este fator deve, ser levado em conta quando se desejar mxima confiabilidade do componente. Os valores superiores tambm so admitidos, apenas at certo limite. Se a aplicao de uma tenso num circuito que tenha uma certa resistncia, como a bobina de um rel, significa a produo de calor, temos a um motivo claro da limitao. As bobinas podem dissipar apenas uma quantidade definida de calor, que no deve ser superada. Os fabricantes de rels indicam ento qual a porcentagem acima da tenso nominal que pode ser aplicada no mximo na bobina de um rel sem o perigo de haver aquecimento. Valores tpicos esto entre 10 e 15% acima da tenso nominal. Resumindo: as caractersticas eltricas da bobina de um rel, que devem ser levadas em conta num projeto, so: Tenso nominal, tenso de operao e tenso mxima de trabalho Corrente nominal Resistncia hmica Potncia nominal dissipada
50
2.7.4.2 Caractersticas dos contatos
Alm do nmero de contatos e o tipo, devemos tambm conhecer caractersticas eltricas desses contatos, para utiliz-los sem problemas em qualquer projeto. A primeira caracterstica que nos interessa a corrente mxima que podem controlar. A abertura e fechamento dos contatos de um rel exigem um certo tempo, o que significa que nos pontos de aproximao mxima podem ocorrer arcos, ou seja, pequenas fascas que tendem a queim-los com o tempo. Estas fascas so mais intensas quando se comuta um circuito indutivo como, por exemplo, um transformador, um motor, um solenide etc. A superfcie dos contatos determina, por outro lado, a intensidade mxima da corrente que pode ser controlada. Estes dois fatores devem ser levados em conta na utilizao de um rel. Assim, temos a especificao da corrente mxima que cada contato pode controlar tanto em circuitos resistivos como indutivos. Evidentemente, a corrente mxima num circuito resistivo sempre maior que a permitida para um circuito indutivo. Alguns recursos permitem a proteo dos contatos com o prolongamento de sua vida til, na comutao e controle de cargas indutivas "amortecendo" as fascas, mas isso ser visto posteriormente. A vida til de um rel est basicamente determinada pela durabilidade dos contatos, e como o desgaste ocorre nos momentos em que ocorrem as comutaes, esta caracterstica dada em termos de abertura e fechamento do rel em milhares ou mesmo milhes de vezes. Temos ainda como especificao importante a tenso mxima que os circuitos do contato podem admitir. Esta caracterstica importante levando-se em conta a possibilidade de ocorrer faiscamentos ou mesmo fugas entre os contatos dado o seu afastamento na posio em aberto, se a tenso mxima for superada.Valores tpicos esto na 51 faixa dos 150 aos 250V.Como a potncia controlada no circuito de carga dada pelo produto da corrente pela tenso, em alguns casos especifica-se a potncia mxima tambm. Existem casos em que no se recomenda que a corrente mxima especificada para os contatos seja aplicada tambm com a tenso mxima. Limita-se assim a potncia. Uma outra especificao importante em certas aplicaes o tempo que o rel demora para fechar seus contatos. Existe ento um intervalo de tempo mnimo indicado pelo fabricante que decorre entre a aplicao da tenso na bobina e o pleno fechamento dos contatos. Este valor varia de tipo para tipo e dado tipicamente em milisegundos (ms). Veja ento que os dois tempos devem ser levados em conta quando se deseja que o rel opere em ciclos rpidos. Do mesmo modo, existe um tempo determinado para o desaparecimento do campo magntico na bobina a partir do instante em que a corrente interrompida. As linhas de foras do campo magntico se contraem em velocidade limitada pela indutncia da bobina, e isso influi diretamente no tempo em que os contatos demoram para abrir (figura 19). Os fabricantes especificam tambm o tempo de abertura do rel em milisegundos.
Figura 19: Conduo de corrente na Bobina
Linhas de fora de contrao Tenso gerada na abertura do interruptor 52 Estes tempos determinam a mxima freqncia que o rel pode responder. claro que no se recomenda a utilizao deste tipo de componente em aplicaes que exijam a repetio de muitos ciclos de operao rapidamente, pois existe uma limitao para a vida til dos contatos. Esta vida til indicada em termos de quantidade de operaes, ficando tipicamente entre 250 mil e 30 milhes, conforme a corrente controlada. Finalmente devemos levar em conta a resistncia dos contatos que pode ser expressa de diversas formas.Uma das maneiras consiste em se indicar a resistncia de contato inicial, que a resistncia de um contato que ainda no comutou carga e, portanto, ainda no sofreu desgaste pelo faiscamento. Esta resistncia expressa em milsimos de ohm (mohms) situando-se tipicamente entre 10 e 100. Alm destas especificaes todas existem outras que eventualmente podem ser necessrias nas aplicaes mais crticas. Dentre elas podemos citar o isolamento entre a bobina e os contatos, a capacitncia entre os contatos quando eles esto abertos, j que nestas condies podemos consider-los como as placas de um capacitor. Temos ainda o peso do componente, a vibrao, a rigidez dieltrica entre bobina e contatos e entre os contatos etc.
2.7.5 Como usar um Rel
Alguns pequenos cuidados no projeto de circuitos com rels podem ser importantes, tanto no sentido de se obter maior durabilidade para o componente, como de proteger os prprios componentes do circuito de acionamento. Analisemos os principais casos:
53 2.7.5.1 Proteo do circuito de acionamento
No momento em que um rel desenergizado, as linhas de fora do campo magntico da bobina, que se encontram em seu estado de expanso mxima, comeam a se contrair. Nesta contrao, as espiras da bobina do prprio rel so cortadas, havendo ento a induo de uma tenso. Esta tenso tem polaridade oposta quela que criou o campo e pode atingir valores muito altos. O valor desta tenso depende da velocidade de contrao do campo (di/dt) e da indutncia da bobina (L). Se o componente que faz o acionamento do rel no estiver dimensionado para suportar esta tenso, se no houver uma proteo adequada, sua queima ser inevitvel (figura 20).
Figura 20: Proteo do Rel
Do mesmo modo, existe um tempo determinado para o desaparecimento do campo magntico na bobina a partir do instante em que a corrente interrompida. As linhas de foras do campo magntico se contraem em velocidade limitada pela indutncia da bobina, e isso influi diretamente no tempo em que os contatos demoram para abrir (figura 19). Os fabricantes especificam tambm o tempo de abertura do rel em milisegundos. Diversas so as tcnicas empregadas para eliminar este problema, sendo a mais conhecida a que faz uso de um diodo, conforme mostra a figura 21. Componente que pode queimar Alta tenso na abertura do rel Rel 54
.
Figura 21: Uso de um diodo para proteger o rel
O que ocorre neste caso que o diodo est polarizado inversamente em relao a tenso que dispara o rel. Assim, quando ocorre a induo de uma alta tenso nos extremos da bobina no momento da interrupo da corrente, o diodo polarizado no sentido direto passa a ter uma baixa resistncia absorvendo assim a energia que, de outra forma, poderia afetar o componente de disparo. Outra tcnica, menos comum dado o custo do componente, a que faz uso de um varistor ligado em paralelo com a bobina do rel, conforme mostra a figura 18. O varistor ou VDR um componente, normalmente de xido de zinco que apresenta uma caracterstica no linear de corrente versus tenso, conforme mostra a curva da mesma figura. Quando a tenso supera certo valor a resistncia do componente cai abruptamente. Esta propriedade pode ser usada para absorver a corrente no instante em que o rel desenergizado e que poderia causar problemas aos componentes de disparo.
Tenso de controle Diodo de proteo IN4148 Corrente na abertura do rel Rel +5 e 24V 55
Figura 22: Uso de um varistor para proteger o rel
A tenso do VDR ou Varistor deve ser escolhida de tal modo a ser maior que a tenso de disparo do rel, porm menor que a tenso mxima suportada pelo elemento usado no disparo. A utilizao de um capacitor + resistor em paralelo com a bobina tambm um meio de proteo, mas que nem sempre recomendado, dada a velocidade com que ocorre a comutao.
2.7.5.2 Proteo dos Contatos
Alm da observao das limitaes de corrente e tenso que devem aparecer nos contatos de um rel, existem alguns cuidados adicionais que podem prolongar sua vida e, com isso, a vida do prprio rel. Na comutao de cargas indutivas conveniente agregar-se ao circuito elementos de proteo contra faiscamento.
Varistor Rel Corrente (A) Tenso (V) 56
Figura 23: Uso do diodo em paralelo para evitar altas tenses
Na figura 23 temos um diodo usado em paralelo com a carga indutiva de modo que seja evitado o aparecimento de altas tenses nos contatos na sua abertura. Estas elevadas tenses poderiam causar faiscamento excessivo e com isso a queima dos contatos. Outro recurso consiste no emprego do varistor e at mesmo de capacitores e resistores. Os capacitores e resistores so indicados para os circuitos de corrente alternada, onde o diodo no pode ser empregado.
Nesta monografia sero mostrados um estudo e implementao de um prottipo, desde os conceitos at a implantao de todos os recursos utilizados durante o processo de desenvolvimento de software e hardware do sistema de controle de dispositivos via web. Este projeto foi desenvolvido nos Laboratrios da Computao, do Departamento de Cincia da Computao e na maioria das vezes em casa com auxlio do computador pessoal. O projeto iniciou efetivamente no ms de Maro de 2003 e foi concludo aproximadamente no ms de Dezembro de 2003. O projeto foi dividido nas seguintes fases: Escolha do dispositivo a ser utilizado Estudo do funcionamento do dispositivo Criao de uma interface de comunicao entre o dispositivo e o computador Desenvolvimento de softwares de controle da interface Desenvolvimento de um servidor de comunicao remota Modelagem da arquitetura final do sistema Desenvolvimento de sistemas web Desenvolvimento do prottipo Desenvolvimento de aplicaes distribudas sobre a arquitetura criada Durante as fases citadas, os conceitos bsicos necessrios envolvem Circuitos Eletrnicos, onde os conceitos de componentes eletrnicos so amplamente 58 utilizados nas fases de desenvolvimento de microcontroladores e da interface de comunicao com o computador; Lgica Digital, que d todo o suporte para a interface a partir do momento que comeamos a manipular dados digitais; Arquitetura de Computadores, assim como a lgica digital, prov o suporte de manipulao de endereos dos dispositivos na arquitetura x86; Programao em Linguagem C, que permite a comunicao de softwares com o hardware sem limitaes atravs da porta paralela, possibilitando uma maior flexibilidade na manipulao dos dispositivos; Programao de Computadores, que a base para as fases de software, onde os conceitos de orientao a objeto sero amplamente explorados durante a implementao dos softwares da arquitetura proposta; Sistemas Distribudos, que prov a base para a computao distribuda, os conceitos dos sistemas Cliente/Servidor e Comunicao em Grupo; Linguagens Comerciais, que dar suporte aos sistemas baseados na web, bem como o ambiente de programao em C para PIC, da CCS, que um ambiente muito eficiente e proporciona uma rapidez na execuo de projetos e o software Delphi da Borland; Sistemas Operacionais, visto que em alguma parte do projeto haver a necessidade de aplicaes utilizarem recursos de hardware, alm da possibilidade de implementao deste projeto no somente em ambientes Microsoft, mas tambm em ambientes Unix; Redes de Computadores, provendo o conhecimento necessrio sobre as pilhas de protocolos, arquiteturas e topologias de redes; e Engenharia de Software, proporcionando o conhecimento necessrio para o gerenciamento deste projeto, a distribuio e evoluo das fases, modelagens para os sistemas, formas de implementao e de testes.
59 3.2 Material Utilizado
Durante o desenvolvimento deste projeto, vrios equipamentos de hardware, sistemas operacionais, softwares, editores e compiladores sero utilizados. Abaixo esto relacionados os softwares e hardwares utilizados. Equipamentos de hardware: multmetro osciloscpio fonte Soldador e estanho transistor resistor Diodos Capacitores Circuito integrado (MAX232) Rel Cabo LPT (impressora) Conectores DB9 fmea/macho e DB25 macho Leds Reed-switch, lmpada, plug e tomada Fios para interligao dos componentes Microcontrolador 16F628 Matriz de contato Sistemas operacionais: Microsoft Windows 98 / 2000 Linux Compiladores: C para PIC da CCS (http://www.ccsinfo.com) Borland Delphi kylix gcc (http://www.gnu.org/) Softwares adicionais: Apache Web Server 2.0.45 (http://www.apache.org) Script CGI (http://cgiclube.cidadeinternet.com.br/) Biblioteca parapin_0.90 para gcc Browser Hosts de desenvolvimento: 60 AMD AthlonXP 1700+ 256MB RAM Suporte rede ethernet 100 Mbps com acesso Internet
3.3 Planejamento
3.3.1 A escolha do dispositivo a ser utilizado
A escolha do dispositivo a ser utilizado tomou por base trs fatores. Em primeiro lugar, o fator financeiro, que levou-nos a procurar um dispositivo que pudesse ser completamente acessvel de modo que o prejuzo fosse mnimo o caso de danos permanentes. Em segundo, o fator dificuldade, procuramos um dispositivo que possusse funcionalidades de fcil compreenso. Por fim, o fator praticidade, onde visamos trabalhar com algo que pudesse ser facilmente transportado e que no exigisse cuidados especiais. Levando em conta tais fatores, o dispositivo escolhido foi uma lmpada. Pois a partir deste dispositivo que ser testado, poderemos utilizar nosso sistema para qualquer outro dispositivo semelhante, basta adaptarmos nosso sistema.
3.3.2 O estudo do funcionamento do dispositivo
Especificado o dispositivo a ser utilizado, ser dado incio fase de estudos sobre seu funcionamento. Nesta fase, sero aplicados os conceitos de Circuitos Eletrnicos para a compreenso do funcionamento dessa lmpada com relao ao sistema de controle. Sero realizados testes operacionais sobre o circuito eletrnico at que toda sua lgica seja conhecida.
3.3.3 A criao da interface para a comunicao entre o dispositivo e o computador
Aps a compreenso do funcionamento do circuito eletrnico do dispositivo, iniciar uma fase de projeto de uma interface de comunicao para a 61 interao entre o circuito e o computador. A forma adotada para prover a comunicao entre o computador e o circuito foi a utilizao da porta paralela do computador. Nesta fase sero aplicados os conhecimentos de Arquitetura de Computadores e Circuitos Eletrnicos. Os programas teste sero desenvolvidos sobre o Windows de forma a verificar a sua funcionalidade.
3.3.4 O desenvolvimento de softwares de controle da interface
Depois de criar e validar a interface de comunicao entre o computador e o dispositivo, iniciaremos a fase de desenvolvimento de softwares para o controle e operao deste dispositivo. Nesta fase sero utilizados cdigos em linguagens orientadas a objeto (C e Delphi) juntamente com a linguagem CGI para que as aplicaes possam acessar a porta paralela. Da mesma forma como nas fases anteriores, os testes de validao sobre o que foi gerado tambm sero realizados.
3.3.5 O desenvolvimento de um servidor de comunicao remota
Neste ponto do projeto, passaremos para a fase de desenvolvimento de servidores para suporte computao distribuda. Utilizando os conceitos de sistemas Cliente/Servidor e o conhecimento dos protocolos correntes das redes de computadores, os servidores sero modelados e desenvolvidos utilizando o protocolo TCP (Transmition Control Protocol). Novamente, realizaremos uma fase de teste para validar nosso dispositivo. A partir da, j teremos uma boa parte da arquitetura idealizada concluda.
62 3.3.6 A modelagem da arquitetura final do sistema
Em paralelo com o desenvolvimento das fases restantes do projeto, daremos incio modelagem da arquitetura do sistema, partindo-se do que iremos implementar e chegando no que seria a arquitetura final do escopo deste projeto. Baseando-se nas fases que sero concludas, chegaremos a uma estrutura final como segue abaixo:
3.3.7 O desenvolvimento de sistemas web
Com base nos resultados das implementaes das fases anteriores, a continuidade do projeto visou a disponibilizao de um sistema para a manipulao do dispositivo atravs de browsers para a Internet. Nesta fase, os conceitos de programao para a Internet foram amplamente utilizados. Partindo da configurao de servidores apache e especificao e implementao de aplicaes CGI, foi disponibilizado um sistema web para a manipulao do Rede local ou internet RS232 Atuadores Figura 24: Arquitetura final do sistema PC com browser TCP/IP Lmpada PC com web server e aplicao dedicada
microcontrolador 63 dispositivo a partir de HTTP (Hiper Text Transfer Protocol). Aps a implementao do sistema, o browser ser utilizado para a realizao de testes e validao.
3.3.8 O desenvolvimento do prottipo
Com a disponibilizao de um sistema para a manipulao do dispositivo atravs de browsers para a Internet, ser desenvolvido um prottipo para o envio de comandos atravs da porta serial ou paralela. Este prottipo ser responsvel pela interao do usurio com o dispositivo. Nesta fase, os conceitos de circuito integrado, microcontroladores e componentes eletrnicos foram amplamente utilizados. Finalizada a instalao e configurao dos sistemas web e de cabeamento, o prottipo ser implantado no sistema para a realizao de testes e validao.
3.3.9 O desenvolvimento de aplicaes distribudas sobre a arquitetura criada
Com o trmino das implementaes que compe a arquitetura final, descrita anteriormente, a fase que segue a de desenvolvimento de aplicaes sobre esta arquitetura criada. Esta fase uma fase que no possui fim, visto que inmeras aplicaes podero ser criadas baseando-se no que j existe e muitas outras podem vir a serem criadas partindo-se de novas tecnologias. O projeto restringiu-se apenas a criao de um web site que utiliza o servidor html criado (para a utilizao do dispositivo atravs da internet em qualquer parte do mundo), uma aplicao remota que faz uso do servidor TCP e uma aplicao que manipula o dispositivo localmente.
64 3.4 Desenvolvimento do Dispositivo de Controle
O objetivo do prottipo ser uma ferramenta para a monitorao e controle de dispositivos eletrnicos. Este prottipo ter como interface, o browser da Internet e os comandos de gerenciamento sero feitos utilizando o programa CGI, Delphi e linguagem C. O monitor estar instalado em um host conectado a uma rede Ethernet utilizando o protocolo TCP/IP. Neste captulo sero abordados os detalhes relevantes sobre o desenvolvimento do prottipo.
3.4.1 Descrio do Sistema
Antes de entrar na parte tcnica, mostrarei uma breve explicao do funcionamento do sistema e sua estrutura. Primeiramente, observe a figura 25, note que a planta de um cmodo de uma casa. No projeto ser feita uma maquete para simular este cmodo. Este setor ser nosso laboratrio de testes. Nas partes onde esto localizadas a porta e a janela, sero instalados sensores do tipo reed-switch (figura 26) para saber se a porta ou a janela est fechada ou aberta. No laboratrio encontra-se tambm uma lmpada e uma bancada, onde sero instalados um rel e um contador para poder lig-las remotamente.
Lmpada Porta Janela Bancada Figura 25: Maquete do laboratrio Figura 26: Sensor reed-switch 65 Agora observe o diagrama representado na figura 27, nele encontra-se um PC (computador) com um browser e outro PC que vai estar no laboratrio que, por sua vez, est conectado em um microcontrolador atravs de um canal serial RS-232 que vai monitorar os sensores (porta e janela) e controlar os atuadores (luz e bancada). Os dois computadores se comunicam entre si utilizando protocolos TCP/IP dentro de uma Rede Local ou Internet. A idia do funcionamento bem simples, no browser do PC o usurio digita o endereo do WEB Server que, por sua vez, se comunica com o microcontrolador executando comandos de escrita para comandar os atuadores (luz e bancada) e comandos de leitura para saber os estados dos sensores (porta e janela).
O componente mais importante do prottipo responsvel pela execuo dos atuadores e sensores o microcontrolador, onde ser definido o protocolo de comunicao dentro do canal serial RS-232. Esse protocolo ser gerenciado Rede Local ou Internet TCP/IP PC com Browser PC com servidor WEB e aplicao dedicada Microcontrolador Serial RS232 Janela Lmpada Porta Bancada Sensores Atuadores TCP/IP Figura 27: Diagrama do funcionamento do dispositivo de controle 66 pela aplicao de controle do laboratrio. Teoricamente, o computador onde est instalado o WEB Server s responde se tiver uma requisio atravs de um browser. Isso facilitar o algoritmo que ser aplicado no microcontrolador, que ficar monitorando o canal serial at receber os comandos de escrita ou leitura. A figura 28 representa o fluxograma do programa do microcontrolador.
Figura 28: Fluxograma do programa do microcontrolador
Para este projeto, o microcontrolador escolhido foi o PIC16F628 que pino compatvel com o PIC16F84, a diferena que tem um custo menor e tem mais perifricos. Foi adotado tambm o ambiente de programao em C para PIC, da CCS (Custom Computer Services), que um ambiente muito eficiente e proporciona uma rapidez na execuo de projetos. Para fazer a aplicao de controle da serial e enviar resposta via HTML (Hypertext Markup Language), ser utilizado o ambiente Delphi. Basicamente, a Incio Comando recebido Leitura Escrita L sensores Envia resposta Escreve nos atenuadores Sim No No Sim No Sim 67 aplicao ser um CGI (Common Gateway Interface) standalone. Essa aplicao receber requisies HTML (vindas de um browser), far o processamento da requisio (comandos de leitura ou escrita na serial) e responder via HTML para o browser. A figura 29 mostra o fluxo das requisies e atuaes.
3.4.2 Conexes via Cabo Serial e Paralelo
O interessante de uma conexo via cabo paralelo ou serial a facilidade de se executar, e o custo do material, pois utiliza somente dois conectores e alguns metros de cabo, e nenhum equipamento ou placa adicional. Utiliza-se somente a porta paralela ou serial, que j padro em qualquer PC. Normalmente pode-se utilizar este tipo de conexo para jogos, transferncia de arquivos entre PCs, dispositivos externos e em ambientes industriais na qual utilizada para a comunicao dos mais diversos tipos de Microcontrolador PC com servidor WEB e aplicao dedicada Requisio HTML Requisio HTML PC com browser Resposta HTML Resposta HTML Envia Resposta Recebe Comando 1 2 3 4 5 6 Rede Local ou Internet Figura 29: Fluxo das requisies e atuaes 68 equipamentos microprocessado devido exatamente ao seu baixo custo de implantao. Antigamente era utilizado somente para a transferncia de arquivos em ambiente DOS e no WINDOWS 3.1 havia o hiper terminal que ainda existe nos WIN95,98, NT ,2000. No windows 95 em diante foi criada a conexo direta via cabo, que aumentou muito as possibilidades de aplicao para este tipo de conexo. Pode-se, por exemplo, conectar-se a outro PC remoto como em um ambiente de rede completo, compartilhando arquivos, pastas, cd-rom, impressoras. Neste tipo de conexo (Internet Conection Sharing) no possvel utilizar o compartilhamento de acesso a Internet devido inexistncia de um adaptador de rede real (o adaptador Dial-Up virtual). Para a conexo serial utilizasse a sada RS 232 de 9 ou 25 pinos presente em qualquer PC, j para a conexo paralela, a sada paralela ( LPT1 , LPT2 ... ) de 25 pinos. H vrias maneiras de ligar um dispositivo externo a um computador, como, conexo via cabo paralelo (hardware e software), rdio frequncia, a interface infravermelho (IrDA), a porta USB (Universal Serial Bus) e conexo via cabo serial (hardware). O uso do cabo paralelo foi uma das opes para realizar a conexo entre o prottipo e o computador, pelo fato de todos os computadores possurem uma porta paralela (porta DB25 da impressora), esta porta nem sempre est sendo utilizada a todo o tempo (a serial utilizada pelo mouse), a velocidade de transmisso bem mais alta que a do cabo serial, pois a serial possui somente uma via de dados e a paralela possui oito, ideal para transmitir grande volume de dados entre os computadores. Apesar da vantagem do cabo paralelo, utilizei tambm como opo o cabo serial, pois atualmente o mouse utiliza a porta PS/2 e com isso a porta do mouse fica disponvel. Portanto, para que o prottipo se 69 comunicasse com o computador atravs das duas opes, utilizei neste projeto a serial RS-232 (adaptvel ao conector de 9 e 25 pinos).
3.4.3 Servidor Internet
Como foi implementado no projeto a comunicao TCP/IP, foi desenvolvido tambm um servidor para receber e enviar os comandos de leitura e escrita entre o browser e o microcontrolador atravs da interface serial RS232. O servidor utilizado para aplicao do script CGI foi o Apache, pelo fato de sua instalao e configurao ser fcil e simples de executar. A verso utilizada para este projeto foi o Apache 2.0.45. Este servidor pode ser encontrado no seguinte site (http://www.apache.org). A instalao do Apache feita como qualquer outro programa do Windows. Depois de instalado, necessrio fazer a configurao do servidor, atravs do arquivo httpd.conf. O mnimo que deve ser configurado o diretrio onde os documentos estaro, atravs da opo DocumentRoot. Basta procurar a opo e escrever o nome do diretrio, como no exemplo: DocumentRoot "C:\akira\" Uma outra configurao bsica a DirectoryIndex, que informa ao servidor quais os arquivos sero exibidos automaticamente como ndice do diretrio. isso que faz com que ao digitar, por exemplo, "www.projeto.com.br", o servidor saiba qual dos arquivos do diretrio deve ser exibido. Abaixo temos um exemplo da utilizao do DirectoryIndex:
DirectoryIndex index.html index.htm.
Para definir essa configurao, cria-se um arquivo com um dos nomes definidos como ndice e este alocado no diretrio definido como root. Para 70 saber se o servidor foi instalado corretamente, basta executar o Apache e acessar o endereo "http://localhost" pelo browser. Se a pgina for exibida, porque o servidor foi instalado corretamente. Em seguida deve-se configurar o Apache para reconhecer o script cgi. Atualmente o apache j vem configurado para executar cgi, caso isso no ocorra, deve-se configurar a diretiva ScriptAlias e LoadModule da seguinte maneira:
Com o servidor pronto para testar o executvel do laboratrio, ser desenvolvido o programa que enviar e receber os comandos vindos do microcontrolador e as respostas de envio e recebimento do status do dispositivo atravs da Internet.
3.4.4 Aplicao Desenvolvida
Primeiramente foi desenvolvida uma aplicao para carregar as variveis de comando e leitura no microcontrolador e para que o software aplicativo possa executar e verificar o estado dos componentes do laboratrio. Esse aplicativo foi desenvolvido na linguagem de programao C e foi utilizado o compilador CCS que possui algumas diretivas que facilitam o acesso a porta serial e o envio e recebimento de dados. Na figura 30 descrito o cdigo de leitura do status dos dispositivos que esto presentes no laboratrio. 71
Figura 30: Cdigo de Leitura
Foi includo o header 16F628 que a classe do microcontrolador 16F628 da famlia PIC. As demais diretivas se referem aos pinos utilizados do microcontrolador e ao tipo de acesso a porta de comunicao. Em seguida foram definidas as variveis referentes aos dispositivos. Esta funo apenas verifica o estado de cada sensor (porta e janela). Na figura 31 descrito o cdigo de escrita para os atuadores (lmpada e bancada). E na figura 33 temos a implementao bsica da main() 72 ] Figura 31: Cdigo de Escrita
Figura 32: Parte do cdigo main
73
Figura 33: Cdigo main()
A funo resposta() utilizada apenas para mostrar os resultados de cada requisito. A funo executa_cmd() para definir o tipo de requisio. E por fim temos o programa principal responsvel pela leitura e escrita dos dispositivos.
3.4.5 Software Aplicativo
A interface que o usurio utiliza para acessar os dispositivos o browser da Internet. Esta interface manipulada no computador que possui o servidor web e o aplicativo de comunicao com a serial, como visto na figura B. Para ter acessa a esta interface, necessrio que o usurio esteja conectado a Internet. Caso o acesso a esta interface seja numa rede local, basta digitar o ip da mquina. Para desenvolver esta interface, foi utilizado o Delphi para acessar a serial e o CGI para atualizar e alterar os comandos de leitura e escrita dos dispositivos. O uso do CGI facilita o monitoramento dos dispositivos, pois a cada alterao feita no laboratrio, a interface atualizada automaticamente. 74 O software aplicativo utiliza as seguintes bibliotecas: SysUtils, Classes, HTTPApp, HTTPProd, CPort, uCiaComport. Essas bibliotecas j vm prontas no Delphi, isso possibilita um enfoque mais detalhado no programa principal. Para gerar a pgina HTML foi criado um mdulo chamado TPageProducer. A partir dele, ser enviado aos atuadores os comandos de escrita e verificado nos sensores os comandos de leitura. Na figura 34 vemos um trecho do cdigo TPageProducer.
Figura 34: Trecho do cdigo TPageProducer
No programa principal h uma rotina que manipula as tags colocados dentro do html. Tags so marcas <#BOTAOLUZ> que, quando o pageproducer processa o html e encontra a tag, chama esta rotina para a substituio da tag por algum valor texto. As tags so inseridas dentro do html que est na propriedade HTMLDoc do componente main (que um PageProducer). Na figura 35 vemos parte do cdigo que manipula as tags colocados dentro do html.
75
Figura 35: Parte do cdigo que manipula as tags colocados dentro do html
Neste cdigo vemos que h vrias instrues que verificam se as tags do pageproducer foram chamadas para serem aplicadas no microcontrolador. No exemplo do atuador da luz na figura Y, se o HardwareStatus for 1, indica que a luz est acesa, caso contrrio, est apagada. Se houver algum tipo de requisio dos atuadores, estes so aplicados na varivel CMD para montar as aes via serial, como visto na figura 36. 76
Figura 36: Cdigo que monta as aes via serial
Na figura 37 vemos o cdigo para ter acesso a porta serial e enviar e receber comandos de leitura e escrita. Neste cdigo a varivel COMM foi definida como COM1 para ter acesso a serial COM1. Para ter acesso a COM2 basta alterar a varivel COMM. Para enviar o comando de leitura via serial utiliza-se a funo WriteStr e para receber o status dos dispositivos utiliza-se a funo ReadStr. Ao compilar o programa, ser criado um executvel chamado lab1.exe para ter acesso a COM1. O lab2.exe ser utilizado para ter acesso a COM2. O uso deste programa na Internet feito da seguinte maneira. Como o servidor est pronto para executar um programa CGI, basta enviar o arquivo lab1.exe e lab2.exe para o subdiretrio cgi-bin do Apache. Para testar o laboratrio, utilizamos um browser qualquer e digitamos no endereo o seguinte caminho: http://localhost/cgi-bin/lab1.exe 77
Figura 37: Trecho de cdigo para ter acesso a porta serial
3.4.6 Funcionamento do Hardware
Os principais componentes utilizados para desenvolver o prottipo so o microcontrolador, o Rel e o circuito integrado MAX232. Capacitores, resistores, diodos e transistores foram utilizados para evitar curto circuito ou inverso da polaridade. A figura 38 mostra o esquema eltrico do prottipo. 78
Figura 38: Esquema eltrico do prottipo
Como foi dito no referencial terico, o microcontrolador 16F628 foi utilizado devido a sua eficincia e baixo custo. O uso de rels neste prottipo tambm muito importante, pois eles so responsveis pelo controle dos dispositivos ligando ou desligando-os. E para enviar os dados por uma sada serial, utilizou-se o chip MAX 232, que converte os nveis de tenso TTL para RS-232. O conector DB9 (fmea) foi utilizado para conectar na porta serial do computador, no caso na porta COM1 ou COM2, nota-se que so utilizados apenas os pinos 2, 3 e 5. O pino 2 ligado ao pino 14 do MAX232 e o pino 3 do conector ligado ao pino 13 do circuito integrado. Sendo o pino 2 receptor e o pino 3 transmissor de dados. O pino 5 o terra da serial. A figura 39 mostra a estrutura do prottipo desenvolvida. PIC16F628 MAX 232 1 2 3 4 5 6 7 8 9 12 13 15 16 5 14 8 7 10 11 11 1 3 5 4 13 14 2 6 15 2 3 5 12 16 +5V +12V +5V +5V +12V +12V +12V +5V 7805 LUZ Contador bancada Reed- switch R2 R3 R1 79
Figura 39: Prottipo
O MAX232 utilizado para compatibilizar os nveis de tenso apresentados pela porta serial (-12V/+12V) com os nveis aceitos pelo transmissor e pelo receptor (+5 volts), a alimentao do MAX232 deve ser de +5V e esta tenso adquirida pelo pino 16. O pino 15 o terra do circuito. Capacitores so utilizados para permitirem o funcionamento correto do MAX232 conforme apresentado em seu manual. 80 Os dados do circuito integrado so transmitidos atravs dos pinos 11(receptor) e 12(transmissor) e ligados aos pinos 7 e 8 do microcontrolador. O PIC converte esses sinais digitais em pequenas tenses que so transmitidas para os rels, atravs dos pinos 10 e 11. Como foi visto no referencial terico, quando um rel recebe uma certa tenso, o contato ativado e assim a corrente passa pelo circuito (Este circuito pode ser uma lmpada). Foi criado um regulador de tenso para alimentar o MAX232 e o microcontrolador. Este regulador utiliza uma tenso de +12V/100mA vindos da serial. Como nenhum pino da serial no tem essa tenso, criou-se um software para que um dos pinos que no est sendo utilizado na comunicao ficar com nvel 0, sendo que nvel 0 no RS232 12V e nvel 1 -12V. Esta tcnica bastante utilizada e pode alimentar circuitos que consomem pouca corrente. A figura 40 mostra o regulador de tenso.
Figura 40: Regulador de Tenso
81 Captulo 4
Consideraes Finais
4.1 Dificuldades Encontradas
As etapas que realmente foram implementadas do prottipo foram a aquisio de dados atravs da Internet utilizando o protocolo TCP/IP e o acesso aos comandos de leitura e escrita atravs da serial RS232. Este procedimento atualizado constantemente, de acordo com o tempo configurado. Quando o usurio quiser ligar ou desligar algum dispositivo, basta pressionar os botes que esto disponveis na interface de comunicao e os dados sero enviados pela porta serial, para um microcontrolador e deste para o computador que retornar com o status do dispositivo. As funcionalidades do projeto que envolvia a serial RS232 no foram implementadas. Aps ter sido estudada a melhor soluo para realizar esta tarefa, foi escolhido o componente MAX232, da Maxim, que possui perifricos disponveis como a serial RS232. Foi feito ento todo o estudo para integrao do mesmo com o microcontrolador PIC (hardware), bem como o Rel para poder ativar ou desativar os dispositivos que foram instalados para testes. Todas estas funcionalidades j foram descritas no referencial terico. A primeira dificuldade encontrada foi em relao alimentao do MAX232 e do PIC16F628. Isto foi resolvido usando um regulador de tenso, que converte a tenso de 12V para 5V utilizando um regulador 7805. Outro problema encontrado foi carregar um software no microcontrolador para ter acesso a serial e aos dispositvios. Para isto, foi desenvolvido um programa em C 82 para acessar seus componentes. A grande dificuldade em desenvolver esse programa foi a falta de um compilador compatvel com o programa. O desenvolvimento do programa em linguagem Assembly foi uma das opes, porm, no havia material suficiente que mostrasse todos os recursos que seriam utilizados pelo prottipo como, por exemplo, o acesso a serial RS-232 e ao microcontrolador da famlia PIC. Havia um compilador da CCS compatvel com as diretivas do programa. Porm, depois de compilado o programa, surge mais um empecilho, um aparelho que desse suporte ao microcontrolador. Quer dizer, o programa precisaria ser armazenado na memria do programa do PIC16F628, para que o software criado em html tivesse acesso ao programa do microcontrolador. Havia um gravador da ALLMAX na UFLA, porm esse aparelho era muito antigo e no era compatvel com o PIC16F628. Logo no foi possvel fazer o download do programa no microcontrolador. O que foi ento realmente implementado foi o microcontrolador com comunicao serial. Esta comunicao serial feita com o MAX232 e software de configurao, responsvel em receber e enviar os valores de comando e mostr-los em um browser na Internet. No circuito foram instalados vrios capacitores, diodos, transistores, resistores para evitar perda de componentes importantes tal como o circuito integrado MAX232 e o PIC16F628. O nico dispositivo a ser testado foi a interface de comunicao entre o usurio e o prottipo. Foi utilizada uma fonte de tenso externa, colocada no regulador para verificar seu correto funcionamento. O sinal de tenso enviado para o conector P4 e deste passa para o regulador 7805 convertendo em um sinal de tenso de 5V. Os teste seriam realizados da seguinte maneira, seriam utilizados uma lmpada, uma bancada e dois sensores, sendo um instalado na porta e outro na janela do laboratrio. Seriam 2 tipos de testes, um atravs da Internet e outro atravs da rede local. 83
4.2 Concluso
Nesta monografia foram descritos todo o funcionamento do microcontrolador, protocolo TCP/IP, Rels, servidor e interface serial. Foram dadas as descries de todo o circuito e tambm da parte de software. O prottipo foi desenvolvido de forma correta e a configurao de software funcionou normalmente atingindo o objetivo proposto. O que no foi atingido no projeto, apresentado como proposta inicial, foi o desenvolvimento deste projeto no linux. Um dos empecilhos foi a falta de material completo para a implementao do software no kylix e o acesso a porta serial ser muito complexa. O que foi desenvolvido foi um controlador com comunicao serial RS-232. As principais dificuldades encontradas no projeto foram relacionadas ao compilador do programa, o acesso ao microcontrolador atravs do software desenvolvido em linguagem C, montagem do prottipo e a implantao do projeto no sistema operacional Linux. O grande empecilho foi o gravador de PIC que estava indisponvel no momento em que se realizariam os testes. Mesmo que no tenham sido implementadas toda as funcionalidades propostas, aprendi a lidar com o protocolo TCP/IP, rede Ethernet, rels, ambiente WEB e sua aplicao utilizando microcontroladores PIC. Aprendi tambm que todo o processo de desenvolvimento necessita de um bom gerenciamento e organizao para no se perder durante o processo.
4.2 Trabalhos Futuros
A minha recomendao, caso algum se interesse em dar continuidade ao projeto, sugiro que continue utilizando o compilador da CCS, pois o seu 84 planejamento de projetos muito eficaz. H vrios outros tipos de trabalhos que podem ser feitos sobre esse projeto, como por exemplo, o meio de comunicao. Ao invs de utilizar cabo serial, pode-se adaptar a estrutura de comunicao pela tecnologia wireless (sem fio). Embora a instalao do sistema seja um pouco mais cara, no futuro, pode economizar tempo e dinheiro, j que elimina a necessidade de instalao de um novo cabeamento. O Sistema wireless expandiria a rede de dados j existente ou aumentaria o nmero de dispositivos em locais onde seria difcil a passagem de cabos. Outro trabalho bastante interessante seria adaptar o projeto sobre o sistema operacional Linux, pois assim garantiria o cdigo livre de todas as ferramentas utilizadas durante o processo. Outra dica seria implantar um sistema de segurana na interface de comunicao entre o usurio e o dispositivo. Um sistema de acesso com senha ou de segurana tipo firewall, antivrus e outros sistemas que impediria o acesso de qualquer pessoa a no ser o usurio ao sistema. Como o projeto desenvolvido um prottipo base, h uma infinidade de adaptaes que podem ser feitas sobre o projeto.
85 Referncias Bibliogrficas
[Bernardes & Chostakovis (2002)] Bernardes, L. H. C. & Chostakovis, R. Con- trole de Dispositivos pelo Internet Explorer. Eletrnica Total n 88, 2002.
[Comer (1998)], Douglas E; Interligao em rede com TCP/IP. Rio de Janeiro Campus, 1998.
[Kuo (1995)], Benjamin C.; Automatic Control Systems, seventh edition, 1995.
[Redes (2001)], Curso de. Trabalho sobre as camadas de rede. Proena, mar [2001?]. Disponvel em: <http://proenca.uel.br/curso- redes-graduacao/1998/trab-08>. Acesso em: 25 mar. 2003.
[RFC 791(2001)]. Internet Protocol. Califrnia, mar [2000?]. Disponvel em <http://www.netsys.com/rfc/rfc791.txt>. Acesso em: 12 mar. 2003.
[Stang (1994)], David J; MONN, Sylvia. Segredos de segurana em rede. Rio de Janeiro: Berkeley, 1994.
[Starlin (1999)], Gorki. Manual Completo do Hacker: como ser e evita-los. Rio de Janeiro: Book Express, 1999.