manual pmwe10 ethernet

57
KPMWE-10 – Guia do Usuário 1 12/6/2006 04:42 2EI v1.0

Upload: gustavo-coaquira-flores

Post on 05-Jul-2015

167 views

Category:

Documents


14 download

TRANSCRIPT

KPMWE-10 – Guia do Usuário

1

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

KIT DE DESENVOLVIMENTOKPMWE-01

2

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

1. LISTA DE ABREVIAÇÕES ............................................................................... 5

2. INTRODUÇÃO .................................................................................................. 6

3. PLACA PMWE-10 ............................................................................................. 7

3.0 Conector para Placas de Expansão .......................................................................... 11

4. INTERFACES .................................................................................................. 12

4.0 Ethernet ...................................................................................................................... 12

4.1 RS232 .......................................................................................................................... 12

4.2 Conector ICSP ............................................................................................................ 12

4.3 Pinos Analógicos e Digitais de E/S ............................................................................ 12

4.4 ZIGBEE ...................................................................................................................... 12

5. ESPECIFICAÇÕES PMWE-10 ........................................................................ 13

6. CONECTANDO A PLACA PMWE-10 PELA PRIMEIRA VEZ ........................ 14

6.0 Precauções ................................................................................................................... 14

6.1 Conectando a PMWE-10 com um Host Local sem DHCP ..................................... 14

6.2 Alterando o endereço IP sem usar o DHCP ............................................................ 18

6.3 Usando o DHCP ......................................................................................................... 27

7. DIMENSÕES DA PMWE-10 ............................................................................ 28

8. ESQUEMAS .................................................................................................... 29

9. CONFIGURAÇÃO DO PIC18F8720 ............................................................... 33

10. APÊNDICE A . CONFIGURANDO O WINDOWS XP COM IP FIXO. .......... 39

11. APÊNDICE B ................................................................................................. 40

3

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

12. APÊNDICE C. O SERVIDOR HTTP MICROCHIP ........................................ 41

13. APÊNDICE D. ENVIANDO E RECEBENDO MENSAGENS SMS ATRAVÉSDO CELULAR SIEMENS C55 (MODO PDU). .................................................... 47

14. APÊNDICE E. DISPLAY DE LCD ................................................................. 53

15. APÊNDICE F. CABO SERIAL CELULAR .................................................... 54

16. APÊNDICE G. CABO SERIAL PROGRAMAÇÃO ....................................... 54

17. APÊNDICE H. DIFERENÇAS PARA PROGRAMAR O PIC18F8720 E OPIC18F8621 ........................................................................................................ 55

18. APÊNDICE I. TECLADO .............................................................................. 56

19. APÊNDICE J. CABO DE REDE .................................................................... 57

20. APÊNDICE K. ALTERAÇÕES NA VERSÃO DESTE MANUAL .................. 57

4

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

1. Lista de AbreviaçõesARP – Address Resolution Protocol

CGI - Common Gateway Interface

DHCP – Dynamic Host Configuration Protocol

LAN – Local Area Network

LED – Light Emitting Diode

FTP – File Transfer Protocol

HTTP - Hypertext Transfer Protocol

ICMP – Internet Control Message Protocol

ICSP - In Circuit Serial Programmer

MAC – Medium Access Control

MPFS – Microchip File System

PDU – Packet Data Unit

PMWE-10 – Placa Microcontrolada com Wireless e Ethernet 10 Mbps

RTOS – Real Time Operating System

SMS – Short Message Service

TCP/IP - Transmission Control Protocol/Internet Protocol

UCP – Unidade Central de Processamento

UDP- User Data-Gram Protocol

USART – Universal Serial Asynchronous Receiver Transmitter

5

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

2. Introdução

Esta documentação refere-se ao kit com conectividadeEthernet/Internet KPMWE-10 versão 1.0 () .

O kit contém os seguintes itens:1. Placa PMWE-10 com conexão Ethernet/Internet, conector

para módulo ZIGBEE/XBEE e vários periféricos.2. Um cabo serial para a interface de programação da

PMWE-10.3. Uma interface de programação serial RS-232 para ICSP

(In Circuit Serial Programmer) para gravação da memóriaFlash do microcontrolador contido na PMWE-10. Somenteutilize uma interface serial RS232 verdadeira em seu PC.Conversores USB para serial provavelmente nãofuncionarão. Só programe a PMWE-10 com elaalimentada e não inverta o cabo que vai da interface de

6

12/6/2006 04:42 2EI v1.0

INTRODUÇÃO

Figura 1: Itens que compõe o kit KPMWE-10

KPMWE-10 – Guia do Usuário

programação para a PMWE-10. Maus procedimentos causarão danosao microcontrolador.

4. Um cabo de rede crossover (10 Base T) para conectar a placa PMWE-10 com um computador tipo PC.

5. Um CD-ROM contendo: a pilha TCP/IP Microchip modificada, váriasnotas de aplicação, programa para gravação da memória Flash domicrocontrolador PIC18F8722 presente na placa PMWE-10 e guia dousuário em formato PDF.

3. Placa PMWE-10A PMWE-10 () é uma placa microcontrolada (UCP PIC 18F8722) com

interfaces Ethernet 10 Mbps e serial RS-232. Ela pode ser adicionada aqualquer rede Ethernet 10/100 Mbps. Ela é fornecida com a pilha TCP/IP daMicrochip modificada escrita na linguagem C e pode ser compilada pelocompilador Microchip PIC18 C . Aplicações típicas incluem servidor Web HTTP,conversor de interface RS 232 para Ethernet, conversor ZigBee para Ethernet,controle remoto via Web, etc. Você pode armazenar suas páginas Web namemória FLASH do microcontrolador PIC18F8722 usando o cabo serial einterface de programação IP10 que acompanha o kit de desenvolvimento. Alémda pilha TCP/IP da Microchip, a 2EI fornece funções de enviar e recebermensagens SMS via celular através da interface serial.

Para ver as páginas Web contidas no microcontrolador PIC 18F8722 numnavegador Internet basta conectar o cabo crossover fornecido neste kit ao seucomputador pessoal com a devida configuração.

7

12/6/2006 04:42 2EI v1.0

O compilador C MCC18 (versão estudante) e o ambiente dedesenvolvimento MPLAB IDE são propriedades da Microchip®.Eles deverão ser baixados do site www.microchip.com . Os linksestão disponíveis no site www.2ei.com.br.

KPMWE-10 – Guia do Usuário

Os principais componentes da PMWE-10 são:

1. MICROCONTROLADOR: PIC18F8722 (clock de 25MHz, 128K dememória Flash, 1024 bytes de memória EEPROM, 3936 bytes dememória RAM e 68 portas de I/O programáveis das quais 16 podem serconfiguradas como entradas analógicas de 10 bits) programado com apilha TCP/IP Microchip modificada. A pilha TCP/IP fornecida comoexemplo usa aproximadamente 30 Kwords bytes de memória Flash e1233 bytes de memória RAM, assim há bastante área de memória paraaplicações do usuário. Na pilha há exemplos de servidor HTTP, conexãoTCP/IP, SMTP e envio e recepção de mensagens SMS.

2. CONTROLADOR ETHERNET: A PMWE-10 usa o controlador deEthernet Realtek RTL8019AS (10Mbps) .

3. LEDs de indicação:

8

12/6/2006 04:42 2EI v1.0

Figura 2: Placa PMWE

KPMWE-10 – Guia do Usuário

a. Vermelho: indica que a pilha TCP/IP está sendo executada. Éprogramável pelo usuário. No software fornecido o mesmo pisca acada 1 segundo.

b. Amarelo: Indica que a conexão Ethernet está ativa (RJ-45).c. Verde: indica que a placa está transmitindo ou recebendo um

pacote de dados (RJ-45).d. Vermelho: conectado a porta RA2 do microcontrolador.e. Vermelho: indicação da fonte de 5VDC ON.f. Vermelho: indicação da fonte 3,3VDC ON.

4. CHAVE PUSHBUTTON: serve para re-inicialização (RESET) doprograma pois está conectada ao pino MCLR do microcontrolador.

5. CONECTOR RJ-45 (10 Base T): Provê conectividade Ethernet padrão.6. CONECTOR DB25 : Provê os sinais Tx, Rx e GND para transmissão

serial assíncrona proveniente do integrado ST232ABD, entrada dosacopladores ópticos, saída dos relés.. (ver esquemas).

7. CONECTOR ICSP (In Circuit Serial Programming): Permite a placaPMWE-10 ser conectada a interface de programação para gravação damemória Flash do microcontrolador.

8. CONECTORES DE EXPANSÃO: Provê acesso a maior parte dos pinosdo microcontrolador PIC18F8720.

9. CONECTOR para Teclado: Permite ligar um teclado de 4 linhas por 4colunas.

10. CONECTOR para Display de LCD: Permite ligar um display de LCD nomodo 4 bits de dados.

11. Alimentação dos reguladores de 5VDC e 3,3VDC. Deve ser feitausando uma fonte DC entre 9 a 12V.

12. REGULADOR 5VDC.. 13.REGULADOR 3,3VDC.14. RELÉS. Permite a solda de três (3) tipo HE3621.15. BUZZER. Permite a solda de um sonoalarme.16. ACOPLADORES ÓPTICO. Permite a solda de três (3) acopladores

óptico tipo H11L1.17. Potenciômetro. Variação de nível DC para entrada AN0 do

microcontrolador.18. RTC I2C. Permite a solda de um RTC tipo M41T00.19. MEMÓRIA EEPROM I2C. Permite a solda de uma memória I2C

24AA512.20. SENSOR DE TEMPERATURA I2C. Permite a solda do C.I TC74.21. CHAVE PUSH-BUTTON. Conectada a porta RJ7 do microcontrolador.22. CR2032. Permite a solda de um soquete para bateria tipo CR2032 que

alimentará o RTC.23. ZIGBEE. Permite a solda do módulo XBEE da MAXSTREAM. Este

módulo está ligado na USART2 do microcontrolador já com ajuste deníveis para 3,3VDC.

24. MAX232. Ajuste de níveis para USART1.9

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

A placa PMWE-10 é projetada para executar a pilha TCP/IP fornercidapela Microchip com pequenas modificações. São características da pilhaTCP/IP fornecida pela Microchip:

o Inclui MAC, IP, ARP, ICMP, TCP, UDP, HTTP, FTP, DHCP eMPFS.

o Suporte a sockets para protocolos TCP e UDP.o Suporte para compiladores Microchip C18 e Hi Tech PICC18.o Suporte para LCD.o RTOS Independente.o Software modular.

A 2EI introduziu no exemplo fornecido com a PMWE:o Suporte para conexão TCP/IP.o Suporte para SMTP.o Suporte para Agent SNMP (em implantação).o Suporte para LED, relé e chave push-button.o Envio e leitura de mensagem SMS.o Suporte para teclado.o Suporte para o módulo XBEE e XBEE PRO da MaxStream.

10

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

3.0 Conector para Placas de ExpansãoA PMWE-10 possui dois conectores de 2X14 pinos (J1 e J2). Eles

contêm a maioria das portas de E/S da CPU PIC18F8722. Os pinos são osseguintes:

Conector de Expansão J1 Conector de Expansão J2Pino Nome Pino Nome1 RC4 1 RF72 RC3 2 RF63 RC2 3 MCLR4 RJ7 4 RG45 RJ6 5 RG26 RJ5 6 RG37 RJ4 7 RG08 RC7 8 RG19 RC6 9 RH210 RC0 10 RH311 RC1 11 RH012 RA4 12 RH113 RA5 13 +5V14 VSS 14 +5V15 RA0 15 RJ016 RA1 16 TERRA17 RA2 17 RJ218 RA3 18 RJ119 RF0 19 RB020 RF1 20 RJ321 RH4 21 RB222 RH5 22 RB123 RH6 23 RB424 RH7 24 RB325 RF2 25 RB626 RF3 26 RB527 RF4 27 RC528 RF5 28 RB7

11

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

4. Interfaces

4.0 EthernetA PMWE-10 possue uma porta Ethernet 10Mbps. O conector RJ-45

atende os requisitos da IEEE 802.3 e requisitos mecânicos FCC. O conector RJ-45 possui dois LEDs. O LED amarelo para indicação de link e o LED verde paraindicação de atividade de envio ou recepção de dados.

4.1 RS232A PMWE-10 possui uma interface USART. Os sinais USART são

disponíveis via conector DB25 (ver esquemas).

4.2 Conector ICSPA PMWE-10 tem um conector ICSP (In Circuit Serial Programming ) . Este

conector possibilita o microcontrolador PIC 18F8722 ser programado e osoftware carregado ser depurado (caso esteja se usando o ICD).

4.3 Pinos Analógicos e Digitais de E/SA placa PMWE-10 possui 52 pinos disponíveis para uso como entradas

ou saídas. Entradas e saídas digitais podem estão na faixa de 0 a 5V. Entradassão tolerantes a 3V e as saídas podem ser tolerantes a 3V adicionado-se umresistor em série (assumindo que as entradas de 3V possuem diodos clamping).

A PMWE-10 pode ser configurada para ter entre um a dezesseis canaisanalógicos. Cada canal tem resolução de 10 bits. Consulte o manual domicrocontrolador PIC 18F8722 para maiores detalhes.

4.4 ZIGBEEA placa PMWE-10 possui conector para receber o módulo XBEE ou

XBEE pró da MAXSTREAM. Neste caso, é necessário a fonte de 3,3VDC assimcomo os circuitos de correção de nível de sinal.

12

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

5. Especificações PMWE-10Item Símbolo Mínima Típica Máxima UnidadeTemperatura de operação Top 0 70 ºCTemperatura dearmazenamento

Tst -65 140 ºC

Tensão DC de alimentação Vdd 4,75 5 5,25 VTípica corrente deoperação a 20MHz(Vdd=5V)

Idd 80 mA

Pinos de I/O

Item Símbolo

Condição Min. Típ. Máx. Unidade

Tensão de entrada TTLnível lógico baixo

VIL 0 0,75 V

Tensão de entradaSchmitt Trigger nívellógico baixo

VIL 0 1 V

Tensão de entrada TTLnível lógico alto

VIH 2,05 5 V

Tensão de entradaSchmitt Trigger nívellógico alto

VIH 4 5 V

Tensão de saída nívellógico baixo

VOL IOL=8,5mA 0,6 V

Tensão de saída nívellógico baixo

VOH IOH=4,3mA 4,3 V

Carga capacitiva CIO 50 pF

Para maiores detalhes sobre os pinos do PIC18F8720 consulte o respectivoDataSheet.

13

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

6. Conectando a Placa PMWE-10 pela Primeira Vez

6.0 PrecauçõesA placa PMWE-10 fornecida com seu kit foi projetada para demonstrar as

possibilidades de uso de rede Ethernet ou Internet com o microcontroladorPIC18F8720 da Microchip. Como em qualquer sistema experimental, contudo,algumas precauções devem ser tomadas antes de qualquer novodesenvolvimento.

Sempre que um novo hardware ou software é adicionado a um sistema emrede, é sempre aconselhável criar uma rede de testes separada da LAN (LocalArea Network) de uso cotidiano. Isto permite testar o novo sistema em umambiente controlado e minimizar as possibilidades de interferência na rede deum novo sistema. As maiores fontes de interferência são:

• ENDEREÇAMENTO. Cada dispositivo na rede deve ter um únicoendereço IP. Se o protocolo DHCP (Dynamic Host Configuration Protocol)for usado, a PMWE-10 automaticamente será configurada com umendereço IP. Um endereço fixo deve ser fornecido se o protocolo DHCPnão for usado.

• TRÁFEGO. Enquanto o controlador Ethernet filtra mensagens nãoendereçadas a PMWE-10, uma rede Ethernet com muitas mensagensbroadcast pode carregar demasiadamente o microcontroladorPIC18F8722.

