Jste zde

ETHERNET V PŘÍKLADECH II

Microchip_logo.png

Následující článek je pokračováním miniseriálu o programování Ethernetových aplikací. V minulém a zároveň prvním díle jsme si popsali obvod ENC28J60 a také jsme si řekli, že Microchip uvolnil pro snažší práci s tímto obvodem TCPIP stack napsaný pro mikrokontroléry PIC. Dnes si ukážeme na jednoduchém přikladě, jak stack využít.

Úvod

O TCPIP stacku fy Microchip jste se mohli dočíst v minulém díle. Jak už jsem uvedl, je zcela zdarma a jednoduchý webserver pro statické stránky je možné vytvořit během pěti minut. Právě něco takového si vytvoříme i my. Pro další práci předpokládám funkční a nainstalované následující komponenty:

  • Vývojová DPS Explorer 16 – 100 pin s procesorem dsPIC33…
  • MPLAB ICD 2
  • Originální PICtal pro Ethernet
  • MPLAB IDE a kompilátor MPLAB C30 Student Edition
  • TCPIP stack

Pokud máte po ruce switch nebo router, a nebo i síťovou kartu s automatickou detekcí směru, můžete použít přiložený síťový kabel 1:1. V opačném případě, tedy pokud budete propojovat vývojovou desku přímo s PC běžnou síťovou kartou, použijte kabel křížený.

Předpokládám, že instalace a zprovoznění MPLAB IDE a kompilátoru C30 nebude činit nikomu problémy. Pouze upozorním, že před první kompilací je nutné nastavit v IDE přístupové cesty k souborům kompilátoru. Vývojovou desku Explorer 16 není nutné nijak zvlášť nastavovat. Pouze zasuňte Ethernetovou kartu do expanzního konektoru tak aby otvor pro kabel směřoval k LCD a karta byla zasunuta co nejblíže k „děrované oblasti“. (viz foto)

Popis instalace MPLAB ICD 2 a postup jak jej využít pro nahrávání je uveden v popisu produktu: http://hw.cz/produkty/art2626-mplab-icd-2.html.

Pokud by bylo něco z předchozího postupu nejasné, prosím vyjádřete se v diskusi pod článkem. Proto tam je.

První kroky se stackem

Při instalaci stacku se Vám na zvolené místo na disku rozbalil adresář s příklady. U mě je to například:

c:\Microchip Solutions\

My si do nějakého jiného adresáře zkopírujeme připravený příklad:

c:\Microchip Solutions\TCPIP Demo App

Tento příklad obsahuje jednoduchý webserver. Nastavení je možné provést manuálně v hlavičkových souborech, a nebo pomocí průvodce, který byl nainstalován spolu se stackem. My si nejprve ukážeme jak nastavit stack pomocí průvodcem a následně i to, který místa v hlavičkových souborech průvodce změnil.

Pro úplnost ještě dodávám, že je nutné zkopírovat také adresář Microchip obsahující některé knihovní soubory.

ETHERNET_01.png
Obrázek 1: Spuštění průvodce nastavení TCPIP stacku

ETHERNET_02.png
Obrázek 2: Výběr pracovního adresáře

ETHERNET_03.png
Obrázek 3: Nastavení protokolů

ETHERNET_04.png
Obrázek 4: Nastavení modulů

ETHERNET_05.png
Obrázek 5: Povolení služeb

ETHERNET_06.png
Obrázek 6: Nastavení síťových parametrů

ETHERNET_07.png
Obrázek 7: Nastavení typu HTTP protokolu

ETHERNET_08.png
Obrázek 8: Nastavení webového rozhraní

ETHERNET_09.png
Obrázek 9: Nastavení souborového systému

ETHERNET_10.png
Obrázek 10: Nastavení uložiště

ETHERNET_11.png
Obrázek 11: Nastavení TCP - není pro nás důležité - nebudeme využívat

ETHERNET_12.png
Obrázek 12: Nastavení UDP

ETHERNET_13.png
Obrázek 13: Ukončení průvodce

V této chvíli ještě není ale projekt úplně nastaven. Zbývá určit, na jakém HW bude náš webserver provozován. Otevřete soubor projektu v MPLAB IDE:

TCPIP Demo App-C30.mcp

Editujte soubor HardwareProfile.h a odkomentujte definici: #define EXPLORER_16.Tím je určeno, že náš projekt bude využívat vývojovou desku Explorer 16.

V této chvíli stačí již projekt zkompilovat a nahrát. Po odpojení MPLAB ICD od vývojové desky můžeme zkusit, zda se lze z naším webserverem „domluvit“.

ETHERNET_14.png
Obrázek 14: Vývojová deska nám odpovídá

Nastavení IP adresy, masky, výchozí brány a překladu adres lze nalézt v hlavičkové souboru TCPIPConfig.h:

#define MY_DEFAULT_HOST_NAME			"MCHPBOARD"
#define MY_DEFAULT_MAC_BYTE1            (0x00)
#define MY_DEFAULT_MAC_BYTE2            (0x04)
#define MY_DEFAULT_MAC_BYTE3            (0xA3)
#define MY_DEFAULT_MAC_BYTE4            (0x00)
#define MY_DEFAULT_MAC_BYTE5            (0x00)
#define MY_DEFAULT_MAC_BYTE6            (0x00)

#define MY_DEFAULT_IP_ADDR_BYTE1        (10ul)
#define MY_DEFAULT_IP_ADDR_BYTE2        (100ul)
#define MY_DEFAULT_IP_ADDR_BYTE3        (5ul)
#define MY_DEFAULT_IP_ADDR_BYTE4        (2ul)
#define MY_DEFAULT_MASK_BYTE1           (255ul)
#define MY_DEFAULT_MASK_BYTE2           (0ul)
#define MY_DEFAULT_MASK_BYTE3           (0ul)
#define MY_DEFAULT_MASK_BYTE4           (0ul)
#define MY_DEFAULT_GATE_BYTE1           (10ul)
#define MY_DEFAULT_GATE_BYTE2           (100ul)
#define MY_DEFAULT_GATE_BYTE3           (5ul)
#define MY_DEFAULT_GATE_BYTE4           (1ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE1	(10ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE2	(100ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE3	(5ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE4	(1ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE1	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE2	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE3	(0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE4	(0ul)

Nyní si zkusíme nahrát webové stránky. K tomu slouží utilita Microchip MPFT Generator. Stačí vybrat adresář s připravenými webovými stránkami a jedním kliknutím nechat vygenerovat obraz webu a nahrát jej do vybraného uložiště:

ETHERNET_15.png
Obrázek 15: Generate and Upload ...

A výsledek:

ETHERNET_16.png
Obrázek 16: Web na mikrokontroéru PIC

Odkazy & Download

Hodnocení článku: