Você está na página 1de 85

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DA PARABA CAMPUS CAJAZEIRAS DIREO DE ENSINO UNIDADE ACADMICA DA REA DE INDSTRIA COORDENAO

DO CURSO SUPERIOR DE TECNOLOGIA EM AUTOMAO INDUSTRIAL

MDULO DE ACIONAMENTO E MONITORAMENTO VIA WEB

RENATO FRANKLIN RANGEL TRABALHO DE CONCLUSO DE CURSO ORIENTADOR: GIO GONALVES DE MORAES FELIPE COORIENTADOR: SAMUEL ALVES DA SILVA

Cajazeiras - PB, Maro de 2012


1

Renato Franklin Rangel

MDULO DE ACIONAMENTO E MONITORAMENTO VIA WEB

Trabalho de concluso de curso apresentado como parte das atividades para obteno do ttulo de Tecnlogo em Automao Industrial, do curso Superior de Tecnologia em Automao Industrial do Instituto Federal da Paraba, rea de concentrao em Automao Industrial.

Orientador: gio Gonalves de Moraes Felipe. Coorientador: Samuel Alves da Silva.

Cajazeiras - PB, 2012


2

AGRADECIMENTOS

Agradeo primeiramente a Deus por ter me conferido sade, sabedoria, enfim, todas as condies necessrias para o desenvolvimento desse trabalho. Agradeo tambm aos meus pais por me terem concedido dignidade e educao, a meus irmos e familiares como um todo pelo apoio e confiana, em especial a minha tia Julia que foi imprescindvel durante toda a minha graduao. Aos meus professores e orientadores por toda a pacincia e dedicao e aos colegas de curso pelo companheirismo.

RESUMO

O presente trabalho prope a implementao de um dispositivo microcontrolado capaz de controlar remotamente, equipamentos e processos industriais. Baseado no microcontrolador PIC18F87J60, este dispositivo utiliza a internet como meio de comunicao, fornecendo ao usurio versatilidade e baixo custo. O desenvolvimento das pginas web realizado a partir de cdigos em HTML, CSS, XML, funes de JavaScript e Ajax. Como exemplo de aplicao, o acionamento e monitoramento de um sistema de iluminao a partir do mdulo com internet embarcada, o qual proporcionar ao usurio total controle sob a iluminao de um ambiente atravs de uma pagina web. Palavras-chave: microservidor, internet embarcada, acionamento e monitoramento

ABSTRACT

This work proposes the implementation of a micromachined device can remotely control, equipment and industrial processes. Based on the PIC18F87J60

microcontroller, this device uses the Internet as a means of communication, providing the user with versatility and low cost. The development of web pages is done from code in HTML, CSS, XML, JavaScript and Ajax functions. As an application example, the activation and monitoring of a system of illumination from the module with embedded internet, which will give the user full control over the lighting of an environment through a web page. Keywords: Microserver, embedded internet, activation and monitoring

LISTA DE FIGURAS
Figura 1.1 Esquema de acesso de dados remotamente ......................................... 13 Figura 2.1 Modelo 360 IBM de 1964 ....................................................................... 17 Figura 2.2 Estaes conectadas ao meio usando padro 10Base5........................ 23 Figura 2.3 Estaes conectadas ao meio usando padro 10BaseT. ...................... 24 Figura 2.4 Camadas do modelo de protocolos OSI................................................. 28 Figura 2.5 Funcionamento da comunicao entre as camadas do modelo OSI......29 Figura 2.6 Comunicao virtual no modelo OSI. ..................................................... 30 Figura 2.7 Grupos das camadas do modelo OSI. ................................................... 31 Figura 2.8 Comparao estrutural em relao s camadas entre os modelos de referencia OSI e TCP/IP............................................................................................. 33 Figura 2.9 Diagrama simplificado de um C baseado na arquitetura Harvard. ....... 39 Figura 2.10 Controlador Ethernet ENC28J60. ......................................................... 42 Figura 2.11 Interface de rede 100/10BaseT ............................................................ 42 Figura 3.1 Comportamento do modelo de referncia e protocolos implementados na pilha da microchip. ..................................................................................................... 44 Figura 3.2 Comparao estrutural do Modelo de Referncia TCP/IP e a Pilha TCP/IP da Microchip.. ................................................................................................ 45 Figura 3.3 Formato da imagem MPFS2. ................................................................. 48 Figura 3.4 Formato do FAT de entrada MPFS2. ..................................................... 48 Figura 3.5 Formato do bloco de dados.................................................................... 49 Figura 3.6 Diagrama de pinos do PIC18F87J60. .................................................... 51 Figura 3.7 Diagrama de Blocos do PIC18F87J60. .................................................. 51 Figura 3.8 Diagrama de bloco do Mdulo Ethernet ................................................. 52 Figura 3.9 Dimenses fsicas do PIC18F87J60. ..................................................... 53 Figura 3.10 Interface Ethernet PME10A de 10Mbps ............................................... 54 Figura 3.11 Ambiente de trabalho do MPLAB IDE v8.50 ........................................ 56
6

Figura 3.12 Ambiente de desenvolvimento do Proteus. .......................................... 57 Figura 3.13 Gravador PICkit2. ................................................................................. 57 Figura 3.14 Tela inicial do Dreamweaver CS3. ....................................................... 58 Figura 4.1 Solicitao via GET. ............................................................................... 64 Figura 4.2 Menu de arquivos que compem a pilha................................................ 66 Figura 4.3 Circuito eletrnico em simulao. .......................................................... 68 Figura 4.4 Compilador das pginas web. ................................................................ 69 Figura 4.5 Informaes referentes a pgina web compilada. .................................. 60 Figura 4.6 Arquivo mpfsupload carregado no navegador........................................ 70 Figura 4.7 Mdulo montado para o controle de iluminao via web. ...................... 71 Figura 4.8 Circuito condicionador de sinal .............................................................. 72 Figura 5.1 Interface de gravao PICkit2. ............................................................... 74 Figura 5.2 Exemplo de variveis no arquivo status.xml. ......................................... 77 Figura 5.3 Requisio ao arquivo xml. .................................................................... 78 Figura 5.4 Esquemtico do mdulo conectado a rede e ao sistema de iluminao. ................................................................................................................................... 78 Figura 5.5 Pgina de acesso ao controle de iluminao via Web ........................... 79 Figura 5.6 Requisio de login e senha para acesso a pgina de controle ............ 80 Figura 5.7 Status da sala (luzes acesas e sistema liberado) .................................. 81 Figura 5.8 Status da sala (circuitos desligados e sistema bloqueado) .................... 81

SUMRIO
1 INTRODUO ........................................................................................................... 10 1.1 Fundamentao Terica ...................................................................................... 12 1.2 Arquitetura Proposta ............................................................................................ 13 1.3 Objetivos .............................................................................................................. 15 1.3.1 Geral .............................................................................................................. 15 1.3.2 Especficos ..................................................................................................... 15 1.4 Estrutura do Trabalho.......................................................................................... 15 2 REVISO BIBLIOGRFICA ....................................................................................... 17 2.1 Desenvolvimento das Redes de Comunicao e da Internet ............................... 17 2.2 Surgimento do Padro Ethernet ........................................................................... 22 2.3 Modelo de Referncia OSI (MR-OSI) ................................................................... 27 2.4 Pilha de Protocolos TCP/IP Arquitetura da Internet .......................................... 33 2.5 Microcontroladores ............................................................................................... 37 2.6 Internet Embarcada .............................................................................................. 41 3 FERRAMENTAS UTILIZADAS NO DESENVOLVIMENTO DO PROJETO................ 43 3.1 Pilha TCP/IP da Microchip ................................................................................. 43 3.1.1 Servidor HTTP da Microchip ....................................................................... 46 3.1.2 Microchip File System 2 (MPFS2) .................................................................. 47 3.2 Microcontrolador PIC18F87J60 ............................................................................ 49 3.3 Especificao de Hardware .................................................................................. 53 3.4 MPLAB IDE .......................................................................................................... 55 3.5 PROTEUS ............................................................................................................ 56 3.6 GRAVADOR PICkit2 ............................................................................................ 57 3.7 Ferramentas para o Desenvolvimento de Pginas Web ...................................... 58 3.7.1 Dreamweaver ................................................................................................. 58 3.6.2 TECNOLOGIAS PARA APLICAES WEB ................................................. 59
8

4 IMPLEMENTAO DO PROJETO ............................................................................ 62 4.1 Desenvolvimento do Software .............................................................................. 62 4.1.1 Desenvolvimento da Pgina Web .................................................................. 62 4.1.2 Servidor HTTP ............................................................................................... 63 4.1.3 Configurao da Pilha TCP/IP ....................................................................... 65 4.1.4 Testes Desenvolvidos no Simulador .............................................................. 67 4.2 Desenvolvimento de Hardware ............................................................................ 70 5 FUNCIONAMENTO DO PROJETO PROPOSTO ...................................................... 74 5.1 Gravao da Pgina Web e da Pilha TCP/IP no Mdulo ..................................... 74 5.2 Funcionamento da Aplicao Web Junto ao Microservidor .................................. 75 5.2.1 Funcionamento do Mdulo Junto ao Sistema de Iluminao ......................... 78 6 CONCLUSO ............................................................................................................. 82 7 REFERNCIAS BIBLIOGRFICAS ........................................................................... 83

1 INTRODUO

Com o contnuo avano da tecnologia e da automao envolvendo o setor industrial, h sempre a necessidade de novas pesquisas e desenvolvimento de novas tcnicas. Dentre os inmeros pontos a serem estudados e desenvolvidos dentro de um processo, est o acionamento e monitoramento de sistemas ou mquinas, os quais esto diretamente relacionados com a agilidade e qualidade da produo dentro de uma fbrica ou a equipamentos usados no nosso dia-a-dia como condicionadores de ar, sistemas de iluminao, equipamentos eltricos domsticos em geral e etc. Sendo assim, o estudo e viabilizao das novas tecnologias so indispensveis no s para os processos industriais, mas tambm nas reas fundamentais para o bem estar humano. Atualmente existem alguns dispositivos de controle responsveis pela parte de comandos de sistemas ou equipamentos, Controladores Lgicos Programveis - CLPs por exemplo. Esse controlador pode acionar mquinas por mtodos pr-definidos e tambm monitorar as mesmas. O problema deste tipo de controle que o investimento da automatizao relativamente alto, o que, dependendo do processo se torna economicamente invivel e, ainda h a necessidade da presena de um operador no ambiente para iniciar o processo, saber em que estado ele se encontra e/ou para o recolhimento dos dados de monitoramento. Os sistemas de comunicao de dados, em especial a internet, vem se tornando uma ferramenta cada vez mas essencial para o homem moderno, aumentando significativamente (MOKARZEL, 2004). De browsers web de telefones celulares a cafs que oferecem acesso sem fio internet, de redes domsticas com acesso a banda larga a infra-estruturas tradicionais de TI (Tecnologia da Informao) em ambientes de trabalho com PCs (Computadores
10

a eficincia daqueles que utilizam seus recursos

Pessoais) interligados em rede, carros em rede, redes de sensores ambientais, internet interplanetria - quando achamos que as redes de computadores j esto praticamente presentes em toda parte, novas aplicaes comeam a ser desenvolvidas para ampliar mais ainda o alcance das redes existentes hoje (KUROSE, 2006). A enorme praticidade proporcionada pelo desenvolvimento atual das redes e da internet, de em qualquer lugar que se tenha acesso a um navegador web, seja por meio de um computador, um laptop, um PDA (Personal Digital Assistants - assistente pessoal digital) ou mesmo pelo telefone celular, poder verificar o estado de um sistema ou equipamento que se encontra geograficamente distante e, dali mesmo ter condies de executar sua operao, uma realidade possvel de ser implementada, graas disposio das redes ethernets nos mais variados ambientes, complementada pela possibilidade de fazer com que os dados adquiridos por um microcontrolador, responsvel pelo gerenciamento do processo, estejam disponveis. Para isso, o microcontrolador dever conter um controlador ethernet embarcado, possibilitando-o alm da implementao da pilha de protocolos TCP/IP (conjunto de protocolos organizados em camadas que regem o funcionamento da Internet onde os dois principais so respectivamente o Transmission Control Protocol Protocolo de Controle de Transmisso / Internet Protocol Protocolo de Internet) a conexo e disponibilizao dos dados na rede. Podendo assim ser considerado um microservidor web. Este trabalho apresenta a viabilidade tcnica e econmica no desenvolvimento e implementao de um mdulo de pequeno porte, flexvel, com um baixo consumo de energia, baixo custo e baseado em um microcontrolador usado para controlar via rede ethernet outros dispositivos eltricos remotamente atravs da internet. Ser demonstrado como exemplo prtico, o controle de um sistema de iluminao, no qual o usurio ter total controle sob o mesmo atravs do acesso pgina, desde saber como se encontra o estado das luzes (acesas ou apagadas), ou controlando tal estado (acendendo/apagando), tendo ainda a opo de liberar ou no o sistema para ser operado no prprio ambiente atravs dos interruptores. Ao mesmo tempo, este trabalho envolve um grande desenvolvimento cientfico/tecnolgico, relacionando diretamente conceitos de: eletrnica,

microcontroladores, linguagens de programao, redes de comunicao e interfaces web. Havendo assim, uma aplicao direta de conhecimentos adquiridos ao longo do curso em casos prticos de automao.
11

1.1 Fundamentao Terica


Atualmente, a internet se apresenta em contnuo avano oferecendo a seus usurios meios de obter e divulgar informaes, com isso, a existncia de um estudo profundo na sua estrutura de conectividade, representa um importante fator de desenvolvimento tcnico-social. crescente tambm a realizao de estudos para viabilidade de sistemas e equipamentos inteligentes, que recebem esse nome por serem dotados de circuitos eletrnicos com capacidade de processamento. A associao destes dispositivos com a internet, j permitem a conectividade e o acesso a nvel global de sistemas eletrnicos e eletro-eletrnicos como dispositivos domsticos, industriais e etc. A partir de conhecimentos bsicos na rea de comunicao industrial fcil perceber que a diferena entre as redes e os dispositivos conectados a elas vem diminuindo. Pois, h um nmero crescente de dispositivos eletrnicos conectados em rede independentemente de um computador ou servidor, e busca-se contar com caractersticas tais como eficincia, economia, confiabilidade, segurana e

compatibilidade com os padres internacionais de comunicao e topologias de redes atuais, tornado-os compactos e funcionais. Atentos a essas situaes, muitos fabricantes tem direcionado investimentos para a produo de sistemas embutidos com suporte a rede, rea que est em franca expanso, atualmente muitos deles direcionam suas tecnologias para plataformas de sistemas embutidos, inclusive alguns deles com suporte para interface de rede (SILVA, 2002). Com todas essas inovaes, as atuais aplicaes de acionamento e/ou monitoramento remoto se tornaram mais simples e com um custo menor por no haver mais a necessidade de um computador como servidor dedicado se comunicando com uma placa de aquisio de dados, bastando agora, utilizar apenas uma placa dotada de um microcontrolador com ethernet embutida. A necessidade, em um primeiro momento, do uso de um computador como servidor dedicado justificado pelo mesmo ser responsvel por conter as pginas web, utilizada como interface de interao com a placa, o servidor web, responsvel pelo armazenamento e publicao das pginas na internet, o programa, responsvel pelo gerenciamento das aes no hardware dependendo da ao do usurio junto pgina, e tambm responsvel pela comunicao placa/servidor.

12

A partir do momento que se utiliza a tecnologia da internet embarcada, empregando microcontroladores com ethernet embutida, extingui-se a necessidade de usar um computador como servidor, uma vez que, o servidor web, as pginas web e o programa de aplicao esto armazenados no prprio dispositivo, a comunicao com o computador servidor, naturalmente, no mais necessrio. Esse modelo possibilita que monitoramento e acionamento possam ser realizados a partir de uma rede local ou da Internet, utilizando um dispositivo dedicado e de baixo custo (SANTOS, 2009).

1.2 Arquitetura Proposta


O propsito final desse trabalho a implementao de um mdulo microcontrolado capaz de se conectar a internet possibilitando o acionamento e monitoramento de cargas via web, viabilizando, dentre outras aplicaes possveis, o controle de um sistema de iluminao.

Figura 1.1 Esquema de acesso de dados remotamente

A Figura 1.1ilustra o esquemtico da implementao proposta. Foi utilizado no projeto um microcontrolador da famlia PIC18F, este oferece, dentre outros recursos, a possibilidade de conexo a internet. A particularidade dessa linha de

microcontroladores que alguns modelos, como por exemplo, o PIC18F87J60, possuem a capacidade de comunicar-se diretamente com a rede ethernet, motivo principal que levou a escolha desse dispositivo para o projeto, enquanto outros, apesar de serem capazes de implementar a pilha de protocolo TCP/IP, no tem a capacidade
13