• SEGURANÇA DOS DADOS. Embora não seja comum que a adição deum dispositivo simples irá comprometer a integridade dos dados ouprivacidade de informações, é sempre uma boa idéia executar testesintensivamente com novos sistemas antes de adicioná-los a uma rede.

6.1 Conectando a PMWE-10 com um Host Local semDHCP

Embora a PMWE-10 esteja apta a trabalhar com endereço IP dinâmico(DHCP), você pode ter razões para não fazer isto. Além do que mencionaremos,pode haver outras razões para isto:

• Você pode não ter uma rede Ethernet disponível para testes.• Sua rede não faz uso do protocolo DHCP, de modo que a placa PMWE-

10 deve ser configurada com um endereço IP antes de ser conectada arede.

• Seu administrador de rede proibe você de colocar a PMWE-10 na redepara testes.

14

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

A PMWE-10 pode se comunicar diretamente com um computador pessoalquando ambos estiverem configurados corretamente. Esta configuração éconhecida como sistema host local. Um sistema para ser um host local devepossuir os seguintes requisitos básicos:

• Um computador com interface Ethernet com conector RJ-45.• Sistema operando com pilha TCP/IP.• Qualquer navegador Internet suportando protocolo HTTP 1.0 ou superior.

Nesta configuração deve-se usar um cabo crossover (incluso no kit) parainterligação da placa PMWE-10 com um computador pessoal. Para muitosdesenvolvedores de sistemas esta opção é a mais indicada para acessarpáginas Web que estão gravadas na memória Flash do microcontroladorPIC18F8722.

Na Figura 4 temos o sistema montado. Siga as seguintes etapas paramontar o sistema:

Figura 3: Conexão entre a PMWE e um computador Host usando cabo crossove

1. Energize a placa PMWE-10 através de um dos seguintes modos:• Conecte uma fonte entre 9VDC a 12VDC no conector J11.

15

12/6/2006 04:42 2EI v1.0

A placa PMWE-10 vem configurada de fábrica com endereço IP10.0.0.101 e máscara de rede 255.255.255.0. Nesta configuração oprotocolo DHCP não está habilitado.

KPMWE-10 – Guia do Usuário

• Energize a placa com 5VDC no conector de expansão pinos (5VDCnos pinos 13 e 14 do conector J2 e GND no pino 16 do conectorJ2).

2. Verifique que o LED D4 está ON.3. Verifique que o LED D3 (vermelho) na PMWE-10 pisca a cada

intervalo de 1 segundo.4. Conecte o cabo crossover entre a PMWE-10 e a placa de rede

Ethernet do computador que contém o navegador Web.5. Configure o computador do seguinte modo:

• Endereço IP: 10.0.0.X (aonde X deve ser diferente de 1)• Máscara de rede: 255.255.255.0

6. No computador, navegador Web, na barra de endereços digitehttp://10.0.0.1 e tecle <ENTER>.

7. A página Web semelhante a Figura 4 deverá ser carregada na tela deseu computador.

Figura 4 Página Web PMWE-10

16

12/6/2006 04:42 2EI v1.0

O apêndice A contém informações de como configurar o SistemaOperacional Windows XP para endereço IP e máscara de rede.

KPMWE-10 – Guia do Usuário

