Ethersex-Artikel: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Kerntechnik - Der IP Router)
Zeile 13: Zeile 13:
 
== Einleitung ==
 
== Einleitung ==
  
Das steuern diverser Aufgaben im Haus, vom Treppenlicht, über die Kaffemaschine, bis hin zur Heizung, ist eine relativ beliebte Aufgabe unter Hardwarebastlern. Jedoch wäre es oft wünschenswert, wenn man Daten über längere Zeit aufzeichnen und visualisieren will, oder von überall steuern kann. Daher bietet es sich dem Mikrocontroller ein IP Interface zu verpassen, was von vielen Projekten auch schon erfolgreich gemacht wurde. Ethersex beansprucht nun für sich eine der universellsten Softwareplattformen für diese Problemstellung und darüber hinaus zu sein, die auf manigfaltiger Hardware läuft, solange diese AVR basiert ist.
+
Das Steuern diverser Aufgaben im Haus, vom Treppenlicht über die Kaffemaschine bis hin zur Heizung, ist eine relativ beliebte Aufgabe unter Hardwarebastlern. Jedoch wäre es oft wünschenswert, Daten über längere Zeit aufzuzeichnen und zu visualisieren, oder di Hardware von überall zu steuern. Daher bietet es sich an, dem Mikrocontroller ein IP Interface zu verpassen, was von vielen Projekten auch schon erfolgreich gemacht wurde. Ethersex beansprucht nun für sich eine der universellsten Softwareplattformen für diese Problemstellung und darüber hinaus zu sein, die auf manigfaltiger Hardware läuft, solange diese AVR basiert ist.
  
 
== Kerntechnik - Der IP Router ==
 
== Kerntechnik - Der IP Router ==
 
[[Bild:Ethersex-plot-1.png‎|500px|right]]
 
