Sunteți pe pagina 1din 68

Eletrnica Embarcada para Internet

Seminrio Embedded System

PMWE-10A

Agenda
Overview Informaes do Produto Ferramentas Pilha TCP/IP Aplicaes

Overview

Por qu usar Sistemas Embarcados?

Resolver problemas de comunicao Remota


Monitorao remota Controle remoto Diagnstico remoto Aquisio de dados

Ter a capacidade de acessar sistemas embarcados remotamente implica em economia de tempo e dinheiro

Por qu Ethernet?
Ethernet a maior rede presente nos ramos de comrcio e indstria A infra-estrutura Ethernet, interoperabilidade e escalabilidade asseguram um fcil desenvolvimento Uma vez que o equipamento esteja conectado a rede Ethernet, ele pode ser monitorado e controlado pela Internet

Caractersticas da Ethernet Embarcada


Barramento compartilhado Acesso ao meio fsico: Acesso Mltiplo com Verificao de Portadora e Deteco de Coliso (CSMA/CD) Velocidade do barramento: 10Mbps Tamanho do pacote: at 1500 bytes

Origem da Ethernet Embarcada

Mercado de PCs, modelo OSI da ISO

Por qu Ethernet 10Mbps


Uso em aplicaes que necessitam enviar ou receber poucos bytes No justificvel usar Ethernet 100Mbps com microcontroladores de 8 bits Custo

Mercado Ethernet

Mercado Ethernet

Por qu ZigBee
Baixo custo em dispositivos operados a bateria Suporte para vrias topologias de rede: ponto a ponto, star e mesh At 65.000 ns em uma rede Segurana: criptografia 128 bits

Por qu Modem GPRS


Mobilidade. Stack TCP/IP. Comandos AT. Custo baseado na quantidade de dados transmitidos e no no tempo de conexo.

Por qu FTDI
Controlador USB Host. Classes USB encapsuladas. Interfaces SPI, serial ou paralela. FAT File. Interface para um USB Flash Disk.

Informaes do Produto
PMWE-10A

PMWE-10A

PMWE-10A
1. 2. 3.

4. 5.

6. 7. 8.

9.

Microcontrolador PIC18F87J60 RJ45 Modem GPRS (compart. XBEE) USB Host ZigBee/XBEE (sw em implementao) MAX3232 EEPROM SPI Reguladores 5VDC e 2 X 3V3 Temperatura

PMWE-10A
10. 11. 12. 13. 14. RTC (sw em implem.) 2 Rels 2 Ac. pticos Teclado (sw em implem.) LCD

Dimenses
2865 mil X 5045 mil Ou 7,3 cm X 12,8 cm

Ferramentas
PMWE-10A

Interface de Programao e Depurao Kit2


Baixo Custo Software: MPLAB Ide ou PicKit2 Muitos outros microcontroladores PIC alm do PIC18F87J60

MPLAB IDE (Integrated Development Environment)


Ambiente de desenvolvimento para microcontroladores PIC e dsPIC Free Windows

MPLAB C 18
Compilador ANSI-C para famlia de microcontroladores PIC18 Windows Trabalha com o MPLAB IDE Verso estudante completa por 60 dias

Ferramentas Auxiliares
Depurador TCP/Ip Wireshark. XCTU da MaxStream. Visual Studio C# da Microsoft.

Aplicaes

1. Exemplo (Pasta SWG)


Internet com Servidor HTTP2 Correio eletrnico Temperatura LCD Modem GPRS USB Host Pen Drive. Soquete TCP/IP RTC Rels Acopladores pticos

2. Exemplo (Pasta SWG1)


* Antes algumas observaes:

Endereo MAC 2EI


OUI - Organizationally Unique Identifier 00.16.a9.xx.xx.xx

Stack Microchip

Sem custo Uso modular. Utilize somente o que necessitar Famlia PIC18 Documentao:AN833 e AN870 da Microchip

Objetivos

Objetivo

Overview sobre a pilha TCP/IP da Microchip

Requisitos
Conhecimento da linguagem C Idia sobre Ethernet/Internet Conhecimentos da linguagem HTML

Mdulos

Arquivos

MAC Media Access Layer SLIP Media Access Layer for SLIP ARP Address Resolution Protocol IP Internet Protocol ICMP Internet Control Message Protocol TCP Tranmission Control Protocol UDP User Datagram Protocol StackTask Coordenador Stack Manager HTTP Server HyperText Transfer Protocol Server DHCP Client Dynamic Host Configuration Protocol IP Gleaning Para configurar endereo IP FTP Server File Transfer Protocol Server

Projeto Bsico I
TCPIP Demo App-C18.mcp Aquisio de temperatura. Valores de temperatura no navegador WEB. Correio eletrnico. USB Host FTDI Modem GPRS