de conexo direta a camada fsica da rede, sendo necessrio um controlador ethernet externo, como, por exemplo, o ENC28J60, tambm fornecido pela Microchip. A utilizao desse controlador implica na necessidade da elaborao de circuitos de tenso devidos a uma provvel incompatibilizao das tenses de trabalho entre o controlador e o PIC, e, ainda, o uso de transformadores de isolamento entre o controlador e a interface de rede, isso para o casamento das impedncias e a proteo eltrica do controlador ethernet. A pilha TCP/IP utilizada neste projeto a desenvolvida e fornecida gratuitamente pela Microchip e similar a uma pilha TCP/IP tradicional. O objetivo da mesma permitir que um microcontrolador se conecte a internet como se fosse um computador, a mesma embarcada na memria no-voltil (Flash) do

microcontrolador, a fim de estabelecer a conexo lgica com uma mquina remota em um determinado segmento de rede. O HTTP Hypertext Transfer Protocol (Protocolo de Transferncia de Hipertexto), que pertence a camada de aplicao da pilha TCP/IP, responsvel pela transferncia de dados (texto, imagens ou sons) na internet. Dessa forma, um navegador (Internet Explorer, Firefox, etc.), se comportando como cliente, utiliza o HTTP para requisitar pginas web a um servidor (mdulo embarcado) conectado a uma rede local ou a internet. O mdulo microcontrolado, quando conectado a rede desenvolver a funo de servidor web. A pgina contida neste microservidor precisar mostrar contedos dinmicos quando acessada, e interagir com o usurio quando ele fornecer entradas atravs da prpria pgina que por sua vez enviar uma informao para o microservidor o qual retornar novos dados que deveram ser mostrados na pgina. Essas variaes de dados podem ser realizadas atravs do AJAX (Assyncronous JavaScript And XML) que uma tcnica recente que usa um conjunto de tecnologias padres como o XML e o HTML dinmico que usa HTML, CSS e JavaScript juntos. O AJAX elimina a necessidade de se atualizar a pgina inteira a cada requisio do usurio (como acontece no modelo web clssico). Com a comunicao assncrona, a transmisso de dados mais eficiente, pois a atualizao feita somente com os dados necessrios. Dessa maneira h mais interatividade e rapidez (SILVA, 2009).

14

1.3 Objetivos
1.3.1 Geral
Este trabalho tem como objetivo o desenvolvimento de um mdulo microservidor para acionamento e monitoramento de cargas atravs de redes ethernet.

1.3.2 Especficos
Utilizar a Internet para o monitoramento das variveis envolvidas em um processo e ainda como ferramenta de insero de entradas para o acionamento remoto de cargas; Adquirir conhecimentos sobre a tecnologia Internet Embarcada, que consiste basicamente na conexo de sistemas embarcados rede; Demonstrar, ao nosso pblico escolar, a importncia e a viabilidade da utilizao dessa tecnologia, ainda pouco explorada, para o desenvolvimento de automatizaes no ambiente industrial; Melhorar as condies de trabalho do ser humano, por meio da eliminao do contato direto para acionamento ou leitura de diagnsticos de equipamentos que funcionam em ambientes perigosos ou insalubres; Desenvolver habilidades na utilizao de softwares que possibilitam a construo e simulao de circuitos eletrnicos e o desenvolvimento de programas que comandam a seqncia de funcionamento de um hardware atravs de um microcontrolador; Implementao de um software que promova o controle e a aquisio remota dos dados do sistema via web em tempo real; Desenvolver testes do sistema proposto, primeiro com auxilio dos softwares de simulao e logo depois no componente fsico; Utilizar como exemplo de aplicao, o controle de um sistema de iluminao atravs do mdulo de acionamento e monitoramento via web.

1.4 Estrutura do Trabalho


O captulo 1 apresenta um breve resumo sobre a importncia dos dispositivos embarcados com possibilidade de acesso a rede e das tecnologias e ferramentas utilizadas nesse trabalho, assim como os objetivos que levaram o desenvolvimento do mesmo.
15

O segundo captulo faz uma reviso bibliogrfica que abrange desde o desenvolvimento das redes e da Internet, redes Ethernet, modelos de referncia OSI (Interconexo de Sistemas Abertos) e TCP/IP - comparando as duas tecnologias com um resumo das funes das camadas que os constituem, at a utilizao de microcontroladores e sua aplicao com a tecnologia de Internet embarcada. O captulo 3 dispe as ferramentas utilizadas para o desenvolvimento de software e hardware. O captulo 4 traz a implementao do projeto, com a programao da pgina web e adaptao da pilha TCP/IP da Microchip aplicao. disposto tambm os processos de compilao e simulao em software do projeto, assim como a estruturao fsica do hardware relacionando os componentes utilizados para montagem do mesmo. O Captulo 5 explica o funcionamento da aplicao web junto ao mdulo embarcado. Em seguida descreve o funcionamento do mdulo controlando remotamente (via Internet ou rede Ethernet local) um circuito de iluminao. No captulo 6 encontra-se a concluso do trabalho e a sugesto para trabalhos futuros.

16

2 REVISO BIBLIOGRFICA

Nesse captulo esto apresentados alguns conceitos importantes para o desenvolvimento do trabalho proposto, desde um breve resumo a cerca do desenvolvimento das redes e da Internet, importncia das redes Ethernets, modelos de referncia da pilha TCP/IP, fundamentos de microcontroladores e Internet embarcada.

2.1 Desenvolvimento das Redes de Comunicao e da Internet


Uma rede um conjunto de dispositivos interconectados capazes de enviar e\ou receber informaes entre eles, e surgiu exatamente da necessidade da troca de informaes, onde possvel ter acesso a um dado que est fisicamente localizado distante de voc. O desenvolvimento das redes de comunicao entre computadores possibilitou o extraordinrio sistema de comunicao existente hoje e que teve inicio cerca de quatro dcadas.

Figura 2.1 Modelo 360 IBM de 1964

17

Por volta dos anos 60 os sistemas computacionais eram altamente centralizados e existiam poucas unidades de computadores, estes eram chamados de mainframes, mquinas de grande porte, geralmente instalados em uma sala com paredes de vidro, que pertenciam a grandes organizaes de pesquisas e importantes universidades. Esses computadores tinham capacidades de processamento isoladas, eram incapazes de se comunicar com um outro computador. A Figura 2.1 mostra um modelo desses computadores. Segundo STEMMER (2010), nessa mesma poca, na tentativa de melhorar a interatividade usurio\computador surgiu uma tcnica denominada time-sharing, que consistia na conexo de um conjunto de terminais ao computador central atravs de linhas de comunicao de baixa velocidade permitindo a um grande conjunto de usurios o compartilhamento de um nico computador para a resoluo de grandes quantidades e diversidades de problemas (clculos complexos, ensino de

programao, aplicaes militares, etc.). Esse aumento na demanda implicava na necessidade crescente de atualizaes e incrementos nas capacidades de

armazenamento e clculos da unidade central, o que nem sempre era possvel, pois esses computadores do tipo mainframe geralmente no eram adaptados para suportar determinadas extenses. Interessada em encontrar um modo de compartilhar informaes atravs de computadores para agilizar o trabalho de seus pesquisadores, a Agencia de Projetos e Pesquisas Avanadas (ARPA), do Departamento de Defesa dos Estados Unidos (DoD), patrocinava grupos de pesquisadores para o desenvolvimento de uma rede de comunicao capaz de sobreviver a uma guerra nuclear. Segundo FOROUZAN (2006) em 1967, num encontro da Association Computing Machinery (ACM) o grupo ARPA apresentou as idias do projeto ARPANET, uma rede pequena de computadores. A idia era que cada computador (host), no importando o fabricante, pudesse se comunicar a um computador especfico, denominado IMP (interface message processor processadores de mensagens de interface). Os IMPs tinham a capacidade de se conectar e se comunicarem entre si, assim como estabelecer comunicao com o host que pedia acesso a rede. Uma das estratgias da ARPA, que desenvolvia um conceito criado por Paul Baran na Rand Corparation em 1960-4, foi criar um sistema de comunicao invulnervel a ataques nucleares. Com base na tecnologia de comunicao de trocas de pacotes, o sistema tornava a rede independente de centros de comandos e controle
18

(CASTELLS, 1999). Em 1969, seguindo o conceito de rede com controle descentralizado com a possibilidade de envio de dados digitais em pequenos pacotes que carregavam informaes sobre o endereo dos dados, controle de erros e sobre o seqenciamento das informaes, a ARPANET tornou-se uma realidade. Neste novo cenrio, cada computador conectado a rede era considerado um ponto, ou um n, mesmo que um dispositivo conectado ou parte do segmento da rede falhasse a parte ainda operante rotearia os pacotes at o seu destino. Esta primeira rede de computadores iniciou-se com quatro ns, a Universidade da Califrnia em Los Angeles (UCLA), a Universidade Califrnia em Santa Brbara (UCSB), o Stanford Research Institute (SRI) e a Universidade da Utah. De acordo com FOROUZAN (2006), um software batizado de Network Control Protocol (NCP) controlou a comunicao entre os hosts, e segundo MORIMOTO (2009), eles eram interligados por links de 50 Kbps, criados utilizando linhas telefnicas dedicadas, adaptadas para o uso como links de dados. Essa velocidade em conexes de longa distncia era impressionante pra poca onde as pessoas se dispunham de uma taxa de 110 bits por segundo com seus modems domsticos. Esses quatro ns interligados, que se encontravam distantes uns dos outros, se tratavam de quatro computadores de arquiteturas diferentes, formando uma rede que tinha um propsito inicial de testes, mas, houve um crescimento to grande que nos primeiros anos da dcada de 70 j havia dezenas de computadores pendurados nesta rede, interligando universidades, instituies militares e empresas. Cada n era conectado com pelo menos dois outros, o que garantia a operao da rede, pois mesmo com a interrupo de varias conexes a mesma ainda continuaria funcionando. Em meados de 1973, Vinton Cerf e Robert Kahn, cientistas da computao que faziam pesquisas na ARPA, criaram a arquitetura fundamental da Internet especificando um protocolo de transmisso que seria compatvel com os pedidos de vrios pesquisadores e as diversas redes existentes (CASTELLS, 2009). Tratava-se do estabelecimento do protocolo de controle de transmisso (Transmission Control Protocol - TCP) que promovia a entrega segura de pacotes de dados em toda a rede. Enquanto isso, vrias organizaes programavam suas prprias redes, tanto para comunicao interna quanto para comunicao entre organizaes, em pouco tempo havia uma grande variedade de hardware e software de rede, gerando problemas de compatibilizao o que implicava um novo desafio: fazer com que diferentes redes se interligassem. Por volta de 1978, Vinton Cerf, junto com outras
19

autoridades da rea da computao, solucionaram esse problema dividindo o TCP em duas partes, surgindo assim, o protocolo inter-redes (Internetworking Protocol - IP), mais tarde denominado como Internet Protocol. O IP ficaria responsvel por rotear as informaes entre as redes, enquanto o TCP assegurava que as mensagens fossem corretamente enviadas de seu remetente at o destinatrio. Assim, o TCP/IP estabeleceu-se como um protocolo padro, capaz de adaptar-se diversidade, se tornando a forma de comunicao mais comum entre computadores sendo a arquitetura definitiva da ARPANET e mais tarde da Internet. De acordo com CASTELLS (2009), ainda era necessrio mais uma convergncia tecnolgica para que os computadores se comunicassem: a adaptao do TCP/IP ao UNIX, um sistema operacional que viabilizava o acesso de um computador a outro. Esse sistema foi inventado pela Bell Laboratories em 1969, mas s passou a ser amplamente usado depois de 1983, quando os pesquisadores de Berkeley (tambm financiados pela ARPA) adaptaram o protocolo TCP/IP ao UNIX. Paralelo ao desenvolvimento dessa rede universal de computadores custeada pelo Pentgono, nos quais os estudos, em primeiro momento, eram restritos a grandes universidades e renomados cientistas, existiam um grande nmero de intelectuais e estudantes a procura de formas de transferir informaes entre seus computadores. A prova disso foi a inveno do modem, em 1978 por dois estudantes de Chicago. Ward Chrisrensen e Randy Suess realizaram a descoberta quando buscavam uma forma de transferir programas entre microcomputadores via telefone. Em 1979, divulgaram o protocolo XModem, que permitia a transferncia direta de arquivos, sem passar por um sistema principal, entre as mquinas. Assim, as redes de computadores que no pertenciam ao projeto ARPANET descobriam uma maneira de se comunicar. O primeiro sistema amplamente utilizado de conversas on-line, a Usenet News, surgiu a partir de uma verso modificada do protocolo UNIX o qual possibilitava a interligao de computadores via linha telefnica comum. Esse sistema foi desenvolvido em 1979 por trs estudantes da Duke University e da Universidade da Carolina do Norte, no inclusas na rede ARPANET. Em fins da dcada de 1980, alguns milhes de usurios de computador j estavam usando as comunicaes computadorizadas em redes cooperativas ou comerciais que no faziam parte da Internet. Em geral, essas redes usavam protocolos que no eram compatveis entre si, portanto adotaram protocolos da Internet, mudana

20

que na dcada de 1990, garantiu sua integrao com a Internet e, assim, a expanso da prpria Internet (CASTELLS, 1999). Apesar de todo o desenvolvimento j alcanado, a busca de informaes atravs da Internet ainda oferecia complicaes, havia muitas dificuldades para localizar e receber informaes especficas e a capacidade de transmisso de grficos, por exemplo, ainda era muito limitada. At ento, as pesquisas e as trocas de informaes eram realizadas atravs do sistema Gopher, que utilizava o FTP File Transfer Protocol para troca de arquivos. Como ele baseado apenas em texto, tornava a pesquisa e a leitura bastante tediosas. Esses problemas foram solucionados a partir de um novo avano tecnolgico, o desenvolvimento de um aplicativo denominado World Wide Web WWW, a vasta teia mundial, que facilitou o acesso a contedos na Internet atravs da organizao do teor das informaes contidas na rede, agilizando as pesquisas e permitindo aos usurios localizar e visualizar documentos baseados em multimdia textos, animaes, imagens grficas, udios ou vdeos sobre qualquer assunto, de maneira estruturada, atravs da Internet. De acordo com DEITEL (2003), em 1990, Tim Berners-Lee, do CERN (Conseil Europen pour la Recherche Nuclaire Laboratrio Europeu de Pesquisa Nuclear) desenvolveu a World Wide Web e vrios protocolos de comunicao que foram o backbone, ou a espinha dorsal, da Web. Segundo SAMPAIO (1996), a WWW foi criada inicialmente para facilitar a troca de informaes e descobertas entre a comunidade cientfica, mas rapidamente, com o surgimento do navegador web Mosaic, de Mark Andressen, tomou conta de toda a Internet. Informa ainda, que o grande truque da WWW ser baseada em arquitetura Cliente-Servidor, o que divide a responsabilidade do processamento entre o computador do usurio e o do provedor de acesso. Isto permite que, enquanto um est formatando os dados, o outro est transmitindo imagens e etc. Ao novo sistema de organizar informaes atravs da WWW, deu-se o nome de hipertexto. Berners Lee junto equipe da CERN criaram um formato para esses documentos de hipertexto, a linguagem de marcao de hipertexto HTML, acrescentando essa formatao ao protocolo TCP/IP e configurando um novo protocolo de transferncia de hipertexto HTTP, para orientar a comunicao entre navegador e servidor. Em fevereiro de 1990, a ARPANET, ainda sustentada pelo Departamento de Defesa dos Estados Unidos e operada pela Fundao Nacional de Cincia, encerrava
21

suas atividades passando a responsabilidade de espinha dorsal da Internet para NSFNET tambm operada pela National Science Foundation, que operou at abril de 1995, quando o governo anunciou a privatizao da Internet. Fato, provavelmente provocado, por fortes presses comerciais e pelo grande aumento de usurios com o crescimento das redes de empresas privadas e de redes corporativas sem fins lucrativos. A partir de ento, surgiram varias empresas denominadas ISPs (Internet Service Providers - provedores de servios da Internet), que ofereciam a usurios comuns de computadores a possibilidade de conexo de suas mquinas Internet, e o mundo todo a abraou criando uma verdadeira teia mundial. Desde a dcada de 1960 a Internet sofreu muitas mudanas. Hoje ela uma grande rede TCP/IP constituda de milhes de pequenas redes trabalhando juntas. O seu poder de comunicao, juntamente com os progressos em telecomunicaes, na computao e no desenvolvimento de dispositivos eletrnicos provocou grandes mudanas no mundo tecnolgico.

2.2 Surgimento do Padro Ethernet


