Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2016:ethernetwol

Toto je starší verze dokumentu!


Zadání

Navrhněte zařízení využivajíci vlastní ethernet modul (STM32F4 + LAN8720A), sloužíci k zasílaní tzv. Magic paketu. Cílová adresa pro Magic packet bude nastavitelná pomocí HTTP rozhraní.

Úvod

Cílem tohoto projektu je navrhnou vlastní ethernet modul pro STM32F4DISCOVERY desku. Tento ethernet modul musí být kompatibilní s oficiálním STM32F4-BB deskou. STM32F4 procesor bude prosloucht pro přeušení od tlačitka USER a po přijetí události odešle nastavený počet Magic paketů na broadcast dané počitačové síté ( nebo globální bradcast).

Pro konfiguraci bude FW obsahovat primitivní HTTP server s jedinou stránkou. Parametry budou předány metodou GET.

DRAFT

Hardware

- Vývojový kit STM32F4DISCOVERY

Vlastní LAN 8720A ethernet shield:

Ethernet shield je zhotoven v domácích podnínkách na FR4 desku. QFN24 je zapájeno následujícím způsobem:

  • Vyvrtána díra 2mm uprostřed Thermal padu
  • QFN24 pomocí horkého vzduchu připájeno na desku a zkontrolováno pro mezi vývodové skraty
  • Z druhé strany je ocínován Thermal pad a celá 2mm díra je postupně zalita cínem

(TBD foto)

Firmware

Základ projektu je vygenerován v prostředí STCubeMX. Zde jsou vybrány komponenty FreeRTOS a LwIP stack. Následně je základ projektu skompilován a doplěn o blikání diodou pro ověření kompilačniho a programovacího flow.

Utility:

  • STCubeMX
  • gcc-arm-none-eabi toolkit
  • gdb-arm-none-eabi a openocd pro programování a debugging
  • gnu make
  • vim

Semihosting

Pro zprovoznění semihostingu je třeba mít OpenOCD verze alespň 0.10.0-dev-00419-gbcaf775.

HTTP server

Zařízení bude poslouchat na portu 80 a reagovat na následující dotazy:

GET / HTTP/1.1
(Ignore all nonempty lines)
GET /save?target=(MAC) HTTP/1.1
(Ignore all nonempty lines)

Příklad odpovědí:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: (length)

(content...)
HTTP/1.1 404 Not found
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: (length)

(content...)
HTTP/1.1 500 Internal server error
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: (length)

(content...)

Pro parsing requestů bude použita knihovna SLRE (Regex parser) (https://github.com/cesanta/slre).

Wake on lan

Magic packet typicky posílaný jako UDP na port 0,7 nebo 9. Struktura není pevně daná, paket musí obsahovat následující data (kdekoli v těle):

FF FF FF FF FF FF
(target MAC)*16
2016/ethernetwol.1480529596.txt.gz · Poslední úprava: 2016/11/30 19:13 autor: Lukáš Vykydal