[[Bild:Ethersex-plot-1.png‎|500px|right]]
Als erstes gab es die [http://www.lochraster.org/etherrape/ Etherrape] Hardware von Alexander Neumann, was auch der Grundstein für Ethersex war. Der dort unterstützte Enc28j60 bietet ein 10 Mbit Ethernetinterface an und wird per SPI an den Mikrocontroller angeschlossen. Der Kern von Ethersex ist ein recht aufgebohrter [http://www.sics.se/~adam/uip/index.php/Main_Page uIP], der neben TCP, UDP und IPv4 auch die neuere Version des Internetprotokolls IPv6 unterstützt. Dies gibt uns die Möglichkeit jeden Controller mit einer weltweit eindeutigen Adresse anzusprechen. Jedoch unterstüzt Ethersex IP nicht nur über Ethernet, sondern auch über serielle Leitungen (RS485,ZBus), 433 MHz Funk (RFM12) und über USB (mit eigenem TUN Device Treiber). Um IP Packete über diese Wege zu transportieren, werden die nackten IP Packete einfach in das jeweilige Protokoll eingebettet. Es findet also kein umschreiben der IP Packete statt. Um nun eine Brücke zu schlagen zwischen dem normalen Netzwerk und RFM12 oder ZBus, besitzt Ethersex die Möglichkeit Packete zwischen solchen Interfaces hin und her zu routen. Damit und mit IPv6 kann man sogar einem ATmega8 (8k Flash, 1k Ram) eine weltweit eindeutige IP geben. Möchte man die Verbindung zum Ethersex noch absichern, so kann man OpenVPN zum Mikrocontroller hin verwenden und hat mit ipchair auch noch einen Packetfilter zur Hand.
+
Als erstes gab es die [http://www.lochraster.org/etherrape/ Etherrape] Hardware von Alexander Neumann, was auch der Grundstein für Ethersex war. Der dort unterstützte Enc28j60 bietet ein 10 Mbit Ethernetinterface an und wird per SPI an den Mikrocontroller angeschlossen. Der Kern von Ethersex ist ein recht aufgebohrter [http://www.sics.se/~adam/uip/index.php/Main_Page uIP], der neben TCP, UDP und IPv4 auch die neuere Version des Internetprotokolls, IPv6, unterstützt. Dies gibt uns die Möglichkeit jeden Controller mit einer weltweit eindeutigen Adresse anzusprechen. Jedoch unterstüzt Ethersex IP nicht nur über Ethernet, sondern auch über serielle Leitungen (RS485, ZBus), Funk in den ISM-Bändern (RFM12) und über USB (mit eigenem TUN Device Treiber). Um IP-Pakete über diese Wege zu transportieren, werden diese einfach in das jeweilige Protokoll eingebettet. Es findet also kein Umschreiben der IP-Pakete statt. Um nun eine Brücke zu schlagen zwischen dem normalen Netzwerk und RFM12 oder ZBus, besitzt Ethersex die Möglichkeit Pakete zwischen diesen Schnittstellen hin und her zu routen. So kann man mit IPv6 selbst einem ATmega8 (8k Flash, 1k RAM) eine weltweit eindeutige IP-Adresse geben. Möchte man die Verbindung zum Ethersex noch absichern, kann man OpenVPN zum Mikrocontroller hin verwenden und hat mit ipchair ebenfalls einen Paketfilter zur Hand.
  
== 282 - Extrem konfigurierbar ==
+
== 282 Optionen - Extrem konfigurierbar ==
  
Es gibt in der Konfiguration von Ethersex 282 verschiedene Optionen die man an- und abwählen kann. Daraus und aus der Beschränktheit der Plattform folgt, das man das meiste vor dem kompilieren festlegen und konfigurieren muss, und sich immer nur die Features aktiviert, die man im aktuellen Fall braucht. Die Vielzahl an Optionen, die sich teilweise sogar ausschließen, werden über eine ncurses Oberfläche, dem sogenannten menuconfig (ja wir haben das menuconfig vom Linuxkernel geklaut) konfiguriert. Die meisten der eingebauten Features sind über das ECMD Interface erreichbar. ECMD ist ein text-basiertes Kommandointerface, dass über verschiedene Frontends angesprochen werden kann (TCP, UDP, Jabber, IRC, I2C, USART). Die Möglichkeiten in Ethersex erstrecken sich von seriellen Kommunikationsprotokollen, wie Modbus über die Ansteuerung bestimmter Webcams bis hin zu Netzwerkprotokollen wie HTTP, SNMP oder MYSQL. Eine vollständigere Liste findet sich auf der [http://ethersex.de/index.php/Feature_Liste Ethersex Projektseite].
+
Es gibt in der Konfiguration von Ethersex 282 verschiedene Optionen die man an- und abwählen kann. Daraus und aus der Beschränktheit der Plattform folgt, dass man das Meiste vor dem Kompilieren festlegen und konfigurieren muss.  Man aktiviert einfach die Features, die man im aktuellen Fall braucht und lässt den Rest weg. Die Vielzahl an Optionen, die sich teilweise gegensetig ausschließen, werden über eine ncurses Oberfläche, dem sogenannten menuconfig (ja wir haben das menuconfig vom Linuxkernel geklaut) konfiguriert. Die meisten der eingebauten Features sind über das ECMD Interface erreichbar. ECMD ist ein text-basiertes Kommandointerface, das über verschiedene Frontends angesprochen werden kann (TCP, UDP, HTTP, Jabber, IRC, I2C, USART). Die Möglichkeiten in Ethersex erstrecken sich von seriellen Kommunikationsprotokollen, wie Modbus über die Ansteuerung bestimmter Webcams bis hin zu Netzwerkprotokollen wie HTTP, SNMP oder MYSQL. Eine vollständigere Liste findet sich auf der [http://ethersex.de/index.php/Feature_Liste Ethersex Projektseite].
  
== Control6 zum erweitern ==
+
== Control6 zum Erweitern ==
  
Da jede Aufgabe, die es zu bewältigen gibt andere Anforderungen hat, gibt es mit Control6 eine Art Skriptingsprache, die zwar nicht dynamisch (Wird trotzem in die Firmware eincompiliert), aber mit gewissen multithreading Eigenschaften, die schnelle Entwicklung eigener Steuerungen unterstützt. Control6 ist nur ein M4 Makropacket, dass aus dem Control6 Quellcode C generiert. So hat erweitert es nur die Möglichkeiten von C ohne eine ganz neue Sprache zu erfinden.  
+
Da jede Aufgabe, die es zu bewältigen gibt, andere Anforderungen hat, gibt es mit Control6 eine Art Metasprache, mit der schnell und einfach C-Code entsteht, der neue Funktionen bietet.  Der große Charme von Control6 ist die multi-threading Unterstützung und der hohe Abstraktionsgrad. Control6 ist so betrachtet nur ein M4 Makropaket, aber dennoch sehr flexibel und leistungsfähig, schließlich ersetzt es keine andere Sprache, sondern erweitert nur eine bestehende: C.  
  
 
== Verschiedenste Hardware ==
 
== Verschiedenste Hardware ==
  
Wie berreits erwähnt lässt sich Ethersex für verschiedene AVR Controller compilieren (vom kleinen ATmega8 bis zum ATmega128), außerdem ist es durch eine Pinning-Metaschicht leicht auf neue Ethernetboards übertragbar. So wird neben dem Etherrape Board auch verschiedene Bausätze und eigene Basteleien unterstützt. Eine Selbstbaulösung liegt bei ungefähr 20-25 Euro und ist damit eine geringe Einstiegshürde. Mit dem [http://www.ethersex.de/firmware-builder/list.cgi Firmware-Builder] gibt es die Möglichkeit Ethersex ohne großen Aufwand auszuprobieren.
+
Wie bereits erwähnt, lässt sich Ethersex für verschiedene AVR Controller kompilieren (vom kleinen ATmega8 bis zum Flagschiff ATmega128).  Zudem ist es durch eine Pinning-Metaschicht leicht auf neue Ethernet-Boards übertragbar. So werden neben dem Etherrape auch verschiedene Bausätze (u.a. AVR Net-IO und Radig AVR-Webmodul) und eigene Basteleien unterstützt. Eine Selbstbaulösung liegt bei ungefähr 20-25 Euro und ist damit nur eine geringe Einstiegshürde. Mit dem [http://www.ethersex.de/firmware-builder/list.cgi Firmware-Builder] gibt es die Möglichkeit Ethersex auch ohne großen Aufwand - auf Fertighardware - auszuprobieren.

Version vom 31. Juli 2009, 17:13 Uhr

Ziel ist es einen Artikel für das Embedded Projects Journal zu schreiben. Um Mithilfe wird gebeten.


Ethersex-Features

  • Free Software (GPLv3)
  • Atmel AVR basierend
  • IPv4, IPv6, UDP, TCP
  • RFM12 Funk
  • universell konfigurierbar
  • Entwicklung unter Linux

Einleitung

Das Steuern diverser Aufgaben im Haus, vom Treppenlicht über die Kaffemaschine bis hin zur Heizung, ist eine relativ beliebte Aufgabe unter Hardwarebastlern. Jedoch wäre es oft wünschenswert, Daten über längere Zeit aufzuzeichnen und zu visualisieren, oder di Hardware von überall zu steuern. Daher bietet es sich an, dem Mikrocontroller ein IP Interface zu verpassen, was von vielen Projekten auch schon erfolgreich gemacht wurde. Ethersex beansprucht nun für sich eine der universellsten Softwareplattformen für diese Problemstellung und darüber hinaus zu sein, die auf manigfaltiger Hardware läuft, solange diese AVR basiert ist.

Kerntechnik - Der IP Router

Ethersex-plot-1.png

Als erstes gab es die Etherrape Hardware von Alexander Neumann, was auch der Grundstein für Ethersex war. Der dort unterstützte Enc28j60 bietet ein 10 Mbit Ethernetinterface an und wird per SPI an den Mikrocontroller angeschlossen. Der Kern von Ethersex ist ein recht aufgebohrter uIP, der neben TCP, UDP und IPv4 auch die neuere Version des Internetprotokolls, IPv6, unterstützt. Dies gibt uns die Möglichkeit jeden Controller mit einer weltweit eindeutigen Adresse anzusprechen. Jedoch unterstüzt Ethersex IP nicht nur über Ethernet, sondern auch über serielle Leitungen (RS485, ZBus), Funk in den ISM-Bändern (RFM12) und über USB (mit eigenem TUN Device Treiber). Um IP-Pakete über diese Wege zu transportieren, werden diese einfach in das jeweilige Protokoll eingebettet. Es findet also kein Umschreiben der IP-Pakete statt. Um nun eine Brücke zu schlagen zwischen dem normalen Netzwerk und RFM12 oder ZBus, besitzt Ethersex die Möglichkeit Pakete zwischen diesen Schnittstellen hin und her zu routen. So kann man mit IPv6 selbst einem ATmega8 (8k Flash, 1k RAM) eine weltweit eindeutige IP-Adresse geben. Möchte man die Verbindung zum Ethersex noch absichern, kann man OpenVPN zum Mikrocontroller hin verwenden und hat mit ipchair ebenfalls einen Paketfilter zur Hand.

282 Optionen - Extrem konfigurierbar

Es gibt in der Konfiguration von Ethersex 282 verschiedene Optionen die man an- und abwählen kann. Daraus und aus der Beschränktheit der Plattform folgt, dass man das Meiste vor dem Kompilieren festlegen und konfigurieren muss. Man aktiviert einfach die Features, die man im aktuellen Fall braucht und lässt den Rest weg. Die Vielzahl an Optionen, die sich teilweise gegensetig ausschließen, werden über eine ncurses Oberfläche, dem sogenannten menuconfig (ja wir haben das menuconfig vom Linuxkernel geklaut) konfiguriert. Die meisten der eingebauten Features sind über das ECMD Interface erreichbar. ECMD ist ein text-basiertes Kommandointerface, das über verschiedene Frontends angesprochen werden kann (TCP, UDP, HTTP, Jabber, IRC, I2C, USART). Die Möglichkeiten in Ethersex erstrecken sich von seriellen Kommunikationsprotokollen, wie Modbus über die Ansteuerung bestimmter Webcams bis hin zu Netzwerkprotokollen wie HTTP, SNMP oder MYSQL. Eine vollständigere Liste findet sich auf der Ethersex Projektseite.

Control6 zum Erweitern

Da jede Aufgabe, die es zu bewältigen gibt, andere Anforderungen hat, gibt es mit Control6 eine Art Metasprache, mit der schnell und einfach C-Code entsteht, der neue Funktionen bietet. Der große Charme von Control6 ist die multi-threading Unterstützung und der hohe Abstraktionsgrad. Control6 ist so betrachtet nur ein M4 Makropaket, aber dennoch sehr flexibel und leistungsfähig, schließlich ersetzt es keine andere Sprache, sondern erweitert nur eine bestehende: C.

Verschiedenste Hardware

Wie bereits erwähnt, lässt sich Ethersex für verschiedene AVR Controller kompilieren (vom kleinen ATmega8 bis zum Flagschiff ATmega128). Zudem ist es durch eine Pinning-Metaschicht leicht auf neue Ethernet-Boards übertragbar. So werden neben dem Etherrape auch verschiedene Bausätze (u.a. AVR Net-IO und Radig AVR-Webmodul) und eigene Basteleien unterstützt. Eine Selbstbaulösung liegt bei ungefähr 20-25 Euro und ist damit nur eine geringe Einstiegshürde. Mit dem Firmware-Builder gibt es die Möglichkeit Ethersex auch ohne großen Aufwand - auf Fertighardware - auszuprobieren.