Os seguintes recursos podem ser verificados (dependendo doscomponentes soldados e configuração da pilha:

• Varie o potenciômetro R25 verificando que o valor do Pot1 tambémvaria na página do seu navegador Web.

• No navegador Web, clique no botão ALTERNA LEDA2 verificando queo estado (ligado e desligado) do LEDA2 (vermelho) varia na placa.

• Aperte a chave push-button SW2 e verifique que o estado da Chave(ligada ou desligada) varia na página do navegador Web também.

17

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

6.2 Alterando o endereço IP sem usar o DHCP

Para mudar o endereço IP da placa PMWE-10 deve-se fazer o uso docabo de programação que acompanha o kit de desenvolvimento. Osseguintes procedimentos devem ser executados para fazer a mudança doendereço IP da PMWE-10.

1. Instalando e Executando o MPLAB IDE

i. O primeiro passo é criar um projeto e uma área de trabalho nosistema de ambiente integrado MPLAB IDE. Um projeto contém osarquivos necessários para construir uma aplicação (códigos fontes,etc.). Uma área de trabalho contém um ou mais projetos einformações dos dispositivos selecionados, ferramentas dedepuração, localização das janelas abertas e outras configuraçõesIDE. O MPLAB IDE contém um Project Wizard para ajudar a criarnovos projetos. Utilizaremos projetos já prontos. Copie a pasta

18

12/6/2006 04:42 2EI v1.0

É aconselhável aceitar o nome das pastas sugeridas nos programas deinstalação. Embora os arquivos sejam instalados corretamente quandovocê selecionar outros destinos, eles podem não estar disponíveis parao seu ambiente de desenvolvimento se você decidir criar um novoprojeto usando a pilha TCP/IP.

A 2EI possui endereço MAC próprio de acordo com o “OrganizationallyUnique Identifier (OUI)” do IEEE. Os octetos da Microchip (00.04.A3)deverão ser substituídos pelos octetos da 2EI (00.16.A9).Esta alteração deverá ser feita no arquivo StackTsk.h , nas linhas 283 a288.#define MY_DEFAULT_MAC_BYTE1 (0x00)#define MY_DEFAULT_MAC_BYTE2 (0x16)#define MY_DEFAULT_MAC_BYTE3 (0xA9)

Continuam como estão na placa, conforme etiqueta adesiva:#define MY_DEFAULT_MAC_BYTE4 (0x??)#define MY_DEFAULT_MAC_BYTE5 (0x??)#define MY_DEFAULT_MAC_BYTE6 (0x??)

KPMWE-10 – Guia do Usuário

Pilhas\PMWE10\v1.24 (ou superior) que se encontra no CD para odisco rígido do seu computador.

ii. Verifique que a pasta Pilhas\PMWE10\v1.24 contém uma pastaSource que contém as pastas WebPages e SmallWebPages.

iii. Instale o ambiente de desenvolvimento MPLAB IDE. iv. Instale o compilador MCC18. v. Execute o programa MPLAB IDE.vi. Verifique a seleção de linguagens no aplicativo MPLAB IDE . Na

barra de menu selecione Project\Set Language Tool Locations. Najanela Set language Tool Locations selecione opção MicrochipC18 Toolsuite (clique em +). Clique no + de Executables. Clique no+ de Default Search Paths & Directories. Verifique:• Executables

i. MPASM Assembler (mpasmwin.exe) c:\Arquivosde programas\MPLAB IDE\MCHIP_Tools\mpasmwin.exe

ii. MPLAB C18 C Compiler (mcc18.exe)c:\mcc18\bin\c18demo.exe

iii. MPLINK Object Linker (mplink.exe)c:\mcc18\bin\mplink.exe

• Default Search Path & Directoriesi. Output Directory, $(BINDIR) ii. Intermediate s Directory,$(TMPDIR)iii. Include Search Path,$(INCDIR)iv. Library Search path,$(LIBDIR) c:\mcc18\libv. Linker_Script Search Path,$(LKDIR) c:\mcc18\lib

vii. No MPLAB IDE, selecione na barra de menu Project\Open .Selecione o projeto MpNICPG.pjt da pasta Stack_2EI do seu discorígido.

viii. No MPLAB IDE, selecione na barra de menu View\Project. EmLinker Script selecione 18f8720.lkr (c:\mcc18\lkr).

ix. Vá ao menu Project e selecione Build All. O projeto será compiladoe linkado. Um novo arquivo mpnicpg.hex está pronto para sertransferido para a PMWE-10.

19

12/6/2006 04:42 2EI v1.0

Arquivos copiados do CD são somente de leitura; você necessitarátrocar os atributos dos arquivos que necessitem ser editados.

O nome do projeto desta aplicação é MpNICPG.pjt. Ele usa NIC ememória de programa interna do microcontrolador para armazenamentodo Web Site.

KPMWE-10 – Guia do Usuário

2. Alterando o Endereço IP e Máscara de Rede

Abra o arquivo StackTsk.h usando o comando da barra de menuFile\Open. As definições abaixo contêm o endereço IP:

#define MY_DEFAULT_IP_ADDR_BYTE1 (10) #define MY_DEFAULT_IP_ADDR_BYTE2 (10)#define MY_DEFAULT_IP_ADDR_BYTE3 (5)#define MY_DEFAULT_IP_ADDR_BYTE4 (15)Obs: significa endereço IP 10.10.5.15

#define MY_DEFAULT_MASK_BYTE (0xff)#define MY_DEFAULT_MASK_BYTE (0xff)#define MY_DEFAULT_MASK_BYTE (0xff)#define MY_DEFAULT_MASK_BYTE (0x00)Obs: significa máscara 255.255.255.0

#define MY_DEFAULT_MAC_BYTE1 (0x00)#define MY_DEFAULT_MAC_BYTE2 (0x16)#define MY_DEFAULT_MAC_BYTE3 (0xa9)#define MY_DEFAULT_MAC_BYTE4 (0x00)#define MY_DEFAULT_MAC_BYTE5 (0x00)#define MY_DEFAULT_MAC_BYTE6 (0x00)Significa endereço MAC: 00.16.a9.00.00.00

Faça as modificações que julgar necessário e compile o projeto novamente.O novo arquivo mpnicpg.hex gerado conterá as modificações que você efetuou.

2. Instalando e Executando o Programa IC-Prog 1.05D (Somente paraPIC18F8720 e PIC18F8621)

O programa IC-Prog é um programador de protótipos desenvolvido porBonny Gizen (www.ic-prog.com). Para instalar o IC-Prog siga osseguintes passos:

1. Copie a pasta ICPROG que se encontra no CD para o disco rígido doseu computador.

2. Execute o programa ICPROG a partir do disco rígido do seucomputador. Selecione a serial em que você colocará o cabo deprogramação na janela “Hardware settings”. O programador

20

12/6/2006 04:42 2EI v1.0

Os endereços MAC de cada placa devem ser diferentes uns dos outros.

KPMWE-10 – Guia do Usuário

selecionado deve ser JDM Programmer. Se você estiver usando oWindows XP ou NT selecione Windows API, caso contrário selecioneDirect IO. A opção Retardar I/O pode estar com o valor mínimo. Casoa programação da placa não tenha sido efetuada corretamenteselecione um valor progressivamente maior de Retardar I/O até que aprogramação ocorra sem erros.

3. Na barra de menu selecione Settings\Options. Clique na abaLanguage. Selecione a linguagem Portuguese.

4. Na barra de menu selecione Configuração\Opções. Clique na abaProgramando. A opção “Verifique depois da programação “ não deveestar selecionada.

5. Na barra de menu selecione Configuração\Opções. Clique na aba“Diversos”. Em “Processo Prioritário” selecione “Alto”.

6. No aplicativo ICPROG, na barra de menus, selecione Configuração\Dispositivo\Microchip PIC\PIC18F8720.

7. Na barra de menus, selecione Arquivo\Abrir e carregue o arquivo HEXmpniccpg que se encontra na pasta C:\Stack_E2I\Source.

8. No programa IC-Prog, os registradores de configuração devem estarcarregados com os seguintes valores:

• Config1 - 0x2200• Config2 - 0x0004• Config3 - 0x0183 • Config4 - 0x0081• Config5 - 0xC0FF• Config6 - 0xE0FF• Config7 - 0x40FF• Valor ID - 0x0600

9. Alimente a placa PMWE-10 com 5 volts.10.Conecte o cabo de programação na saída serial de seu computador e

na placa PMWE-10.11. Na interface de programação pressione a chave de modo que ela

habilite a programação do microcontrolador da PMWE-10. (▄ - Cursor

21

12/6/2006 04:42 2EI v1.0

A interface de programação é de custo muito baixo, mas não écapaz de verificar se a programação foi feita de forma correta. Caso o ledD3 não fique piscando imediatamente após voltar a chave deprogramação para a posição de operação, indica que o programa não foigravado corretamente.

KPMWE-10 – Guia do Usuário

da chave posição de programar , █ - Cursor da chave posição de nãoprogramar)

12. Na barra de menu selecione Comando e depois Programar Tudo. OLED da interface de programação deverá ficar ligado.

13.Espere a finalização da programação.14.Pressione a chave de programação de modo que ela libere ao sinal de

RESET do microcontrolador. 15. Execute os procedimentos do item 7.2.

22

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

3. Instalando o Programador WINPIC (PIC18F8722)

Instale o programa WinPicSetup que se encontra na pasta WinPIC doCDROM. Substitua o arquivo “devices” pelo o que se encontra no CD-ROMna pasta WinPIC. O arquivo “devices” que se encontra no CDROM possui osparâmetros para gravação do PIC18F8722.

Configure o WinPIC de acordo com as Figuras 5 e 6.

23

12/6/2006 04:42 2EI v1.0

Figura 5: Configuração1 - WINPIC

Figura 6: Configuração2 - WINPIC

KPMWE-10 – Guia do Usuário

Vá no menu “Arquivo” , opção “Abrir”, e carregue o arquivo “mpnicpg.hex”

que se encontra na pasta Pilhas\PMWE10\v1.24\Source.

Selecione a aba mensagens.

Verifique na Figura 7 que WriteBuffers=32 words, caso isto não aconteça,

consulte a documentação do WINPIC. Uma das alternativas para resolver este

problema é executar o WINPIC através da linha de comando “winpic

/device=xxxx”. Se não conseguir resolver o problema entre em contato com

[email protected].

Verifique na Interface de Programação as chaves “RESET” e “CK/DAD”

devem estar pressionadas, ou seja, em baixo.

Clique no botão “Programar Dispositivo”.

A programação deve ocorrer sem nenhum erro, conforme fa Figura 8.

24

12/6/2006 04:42 2EI v1.0

Figura 7: Configuração3 - WINPIC

KPMWE-10 – Guia do Usuário

Para execução do programa as chaves da Interface de ProgramaçãoRESET e CK/DAD não devem estar pressionadas.

Caso ocorram erros durante a programação, sugiro que o programa

WinPIC seja executado no modo de compatibilidade Windows 2000, conforme a

Figura 9.

25

12/6/2006 04:42 2EI v1.0

Figura 8: Configuração4 - WINPIC

Figura 9: Configuração 5 - WINPIC

KPMWE-10 – Guia do Usuário

26

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

4. Modificando as Páginas Web

1. Faça as modificações necessárias na página INDEX.HTML ou emoutras páginas .HTML que se encontram na pastaC:\Stack2EI\Source\WebPages usando um editor de textos. Vocêdeve ter conhecimentos em HTML para modificar estas páginas oucriar novas páginas Web usando aplicativos como o MicrosoftFrontPage.

2. Na pasta C:\PIC18F\Stack2EI\Source execute o comando mpfs /cwebpages MPFSImg.c (ou simplesmente execute o arquivo batchimagem.bat) para gerar um novo arquivo .C que contém as imagensdas novas páginas geradas.

3. No programa MPLAB IDE , selecione a opção Project\Build All paragerar um novo arquivo ,mpniccpg.hex.

4. utilize o programa IC-Prog e o cabo de programação para gravar onovo arquivo mpniccpg .hex que contém as novas páginas Web.

6.3 Usando o DHCP

Para uso de endereço IP dinâmico, ou seja, uso do protocolo DHCP énecessário incluir a macro definição “STACK_USE_DHCP” nas “Build Options”de cada arquivo (Apêndice B). Siga os mesmos procedimentos do item 5.2 paragravação da memória Flash do microcontrolador PIC18F8720. Para saber oendereço IP dinâmico é necessário perguntar ao seu administrador de rede ouusar um display de LCD adicionando a macro definição “USE_LCD” nosarquivos que constituem o projeto.

27

12/6/2006 04:42 2EI v1.0

Não esqueça de verificar a posição do cabo que interliga ainterface de programação com a placa PMWE-10. A etiqueta .INT indicaque o conector deve ser colocado na interface de programação pino 1. Aetiqueta .PMWE10 significa que o conector deve ser colocado na placaPMWE-10

KPMWE-10 – Guia do Usuário

7. Dimensões da PMWE-10

As dimensões estão em milésimos de polegada de modo que em centímetrossão : 130 (5130) X 72(2840) mm.

28

12/6/2006 04:42 2EI v1.0

Figura 10: Dimensões da Placa PMWE

KPMWE-10 – Guia do Usuário

8. Esquemas

29

12/6/2006 04:42 2EI v1.0

Figura 11: Esquema Microcontrolador

KPMWE-10 – Guia do Usuário

30

12/6/2006 04:42 2EI v1.0

Figura 12: Esquema Ethernet

KPMWE-10 – Guia do Usuário

31

12/6/2006 04:42 2EI v1.0

Figura 13: Esquema Periféricos 1

KPMWE-10 – Guia do Usuário

32

12/6/2006 04:42 2EI v1.0

Figura 14: Esquema Periféricos 2

KPMWE-10 – Guia do Usuário

9. Configuração do PIC18F8720A configuração do PIC18F8722 encontra-se no arquivo websrvr.c da pilha

exemplo. Para maiores detalhes consulte o manual do microcontrolador PIC18F8722.

As tabelas a seguir auxiliam configuração do PIC18F8720.

Tabela 1 Bits de Configuração PIC18F8720Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Padrão

300001h CONFIG1H - - OSCEN - - FOSC2 FOSC1 FOSC0 0010 0111300002h CONFIG2L - - - - BORV1 BORV0 BODEN PWRTEN 0000 1111300003h CONFIG2H - - - - WDTPS2 WDTPS1 WDTPS

0WDTEN 0000 1111

300004h CONFIG3L WAIT - - - - - PM1 PM0 1000 0011300005h CONFIG3H - - - - - - - CCP2MX 0000 0001300006h CONFIG4L DEBUG - - - - LPV - STVREN 1000 0101300008h CONFIG5L CP7 CP6 CP5 CP4 CP3 CP2 CP1 CP0 1111 1111300009h CONFIG5H CPD CPB - - - - - - 1100 000030000Ah CONFIG6L WRT7 WRT6 WRT5 WRT4 WRT3 WRT2 WRT1 WRT0 1111 111130000Bh CONFIG6H WRTD WRTB WRTC - - - - - 1110 000030000Ch CONFIG7L EBTR7 EBTR6 EBTR5 EBTR4 EBTR3 EBTR2 EBTR1 EBTR0 1111 111130000Dh CONFIG7H - EBTRB - - - - - - 0100 00003FFFFEh DEVID1 DEV2 DEV1 DEV0 REV4 REV3 REV2 REV1 REV0 Tab.3FFFFFh DEVID2 DEV10 DEV9 DEV8 DEV7 DEV6 DEV5 DEV4 DEV3 Tab.

33

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Tabela 2 Bits de CONFIG1, CONFIG2 e CONFIG3

Nome do Bit Words DescriçãoOSCEN CONFIG1H Opção Low power System Clock (Timer1) Enable Bit

1 = Desabilitado0 = Habilitado

FOSC2:FOSC0 CONFIG1H Seleção dos bits do oscilador111 = RC com OSC2 configurado como RA6110 = HS com PLL habilitado101 = EC com OSC2 configurado como RA6100 = RC com OSC2 configurado como “dividido por 4 clockoutput”011 = RC010 = HS001 = XT000 = LP

BORV1:BORV0 CONFIG2L Bits Brown-out reset Voltage11 = VBOR para 2,0V10 = VBOR para 2,7V01 = VBOR para 4,2V00 = VBOR para 4,5V

BOREN CONFIG2L Bit Brown-out Reset Enable1 = Habilitado0 = Desabilitado

PWRTEN CONFIG2L Bit Power-up Timer Enable1 = Desabilitado0 = Habilitado

WDTPS2:WDTPS0 CONFIG2H Bits WatchDog Postscaler Select111 = 1:128110 = 1:64101 = 1:32100 = 1:16011 = 1:8010 = 1:4001 = 1:2000 = 1:1

WDTEN CONFIG2H Bit Watchdog Timer Enable1 = Habilitado0 = Desabilitado

WAIT CONFIG3L Bit External Bus Data Wait Enable 1 = Seleção indisponível0 = Seleção determinada pelos bits WAIT1:WAIT0 doregistrador MEMCOM

PM1:PM0 CONFIG3L Bits Processor Mode Select11 = microcontrolador10 = Microprocessador01 = Microprocessador com modo Boot Block00 = Microcontrolador extendido

34

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Tabela 3 Bits de CONFIG3, CONFIG4 e CONFIG5

Nome do Bit Words DescriçãoT10SCMX3 CONFIG3H Não impl. 18F8720

CCPMX CONFIG3H Bit MUXCCP21 = Entrada/saída CCP2 multiplexada comRC10 = Entrada/saída CCP2 multiplexada comRB3

DEBUG CONFIG4L Bit background Debugger Enable1 = Desabilitado0 = Habilitado

LVP CONFIG4L Bit Low Voltage Programming enable1 = Habilitado0 = Desabilitado

STVREN CONFIG4L Bit Stack Overflow/Underflow Reset Enable1 = Stack causará RESET0 = Stack não causará RESET

CP0 CONFIG5L Bits Code Protection (Block 0)1 = Código de memória näo protegido0 = Código de memória protegido

CP1 CONFIG5L Bits Code Protection (Block 1)1 = Código de memória näo protegido0 = Código de memória protegido

CP2 CONFIG5L Bits Code Protection (Block 2)1 = Código de memória näo protegido0 = Código de memória protegido

CP3 CONFIG5L Bits Code Protection (Block 3)1 = Código de memória näo protegido0 = Código de memória protegido

CP4 CONFIG5L Bits Code Protection (Block 4)1 = Código de memória näo protegido0 = Código de memória protegido

CP5 CONFIG5L Bits Code Protection (Block 5)1 = Código de memória näo protegido0 = Código de memória protegido

CP6 CONFIG5L Bits Code Protection (Block 6)1 = Código de memória näo protegido0 = Código de memória protegido

CP7 CONFIG5L Bits Code Protection (Block 7)1 = Código de memória näo protegido0 = Código de memória protegido

35

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Tabela 4 Bits de CONFIG 5 e CONFIG6

Nome do Bit Words DescriçãoCPD CONFIG5H Bits Code Protection (Data EEPROM)

1 = Código Data EEPROM näo protegido0 = Código Data EEPROM protegido

CPB CONFIG5H Bits Code Protection (Bloco de Boot)1 = Código do bloco de boot näo protegido0 = Código do bloco de boot protegido

WRT0 CONFIG6L Bit Table Write Protection (Bloco 0)1 = Código de memória näo protegido0 = Código de memória protegido

WRT1 CONFIG6L Bit Table Write Protection (Bloco 1)1 = Código de memória näo protegido0 = Código de memória protegido

WRT2 CONFIG6L Bit Table Write Protection (Bloco 2)1 = Código de memória näo protegido0 = Código de memória protegido

WRT3 CONFIG6L Bit Table Write Protection (Bloco 3)1 = Código de memória näo protegido0 = Código de memória protegido

WRT4 CONFIG6L Bit Table Write Protection (Bloco 4)1 = Código de memória näo protegido0 = Código de memória protegido

WRT5 CONFIG6L Bit Table Write Protection (Bloco 5)1 = Código de memória näo protegido0 = Código de memória protegido

WRT6 CONFIG6L Bit Table Write Protection (Bloco 6)1 = Código de memória näo protegido0 = Código de memória protegido

WRT7 CONFIG6L Bit Table Write Protection (Bloco 7)1 = Código de memória näo protegido0 = Código de memória protegido

WRTD CONFIG6H Bit Table Write Protection (Data EEPROM)1 = Data EEPROM näo protegido0 = Data EEPROM protegido

WRTB CONFIG6H Bit Table Write Protection (Bloco de boot)1 = Bloco de Boot näo protegido0 = Bloco de boot protegido

WRTC CONFIG6H Bit Table Write Protection (Registradores de configuraçäo)1 = Registradores de configuraçäo näo protegidos0 = Registradores de configuraçäo protegidos

36

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Tabela 5 Bits de CONFIG7 e DEVID

Nome do Bit Words DescriçãoEBTR0 CONFIG7L Bit Table Read Protection (Bloco 0)

1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR1 CONFIG7L Bit Table Read Protection (Bloco 1)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR2 CONFIG7L Bit Table Read Protection (Bloco 2)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR3 CONFIG7L Bit Table Read Protection (Bloco 3)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR4 CONFIG7L Bit Table Read Protection (Bloco 4)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR5 CONFIG7L Bit Table Read Protection (Bloco 5)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR6 CONFIG7L Bit Table Read Protection (Bloco 6)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTR7 CONFIG7L Bit Table Read Protection (Bloco 7)1 = Código de memória näo protegido da tabela de leitura executada emoutros blocos0 = Código de memória protegido da tabela de leitura executada em outrosblocos

EBTRB CONFIG7H Bit Table Read Protection (Bloco de boot)1 = Código de boot näo protegido da tabela de leitura executada em outrosblocos0 = Código de boot protegido da tabela de leitura executada em outrosblocos

DEV10:DEV3 DEVID2 Bits Device IDEstes bits säo usados com os bits DEV2:DEV0 no registrador DEVID1 paraidentificar números de componentes.

DEV2:DEV0 DEVID1 Bits Device IDEstes bits säo usados com os bits DEV10:DEV3 no registrador DEVID1para identificar números de componentes

REV4:REV0 DEVID1 Estes bits säo usados para identificar revisöes de dispositivos

37

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Tabela 6 Configuraçäo gravada na entrega do kit

CONFIGURAÇÃO PIC18F8720CONFIG1L 0x0000 0x0000 0x00CONFIG1H 0x0010 0x0010 0x22

0x2200

CONFIG2L 0x0000 0x0100 0x04CONFIG2H 0x0000 0x0000 0x00

0x0004

CONFIG3L 0x1000 0x0011 0x83CONFIG3H 0x0000 0x0001 0x01

0x0183

CONFIG4L 0x1000 0x0001 0x81CONFIG4H 0x0000 0x0000 0x00

0x0081

CONFIG5L 0x1111 0x1111 0xFFCONFIG5H 0x1100 0x0000 0xC0

0xC0FF

CONFIG6L 0x1111 0x1111 0xFFCONFIG6H 0x1110 0x0000 0xE0

0xE0FF

CONFIG7L 0x1111 0x1111 0xFFCONFIG7H 0x0100 0x0000 0x40

0x40FF

DEVID1 0x0000 0x0000 0x00DEVID2 0x0000 0x0110 0x06

0x0600

38

12/6/2006 04:42 2EI v1.0

As principais configurações da Pilha TCP/IP são:• Oscilador: HS• Watchdog Timer: Desabilitado• Low Voltage Programming: Desabilitado

KPMWE-10 – Guia do Usuário

10.Apêndice A . Configurando o Windows XP com IPfixo.

Nosso objetivo neste apêndice é configurar o computador com endereço IP10.10.5.1 e máscara de rede 255.255.255.0. Para isso, siga os seguintespassos:

1. No menu Início, selecione o Painel de Controle.2. Dê um duplo clique em Conexões de Rede.3. Clique com o botão direito do mouse em Local Área Connection e

selecione propriedades.4. Selecione Internet Protocol (TCP/IP) e clique no botão Propriedades.5. Configure o endereço IP com 10.10.5.1 e Máscara de Rede com

255.255.255.0 conforme Figura 15.6. Clique em OK.

Figura 15: Configurando IP e Máscara de Rede

39

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

11.Apêndice B

Leia a AN833 da Microchip para verificar quais definições fazem parte dapilha TCP/IP. Além das definições da Microchip foram introduzidas pela 2EI:

• EMAIL• TCPIP• SNMP• USE_LCD• TECLADO• CELULAR_SMS

40

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

12.Apêndice C. O Servidor HTTP Microchip

O Servidor HTTP da Microchip utilizado em nossa aplicação éimplementado como uma tarefa cooperativa que co-existe com a pilhaMicrochip TCP/IP e a aplicação principal do usuário. O Servidor éimplementado pelo arquivo “HTTP.C” , com a aplicação do usuárioimplementando duas chamadas de funções. O arquivo de demonstração“Websrvr.c” deverá ser usado como modelo de aplicação para criação dasinterfaces apropriadas.

O Servidor HTTP da Microchip não implementa todas as funcionalidadesdos documentos RFC, mas possui características mínimas paraimplementação em sistemas embarcados. O usuário pode facilmenteadicionar novas funcionalidades como desejar.

O Servidor HTTP incorpora as seguintes características:• Suporta múltiplas conexões HTTP• Contém Simple File System (MPFS)• Suporta páginas Web localizadas na memória Flash do

microcontrolador• Páginas Web compatíveis com o formato MPFS• Suporta o método HTTP “GET” (outros métodos podem ser

facilmente adicionados)• Suporta Common Gateway Interface (CGI) para invocar funções

pré-definidas pelos navegadores• Suporta geração de conteúdo dinâmico de páginas Web

Qualquer página Web a ser armazenada na PMWE-10 dever serconvertida para o formato MPFS.

O Servidor HTTP usa o arquivo “index.htm” como a página Web inicial aser chamada pelo navegador Web, através do comando http://X.X.X.X (aondeX.X.X.X é o endereço IP da placa PMWE-10, seja estático ou dinâmico). Entãotodas as aplicações devem incluir um arquivo “index.htm”. Se necessário, onome desta página inicial pode ser trocada modificando a definição docompilador HTTP_DEFAULT_FILE_STRING no arquivo “http.c”. É muitoimportante que nenhuma página Web contenha algum dos seguintescaracteres:

• ‘ ou “• < ou >• #• %• {, }, [ ou ]• |

41

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

• \• ~• ^

Se uma das páginas Web contiver um destes caracteres, a correspondentepágina Web tornar-se-á inacessível. Nenhum aviso de atenção será dado.

O Servidor HTTP mantém uma lista de tipos de arquivos que ele suporta.Esta informação é usada para avisar um navegador como interpretar um arquivoem particular, baseado na extensão do arquivo. Por padrão, o Servidor HTTPMicrochip suporta arquivos “.txt”, “. htm”, “.gif”, “.cgi”, “.jpg”, “.cla” e “.wav”. Seuma aplicação usa tipos de arquivos que não estão incluídos nesta lista, ousuário pode modificar a tabela “httpFiles” através da correspondenteenumeração “httpContents” no arquivo “http.c”.

O servidor HTTP pode alterar páginas dinamicamente e substituirinformações em tempo real, como status de entradas e saídas domicrocontrolador. Para incorporar estas informações em tempo real, ocorrespondente arquivo CGI (*.cgi) deve conter uma string ‘%xx’, aonde ocaracter ‘%’ serve como código de controle e ‘xx’ representa o identificador davariável com dois dígitos.

O identificador das variáveis deve estar entre 00-99. Quando o ServidorHTTP encontra %xx, ele remove o caracter % e chama a função HTTPGetVar.Se uma página requer o caracter ‘%’ ele deve ser precedido por outro caracter‘%’. Por exemplo, para mostrar “23%” em uma página, coloque “23%%”.

A seguir explicaremos os parâmetros da função HTTPGetVar eexemplificaremos um pequeno código contido nesta função.

HTTPGetVar(Byte var, Word ref, Byte *val)

42

12/6/2006 04:42 2EI v1.0

<html><meta http-equiv="refresh" content="3"><body>

<table> <tr> <td><b>Resultados</b></td> </tr> <tr> <td>Pot1:</td> <td>%02</td> </tr> <tr> <td>Pot2:</td> <td>%03</td> </tr></table>

KPMWE-10 – Guia do Usuário

var: ENTRADA . Identificador da variável cujo valor é para ser retornado.ref: ENTRADA. Usado para uma única transferência ou transferência de

vetores.val: SAÏDA. Byte a ser transferido.

Valor de retorno. Se o valor retornado for diferente de HTTP_END_OF_VAR,o servidor HTTP chamará a função outra vez. Se o valor retornado forHTTP_END_OF_VAR o servidor HTTP não mais chamará a função e assumeque a variável foi totalmente transferida.

No exemplo a seguir, o parâmetro val representa o estado da porta RB5.Note também que o retorno HTTP_END_OF_VAR indica que a variável é de umbyte somente.

No exemplo a seguir mostraremos o número serial do Servidor Web.

43

12/6/2006 04:42 2EI v1.0

WORD HTTPGetVar(BYTE var, WORD ref, BYTE *val){

// identificação da variável// é referente a RB5if ( var == 4 ){

// retornaremos ‘1 ‘ se RB5 estiver em HIGH, ou ‘0’se LOWif ( PORTBbits.RB5 )

*val = ‘1’;else

*val = 0;// Reporta ao HTTP que este foi o último byte do valor da variávelreturn HTTP_END_OF_VAR;

}// Checa outras variáveis

KPMWE-10 – Guia do Usuário

44

12/6/2006 04:42 2EI v1.0

WORD HTTPGetVar(BYTE var, WORD ref, BYTE *val){

// identificação da variável// é referente a RB5// Se sim, segue o mesmo do Exemplo 1

...

...// é referente a variável do número serialif ( var == 5){

// o número serial acaba com um caracter NULL// sendo a primeira chamadaif (ref == HTTP_START_OF_VAR){

// Esta é a primeira chamada. Inicializa índice para n.série

ref = (BYTE)0;}// Agora acessamos byte no índice corrente e salvamos no

buffer*val = SerailNumberStr[(BYTE)ref];// É final da stringif (*val==’\0’){

//Sim, nós estamos transferindo a string.//Retornamos com HTTP_END_OF_VAR para

notificar o//servidor HTTP que nós estamos finalizando a

transferência//do valorreturn HTTP_END_OF_VAR;

}// Ou caso contrário, incrementa o índice do vetor e retorna