No decorrer da dcada de 1970, paralelo ao desenvolvimento das redes de comunicao entre computadores geograficamente distribudos que fundamentaram a Internet, desenvolvia-se uma rede de transmisso de dados entre micros que se encontravam em um mesmo ambiente. De acordo com MORIMOTO (2009), o primeiro teste foi feito em 1973 dentro da PARC (laboratrio de desenvolvimento da Xerox, em Palo Alto, EUA). O teste deu origem a primeira rede Ethernet, que transmitia dados a 2.94 megabits atravs de cabos coaxiais. At 256 estaes de trabalho podiam ser conectadas ao sistema por meio de transceptores presos ao cabo. O nome Ethernet no foi escolhido por acaso para denominar tal forma de transmisso de dados. De acordo com TANENBAUM (2003), o termo ether, vem do ter luminfero - meio pelo qual os fsicos do sculo XIX acreditavam que a radiao eletromagntica se propagava. O termo foi escolhido para enfatizar que o padro Ethernet no era depende do meio, ou seja, ele podia ser adaptado para transmitir dados atravs de um cabo coaxial, cabos de fibra tica e at mesmo pelo ar, no caso das redes wireless. A tecnologia Ethernet continuou se desenvolvendo, sua taxa de transmisso logo passou de 2.94 Mbps para 10Mbps, quando foi adotada pela IEEE (Institute of Eletrical
22

and Eletronics Engineers) como padro 802.3, segundo LOPEZ (2000) em 1988. Caracterizou-se como padro de rede de uso geral, dando origem s importantes redes locais ou LANs (Local Area Network). Esse estilo de rede passou a ser amplamente utilizado para interconectar computadores pessoais em reas geograficamente pequenas, como uma empresa, ou uma universidade, possibilitando o

compartilhamento de equipamentos, como impressoras, o que permite melhor aproveitamento de recursos disponveis em ambientes de trabalho. Outra vantagem que a rede local era a forma mais barata de conectar todos os micros a Internet, se comparada forma existente na poca onde cada micro tinha por obrigao uma linha telefnica e um modem. A primeira implementao do padro Ethernet 10 Mbps, denominava-se 10BASE5, sigla que a juno de 3 informaes. O 10 se refere a velocidade de transmisso, 10Mbps, o BASE abreviao de baseband modulation, o que indica que o sinal transmitido diretamente, de forma digital (sem o uso de modems, como no sistema telefnico), enquanto o 5 indica a distancia mxima que o sinal capaz de percorrer, nada menos que 500 metros (MORIMOTO, 2009). Essas redes utilizavam cabos thicknet, um tipo de cabo coaxial grosso e pouco flexvel e eram montadas na topologia fsica em barramento, como mostra a Figura 2.2.

Figura 2.2 Estaes conectadas ao meio usando padro 10Base5.

Logo depois, outras trs implementaes do Ethernet padro (10Mbps) surgiram. A rede 10Base5 logo deu lugar 10Base2, que apesar de tambm utilizar topologia de rede em barramento, possua cabos coaxiais bem mais finos, que facilitavam o manuseio, sua distancia mxima de transmisso de 200 metros. A terceira implementao a 10BaseT, Figura 2.3, que utiliza um hub - repetidor multiportas, para estabelecer conexo fsica entre estaes formando uma topologia
23

em estrela, e cabos de par tranado, bem mais finos e flexveis se comparados aos coaxiais. Este padro ainda muito utilizado hoje em dia.

Figura 2.3 Estaes conectadas ao meio usando padro 10BaseT.

A quarta implementao foi a 10BaseFL, que utiliza topologia estrela para conectar as estaes a um hub, e cabos de fibra ptica para transmisso de dados. Desde ento surgiram novos padres com velocidades de transmisso maiores como Fast Ethernet de 100 Mbps, e o Gigabit Ethernet de 1000 Mbps. Logicamente os sistemas de cabeamento foram sucessivamente aprimorados. O Fast Ethernet composto por trs padres distintos: o 100BaseTX utiliza cabos de par tranado categoria 5, segundo MORIMOTO (2009) utilizado em mais de 80% das instalaes atuais. Nesse protocolo foi mantida a distncia mxima de 100 metros, mais foi adicionado o modo full-duplex, onde as estaes podem enviar e receber dados simultaneamente (100 megabits em cada direo), desde que seja usando um switch. O 100BaseT4 com cabos de categoria 3, foi pouco utilizado, de forma que muitas placas de rede sequer oferecem suporte a ele. Por fim, o 100BaseFX com cabo de fibra ptica que possibilitava criar links com cabos de at 2 km e com possibilidade de atingir distncias maiores atravs de repetidores. Por sua vez, o Gigabit Ethernet composto por quatro padres diferentes: 1000BaseLX, suporta apenas fibra ptica e usa uma tecnologia com uso de lasers ao invs de LEDs, como em outros transmissores de rede para fibra ptica, tornando-a mais cara, em compensao seu alcance pode chegar a 10 km. 1000baseSX tambm utiliza fibra ptica, mas com uma tecnologia de transmisso derivada da usada em CDROMs, que torna o custo mais baixo. O alcance mximo atingido nesse padro 500 metros. 1000BaseCX, utiliza dois pares de cabo de par tranado blindado, mas seu
24

alcance atinge apenas 25 metros. Por fim, o padro 1000BaseT, que permite usar o cabo de par tranado categoria 5, representando grande economia. Seu alcance

continua sendo de 100 metros e os switches compatveis com o padro so capazes de combinar ns de 10, 100 e 1000 megabits sem que os mais lentos atrapalhem os demais. Os trs padres para cabos de par tranado, 10BaseT, 100BaseTX e 1000BaseT, caracterizam-se como os mais importantes entre os padres Ethernet cabeados, e so os mais utilizados no nosso dia-a-dia. Tradicionalmente, as redes Ethernet operam em modo half-duplex, onde possvel realizar apenas uma transmisso por vez, enviando ou recebendo dados, mas no as duas coisas simultaneamente. Este modo de funcionamento herana das redes 10Base2 e das redes com hubs burros, onde todas as estaes so ligadas ao mesmo cabo e apenas uma pode transmitir de cada vez, com possibilidade de ocorrerem colises (MORIMOTO, 2009). Quando os dispositivos so interligados numa rede atravs de um meio em comum, como um cabo longo funcionando como uma espinha dorsal por onde circularo dados de todas as estaes conectadas a ela, (topologia em barramento), caracterizando conexes multiponto, necessrio a existncia de um protocolo que controle o acesso das estaes ao meio. No sistema de transmisso de dados da rede Ethernet padro de (10 Mbps), o mtodo de acesso ao meio adotado foi o CSMA/CD (Carrier Sense Multiple Access with Collision Detection) que se trata de um protocolo de acesso mltiplo com vigilncia de portador Carrier Sense e deteco de coliso. Com o uso deste, qualquer estao pode ter acesso ao cabo em qualquer momento, no h prioridade entre as mquinas. Antes de um dos computadores iniciar uma transmisso, inspeciona o cabo para saber se algum mais j esta transmitindo, em caso afirmativo, ele espera at que o cabo esteja livre para ento iniciar sua transmisso, evitando interferncias. Caso, dois ou mais micros iniciem a transmitir ao mesmo tempo ocorrer uma coliso de dados e todos eles param de transmitir, esperam um perodo de tempo aleatrio e tentam a retransmisso. Se ocorrer uma nova coliso, o tempo aleatrio de espera duplicado e as tentativas de transmisso continuam at que uma das estaes consiga iniciar sua transmisso ou at que seja excedido o valor limite de tentativas, o que significa que a estao tentou o suficiente e deve desistir de tentar. De acordo com FOROUZAN (2006), o CSMA/CD, utiliza o exponential backoff method mtodo de espera exponencial, onde a estao espera durante um intervalo
25

de tempo entre 0 e 2N tempo de propagao mxima (tempo de propagao entre as duas estaes mais distantes da rede), onde N o nmero de tentativas de transmisso. Noutras palavras a estao ir esperar entre 0 e [2 (tempo de propagao mxima)] aps a primeira coliso, entre 0 e [22 (tempo de propagao mxima)] aps a segunda coliso e assim por diante. O valor limite de N tipicamente 15. Hoje em dia, Ethernet quase sinnimo de rede. Por ser um padro aberto, qualquer fabricante pode fabricar placas e outros componentes de rede e desenvolver solues, o que aumenta a concorrncia e o volume produzido, derrubando os preos. Dentro do cenrio atual, desenvolver padres proprietrios de rede no faz muito sentido, pois alm de produzir as placas o fabricante precisaria arcar com todos os custos relacionados ao desenvolvimento e divulgao da tecnologia (MORIMOTO, 2009). Entre muitas vantagens esto facilidade de montar, de gerenciar, manter, a capacidade de interconectividade e acesso remoto. Por tudo isso a Ethernet a tecnologia de rede local (LAN) mais popular e mais utilizada no mundo em aplicaes de rede de comunicao comercial, e mais recentemente em aplicaes industriais. Ela se encontra disposta nos mais variados ambientes sejam eles educacionais, pblicos, residenciais, comerciais, industriais, etc. Deve ser lembrado que as redes Ethernet possuem a importante caracterstica de conexo a Internet. Atentos as novas tendncias, muitos fabricantes tm dedicado esforos no desenvolvimento de equipamentos, das mais variadas aplicaes, com suporte a rede, e em alguns casos, j so desenvolvidos com a tecnologia Ethernet embarcada em sua estrutura fsica. De acordo com ALBUQUERQUE (2009), nos ltimos anos crescente o interesse da indstria pela rede Ethernet como uma possvel alternativa no cho de fbrica e no controle de processos. As redes industriais de cho de fbrica, fieldbus, surgiram para substituir o sistema at ento existente na indstria, conhecido como sistema centralizado ou ponto-a-ponto e com o surgimento dos instrumentos digitais era necessrio algo que pudesse interlig-los. O sistema tradicional, existente ainda em muitas indstrias, formado basicamente por CLPs com suas entradas e sadas ligadas a diversos hardwares espalhados na fbrica, o que implica em inmeros cabos, muitas vezes de grande comprimento e na dificuldade de encontrar e diagnosticar defeitos na planta
26

industrial. Com a implementao da rede, um nico cabo interliga os elementos de campo. Essas redes proporcionam, menor custo nas implementaes devido menor quantidade de cabos necessria, maior organizao nas montagens, ganho de tempo em relao ao encontro e resoluo de defeitos no sistema, maior flexibilidade ao processo de controle industrial, permitindo expanses futuras entre outras vantagens. Nesse contexto de custo/benefcio, vrios protocolos de cho de fbrica foram desenvolvidos e bastante difundidos, como exemplo, PROFIBUS, Devicenet, Fieldbus Foundation, Modbus, AS-I, e outros. A escolha por utilizar uma destas redes depende da preferncia e do conhecimento dos gestores das redes em cada fbrica ou mesmo pela aplicao. O problema que essas fieldbuses, por serem de fabricantes diferentes, so baseadas em protocolos distintos, tornando os sistemas proprietrios e caros. A partir da, surgiu a necessidade da padronizao entre essas redes, e a forma mais difundida para isso era com o padro TCP/IP, ento, essas redes foram adaptadas tecnologia Ethernet, dando origem a Ethernet industrial. O padro TCP/IP surgiu no meio industrial h cerca de oito anos, porm apenas nos ltimos quatro anos que se tornou comercialmente utilizado em ambientes industriais (LUGLI, 2010).

2.3 Modelo de Referncia OSI (MR-OSI)


A grande importncia da interconexo dos computadores atravs de redes de comunicao deu origem a uma necessidade que foi tornando-se evidente medida que os desenvolvimentos nesse domnio foram acentuando-se: a padronizao das redes de comunicao (STEMMER, 2010). Estabelecida em 1947, a International Organization for Standardization (ISO) um corpo multinacional de pesquisadores/projetistas dedicado criao de padres internacionais. Um padro ISO que cobre todos os aspectos relacionados s redes de comunicao o modelo Open Systems Interconnection (OSI). Esse modelo foi apresentado no final da dcada de 70. Um sistema aberto (open system) um conjunto de protocolos que permite a dois sistemas quaisquer se comunicarem no importando as arquiteturas em que eles esto baseados. O propsito do modelo OSI mostrar como implementar comunicao entre dois sistemas sem requerer

modificaes lgicas tanto do ponto de vista do hardware quanto do software. O modelo OSI no um protocolo; ele um modelo que auxilia na compreenso e
27

projeto de novas arquiteturas de rede que sejam ao mesmo tempo flexveis, robustas e interoperveis (FOROUZAN, 2006). O modelo OSI foi desenvolvido seguindo a filosofia das arquiteturas

multicamadas. Os projetistas de rede decidiram organizar os protocolos em camadas devido a uma srie de vantagens conceituais e estruturais. Uma das vantagens, por exemplo, que a modularidade facilita a atualizao de componentes do sistema. Desta forma, cada protocolo pertence a uma das camadas e oferece servios para as camadas adjacentes. Uma camada de protocolo pode ser implementada em software, em hardware ou em uma combinao entre os dois (KUROSE, 2006).

Figura 2.4 Camadas do modelo de protocolos OSI.

A Figura 2.4 mostra as sete camadas definidas para o modelo, cujos princpios de definio, segundo STEMMER (2010), foram os seguintes: Cada camada corresponde a um nvel de abstrao necessrio no modelo; Cada camada possui suas funes prprias e bem definidas, e foram escolhidas segundo a definio dos protocolos normalizados internacionalmente; A escolha das fronteiras entre as camadas deveria ser definida de modo a minimizar o fluxo de informao nas interfaces; O nmero de camadas deveria ser suficiente grande para evitar a realizao de funes muito diversas por uma mesma camada, e, suficientemente pequeno para evitar uma alta complexidade da arquitetura.

28

Levando em considerao a transmisso de um dado, cada camada recebe as informaes passada pela camada superior, acrescenta informaes de sua responsabilidade e repassa os dados para a camada imediatamente inferior, esse processo denominado encapsulamento. Quando as informaes chegam camada de Transporte, os dados so divididos em pacotes (conjunto de dados manipulados nas camadas 3 e 4 que carregam informaes de endereamento virtual, como o IP da mquina de destino), os quais sero novamente divididos, agora em vrios quadros (conjunto de dados enviados na rede, associados as camadas 1 e 2, os quadros carregam informaes de endereamento fsico, como o endereo real de uma placa de rede) na camada de Enlace. Esse processo invertido na recepo de um dado.

Figura 2.5 Funcionamento da comunicao entre as camadas do modelo OSI.

A forma de comunicao de dados entre as camadas do modelo de referncia RM-OSI ilustrada na Figura 2.5. Neste caso, um aplicativo emissor est transmitindo dados a um aplicativo receptor. Tudo se inicia com o envio de dados do emissor, atravs de um protocolo de comunicao, camada de aplicao que acrescenta informaes de sua competncia, um cabealho de aplicao, 7, e envia a mensagem resultante camada de apresentao que, por sua vez, introduz a mensagem recebida o cabealho de apresentao, 6. Esse processo continua at a camada fsica, quando os dados que agora esto na forma de quadros, so enviados pelo cabeamento de rede chegando at a camada fsica do aplicativo receptor.

29

Uma vez no receptor, os diversos cabealhos introduzidos por cada uma das camadas de rede do emissor vo sendo interpretadas e eliminadas nas camadas correspondentes do sistema destino at que dados cheguem ao aplicativo emissor. Nas redes baseadas em arquitetura multicamadas, durante o processamento de um dado, que vai passando em cada camada, uma determinada camada no toma conhecimento da existncia e significado das informaes de cabealho introduzidas por outra camada, considerando este como parte dos dados que compem a mensagem. De acordo com STEMMER (2010), o conceito fundamental da transferncia de dados que cada camada foi projetada como se a comunicao fosse realmente horizontal quando na verdade a transmisso se d de modo vertical. A comunicao vista na Figura 2.5 um exemplo de como realmente acontece a transmisso de um dado atravs de uma rede, denominada comunicao real. Como j informado, as camadas foram desenvolvidas como se a transmisso ocorresse de forma horizontal, ou seja, a comunicao ocorreria entre as diferentes camadas pares (camadas localizadas em sistemas diferentes, mas associadas a um mesmo nvel). Nesse sentido, uma determinada camada do emissor comunica-se com a mesma camada do dispositivo receptor. Essa comunicao, denominada virtual, ilustrada na Figura 2.6.

Figura 2.6 Comunicao virtual no modelo OSI.

As camadas do modelo OSI podem ser divididas em trs grupos: aplicao, transporte e rede, como ilustrado na Figura 2.7. As camadas de rede se preocupam com a transmisso e recepo dos dados atravs da rede e, portanto, so camadas de baixo nvel. A camada de transporte responsvel por pegar os dados recebidos pela
30

rede e repass-los para as camadas de aplicao de uma forma compreensvel, isto , ela pega os pacotes de dados e transforma-os em dados quase prontos para serem usados pela aplicao. As camadas de aplicao, que so camadas de alto nvel, colocam o dado recebido em um padro que seja compreensvel pelo programa (aplicao) que far uso desse dado.

Figura 2.7 Grupos das camadas do modelo OSI.

A seguir, encontra-se um resumo de informaes sobre as funes de cada uma das camadas, segundo TANENBAUM (2003), do modelo de referencia RM-OSI. Camada Fsica - responsvel pela transmisso de uma cadeia de bits num determinado meio fsico. Deve tratar de todas as especificaes fsicas do meio de transmisso, como: caractersticas eltricas (nveis de tenso a serem usados para representar um bit 1 e um bit 0), mecnicas (tipo de cabeamento; nmero de pinos no conector de rede), taxa de transmisso (nmero de bits enviados por segundo), a forma como a conexo inicial ser estabelecida e de que maneira ela ser encerrada quando os dois lados tiverem terminado de transmitir. Camada de Enlace de dados sua tarefa transformar os grupos de dados brutos provenientes da camada fsica em uma linha que parea livres de erros (link confivel), para a camada de rede. Ela tambm controla o fluxo de dados impedindo que um transmissor rpido envie uma quantidade excessiva de dados a um receptor lento. Com frequncia, necessrio um mecanismo que regule o trfego para informar ao transmissor quanto espao o buffer do receptor tem no momento.

