protótipo de um sistema de acionamento remoto … · web viewdo microcontrolador foi baseado na...

94
AGRADECIMENTOS Gostaríamos de agradecer a todas as pessoas que nos deram o seu apoio para que pudéssemos concluir com êxito, não somente este trabalho de conclusão de curso, mas todo o curso de Engenharia Elétrica da Universidade Federal do Paraná. Agradecemos primeiramente ao professor Dr. Eduardo Parente Ribeiro, do departamento de Engenharia Elétrica da Universidade Federal do Paraná, pelo tempo dedicado e pelo apoio dado para que este projeto pudesse ser concluído. Agradecemos também ao engenheiro M.Sc. Igor Gavriloff, pela co-orientação ao nosso projeto, tendo sido esta de suma importância para a conclusão do mesmo. Também agradecemos ao professor M.Sc. Ademar Luis Pastro, do departamento de Engenharia Elétrica da Universidade Federal do Paraná, pelas críticas e sugestões dadas na apresentação parcial do projeto. Aos amigos e familiares também dedicamos um agradecimento especial, por toda a compreensão e apoio que nos foi dado, desde o começo até o final do curso, curso este que sendo de Engenharia Elétrica, nos exigiu muitas horas de estudo e dedicação devido ao grau de exigência do mesmo. Aos graduandos Marcos Vinicius Lopes Paixão e Walter Godefroid Steiger, nossos sinceros agradecimentos por toda sua ajuda e disponibilidade de tempo para nos ajudar com o nosso projeto final de graduação. Por último devemos, acima de tudo, agradecer um ao outro por toda a dedicação e empenho para com este trabalho. 1

Upload: others

Post on 27-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

AGRADECIMENTOS

Gostaríamos de agradecer a todas as pessoas que nos deram o seu apoio para que pudéssemos concluir com êxito, não somente este trabalho de conclusão de curso, mas todo o curso de Engenharia Elétrica da Universidade Federal do Paraná.

Agradecemos primeiramente ao professor Dr. Eduardo Parente Ribeiro, do departamento de Engenharia Elétrica da Universidade Federal do Paraná, pelo tempo dedicado e pelo apoio dado para que este projeto pudesse ser concluído.

Agradecemos também ao engenheiro M.Sc. Igor Gavriloff, pela co-orientação ao nosso projeto, tendo sido esta de suma importância para a conclusão do mesmo.

Também agradecemos ao professor M.Sc. Ademar Luis Pastro, do departamento de Engenharia Elétrica da Universidade Federal do Paraná, pelas críticas e sugestões dadas na apresentação parcial do projeto.

Aos amigos e familiares também dedicamos um agradecimento especial, por toda a compreensão e apoio que nos foi dado, desde o começo até o final do curso, curso este que sendo de Engenharia Elétrica, nos exigiu muitas horas de estudo e dedicação devido ao grau de exigência do mesmo.

Aos graduandos Marcos Vinicius Lopes Paixão e Walter Godefroid Steiger, nossos sinceros agradecimentos por toda sua ajuda e disponibilidade de tempo para nos ajudar com o nosso projeto final de graduação.

Por último devemos, acima de tudo, agradecer um ao outro por toda a dedicação e empenho para com este trabalho.

1

Page 2: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

RESUMO

O protótipo que será apresentado neste trabalho é um sistema que possui o intuito de ser autônomo, portanto, independente de um computador, conectável a internet e podendo ser conectado diretamente em uma tomada de energia residencial comum. O hardware consiste de um microcontrolador PIC18F66J65, fabricado pela Microchip, e mais uma série de componentes visando criar um mini servidor web autônomo, capaz de monitorar e controlar entradas e saídas digitais. O firmware do microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação C e fornecida gratuitamente pela Microchip, que já possui diversas camadas do modelo TCP/IP implementadas permitindo assim a comunicação do microcontrolador com a rede através dos protocolos padrão existentes.

Palavras-chave:

PIC18F66J65

Módulo Ethernet

Mini servidor HTML

2

Page 3: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ABSTRACT

The prototype that is presented in this work is a system which has the purpose of being autonomous, therefore independent of a computer, connectable to the internet and also to a standard residential plug. The hardware consists of a Microchip’s microcontroller PIC18F66J65, plus a variety of components used to create a mini autonomous web server, capable of monitoring and controlling digital inputs and outputs. Its firmware was developed in the programming language C, using mainly the library “Microchip TCP/IP Stack”, which is provided without any cost by Microchip itself. This library has most of the layers of the TCP/IP protocol already implemented, allowing the communication between the microcontroller and the internet though the standards existing protocols.

Key words:

PIC18F66J65

Ethernet module

HTML web server

3

Page 4: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

LISTA DE SIGLAS E EXPRESSÕES NA LÍNGUA INGLESA

ACK Mensagem de confirmação de reconhecimento de pacote enviado (do inglês,

Acknowlegment)

ADJ Pino de ajuste do LM317 (do inglês, Adjustment)

API Interface de programação de aplicações (do inglês, Application Programming

Interfaces)

ARP Protocolo de resolução de endereços (do inglês, Address Resolution Protocol)

Array Uma série de elementos de dados, geralmente do mesmo tamanho e tipo

Cache Dispositivo de acesso rápido, interno a um sistema, que serve de intermediário

entre um processo e um dispositivo de armazenamento

CGI Interface comum de porta de ligação (do inglês, Common Gateway Interface)

DHCP Protocolo de configuração dinâmica de terminais (do inglês, Dynamic Host

Configuration Protocol)

DMA Memória de acesso direto (do inglês, Direct Access Memory)

EEPROM Memória somente leitura programável e apagável eletricamente (do inglês,

Electrically Erasable Programmable Read-Only Memory)

FAT Tabela de alocação de arquivos (do inglês, File Allocation Table)

FIFO Tipo de enfileiramento, o primeiro a entrar é o primeiro a sair (do inglês, First In,

First Out)

FTP Protocolo de transferência de arquivo (do inglês, File Transfer Protocol)

HTML Linguagem de marcação de hipertexto (do inglês, HyperText Markup Language)

HTTP Protocolo de transferência de hipertexto (do inglês, HyperText Transfer Protocol)

ICMP Protocolo de controle de mensagens de internet (do inglês, Internet Control

Message Protocol)

ICSP Método de programação serial “no circuito” (do inglês, In Circuit Serial

Programming)

IP Protocolo de internet (do inglês, Internet Protocol)

LAN Rede local (do inglês, Local Area Network)

LED Diodo emissor de luz (do inglês, Light Emissor Diode)

MAC Controle de acesso a mídia (do inglês, Media Access Control)

MCLR Pino de reinicialização do PIC (do inglês, Memory Clear)

4

Page 5: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

MPFS Sistema de arquivos Microchip (do inglês, Microchip File System)

NDP Protocolo de descoberta de vizinhos (do inglês, Neighbor Discovery Protocol)

NIC Controlador de interface de rede (do inglês, Network Interface Controller)

OSI Interconexão de sistemas abertos (do inglês, Open Systems Interconnection)

PC Computador pessoal (do inglês, Personal Computer)

PCI Placa de circuito impresso

PHY Camada física (do inglês, Physical)

PIC Interface controladora de periféricos (do inglês, Peripheral Interface Controller)

RAM Memória de acesso randômico (do inglês, Random Access Memory)

RISC Conjunto de instruções reduzido (do inglês, Reduced Instruction Set Computer)

RTC Relógio em tempo real (do inglês, Real Time Clock)

SFR Registrador especial de função (do inglês, Special Function Register)

SLIP Protocolo de internet para linha serial (do inglês, Serial Line Internet Protocol)

SRAM Memória estática de acesso randômico (do inglês, Static Random Access Memory)

String Seqüência ordenada de caracteres

TCP Protocolo de controle de transmissão (do inglês, Transmisson Control Protocol)

UDP Protocolo de datagrama de usuário (do inglês, User Datagram Protocol)

URL Localizador padrão de recursos (do inglês, Uniform Resource Locator)

5

Page 6: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

LISTA DE FIGURAS

Figura 1 – PIC18F66J65...............................................................................................................19

Figura 2 – Esquema de ligação física do módulo Ethernet.........................................................22

Figura 3 – Diagrama de blocos do módulo Ethernet..................................................................23

Figura 4 – Comparação entre os modelos TCP/IP de referência e Microchip.............................24

Figura 5 – Diagrama de implementação de um servidor HTTP em um microcontrolador PIC....27

Figura 6 – Fluxograma do programa monitor.............................................................................31

Figura 7 – Esquema de funcionamento proposto no presente trabalho....................................32

Figura 8 – Diagrama interno do conector RJ45 MAG45.............................................................33

Figura 9 – Conversor TQFP 64 pinos DIP................................................................................34

Figura 10 – Componente do conversor TQFP DIP em ambiente EAGLE................................34

Figura 11 – Esquemático do circuito da placa principal..............................................................35

Figura 12 – Layout da placa principal.........................................................................................36

Figura 13 – Esquemático da placa reguladora de tensão...........................................................37

Figura 14 – Versão final da placa reguladora de tensão.............................................................38

Figura 15 – Componentes do projeto.........................................................................................42

Figura 16 – Placa principal do protótipo.....................................................................................43

Figura 17 – Placa reguladora de tensão.....................................................................................44

Figura 18 – Página HTML a ser no protótipo..............................................................................45

Figura 19 – Compilação da biblioteca Microchip TCP/IP Stack...................................................46

Figura 20 – Teste através do prompt de comando do Windows................................................49

Figura 21 - Monitoramento do funcionamento do PIC com o Wireshark...................................49

Figura 22 – Página HTML funcional carregada no protótipo......................................................50

Figura 23 – Esquemático do sistema de armazenamento de arquivos MPFS.............................66

Figura 24 – Interface do programa EAGLE..................................................................................67

Figura 25 – Interface do programa MPLAB................................................................................68

Figura 26 – Gravador de microcontroladores PIC PICkit 2..........................................................69

Figura 27 – Gerador de imagens MPFS.......................................................................................70

Figura 28 – Interface do Microchip Page Preview......................................................................71

Figura 29 – Software MCHPDetect.............................................................................................72

Figura 30 – Interface do programa Wireshark............................................................................73

6

Page 7: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

7

Page 8: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

LISTA DE TABELAS

Tabela 1 – Pinos do PIC18F66J65...............................................................................................21

Tabela 2 – Lista de componentes da placa principal..................................................................37

Tabela 3 – Lista de componentes da placa reguladora...............................................................38

Tabela 4 – Cronograma do projeto.............................................................................................58

Tabela 5 – Arquivos para configuração da pilha TCP/IP.............................................................60

Tabela 6 – Lista dos módulos e arquivos necessários para compilação da biblioteca................62

Tabela 7 – Funções da camada MAC..........................................................................................63

Tabela 8 – Funções da camada ARP...........................................................................................64

Tabela 9 – Funções da camada IP...............................................................................................64

Tabela 10 – Funções da camada TCP..........................................................................................65

Tabela 11 – Funções da página HTTP.........................................................................................65

8

Page 9: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

SUMÁRIO

Agradecimentos...........................................................................................................................1

Resumo........................................................................................................................................2

Abstract........................................................................................................................................3

Lista de siglas e expressões na língua inglesa...............................................................................4

Lista de figuras.............................................................................................................................6

Lista de tabelas.............................................................................................................................7

Sumário........................................................................................................................................8

1 Introdução..........................................................................................................................10

1.1 Objetivo......................................................................................................................11

1.1.1 Objetivo geral.....................................................................................................12

1.1.2 Objetivo específico.............................................................................................12

1.2 Justificativas do projeto..............................................................................................12

1.3 Estrutura do relatório.................................................................................................13

2 Conceitos............................................................................................................................14

2.1 Ethernet......................................................................................................................14

2.2 MAC............................................................................................................................15

2.3 ARP.............................................................................................................................15

2.4 IP................................................................................................................................15

2.5 ICMP...........................................................................................................................16

2.6 TCP.............................................................................................................................16

2.7 DHCP...........................................................................................................................17

2.8 HTTP...........................................................................................................................17

2.9 HTML..........................................................................................................................18

2.10 Microcontrolador PIC.................................................................................................19

2.10.1 Arquitetura.........................................................................................................21

2.10.2 Biblioteca “Microchip TCP/IP Stack”...................................................................23

3 Metodologia.......................................................................................................................32

3.1 Escolha da topologia do circuito.................................................................................33

3.2 Confecção da placa.....................................................................................................34

3.2.1 Placa principal.....................................................................................................34

9

Page 10: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3.2.2 Placa reguladora de tensão................................................................................37

3.2.3 Processo de corrosão..........................................................................................39

3.3 Métodos para teste de redes de computadores........................................................40

3.3.1 Prompt de comando do Microsoft Windows......................................................40

3.3.2 Wireshark...........................................................................................................40

4 Resultados..........................................................................................................................41

4.1 Placas de circuito impresso........................................................................................41

4.1.1 Placa principal.....................................................................................................42

4.1.2 Placa reguladora de tensão................................................................................44

4.2 Teste de funcionamento da placa principal................................................................44

4.3 Página HTML...............................................................................................................45

4.4 Teste da biblioteca “Microchip TCP/IP Stack”............................................................46

4.4.1 Teste da biblioteca através do prompt de comandos.........................................47

4.4.2 Teste com o Wireshark.......................................................................................47

4.4.3 Teste dos componentes Ethernet da placa principal..........................................48

4.4.4 Resultado final....................................................................................................50