para o// servidor HTTP(BYTE)ref++;// desde que não é o fim da string retorna refreturn ref;

else// checa por outras variáveis

KPMWE-10 – Guia do Usuário

A página “status.cgi” sendo servida pelo servidor HTTP contém a seguintelinha HTML:

....<td>Serial Number=%05</td>....O servidor HTTP ao processar este arquivo e encontrando a string ‘%05’ faz

uma chamada HTTPGetVar(4, HTTP_START_OF_VAR, &value). A aplicaçãoprincipal implementa HTTPGetVar como segue no Exemplo 2.

Os Exemplos 1 e 2 mostraram em um navegador Web variáveis que seencontram na memória do microcontrolador. O Exemplo 3 mostra como alterarvalores em um navegador Web no cliente e transferi-los para a memória domicrocontrolador.

No navegador Web a página seguinte permite a alteração da variável “Nívelde Potência”, “Limite de Potência Inferior” e “Limite de Potência Superior”.

45

12/6/2006 04:42 2EI v1.0

<html>

<body><center><FORM METHOD=Get action=Power.cgi><table><tr><td>Nível de Potência:</td><td><input type=text size=2 maxlength=1 name=P></td></tr> <tr><td>Limite de Potência Inferior:</td><td><input type=text size=2 maxlength=1 name=L ></td></tr><tr><td>Limite de Potência Superior:</td><td><input type=text size=2 maxlength=1 name=H ></td></tr><tr><td><input type=submit name=B value=Apply></td></tr></table></body></html>