31

Camada de Rede responsvel pelo roteamento de pacotes da origem at o destino, possivelmente viajando entre inmeras redes, permitindo que redes heterogneas sejam interconectadas. Camada de Transporte garante que as mensagens sejam entregues intactas e livres de erros. Essa camada utiliza um mtodo de fragmentao e reagrupamento de pacotes, na transmisso e recepo respectivamente, para evitar que uma mensagem monopolize o link ou o segmento de rede pelo qual trafega. Ao receber dados da camada acima, divide estes em vrios segmentos de tamanhos variados, onde cada um possui um nmero de identificao, repassa essas unidades camada de rede e assegura que todos os fragmentos cheguem corretamente a outra extremidade. O nmero de identificao de cada fragmento permite que a camada de transporte do sistema receptor remonte e identifique se a mensagem se encontra realmente intacta. Camada de Sesso camada que oferece servios como o controle de dilogo permitindo que dois dispositivos iniciem um dialogo e controlando quem deve transmitir em cada momento. Sincronizao adicionando pontos de verificao, realizando uma verificao peridica em transmisses longas permitindo que, em caso de falhas, elas continuem do ponto onde estavam. Camada de Apresentao est relacionada sintaxe e a semntica das informaes transmitidas. Diferentes computadores utilizam diferentes sistemas de codificao das informaes trocadas, a camada de apresentao responsvel pela interoperabilidade entre os diferentes mtodos de codificao. Segundo FOROUZAN (2006), a camada de apresentao no transmissor converte a informao expressa no seu formato prprio numa informao em um formato comum (universal). A camada de apresentao no receptor converte a informao nesse formato universal para o formato adequado ao receptor. Camada de Aplicao o nvel mais alto dentre as camadas. Permite aos usurios acesso rede por conter diversos protocolos de aplicao como, por exemplo, o Protocolo de Transferncia de Hiper Texto - HTTP, que constitui a base para a WWW. Quando um navegador deseja uma pgina Web, ele envia o nome da pgina desejada ao servidor, utilizando HTTP. Segundo TANENBAUM (2003), existem vrios motivos que levaram aos protocolos associados ao modelo OSI serem raramente usados nos dias de hoje. Entre eles, a tecnologia utilizada era considerada ruim, pois, existem falhas no modelo e nos
32

protocolos. Revela que a escolha das sete camadas foi mais poltica de que tcnica. Enquanto duas das camadas (de sesso e apresentao) esto praticamente vazias, duas outras (enlace de dados e rede) se encontram sobrecarregadas. A arquitetura muito complexa o que dificulta a implementao enquanto sua operao no nada eficiente, pois, devido a essa enorme complexidade do modelo e dos protocolos as implementaes iniciais eram lentas, pesadas e gigantescas.

2.4 Pilha de Protocolos TCP/IP Arquitetura da Internet


A pilha TCP/IP, como j mencionado no texto acima, um conjunto de protocolos de comunicao entre computadores em rede. Seu nome vem dos protocolos TCP e IP, que so base da arquitetura da Internet, e foram desenvolvidos bem antes da definio do modelo de referencia OSI. Embora tambm possa ser visto como modelo desenvolvido em camadas onde cada uma responsvel por um grupo de tarefas, as camadas no modelo da Internet no casam exatamente com as camadas do modelo OSI. O modelo de referencia TCP/IP, como demonstra a Figura 2.8, constitudo de quatro camadas, enquanto o modelo OSI possui sete.

Figura 2.8 Comparao estrutural em relao s camadas entre os modelos de referencia OSI e TCP/IP.

Enxergar as camadas como fornecedores ou consumidores de servio um mtodo de abstrao para isolar protocolos de camadas acima dos pequenos detalhes de transmitir bits atravs, digamos, de ethernet, e a deteco de coliso enquanto as camadas abaixo evitam ter de conhecer os detalhes de todas as aplicaes e seus protocolos (WIKIPDIA, 29/02/2012).
33

Como pode ser facilmente observado na figura 2.8, geralmente, as trs camadas mais acima do modelo OSI (aplicao, apresentao e sesso) so consideradas como uma nica camada (aplicao) no modelo TCP/IP. Isso porque o TCP/IP tem uma camada de sesso relativamente leve, consistindo de abrir e fechar conexes sobre TCP e RTP - Real-time Transport Protocol (transporte) e fornecer diferentes nmeros de portas para diferentes aplicaes sobre TCP e UDP - User Datagram Protocol. Se necessrio, essas funes podem ser aumentadas por aplicaes individuais (ou bibliotecas usadas por essas aplicaes). Vejamos um breve resumo das funes reservadas a cada camada no modelo de referencia TCP/IP: Camada de Aplicao (referente s camadas 5 7 da OSI). Camada que a maioria dos programas de rede usa para se comunicar atravs da rede. A camada define os protocolos de aplicativos TCP/IP que provm servios que suportam diretamente aplicaes do usurio. Dentre as aplicaes esto a possibilidade de transferncia de arquivos, busca de pginas na web, envio de emails e etc. O pacote relacionado camada de aplicao chamado Mensagem ou Dados. Camada de Transporte (referente a camada 4 da OSI). Onde determinado para qual aplicao um dado qualquer destinado. Camada responsvel pela garantia da entrega de dados e da integridade dos mesmos. Entre os protocolos existentes nessa camada os dois mais importantes e mais utilizados so o TCP e o UDP. O TCP (Transmission Control Protocol protocolo de controle de transmisso) um mecanismo de transporte confivel orientado a conexo que garante a entrega de dados ao receptor sem erros e na ordem que foram enviados, controla ainda o fluxo de dados enviados (desacelerando se necessrio evitando uma sobrecarga na rede). J o UDP (User Datagram Protocol protocolo de datagrama do usurio) um protocolo sem conexo e no confivel, pois ele no oferece qualquer garantia se os dados alcanaram seu destino ou se chegaram na ordem de envio. Este protocolo utilizado em uma aplicao em que a entrega imediata mais importante que a garantia de entrega, como a transmisso de voz e vdeo. O pacote da camada de transporte chamado Segmento. Camada de Internet (referente camada 3 da OSI). A tarefa dessa camada entregar pacotes IP onde for necessrio. Ou seja, ela permite que os hosts
34

injetem pacotes em qualquer rede e deve garantir que eles trafeguem independentemente at o destino (talvez em uma rede diferente) (TANENBAUM, 2003). O IP (Internet Protocol protocolo da Internet) foi projetado para no ser confivel, por isso os pacotes podem chegar ao seu destino em ordem diferentes as que foram enviadas. De acordo com informaes colhidas na WIKIPDIA (29/02/2012), o protocolo IP pode transmitir dados para diferentes protocolos de nveis mais altos, esses protocolos so identificados por um nico nmero de protocolo IP, alguns destes, como o ICMP - Internet Control Message Protocol protocolo de controle de mensagens (usado para transmitir informao de diagnstico sobre a transmisso IP) e o IGMP - Internet Group Management Protocol protocolo de gerenciamento de grupo (usado para gerenciar dados multicast) so colocados acima do IP mas executam funes da camada internet. Isso ilustra uma incompatibilidade entre os modelos da internet e OSI. Camada de Rede (referente s camadas 1 e 2 do modelo OSI). Essa camada tem a responsabilidade de detalhar o modo como os dados sero enviados fisicamente pela rede, trata das caractersticas eltricas e mecnicas do meio, como tipos de conectores e cabos utilizado para estabelecer uma comunicao. Como pode ser observado na Figura 2.8, e informado na WIKIPDIA (29/02/2012), a camada de enlace de dados no realmente parte do modelo TCP/IP, mas o mtodo usado para passar quadros da camada de internet de um dispositivo para a camada de internet de outro. Esse processo pode ser controlado tanto em software (device driver) para a placa de rede quanto em firmware ou chipsets especializados. Esses iro executar as funes da camada de enlace de dados como adicionar um header (cabealho) de pacote para prepar-lo para transmisso, ento de fato transmitir o quadro atravs da camada fsica. Do outro lado, a camada de enlace ir receber quadros de dados, retirar os headers adicionados e encaminhar os pacotes recebidos para a camada de internet.

35

Tabela 1 Relao de protocolos da pilha TCP/IP.

Camadas 1 Aplicao

Protocolos HTTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping ...

2 Transporte 3 Internet 4 Interface de Rede

TCP, UDP, RTP, SCTP, DCCP ... IP (IPv4, IPv6) , ARP, RARP, ICMP, IPsec ... Ethernet, Token Ring, X.25, RS-232...

Os principais protocolos relacionados a cada uma das camadas do modelo TCP/IP esto apresentados na Tabela 1. De acordo com TANENBAUM (2003), a baixo da camada de internet, encontra-se um grande vcuo. O modelo de referencia TCP/IP no especifica muito bem o que ocorre ali, exceto o fato de que o host tem de se conectar rede utilizando algum protocolo para que seja possvel enviar pacotes IP. A camada de rede, nesse modelo de 4 camadas, no se caracteriza como uma camada no sentido em que o termo usado no contexto de protocolos hierarquizados. Trata-se na verdade de uma interface (entre as camadas de rede e de enlace de dados), ou seja, o modelo no faz distino (nem se quer menciona) diferenas entre as camadas fsicas e enlace de dados, as quais tem funes bastante diferenciadas. A camada fsica, esta relacionada s caractersticas fsicas da transmisso dos bits, enquanto, a camada de enlace de dados delimitar o incio e o final dos quadros e envi-los de um lado a outro com o grau de confiabilidade desejado. Por tudo, so vrias as bibliografias encontradas que substituem modelo inicial do TCP/IP baseado em 4 nveis: Host/rede; Inter-rede; Transporte; e Aplicao. E trabalham com um modelo hbrido, com 5 camadas, que retira o excesso do modelo OSI e melhora o modelo TCP/IP: Fsica; Enlace; Internet; Transporte; e Aplicao. Hoje, a maioria dos sistemas operacionais comerciais incluem e instalam a pilha TCP/IP por padro. Para a maioria dos usurios, no h nenhuma necessidade de procurar por implementaes. O TCP/IP includo em todas as verses do Unix e Linux, assim como no Mac OS e no Microsoft Windows (WIKIPDIA, 29/02/2012).

36

2.5 Microcontroladores
Este tpico faz uma breve introduo sobre microcontroladores, em especial os da linha PIC fabricados pela Microchip, que so largamente utilizados em aplicaes didticas, embarcados em equipamentos eletroeletrnicos, em ambientes industriais, comerciais, residenciais e etc. Em meados da dcada de 1980, vrios componentes externos foram integrados em um mesmo chip, o que resultou em circuitos integrados chamados

microcontroladores e na difuso dos sistemas embarcados (WIKIPDIA, 02/03/2012). Pode-se dizer que a funo bsica de um microcontrolador processar informaes a partir de sinais de entrada, provenientes de um boto ou um sensor por exemplo. Com o resultado de todo processamento, o dispositivo libera sinais de sada que ativaro outros dispositivos. Nesse sentido, so dispositivos destinados a sistemas dedicados a tarefas especficas, assim os mesmos podem possuir tamanho, recursos computacionais e custo reduzidos se comparados a computadores normais. Para que esses componentes sejam capazes de desenvolver todo esse gerenciamento lgico, necessrio que informaes (informando-o o que deve acontecer quando determinados eventos ocorrerem) sejam estruturadas na forma de um programa e gravada dentro do dispositivo. Esse programa ser executado sempre que o microcontrolador for energizado. Uma definio bastante clara desses componentes feito por MIYADAIRA (2011), que informa que os microcontroladores (C ou MCU) so pequenos dispositivos dotados de inteligncia, basicamente constitudos de CPU (Central Processing Unit Unidade Central de Processamento), memria (dados e programas) e perifricos (portas E/S (Entrada/Sada), I2C, SPI, USART etc.). Suas dimenses reduzidas so resultantes da alta capacidade de integrao, em que milhes de componentes so inseridos em uma pastilha de silcio pela tcnica de circuitos integrados (CIs). Eles esto presentes na maioria dos equipamentos digitais, como celulares, MP3 player, impressoras, robtica, instrumentao, entre outros. Quanto inteligncia do componente, podemos associ-la Unidade Lgica Aritmtica (ULA), pois nessa unidade que todas as operaes matemticas e lgicas so executadas. Quanto mais poderosa a ULA do componente, maior sua capacidade de processar informaes (SOUZA, 2007). Como se v, um microcontrolador dotado de recursos suficientes que permitem sua utilizao em diversas aplicaes dentro do chip. Nesse aspecto o
37

MCU oferece vantagens sob os microprocessadores, onde para a utilizao dos mesmos se faz necessrio o uso de memria externa e dispositivos de E/S, em contra partida, esses so dispositivos com funes dedicadas a CPU oferecendo grande poder de processamento e velocidade de execuo, utilizados em aplicaes complexas e de alto desempenho onde no existem restries em relao a custo e dimenses fsicas do componente. Alm de toda performance, de poderem ser utilizados em diversos projetos eletroeletrnicos oferecendo agilidade e controle, os Cs ainda trazem a caracterstica de baixo consumo de energia, sem falar que geralmente possuem a habilidade de entrar em modo sleep (modo de espera onde a CPU e os perifricos so desligados), passando a ter um consumo ainda mais baixo. O C retorna a seu estado normal a partir de uma interrupo ou evento externo, como o acionamento de um boto. De acordo com informaes existentes em (WIKIPDIA, 02/03/2012), quando em estado normal, o C tem um consumo na ordem de miliwatts e em modo sleep na ordem de nanowatts. Segundo MIYADAIRA (2011), o gerenciamento da energia consumida pelo C PIC indispensvel quando o circuito alimentado por meio de bateria, pois circuitos dessa natureza devem consumir o mnimo de energia a fim de maximizar o tempo de carga da bateria. Os microcontroladores, durante um tempo no to distante, eram dispositivos de alto custo econmico, o que restringia essa tecnologia a equipamentos mais complexos e mais caros. Com o passar do tempo, devido a vasta gama de aplicaes possveis com o uso desses componentes, passaram a ser produzidos em alta escala o que levou a queda no preo dos chips e a popularizao dos mesmos entre sistemas mais simples. Estima-se que brevemente em um lar comum de um pas desenvolvido j possvel encontrar mais de 20 microcontroladores nos mais diversos aparelhos. Outra aplicao importante dos microcontroladores na reduo de consumo de recursos naturais, um sistema baseado em microcontrolador pode monitorar o fornecimento de determinado recurso de forma eficiente como o caso de sistemas de injeo eletrnica bicombustvel nos automveis e a reduo do consumo de motores eltricos (FELIPE, 2010). Existem diversos fabricantes de microcontroladores no mercado que se diferem na arquitetura interna, quantidade de memria interna, velocidade de processamento, quantidade de entradas/sadas (I/O) e perifricos. Existem duas arquiteturas de
38

comunicao interna mais usadas entre os C, a Harvard e a Von-Neumann. Na Harvard a CPU utiliza barramentos separados para acesso das memrias de programa e dados aumentando o fluxo de dados. Na Von-Neumann as memrias de programa e dado compartilham o mesmo barramento limitando o fluxo de dados. A Intel, Motorola, Atmel e a Microchip, so exemplos de fabricantes de microcontroladores. Esta ltima tem se destacado com sua linha PIC, que abrange desde componentes pequenos com 6 pinos e palavras de instruo de 12 bits at os de 100 pinos com palavras de instruo de 16 bits (SILVA, 2007).

Figura 2.9 Diagrama simplificado de um C baseado na arquitetura Harvard.

Como pode ser visto a Figura 2.9 demonstra a arquitetura de comunicao Harvard, tecnologia adotada pela linha PIC de MCUs, onde a CPU faz uso de caminhos diferentes para acessar as memrias. Essa linha formada por diversas famlias com capacidade de processamento de dados de 8, 16, 24 e 32 bits. Estes foram os primeiros dispositivos com arquitetura RISC (Computador com conjunto de Reduzido e Instrues), cuja simplicidade de projeto permite que mais facilidades sejam adicionadas a um baixo custo. Os programas podem ser guardados nas memrias flash, EEPROM (Electrically Erasable Programmable Read Only Memory) e OTP (One Time Programmable). Trabalham com freqncia de at 48Mhz, usando ciclo de instruo mnima de quatro perodos de clock o que permite velocidade mxima de 10MIPS (Milhes de Instrues Por Segundo) (ZORZIN, 2008).

39

