Ben zelf ook nog bezig maar dan vooral met de software. M'n Ethernet controller krijgt stillaan voet aan wal, deze zal gebruikt voor m'n domotica en m'n modelbaan. Enig nadeel, je hebt er een stevige microcontroller voor nodig. Ik gebruik nu al een tijdje een 32-bit STM32F407 (Cortex M4). Stevige knaap, kost zo'n 6€, oftewel 20€ op een discovery board; maar je hebt wel meteen 1MB EEPROM en 192KB RAM. En voor de software van een netwerk controller (driver + IP stack) geen overbodige luxe, je bent al snel 64KB aan RAM kwijt...
70% van m'n ethernet controller is nu klaar, en eindelijk draait ie zoals ik wil: met buffering, mooi gestructureerde code per laag, en protocol control blocks (PCB's) tussen de transport en de applicatie lagen. Dit moet het uiteindelijk m'n IP stack worden:

En om daar te geraken, gebruik ik de volgende opzet:

Heb 'm deze voormiddag al laten proefdraaien met een ENC28J60 network adapter (10 Mbit), ARP en Ethernet II, ICMP en IPv4, UDP en als laatsten DHCP, DNS en NTP. Later volgen nog TCP en de blokjes die daarmee verbonden zijn. Maar de eerste testen zijn al meer dan behoorlijk: boeltje opstarten, DHCP adres oppikken, klok via NTP 1x per uur synchroniseren (moet server via DNS gaan ophalen), en ondertussen wordt de boel gebombardeerd met pings (ICMP) vanuit m'n netwerk. Na 4 uur draaien geen enkel pakket verloren.

Waar ga ik die voor gebruiken?
Eerst en vooral m'n domotica. Elke kamer wordt uitgerust met zo'n controller (TFT + touchscreen, sensoren, netwerk controller, luidsprekertje, ...). Later m'n modelbaan, op de meeste plaatsen zonder TFT, daar waar nodig komt er een TFT.
Kostprijs:
Hardware: µC 5€/20€, TFT: 10€, ENC28J60: 2€, sensoren: 1-10€
Software: ellendig veel werk, maar wel leerzaam ;-)
Een 100 Mbit netwerk adapter kan ook, is enkel wat duurder. Een Gbit module zou zinloos zijn, de µC kan die snelheid toch niet aan tenzij met gigantisch veel buffering.
En nu verder werken aan het TCP stuk

...