1. Lista de Abreviaes
ARP 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
2. Introduo
Esta documentao refere-se ao kit com conectividade Ethernet/Internet KPMWE-10 verso 1.0 () .
O kit contm os seguintes itens: 1. Placa PMWE-10 com conexo Ethernet/Internet, conector para mdulo ZIGBEE/XBEE e vrios perifricos. 2. Um cabo serial para a interface de programao da PMWE-10. 3. Uma interface de programao serial RS-232 para ICSP (In Circuit Serial Programmer) para gravao da memria Flash do microcontrolador contido na PMWE-10. Somente utilize uma interface serial RS232 verdadeira em seu PC. Conversores USB para serial provavelmente no funcionaro. S programe a PMWE-10 com ela alimentada e no inverta o cabo que vai da interface de 6
I N T R O D U O
O compilador C MCC18 (verso estudante) e o ambiente de desenvolvimento MPLAB IDE so propriedades da Microchip. Eles devero ser baixados do site www.microchip.com . Os links esto disponveis no site www.2ei.com.br.
3. Placa PMWE-10
A PMWE-10 () uma placa microcontrolada (UCP PIC 18F8722) com interfaces Ethernet 10 Mbps e serial RS-232. Ela pode ser adicionada a qualquer rede Ethernet 10/100 Mbps. Ela fornecida com a pilha TCP/IP da Microchip modificada escrita na linguagem C e pode ser compilada pelo compilador Microchip PIC18 C . Aplicaes tpicas incluem servidor Web HTTP, conversor de interface RS 232 para Ethernet, conversor ZigBee para Ethernet, controle remoto via Web, etc. Voc pode armazenar suas pginas Web na memria FLASH do microcontrolador PIC18F8722 usando o cabo serial e interface de programao IP10 que acompanha o kit de desenvolvimento. Alm da pilha TCP/IP da Microchip, a 2EI fornece funes de enviar e receber mensagens SMS via celular atravs da interface serial. Para ver as pginas Web contidas no microcontrolador PIC 18F8722 num navegador Internet basta conectar o cabo crossover fornecido neste kit ao seu computador pessoal com a devida configurao.
Os principais componentes da PMWE-10 so: 1. MICROCONTROLADOR: PIC18F8722 (clock de 25MHz, 128K de memria Flash, 1024 bytes de memria EEPROM, 3936 bytes de memria RAM e 68 portas de I/O programveis das quais 16 podem ser configuradas como entradas analgicas de 10 bits) programado com a pilha TCP/IP Microchip modificada. A pilha TCP/IP fornecida como exemplo usa aproximadamente 30 Kwords bytes de memria Flash e 1233 bytes de memria RAM, assim h bastante rea de memria para aplicaes do usurio. Na pilha h exemplos de servidor HTTP, conexo TCP/IP, SMTP e envio e recepo de mensagens SMS. 2. CONTROLADOR ETHERNET: A PMWE-10 usa o controlador de Ethernet Realtek RTL8019AS (10Mbps) . 3. LEDs de indicao: 8
o o o o o o o
10
11
4. Interfaces
4.0 Ethernet
A PMWE-10 possue uma porta Ethernet 10Mbps. O conector RJ-45 atende os requisitos da IEEE 802.3 e requisitos mecnicos FCC. O conector RJ45 possui dois LEDs. O LED amarelo para indicao de link e o LED verde para indicao de atividade de envio ou recepo de dados.
4.1 RS232
A PMWE-10 possui uma interface USART. Os sinais USART so disponveis via conector DB25 (ver esquemas).
4.4 ZIGBEE
A placa PMWE-10 possui conector para receber o mdulo XBEE ou XBEE pr da MAXSTREAM. Neste caso, necessrio a fonte de 3,3VDC assim como os circuitos de correo de nvel de sinal.
12
Pinos de I/O Item Tenso de entrada TTL nvel lgico baixo Tenso de entrada Schmitt Trigger nvel lgico baixo Tenso de entrada TTL nvel lgico alto Tenso de entrada Schmitt Trigger nvel lgico alto Tenso de sada nvel lgico baixo Tenso de sada nvel lgico baixo Carga capacitiva Smbol o VIL VIL VIH VIH VOL VOH CIO IOL=8,5mA IOH=4,3mA 4,3 50 Condio Min. 0 0 2,05 4 Tp. Mx. Unidade 0,75 V 1 5 5 0,6 V V V V V pF
13
1. Energize a placa PMWE-10 atravs de um dos seguintes modos: Conecte uma fonte entre 9VDC a 12VDC no conector J11. 15
2. 3. 4. 5.
O apndice A contm informaes de como configurar o Sistema Operacional Windows XP para endereo IP e mscara de rede.
6. No computador, navegador Web, na barra de endereos digite http://10.0.0.1 e tecle <ENTER>. 7. A pgina Web semelhante a Figura 4 dever ser carregada na tela de seu computador.
16
Os seguintes recursos podem ser verificados (dependendo dos componentes soldados e configurao da pilha: Varie o potencimetro R25 verificando que o valor do Pot1 tambm varia na pgina do seu navegador Web. No navegador Web, clique no boto ALTERNA LEDA2 verificando que o 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 pgina do navegador Web tambm.
17
Para mudar o endereo IP da placa PMWE-10 deve-se fazer o uso do cabo de programao que acompanha o kit de desenvolvimento. Os seguintes procedimentos devem ser executados para fazer a mudana do endereo IP da PMWE-10.
1. Instalando e Executando o MPLAB IDE aconselhvel aceitar o nome das pastas sugeridas nos programas de instalao. Embora os arquivos sejam instalados corretamente quando voc selecionar outros destinos, eles podem no estar disponveis para o seu ambiente de desenvolvimento se voc decidir criar um novo projeto usando a pilha TCP/IP.
i.
O primeiro passo criar um projeto e uma rea de trabalho no sistema de ambiente integrado MPLAB IDE. Um projeto contm os arquivos necessrios para construir uma aplicao (cdigos fontes, etc.). Uma rea de trabalho contm um ou mais projetos e informaes dos dispositivos selecionados, ferramentas de depurao, localizao das janelas abertas e outras configuraes IDE. O MPLAB IDE contm um Project Wizard para ajudar a criar novos projetos. Utilizaremos projetos j prontos. Copie a pasta 18
ii.
Arquivos copiados do CD so somente de leitura; voc necessitar trocar os atributos dos arquivos que necessitem ser editados. iii. iv. v. vi. Instale o ambiente de desenvolvimento MPLAB IDE. Instale o compilador MCC18. Execute o programa MPLAB IDE. Verifique a seleo de linguagens no aplicativo MPLAB IDE . Na barra de menu selecione Project\Set Language Tool Locations. Na janela Set language Tool Locations selecione opo Microchip C18 Toolsuite (clique em +). Clique no + de Executables. Clique no + de Default Search Paths & Directories. Verifique: Executables i. MPASM Assembler (mpasmwin.exe) c:\Arquivos de 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 & Directories i. Output Directory, $(BINDIR) ii. Intermediate s Directory,$(TMPDIR) iii. Include Search Path,$(INCDIR) iv. Library Search path,$(LIBDIR) c:\mcc18\lib v. Linker_Script Search Path,$(LKDIR) c:\mcc18\lib No MPLAB IDE, selecione na barra de menu Project\Open . Selecione o projeto MpNICPG.pjt da pasta Stack_2EI do seu disco rgido. No MPLAB IDE, selecione na barra de menu View\Project. Em Linker Script selecione 18f8720.lkr (c:\mcc18\lkr). V ao menu Project e selecione Build All. O projeto ser compilado e linkado. Um novo arquivo mpnicpg.hex est pronto para ser transferido para a PMWE-10.
vii.
viii. ix.
O nome do projeto desta aplicao MpNICPG.pjt. Ele usa NIC e memria de programa interna do microcontrolador para armazenamento do Web Site. 19
Faa as modificaes que julgar necessrio e compile o projeto novamente. O novo arquivo mpnicpg.hex gerado conter as modificaes que voc efetuou. 2. Instalando e Executando o Programa IC-Prog 1.05D (Somente para PIC18F8720 e PIC18F8621) O programa IC-Prog um programador de prottipos desenvolvido por Bonny Gizen (www.ic-prog.com). Para instalar o IC-Prog siga os seguintes passos: 1. Copie a pasta ICPROG que se encontra no CD para o disco rgido do seu computador. 2. Execute o programa ICPROG a partir do disco rgido do seu computador. Selecione a serial em que voc colocar o cabo de programao na janela Hardware settings. O programador 20
A interface de programao de custo muito baixo, mas no capaz de verificar se a programao foi feita de forma correta. Caso o led D3 no fique piscando imediatamente aps voltar a chave de programao para a posio de operao, indica que o programa no foi gravado corretamente. 3. Na barra de menu selecione Settings\Options. Clique na aba Language. Selecione a linguagem Portuguese. 4. Na barra de menu selecione Configurao\Opes. Clique na aba Programando. A opo Verifique depois da programao no deve estar selecionada. 5. Na barra de menu selecione Configurao\Opes. Clique na aba Diversos. Em Processo Prioritrio selecione Alto. 6. No aplicativo ICPROG, na barra de menus, selecione Configurao\ Dispositivo\Microchip PIC\PIC18F8720. 7. Na barra de menus, selecione Arquivo\Abrir e carregue o arquivo HEX mpniccpg que se encontra na pasta C:\Stack_E2I\Source. 8. No programa IC-Prog, os registradores de configurao devem estar carregados 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 programao na sada serial de seu computador e na placa PMWE-10. 11. Na interface de programao pressione a chave de modo que ela habilite a programao do microcontrolador da PMWE-10. ( - Cursor 21
22
23
Verifique na Interface de Programao as chaves RESET e CK/DAD devem estar pressionadas, ou seja, em baixo. Clique no boto Programar Dispositivo. A programao deve ocorrer sem nenhum erro, conforme fa Figura 8.
24
Para execuo do programa as chaves da Interface de Programao RESET e CK/DAD no devem estar pressionadas. Caso ocorram erros durante a programao, sugiro que o programa WinPIC seja executado no modo de compatibilidade Windows 2000, conforme a Figura 9.
25
26
No esquea de verificar a posio do cabo que interliga a interface de programao com a placa PMWE-10. A etiqueta .INT indica que o conector deve ser colocado na interface de programao pino 1. A etiqueta .PMWE10 significa que o conector deve ser colocado na placa PMWE-10
27
7. Dimenses da PMWE-10
As dimenses esto em milsimos de polegada de modo que em centmetros so : 130 (5130) X 72(2840) mm.
28
8. Esquemas
29
30
31
32
CONFIG3L WAIT CONFIG3H CONFIG4L DEBUG CONFIG5L CP7 CP6 CONFIG5H CPD CPB CONFIG6L WRT7 WRT6 CONFIG6H WRTD WRTB CONFIG7L EBTR7 EBTR6 CONFIG7H EBTRB DEVID1 DEV2 DEV1 DEVID2 DEV10 DEV9
33
FOSC2:FOSC0
CONFIG1H
BORV1:BORV0
CONFIG2L
BOREN
CONFIG2L
PWRTEN
CONFIG2L
WDTPS2:WDTPS0
CONFIG2H
WDTEN
CONFIG2H
WAIT
CONFIG3L
PM1:PM0
CONFIG3L
34
DEBUG LVP STVREN CP0 CP1 CP2 CP3 CP4 CP5 CP6 CP7
CONFIG4L CONFIG4L CONFIG4L CONFIG5L CONFIG5L CONFIG5L CONFIG5L CONFIG5L CONFIG5L CONFIG5L CONFIG5L
35
36
1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR1 CONFIG7L Bit Table Read Protection (Bloco 1) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR2 CONFIG7L Bit Table Read Protection (Bloco 2) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR3 CONFIG7L Bit Table Read Protection (Bloco 3) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR4 CONFIG7L Bit Table Read Protection (Bloco 4) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR5 CONFIG7L Bit Table Read Protection (Bloco 5) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR6 CONFIG7L Bit Table Read Protection (Bloco 6) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTR7 CONFIG7L Bit Table Read Protection (Bloco 7) 1 = Cdigo de memria no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de memria protegido da tabela de leitura executada em outros blocos EBTRB CONFIG7H Bit Table Read Protection (Bloco de boot) 1 = Cdigo de boot no protegido da tabela de leitura executada em outros blocos 0 = Cdigo de boot protegido da tabela de leitura executada em outros blocos Bits Device ID DEV10:DEV3 DEVID2 Estes bits so usados com os bits DEV2:DEV0 no registrador DEVID1 para identificar nmeros de componentes. Bits Device ID DEV2:DEV0 DEVID1 Estes bits so usados com os bits DEV10:DEV3 no registrador DEVID1 para identificar nmeros de componentes
REV4:REV0
DEVID1
37
CONFIG1L CONFIG1H CONFIG2L CONFIG2H CONFIG3L CONFIG3H CONFIG4L CONFIG4H CONFIG5L CONFIG5H CONFIG6L CONFIG6H CONFIG7L CONFIG7H DEVID1 DEVID2
CONFIGURAO PIC18F8720 0x0000 0x0000 0x00 0x0010 0x0010 0x22 0x0000 0x0100 0x04 0x0000 0x0000 0x00 0x1000 0x0011 0x83 0x0000 0x0001 0x01 0x1000 0x0001 0x81 0x0000 0x0000 0x00 0x1111 0x1111 0xFF 0x1100 0x0000 0xC0 0x1111 0x1111 0xFF 0x1110 0x0000 0xE0 0x1111 0x1111 0xFF 0x0100 0x0000 0x40 0x0000 0x0000 0x00 0x0000 0x0110 0x06
As principais configuraes da Pilha TCP/IP so: Oscilador: HS Watchdog Timer: Desabilitado Low Voltage Programming: Desabilitado
38
39
40
Se uma das pginas Web contiver um destes caracteres, a correspondente pgina Web tornar-se- inacessvel. Nenhum aviso de ateno ser dado. O Servidor HTTP mantm uma lista de tipos de arquivos que ele suporta. Esta informao usada para avisar um navegador como interpretar um arquivo em particular, baseado na extenso do arquivo. Por padro, o Servidor HTTP Microchip suporta arquivos .txt, . htm, .gif, .cgi, .jpg, .cla e .wav. Se uma aplicao usa tipos de arquivos que no esto includos nesta lista, o usurio pode modificar a tabela httpFiles atravs da correspondente enumerao httpContents no arquivo http.c. O servidor HTTP pode alterar pginas dinamicamente e substituir informaes em tempo real, como status de entradas e sadas do microcontrolador. Para incorporar estas informaes em tempo real, o correspondente arquivo CGI (*.cgi) deve conter uma string %xx, aonde o caracter % serve como cdigo de controle e xx representa o identificador da varivel com dois dgitos.
<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>
O identificador das variveis deve estar entre 00-99. Quando o Servidor HTTP encontra %xx, ele remove o caracter % e chama a funo HTTPGetVar. Se uma pgina requer o caracter % ele deve ser precedido por outro caracter %. Por exemplo, para mostrar 23% em uma pgina, coloque 23%%. A seguir explicaremos os parmetros da funo HTTPGetVar e exemplificaremos um pequeno cdigo contido nesta funo. HTTPGetVar(Byte var, Word ref, Byte *val) 42
WORD HTTPGetVar(BYTE var, WORD ref, BYTE *val) { // identificao da varivel // referente a RB5 if ( var == 4 ) { // retornaremos 1 se RB5 estiver em HIGH, ou 0se LOW if ( PORTBbits.RB5 ) *val = 1; else *val = 0; // Reporta ao HTTP que este foi o ltimo byte do valor da varivel return HTTP_END_OF_VAR; } // Checa outras variveis
44
<html>
<body><center> <FORM METHOD=Get action=Power.cgi> <table> <tr><td>Nvel de Potncia:</td> <td><input type=text size=2 maxlength=1 name=P></td></tr> <tr><td>Limite de Potncia Inferior:</td> <td><input type=text size=2 maxlength=1 name=L ></td></tr> <tr><td>Limite de Potncia 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>
45
46
47
Para enviar os caracteres .b01 para o telefone 91897299 devemos executar os seguintes comandos no Hyperterminal: AT + CMGC=? Mensagem recebida OK AT + CMGF = 0 Mensagem recebida OK AT+CMGS=16 (Obs: 16= 12 + tamanho da mensagem em octetos em decimal) Mensagem recebida > >0791559119103500B1000881199827990000AD042E312C06<ctrl -Z> Mensagem recebida +CMGS: 62 OK 48
Descrio
SMS em modo texto.
AT+CMGS="+4441793181022"<enter> <texto><ctrlZ>
A mensagem enviada para o nmero +4441793181022. Substitua o nemro +444... com seu prprio nmero.
Mensagem enviada com sucesso.
49
Exemplo 2
Mensagem a ser enviada: Tanque setor norte\r\n alarme ativo\r\n necessita manuteno Nmero de caracteres: 54 Nmero de bits = 54 * 7 = 378 bits Nmero de octetos na mensagem = 378/8= 47 octetos + 2 bits (complementa os ltimos 2 bits com zeros) Em relao 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 4F DB DF 20 85 BB 3C 2E CF E7 69 7A 18 D4 0E BB EB F4 B2 7B 1C 7E 03
48 octetos
Obs: verifique a existncia de 48 octetos Os comandos a serem enviados ao modem devem ser: AT+CMGC=? AT+CMGF=0 AT+CMGS=60 (12 + nmero de octetos da mensagem em decimal) = (12 + 48)=60
Oct. Descrio 0 07 Comprimento do nmero do centro de servios incluindo tipo de endereo 1 91 tipo de endereo 2 55 Nmero do centro de servio. O nmero do centro de 3 91 servio 551991015300. Osbserve que a codificao 4 19 559119103500. Voc pode verificar o nmero do centro 5 10 de servios atravs do comando AT + CSCA? 6 35 7 00 1 B1 Mensagem vai do telefone para a rede 2 00 TP-Message-Reference 3 08 Comprimento do nmero do telefone a ser enviada a 50
AT + CMGC=? Mensagem recebida OK AT + CMGF = 0 Mensagem recebida OK AT+CMGS=60 Mensagem recebida > >0791559119103500B1000881199827990000AD3674 2f f2 bf 43 e5 4c 0d 2e ba bb 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 72 72 8b 48 df 3c 69 15 b2 03<ctrl-Z> Mensagem recebida +CMGS: 62 OK A 2EI implementou uma funo denominada ler_mensagem_celular que capaz de setar portas do Microcontrolador PIC18F8720. A mensagem a ser enviada 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 funo envia_SMS. As seguintes constantes de memria FLASH devem ser alteradas: ROM char MENSAGEM1[] ROM char AT_TAMANHO[] 51
52
53
54
55
18.Apndice I. Teclado
56
57