Algumas das caractersticas de manipulao dos microcontroladores da linha PIC que fazem com que eles se adaptem facilmente em diversas aplicaes, esto listadas a seguir: Comunicaes I2C, SPI, RS-232, USB; TIMERs e contadores; Manipulao de memria EEPROM externa; Conversores A/D com at 12 bits de resoluo; Mdulos CCP e ECCP (Capture, Compare e PWM); Mdulo Ethernet; Watchdog Timer; Real Timer Clock; Manipulao da pilha TCP/IP. Todos esses recursos disponveis tornam os MCUs dispositivos de grande potencialidade, podendo ser realmente denominados computadores de tamanho reduzido, os quais permitem o desenvolvimento de hardwares com toda essa tecnologia embarcada. De acordo com a definio de ANDREANI (2007), um sistema embarcado um sistema de propsito especfico em que o computador completamente encapsulado por um mdulo de controle. Diferentemente de um computador de propsito geral, tal como um computador pessoal, um sistema embarcado desempenha tarefas pr-definidas, bastante especficas. Sistemas embarcados podem possuir desde nenhuma interface do utilizador (dedicados somente a uma tarefa) a uma interface completa, similar dos sistemas operacionais desktop (em sistemas como PDAs). Sistemas mais simples utilizam botes, LEDs ou telas bastante limitadas, geralmente mostrando somente nmeros ou uma fila pequena de caracteres. O surgimento da World Wide Web forneceu aos desenvolvedores de sistemas embarcados a possibilidade de fornecer uma interface Web atravs de uma conexo por rede (WIKIPDIA). Como dito por ZANCO (2005), o uso de microcontroladores no desenvolvimento de projetos pode contribuir significamente para o desenvolvimento de nosso pas. A formao de mo-de-obra qualificada, em sintonia com as demandas de um mercado, hoje globalizado, um dos pilares para o desenvolvimento e o crescimento sustentvel.

40

2.6 Internet Embarcada


Atualmente a Internet tem seu emprego em larga escala nos computadores pessoais que dispem de sistemas operacionais com todo o protocolo embutido em seu kernel, cabendo aos usurios e programadores apenas utilizar esses recursos. Esse sistema e ainda ser por muitos anos o carro-chefe das aplicaes da grande rede. Porm, com a evoluo dos microcontroladores, uma nova gerao de aplicaes est se formando, so as aplicaes embedded (embarcadas) para a Internet (MOKARZEL E CARNEIRO, 2004). A internet se apresenta como um verdadeiro e grande leque de possibilidades, permitindo a seus usurios a resoluo de problemas e execuo de muitas tarefas do dia-a-dia sem precisar sair de casa, alm de ser um ambiente de onde se pode obter e divulgar muitas informaes se mantendo como uma forte forma de comunicao a qual as pessoas esto familiarizadas. A possibilidade de embarcar toda essa tecnologia junto arquitetura de dispositivos eletroeletrnicos traz grande versatilidade e potencialidade na utilizao dos mesmos, como o controle e monitoramento via Internet. Diversos equipamentos que utilizamos no dia-a-dia j possuem verses que se conectam a Internet. Equipamentos como impressoras, cmeras entre outros dispe desta facilidade, permitindo configurao, disponibilidade de informaes, e controle sob suas operaes. Com tudo, pode-se observar que a tecnologia Internet embarcada se caracteriza por possibilitar a conexo de sistemas embarcados Internet. Os microcontroladores esto entre os principais sistemas embarcados por executar aes como a aquisio e manipulao de dados envolvidos em um processo e o acionamento de atuadores e cargas a partir de sinais de sada. Como exposto por SANTOS (2009), para que um sistema embarcado possa conectar-se Internet, o mesmo deve possuir os seguintes componentes: Pilha TCP/IP para sistemas embarcados; Controlador Ethernet; Interface de rede; Levando em considerao o uso de um microcontrolador, o mesmo ter que ter condies de manipular uma pilha TCP/IP (nesse caso a desenvolvida para uso em microcontroladores e ser gravada em sua memria flash) para que possa se conectar
41

a rede como se fosse um computador normal, estabelecendo conexo lgica com uma mquina remota em um determinado segmento de rede. Dever tambm ser conectado a um controlador de rede (nesse caso um controlador Ethernet) para que os dados que chegam e saem do microcontrolador sejam codificados na forma padro para manipulao junto pilha. Um exemplo de controlador externo o ENC28J60, mostrado na Figura 2.10, fabricado pela Microchip. J a interface de rede essencial para estabelecer conexo fsica entre o dispositivo e um segmento de rede. Um exemplo de interface de rede mostrado pela Figura 2.11. Uma vez contendo todos esses requisitos, tal sistema embarcado pode ser considerado um Microservidor Web.

Figura 2.10 Controlador Ethernet ENC28J60.

Figura 2.11 Interface de rede 100/10BaseT

42

3 FERRAMENTAS UTILIZADAS NO DESENVOLVIMENTO DO PROJETO

3.1 Pilha TCP/IP da Microchip


A pilha de protocolos TCP/IP para microcontroladores desenvolvida e fornecida gratuitamente pela Microchip, similar a pilha TCP/IP utilizada em computadores. Todos os seus protocolos foram desenvolvidos seguindo a documentao referente ao padro nas RFCs (Requests for Comments - solicitaes de comentrios) que so uma srie progressiva de relatrios, propostas de protocolos e padres de protocolos que descrevem os trabalhos internos do padro TCP/IP e da Internet. Por tudo, a pilha permite a conexo de microcontroladores Internet como se fossem um microcomputador comum. Muitas implementaes TCP/IP seguem o Modelo de Referncia TCP/IP. Softwares baseados nessa referncia implementam seus protocolos em camadas, as quais so empilhadas umas sobre as outras (da o nome pilha TCP/IP). Cada camada acessa os servios de uma ou mais camadas diretamente abaixo. A Figura 3.1 ilustra uma verso simples do modelo de referncia TCP/IP e os servios do modelo implementado pela Microchip. A pilha desenvolvida pela Microchip no implementa todos os mdulos que esto normalmente presentes na pilha TCP/IP tradicional. Embora no estejam presentes, podem ser implementados como uma tarefa ou mdulo separado, se necessrio (MICROCHIPAN833C, 2008). Esse fato est diretamente relacionado pela pilha ter sido desenvolvida para ser embarcada em microcontroladores, que so dispositivos com espao limitado de memria se comparados a microcomputadores comuns.

43

Figura 3.1 Comportamento do modelo de referncia e protocolos implementados na pilha da microchip.

Na implementao deste projeto, sero utilizados quatro protocolos pertencentes pilha: Ethernet, IP, TCP e HTTP, cada um pertencente a uma camada do modelo TCP/IP. Os arquivos que formam a pilha so escritos na linguagem de programao C, destinado aos compiladores C Microchip C18, C30 e C32, HI-TECH , PICC-18. A pilha TCP/IP da Microchip foi projetada para aplicaes envolvendo apenas a famlia de microcontroladores PIC18, suportando dispositivos de 8, 16 e 32 bits. Como informado acima, a pilha TCP/IP da Microchip dividida em mltiplas camadas. O cdigo de execuo de cada camada reside em arquivos separados, enquanto os servios e APIs (Application Programming Interfaces Interface de Programao de Aplicativos) so definidos atravs de arquivos header/include. Ao contrrio do modelo de referncia, a pilha TCP/IP da Microchip pode acessar diretamente uma ou mais camadas que no se encontram diretamente abaixo dela. A comparao estrutural de acesso as camadas entre o Modelo de Referncia TCP/IP e a Pilha TCP/IP da Microchip est ilustrada na Figura 3.2. A deciso de quando uma camada deve contornar a adjacente necessria, e foi feita preliminarmente, devido quantidade de overhead e levando-se em conta se era necessrio ou no fazer um processamento pesado antes de passar para a prxima camada.

44

Figura 3.2 Comparao estrutural do Modelo de Referncia TCP/IP e a Pilha TCP/IP da Microchip. Fonte: MICROCHIPAN833C, 2008.

Foram adicionados dois novos mdulos na implementao da microchip em relao ao modelo tradicional, o Stack Task, que gerencia as operaes de todos os mdulos da pilha, permitindo acesso a nveis diferentes da pilha dependendo da aplicao, e o ARPTask, que gerencia os servios do protocolo de resoluo de endereos, camada ARP. Esses mdulos operam em conjunto sob uma tcnica conhecida como cooperative multitasking (multitarefa cooperativa). Nela, todas as tarefas devem ser executadas compartilhando os recursos do sistema. Assim, as duas camadas operam em conjunto da seguinte maneira, quando uma cumpre seus trabalhos ela gera um sinal de controle para que a outra possa executar os dela. Essa caracterstica permite a pilha trabalhar de forma mais rpida e manter certa independncia do programa principal, tornando possvel sua utilizao em dispositivos com poucos recursos (SANTANA, 2008). Por isso, a pilha TCP/IP da Microchip chamada de pilha viva; algumas de suas camadas podem executar operaes de forma assncrona. Tudo isso graas ao cooperativismo multitarefa (onde as tarefas so executadas sequencialmente e de modo independente). O programa principal envia cada tarefa para ser processada e, ao final da sua execuo, o controle retorna ao programa principal e s ento a prxima tarefa fica apta a ser executada (MICROCHIPAN833C, 2008).

45

Normalmente,

cooperativismo

multitarefa

implementado

pelo

sistema

operacional ou pela aplicao principal em si. A pilha TCP/IP da Microchip foi projetada para ser independente de qualquer sistema operacional e, portanto, implementa seu prprio sistema cooperativismo multitarefa. Como resultado, pode ser usado em qualquer sistema, independentemente se ele usa um multitarefa do sistema operacional ou no. No entanto, uma aplicao que utiliza a pilha TCP/IP da Microchip deve tambm utilizar o mtodo cooperativo multitarefa. Isso feito atravs da diviso de um programa em mltiplas tarefas, ou organizando o programa principal como uma mquina de estados finita (FSM) e dividindo um programa grande em diversos programas pequenos (MICROCHIPAN833C, 2008).

3.1.1 Servidor HTTP da Microchip


O servidor HTTP da Microchip implementado como uma tarefa cooperativa que co-existe com a aplicao principal do usurio e a pilha TCP/IP. A implementao desse servidor feita no arquivo fonte HTTP2.c, com o aplicativo do usurio tendo que implementar duas funes callback, funes que so chamadas automaticamente pelo servidor HTTP e que devem executar alguma tarefa a ser definida pelo usurio (MICROCHIPAN833C, 2008). Ainda de acordo com MICROCHIPAN833C (2008), embora este servidor no fornea todas as funcionalidades que um servidor HTTP tpico, e sim, implementaes mnimas para sistemas embarcados, o usurio, conforme necessrio pode adicionar novas funcionalidades. As caractersticas principais incorporadas no Servidor HTTP so: Suporte a mltiplas conexes HTTP; Contm seu prprio sistema de arquivos (MPFS Sistema de Arquivos da Microchip); Suporta programas localizados na memria interna do microcontrolador ou em uma EEPROM externa; Suporta os mtodos GET e POST; Suporta a gerao de contedo dinmico de pginas web; Suporta um tipo de CGI (Common Gateway Interface) para executar funcionalidades pr-definidas a partir de um navegador remoto. Para integrar o Servidor HTTP a um aplicativo do usurio, a AN833c (Applied Note 833c) da Microchip informa que os seguintes passos devem ser seguidos:
46

1. No arquivo "StackTsk.h", deve-se habilitar o cdigo do Servidor HTTP, descomentando a macro STACK_USE_HTTP_SERVER. 2. No arquivo "StackTsk.h", junto a macro MAX_HTTP_CONNECTIONS, deve ser definido o valor mximo de conexes para o Servidor HTTP. 3. Incluir no projeto os arquivos "http.c" e "mpfs.c". 4. Definir onde sero armazenadas as pginas web, se numa EEPROM externa ou na memria Flesh do microcontrolador, atravs das macros MPFS_USE_PGRM e MPFS_USE_EEPROM. arquivo "Xeeprom.c". 5. Modificar a funo main() do aplicativo para incluir o servidor HTTP. O servidor HTTP mantm uma lista dos tipos de arquivos suportveis. Ele usa essas informaes para aconselhar os navegadores sobre como interpretar arquivos especficos, com base nas extenses dos arquivos geralmente formadas por trs letras. Por padro, o Servidor HTTP da Microchip suporta arquivos . Txt, . Htm, . Html, . Xml, . Css, . Cgi, . Gif, . Png, . Cgi, . Jpg, . Cla e . wav. Se um aplicativo usa tipos de arquivos que no esto inclusos nesta lista, o usurio pode acessar o arquivo HTTP2.c e modificar a tabela httpFileExtensions, juntamente com o httpContentTypes. (MICROCHIPAN833C, 2008). Caso use memria externa, incluir no projeto o

3.1.2 Microchip File System 2 (MPFS2)


Como j citado, o controle do mdulo ser realizado a partir do fornecimento de entradas por meio de pginas web, as quais estaro alocadas na memria interna do microservidor ou em uma EEPROM externa. Para tanto, necessrio que essas pginas sejam convertidas para um formato compatvel para o armazenamento. O servidor HTTP da Microchip usa um sistema de arquivos simples (MPFS2 Microchip File System - Sistema de Arquivo da Microchip) para armazenar pginas web. O MPFS2 segue um formato especial para armazenar vrios arquivos em um meio de armazenamento (MICROCHIPAN833C, 2008). A Figura 3.3 apresenta essa forma de armazenamento.

47

Figura 3.3 Formato da imagem MPFS2 Fonte: MICROCHIPAN833C, 2008.

O comprimento do Reserved Block Bloco Reservado, definido pela macro MPFS_RESERVE_BLOCK. O bloco reservado pode ser usado pela aplicao principlal para armazenamento de valores de configurao. O armazenamento MPFS comea com uma ou mais entradas MPFS2 FAT (File Allocation Table Tabela de Alocao de Arquivos), seguido por um ou mais arquivos de dados. A entrada FAT descreve o nome do arquivo, status e sua localizao (MICROCHIPAN833C, 2008). O formato da entrada FAT mostrado na Figura 3.4.

Figura 3.4 Formato do FAT de entrada MPFS2 Fonte: MICROCHIPAN833C, 2008.

O byte Flag, indica o estado da entrada atual, se est em uso, excluda, ou no final da FAT. Cada entrada do FAT contm 16 ou 24-bit. O comprimento do endereo determinado pelo tipo de memria utilizado, bem como o modelo de tamanho da memria. Se for usada a memria de programa interna do dispositivo, o projeto compilado com o modelo de memria menor, usado o endereo de 16-bits. Se selecionados a memria interna de programao e o modelo de memria maior, usado o endereo de 24 bits. O esquema de endereo de 16 bits usado para memria EEPROM externa, independentemente do modelo de tamanho de memria. Isso implica em uma imagem do MPFS2 de no mximo 64 Kb para a memria externa (MICROCHIPAN833C, 2008).
48

O MPFS2 utiliza um formato 8 + 3 para o nome de arquivos (8 bytes para o nome real do arquivo e 3 bytes para o extenso, NNNNNNNN.EEE). O endereo de 16 bits d incio ao primeiro bloco de dados do arquivo. Os nomes dos arquivos so armazenados em maiusculo para faciltar a comparao. O campo de endereo em cada entrada FAT contm uma referncia para um bloco de dados que contm os dados do arquivo em questo. O formato do bloco de dados pode ser visto na Figura 3.5. O bloco terminado com um bit de flag especial de 8 bits chamado EOF (End Of File), seguido do valor FFFF (para endereamento de 16 bits) ou FFFFFF (para endereamento de 24 bits). Se a parte de dados do bloco contm um caractere EOF, o mesmo preenchido por um caractere de escape (BACURAU, 2011).

Figura 3.5 Formato do bloco de dados (MICROCHIPAN833C, 2008).

3.2 Microcontrolador PIC18F87J60


Como j mencionado anteriormente, esse trabalho tem como objetivo o desenvolvimento de um mdulo microcontrolado com possibilidade de acesso a Internet, caracterizando-se como um microservidor Web. O MCU a ser utilizado deve ser capaz de manipular todos os cdigos necessrios para disponibilizao de dados na rede alm de espao de memria suficiente para armazenamento dos mesmos. A Microchip disponibilizou em sua linha PIC18, diversas funes

adicionais/inovadoras (SILVA, 2007). Como exemplo a possibilidade de conexo a internet. Os modelos dessa linha possuem a capacidade de manipulao da pilha de protocolos TCP/IP, mas, a grande maioria no tem capacidade de conexo direta com a rede Ethernet necessitando do uso de um controlador externo. Outros modelos, como o PIC18F87J60, trazem esse controlador embarcado em seu encapsulamento. O PIC18F87J60 construdo com base na arquitetura Harvard, que possui barramento de endereo e dados distintos, e com instrues do tipo RISC (Computador com Conjunto Reduzido de Instrues). Possui uma CPU de 8 bits, dotado de 128 Kbytes de memria de programa e 3808 bytes de memria RAM. Pode ser alimentado com tenses entre 2,5V e 3,6V. Esse modelo possui 80 pinos, como mostrado na Figura 3.6, dos quais 55 podem ser configurados como I/O, mdulo CCP com at
49