5 Conclusão...........................................................................................................................52

5.1 Perspectivas................................................................................................................53

6 Referências bibliográficas...................................................................................................54

7 Anexos................................................................................................................................57

ANEXO A – Cronograma do projeto........................................................................................58

ANEXO B – Configuração e utilização da pilha........................................................................59

ANEXO C – APIs......................................................................................................................63

ANEXO D – Sistema de arquivos MPFS...................................................................................66

ANEXO E – Ferramentas computacionais utilizadas...............................................................67

10

Page 11: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

1 INTRODUÇÃO

A importância da automação é cada vez maior no nosso dia a dia. Os engenheiros estão sempre aplicando recursos matemáticos e ferramentas organizacionais em conjunto com algum tipo de maquinário automatizado para criar complexos sistemas para uma gama cada vez maior de aplicações.

A automação teve um impacto notável dentro dos grandes centros de produção ao longo do tempo. Até mesmo os outrora imprescindíveis telefonistas foram substituídos por centrais de comutação e máquinas de resposta automática. Processos médicos, tais como eletrocardiografia, radiografia e análises laboratoriais de genes, células e tecidos, são realizados com uma precisão e velocidade muito maior se feitos por processos automatizados. Caixas automáticos, por exemplo, reduziram a necessidade de uma pessoa ir ao banco para pegar dinheiro e realizar transações. Sucintamente, a automação foi responsável pela transação do mundo agrário do século XIX para o mundo industrializado do século XX.

Os impactos da automação vão além dos processos produtivos propriamente ditos. Existem também impactos sociais, e, dentre eles, destacam-se os vínculos empregatícios. É comum o pensamento de que a automação leva a substituição, em partes ou completa, do homem por uma máquina. Durante a década de 1980, críticos da automação afirmavam que o rápido aumento na industrialização levava ao desemprego. Na verdade, o desemprego é causado mais devido a políticas econômicas e administrativas empresariais, como recorrer à demissão ao invés de realocação de funcionários. Como geralmente as empresas recorrem à política de demissões, neste ponto automação significa desemprego. Por outro lado, em um cenário fora do ramo da produção, a automação implica em mais tempo livre, como é o caso das residências, citando como exemplo uma máquina de lavar roupas, na qual se consegue

11

Page 12: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

uma economia grande de tempo, podendo-se assim dedicar mais tempo para o trabalho e outras tarefas que demandem mais criatividade.

É neste contexto que se encaixa este projeto. Por ser tratar de um sistema de menor porte, inicialmente é voltado para a automação residencial, visando permitir a automatização de tarefas dispendiosas e auxiliar no monitoramento dos lares. Existem várias possibilidades de uso da automação em uma residência. Pode-se, por exemplo, realizar o monitoramento e controle da iluminação, climatização, segurança e de eletrônicos de uma residência. Uma das principais vantagens do uso da automação é a possibilidade de que este controle e monitoramento possa ser feito à distância. Em situações nas quais os moradores esqueceram-se, por um motivo qualquer, de desligar algum eletrodoméstico ou deixaram alguma janela aberta a automação remota também é de grande utilidade. No Brasil, quando os moradores partem para longas viagens, costumeiramente deixa-se alguma lâmpada ligada ou pede-se para que alguém cuide da casa. Estas atividades poderiam ser realizadas automaticamente por meio de um sistema de automação com agendamento de tarefas, seguindo assim um roteiro pré-estabelecido pelo morador, comandando diversas lâmpadas, por exemplo, dando assim a impressão de que os moradores estão em casa. O intuito é facilitar a vida das pessoas, liberando mais tempo que pode ser dedicado tanto para trabalho quanto para lazer.

1.1 OBJETIVO

O objetivo deste projeto é construir com protótipo funcional autônomo, que possa ser conectado a rede mundial de computadores sem o auxílio de um PC. O protótipo também deve ser confeccionado de modo que futuramente suas aplicações possam ser expandidas.

Através deste deve ser possível o monitoramento de periféricos (que a título de demonstração conceitual serão apenas LEDs e botões) via web, bem como o comando remoto dos mesmos. Para tanto o protótipo deve funcionar como um “mini servidor”, com uma página HTML carregada em sua memória, que permita tanto o monitoramento quanto o comando das suas entradas e saídas.

Através deste sistema deve ser possível criar um produto que possa ser capaz de monitorar e controlar um ambiente qualquer. Inicialmente o sistema está mais focado em aplicações residenciais, por estas serem de menor porte. O protótipo que será desenvolvido poderá servir de base para uma futura aplicação comercial porque possui o intuito de demonstrar os conceitos base para a automação remota via web, o monitoramento e a atuação remota.

12

Page 13: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

1.1.1 OBJETIVO GERAL

O objetivo geral deste projeto é construir um protótipo funcional e autônomo, ou seja, ele não deve precisar estar conectado a um PC. Ele também deve estar conectado a rede mundial de computadores e ter uma página HTML carregada em sua memória, sendo assim capaz de realizar acionamentos comandados por um usuário conectado a esta página HTML.

1.1.2 OBJETIVO ESPECÍFICO

Projetar um circuito eletrônico, com alimentação independente, capaz de se conectar a internet

Estudo, adaptação e utilização da biblioteca “Microchip TCP/IP Stack”, fornecida pela Microchip, que possui a maioria das camadas do protocolo TCP/IP já implementadas

Construção de um protótipo funcional cuja finalidade é a demonstração de conceitos

1.2 JUSTIFICATIVAS DO PROJETO

Várias são as motivações para o desenvolvimento deste projeto de final de curso, dentre elas podem ser citadas:

A aplicação dos conhecimentos adquiridos durante todo o período de permanência na Universidade Federal do Paraná

Para a confecção e utilização do projeto é necessário a junção das três grandes áreas da Engenharia Elétrica, a Eletrônica, a Eletrotécnica e as Telecomunicações

A utilidade que o protótipo possui perante a sociedade, sendo um mecanismo que automatiza tarefas e permite o controle remoto de um recinto, ele pode, por exemplo, promover uma economia de energia permitindo que uma lâmpada seja desligada remotamente quando esquecida acesa

A possibilidade de uma futura comercialização do projeto

13

Page 14: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

1.3 ESTRUTURA DO RELATÓRIO

O presente relatório consiste em uma parte introdutória conceitual, que visa enquadrar o projeto em uma realidade para assim mostrar a utilidade do mesmo para a sociedade.

Em seguida será introduzida toda a teoria necessária para o entendimento e compreensão do trabalho. Devido à natureza do projeto, os focos principais deste documento são a biblioteca “Microchip TCP/IP Stack”, da Microchip, e o microcontrolador PIC18F66J65, também da Microchip.

Posteriormente será apresentada toda a metodologia utilizada neste projeto, que vai desde o estudo do esquema de ligação da placa de circuito impresso até os testes que foram realizados no mesmo. Posteriormente serão apresentados os resultados obtidos em todas as fases de desenvolvimento do protótipo, a confecção do layout da placa de circuito impresso, os resultados dos testes e as soluções encontradas para cada um dos problemas encontrados.

Por último será feito um comentário geral sobre o projeto, sobre as dificuldades encontradas e sobre o que este projeto agregou nas vidas dos acadêmicos envolvidos com o projeto. Serão dadas também perspectivas sobre o protótipo em si, como o seu potencial de comercialização e sugestões para melhorias no projeto e, ainda, sugestões para a continuação do mesmo.

14

Page 15: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2 CONCEITOS

A seguir serão apresentados os principais conceitos necessários para o entendimento do trabalho realizado bem como dos resultados obtidos.

2.1 ETHERNET

A Ethernet é uma tecnologia de conexão para redes locais (LANs) e foi originalmente baseada na idéia de computadores se comunicando através de um cabo coaxial compartilhado. A partir deste arranjo conceitualmente simples, a Ethernet continuou evoluindo tornando-se o padrão 802.3 do IEEE e está presente na maioria das LANs atuais. O cabo coaxial foi substituído por cabos de pares trançados e são utilizados equipamentos como hubs e switches para intermediar a conexão entre os computadores. Esta evolução tecnológica propiciou que novos dispositivos fossem desenvolvidos, miniatuarizando e barateando o sistema a ponto de existirem dispositivos de pequeno porte, como microcontroladores, capazes de utilizar a tecnologia.

Esta camada é baseada na idéia de pontos de rede enviando pacotes de mensagens. Cada um destes pontos possui um endereço MAC de 48 bits único, que é usado para se especificar tanto o destino quanto a origem de cada pacote de dados. O padrão 802.3 também define o cabeamento e os sinais elétricos para a camada física, bem como os protocolos e os formatos de pacotes para a camada MAC. [13] [27]

15

Page 16: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.2 MAC

O endereço MAC é um identificador único de 48 bits designado para a maioria dos NICs pelos seus respectivos fabricantes para fins de identificação.

Em redes TCP/IP, o endereço MAC de uma interface de subrede pode ser descoberto a partir do endereço IP, utilizando o ARP, para IPv4, ou o NDP, para IPv6. Em redes de banda larga, tais como a Ethernet, o endereço MAC identifica cada nó de forma única e permite que quadros sejam assinalados para servidores específicos. A camada de enlace do sistema TCP/IP e do modelo OSI são baseadas neste princípio, sendo que as camadas de nível superior se apóiam nela para produzir e gerenciar redes mais complexas. [14]

2.3 ARP

É um protocolo usado para determinar o endereço da camada de enlace de rede (ou endereço físico MAC) a partir do seu endereço de camada de rede (IP). É uma função vital em LANs e também para roteamento de trafego baseado em endereços IP.

O ARP utiliza um formato de mensagens simples que contém um requerimento de identificação de endereço. O tamanho da mensagem ARP depende dos tamanhos dos endereços das camadas superiores e inferiores.

Este protocolo foi desenvolvido para o IPv4, sendo que o seu equivalente para o IPv6, o NDP, não será abordado neste trabalho porque o PIC não o utiliza. [15]

2.4 IP

É o protocolo usado para a comunicação de dados através de uma rede interligada de troca de pacotes de informação. O IP é o protocolo primário na camada de rede e possui a tarefa de entregar os pacotes do servidor de origem para o destinatário baseando-se somente nos seus endereços. Para este propósito o IP define métodos de endereçamento e estruturas para encapsulamento de datagramas.

Provavelmente os aspectos mais completos do IP são o endereçamento IP e o roteamento. Endereçamento refere-se a como os endereços IP são distribuídos e como as subredes são classificadas e agrupadas. Roteamento IP é definido como o encaminhamento dos pacotes IP. [16] [26]

16

Page 17: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.5 ICMP

É um dos protocolos principais do protocolo de internet e é utilizado para fornecer relatórios de informações entre computadores conectados em uma rede para dizer, por exemplo, que um destinatário não pode ser alcançado ou que um determinado serviço está indisponível no momento.

O ICMP depende do IP para realizar suas tarefas mas o seu propósito difere dos protocolos de transmissão, tais como TCP e UDP, porque tipicamente não é utilizado para o envio ou recebimento de dados entre sistemas. As mensagens ICMP podem ser geradas em resposta a erros de datagramas IP e podem ser utilizadas pelos usuários da rede em funções como “ping” e “tracert”. [17]

2.6 TCP

É um dos protocolos principais nos quais se assenta a internet, sendo um dos dois componentes de referência do mesmo (TCP/IP). O IP gerencia as transmissões de baixo nível de computador para computador enquanto a mensagem trilha o seu caminho pela internet. Já o TCP opera em um nível mais alto, preocupado apenas com um sistema de duas pontas finais, como por exemplo, um navegador web e um servidor web.

O TCP provê uma transmissão confiável e ordenada de um conjunto de dados de um programa em um computador para outro programa em outro computador. Suas aplicações são as mais variadas, como, por exemplo, email e transferência de arquivos.

A camada, além de outras tarefas de gerenciamento, controla o tamanho e o fluxo dos pacotes de dados, bem como um controle sobre o congestionamento de tráfego de rede. Ela também representa uma camada intermediária, fazendo a comunicação entre as camadas de nível mais alto (os aplicativos em si) e as camadas de nível mais baixo (que neste caso seria o IP). [18] [25]

17

Page 18: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.7 DHCP

O DHCP é um protocolo de internet que dinamicamente distribui os endereços IP para os clientes conectados em a um determinado segmento de rede de uma LAN. Os endereços IP são providos por um servidor gerindo este sistema de rede. [19]

Dependendo a aplicação, o servidor pode alocar os IPs de três formas distintas:

Atribuição manual – Existe uma tabela que associa um determinado endereço MAC com um endereço IP já pré-programado pelo administrador de rede. Por conseqüência, apenas um número limitado de clientes MAC podem receber as configurações do servidor.

Atribuição automática – O cliente obtém o endereço dentro de um universo de endereços disponíveis especificados pelo administrador.

Atribuição dinâmica – O único método que permite o reutilizo de endereços IP. Quando um computador se conecta a rede, ele deve solicitar um endereço caracterizado por um tempo de vida. Quando o computador for desligado, este tempo de vida eventualmente se esgotará e o endereço IP outrora ocupado estará livre. Se o computador for re-conectado a rede é possível que ele volte com outro IP.

2.8 HTTP

O HTTP é um protocolo de comunicação da camada de aplicação do modelo OSI, que é utilizado para comunicação com as páginas web.

Utilizando o modelo cliente-servidor, o HTTP é baseado na topologia de requisição e resposta. O cliente (o requerente) estabelece uma conexão com um servidor enviando uma requisição contendo identificadores e a versão do protocolo.