Nível de Potência: 1

Limite de Potência Inferior: 5

Limite de Potência Superior: 9

Apply

KPMWE-10 – Guia do Usuário

Esta página mostra uma tabela com o nome das variáveis na primeira colunae caixa de textos para entrada de valores na segunda coluna. A primeira linha,primeira coluna contém o nome da variável “Nível de Potência”; a segundacoluna é uma caixa de texto para mostrar e modificar o nível de potência. Aúltima linha contém um botão “Apply” . Com esta página o usuário tem ahabilidade de modificar o nível de potência na caixa de texto e enviar este valorao microcontrolador na PMWE-10.

Assuma que o usuário entra com os valores ‘5’,’1’e ‘9’respectivamentenas caixas de texto do nível de potência, limite inferior de potência e limitesuperior de potência . Em seguida clica no botão “Apply”. O navegador cria umarequisição HTTP com uma string “Power.cgi?P=5&L=1&H=9” e envia ao servidorHTTP. O servidor chama a função HTTPExecCmd com os seguintesparâmetros:

argv[0]=”Power.cgi”,argv[1]=”P”,argv[2]=”5”,argv[3]=”L’,argv[4]=”1”,argv[5]=”H”, argv[6]=”9” argc=7

A aplicação principal deverá implementar a função HTTPExecCmd comosegue.