quatro sadas PWM, quinze conversores A/D de 10 bits de resoluo, mdulo SPI e IC, comunicao EUSART, em fim, todas as caractersticas que a famlia 18F oferece alem, de um controlador Ethernet como um de seus blocos internos. A estrutura em diagrama de blocos do PIC18F87J60 mostrado na Figura 3.7. Essa plataforma ideal para utilizao com a pilha TCP/IP para microcontroladores da Microchip, j que tanto a pilha quanto a plataforma so produzidos pela mesma empresa, minimizando assim problemas de incompatibilidade.

Figura 3.6 Diagrama de pinos do PIC18F87J60. Fonte: MICROCHIP, 2008.

50

Figura 3.7 Diagrama de Blocos do PIC18F87J60. Fonte: MICROCHIP, 2008

51

O mdulo Ethernet incorporado nesse dispositivo traz uma soluo completa de conectividade, incluindo a implementao dos mdulos MAC Controle de Acesso ao Meio, e a camada fsica (PHY), como ilustrado na Figura 3.8. O mdulo Ethernet atende todas as especificaes da IEEE 802.3 para o padro de comunicao 10BaseT que se conecta a rede com o cabo de par tranado. Incorpora uma srie de esquemas de filtragem que limitam a entrada de pacotes. Mdulo DMA e IP Checksum.

Figura 3.8 Diagrama de bloco do Mdulo Ethernet - Fonte: MICROCHIP, 2008.

Como informado no datasheet o mdulo Ethernet composto por cinco blocos fundamentais: 1- Mdulo PHY que codifica e decodifica os dados analgicos enviados e recebidos da rede pelo cabo de par tranado. 2- Mdulo MAC que corresponde as implementaes IEEE 802.3 e fornece a Interface Independente de Gerenciamento de Mdia (MIIM) para controle da PHY. 3- Buffer da RAM para armazenar pacotes recebidos e pacotes a serem transmitidos com 8 Kbytes de transmisso/recepo.
52

4- Arbiter rbitro para controlar o acesso ao buffer da memria RAM quanto aos pedidos feitos pelo microcontrolador, DMA, e os blocos receptor (RX) e transmissor (TX). 5- Interface de registro, que funciona como uma intrprete de sinais de comandos e status entre o mdulo e o microcontrolador SFR. Outra caracterstica bastante importante oferecida por esse dispositivo que em caso dos 128 Kbytes de memria de programa serem insuficientes, o mesmo implementa um barramento de memria externa. Isso permite o tratamento de um espao de memria de at 2 Mbytes.

3.3 Especificao de Hardware


O PIC18F87J60, dispositivo escolhido pelo presente projeto devido suas caractersticas j citadas no texto, possui pequenas dimenses fsicas, 12x12x1 mm e distncia entre pinos de 0.5 mm como mostrado na Figura 3.9. Sendo, compacto ao ponto de impossibilitar o seu manuseio e montagem de hardware em uma matriz de contatos ou mesmo em uma placa de circuito impresso convencional.

Figura 3.9 Dimenses fsicas do PIC18F87J60.

Surgia a a necessidade da pesquisa e obteno de uma plataforma de baixo custo, fcil acesso e que possusse as caractersticas necessrias para o desenvolvimento do sistema. Seguindo esses critrios foram localizadas algumas opes de hardware que poderiam servir como base para o projeto, e foi selecionada
53

entre eles a placa PME10A da 2EI mostrada na figura Figura 3.10, por ter um custo acessvel e possuir a interface de rede que essencial para a aplicao.

Figura 3.10 Interface Ethernet PME10A de 10Mbps

A PME-10A uma placa microcontrolada (PIC 18F87J60) com interfaces Ethernet 10 Mbps e serial RS-232. Ela pode ser adicionada a qualquer rede Ethernet 10/100 Mbps. Aplicaes tpicas incluem servidor Web HTTP, conversor de interface RS 232 para Ethernet, conversor de interface RS485 para Ethernet, controle remoto via Web, conexo TCP/IP, correio eletrnico, Agent SNMP, Servidor WAP,etc. (2EI, 2007). Os principais componentes da PME-10A so: 1 - Conector ICSP (In Circuit Serial Programming): Permite a placa PME-10A ser conectada a uma interface de programao para gravao da memria Flash do microcontrolador. 2 - Conector RJ45 (10 BaseT) que atende os requisitos IEEE802.3, possui leds de indicao: Amarelo: Indica que a conexo Ethernet est ativa. Verde: indica que a placa est transmitindo ou recebendo um pacote de dados. 3- Conectores de Expanso: Prov acesso de 53 pinos do microcontrolador PIC18F87J60 para serem usados como E/S. Entradas e sadas digitais esto na faixa de 0 a 3V3. A PME-10A pode ser alimentada diretamente por este conector ( + 3,3V no pino 28 de J1 e GND no pino 1 de J1). 4 - Microcontrolador: PIC18F87J60 com cristal de 25 MHz, 128K de memria Flash, MAC integrado e PHY 10Base-T, 3808 bytes de memria RAM e 55 portas de I/O programveis.
54

5 - Memria SPI EEPROM 25LC160 de 2Kbytes. Para configurao dos parmetros de rede. 6 - C.I MAX3232 para USART RS232. 7 - Conector Serial RS232: Prov os sinais Tx, Rx e GND para transmisso serial assncrona proveniente do integrado MAX3232. Como a PME10A constituda do PIC18F87J60 que suporta a pilha TCP/IP da Microchip que por sua vez oferece suporte para compiladores Microchip C18, o cdigo do dispositivo compilado pelo MPLAB C18, fornecido gratuitamente atravs do site oficial da Microchip Technology (www.microchip.com). Segundo MIYADAIRA (2009), o MPLAB C18 um compilador C destinado aos microcontroladores da famlia PIC18. Ele possui compatibilidade com o padro ANSI (American National Standards Institute) e pode ser facilmente integrado ao MPLAB IDE permitindo depurao em nvel de cdigo com o software MPLAB. Suas principais caractersticas so: compatvel com o padro ANSI. Permite misturar cdigos C e Assembly em um nico projeto. Permite configurar nveis de otimizao do cdigo. Dispe de uma vasta biblioteca (PWM, SPI, I2C, UART, USART etc.).

3.4 MPLAB IDE


O MPLAB IDE um ambiente de desenvolvimento integrado, que permite fcil integrao com o compilador MPLAB C18 ou outro tipo de compilador, alm de ser uma ferramenta extremamente poderosa, pois ela gerencia o projeto, compila, simula, debuga e em muitos casos grava no chip (MIYADAIRA, 2009). Desenvolvido e fornecido gratuitamente pela Microchip o MPLAB executado como um aplicativo de 32 bits no sistema operacional Microsoft Windows, de fcil utilizao e possui um conjunto de ferramentas para desenvolvimento e depurao de forma rpida e gil de aplicaes embarcadas baseadas nos produtos da Microchip (MICROCHIP, 2008). O ambiente do MPLAB IDE v8.50 utilizado nesse trabalho pode ser visto na Figura 3.11.

55

Figura 3.11 Ambiente de trabalho do MPLAB IDE v8.50

3.5 PROTEUS
Para a simulao do projeto foi utilizado software Proteus que um ambiente de desenvolvimento e simulao de circuitos eletrnicos. constitudo por um conjunto de programas como o ARES, que uma ferramenta que permite o projeto de placas de circuito impresso. O Proteus permite a simulao de sistemas eletrnicos constitudos de microcontroladores a partir do cdigo desenvolvido e compilado pelo MPLAB. A princpio possvel desenvolver e testar um projeto utilizando o Proteus VSM (Virtual System Modelling), antes mesmo de o prottipo fsico estar construdo. Isso possvel porque o Proteus VSM simula atravs de animao em tempo real (ou bem prximo disso) a integrao e funcionamento de todos os componentes de um projeto e oferece instrumentos virtuais (Osciloscpio, Multmetro, Analisador lgico, dentre outros) para depurao dos circuitos (SANTOS, 2009). A Figura 3.12 mostra o ambiente de desenvolvimento do Proteus VSM contendo um dos exemplos de circuitos eletrnicos que o mesmo traz em sua biblioteca.

56

Figura 3.12 Ambiente de desenvolvimento do Proteus.

3.6 GRAVADOR PICkit2


O PICkit2, mostrado na figura 3.13, um depurador/gravador que permite de maneira fcil e rpida, depurar softwares em microcontroladores da linha 10F, 12F, 16F e 18F e DsPic da Microchip. O gravador possui soquete padro de gravao para PICs de 8, 18, 28 e 40 pinos.

Figura 3.13 Gravador PICkit2.

57

3.7 Ferramentas para o Desenvolvimento de Pginas Web


3.7.1 Dreamweaver
Para o desenvolvimento das pginas web do Sistema foi utilizado o software Dreamweaver CS3, Figura 3.14, produzido pela Adobe. Segundo BACURAL (2011), o Adobe Dreamweaver, antigo Macromedia Dreamweaver um software de

desenvolvimento voltado para a web criado pela Macromedia (adquirida pela Adobe Systems). Este IDE incorpora um notvel suporte para vrias tecnologias web, tais como XHTML, CSS, JavaScript, Ajax, PHP, ASP, ASP.NET, JSP, ColdFusion e outras linguagens Server-side.

Figura 3.14 Tela inicial do Dreamweaver CS3.

Outra funcionalidade do Dreamweaver permitir selecionar a maioria dos navegadores para se ter uma previso (preview) da visualizao do HTML ou da pgina diretamente no(s) navegador(es) de destino. O software possui tambm timas ferramentas de gerenciamento e transferncia de projetos tais como a habilidade de encontrar e substituir, no projeto inteiro, linhas de texto ou cdigo atravs de parmetros especificados. (BACURAL, 2011).

58

3.6.2 Tecnologias para Aplicaes Web


O HTML (Hipertext Markup Language Linguagem de Marcao de Hipertexto) a linguagem bsica para o desenvolvimento de pginas web. O texto a ser contido na interface deve ser posto entre as tags (palavras ou caracteres entre sinais de maior e menor, como <head>, <p>, <h1>) adequadas, para fornecer a estrutura correta e desejada pgina. atravs das tags, que o browser sabe o formato adequado de exibio da pgina web, ou seja, elas informam ao navegador qual parte do texto o titulo, qual parte um pargrafo, qual merece destaque, onde determinada imagem deve ser inserida entre outras informaes. Quando o servidor responde a uma solicitao, ele geralmente envia algum tipo de contedo para o navegador, para que esse possa exibi-lo. Os servidores geralmente enviam instrues para o navegador escritas em HTML, que os diz como apresentar o contedo ao usurio. Ou seja, o HTML informa ao browser como exibir o contedo ao usurio. (FREEMAN, 2008). Vimos que o HTML uma linguagem de marcao que especifica o formato de texto exibido em um navegador web, mas o estilo da interface deixa a desejar. Para oferecer melhor apresentao as informaes j estruturadas, entra em cena uma tecnologia da W3C denominada Cascading Style Sheets (CSS folhas de estilo em cascata), que permite especificar a apresentao dos elementos em uma pgina web. Como exposto por DEITEL (2003), o desenvolvedor web pode inserir estilos nas suas pginas de varias maneiras: Estilos in-line onde se declara o formato de um elemento individual utilizando o atributo style. Folhas de Estilo Incorporadas permitem o autor da pgina incorporar um documento inteiro de CSS na seo head de um documento HTML. Estilos Conflitantes como o prprio nome indica, as folhas de estilos esto em cascata, pois, os estilos podem ser definidos pelo usurio, pelo autor ou pelo agente do usurio (por exemplo, um navegador web). Os estilos definidos pelos autores assumem precedncia sobre os definidos pelo usurio, e os do usurio sobre os estilos definidos pelo agente do usurio. Folhas de Estilo Externas as folhas de estilo do uma maneira conveniente de criar um documento em um tema uniforme. Com as folhas de estilo externas (isto , documentos separados que contm somente regras de CSS), os autores de pgina web podem fornecer uma aparncia e um comportamento uniforme
59

para o site inteiro. Pginas diferentes em um site podem utilizar a mesma folha de estilo. Em seguida, quando forem necessrias alteraes para o estilo, o autor das pginas web precisa modificar um nico arquivo de CSS para fazer alteraes de estilo em todo o site. A utilizao desses padres (HTML, XHTML e CSS), permite o desenvolvimento de pginas simples, com poucos contedos grficos e apenas contedos estticos. Aplicaes desenvolvidas a partir desses conceitos trazem a vantagem de uma perfeita integrao com qualquer navegador web, alm de no exigir profundos conhecimentos do desenvolvedor. No caso do trabalho em questo, que utilizar um navegador web como interface de acesso ao microservidor, a pgina a ser desenvolvida deve conter caractersticas que ofeream meios para que o usurio tenha controle sob variveis existentes em hardware, variveis estas, que mudam seus valores constantemente e que devem ser atualizadas de forma dinmica ao usurio, oferecendo-lhe acesso as informaes de campo em tempo real. Para que uma interface web oferea esses tipos de servios, novas tecnologias (alem do XHTML e do CSS) devem ser incorporadas pgina. De acordo com FELIPE (2010), vrias so as propostas de insero de parmetros de controle e indicadores grficos em pginas dinmicas, vejamos algumas dessas tecnologias: Labview um software proprietrio que oferece inmeras potencialidades, entre elas a possibilidade de acesso a dispositivos remotos via Internet. Possui uma linguagem de programao combinada com ferramentas grficas onde o desenvolvedor pode fazer dos instrumentos virtuais j implementados que podem se comunicar com instrumentos reais e podem ficar acessveis por qualquer navegador web a partir de um servidor HTTP embutido no prprio LABVIEW. Sistemas desenvolvidos com base nessa tecnologia necessitam da instalao da verso completa do software em seu servidor, o que envolve elevados custos. Java applets programa escrito em Java que pode ser inserido em pginas HTML permitindo a interao do usurio com partes grficas contidas na interface, oferecendo capacidade de controle e monitoramento das diversas variveis envolvidas de um processo em tempo real. Entre as desvantagens pode-se citar um alto tempo para sua inicializao e baixa velocidade de operao, a necessidade de ter instalada a maquina virtual Java no computador
60

do cliente e uma das principais desvantagens a variao de funcionalidade de um applet entre diferentes navegadores.

61

4 IMPLEMENTAO DO PROJETO

4.1 Desenvolvimento do Software


Este captulo traz informaes referentes ao desenvolvimento das pginas web, do funcionamento do servidor HTTP e das implementaes junto a pilha TCP/IP para microcontroladores da Microchip.

4.1.1 Desenvolvimento da Pgina Web


Uma ateno especial deve ser dada na escolha da forma de acesso ao microservidor, visto que por meio dela que o usurio ter acesso aos dados da aplicao e controle sobre os mesmos. Atravs da rpida abordagem realizada anteriormente sobre as tecnologias existentes para o desenvolvimento aplicao web (que caracteriza o cliente na aplicao remota), percebe-se inviabilidades na utilizao tanto do software Labview quanto de programas Java applets. Apesar das duas tecnologias compreenderem os requisitos bsicos para uma implementao de controle dinmico junto ao microservidor, ambas trazem desvantagens como o uso de uma plataforma proprietria onde se faz necessrio a instalao de seus softwares no microservidor envolvendo custos no caso do Labview e, a variao de funcionalidade em diferentes navegadores e a necessidade de programas especficos no computador do cliente, com o uso de applets. Caractersticas que no condizem com a idia da implementao de um mdulo de controle de baixo custo, com um sistema que funcione independente de plataformas e sem a necessidade de instalao de softwares adicionais, podendo o acesso ser feito de um computador, telefone mvel ou qualquer outro dispositivo com conexo Internet. Outra abordagem poderia utilizar mais plenamente as funcionalidades dos navegadores mais recentes, permitindo aplicaes em JavaScript e XML (eXtensible
62

Markup Language), que d ao cliente grande flexibilidade em armazenamento, processamento e apresentao dos dados recebidos (FELIPE, 2010). O JavaScript uma linguagem aberta de scripts, considerada intermediria entre a linguagem Java e a HTML, portanto pode ser usada por desenvolvedores de pginas HTML para tornar suas pginas mais dinmicas e interativas. O desenvolvimento de pginas HTML dinmicas realizado a partir do modelo de objeto, que permite que os programadores Web controlem a apresentao de suas pginas e lhes fornece acesso a todos os elementos em sua pgina Web. A pgina inteira elementos, formulrios, frames, tabelas, etc. representada em uma hierarquia de objetos. Utilizando scripts, o autor capaz de recuperar e modificar dinamicamente qualquer propriedade ou atributo de uma pgina (DEITEL E NIETO, 2003). Scripts podem responder as interaes do usurio e alterar a pgina consequentemente. Isso torna os aplicativos web mais reativos e amigveis ao usurio, alem de reduzir a carga no servidor executando tarefas localmente junto ao navegador. O AJAX Assyncronous Javascript and XML, uma ferramenta que oferece aos desenvolvedores web solues na construo de pginas que necessitam de atualizaes constantes e de forma dinmica. De acordo com SANTOS (2009), O principal objetivo do AJAX melhorar a interatividade do usurio com o servidor, evitando interromper a interao do usurio com a pgina toda vez que a aplicao necessitar de informaes do servidor. Devido essas caractersticas, alm do AJAX ser atrativo visualmente, o mesmo economiza em recursos de banda j que a transmisso de dados bem menor, uma vez que as pginas no so recarregadas a cada nova requisio e so pginas que ainda possibilitam a obteno de informaes em tempo real. A aplicao web desenvolvida para implementao do controle do sistema de iluminao, foi programada com base em HTML e CSS somados a algumas funes de Ajax e Javascript para fornecer maior interatividade ao usurio.