A comunicação entre os clientes e os servidores é feita através de mensagens. O cliente envia uma mensagem de requisição de um recurso e o servidor retorna uma resposta. Além disso são definidos oito métodos para indicar a ação a ser realizada por cada recurso específico. [20] [28] As funções são:

GET – Solicita, integral ou parcialmente, algum recurso ou informação HEAD – Solicita os cabeçalhos de algum recurso POST – Envia dados para serem processados pelo recurso indicado PUT – Envia um determinado recurso DELETE – Exclui um determinado recurso TRACE – Ecoa uma solicitação para fins de depuração OPTIONS – Recupera os métodos HTTP aceitos pelo servidor CONNECT – Utilizado para criar, por exemplo, uma conexão segura

18

Page 19: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.9 HTML

É uma linguagem de programação utilizada para criar páginas web. É um método no qual se pode criar documentos estruturados, utilizando estruturas semânticas tais como cabeçalhos, parágrafos e listas. Ela permite que imagens e objetos sejam inseridos numa página possibilitando assim uma maior interatividade da mesma.

Os arquivos HTML são arquivos escritos em ASCII, o que permite que sejam criados em qualquer editor de texto apesar da existência de editores específicos.

Existem diferenças entre os diversos clientes web, de forma que nem todas as marcações e seus correspondentes recursos são suportados simultaneamente por todos eles. Sendo assim, quando um cliente não entende uma determinada marcação, ele simplesmente a ignora.

A estrutura do HTML é baseada em etiquetas, sendo que as principais são:

<html> – Define o início do documento HTML. <head> – Define o cabeçalho do documento, portando informações sobre o mesmo. <body> – Define o corpo do documento, ou seja, o conteúdo principal

Todo documento deve ser identificado como HTML (<html> e </html>), ter uma área de cabeçalho (<head> e </head>) com o nome para o documento (<title> e </title>), um título principal e uma área definida como corpo (<body> e </body>) do conteúdo do documento, como no exemplo a seguir: [21]

<html>

<head><title> Exemplo de HTML </title></head>

<body><h1> Primeiro nível de cabeçalho </h1>Bem-vindo ao HTML<p>Este é o primeiro parágrafo<p>Este é o segundo</body>

</html>

19

Page 20: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10 MICROCONTROLADOR PIC

Neste projeto foi utilizado o microcontrolador PIC18F66J65, que pertence à família PIC18F97J60. Este modelo foi escolhido de acordo com os critérios estabelecidos no capítulo 3.1, “Escolha da topologia do circuito”. O dispositivo possui as seguintes características principais: [1]

64 pinos, com 39 pinos de entrada e saída mais 11 conversores analógico-digitais Memória RAM de 3808 Bytes e memória flash de 96 KB Comunicação SPI / I²C, EUSART Oscilador secundário para RTC Comparadores e saídas PWM Módulo integrado Ethernet

o 10 Mbpso Buffer de recepção / transmissão de 8 KBo 2 LEDs indicadores de atividade

Na figura Figura 1 segue um diagrama com a descrição completa dos pinos do Microchip PIC18F66J65.

Figura 1 – PIC18F66J65

Fonte – Datasheet do PIC18F66J65 [1]

20

Page 21: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Abaixo, na Tabela 1, segue uma descrição da utilização de todos os pinos do PIC18F66J65:

Pino Função Utilização1 RE1 / P2C Não utilizado2 RE0 / P2D LED de teste3 RB0 / INT0 / FLT0 LED de teste4 RB1 / INT1 LED de teste5 RB2 / INT2 LED de teste6 RB3 / INT3 LED de teste7 MCLR Reinicialização8 RG4 / CCP5 / P1D Não utilizado9 VSS Terra

10 VDDCORE / VCAP Alimentação do núcleo do PIC (2,5 V)11 RF7 / SS1 Não utilizado12 RF6 / AN11 Não utilizado13 RF5 / AN10 / CVREF Não utilizado14 RF4 / AN9 Não utilizado15 RF3 / AN8 Não utilizado16 RF2 / AN7 / C1OUT Não utilizado17 RF1 / AN6 / C2OUT Não utilizado18 ENVREG Aterrado, regulador interno de tensão desabilitado19 AVDD 3,3 V20 AVSS Terra21 RA3 / AN3 / VREF+ Não utilizado22 RA2 / AN2 / VREF- Não utilizado23 RA1 / AN1 / LEDB LED Ethernet24 RA0 / AN0 / LEDA LED Ethernet25 VSS Terra26 VDD 3,3 V27 RA5 / AN4 Não utilizado28 RA4 / T0CKI Não utilizado29 RC1 / T1OSI / ECCP2 / P2A Oscilador para RTC30 RC0 / T1OSO / T13CKI Oscilador para RTC31 RC6 / TX1 / CK1 Não utilizado32 RC7 / RX1 / DT1 Não utilizado33 RC2 / ECCP1 / P1A Não utilizado34 RC3 / SCK1 / SCL1 Não utilizado35 RC4 / SDI1 / SDA1 Não utilizado36 RC5 / SDO1 Não utilizado37 RB7 / KBI3 / PGD Pino de gravação38 VDD 3,3 V39 OSC1 / CLKI Oscilador principal40 OSC2 / CLKO Oscilador principal41 VSS Terra42 RB6 / KBI2 / PGC Pino de gravação43 RB5 / KBI1 Não utilizado44 RB4 / KBI0 Botão 145 VSSRX Terra46 TPIN- Ethernet – Entrada diferencial -47 TPIN+ Ethernet – Entrada diferencial +48 VDDRX 3,3 V

21

Page 22: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

49 VDDTX 3,3 V50 TPOUT- Ethernet – Saída diferencial -51 TPOUT+ Ethernet – Saída diferencial +52 VSSTX Terra53 RBIAS Resistência de 2,26 kΩ54 VDDPLL 3,3 V55 VSSPLL Terra56 VSS Terra57 VDD 3,3 V58 RD2 / CCP4 / P3D Não utilizado59 RD1 / ECCP3 / P3A Futuras aplicações – Expansão60 RD0 / P1B Futuras aplicações – Expansão61 RE5 / P1C Futuras aplicações – Expansão62 RE4 / P3B Futuras aplicações – Expansão63 RE3 / P3C Futuras aplicações – Expansão64 RE2 / P2B Futuras aplicações – Expansão

Tabela 1 – Pinos do PIC18F66J65

2.10.1 ARQUITETURA

2.10.1.1 Arquitetura do PIC

O circuito integrado PIC é um microcontrolador fabricado pela Microchip, que possui todos os circuitos e periféricos necessários para a existência de um sistema digital programável autônomo.

O dispositivo utiliza a arquitetura interna “Harvard”, que se caracteriza pela utilização de dois barramentos internos, um para o tráfego de dados e outro para o tráfego de instruções. Isto implica que, enquanto uma ação está sendo executada, a próxima já pode ser buscada. Este paralelismo permite uma velocidade muito maior na execução de instruções em geral.

O PIC utiliza uma arquitetura de comandos denominada RISC, que é caracterizada por um conjunto de instruções reduzido, sendo que cada instrução possui um mesmo tempo de execução reduzido.

22

Page 23: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10.1.2 Arquitetura do módulo Ethernet

Todos os membros da família PIC18F97J60 possuem um módulo Ethernet integrado, incluindo implementações tanto dos módulos PHY quanto MAC, sendo que, para ser usado, são necessários apenas dois transformadores de pulso e alguns componentes passivos, como está representado na Figura 2.

Figura 2 – Esquema de ligação física do módulo Ethernet

Fonte – Datasheet do PIC18F66J65 [1]

O módulo atende a todas as especificações da IEEE 802.3 para conectividade 10-BaseT utilizando redes de pares trançados. Também existe um módulo DMA interno para uma maior taxa de transferência de dados e cálculos de soma de verificação de IP assistidos por hardware. Dois LEDs estão disponíveis para indicação de conectividade e atividade. A Figura 3 representa um diagrama de blocos do módulo Ethernet presente no dispositivo.

23

Page 24: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Figura 3 – Diagrama de blocos do módulo Ethernet

Fonte – Datasheet do PIC18F66J65 [1]

Como está representado na Figura 3, o módulo Ethernet é composto de cinco partes principais:

1. O módulo transdutor PHY que codifica e decodifica os dados analógicos presentes na interface de pares trançados e os envia ou os recebe da rede

2. O módulo MAC que implementa a lógica MAC, conforme a IEEE 802.3, para controlar o PHY

3. Um buffer independente de 8 KB para armazenamento de pacotes que foram recebidos e que estão para serem transmitidos

4. Um árbitro para estabelecer o acesso para o buffer quando pedidos são feitos do processador central do microcontrolador, da DMA ou dos blocos de transmissão ou recepção

5. A interface de registradores que funciona como um interpretador de comandos e sinais internos entre o módulo e os SFRs do microcontrolador

2.10.2 BIBLIOTECA “MICROCHIP TCP/IP STACK”

Assim como o modelo de referência TCP/IP, o “Microchip TCP/IP Stack” divide a pilha TCP/IP em múltiplos níveis, como está exemplificado na Figura 4. Os códigos fonte para cada uma das camadas estão em arquivos separados, enquanto as APIs são definidas através de cabeçalhos a serem incluídos no código fonte do programa. Diferentemente do modelo de

24

Page 25: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

referência TCP/IP, muitas das camadas implementadas do “Microchip TCP/IP Stack” acessam diretamente uma ou mais camadas que não estão necessariamente diretamente abaixo dela mesma.

Figura 4 – Comparação entre os modelos TCP/IP de referência e Microchip

Fonte – Application Notes AN833 [2]

O “Microchip TCP/IP Stack” é implementado como uma pilha “viva”, ou seja, algumas das camadas devem ser capazes de operar em algum tempo específico de forma assíncrona. Para ser capaz de atender este requisito e ainda manter uma relativa independência da aplicação principal que a utiliza, é usada uma técnica conhecida chamada de “cooperação multitarefa”. Neste tipo de sistema existe mais de uma tarefa, sendo que cada uma delas faz o seu trabalho e retorna o controle para que assim a próxima tarefa possa ser concluída. Neste contexto, “StackTask” e “ARPTask” são tarefas cooperativas.

Vale ressaltar que o “Microchip TCP/IP Stack” não possui todos os módulos que normalmente estão presentes em uma pilha TCP/IP. Apesar de eles não estarem presentes, eles podem ser implementados como um módulo separado, caso isto se faça necessário.

Para este projeto está sendo utilizada a versão 5.10 da biblioteca “Microchip TCP/IP Stack”, que está disponível na página da Microchip [6]. Abaixo segue uma breve descrição de como funciona cada uma das camadas presentes no sistema, segundo AN833 [2].

25

Page 26: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10.2.1 Camada MAC

A pilha utiliza a própria SRAM presente no NIC como um buffer de armazenamento até que um módulo de nível superior o leia. Ele também faz os cálculos de soma de verificação necessários para o IP no próprio buffer da SRAM da NIC. Além do buffer FIFO, que é gerenciado pelo próprio NIC, a camada MAC ainda gerencia a sua própria fila de transmissão. Usando esta fila, o usuário pode transmitir uma mensagem e pedir para que o MAC não a exclua, permitindo assim, caso seja necessário, que a mensagem possa ser retransmitida. O usuário pode especificar o tamanho do buffer de transmissão, fila de transmissão e fila de recebimento através de definições presentes em código na linguagem de programação C. [2]

2.10.2.2 Camada ARP

A camada ARP do “Microchip TCP/IP Stack” é implementada a partir de dois módulos, o ARP e o ARPTask. O ARP, executado pelo arquivo “ARP.c”, cria as primitivas do ARP. O ARPTask, executado pelo arquivo “ARPTask.c”, utiliza por sua vez as primitivas e fornece os serviços ARP completos.

O ARPTask é implementado como um máquina de estados cooperativos, respondendo aos pedidos do ARP do servidor remoto. Ele também mantém um cachê de um nível para armazenar as respostas do ARP e retornar a um nível mais alto quando o momento for oportuno. O ARPTask não implementa um mecanismo de repetição, então as camadas superiores ou aplicativos devem detectar condições de tempo de transmissão expirado e responder de acordo.

O módulo ARPTask opera em dois modos, o modo “servidor” e o modo “servidor/cliente”. No modo “servidor”, o código referente às solicitações do ARP não são compiladas porque o servidor precisa apenas responder as solicitações ARP. Devido a necessidade de gerar as solicitações ARP, no modo “servidor/cliente” a porção do código que gera as solicitações é habilitada e compilada. Geralmente, se a pilha é usada para aplicações com algum tipo de servidor (tal como servidores HTTP ou servidores FTP), o ARPTask deve ser compilado no modo servidor para se reduzir o tamanho de memória ocupada pelo código. [2]

26

Page 27: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10.2.3 Camada IP

A camada IP no “Microchip TCP/IP Stack” é implementada através do arquivo “IP.c”. O arquivo de cabeçalho “IP.h” define os serviços providos pela camada.

Nesta arquitetura, a camada IP é passiva, ou seja, ela não responde a pacotes de dados IP. Ao invés disso, camadas de níveis mais altos (por exemplo, o TCP) usam os datagramas IPs para fazer o gerenciamento e posteriormente interpretar e realizar as ações apropriadas.

A especificação do protocolo IP requer que o servidor local crie um identificador único para cada pacote transmitido por ele. O identificador permite que, por exemplo, a camada TCP identifique pacotes, reordene-os caso necessário e descarte os duplicados. A camada IP do “Microchip TCP/IP Stack” possui uma variável de 16 bits para rastrear identificadores de pacotes. [2]

