- Ethernut
-
Ethernut ist ein Open-Source-Hardware- und Software-Projekt zum Betrieb von Embedded-Ethernet-Systemen.
Inhaltsverzeichnis
Hardware
Derzeit sind drei verschiedene Referenz-Designs (Ethernut 1, Ethernut 2 und Ethernut 3) als betriebsbereit aufgebaute Platinen erhältlich. Das nächste Design (Ethernut 5) befindet sich noch in der Entwicklungsphase.
In allen Ausführungen sind die gleichen funktionellen Baugruppen enthalten:
- Ethernet-Schnittstelle
- RS232-Schnittstelle
- Stromversorgung
- Nahezu alle I/O-Pins des Mikrocontrollers verfügbar
Die Designs unterscheiden sich vor allem im verwendeten Mikrocontroller (Ethernut 1 & 2: 8-bit AVR, Ethernut 3 & 5: 32-bit ARM) und der Speicherverfügbarkeit. So ist ab dem Ethernut 3 ein Slot für MMC-Speicherkarten verfügbar.
Software
Nut/OS
Das Betriebssystem für die Boards heißt Nut/OS. Es ist ein modulares Echtzeitbetriebssystem, das unter der BSD-Lizenz veröffentlicht ist.
Merkmale:
- Kooperatives Multithreading
- Garantierte Interrupt-Antwortzeiten
- Priorisierte Ereignisbehandlung
- Verschiedene konfigurierbare Timer
- Dynamische Speicherverwaltung
- Techniken zur Prozesssynchronisation
- Gute Portierbarkeit auf andere Architekturen
Nut/Net
Der Netzwerk-Stack der Ethernut-Software heißt Nut/Net. Er stellt eine umfangreiche API für verschiedene Protokolle zur Verfügung.
Unterstützte Protokolle:
Konfiguration und Anwendungen
Die Einrichtung von Nut/OS und Nut/Net ist denkbar einfach. Nach dem Herunterladen der Dateien wird ein Konfigurationswerkzeug ausgeführt, welches nach wenigen Einstellungen die Bibliotheken für die ausgewählte Hardware erstellt.
Bei der Programmierung der Anwendung in C werden nun die Bibliotheken von Nut/OS und Nut/Net benutzt. Zusätzlich steht dem Anwendungsprogrammierer die C-Standardbibliothek zur Verfügung. Neben C wird C++ weitestgehend unterstützt. Des Weiteren existiert ein Lua-Interpreter, so dass Lua-Skripte auf dem Board ausgeführt werden können.
Ethernut liefert ein Vielzahl von einfach gehaltenen Beispielprogrammen mit, um den Einstieg in Nut/OS zu erleichtern.
Unterstützte Architekturen
- Atmel AVR (z.B.: ATmega103, ATmega128, ATmega2561, AT90CAN128, u.a.)
- Atmel AVR32 (z.B.: AT32UC3A, AT32UC3B, u.a.)
- ARM7 (z.B.: AT91R40008, AT91SAM7X, LPC-E2294, Gameboy Advance, u.a.)
- ARM9 (z.B.: AT91SAM9260, AT91SAM9XE, u.a.)
- ARM Cortex M3
Folgende Architekturen werden zwar prinzipiell unterstützt, werden aber aktuell nicht aktiv gewartet:
Bluetooth Stack
Die Forschungsgruppe für verteilte Systeme der ETH Zürich hat ein verteiltes Sensornetz mit Sensorknoten auf AVR-Basis entwickelt. Diese Sensorknoten kommunizieren über Bluetooth miteinander. Als Softwarebasis wird der Open-Source-Bluetooth-Stack BTNut verwendet. Der BTNut-Stack basiert auf Nut/OS und erweitert es um Bluetooth-Funktionalität. Obwohl der BTNut-Stack in erster Linie für die BTNode-Sensorknoten entwickelt wurde, lässt sich der Bluetooth-Stack auch auf andere Applikationen portieren.
Verbreitung
Laut eigener Aussage verkaufte der deutsche Hersteller, die egnite GmbH, bisher mehr als 15.000 Ethernuts (Stand: September 2009). Weitere Hersteller kompatibler Hardware sind Achatz electronics (Niederlande), proconX (Australien), Propox (Polen), SOC Robotics (Kanada), HW group s.r.o. (Tschechien), thermotemp Embedded-IT (Deutschland). Des Weiteren wird das Nut/OS-Betriebssystem als Basis für das BTNode-Sensornetz der ETH Zürich verwendet.
Weblinks
Wikimedia Foundation.