4.1.2 Servidor HTTP


A interface de controle e monitoramento do sistema via rede implementada atravs de um servidor HTTP embarcado no microcontrolador. Neste projeto foi utilizado o servidor HTTP2 da Microchip.

63

A maioria das requisies ou solicitaes que ocorrem na web entre clientes e servidores mantida atravs do protocolo HTTP, que possibilita conversas de solicitao e resposta simples. O cliente envia uma solicitao HTTP e o servidor retorna uma resposta HTTP. Quando o servidor envia uma pgina HTML ao cliente, o faz usando o protocolo HTTP. O HTTP roda no topo do TCP/IP. O TCP responsvel por garantir que um arquivo enviado de um n da rede para outro chegue ntegro ao seu destino, ainda que o arquivo esteja dividido em blocos no momento do envio. O IP o protocolo de sustentao que transfere/roteia os blocos (pacotes) de um host para outro no seu caminho at o destino. Ou seja, o HTTP outro protocolo de rede que tem caractersticas para web, mas ele depende do TCP/IP para obter solicitaes e respostas completas de um lugar para outro. A estrutura de uma conversa HTTP uma sequncia simples de solicitao/resposta; um navegador solicita e um servidor responde (BASHAM, SIERRA e BATES, 2005). O protocolo HTTP possui vrios tipos de solicitao, conhecidos como mtodos, contudo, os mais usados so o GET e o POST. Esses tipos de solicitao recuperam e enviam dados de um formulrio do cliente para o servidor web. A solicitao GET o mtodo mais simples do HTTP e seu principal trabalho pedir ao servidor que consiga um recurso. As informaes do que se deseja receber do servidor esto anexados ao Localizador Uniforme de Recursos (URL - Uniform Resource Locators que localiza o endereo de um recurso solicitado na web) exposto na barra de endereos do navegador (na seguinte estrutura:

protocolo://mquina/caminho/recurso), e por isso, o total de caracteres que pode ser enviado atravs do GET limitado. A Figura 4.1 mostra um exemplo de solicitao via GET ao servidor aps do clique em um boto de uma pgina web.

Figura 4.1 Solicitao via GET.

Nessa solicitao, as informaes que seguem o ? (BTPAGINA=Controle) indicam a entrada especificada pelo usurio. Ou seja, o sinal de interrogao separa o caminho do parmetro. Segundo NEVES (2008) para o servidor da Microchip estes dados esto limitados at cerca de 80 bytes e os dados enviados via GET so automaticamente decodificados e guardados no array curHTTP.data. A aplicao lida
64

com estes dados na funo HTTPExecuteGet. As funes HTTPGetArg e HTTPGetROMArg fornecem um mtodo fcil de submeter valores para processar. Como informado por DEITEL e NIETO (2003), os dados enviados por uma solicitao POST no fazem parte da URL e no podem ser visto pelo usurio. Os formulrios que contm muitos campos so normalmente enviados atravs de uma solicitao POST. Os campos que diferenciam letras maisculas e minsculas no formulrio, como senhas, normalmente so enviados com esse tipo de solicitao. No foram desenvolvidas simulaes que necessitassem da implementao do mtodo de solicitao POST, mas o mdulo pode ser empregado para controle de um sistema em que seja necessrio a utilizao de tal mtodo. Assim, na solicitao ao microservidor via mtodo POST, segundo NEVES (2008), os dados so submetidos aps os cabealhos de pedido terem sido enviados. Isto permite que os dados sejam virtualmente ilimitados em questo de tamanho, desde que a aplicao os consiga processar. Mas, a aplicao tem de ser capaz de lidar com a recepo de dados, o que torna este mtodo geralmente mais complexo. Os dados enviados via POST so deixados no buffer TCP para que a aplicao os possa ir buscar assim que estiver preparada para tal. A funo HTTPExecutePost chamada repetidamente at que a funo retorne HTTP_IO_DONE. A aplicao deve usar as funes TCPFind e TCPGet para retirar os dados do buffer. Se for retornado HTTP_IO_NEED_DATA o servidor executa novamente a funo quando o buffer ficar novamente cheio.

4.1.3 Configurao da Pilha TCP/IP


No desenvolvimento do projeto foi utilizado a verso 5.25 da pilha TCP/IP da Microchip. A partir da pilha exemplo iniciou-se o estudo de seu funcionamento e estruturao, com a identificao dos principais arquivos dentre as centenas que formam a pilha. Aps esta fase, o prximo passo foi a insero de dados e cdigos relacionados aplicao pretendida, adaptando assim a pilha exemplo ao projeto. Como j informado, a pilha composta por diversas camadas e a implementao dessas camadas realizada em arquivos separados como mostra a Figura 4.2, os quais foram acessados e compatibilizados com a implementao. Os contedos dessas camadas so escritos na linguagem C, tambm utilizada nas modificaes. O compilador MPLAB C18 responsvel pela compilao da pilha modificada.

65

Figura 4.2 Menu de arquivos que compem a pilha

Como infirmado por SANTANA (2008), os arquivos que compem o projeto ficam separados em duas pastas diferentes: Source Files e Header Files. A pasta Source Files contm os arquivos de extenso .c, que so os programas propriamente ditos e a pasta Header Files contm os arquivos de cabealho .h, que so arquivos de configurao utilizados em conjunto com os arquivos C. A seguir esto comentados resumidamente alguns dos principais arquivos que formam a pilha da microchip: HardwareProfile.h Onde realizada toda a configurao fsica de hardware, como: a definio do nome do projeto; definio do compilador; definio do microcontrolador a ser utilizado; configurao dos mdulos do microcontrolador Watchdog Timer, osciladores, conversores, etc; frequncia de clock utilizada, configurao dos pinos fsicos para conexo de: LEDs, memria EEPROM externa, botes, reles, controlador ethernet externo, caso necessrio, display LCD, enfim o mapeamento do hardware em relao aos pinos fsicos; MainDemo.c Onde fica alocada a funo principal, e onde so configuradas as portas j habilitadas no arquivo Hardwareprofile.h, com relao as condies de I/O, configurado tambm os canais analgicos e a inicializao do LCD, se for utilizada na aplicao;

66

CustomHTTPApp.c - Neste arquivo esto contidas as funes de autenticao das pginas, desenvolvidas as aplicaes web, definido os mtodos de envio (GET ou POST) e onde so implementadas as funes de retorno das variveis dinmicas das pginas web exibidas pelo servidor HTTP2; TCPIPConfig.h - Contem todas as definies da camada de aplicao da pilha TCP/IP. So definidos: os protocolos usados (ICMP, HTTP, SMTP etc); onde ser feito o armazenamento de dados (memria EEPROM ou memria Flash); o sistema de arquivos usado (MPFS ou MPFS2); IP, Mscara, Gateway, DNS e host name; endereo MAC; opes da camada de transporte (TCP e UDP); configuraes especficas das aplicaes; HTTP2.C - Este o arquivo onde est programado o servidor web da pilha, nele esto configurados os tipos de arquivo suportados e onde so feitas as alteraes de programao que permitem o uso de pginas para aparelhos celulares. O servidor web responde requisies da Internet atravs do programa principal pelo uso de duas funes HTTPGetVar e HTTPExecCmd, onde: HTTPGetVar - funo utilizada para enviar valores de variveis dinmicas do programa do PIC para o site; HTTPExecCmd - funo utilizada para capturar para dentro do programa do PIC, variveis enviadas atravs de formulrios no site (SANTANA, 2008). HTTPPrint.h - Definio das variveis dinmicas das pginas web e chamada das funes de manipulao das mesmas; StackTsk.c e StackTsk.h - Coordena a chamada das tarefas da pilha.

4.1.4 Testes Desenvolvidos no Simulador


A partir do momento que foram definidas as variveis dinmicas a serem observadas e controladas no sistema, foi desenvolvida a pgina web de acordo com as mesmas. Logo depois foram feitas todas as mudanas e insero de cdigos na pilha necessrios para o funcionamento da aplicao pretendida. O passo seguinte foi o desenvolvimento do circuito eletrnico no Proteus- ISIS verso 7.7 referente ao circuito da aplicao real para serem iniciados as simulaes de software e hardware do sistema. O circuito foi construdo conforme apresentado na Figura 4.3.

67

Figura 4.3 Circuito eletrnico em simulao.

Para a simulao do circuito necessrio a compilao da pgina web atravs do programa MPFS e da pilha atravs do C18 gerando o arquivo hexadecimal a ser carregado no microcontrolador no ambiente de simulao. A Figura 4.4 mostra o Sistema de Arquivos da Microchip (MPFS2 - programa gerado junto a instalao da TCPIP Stack v5.25), responsvel por compilar as pginas web. Na maneira que est configurado (opes de processamento sada: C18/C30 Image) gerado um arquivo .c o qual aps a compilao do projeto ser gravado na memria interna do microcontroador. Este mtodo mais simples de usar, mas limitado ao tamanho da memria do microcontrolador.

68

Figura 4.4 Compilador das pginas web.

Ao ser clicado em Generate, ser compilada a pgina carregada no MPFS e surgindo uma nova janela, Figura 4.5, a qual fornece informaes como a quantidade de arquivos e de variveis que pgina contm e o espao que a mesma ocupar na memria do PIC.

Figura 4.5 Informaes referentes a pgina web compilada.

69

Outra possibilidade a de gravar a pgina em uma memria EEPROM externa. Nesse caso o programador dever selecionar a opo de sada BIN Image junto ao MPFS, que gerar um arquivo binrio (.bin) que a pgina web convertida em um formato que o MCU conhece. Este arquivo dever ser carregado na EEPROM atravs do mpfsupload, como mostra a Figura 4.6.

Figura 4.6 Arquivo mpfsupload carregado no navegador.

Ao definir a memria a ser utilizada para a gravao das aplicaes web, necessrio informar essa escolha a pilha TCP/IP atravs do arquivo TCPIPConfig.h por exemplo, se for usada uma EEPROM externa a opo #define MPFS_USE_EEPROM deve ser descomentada. O projeto utilizado nas simulaes difere em alguns aspectos do projeto real da aplicao pelo motivo da inexistncia do PIC18F87J60, empregado nesse trabalho, na biblioteca do Proteus. O dispositivo utilizado na simulao foi o PIC18F4620 interligado ao controlador Ethernet externo ENC28J60, como foi mostrado na Figura 4.3.

4.2 Desenvolvimento de Hardware


Devido a tenso de operao do PIC18F87J60 ser de 3,3V, enquanto muitos dos dispositivos usados em circuitos microcontrolados operam com 5 ou 12V, foi necessrio montar um circuito de alimentao que inicia a partir de uma simples fonte porttil que fornece 12V DC para o mdulo, esta tenso ento rebaixada primeiramente para 5V, atravs do regulador de tenso L7805, e em seguida para 3,3V, com o regulador LM1117, da segue-se a alimentao para PME10A (3,3V). 5V e 12V so utilizados no circuito condicionador de sinal de rede e alimentao dos rels respectivamente. A Figura 4.7 mostra o mdulo desenvolvido.

70

Figura 4.7 Mdulo montado para o controle de iluminao via web.

Para o acionamento das cargas envolvidas nas implementaes que o mdulo poder vir ser conectado, foram montados junto a trs sadas do mesmo trs reles, e seus respectivos circuitos de funcionamento, um conector RJ12 ligado a interface ICSP da PME10A para que o microcontrolador possa ser programado e conectores de entrada e sada de sinais provenientes da aplicao. Para o exemplo de aplicao do mdulo com Ethernet embarcada proposto por esse trabalho a vigilncia e controle de um circuito de iluminao, foi necessrio a utilizao de um circuito de condicionamento de sinal para que a tenso de rede (220 AC) fosse detectada por uma das entradas do microcontrolador. Os principais componentes deste circuito, ilustrado na Figura 4.8, so o Fotoacoplador PC817 e a ponte de diodos W04.

71

Figura 4.8 Circuito condicionador de sinal

Este circuito permite que o microcontrolador possa identificar a presena de tenso (220V AC) em um determinado ponto. O optoacoplador responsvel por isolar diferentes partes do circuito. Os reles so responsveis por liberar ou no a tenso de retorno para o sistema de iluminao. Os estados (on/off) dos reles so comandados a partir de sinais lgicos de tenso provenientes do microcontrolador. Quando a iluminao no acionada pela pgina e sim localmente, o interruptor acionado envia a tenso de rede para o mdulo, nesse momento entra em cena o optoacoplador que isola essa tenso recebida, liberando apenas um sinal lgico para o microcontrolador, que enxerga como sinal de entrada e faz o seu trabalho de gerenciamento gerando um sinal de sada para o circuito do rele que por sua vez libera a tenso de retorno da rede para as luzes. Nesse mesmo tempo a pagina atualizada e indica que a iluminao esta acionada graas as requisies assncronas via Ajax ao microservidor. Componentes utilizados para a montagem do hardware: Placa PME10A; 3 reles; 4 diodos 1N4007; 3 transistores BC337 e 1 BC558; 5 LEDs; 1 fotoacoplador PC817;
72

1 ponte de diodos W04; 2 resistores de 22K, 1 de 220 , 5 de 10K; 1 conector RJ12; 1 conector para fonte de 12V; 1 regulador de tenso L7805 e 1 regulador LM1117; 2 capacitores eletrolticos de 10 F e 1 de 100 F; 3 capacitores cermicos de 100 nF; Conectores de I/O. A tabela 2 contem os custos relacionados a implementao do hardware.
Tabela 2 Custo do projeto

Componente Placa PME10A Rels Fotoacoplador PC817 Transistor BC558 Transistor BC337 Placa para montagem Componentes em geral Total

Quantidade 1 3 1 1 3 1 -

Valor Unitrio R$ 113,00 R$ 3,00 R$ 2,50 R$ 3,00 R$ 0,50 R$ 12,00 -

Custo R$ 113,00 R$ 9,00 R$ 2,50 R$ 3,00 R$ 1,50 R$ 12,00 R$ 35,00 R$ 176,00

73

5 FUNCIONAMENTO DO PROJETO PROPOSTO

5.1 Gravao da Pgina Web e da Pilha TCP/IP no Mdulo


Uma vez que o mdulo se encontre montado, a aplicao web desenvolvida, a pilha TCP/IP modificada para a aplicao e ambas compiladas, chega o momento da gravao do software em hardware. A gravao realiza da atravs do conector RJ12 do mdulo que est ligado ao conector ICSP (In Circuit Serial Programming), que permite a placa PME10A ser conectada a interface de programao PICkit2 para gravao do firmware na memria Flash do microcontrolador. A Figura 5.1 mostra a interface de gravao do PICkit2.

Figura 5.1 Interface de gravao PICkit2.

74

5.2 Funcionamento da Aplicao Web Junto ao Microservidor


Os sinais de entrada aplicados no microservidor so provenientes da chegada de requisies pelo navegador geradas pela ao do usurio junto pgina web, que geralmente so dotadas de botes e/ou figuras clicveis. A responsvel pela identificao do estado fsico do circuito de iluminao na pgina web so figuras de lmpadas, formatadas como links de dados, que serviro como meio de insero de entradas (requisies HTTP via mtodo GET do navegador) ao microservidor atravs de um clique do mouse sob a imagem. Estas imagens devero ser constantemente modificadas, acompanhando o estado real da iluminao em hardware. Tais modificaes ocorrero de forma praticamente instantnea, graas s requisies Ajax ao microservidor que ocorrero a cada 500ms, modificando dinamicamente a interface web com as atualizaes de campo informadas pelo servidor. De acordo com as informaes recebidas, a imagem que integra o corpo da pgina ser substituda por outra que corresponda o estado atual do hardware. Ou seja, levando em considerao que inicialmente o circuito de iluminao ligado ao mdulo se encontre desativado (luzes apagadas), a imagem referente a esse circuito na pgina deve ser correspondente a esse estado (imagem de uma lmpada apagada). A partir do momento que o usurio acionar o sistema junto a pgina, clicando na imagem, requisies vo ser enviadas ao microservidor que ir process-las e em seguida acionar o circuito correspondente fazendo com que as luzes se ascendam fisicamente. Logo, o servidor dever retornar informaes relacionadas ao estado atual de suas sadas, permitindo a atualizao da pgina (troca da imagem lmpada acesa). O texto a seguir descreve de forma mais detalhada o funcionamento da interface web junto ao microsservor. Ao ser dado um clique na imagem, referente a um dos circuitos controlados, denominada iluminao 1, ser provocada uma solicitao Ajax ao servidor atravs da chamada da funo newAJAXCommand() que carrega os campos

('luzes.cgi?luz=1') e os envia ao servidor via mtodo GET (dados da solicitao so enviados na prpria url). Com a utilizao da funo, newAJAXCommand(), vo ocorrer constantes solicitaes de envio de dados informados na url ao microservidor.
75

Ao

chegar

informaes localizada dados

diretamente no so arquivo

pela

url

ao

servidor,

funo chamada

HTTPExecuteGET(), automaticamente,

CustomHTTPApp.c, e

onde

decodificados

armazenados

no

vetor

curHTTP.data em pares de nome e seu valor correspondente. As funes HTTPGetArg() e HTTPGetROMArg() podem encontrar facilmente o nome da varivel procurada e assim executar a ao necessria de acordo com o seu valor. Ou seja, a funo HTTPExecuteGET() identifica atravs dos parmetros recebidos via GET, qual arquivo (pgina web) e qual o nome ou dado pertencente a tal pgina foi enviado na requisio, em seguida executa as linhas de cdigos referente ao dado recebido, gerando sinais de sada para acionar/desativar o circuito de iluminao

correspondente. Se analisarmos os passos seguidos e os resultados adquiridos at o presente momento, observaremos que o usurio acessou a pgina de controle do sistema embarcada no microservidor, enxergou os dados informados pela interface web, forneceu entradas atravs da mesma no intuito de modificar o estado atual em hardware, e o servidor levou essas requisies at o microservidor o qual as processou e gerenciou sinais de sada que promoveram uma ao em hardware segundo as entradas fornecidas pela pgina de controle via web. Ou seja, apesar das mudanas no meio fsico, at ento, o usurio da interface no tem informaes sobre o ocorrido em hardware aps sua ao sob a pgina. A resposta do microservidor ao navegador, ou seja, a impresso dos dados atuais do hardware na pgina, se d a partir da execuo da funo HTTPPrint(), a mesma se encontra dentro do arquivo CustomHTTPApp.c da pilha. Mas, para o desenvolvimento de cdigos que iro servir de base para o retorno de dados ao cliente, se faz necessrio que algumas etapas tenham sido seguidas. Vejamos quais so: No momento da estruturao da pgina web, que dever fornecer condies de monitoramento e controle de um dado sistema a partir de um microservidor, o desenvolvedor deve ter em mente toda a relao de variveis estticas e dinmicas a serem alocadas na interface para que a mesma oferea funcionalidade e dinamismo junto ao processo. Uma vez feito essas definies, os arquivos referentes a estrutura da pgina devem ser convertidos para um formato compatvel para o armazenamento. Essa compilao feita pelo Sistema de Arquivos da Microchip (MPFS2). Na compilao da pgina web o programa MPFS2, alm de gerar a imagem da interface web, que poder ser embarcada na memria do microcontrolador ou em uma
76

memria EEPROM externa (depende da maneira que a imagem for criada - .c ou .bin, como j informado no texto), ele tambm ir gerar automaticamente na pilha o arquivo HTTPPrint.h, que possui as informaes de cabealho que vo informar a pilha TCP/IP, quais so as funes existentes responsveis por manipular as variveis estticas e/ou dinmicas da pgina. Tudo acontece da seguinte maneira: no momento que os arquivos so compilados e a imagem da pgina web gerada, o arquivo HTTPPrint.h ser atualizado automaticamente com as variveis pertencentes a pgina. A partir dessas, ele faz chamadas de funes relacionadas s variveis. Essas funes so desenvolvidas dentro do arquivo CustomHTTPApp.c, onde, a partir de seus cdigos, fornecem informaes a pgina sempre que solicitado. Se tratando de variveis estticas contidas na interface, o processo de tratamento relativamente simples, bastando apenas a pgina ser carregada junto a um navegador web para que as informaes contidas na funo HTTPPrint()

correspondente a varivel fornea seus valores ao cliente. No momento em que passa-se necessrio trabalhar com variveis dinmicas, ou seja, a existncia de campos na interface web que mudem seus valores de acordo com mudanas ocorridas em hardware, outros arquivos, contendo funes especficas, devem ser somados ao projeto da pgina alm das linguagens HTML e CSS, utilizadas na sua estruturao e aparncia. Como exemplo, funes de JavaScript, Ajax e XML. As variveis dinmicas existentes nas aplicaes web, como no caso das lmpadas, no exemplo que esse trabalho traz, devem ser contidas em um arquivo .xml (neste caso, status.xml), escritas na forma ~luz(1)~, como mostra a Figura 5.2. Atravs do caractere ~ o microservidor reconhece que se trata de uma varivel dinmica e atravs da funo HTTPPrint() referente varivel, substitui por seu valor atual antes de enviar o arquivo status.xml ao cliente.

Figura 5.2 Exemplo de variveis no arquivo status.xml.

Como informado por FELIPE (2010), toda a informao necessria para atualizao do estado na pgina se obtm do arquivo status.xml. Uma vez que a
77

pgina carregada por completo se inicia um cdigo Javascript que realiza o envio de solicitaes AJAX do recurso status.xml atravs da funo newAJAXCommand como mostrado na Figura 5.3.

Figura 5.3 Requisio ao arquivo xml.

Essa funo chama o arquivo status.xml, onde esto informados os valores atuais das variveis a serem atualizadas. Chama tambm a funo updateStatus que responsvel por comparar o valor existente no arquivo .xml com o existente na pgina naquele momento, promovendo a troca, ou no, da imagem. O ultimo parmetro true, indica que a solicitao deve ser repetida infinitamente e a cada 500ms, assim como est configurada a funo do Javascript, setTimeout. Com a comunicao assncronas do Ajax, eliminada a necessidade de atualizao da pgina inteira a cada requisio do usurio, sendo realizado apenas a atualizao dos dados necessrios, oferecendo mais eficincia na transmisso dos dados e maior interatividade com o usurio.

5.2.1 Funcionamento do Mdulo Junto ao Sistema de Iluminao


Aps a execuo de todos os passos, implementaes de hardware, software e gravao dos programas no microservidor do mdulo, ento chegado o momento de conect-lo ao sistema de iluminao e a uma rede de trabalho local ou a internet, como demonstra a Figura 5.4.

Figura 5.4 Esquemtico do mdulo conectado a rede e ao sistema de iluminao.

78

A Figura 5.4 esquematiza o sistema embarcado em ao a partir do controle de uma lmpada (L1). Neste contesto, a chave (CH), que se encontra em seu estado fechado e representa um interruptor, est ligada a fase da rede eltrica e a uma das trs entradas do mdulo, j a lmpada, ao neutro da rede e a uma das trs sadas do mdulo. As linhas vermelhas indicam que as mesmas esto alimentadas pela tenso de fase, a azul que est alimentada por uma tenso de retorno proveniente do mdulo, e as linhas pretas representam o neutro. No momento o prottipo s possui trs entradas e trs sadas, lembrando que a PME10A contida no mesmo, utiliza o PIC18F87J60, que disponibiliza 53 portas de I/O (entrada/sada). Por tanto, mais conectores podem ser includos no mdulo se assim for necessrio. Mesmo com a implantao do mdulo, a iluminao do ambiente pode tambm ser acionada normalmente a partir do interruptor, como exemplificado na Figura 5.4, desde que o operador da pgina de controle contida no microservidor permita. A Figura 5.5, traz a pgina de acesso ao controle via web que esta embarcada no microcontrolador. Uma vez que prottipo esteja conectado a internet, a pgina contida no mesmo pode ser acessada - atravs do nmero de seu endereo IP (Protocolo da Internet), ou ainda atravs do seu host name (nome dado a pgina) que definido dentro do arquivo TCPIPConfig.h da pilha TCP/IP - de qualquer lugar do mundo por qualquer dispositivo que oferea acesso a internet e utiliza um navegador web.

Figura 5.5 Pgina de acesso ao controle de iluminao via Web

Devido a tantas facilidades e tantos meios, qualquer pessoa pode ter acesso a pgina. Por isso mesmo se torna necessrio a configurao de um sistema de acesso
79

seguro o qual permite o alcance a aplicao de controle somente a pessoas autorizadas aps insero de login e senha. A configurao de autenticao da pgina esta contida no arquivo CustomHTTPApp.c, onde ficam as funes HTTPNeedsAuth() que informa qual pgina necessita de autenticao, e a HTTPCheckAuth que checa a informaes inseridas pelo usurio na caixa de login em senha e compara com os valores configurados na pilha. Caso os dados informados no sejam os corretos a funo retorna ao navegador uma mensagem de no autorizado. Aps realizao das configuraes a pilha TCP/IP far uma requisio de login e senha toda vez que algum quiser acessar a pgina de controle como demonstrado na Figura 5.6.

Figura 5.6 Requisio de login e senha para acesso a pgina de controle

Aps tal procedimento o usurio estar na pgina de controle referente a sala definida. A partir dessa interface possvel saber o estado atual da iluminao (luzes acesas ou apagadas), e defini-lo em tempo real. A Figura 5.7, traz as informaes de estado da sala (a iluminao da sala dividida em dois circuitos distintos, relacionados na pgina como (LED) e (REL) respectivamente), nesse instante o operador percebe que a iluminao referente ao circuito2 est ativada, pois v a figura de uma lmpada (REL) acesa. Percebe tambm que o boto se encontra no estado liberado o que indica que o sistema de iluminao pode ser acionado localmente por qualquer pessoa atravs do interruptor. Nesse caso a iluminao pode ter sido acionada tanto pela pgina como localmente.

80

Figura 5.7 Status da sala (luzes acesas e sistema liberado)

Atravs de um clique sobre o boto o operador da aplicao web deixa o sistema bloqueado o que impede o acionamento da iluminao localmente, o que passa a ser possvel somente atravs da pgina. Para apagar ou acender as luzes basta um clique sobre a figura da lmpada, o que corresponde a uma requisio do navegador junto ao microservidor o qual processa a informao e gera um sinal de sada apagando ou acendendo as luzes e envia um sinal de resposta ao navegador que modifica dinamicamente o estado do boto e da luz, como mostrado na Figura 5.8

.
Figura 5.8 Status da sala (circuitos desligados e sistema bloqueado)

81

6 CONCLUSO

Esse trabalho tratou da implementao de um mdulo de baixo custo, microcontrolado com ethernet embarcada com possibilidade de acionamento atravs da internet. Uma vez conectado a rede mundial, tal sistema possibilita o monitoramento e acionamento de cargas, conectadas ao mesmo, de qualquer lugar do mundo, desde que se tenha acesso a internet e um navegador web. Trouxe ainda como exemplo de aplicao, o controle de um sistema de iluminao o qual proporciona ao operador da pgina, total liberdade sobre o condicionamento das luzes do ambiente, facilitada pelo desenvolvimento de um aplicativo web dinmico que interage com o usurio trazendo informaes em tempo real sobre o sistema controlado. Conclui-se tambm que o desenvolvimento desse sistema baseado na tecnologia dos microcontroladores, possibilitou a produo de um dispositivo flexvel, pois fcil realizar adaptaes no mdulo para que o mesmo venha atender as diversas necessidades que se apresentem, maximizando seu poder de conexo a diversos equipamentos e sistemas a baixos custos. Tudo isso se soma ao momento atual onde esta claro que a quantidade de equipamentos com tecnologias de comunicaes embarcadas tende a crescer, aumentando o nmero de dispositivos ligados a internet, portanto um estudo profundo sobre suas estruturas de conectividade imprescindvel para o desenvolvimento da atual e ainda pouco explorada, tecnologia de sistemas microcontrolados com Ethernet embarcada vinculada a automao nos processos de acionamento e monitoramento que regem ambientes industriais e residenciais. Como possibilidade de trabalhos futuros, proposto um estudo mais profundo sobre a estrutura da pilha TCP/IP, tendo como resultado condies de utilizar todos os seus recursos permitindo aplicaes de maior complexidade fazendo uso de sistemas microcontroladores com acesso a rede em aplicaes de automao.

82

7 REFERNCIAS BIBLIOGRFICAS

ANDREANI, A. C. Sistemas Embarcados: Estudo Atravs de um Servidor HTTP. Trabalho de Concluso de Curso, Universidade Estadual de Londrina, 2007. BACURAU, R. M. Desenvolvimento de um Sistema Web Embarcado para Controle e Superviso de Estaes Urbanas de Distribuio de gua. Trabalho de Concluso de Curso, UNIVASF, 2011. BASHAM, B. Servlets & JSPTM / Bryan Basham, Kathy Sierra e Bert Bates. Rio de Janeiro: Alta Books, 2005. CASTELLS, M. A sociedade em Rede / Manuel Castells. 6. Ed. So Paulo: Paz e Terra, 1999. DEITEL, H. M. Internet & World Wide web / H. M. Deitel, P. J. Deitel e T. R. Nieto. 2. Ed. Porte Alegre: Bookman, 2003. FOROUZAN, B. A. Comunicao de Dados em Redes de Computadores / Behrouz A. Forouzan. 3. Ed. Porto Alegre: Bookman, 2006. FELIPE, A. G. M. Laboratrio de experimentao remota com o microcontrolador PIC / gio Gonalves de Moraes Felipe. Dissertao de Mestrado. UECE, 2010. FREEMAN, E. HTML com CSS e XHTML / Elisabeth Freeman e Eric Freeman. 2. Ed. Rio de Janeiro: Alta Books, 2008. KUROSE, J. F. e ROSS, K. W. Redes de Computadores e a Internet : Uma Abordagem Top-down. 3. Ed. So Paulo : Pearson Addison Wesley, 2006. LUGLI, A. B. Sistemas Fildbus para automao industrial: DeviceNet, CANopen, SDS e Ethernet / Alexandre Baratella Lugli, Max Moura Dias Santos. 1. Ed. So Paulo: rica, 2009. LUGLI, A. B. Redes Industriais para automao industrial: ASI-I, PROFIBUS e PROFNET / Alexandre Baratella Lugli, Max Moura Dias Santos. 1. Ed. So Paulo: rica, 2010. MICROCONTROLADOR. In: WIKIPDIA: a enciclopdia livre.Disponvel em: <http://pt.wikipedia.org/wiki/Micorcontrolador> acesso em: 02 mar. 2012. MICROCHIP. Microchip TCP/IP Stack Application Note
83

http://ww1.microchip.com/downloads/en/AppNotes/00833c.pdf - <acessado em 21 de Fevereiro de 2012>. (MICROCHIP,2008C) Microchip PIC18F87J60 Data Sheet WWW.alldatasheet.com/datasheet-pdf/pdf/MICROCHIP/PIC18F87J60.html <acessado em 15 de Fevereiro de 2012>. MIYADAIRA, A. N. Microcontroladores PIC18: aprenda e programe em linguagem C / Alberto Noboru Miyadaira. 1. Ed. So Paulo: rica, 2009. MOKARZEL, M. P. Internet Embedded: TCP/IP para Microcontroladores. / Marcos Perez Mokarzel, Karina Perez Mokarzel Carneiro.1. Ed. So Paulo: rica, 2004. NEVES, S. R. Cybercar Sistemas de Superviso e Controle de um Veculo Eltrico. Dissertao de Mestrado, FCTUC, 2008. PILHA TCP/IP. In: WIKIPDIA: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/TCP/IP > acesso em: 29 fev. 2012. SANTANA, L. V. O Uso da Internet e da Comunicao Sem Fio Via Zigbee em Sistemas Embutidos. Trabalho de Concluso de Curso, UFOP, 2008 SANTOS, J. C. M. Projeto de um Sistema Microcontrolado Utilizando Internet Embarcada para Monitoramento Remoto em Tempo Real de Temperatura e Disponibilizao dos Dados na WEB Atravs de Conexo de Rede. Trabalho de Concluso de Curso, UFRN, 2009. SISTEMAS Embarcados. In: WIKIPDIA: a enciclopdia livre. Disponvel em: <http://pt.wikipedia.org/wiki/Sistema_embarcado> acesso em: 02 mar. 2012. SOUZA, D. J. Desbravando o PIC / David Jos de Souza. 11. Ed. So Paulo: rica, 2007. STEMMER, M. R. Redes Locais Industriais: a integrao da produo atravs das redes de comunicao / Marcelo Ricardo Stemmer Florianpolis: Ed. Da UFSC, 2010. TANENBAUM, A. S. Redes de Computadores / Andrew S. Tanenbaum. 13a Reimpresso. Rio de Janeiro: Elsevier, 2003. TORRES, G. Redes de Computadores Curso Completo / Gabriel Torres. Rio de Janeiro: Axcel Books do Brasil Editora, 2001. SILVA, J. B. Monitoramento, Aquisio e Controle de Sinais Eltricos via Web, Utilizando Microcontroladores. Dissertao de Mestrado, UFSC, 2002.
84

SILVA, J. B. A Utilizao da Experimentao Remota Como Suporte para Ambientes Colaborativos de Aprendizagem. Tese de Doutorado, UFSC, 2006. SILVA, L. E. G. Arquitetura Expansvel Para Desenvolvimentos de Pginas AJAX. Dissertao de Mestrado, UFMG, 2009. ZANCO, W. S. Microcontroladores PIC 16F628A: uma abordagem prtica e objetiva / Wagner da Silva Zanco. 1. Ed. So Paulo: rica, 2005. ZORZIN, R. S. Monitorao Ambiental Remota Baseada em Microcontroladores. Trabalho de Concluso de Curso, ULBRA, 2008.

85