2.10.2.4 Camada TCP

A camada TCP do “Microchip TCP/IP Stack” é implementada pelo arquivo “TCP.c”. O arquivo de cabeçalho “TCP.h” define os serviços providos pela camada. Nesta arquitetura, a camada TCP é uma camada ativa. Ela busca pacotes TCP no buffer de armazenamento e responde para o servidor remoto de acordo com a máquina de estados TCP. O módulo TCP também é implementado como uma tarefa cooperativa, permitindo a realização de tarefas automaticamente sem que a aplicação principal precise tomar conhecimento delas.

O “TCP.h” disponibiliza os serviços de soquete TCP e esconde os manipuladores de pacotes TCP de quem os chamou. O número de soquetes é limitado apenas pela memória disponível e pelo compilador utilizado. Com mais de um soquete, aplicações de alto nível podem manter conexões TCP múltiplas e simultâneas e, além disso, pode haver mais de uma aplicação utilizando esta camada. Cada soquete utiliza aproximadamente 36 bytes e cada soquete adicional aumenta o tempo total de processamento da camada TCP.

A camada TCP do “Microchip TCP/IP Stack” possui a maioria das máquinas de estado propostas pela RFC793 [25]. Ele também possui implementado a tentativa automática de re-envio, bem como operações temporizadas. No caso de uma tentativa automática de re-envio, cada soquete do buffer de transmissão fica reservado enquanto um sinal de “recebido” do servidor remoto for detectado. Este tipo de design cria de maneira eficaz uma janela de transmissão para um segmento TCP. [2]

27

Page 28: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10.2.5 Servidor HTTP Microchip

O servidor HTTP é implementado como uma tarefa cooperativa que coexiste com o “Microchip TCP/IP Stack” e o aplicativo principal do usuário. O servidor em si é implementado através do arquivo fonte “http.c”.

O servidor HTTP incorpora as seguintes funções principais:

Suporte a múltiplas conexões HTTP Contém um sistema simples de arquivos (MPFS) Suporta páginas web alocadas tanto na memória interna de programa quanto em uma

memória EEPROM serial externa Inclui um programa para computadores para criar imagens MPFS a partir de um

diretório dado Suporte ao método HTTP “GET” (outros métodos também podem ser adicionados) Suporte a um CGI modificado para invocar funções predefinidas de dentro do browser

remoto Suporta geração de conteúdo de páginas web dinâmicas

Também é necessário gerar páginas web e depois inserí-las em uma imagem em formato compatível para armazenamento, conforme Figura 5. Para o servidor HTTP do “Microchip TCP/IP Stack”, este formato é o MPFS. Caso seja necessário o armazenamento das páginas web em uma memória externa, algum método de programação deve ser incluído na aplicação, especialmente se é esperado que o conteúdo da mesma possa mudar.

Figura 5 – Diagrama de implementação de um servidor HTTP em um microcontrolador PIC

Fonte – Arquivo de ajuda da biblioteca “Microchip TCP/IP Stack” [6]

O servidor HTTP utiliza o arquivo “index.htm” como página web padrão. Se um cliente remoto (no caso o navegador) acessar o servidor HTTP pelo seu endereço IP ou apenas pelo nome do domínio, a página que será exibida é a “index.htm”. Isto requer que todos os aplicativos incluam um arquivo chamado “index.htm” como parte da imagem MPFS. Se

28

Page 29: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

necessário, o nome deste padrão pode ser alterado mudando a definição do compilador HTTP_DEFAULT_FILE_STRING, localizado no arquivo “http.c”.

O servidor HTTP faz uso de vários módulos, tais como TCP, StackTask, IP, ICMP, MAC e Tick. Além destes, outros arquivos auxiliares também são importantes para a implementação de um servidor HTTP com a biblioteca “Microchip TCP/IP Stack”. Os principais são:

“MainDemo” – Descreve a rotina principal gravada no microcontrolador – Função “Main” na linguagem de programação C

“TCPIPConfig” – Permite a configuração de quais módulos serão utilizados na aplicação, que neste caso são: TCP/IP, ARP, ICMP, DHCP, ICMP e HTTP2

“HardwareProfile” – Arquivo onde são feitas as definições dos pinos bem como a dos bits de configuração do microcontrolador, sendo que nesta a aplicação o PIC está configurado para utilizar a pilha PLL interna, a freqüência de clock do núcleo é de 41,67 MHz, com o Watchdog desabilitado

“CustomHTTPApp” – Descreve as respostas do servidor para as diversas solicitações dos clientes

“MPFSImg2” – Contém as páginas HTML feitas para inserção das mesmas na memória do PIC

2.10.2.6 Gerenciador de Pilha

O “Microchip TCP/IP Stack” é uma coleção de diferentes módulos. Alguns módulos, tais como IP, TCP, UDP e ICMP, devem ser chamados quando um pacote correspondente chegar. Para ser usado, deve-se seguir uma rotina para se assegurar que os módulos serão chamados em momentos apropriados. A tarefa de gerenciamento dos módulos da pilha é a mesma, independente da lógica de programação do aplicativo principal.

Para não sobrecarregar o aplicativo principal com a tarefa do gerenciamento dos módulos individuais, o “Microchip TCP/IP Stack” possui um uma camada especial de aplicação, o “StackTask”, ou o gerenciador de pilha. Este módulo é implementado através do arquivo fonte “StackTsk.c”. O StackTask é implementado como uma tarefa cooperativa,ou seja, quando é dado o tempo de processamento, ele controla a camada MAC para a validação de pacotes de dados. Quando um é recebido, ele é decodificado e direcionado para o módulo apropriado para o seu processamento.

É importante ressaltar que o gerenciador de pilha não faz parte do “Microchip TCP/IP Stack”. Ele é fornecido juntamente com a pilha para que o aplicativo principal não precise fazer todo o gerenciamento dos módulos, além das suas próprias tarefas. [2]

29

Page 30: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

2.10.2.7 Programa monitor

Para o seu correto funcionamento, o aplicativo principal deve chamar as funções previamente implementadas pela biblioteca “Microchip TPC/IP Stack” em uma determinada seqüência. O esquema a seguir demonstra, de forma simplificada, quais as principais funções que devem ser chamadas e em qual ordem.

A rotina principal escrita no microcontrolador é descrita no arquivo “MainDemo.c”. Inicialmente são feitas algumas inicializações antes da entrada do programa na rotina monitora.

As inicializações feitas são as seguintes:

InitializeBoard() – Definição do estado inicial dos LEDs de teste, configuração do uso da PLL interna, habilitação do bit de interrupção global

TickInit() – Inicialização do modulo “Tick”, que é um contador que faz uso do TIMER 1 para contagem de tempo desde micro-segundos até anos, conforme a configuração feita

MPFSInit() – Inicializa acesso a memórias externas se necessário InitAppConfig() – Inicialização das variáveis de rede com os valores previamente

configurados no arquivo “TCPIPConfig” StackInit() – A biblioteca faz uso de um gerenciador para que os módulos sejam

chamados no momento apropriado e, no caso particular desta aplicação, são chamadas as seguintes funções de inicialização:

o MacInit() – Esta função faz a inicialização e configuração necessárias para o funcionamento da camada física do modulo Ethernet presente

o ARPInit() – Inicializa o módulo ARPo TCPInit() – Inicialização dos buffers de memória e de todas as soquetes como

fechadaso DHCPInit() – Utilizando-se o DHCP, a placa é iniciada em modo de configuração

para obtenção dos parâmetros de redeo HTTPInit() – Coloca a máquina de estado para as conexões e as soquetes em

escuta, sendo que as soquetes são abertas na porta HTTP em modo servidor TCP

Botao_Init() – Habilitação da interrupção “PORTB Interrupt-on-Change”, para uso do botão em uma interrupção

30

Page 31: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Na rotina monitora “While(1)” são realizadas, principalmente, as seguintes tarefas:

LED monitor – O LED0 é piscado com o auxilio do Tick e LED1 é acionado por interrupção do botão 1 e desligado após 4 segundos

StackTask() – Esta função verifica a chegada de novos pacotes e os direciona para o módulo apropriado, sendo chamada repetidamente para que as respostas sejam dadas o mais rápido possível e, sendo assim, conforme o tipo do pacote são chamadas as funções “ARPProcess” ou “ICMPProcess” ou “TCPProcess”

o DHCPTask() – Esta função realiza tarefas periódicas necessárias ao módulo DHCP, tais como o envio e o recebimento de mensagens envolvendo a obtenção ou manutenção das configurações de rede

o TCPTick() – Tarefas TCP relativas a tempo (retransmissão, envio do ACK, fechamento de conexão, entre outros)

o ARPProcess() – Processa os pacotes ARP recebidos, analisando-os e processando-os se estes pacotes ARP forem uma resposta a alguma solicitação da placa ou se são algum outro tipo de solicitação

o ICMPProcess() – Processa pacotes ICMP do buffer de recepção, sendo passado como parâmetro o solicitante e gerando o eco de resposta para solicitações do comando ping

o TCPProcess() – Processa pacotes TCP recebidos StackApplication() – Esta função também deve ser chamada periodicamente para

garantir respostas rápidas, chamando as aplicações implementadas sendo que, para tal, são chamadas as seguintes funções:

o HTTPServer() – Realiza tarefas periódicas para o módulo HTTP, verificando as conexões abertas se não existe nenhuma tarefa pendente, devendo ser chamada periodicamente para que todas as conexões abertas ou novas sejam atendidas em um tempo razoável, sendo que. para estas ações a função chama outra função “HTTPProcess()”, que processa e envia as respostas

o DiscoveryTask() – Envio de pacotes UDP para a porta 30303 quando o protótipo recebeu um IP através do DHCP

AnnounceIP() – Envio de pacotes UDP broadcast para a porta 30303 quando o protótipo recebeu um IP por DHCP

Abaixo segue, na Figura 6, um fluxograma simplificado do funcionamento do programa monitor implementado no PIC.

31

Page 32: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Figura 6 – Fluxograma do programa monitor

32

Page 33: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3 METODOLOGIA

A proposta do trabalho é permitir aos usuários uma maneira de, através de um computador conectado à internet, comandar dispositivos e verificar o status de outros, por exemplo, os aparatos de iluminação presentes na casa do utilizador. Para tanto deve ser desenvolvido um dispositivo controlador, que deve estar conectado a uma rede de dados e, através dela, permitir que o usuário final comande e monitore o sistema alvo, que é o sistema que se espera monitorar e controlar. Para a presente aplicação tratam-se de LEDs e botões. Para fins de teste e confirmação de funcionamento, este sistema pode ser conectado a uma rede gerenciada por um Switch e monitorada com um computador, como está exemplificado na Figura 7.

Figura 7 – Esquema de funcionamento proposto no presente trabalho

33

Page 34: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3.1 ESCOLHA DA TOPOLOGIA DO CIRCUITO

Para a confecção de um protótipo de um dispositivo controlador haviam alguns pontos que deveriam ser estudados em relação à topologia do circuito. A escolha fundamental do uso do PIC18F66J65 foi feita logo no início do projeto, porque o uso de um microcontrolador em conjunto com um módulo Ethernet externo é uma solução mais cara e representa uma fonte a mais de possíveis problemas entre a interface do modulo com o microcontrolador.

A segunda decisão fundamental foi a escolha do uso da própria memória interna do PIC para o armazenamento das paginas HTML, o que foi possível por se tratar de um PIC com uma grande quantidade de memória interna disponível (96 KB). O projeto permite a implementação somente de páginas web simples, sem arquivos ou imagens grandes, porém mesmo sem estes recursos é perfeitamente possível a demonstração do funcionamento do módulo.

O PIC18F66J65 é disponível apenas no encapsulamento TQFP de 64 pinos com 0,5 mm de passo entre os pinos. Por conveniência foi utilizada uma placa de conversão do padrão de encapsulamento TQFP para o padrão de encapsulamento DIP, facilitando assim todo o processo de corrosão e solda.

O conector RJ45 escolhido foi o MAG45. Este conector cumpre com as especificações descritas no datasheet do PIC para conexão e uso do modulo Ethernet, pois contém os transformadores de desacoplamento necessários internamente. A Figura 8 representa o diagrama interno de conexão do MAG45.

Figura 8 – Diagrama interno do conector RJ45 MAG45

Fonte – Datasheet do MAG45

A topologia do circuito foi definida com base nas especificações de funcionamento do microcontrolador pelo seu datasheet. Com a topologia e os componentes principais definidos foi possível então começar a definição do esquemático que seria utilizado para a confecção do protótipo propriamente dito.

34

Page 35: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3.2 CONFECÇÃO DA PLACA

Foi utilizado o programa EAGLE para realizar a confecção das placas de circuito impresso durante o projeto. Além da placa principal, também foi necessária a confecção de outra placa para fins de regulação de tensão, porque o protótipo precisa ser alimentado em níveis de tensão específicos.

3.2.1 PLACA PRINCIPAL

Através do software de confecção de placas de circuito impresso EAGLE inicialmente fez-se o projeto da placa de circuito integrado. Como foi utilizada uma placa de conversão do padrão de encapsulamento TQFP 64 pinos para o padrão de encapsulamento DIP e este foi feito “sobre medida”, também foi preciso criar um componente no EAGLE com as dimensões corretas do mesmo, conforme Figura 9 e Figura 10.