Figura 16 Função HTTPExecCmd alterando vaolores de variáveis

Neste exemplo, o número total de argumentos excede o padrão de 5. Entãomodifique o valor de MAX_HTTP_ARGS (localizado em “http.c”) em não menosde 7.

46

12/6/2006 04:42 2EI v1.0

void HTTPExecCmd(BYTE *argv, BYTE argc){

BYTE i;// Varre todos os parâmetrosfor (i=1; i < argc;i++){

// Identifica parâmetrosif ( argv[i][0] == ‘P’) // É nível de potência?{

PowerLevel = atoi(argv[++i]);}else if ( argv[i][0] == ‘L’ ) // É limite inferior de potência?

LowPowerSetting = atoi (argv[++i]);else if (argv[i][0] == ‘H’) // É limite superior de potência?

HighPowerSeting = atoi (argv[++i]);}// se outra página é para ser mostrada como resultado deste comando// copie o nome em maiúsculo para argv[0]// strcpy(argv[0], “RESULTS.CGI”);

}

KPMWE-10 – Guia do Usuário

13.Apêndice D. Enviando e recebendo mensagens SMSatravés do Celular Siemens C55 (Modo PDU).

Nosso exemplo consiste em enviar os caracteres “.b01” para o telefonecelular de número 91897299. “.b01” significa que o microcontrolador deverácolocar em nível lógico alto a saída 1 da porta B.

Os seguintes procedimentos devem ser seguidos:• Apague todas as mensagens que se encontram em seu celular, sejam

enviadas ou sejam recebidas.• Envie através de seu celular uma mensagem contendo somente o

caracter “A” para o número do celular desejado (em nosso caso91897299).

• Conecte o cabo serial entre um computador PC e o telefone celullarSiemens C55. Faça uma conexão com o celular usando oHyperTerminal com configuração da conexão 9600, 8, N, 1.

• Execute o comando AT e verifique como resposta OK.• Execute o comando AT + CMGL=4.• Verifique que a resposta deve ser algo parecido com :

+CMGL : 3,2,,130791559119103500B1000881199827990000AD0141

Significados:O algarismo 3 significa que foi uma mensagem enviada.O algarismo 2 significa a posição de memória em que seencontrava a mensagem.O algarismo 13 significa o comprimento da mensagem semconsiderar o número do centro de serviço de mensagens(559119103500), o comprimento do número do centro de serviçode mensagens (07) e o tipo de endereçamento (19).

Os bytes da segunda linha significam:

47

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

1 07 Comprimento do número do centro de serviços incluindotipo de endereço

2 91 tipo de endereço3 554 915 196 107 358 00

Número do centro de serviço. O número do centro deserviço é 551991015300. Osbserve que a codificação é559119103500. Você pode verificar o número do centro deserviços através do comando AT + CSCA?

9 B1 Mensagem vai do telefone para a rede10 00 TP-Message-Reference11 08 Comprimento do número do telefone a ser enviada a

mensagem12 81 International Adress13 1914 9815 2716 99

Número do telefone 91897299. Verifique que a ordem dacodificação é 19982799.