Aquisio de Temperatura
MCP 9700 4C ou 2C (9700A) Arquivo: MCP9700.C Funo: void Temperatura_Conversao(void)

Servidor HTTP2 e MPFS2

Overview HTTP2/MPFS2

Web Pages
Arquivos HTML Arquivos de imagens CSS Stylesheets Arquivos JavaScript Localizados na pasta WebPages2

Arquivo Status.xml
<response> <tem1>~stftem1~</tem1> <tem2>~stftem2~</tem2> <tem3>~stftem3~</tem3> <tem4>~stftem4~</tem4> <tem5>~stftem5~</tem5> <tem6>~stftem6~</tem6> <tem7>~stftem7~</tem7> <tem8>~stftem8~</tem8> <tem9>~stftem9~</tem9> <tem10>~stftem10~</tem10> <tem11>~stftem11~</tem11> <tem12>~stftem12~</tem12> <txt1>~txtftdi~</txt1> </response>

Index.htm
<tr> <th style="font-size:10pt;color:black">Temperatura 1</th> <th>Temperatura 2</th> <th>Temperatura 3 </th> </tr> <tr> <td style="color:red"><span id="tem1">?</span></td> <td style="color:red"><span id="tem2">?</span></td> <td style="color:red"><span id="tem3">?</span></td> </tr> .... .... ... ...

Utilitrio MPFS2

Caractersticas MPFS2
Em nosso caso encapsula as web pages em um arquivo MPFSImg2.c Indexa variveis dinmicas encontradas nas pginas web e atualiza o arquivo HTTPPrint.h O projeto deve ser recompilado na adio ou remoo de variveis dinmicas.

CustomHTTPApp.c

Sada das variveis dinmicas via chamadas HTTPPrint_* .

void HTTPPrint_stftem1(void) { TCPPutArray(sktHTTP, rec_tem_ana_nav[0], strlen ((char*)rec_tem_ana_nav[0])); return; }

Correio Eletrnico

Definio padro dos parmetros


Arquivo: MCP9700.C Funo: void SMTP_Deafult(void)

Envio do correio eletrnico


Arquivo: MainDemo.C if((TickGet() - tick_email ) >= 120ul*TICK_SECOND) { tick_email = TickGet(); SMTP_Set(); }

Modificao dos parmetros via navegador WEB

Continuando Exemplo 1

LCD USB FTDI Vinculum. Modem GPRS XBEE (em implementao)

LCD

2 linhas X 12 colunas #define USE_LCD Via de dados de 4 bits Backlight 4,3VDC


Chamada inicializao do LCD em MainDemo.C
LCDInit(); for(i = 0; i < 100; i++) DelayMs(1); strcpypgm2ram((char*)LCDText, " 2ei.com.br " " LCDUpdate(); ");

USB Vinculum FTDI


Biblioteca para Pen Drive Conector para gravao da bibilioteca via interface serial RS-232. Utiliza fonte de +5VDC. Arquivo FTDI.C Referncia ao arquivo T.TXT no Pen Drive Gravao de temperatura no pen-drive

USB Vinculum FTDI

Funes mais importantes


unsigned char FTDI_Read(unsigned char *a) ==> ler byte do pen drive void FTDI_Read_Status(void) ==> ler mensagens vindas do pen drive unsigned char FTDI_Ler_T_TXT (void) ==> ler arquivo T.TXT do pen drive unsigned char FTDI_Write_Byte (unsigned char a) ==> escreve byte no pen drive void FTDI_SPI_Configura(void) ==> configura SPI para acesso ao pen drive

... continuao

unsigned char FTDI_Write_T_TXT (void) ==> escreve valor da temperatura no arquivo T.TXT

Modem GPRS

Mdulo Motorola G24 Acesso via USART2 (XBEE ou modem GPRS) Testado na operadora TIM Arquivo: MODEM.C , independente da pilha TCP/IP Funciona somente como Cliente Comandos AT Programa em C# para receber dados do Modem

Modem GPRS - Funes

Arquivo MainDemo.C

Chama MODEM_Init() e MODEM_State ==> inicializa Modem GPRS e transmite valor de temperatura para um servidor.

Arquivo MODEM.C
void USART2_Prepara(void) ==> prepara USART2 para efeito de comunicao com o modem void MODEM_State(void) ==> vrios comandos AT para modem enviar temperatura para um servidor

Modem GPRS (continuao)

void MODEM_Init(void) ==> Inicializa Modem

Modem GPRS

Operadora TIM

Contexto

putrsUSART2( (const rom char*)"AT +CGDCONT=1,\"IP\",\"tim.br\"\r"); putrsUSART2( (const rom char*)"AT +MIPCALL=1,\"tim.br\",\"tim\",\"tim\"\r"); putrsUSART2( (const rom char*)"AT +MIPOPEN=1,5000,\"201.43.239.58\",5000,0\r");

IP

IP remoto e porta