Figura 9 – Conversor TQFP 64 pinos DIP

Figura 10 – Componente do conversor TQFP DIP em ambiente EAGLE

35

Page 36: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

O esquemático completo proposto, vide Figura 11, foi planejado para ser utilizado tanto para a gravação quanto para a utilização do projeto em funcionamento. O esquemático contempla os componentes externos necessários para o funcionamento do modulo Ethernet e do núcleo de processamento do PIC, além de LEDs indicativos e botões.

Figura 11 – Esquemático do circuito da placa principal

Fonte – Datasheet do PIC18F66J65 [1]

Na Figura 11 acima estão numerados os seguintes componentes:

1. ICSP (Amarelo) – Conectores para a programação do microcontrolador2. LEDs (Roxo) – Utilizados na depuração do código e simulação de acionamentos3. RESET (Alaranjado) – Botão de reinicialização conectado ao pino MCLR do PIC4. RJ45 (Vermelho) – Conector RJ45 para aplicações Ethernet5. Oscilador (Verde escuro) – Oscilador do PIC de 25 MHz6. Botão 1 (Verde claro) – Botão utilizado para simular saídas da placa7. LEDs (Azul) – Indicadores de status e transmissão/recepção de pacotes

36

Page 37: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Com o esquemático pronto partiu-se para o desenvolvimento da placa. Tanto para diminuir o efeito de ruídos e perturbações na placa quanto para facilitar a corrosão, optou-se pela utilização de uma malha de terra. A Figura 12 mostra a versão definitiva da placa.

Figura 12 – Layout da placa principal

A Tabela 2 apresenta a listagem completa dos componentes que foram utilizados na placa principal.

Componente QuantidadePIC18F66J65 1Conector MAG45 1Capacitor cerâmico 0,1 µF 11Capacitor de tântalo de 10 µF 1LED 3 mm Verde 7Resistor ¼ W de 180 Ω 7Resistor ¼ W de 4,7 kΩ 1Resistor ¼ W de 1 kΩ 1Resistor ¼ W de 10 kΩ 1Resistor ¼ W de 470 Ω 1Oscilador de cristal 32 kHz 1Capacitor cerâmico 27 pF 2Capacitor cerâmico 33 pF 2Oscilador cristal 25 MHz 1Resistor SMD 49,9 Ω 4

37

Page 38: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Indutor SMD 60 Ω 1Resistor SMD 1 kΩ 1Resistor SMD 1,26 kΩ 1Placa conversora TQFP64 DIP 1Barra de contatos macho 50 pinos 2Barra de contatos fêmea 20 pinos 4Jump de 2 contatos 1Botão de contato normalmente aberto 2Par macho / fêmea para conector de alimentação 3 pinos 1Cabo de silicone preto 1 metroCabo de silicone vermelho 1 metro

Tabela 2 – Lista de componentes da placa principal

3.2.2 PLACA REGULADORA DE TENSÃO

A segunda placa de circuito impresso a ser confeccionada foi a placa reguladora de tensão. Esta placa fornece dois níveis de tensão para a placa principal, sendo que um dos níveis é de 2,5 V, utilizado na alimentação do núcleo do microcontrolador, e o outro de 3,3 V, para o restante da placa.

Os níveis de tensão necessários foram obtidos com o auxílio do regulador de tensão LM317 com o encapsulamento TO-220, que possibilita a dissipação de até 20 W, permitindo assim o fornecimento de correntes de até 1,5 A, suprindo assim com folga as necessidades do projeto. De acordo com o datasheet do LM317, a tensão de entrada suportada vai de 1,2 V até 25 V e a variação da tensão de saída é obtida com a alteração da relação de resistências ligadas ao pino ADJ, como esquematizado na Figura 13.

Figura 13 – Esquemático da placa reguladora de tensão

Fonte – Datasheet do regulador de tensão LM317

38

Page 39: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

O resultado final da placa reguladora de tensão está mostrado na Figura 14.

Figura 14 – Versão final da placa reguladora de tensão

A Tabela 3 mostra a lista completa dos componentes utilizados na confecção da placa reguladora de tensão.

Componente QuantidadeBorne 2 contatos 1Capacitor cerâmico 0,1 µF 2Regulador de tensão LM317 TO-220 2Resistor ¼ W 220 Ω 3Resistor ¼ W 330 Ω 1Resistor ¼ W 30 Ω 1Capacitor eletrolítico 22 µF 2Dissipador de calor 1

Tabela 3 – Lista de componentes da placa reguladora

Como um dos intuitos do projeto era o de construir um protótipo que pudesse ser ligado diretamente a uma tomada comum e os níveis de tensão de entrada do LM317 são incompatíveis com a tensão presente na rede de distribuição de energia, foi utilizada uma fonte retificadora que opera com 127 V e 220 V e os reduz para 12 V.

Por motivos econômicos esta fonte reguladora foi reaproveitada de um aparelho antigo que um dos integrantes da equipe possuía.

39

Page 40: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3.2.3 PROCESSO DE CORROSÃO

Primeiramente foi corroída a placa principal e posteriormente a placa reguladora de tensão. Para a corrosão das placas foi utilizado o método descrito pelo professor Dr. Ewaldo Luiz De Mattos Mehl [7]. Os materiais necessários para o processo são:

Um PC com o programa EAGLE Uma impressora laser para impressão da matriz Um ferro de passar roupas sem vapor A placa de circuito impresso cortada nas dimensões desejadas Uma folha de filme tipo poliéster, glossy paper ou couché Uma caneta do tipo permanente Fita crepe Percloreto de ferro em pó ou líquido Recipientes de plástico Um pedaço de palha de aço Detergente de cozinha Papel-toalha Água

Primeiramente no programa EAGLE devem ser selecionados as seguintes camadas para a impressão da matriz: “16-Bottom”, “17-Pads”, “18-Vias” e “20-Dimension”. A impressão deve ser feita em uma impressora laser e pode ser feita na escala 1:1. Optou-se pela utilização do papel couché, utilizando a face mais lisa para o lado da impressão.

O próximo passo é a limpeza da placa a ser corroída com o auxílio de palha de aço para a retirada do óxido presente. Após esta limpeza a placa deve ser lavada com detergente em água corrente e secada com papel-toalha.

Com o auxilio da fita crepe deve-se fixar a placa em uma superfície plana de madeira juntamente com o papel couché impresso devidamente posicionado e, com o ferro de passar roupa, aquecê-la uniformemente por no mínimo 5 minutos. Depois com a placa já fria, para facilitar a retirada do papel que fica grudado na placa, pode-se mergulhá-la em água com detergente e secá-la preferencialmente com papel-toalha. Com a solução com percloreto de ferro preparada, deve-se mergulhar a placa até que todo o cobre seja corroído.

Por fim a tinta que restou na placa pode ser retirada com thinner e a placa já pode ser furada para receber os componentes. Uma proteção adicional pode ser feita com a aplicação de um verniz feito com breu na placa.

40

Page 41: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

3.3 MÉTODOS PARA TESTE DE REDES DE COMPUTADORES

3.3.1 PROMPT DE COMANDO DO MICROSOFT WINDOWS

Inicialmente foram utilizados alguns comandos básicos de redes de computadores presentes na ferramenta do prompt de comando do Microsoft Windows. Estes comandos permitem ao seu usuário uma visão do status geral da rede na qual o computador utilizado está conectado, bem como quais dispositivos estão conectados a ela, além de outras funcionalidades adicionais.

Os principais comandos utilizados foram:

arp – Exibe e modifica as tabelas de conversão de endereços IP para endereços físicos MAC utilizadas pelo ARP

getmac – Permite a visualização dos endereços MACs dos adaptadores de redes que estão em um determinado sistema

ping – Permite verificação se um dispositivo está ativo tentando estabelecer alguma comunicação com o mesmo, utilizando o protocolo ICMP

tracert – Processo de rastreamento de rota, ou seja, a obtenção do caminho que um determinado pacote de dados atravessa numa rede de computadores até chegar em seu destino

3.3.2 WIRESHARK

Em conjunto com outras ferramentas, foi utilizado o software Wireshark para a verificação da rede na qual estava conectado o protótipo. O Wireshark é um programa que analisa o tráfego de rede, organizando-o por protocolos, permitindo ainda a utilização de filtros. Sendo assim, é então possível observar o tráfego de dados de uma rede e saber as informações sobre os pacotes que entram e saem do computador.

Colocando o protótipo e um computador conectados a uma mesma rede, com o auxílio do Wireshark, é feito o monitoramento da rede em questão enquanto os dispositivos tentam a comunicação entre si. Com isto é possível saber se os dispositivos estão efetivamente tentando realizar alguma comunicação ou se existe algum problema na rede.

41

Page 42: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

4 RESULTADOS

Terminada a fase de definição dos conceitos e tecnologias que seriam utilizados no projeto, iniciou-se a fase de construção do protótipo propriamente dito. Primeiramente foi feito o desenvolvimento da placa de circuito impresso, seguido dos testes na mesma. Foram constatados alguns problemas que foram solucionados conforme os tópicos subseqüentes.

Após diversos testes foi constatado que o PIC que estava sendo utilizado primeiramente estava danificado. Após a substituição do mesmo, o protótipo passou a funcionar de forma integral, sendo reconhecido perfeitamente nas redes em que foi testado.

Nos tópicos seguintes será feito o detalhamento de cada uma das etapas que foram necessárias até a obtenção do protótipo funcional.

4.1 PLACAS DE CIRCUITO IMPRESSO

Para a realização do projeto foram feitas duas placas de circuito impresso, sendo que uma é a placa principal, contendo o PIC e todos os componentes necessários para o bom funcionamento do mesmo bem como do módulo Ethernet, e outra é a placa reguladora de tensão, com a finalidade de fornecer os níveis de tensão necessários para o funcionamento do conjunto.

A placa reguladora de tensão pode ser alimentada com valores de tensão que variam de 1,2 VDC até 25 VDC aproximadamente e, por este motivo, foi utilizada uma fonte reguladora

42

Page 43: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

de tensão externa que converte 127 VAC ou 220 VAC em 12 VDC, possibilitando assim que o sistema possa ser ligado em qualquer tomada residencial comum. A Figura 15 mostra o resultado final, as duas placas juntamente com a fonte de tensão externa.

Figura 15 – Componentes do projeto

Nos tópicos subseqüentes serão detalhados os processos e a problemática envolvida na confecção de cada uma das placas que compõem o sistema controlador desenvolvido.

4.1.1 PLACA PRINCIPAL

Com o auxílio do graduando Marcos Vinicius Lopes Paixão, o PIC foi soldado na placa conversora utilizando-se um soprador térmico. Logo em seguida os contatos foram testados com um multímetro e conferidos com um microscópio ótico para uma melhor visualização dos mesmos.

Após o processo de corrosão e de solda dos componentes na placa como descrito no capítulo 3.2.3, a mesma foi conectada ao gravador de microcontroladores. Ocorria, porém, um erro na identificação do PIC pelo gravador, ou seja, o gravador não conseguia reconhecer o dispositivo que estava conectado a ele. A possibilidade de algum problema do próprio

43

Page 44: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

gravador foi descartada após teste de gravação de outros PICs, teste este realizado com sucesso. O PIC18F66J65, contudo, continuava a não ser identificado pelo gravador. As possíveis causas levantadas foram:

O PIC estar queimado Problema na alimentação do circuito Erro no layout da placa Solda fria

Primeiramente foram trabalhadas as possíveis soluções mais simples. Foi feita a verificação da alimentação e troca do cabo, por este ser muito longo e suscetível a auto-indução. Também se fez a troca do capacitor conectado no pino de alimentação do núcleo do microcontrolador por um mais adequado de baixa resistência feito de tântalo, como era indicado pelo datasheet do PIC.

Mesmo com todas as medidas tomadas, o PIC funcionou poucas vezes de forma instável e intermitente. Com o intuito de resolver o problema algumas soldas foram feitas, mas a solução efetiva foi desabilitar o regulador interno de tensão do PIC com a conexão do pino ENVREG ao terra do circuito e, logo em seguida, fazendo a alimentação direta do núcleo do PIC, utilizando 2,5 V no pino VCORE do microcontrolador.

A Figura 16 mostra a placa principal finalizada.

Figura 16 – Placa principal do protótipo

4.1.2 PLACA REGULADORA DE TENSÃO

44

Page 45: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

A placa principal inicialmente seria alimentada somente com 3,3 V, mas devido a um problema com o regulador de tensão interno do microcontrolador, uma placa reguladora de tensão teve que ser montada para fornecer, além dos 3,3 V inicialmente necessários, os 2,5 V para alimentação do núcleo do PIC.

A placa foi confeccionada conforme instruído no capítulo 3.2.3 e o resultado final está mostrado na Figura 17.

Figura 17 – Placa reguladora de tensão

4.2 TESTE DE FUNCIONAMENTO DA PLACA PRINCIPAL

Para garantir que o conjunto estivesse funcionando corretamente antes de testar o modulo Ethernet, foi feito um teste simples com o protótipo desconectado de qualquer rede. O teste consistia em fazer o microcontrolador piscar apenas um LED. Este teste por mais trivial que pareça permite testar o correto funcionamento do oscilador, das vias de alimentação, das vias de gravação e do funcionamento do núcleo do microcontrolador em si. Com este teste foi possível a identificação e a correção do problema da alimentação do núcleo do microcontrolador com a placa reguladora de tensão.

4.3 PÁGINA HTML

45

Page 46: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Foi feita uma página HTML básica para a verificação da funcionalidade do protótipo. Esta página mostra o estado das saídas do microcontrolador, que para fins de demonstração de conceito estão ligados a LEDs e de possíveis entradas simuladas pelo botão 1 presente na placa.

Durante a criação da página foi utilizado o “Microchip Page Preview”, que é uma ferramenta disponibilizada pela própria Microchip. O Page Preview faz a visualização do próprio HTML, permitindo a visualização de como será a página carregada no PIC, o que não é possível diretamente com um navegador comum por causa da existência de variáveis dinâmicas nas páginas que serão utilizadas pelo microcontrolador. Como descrito no capítulo 2.10.2.5, as páginas HTML são carregadas na memória interna do PIC no formato MPFS com o auxílio da ferramenta MPFS2 distribuída gratuitamente, também pela Microchip.

A Figura 18 mostra a página principal do servidor HTML proposto.

Figura 18 – Página HTML a ser no protótipo

Na página inicial existe um link para a página na Universidade Federal do Paraná, que fica localizado no logo da universidade, no canto superior esquerdo da página. Na coluna

46

Page 47: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

localizada na parte esquerda existe também um menu para acesso a outras páginas HTML carregadas no protótipo. No canto superior direito encontra-se um campo que permite a visualização e alteração de LEDs e monitoramento do botão 1 da placa. As demais páginas são:

PIC18F66J65 – Explicação básica do microcontrolador utilizado Biblioteca Microchip TCP/IP Stack – Explicação breve da biblioteca utilizada Teste da função GET – Página que ilustra o uso desta função HTML (necessita

autenticação) Autenticação – Permite o acesso a páginas restritas e protegidas Configuração de rede – Permite a visualização das configurações atuais de rede

(necessita autenticação)

O monitoramento dos LEDs na página inicial é feita através de um javascript. O mesmo trabalha em loop, constantemente atualizando o valor do estado dos LEDs e do botão.

Para evitar problemas de compatibilidade entre os navegadores atualmente disponíveis no mercado, a página foi desenvolvida sem utilizar caracteres especiais, por exemplo, letras com acentos e cedilha.

4.4 TESTE DA BIBLIOTECA “MICROCHIP TCP/IP STACK”

No inicio do projeto a versão disponível da biblioteca era a versão 5.0. Durante as primeiras tentativas de adaptação da biblioteca para utilização com o PIC18F66J65, ocorreram muitos problemas na compilação da mesma. A solução veio logo em seguida com a versão 5.10 da biblioteca. Esta versão não apresenta problemas que eram comuns na versão anterior.

A biblioteca foi utilizada para a implementação de um servidor HTTP. Para tal foram devidamente configurados os arquivos “MainDemo.c”, “TCPIPConfig.h”, “CustomHTTPApp.c”, “Hardwareprofile.h” e foram carregadas as paginas HTM na memória do PIC no arquivo “MPFSImg2.c”. A Figura 19 mostra o resultado da compilação da biblioteca "Microchip TCP/IP Stack" com o compilador C18 em ambiente MPLAB.

Figura 19 – Compilação da biblioteca Microchip TCP/IP Stack

47

Page 48: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

4.4.1 TESTE DA BIBLIOTECA ATRAVÉS DA LINHA DE COMANDOS

Com a biblioteca compilada, juntamente com as placas prontas e devidamente testadas, foi iniciada a fase de testes com a biblioteca em funcionamento. Os testes foram feitos com a conexão do PIC a uma rede com um servidor DHCP habilitado. O switch presente na rede utilizada para os testes possui LEDs indicativos para cada porta de comunicação, assim quando existe um dispositivo conectado a ele o LED respectivo é acionado sempre que existe a troca de pacotes.

Nos primeiros testes com todos os módulos do programa que iriam ser utilizados, logo após a conexão do protótipo à rede, os LEDs indicativos do PIC não foram acionados porém o LED do switch correspondente a porta em que o PIC estava ligado foi acionado e piscou algumas vezes. Durante este teste foram utilizados algumas vezes funções da linha de comandos do Windows, como o “ping” e “arp -a”, para a verificação da conectividade do PIC com a rede, que infelizmente não pode ser comprovada.

Posteriormente trabalhando com a hipótese de que poderia ser algum problema em algum módulo específico do programa, foram feitas diversas compilações da biblioteca habilitando e desabilitando alguns módulos. O primeiro destes testes foi utilizando IP fixo, com somente o bloco ICMP habilitado. O teste foi feito e o PIC não pode ser encontrado na rede. O segundo teste foi similar ao primeiro, mas com DHCP habilitado. O resultado também foi similar ao primeiro teste, ou seja, não foi possível detectar o protótipo na rede.

4.4.2 TESTE COM O WIRESHARK

Foram feitos testes também com o PIC conectado ao switch da rede, monitorando-a com o auxílio do software Wireshark. Neste teste foi repetida a metodologia aplicada nos testes anteriores, ou seja, foram habilitados e desabilitados alguns módulos do programa, e, com o auxilio de comandos de rede como o “ping”, foram feitos os testes, porém sem obter êxito.

O Wireshark foi utilizado para verificar se o pacote de resposta do ping estava chegando ou não, pois mesmo que o protótipo estivesse conectado a rede existe a possibilidade de haver algum erro de compreensão entre o computador e a resposta fornecida pelo PIC, resultando em uma não verificação da conectividade. Com o Wireshark foi constatado um não envio de resposta por parte do PIC.

Em um segundo momento foi colocado outro computador na rede para ver qual seria o comportamento do sistema. Como este outro computador funciona corretamente houve troca de pacotes entre os computadores, fato este que foi identificado pelo Wireshark. Este teste também confirmou que o endereço do outro computador foi atribuído automaticamente

48

Page 49: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

por DHCP, pois foi possível a visualização da troca de pacotes DHCP no momento da atribuição do endereço.

O ultimo teste desta série consistiu em fazer com que um determinado LED piscasse cada vez que a função “StackTask()” fosse chamada e que outro LED piscasse cada vez que a função “HTTPServer()” fosse utilizada. Para as duas funções foi verificado que de fato elas estão sendo chamadas constantemente durante a execução da rotina principal como deveria ser.

4.4.3 TESTE DOS COMPONENTES ETHERNET DA PLACA PRINCIPAL

Durante a execução dos testes anteriores é valido ressaltar que as soldas dos componentes externos necessários para o funcionamento do módulo Ethernet foram revisadas. Foi feita também uma nova via de alimentação para os módulos RX e TX Ethernet, porque havia uma suspeita de que perdas ôhmicas na trilha fossem as causadoras dos problemas da placa. Porém, mesmo após estas verificações o comportamento do sistema se manteve o mesmo.

Como o regulador de tensão interno do microcontrolador apresentou problemas foi levantada a possibilidade de o microcontrolador ter sido danificado com as altas temperaturas as quais o PIC foi exposto por um longo período de tempo durante o processo de soldagem com o soprador térmico. Por motivos de segurança foram comprados 2 PICs idênticos, permitindo assim a substituição do primeiro por outro PIC. Um novo método utilizado para a soldagem, que difere do primeiro por utilizar um ferro de solda, foi o sugerido pelo graduando Walter Roberto Godefroid Steiger.

O método consiste apenas em passar pasta de solda nos contatos e com o estanho fixar os pinos do CI na placa, curto-circuitando-os. O excesso de solda é posteriormente retirado com o auxilio da pasta de solda na ponta do próprio ferro de solda. Por ser corrosiva, a pasta facilita a soldagem e faz com que o estanho fique apenas nos contatos. Após o final do processo a pasta de solda deve ser retirada com álcool etílico.

Comprovando as suspeitas após a solda do PIC reserva, o protótipo foi reconhecido na rede. O LED que indica conectividade, tanto do switch quanto do PIC, se mantiveram ligados e houve a troca de pacotes normalmente. Uma hipótese levantada foi a de o novo PIC não precisar ser alimentado com dois níveis de tensão diferentes porque o seu regulador interno de tensão poderia estar funcionando. Esta hipótese, entretanto, não foi testada porque para se habilitar ou desabilitar o regulador interno de tensão do PIC são necessárias alterações na parte física do protótipo que não foram feitas.

O primeiro teste com o novo microcontrolador foi o de habilitar os módulos ICMP e DHCP. Através de funções especiais do prompt de comando foi feita a comprovação do correto funcionamento do protótipo, conforme a Figura 20. Em conjunto com o prompt, foi utilizar o

49

Page 50: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Wireshark para monitorar as respostas do PIC. A Figura 21 ilustra a troca de pacotes que foi monitorada durante o teste.

Figura 20 – Teste através do prompt de comando do Windows

Figura 21 - Monitoramento do funcionamento do PIC com o Wireshark

Após alguns outros testes complementares o módulo HTTP foi implementado e também funcionou corretamente. O teste foi feito nos navegadores Internet Explorer 8.0 e Mozilla Firefox versão 3.5.5. Para acessar o site é precisar escrever o endereço IP atual do protótipo em um navegador e a página ‘index.htm’ é automaticamente carregada.

50

Page 51: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

4.4.4 RESULTADO FINAL

Através da página é possível a visualização e alteração do estado dos LEDs da placa. O botão 1, presente na placa de circuito impresso, aciona o LED0 e este por sua vez é desativado somente após 4 segundos. Como o estado do protótipo é monitorado “ao vivo”, é possível também monitorar o estado do LED0 e do botão 1 correspondente, conforme mostrado na Figura 22.

Figura 22 – Página HTML funcional carregada no protótipo

O servidor web possui várias potencialidades. Ela permite ao usuário a visualização e alteração online do estado de dispositivos conectados ao microcontrolador, que para efeito de demonstração de conceito foram LEDs.

Em um produto final, estes dispositivos seriam sensores espalhados pela residência. Estes sensores monitorariam tanto o estado dos aparelhos eletrodomésticos quanto as

51

Page 52: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

condições ambiente. Poderiam existir atuadores que, fazendo uso dos dados recolhidos pelos sensores, acionados por um programa monitor ou pelo usuário, poderiam tomar medidas preventivas remotamente. Por se tratar de um sistema privado, este acesso deve ser através de algum tipo de conexão segura, como por exemplo, o HTTPS.

Embora o servidor web possua as potencialidades citadas, a sua aplicação fica limitada ao número de dispositivos que podem ser monitorados ou acionados, devido à quantidade de pinos disponíveis no PIC. Criando-se módulos extras responsáveis pelo sensoramento e atuação e, desenvolvendo um sistema de comunicação dos mesmos com uma espécie de servidor do sistema, responsável apenas pela comunicação do mesmo com a rede externa, é possível criar um sistema complexo no qual o servidor é apenas a interface de comunicação com a rede externa.

52

Page 53: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

5 CONCLUSÃO

Neste trabalho foi desenvolvido um protótipo de um sistema para controle e monitoramento remoto de dispositivos em uma residência. Este tema envolveu conceitos de todas as áreas da Engenharia Elétrica: a Eletrônica, a Eletrotécnica e as Telecomunicações. Foram utilizados conhecimentos específicos de cada área de forma integrada, de modo a idealizar o conceito de um dispositivo capaz de realizar acionamentos de forma remota.

O foco do protótipo desenvolvido foi principalmente a demonstração de conceitos. Por este motivo não houve uma preocupação com o desenvolvimento de módulos específicos para acionamentos nem de comunicação entre dois ou mais módulos. Foi necessário um aprofundamento nos protocolos padrões da pilha TCP/IP para compreender o funcionamento da biblioteca “Microchip TCP/IP Stack”, na qual o presente trabalho se baseou principalmente.

Desde o início do projeto foram utilizados diversos softwares e ferramentas computacionais, tanto na fase de projeto e confecção do protótipo quanto na fase de testes. O nível de conhecimento e experiência adquiridos proporcionaram um aprendizado de grande importância nas áreas estudadas, que com certeza acrescentarão muito nas nossas futuras vidas profissionais.

Desde a fase inicial de prototipagem, o projeto passou por algumas alterações mínimas em seu escopo, sendo assim possível o cumprimento das metas originais. Foi desenvolvido com sucesso um protótipo funcional, autônomo, ou seja, independente de um computador e ao mesmo tempo conectável a uma rede de dados. Também foi carregada uma página HTML no PIC e, através dela, foi possível comandar e monitorar entradas e saídas do sistema criado.

Com mais tempo será possível expandir as aplicações da placa. Fazendo uso de memórias externas será possível carregar páginas HTML mais elaboradas e, portanto, capazes

53

Page 54: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

de realizar mais funções. Também com a confecção de módulos extras em conjunto com um sistema de comunicação entre os módulos, será possível criar um sistema capaz de gerenciar grandes ambientes sem muitos problemas.

5.1 PERSPECTIVAS

O protótipo possui um grande potencial que pode ser explorado a fim de viabilizar a sua implementação comercial. Para tal são necessárias algumas melhorias, dentro das quais se destacam:

Sistema de comunicação entre o servidor HTTP e outros módulos de acionamentos, a fim de possibilitar a expansão do sistema caso necessário

Agendamento de tarefaso Despertadoro Desligamento programado

Incorporar a placa principal com a fonte Sistema de navegação segura – HTTPS Uso de uma pequena tela LCD para visualização de dados eventualmente enviados

pelo usuário

O protótipo também tem potencial para ser usado como módulo de comunicação em um sistema complexo. Neste ambiente o protótipo desenvolvido poderia ser utilizado especificamente como módulo de comunicação via Ethernet do sistema. Neste sentido existem inúmeras aplicações possíveis envolvendo coleta e envio de dados pela Internet. Para facilitar sua utilização pode também ser feito o uso de sistemas de DNS dinâmico.

