O funcionamento do Wireshark é bem intuitivo, basta startar a interfece de captura que aparece na primeira página quando abrimos o programa e pronto, poderemos ver os pacotes de rede, circulando na nossa rede.
Vamos escrever este código e salvar como main.c.
#include at89s8252.h
typedef unsigned char BYTE;
//8 bits endereçamento direto na ram interna
typedef int WORD;
//16 bits endereçamento direto na ram interna
typedef unsigned long DWORD;
// 32-bit endereçamento direto na ram interna
#define FALSE 0
#define TRUE 1
#define MY_MAC 0x530
//meu endereço MAC na RAM externa
//SPI
#define CKL P1_5
#define MISO P1_6
#define MOSI P1_7
#include "lcd.h" //funcões LCD
#include "binarias.h" //funcoes diversas; funcoes RAM externa
#include "enc28j60.h" //funções ENC28J60
void main (void)
{
WORD i; //ponteiro
BYTE dado[]="deniro"; //dado a ser enviado ethernet
enc28j60_init(); //inicalizo ENC28J60
timer(1000); //delay
for(i=0;i<6;i++)
Escrita_Ram(i,dado[i]); //escrevo em minha ram externa
enc28j60_envia_pacote (6); //envio pela ethernet
}
Compile e execute o simulador do proteus com o wireshark já inicializado. Nós devemos ver os dados sendo enviados pela porta ethernet.
O teste de recebimento, eu fiz enviando um pacote ARP de requerimento. No meu código fonte eu identifico este pacote e escrevo no LCD.
#define MAX_RXTX_BUFFER 1518
//Tamanho maximo do buffer ENC28J60
void servico (void)
{
WORD pacote;
pacote=enc28j60_ler_pacote (MAX_RXTX_BUFFER);
//adquiro pacote
if(pacote)
//existe pacote
if( Ler_Ram(12) ==0x08 && Ler_Ram(13) == 0x06)
//se for ARP escreve
lcd_print("ARP",1,1);
}
void main (void)
{
init_lcd();
enc28j60_init(); //inicalizo ENC28J60
timer(1000); //delay
while(1)
{
servico();
}
}
A minha RAM externa está como espelho dos pacotes recebidos (ver função "WORD enc28j60_ler_pacote (WORD max_comprimento )"), basta eu ler os endereços de interesse que neste caso são 12 e 13 decimais.
Facil!
Na próxima postagem, vamos inicializar a consrução dos protocolos TCP/IP. Para esta etapa e preciso ter conhecimento do protocolo ethernet.
Nenhum comentário:
Postar um comentário