Čeština / English
Login

Aplikace / Webový server

Autor: Zdeněk Vašíček ()

Abstrakt: Aplikace ukazuje jak je možné vyrobit jednoduchý webový server.

Update: 20110101

Tato úloha ukazuje, jak lze využít knihovnu libenc28j60 tak, abychom na FITkitu vytvořili jednoduchý HTTP server, který obsahuje dvě www stránky. Stránku index.htm, která obsahuje základní informace a odkaz na stránku teplota.htm, stránka teplota.htm zobrazuje aktuální stav interního teplotního čidla.

Webové stránky jsou přenášeny pomocí poměrně jednoduchého textového protokolu označovaného jako HTTP (Hyper Text Transfer Protocol). Stažení webové stránky probíhá následovně. Nejprve je ustaveno TCP spojení na HTTP server, který běží obvykle na portu číslo 80. Poté je odeslán tzv. GET request, který spočívá v odeslání textu např. GET /index.htm HTTP/1.1 následovaného dvěmy odřádkováními (CR LF). Server odpoví a vrátí stránku index.htm nacházející se v kořenovém adresáři. Pokud stránka neexistuje, vrátí chybu. Odpověď se skládá ze dvou části, hlavičky a vlastních dat. Hlavička obsahuje informace jako je stavový kód, datum poslední modifikace, apod.

1. Popis aplikace

Ve funkci main() je nainicializován DHCP klient tak, abychom získali IP adresu z DHCP serveru a nemuseli ji konfigurovat ručně. V poznámce je uveden kód umožňující též nastavit statickou IP adresu. Následuje volání funkce create_tcp_socket(80,tcp_handler) a tcp_bind(), která zaregistruje callback funkci pojmenovanou tcp_handler, která bude vyvolána při příchodu TCP paketu s cílovým portem číslo 80. Funkce tcp_hadler dostává přímo data, která jsou přenášena v TCP paketu; o ustavení TCP spojení, jeho ukončení a potvrzování paketů se stará navržená knihovna. Pro zjednodušení rutina tcp_handler obsahuje krátký buffer a provádí jednoduché porovnání požadavku pomocí funkce strcmp.

V hlavní smyčce je postupně volána funkce ENC28J60_idle() a následně testován stav DHCP a TCP socketu pomocí funkce tcp_connected().

2. Zprovoznění aplikace

  1. připojte k FITkitu rozšiřující modul Ethernet obsahující ENC28J60 a připojte modul do sítě LAN

  2. přeložte aplikaci

  3. naprogramujte MCU a FPGA a spusťte terminálový program.

  4. jakmile aplikace obdrží odpověď od DHCP serveru, je možné tuto IP adresu zadat v prohlížeči

Aplikace nevyžaduje ke své činnosti nastavit kromě propojek umožňujících programování další propojky.

Zobrazeno: 828x Naposledy: 18.11.2017 15:00:38