54

Page 55: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

6 REFERÊNCIAS BIBLIOGRÁFICAS

[1] MICROCHIP. PIC18F97J60 Family Data Sheet. Disponível em: <http://ww1.microchip.com/downloads/en/DeviceDoc/39762e.pdf>. Acesso em: 22 de novembro de 2009.

[2] RAJBHARTI, Nilesh. AN833 – Microchip TCP/IP Stack Application Note. Disponível em: <http://ww1.microchip.com/downloads/en/AppNotes/00833c.pdf>. Acesso em: 22 de novembro de 2009.

[3] MICROCHIP. Site da Microchip. Disponível em: <http://www.microchip.com>. Acesso em: 22 de novembro de 2009.

[4]MICROCHIP. Forum Microchip TCP/IP Stack. Disponível em: <http://www.microchip.com/forums/tt.aspx?forumid=171>. Acesso em: 22 de novembro de 2009.

[5]MICROCHIP. TCP/IP Design Centers Home Page. Disponível em: <http://www.microchip.com/TCPIP>. Acesso em: 22 de novembro de 2009.

[6] MICROCHIP. Microchip TCP/IP Stack. Disponível em: <http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026442>. Acesso em: 22 de novembro de 2009.

[7] MEHL, Ewaldo Luiz de Mattos. Projeto de Circuitos Impressos usando o software EAGLE. Disponível em: <http://www.eletr.ufpr.br/mehl/pci/poliester.html>. Acesso em: 22 de novembro de 2009.

55

Page 56: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

[8]Tutorial HTML. Disponível em: <http://www.frhost.com. br /central/dl.php?type=d&id=17 >. Acesso em: 22 de novembro de 2009.

[9] OLIVEIRA, Cliceu Buture de. Apostila Eagle 4x. Disponível em:<http://www.eletronica.org/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=54&ttitle=Apostila_do_Eagle_4x>. Acesso em: 22 de novembro de 2009.

[10] PASTRO, Ademar Luiz. Apostila de Microcontroladores. Apostila da disciplina TE124 – Microcontroladores – UFPR, Curitiba. 2009.

[11] TYCO ELETRONIC. Mag45 – RJ45 with Integrated Magnetics. Disponível em: <http://www.tycoelectronics.com/catalog/pn/pt/6605759-1>. Acesso em: 22 de novembro de 2009.

[12] NATIONAL SEMICONDUCTOR. LM317 3-Terminal Adjustable Regulator. Disponível em:<http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/DS009063.PDF>. Acesso em: 22 de novembro de 2009.

[13] WIKIPEDIA. Ethernet. Disponível em: <http://en.wikipedia.org/wiki/Ethernet>. Acesso em: 22 de novembro de 2009.

[14] WIKIPEDIA. MAC. Disponível em: <http://en.wikipedia.org/wiki/MAC_address>. Acesso em: 22 de novembro de 2009.

[15] WIKIPEDIA. Adress Resolution Protocol. Disponível em: <http://en.wikipedia.org/wiki/Address_Resolution_Protocol>. Acesso em: 22 de novembro de 2009.

[16]WIKIPEDIA. Internet Protocol. Disponível em: <http://en.wikipedia.org/wiki/Internet_Protocol>. Acesso em: 22 de novembro de 2009.

[17] WIKIPEDIA. Internet Control Message Protocol. Disponível em:<http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol>. Acesso em: 22 de novembro de 2009.

[18] WIKIPEDIA. Transmission Control Protocol. Disponível em: <http://en.wikipedia.org/wiki/Transmission_Control_Protocol>. Acesso em: 22 de novembro de 2009.

[19] WIKIPEDIA. Dynamic Host Configurarion Protocol. Disponível em: <http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol>. Acesso em: 22 de novembro de 2009.

56

Page 57: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

[20] WIKIPEDIA. Hypertext Transfer Protocol. Disponível em: <http://en.wikipedia.org/wiki/Http>. Acesso em: 22 de novembro de 2009.[21]WIKIPEDIA. HTML. Disponível em: <http://en.wikipedia.org/wiki/HTML>. Acesso em: 22 de novembro de 2009.

[22] ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 14724: informação e documentação: trabalhos acadêmicos: apresentação. Rio de Janeiro, 2002.

[23] UNISO. Manual de Normalização de Apresentação de Teses, Dissertações e Trabalhos de Conclusão de Curso (TCC) da Universidade de Sorocaba. Disponível em: <http://www.scribd.com/doc/4076862/ABNT-Manual-I>. Acesso em: 22 de novembro de 2009.

[24] WIKIPEDIA. Twisted Pair. Disponível em: <http://en.wikipedia.org/wiki/Twisted_pair>. Acesso em: 22 de novembro de 2009.

[25] RFC 793 – Transmission Control Protocol. Disponível em: <http://www.faqs.org/rfcs/rfc793.html>. Acesso em: 22 de novembro de 2009.

[26] RFC 791 – Internet Protocol. Disponível em: <http://www.faqs.org/rfcs/rfc791.html>. Acesso em: 22 de novembro de 2009.

[27] RFC 826 – Ethernet Address Resolution Protocol. Disponível em: <http://www.faqs.org/rfcs/rfc826.html>. Acesso em: 22 de novembro de 2009.

[28] RFC 2616 – Hypertext Transfer Protocol. Disponível em: <http://www.faqs.org/rfcs/rfc2616.html>. Acesso em: 22 de novembro de 2009.

57

Page 58: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

7 ANEXOS

58

Page 59: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ANEXO A – CRONOGRAMA DO PROJETO

Segue abaixo a Tabela 4 com o cronograma das atividades desenvolvidas durante o presente projeto de graduação.

Mês / 2009 AtividadeAgosto Apresentação da proposta do projeto

Estudo dos microcontroladores disponíveisDefinição dos componentes necessários para a confecção de um sistema autônomo

Setembro Definição do layout da placa de circuito impressoConfecção da placa principalTestes iniciais “off-line” da placa principal

Outubro Solução dos problemas da placa principalApresentação parcial do projetoConfecção da placa reguladora de tensãoTestes “off-line” com o sistema completoInicio do relatório escrito

Novembro Compilação da biblioteca “Microchip TCP/IP Stack”Testes iniciais “on-line” do protótipoSolução dos problemas do protótipoTérmino do relatório escrito

Dezembro Correções finais do relatório escritoApresentação final do projeto

Tabela 4 – Cronograma do projeto

59

Page 60: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ANEXO B – CONFIGURAÇÃO E UTILIZAÇÃO DA PILHA

O sistema de multitarefas cooperativas permite que o aplicativo principal execute suas próprias tarefas sem precisar gerenciar a pilha TCP/IP simultaneamente. Partindo deste pressuposto é necessário que todos os aplicativos que utilizam o “Microchip TCP/IP Stack” sejam escritos utilizando um padrão de multitarefas cooperativas. Para tanto, porém, algumas configurações iniciais devem ser respeitadas. [2]

Para facilitar o processo de configuração, a pilha usa as definições presentes nos compiladores da linguagem de programação ‘C’. Para habilitar, desabilitar ou alterar algum parâmetro em particular estas definições devem ser alterados, sendo que grande parte delas estão no arquivo de cabeçalho “StackTsk.h”. Outras definições devem ser feitas em arquivos mostrados de acordo com a Tabela 5, mostrada abaixo.

Define Valores Usados por PropósitoCLOCK_FREQ(compiler.h)

Freqüência do oscilador [Hz]

Tick.c Define a freqüência do oscilador do sistema para determinar o valor do contador do Tick

TICKS_PER_SECONDS 10 – 255 Tick.c Para calcular um segundoTICK_PRESCALE_VALUE 2, 4, 8, 16, 32,

64, 128, 256Tick.c Determinar o valor do contador do

TickMPFS_USE_PGRM N/A MP File System

(MPFS.c)Usar a memória de programa para o arquivamento da MPFS

MPFS_USE_EEPROM N/A MPFS.c Usar memória EEPROM externa para o arquivamento da MPFS

MPFS_RESERVE_BLOCK 0 – 255 MPFS.c Número de bytes reservados antes do arquivamento da MPFS começar

EEPROM_CONTROL Código de controle dos

dados externos da EEPROM

MPFS.c Para endereçar dados em uma EEPROM externa

STACK_USE_ICMP N/A StackTsk.c Utilizar ICMPSTACK_USE_SLIP N/A SLIP.c Utilizar SLIPSTACK_USE_IP_GLEANING N/A StackTsk.c Utilizar IP GleaningSTACK_USE_DHCP N/A DHCP.c

StackTsk.cUtilizar DHCP

STACK_USE_FTP_SERVER N/A FTP.c Utilizar o servidor FTPSTACK_USE_TCP N/A TCP.c

StackTsk.cUtilizar TCP. Este módulo será automaticamente habilitado quando ao menos um nível superior requerer o TCP.

STACK_USE_UDP N/A UDP.cStackTsk.c

Utilizar UDP. Este módulo será automaticamente habilitado quando ao menos um nível superior requerer o UDP.

STACK_CLIENT_MODE N/A ARP.cTCP.c

Códigos relativos ao cliente serão habilitados

60

Page 61: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

TCP_NO_WAIT_FOR_ACK N/A TCP.c O TCP esperará pela mensagem ACK antes de transmitir um novo pacote de dados

MY_DEFAUT_IP_ADDR_BYTE?MY_DEFAUT_MASK_BYTE?MY_DEFAUT_GATE_BYTE?MY_DEFAUT_MAC_BYTE?

0 – 255 Aplicativodo usuário

Define os valores padrão do IP, MAC, portas de ligação e máscara de subrede.Os valores padrão são:10.10.5.15 para endereços IP;00:04:A3:00:00:00 para MAC;10.10.5.15 para porta de ligação;255.255.255.0 para máscara de subrede.

MY_IP_BYTE?MY_MASK_BYTE?MY_GATE_BYTE?MY_MAC_BYTE?

0 – 255 MAC.cARP.c

DHCP.cAplicativo do

usuário

Valores atuais do IP, MAC, portas de ligação e máscara de subrede definidas pelo aplicativo. Se o DHCP estiver habilitado, os valores refletem a configuração atual do servidor DHCP.

MAX_SOCKETS 1 – 253 TCP.c Para definir o número total de soquetes suportados (limitados pela RAM disponível). O tempo de compilação é verificado para se ter certeza que existam soquetes suficientes para a aplicação.

MAX_UDP_SOCKETS 1 – 254 UDP.c Para definir o número total de soquetes suportados (limitados pela RAM disponível). O tempo de compilação é verificado para se ter certeza que existam soquetes suficientes para a aplicação.

MAC_TX_BUFFER_SIZE 201 – 1500 TCP.cMAC.c

Para definir o tamanho do buffer de transmissão

MAX_TX_BUFFER_COUNT 1 – 255 MAC.c Para definir o número total de buffers de transmissão. Este número é limitado pelo tamanho do buffer do MAC disponível.

MAX_HTTP_CONNECTIONS 1 – 255 HTTP.c Para definir o número máximo de conexões HTTP permitidas

MPFS_WRITE_PAGE_SIZE(MPFS.h)

1 – 255 MPFS.c Para definir o tamanho máximo da página para a mídia atual de armazenamento do MPFS

FTP_USER_MANE_LEN(FTP.h)

1 – 31 FTP.c Para definir o tamanho máximo da string do nome do usuário do FTP

MAX_HTTP_ARGS(HTTP.c)

1 – 31 HTTP.c Para definir o número máximo de formulários HTML

MAX_HTML_CMD_LEN(HTTP.c)

1 – 128 HTTP.c Para definir o comprimento máximo da string URL do formulário HTML

Tabela 5 – Arquivos para configuração da pilha TCP/IP

Fonte – Application Notes AN833 [2]

Os arquivos contidos na tabela seguinte apresentam uma visão geral completa de todas as funções disponíveis nos módulos “Microchip TCP/IP Stack”, servidores HTTP e FTP, DHCP e “IP Gleaning”.

61

Page 62: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

Como cada módulo presente na pilha possui o seu próprio arquivo, deve-se ter certeza que foram inclusos todos os arquivos certos no projeto para uma correta compilação. A lista completa dos módulos e arquivos necessários está na Tabela 6.

Módulo Arquivos necessários PropósitoMAC MAC.c

Delay.cCamada MAC

SLIP SLIP.c MAC para SLIPARP ARP.c

ARPTask.cMAC.c ou SLIP.cHelpers.c

Protocolo de resolução de endereços

IP IP.cMAC.c ou SLIP.cHelpers.c

Protocolo de Internet

ICMP ICMP.cStackTsk.cIP.cMAC.c ou SLIP.cHelpers.c

Protocolo de mensagens de controle de internet

TCP StackTsk.cTCP.cIP.cMAC.c ou SLIP.cHelpers.cTick.c

Protocolo de controle de transmissão

UDP StackTsk.cUDP.cIP.cMAC.c ou SLIP.cHelpers.c

Protocolo de datagrama de usuário

Stack Manager StackTsk.cTCP.cIP.cICMP.cARPTsk.cARP.cMAC.c ou SLIP.cTick.cHelpers.c

Gerenciador de pilha (Stack Manager, função “StackTask”), que coordena os outros módulos “Microchip TCP/IP Stack”

HTTP Server HTTP.cTCP.cIP.cMAC.c ou SLIP.cHelpers.cTick.cMPFS.cXEEPROM.c