Modem GPRS

Quantidade de dados

putrsUSART2( (const rom char*)"AT+MIPSETS=1,34\r"); putrsUSART2( (const rom char*)"AT +MIPSEND=1,\"54656d70657261747572613d"); USART2PutChar(uchar_tem_atu[12]);// envia caracter no formato hexadecimal USART2PutChar(uchar_tem_atu[13]); USART2PutChar(uchar_tem_atu[14]); USART2PutChar(uchar_tem_atu[15]); USART2PutChar(uchar_tem_atu[16]); putUSART2('"'); putUSART2('\r');

Dados transmitidos

Modem GPRS PC Recebendo Dados

Soquete Microchip (Cliente)


um dos pontos de comunicao de uma rede Cada soquete tem um endereo IP e uma porta Permite conexes concorrentes:

N conexes HTTP simultneas M aplicaes TCP,UDP simultneas

Todos os soquetes dividem o mesmo buffer


Pr: menos memria por soquete Contra: Uso do buffer em uma s passada pela tarefa

TCP Transmission Control Protocol (em implementao o soquete no exemplo)


Orientado a conexo. S ocorre troca de dados aps o estabelecimento da conexo Transferncia de dados confivel. Sistema de seqncia e nmero de reconhecimento que habilitam o destino a reconhecer dados especfico De 2 a 253 soquetes limitados somente pela memria disponvel e compilador usado

TCP Transmission Control Protocol


Cada soquete consome aproximadamente 36 bytes Compartilhamento dos buffers de transmisso e recepo Checksum Configurao do TCP_NO_WAIT_FOR_ACK, isto torna os dados mais lentos ou no durante uma transmisso

Projeto Bsico II

Soquete TCP/IP Teclado RTC Acopladores pticos Rels

Soquete TCP/IP Cliente


Arquivo: GenericTCPClient.c Define IP: BYTE ServerName[] = "10.0.0.102"; Define Porta: WORD ServerPort = 5000; Transmite Data/Hora do RTC: TCPPutROMString(MySocket, (ROM BYTE*)"Data/Hora="); TCPPutString(MySocket,uchar_hor_ini_tcp);// transmite data/hora TCPPutROMString(MySocket, (ROM BYTE*)"\r\n");

PC recebendo dados

Teclado

Portas D0, D1, D2, J4,B5,B6 e B7. Interrupo Porta B (Aplicacao.C). Menus.

RTC

C.I DS1390 Funo para acertar hora: void RTC_Write(void) Funo para ler data/hora: void RTC_Read(unsigned char* uchar_RTC)

Acopladores pticos

C.I H11L1. Portas: B0 e B1. Leitura em MainDemo.C:


if (PORTBbits.RB0) uchar_b0 = 1; else uchar_b0 =0; if (PORTBbits.RB0) uchar_b1=1; else uchar_b1 =0; Navegador

Rels

Rel HRAH-S-DC5V. Portas: RE3 e RE4 Inicializao:


TRISEbits.TRISE3 = 0; //LATEbits.LATE3 = 1; LATEbits.LATE3 = 0; TRISEbits.TRISE4 = 0; LATEbits.LATE4 = 1; //LATEbits.LATE4 = 0;

// Sada Rel RL2 // Ativado // Des-ativado // Sada Rel RL3 // Ativado // Des-ativado

UDP User Datagram Protocol


(em implementao)

Protocolo sem conexo No h recuperao devido a erros No h checksum Permite at 254 soquetes Mltiplas aplicaes podem acessar o UDP simultaneamente

IP Internet Protocol
Ajuda os dados a encontrarem o destino mesmo que o dado tenha que viajar por muitas redes O endereo IP deve ser nico para cada n da rede (32 bits, ex.: 192.168.111.1 Cada endereo IP tem duas partes:

Endereo de rede que o mesmo para todos os ns da rede Endereo do n

IP Internet Protocol
Subnet a diviso da rede em grupos. Mscara de rede: bits que correspondem ao endereo de rede e subnet so 1. Bits dos ns so zero. Em uma rede classe B dois bytes so de endereo de rede e dois bytes so de endereo de ns. A mscara de uma subnet com 8 bits de ID 255.255.255.0

IP Internet Protocol

IP esttico:

Deve ser definido no cdigo

IP Dinmico:
Necessita de um PC que tenha Servidor DHCP Pode ser atrelado ao endereo MAC

DHCP Dynamic Host Configuration Protocol

Mtodo Automtico de configurao do IP


Endereo IP, endereo do gateway e mscara so configurados no power-up Substituio automtica de IP se necessrio (15 minutos)

Necessita de um servidor DHCP na rede Problemas de sistemas embarcado, como descobrir o endereo IP:

Atravs de LCD> Atrelar ao endereo MAC

No disponvel com SLIP

Obrigado

S-ar putea să vă placă și