picdem.net. carte picdem.net rs232 ethernet alim lcd2 x 16 rtl8019 pic

Post on 03-Apr-2015

126 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PICDEM.net

Carte PICDEM.net

RS232 EthernetAlim

LCD 2 X 16

RTL8019

PIC

Schéma PICDEM.net

Reset

RB5

NIC

LCD, EEPROM, ICD2

RS232

Interface réseau (NIC) RTL8019

(NIC)Network Interface Controller

Transfo. et prise Ethernet

Adressage du RTL8019

0 0000 0000 0110 000x xxxxCablé à l’adresse &h300 (bus ISA)

RTL8019 en boitiers 100L QFP

Démonstration (mpnicee.mcp)

Version pour RTL8019 ou compatible NE2000

Fichier compressé MCHPStackv211.EXEAutour du 18F452

Page d’accueil

Fichiers source C et web

Fichiers sources principale (main) Webserv.c

Fichiers web principale index.htm

Liaisons PICDEM.net au PC client

Port Ethernet (RJ45)

PC client

Port COM

Liaison Ethernet (RJ45) direct par câble croisé , par câble droit avec un hub ou réseau local

PICDEM.net

Configuration de l’Hyper Terminal

Menu de Paramètrage

Réponse du PICSERVEUR après appuis en simultané de la touche reset et RB5

1 : Adresse mac en decimal pour les deux derniers octets du PICServeur

(00 04 a3 00 XX XX)

2 : Adresse IP du PICServeur

3 : Passerelle Internet

4 : Masque de sous réseau

5/6 : Attribution d’adresse IP par serveur DHCP sur le reseau

7 : Transfert du fichier image des fichiers HTML et autre que le serveur retournera à la demande

Configuration IP du PC

Compilation des fichiers en fichier image (*.BIN)

Cible du raccourci MPFSC:\MCHPStack\source\MPFS.exe C:\MCHPStack\Source\WebPages test.bin

Transfert du fichier image par l’Hyper Terminal

Transfert du fichier image par FTP

Utilisateur : ftpMot de passe : microchip

Cible du raccourci (FTP)C:\MCHPStack\ftp\ftp.exe 192.168.0.2

INDEX.HTM<HTML><HEAD><TITLE>Microchip TCP/IP Stack Demo</TITLE></HEAD><FRAMESET rows="15%,40%,20%" border=0><FRAME name="top" src="Header.htm" marginheight=0 marginwidth=10><FRAME name="middle" src="Home.htm" marginheight=5 marginwidth=10><FRAMESET cols="50%,50%" border=0><FRAME name="left" src="Status.cgi" marginheight=2 marginwidth=50%><FRAME name="right" src="Commands.cgi" marginheight=2 marginwidth=50%></FRAMESET></FRAMESET></HTML>

HOME.HTM<html><head><title>PICStack Home</title></head><body bgcolor="#FFFFFF"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td valign="top" width="50%"><font color="#000000"><strong>Welcome!</strong></font></a><p><font color="#000000">This site is used to demonstrate the power and abilities of an 8-bit embedded web server. This site is powerd by Microchip PIC microcontroller running Microchip TCP/IP Stack. Everything you see is served through a Microchip PICDEM.net Internet/Ethernet demonstration board.</font></p></td> <td valign="top" width="50%"><font color="#000000">Bottom half of this page illustrates a real-time control of PICDEM.net board. &quot;Status&quot; section refreshes board information every few seconds and &quot;Commands&quot; section issues command to toggle on-board LEDs. </font><p><font color="#000000">Push on-board switch or rotate one of the potentiometers and see the screen getting updated. You may also click on one of the two LED command buttons toggle on-boad LEDs.</font></p> </td> </tr></table></body></html>

STATUS.CGI

<html><meta http-equiv="refresh" content="3"><body><table><tr><td><b>Results</b></td></tr><tr><td>Pot1:</td><td>%02</td></tr><tr><td>Pot2:</td><td>%03</td></tr></table><table cellpadding="3"><tr><td>Switch:</td><td>%04</td></tr>