Servidor HTTP

DHCP Client DHCP.cUDP.cIP.cMAC.cHelpers.cTick.c

Cliente DHCP

62

Page 63: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

IP Gleaning StackTsk.cARP.cARPTask.cICMP.cMAC.c ou SLIP.c

Apenas para configurar os endereços IP

FTP Server FTP.cTCP.cIP.cMAC.c

Servidor FTP

Tabela 6 – Lista dos módulos e arquivos necessários para compilação da biblioteca

Fonte – Application Notes AN833 [2]

63

Page 64: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ANEXO C – APIS

O “Microchip TCP/IP Stack” consiste de vários módulos. Para se utilizar estes módulos, o usuário deve entender o seu propósito bem como os seus APIs. Abaixo segue uma breve descrição de cada um dos APIs para cada módulo utilizado neste projeto. [2]

CAMADA MAC

Função DescriçãoMACInit Inicializa a camada MAC, bem como inicializa o buffer interno e reinicia o

NIC para um estado conhecidoMACIsTxReady Indica se pelo menos um buffer de transmissão do MAC está livre ou nãoMACGetHeader Verifica o buffer de recepção do MAC, se algum pacote for encontrado, a

função retorna as informações do servidor remoto e as informações do pacote de dados

MACGet Retorna o próximo byte de uma transmissão ativa ou do buffer de recepçãoMACGetArray Busca um array de bytes na transmissão ativa ou no buffer de recepçãoMACDiscardRx Descarta os dados do buffer de recepção ativo e o marca como livreMACPutReader Monta o header do MAC e o carrega no buffer de transmissão ativoMACPut Carrega um conjunto de dados em um buffer ativo de transmissão ou recepçãoMACPutArray Escreve uma array de bytes de dados em um buffer ativo de transmissão ou

recepçãoMACFlush Marca o buffer ativo de transmissão como pronto para transmissãoMACDiscardTx Descarta os dados do buffer de transmissão e o marca como livreMACSetRxBuffer Indica o local de acesso para o buffer ativo de recepçãoMACSetTxBuffer Indica o local de acesso para o buffer de transmissão e marca este

mesmo buffer como ativoMACReserveTxBuffer Reserva um dado buffer de transmissão e o torna “inacessível”. Esta

função é útil para a camada TCP onde uma mensagem deve ser enfileirada até que seja devidamente reconhecida pelo servidor remoto

MACGetFreeRxSize Retorna o valor total de memória livre disponível no buffer de recepção para futuros pacotes de dados

MACGetRxBuffer Retorna o identificador do buffer de recepção atualMACGetTxBuffer Retorna o identificador do buffer de transmissão atual

Tabela 7 – Funções da camada MAC

64

Page 65: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

CAMADA ARP

Função DescriçãoARPIsTxReady Uma macro que chama a função MACIsTxReady em seguidaARPGet Busca os pacotes ARP completos e retorna as informações necessáriasARPPut Carrega o buffer do MAC com um pacote ARP válidoARPInit Inicializa a máquina de estados ARPTask e a prepara para gerenciar as

solicitações e respostas do ARPARPResolve Envia uma solicitação ARP para o servidor remotoARPIsResolved Verifica a memória cachê interna e retorna informações de endereço do

servidor correspondenteTabela 8 – Funções da camada ARP

CAMADA IP

Função DescriçãoIPIsTxReady Macro que por sua vez chama a função “MACIsTxReady”IPSetTxBuffer Uma macro que permite a camadas de nível mais alto definir o ponteiro de

acesso ao buffer de transmissão. Esta macro leva em consideração o cabeçalho do IP antes de chamar a função “MACSetTxBuffer”

IPPutHeader Monta um cabeçalho IP válido e o carrega no buffer de transmissão ativoIPPutArray Carrega um array de bytes no buffer de transmissão ativoIPGetHeader Busca o cabeçalho do IP no buffer de transmissão ativo e o validaIPGetArray Busca um array de bytes do buffer ativo de transmissão ou de recepçãoIPSetRxBuffer Permite que uma camada de nível mais alto defina o ponteiro de acesso ao

buffer de recepção. Esta macro leva em consideração o cabeçalho do IP antes de chamar a função “MACSetRxBuffer”

Tabela 9 – Funções da camada IP

CAMADA TCP

Função DescriçãoTCPInit Inicializa a máquina de estados TCP e a prepara para conexões TCP múltiplasTCPListen Designa um dos soquetes disponíveis para escutar uma determinada porta TCPTCPConnect Inicia a requisição de comunicação com o servidor remoto numa determinada

porta remotaTCPIsConnected Determina se um determinado soquete está conectado ao servidor remoto ou nãoTCPDisconnect Faz a requisição ao servidor remoto para desconexão

65

Page 66: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

TCPIsPutReady Determina se o soquete está pronto para transmitir. Um soquete está pronto para transmitir quando está conectado a um servidor remoto e o buffer de transmissão está vazio

TCPPut Carrega um byte de dados no buffer de transmissão para um determinado soqueteTCPFlush Marca um determinado soquete de um buffer de transmissão como pronto para

transmissãoTCPIsGetReady Determina se um determinado soquete contém dados recebidosTCPGet Busca e pega um byte de dados de um determinado soquete de um buffer de

recepçãoTCPGetArray Busca e pega um array de dados de um determinado soquete de um buffer de

recepçãoTCPDiscard Libera o buffer de recepção associado com um determinado soqueteTCPProcess Funciona como “TCPTask”. A função procura e busca um pacote TCP já recebido e

executa a máquina de estados TCP para soquetes correspondentes. Esta função deve ser chamada apenas quando um pacote TCP for recebido

TCPTick Funciona como um outro “TCPTask” para completar o TCPProcess. Esta função verifica as condições de time-out para todos os soquetes e tenta recuperá-las a partir deles

Tabela 10 – Funções da camada TCP

PÁGINA HTTP

Função DescriçãoHTTPGetVar Quando o servidor HTTP encontra a string ‘%xx’ (o ‘%’ serve como caractere de

controle e o ‘xx’ é uma variável identificadora de dois dígitos) em uma página CGI que está sendo servida, o servidor chama esta função. Esta função é implementada pelo aplicativo principal do usuário e é usada para transferir o status de variáveis específicas para o HTTP

HTTPExecCmd Quando o servidor HTTP recebe o método GET com mais de um parâmetro, ele deve chamar esta função. Esta função é implementada pelo aplicativo principal e ela deve decodificar o código do método dado e tomar as devidas ações. Estas ações podem ser desde dar um novo nome a uma página web ou realizar alguma tarefa relacionada com as entradas ou saídas do sistema

Tabela 11 – Funções da página HTTP

66

Page 67: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ANEXO D – SISTEMA DE ARQUIVOS MPFS

O servidor HTTP da Microchip utiliza um sistema de arquivos simples para o armazenamento de páginas web. A imagem MPFS pode ser armazenada tanto na própria memória de programa do microcontrolador quanto em uma memória EEPROM externa. O MPFS segue um tipo de formato especial para o armazenamento de múltiplos arquivos em uma dada memória, como exemplificado na Figura 23.

Figura 23 – Esquemático do sistema de armazenamento de arquivos MPFS

Fonte – Application Notes AN833 [2]

O MPFS utiliza nomes pequenos de arquivos no formato “8 + 3” (8 bytes para o nome do arquivo e mais 3 bytes para a extensão, ou NNNNNNNN.EEE). O endereço de 16 bits dá início ao primeiro bloco de dados. Todos os nomes de arquivo são registrados em caixa alta, para assim tornar a comparação entre nomes de arquivos mais fácil.

Existe um programa para PCs, disponibilizado pela Microchip, chamado “MPFS Image Builder” (MPFS.exe). Este programa pode ser utilizado para criar as imagens MPFS necessárias para se carregar uma página web no microcontrolador a partir de uma série de arquivos. Dependendo de onde as imagens vão ser armazenadas, o usuário tem a opção de gerar um arquivo ‘C’ ou um arquivo binário representando a imagem MPFS.

Antes de a imagem MPFS ser construída, é necessário que a página web seja criada e todos os arquivos sejam salvos em um único diretório. Se as imagem MPFS for armazenada na memória de programa interna do microcontrolador, então o arquivo ‘C’ deve ser incluído junto com a biblioteca. Se ao invés a imagem for armazenada em uma memória EEPROM externa, o arquivo binário deve ser carregado nela. [2]

67

Page 68: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

68

Page 69: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

ANEXO E – FERRAMENTAS COMPUTACIONAIS UTILIZADAS

EAGLE

O programa EAGLE é uma ferramenta para a realização do roteamento de placas de circuito impresso. O programa está disponível tanto para Windows quanto para Linux, destacando-se pela facilidade de utilização e pela existência de uma versão gratuita. Na versão gratuita podem ser utilizadas apenas duas camadas, sendo suficiente para a maioria das aplicações. Outra limitação é o tamanho da placa, que também para a maioria das aplicações não é um fator limitante.

Alem de possuir uma vasta biblioteca de componentes e circuitos integrados, o EAGLE também apresenta uma grande facilidade de criação de novos componentes, bem como as opções de roteamento da placa. Com esquemático do circuito, baseando-se nas opções de roteamento e número de camadas o software se mostra muito eficiente na confecção de placas de circuito impresso.

Figura 24 – Interface do programa EAGLE

69

Page 70: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

MICROCHIP MPLAB

Durante todo o projeto a programação do PIC foi feita em ambiente MPLAB. A decisão pela utilização do MPLAB no projeto foi feita pela facilidade que esta escolha representaria, tendo em vista que a biblioteca “Microchip TCP/IP Stack” é compatível com o compilador C18, da própria Microchip.

O MPLAB é um compilador projetado para fazer a programação dos microcontroladores da família PIC. Sendo fornecida pelo próprio fabricante, este programa é perfeitamente compatível com qualquer um destes dispositivos, tornando-o assim ideal para a maioria das aplicações.

Figura 25 – Interface do programa MPLAB

70

Page 71: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

PICKIT 2 PROGRAMMER

Para a gravação durante o projeto foi utilizado o gravador / depurador PICkit 2. A comunicação USB é compatível com o padrão USB 2.0. A alimentação do PIC que será gravado pode ser feita através da porta USB de computadores de mesa e laptop ou através de fonte externa. Existe a possibilidade de conexão à placa alvo através de um conector de 5 vias ICSP.

O programador pode ser utilizado com dispositivos da família PIC10F, 12F, 16F, 18F é 24F, além das famílias dsPIC30 e dsPIC33, com valores de alimentação que variam de 2,5 V até 5,0 V.

O PICkit 2 é compatível com os seguintes sistemas operacionais: Windows 2000 service pack 4, Windows XP service pack 3, Windows Vista, LINUX e MAC.

Figura 26 – Gravador de microcontroladores PIC PICkit 2

71

Page 72: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

MICROCHIP MPFS GENERATOR

O “Microchip MPFS Generator” é uma ferramenta para projetos envolvendo a biblioteca “Microchip TCP/IP Stack”. Ela permite a criação de arquivos imagem para serem incluídos e gravados na memória interna do PIC ou em memórias EEPROM externas.

A ferramenta faz uso do arquivo ‘HTTPPrint.h’, presente no projeto MPLAB da biblioteca, para o uso de variáveis dinâmicas na página HTML.

Figura 27 – Gerador de imagens MPFS

72

Page 73: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

MICROCHIP PAGE PREVIEW

O “Microchip Page Preview” é uma ferramenta disponibilizada pela própria Microchip, que permite a pré-visualização de páginas HTML. A vantagem da utilização desta ferramenta está no fato de ela mostrar um resultado funcional da página web. Devido ao uso de variáveis dinâmicas e de cabeçalhos e rodapés fixos, se a página HTML for aberta diretamente “off-line” em um navegador ela não será devidamente visualizada. O Page Preview busca e abre o cabeçalho/rodapé mostrando o seu conteúdo corretamente e, para as variáveis dinâmicas, é mostrado o valor padrão das mesmas.

O programa visualiza as páginas HTML no seu formato padrão, não sendo necessário nenhum tipo de conversão de formato.

Figura 28 – Interface do Microchip Page Preview

73

Page 74: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

MCHPDETECT

Fornecido pela Microchip, este programa possui o intuito de identificar o endereço IP atual de algum sistema que utilize a biblioteca “Microchip TCP/IP Stack” logo após este sistema receber um endereço por DHCP.

O protótipo é programado para enviar um pacote UDP broadcast para a porta 30303. Sendo assim, o programa monitora os pacotes recebidos nesta porta e, quando um pacote é recebido, o programa automaticamente retorna o IP atual e o endereço MAC do remetente.

Figura 29 – Software MCHPDetect

74

Page 75: Protótipo de um sistema de acionamento remoto … · Web viewdo microcontrolador foi baseado na biblioteca “Microchip TCP/IP Stack”, desenvolvida na linguagem de programação

WIRESHARK

O Wireshark é um programa que analisa o tráfego de rede, organizando-o por protocolos. Uma das facilidades é a utilização de filtros por endereço IP, que auxilia no acompanhamento da seqüência de envio dos pacotes de dados em redes com vários elementos. Sendo assim, é possível monitorar o tráfego de dados de uma rede em diferentes protocolos.

Com este programa é possível fazer a verificação dos pacotes que são enviados e recebidos quando, por exemplo, for dado o comando “ping” no Microsoft Windows ou ainda quando um novo dispositivo entrar na rede.

Figura 30 – Interface do programa Wireshark

75