17 00 TP-Protocol-Identifier18 00 TP-Data-Coding-Scheme19 AD TP-Validaty-Period20 01 Comprimento da mensagem cacarcteres ASCII em

hexadecimal21 41 caracter “A “

• Para enviar os caracteres “.b01” para o telefone 91897299 devemosexecutar os seguintes comandos no Hyperterminal:

AT + CMGC=?Mensagem recebida OKAT + CMGF = 0Mensagem recebida OKAT+CMGS=16 (Obs: 16= 12 + tamanho da mensagem em octetosem decimal)Mensagem recebida >>0791559119103500B1000881199827990000AD042E312C06<ctrl-Z>Mensagem recebida +CMGS: 62OK

48

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Como transformar os caracteres “.b01” do formato ASCII para o formatode octetos.

. = 0x2E = (0x 0010 1110)b = 0x62 = (0x 0110 0010)0 = 0x30 = (0x 0011 0000)1 = 0X31 = (0X 0011 0001)

Devemos somente levar em consideração os 7 bits menos significativosde cada caracter, de modo que temos:

. = 0x2E = (0x 010 1110)b = 0x62 = (0x 110 0010)0 = 0x30 = (0x 011 0000)1 = 0X31 = (0X 011 0001)

O primeiro octeto a ser transmitido é formado pelo bit menos significativodo caracter “b” e os 7 bits do caracter “.” = 0x 0 0101110 = 0x2E .

O segundo octeto a ser transmitido é formado pelo dois bits menossignificativo do caracter “0” e os 6 bits do caracter “b” que não foram usados noprimeiro octeto = 0x 00 110 001 = 0x31.

O terceiro octeto a ser transmitido é formado pelo três bits menossignificativo do caracter “1” e os 5 bits do caracter “0” que não foram usados nosegundo octeto = 0x 001 011 00 = 0x2C.

O quarto octeto a ser transmitido é formado pelos quatro bits do caracter“1” que não foram usados no terceiro octeto complementados com zeros aesquerda = 0x 0000 011 0 = 0x06.

Em relação aos dados reais da mensagem temos que transmitir: 0x2E0x31 0x2C 0x06.

Obs: Se executarmos o comando AT+CMGF? e recebermos como respostao parâmetro “1” também, significa que o seu celular pode enviar uma mensagemno formato texto.

Comando AT DescriçãoAT+CMGF=1<enter> SMS em modo texto.

AT+CMGS="+4441793181022"<enter><texto><ctrl–Z>

A mensagem é enviada para o número+4441793181022. Substitua o núemro+444... com seu próprio número.

Mensagem enviada com sucesso.

49

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

Exemplo 2

Mensagem a ser enviada: Tanque setor norte\r\n alarme ativo\r\n necessita manutenção

Número de caracteres: 54 Número de bits = 54 * 7 = 378 bitsNúmero de octetos na mensagem = 378/8= 47 octetos + 2 bits 48 octetos(complementa os últimos 2 bits com zeros)

Em relação aos dados reais da mensagem temos que enviar:

F4 B0 3B 5E 2F 83 E6 65 FA 5B 0E 72 BF E5 F4 32 48 11 66 87 E5 ED 32 28 4C 4FDB DF 20 85 BB 3C 2E CF E7 69 7A 18 D4 0E BB EB F4 B2 7B 1C 7E 03

Obs: verifique a existência de 48 octetos

Os comandos a serem enviados ao modem devem ser:

AT+CMGC=?AT+CMGF=0AT+CMGS=60 (12 + número de octetos da mensagem em decimal) = (12 + 48)=60

Oct. Descrição0 07 Comprimento do número do centro de serviços incluindo

tipo de endereço1 91 tipo de endereço2 553 914 195 106 357 00

Número do centro de serviço. O número do centro deserviço é 551991015300. Osbserve que a codificação é559119103500. Você pode verificar o número do centrode serviços através do comando AT + CSCA?

1 B1 Mensagem vai do telefone para a rede2 00 TP-Message-Reference3 08 Comprimento do número do telefone a ser enviada a

50

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

mensagem4 81 International Adress5 196 987 278 99

Número do telefone 91897299. Verifique que a ordem dacodificação é 19982799.

9 00 TP-Protocol-Identifier10 00 TP-Data-Coding-Scheme11 AD TP-Validaty-Period12 36 Comprimento da mensagem em ASCII em HEXA13-57

Mensagem74 2f f2 bf 43 e5 4c 0d 2e ba bb fb b1 83 5b e5 21 ed 4f 85 cf18 eb 3e 3b e6 0e f4 66 32 db bb e7 d4 f4 7e 5e 65 72 72 8b48 df 3c 69 15 b2 03

AT + CMGC=?Mensagem recebida OKAT + CMGF = 0Mensagem recebida OKAT+CMGS=60Mensagem recebida >

>0791559119103500B1000881199827990000AD3674 2f f2 bf 43 e5 4c 0d 2e babb fb b1 83 5b e5 21 ed 4f 85 cf 18 eb 3e 3b e6 0e f4 66 32 db bb e7 d4 f4 7e 5e 65 7272 8b 48 df 3c 69 15 b2 03<ctrl-Z>

Mensagem recebida +CMGS: 62OK

A 2EI implementou uma função denominada ler_mensagem_celular que écapaz de setar portas do Microcontrolador PIC18F8720. A mensagem a serenviada deve ser conforme exempo a seguir:

Mensagem SMS : .a21

• “.” - caracter de controle• “a” – porta do microcontrolador a ser programada• “2” – bit da porta a ser programada• “1” – estado da porta

Para enviar uma mensagem SMS deve-se usar a função envia_SMS. Asseguintes constantes de memória FLASH devem ser alteradas:

ROM char MENSAGEM1[]ROM char AT_TAMANHO[]

51

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

ROM char AT_PDU[]

Nossos testes foram feitos com um celular Siemens modelo C65 enviandoa mensagem SMS e um celular Siemens modelo C55 recebendo a mensagemna PMWE-10, operadora CLARO.

52

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

14.Apêndice E. DISPLAY DE LCD

Ligação do Display de LCD POWERTIP modelo PC 1602-F

LCD POWERTIP modelo PC 1602-FPino Símbolo Função Porta Conector1 Vss Power supply (GND) GND2 Vdd Power Supply (+ 5V) +5VDC3 Vo Contrast adjust GND4 RS Register select signal RG45 R/W Data read / write RG36 E Enable signal RG07 DB0 Data bus line8 DB1 Data bus line9 DB2 Data bus line10 DB3 Data bus line11 DB4 Data bus line RH012 DB5 Data bus line RH113 DB6 Data bus line RH214 DB7 Data bus line RH315 A Power supply for LED B/L(+) +5 VDC16 K Power supply for LED B/L (-) GND

53

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

15.Apêndice F. CABO SERIAL CELULAR

16.Apêndice G. CABO SERIAL PROGRAMAÇÃO

Figura 17: Cabo Serial para IP10

54

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

17.Apêndice H. Diferenças para Programar oPIC18F8720 e o PIC18F8621

Diferenças no MPLAB IDE:

1. Header Files no menu View/Project: p18f8621.h

2. Linker Scripts no menu View/Project: 18f8621.lkr

Diferenças no IC-PROG:

1. O dispositivo selecionado passa a ser o PIC18F8620.

Quando usando o ICD da Mosaico no modo “Debugger” o arquivo de link

deve ter a opção 18f8720i.lkr ou 18f8621i.lkr .

55

12/6/2006 04:42 2EI v1.0

KPMWE-10 – Guia do Usuário

18.Apêndice I. Teclado

56

12/6/2006 04:42 2EI v1.0

Figura 18: Portas do Teclado

KPMWE-10 – Guia do Usuário

19.Apêndice J. Cabo de RedeChanfro para baixo

Verde Claro BrancoVerde LaranjaBranco Verde Claro

Azul Escuro Azul EscuroAzul Claro Azul Claro

Laranja Verde EscuroMarrom Claro Marrom Claro

Marrom Marrom

20.Apêndice K. Alterações na versão deste Manual

57

12/6/2006 04:42 2EI v1.0