<tr><td>LEDs:</td><td>D6=%01</td><td>D5=%00</td></tr></table></body></html>

Declaration dans (websrvr.c)/* * CGI Variable codes. - There could be 0-255 variables. */#define VAR_LED_D5 (0)#define VAR_LED_D6 (1)#define VAR_ANAIN_AN0 (2)#define VAR_ANAIN_AN1 (3)#define VAR_DIGIN_RB5 (4)

“Sniffer” STATUS.CGI

PC PICServeur

PC

PICServeur

WORD HTTPGetVar(BYTE var, WORD ref, BYTE* val){switch(var) { case VAR_LED_D5: if ( LATA3 ) *val = '0'; else *val = '1'; break;

…………….. case VAR_ANAIN_AN0: if ( ref == HTTP_START_OF_VAR ) { ref = (BYTE)0; } *val = AN0String[(BYTE)ref]; if ( AN0String[(BYTE)ref] == '\0' ) return HTTP_END_OF_VAR;

(BYTE)ref++; return ref;

Webserv.cFonction “HTTPGetVar”

COMMAND.CGI

<html><body bgcolor="#FFFFFF"><FORM METHOD=GET action=0><table><tr><td><b>Commands</b></td></tr><tr><td><input type=submit name=0 value="Toggle LED1"></td></tr><tr><td><input type=submit name=1 value="Toggle LED2"></td></tr></table></body></html>

Valeur renvoyé au serveur par clic sur "Toggle LED1 ou 2"

“Sniffer” COMMAND.CGI

<tr><td><input type=submit name=0 value="Toggle LED1"></td></tr>

Webserv.cFonction “HTTPExecCmd”

Fonction > void HTTPExecCmd(BYTE** argv, BYTE argc) dans (websrvr.c) var = argv[1][0] - '0';

switch(var) { case VAR_LED_D5: /* * This is "D5". * Toggle D5. */ LATA3 ^= 1; break;

case VAR_LED_D6: /* * This is "D6". * Toggle it. */ LATA2 ^= 1; break; }

Exécution des commandes :Valeurs retournées par un clic sur “Toggle LED1”“http:192.168.0.2/0?0=Toggle+LED1”

0?0=Toggle+LED1Overview: This function is a "callback" from HTTPServer task. Whenever a remote node performs interactive task on page that was served, HTTPServer calls this functions with action arguments info. Main application should interpret this argument and act accordingly.

Following is the format of argv: If HTTP action was : thank.htm?name=Joe&age=25 argv[0] => thank.htm argv[1] => name argv[2] => Joe argv[3] => age argv[4] => 25

Carte test ISA RTL8019“NE2000”

ISA

R

ES

ET

RB5

RS232

POT2

POT1

LED

1LED

2

VLCD

Edition de pages HTML (MOZILLA)

“Edition avec MozillaCOMMAND.CGI

“Sniffer” COMMAND.CGI

Application

Contrôle d’un

réseau de gaz

Surveillanced’un

réseau de gaz

Inverseur semi automatique

Pressostats

InverseurManuel

Gaz Argon

Pressostat

Contact

Surveillance d’un réseau de gaz

Webserv.c

Fonction “WORD HTTPGetVar(BYTE var, WORD ref, BYTE* val)”….

case VAR_DIGIN_RB5: if ( PORTB_RB5 ) *val = '1'; else *val = '0'; break;

case VAR_DIGIN_RB6: if ( PORTB_RB6 ) *val = '1'; else *val = '0'; break;

case VAR_DIGIN_RB7: if ( PORTB_RB7 ) *val = '1'; else *val = '0'; break; }…..

En conclusion

ExplorateurHTTP

FTP

NICSTACK IP

CommandCGI

EEPROM

StatusCGI

Sortie

Entrée

HTTPGetVar

HTTPExecCmd

top related