emBetter Webserver
Zielanwendungen
Jedermann kennt die Nutzung des Internets durch PC-gestützte Systeme. Für viele Anwendungen sind die Desktop-, Laptop- oder Industrie-PCs viel zu teuer. Gleiches gilt auch für den Einsatz von 32-Bit-Mikrocontrollern unter Nutzung von Betriebssystemen.
Der Elektronikanteil vieler Geräte aus dem industriellen und aus dem Consumer-Bereich darf nur einige Euro kosten: Verkaufsautomaten ("Kaffeemaschine im Internet"), Kleidung mit mikroelektronischer Intelligenz ("Smart Clothes"), aber auch industrielle Anwendungen, z.B. aus der Transportlogistik oder bei Produktionsanlagen.
Hier ist vielfach aus Kostengründen der Einsatz von Kleincomputern (Mikrocontrollern) gefragt, die jedoch als 8-Bit- oder 16-Bit-Architekturen über eine sehr viel geringere Rechenleistung verfügen, so dass spezialisierte Realisierungen unumgänglich erscheinen.
Protocol Suite
Die TCP/IP-Protokollsuite emBetter ist für den Einsatz auf 16-Bit-und kleinen Mikrocontrollern optimiert und stellt in modularem Aufbau eine effiziente Grundlage für die Netzwerkanbindung dar. Sie besteht aus folgenden unabhängigen Modulen:
Portierbarkeit
Durch die Nutzung des ANSI-C-Standards und den sparsamen Einsatz von Bibliotheksfunktionen ist das Projekt auf eine Vielzahl von anderen Compilern und Mikrocontrollern portierbar. Die Anpassung an die Hardware geschieht in einem C- und Headerfile, wodurch der Aufwand überschaubar bleibt. Anpassungen an den Befehlssatz eines Modems geschehen in einem einzigen Headerfile.
Mittlerweile liegt der emBetter Protokollstack auf zahlreichen Mikrocontroller-Plattformen und Entwicklungsumgebungen und Compiler vor:
- Altera NIOSI und II
- ARM7TDMI
- Freescale HCS12, NE64
- Freescale ColdFire MCF5235, MCF52235
- Infineon C167
- NEC V850
- Renesas M16C und Renesas H8S
- Texas Instruments MSP430
Sicherheit
Für die im Internet exponierten embedded Systemen spielen Sicherheitsaspekte eine wichtige Rolle. Dazu hat stzedn ein Modul für Schlüsselaustausch und Verschlüsselung entwickelt.
Das Zusatzmodul zeichnet sich aus durch:
- SSL 3.0, TLS 1.0 und TLS 1.1 Protokoll
- RSA und Diffie-Hellman Ephemeral Schlüsselaustausch
- AES128/256, RC4 Verschlüsselung
- An OpenSSL angelehnte API
- Client Certificate Authentication
- Session Resumption
- Crypto Library Wrapper
- Möglichkeit zur Nutzung von Crypto Co-Prozessoren
- Möglichkeit eine alternative Cryptographie Bibliothek zu verwenden
Der Webserver ist dabei bereits für den Einsatz mit dem SSL API vorbereitet.
Ethernet
Es stehen zahlreiche Treiber für Ethernet-Controller zur Verfügung.
Insbesondere für den 5-in-1 Ethernet MAC, OpenCores MAC, SMSC LAN91C111, Crystal CS8900-Controller und Realtek RTL8019A.
Erweiterbarkeit
Durch die Einhaltung der winsock-Schnittstellenfunktionen (init, open, close, read, write) zwischen den Protokollebenen ist eine Erweiterung um Protokolle, wie z.B. Domain Name Service, IPsec oder SSL möglich und in Vorbereitung, sowie die Programmierung weiterer physikalischer Medien, wie Industrial Ethernet oder UMTS.
Wird eine leistungsschwächere Zielhardware eingesetzt, können einzelne Protokolle und Funktionalitäten vor dem Kompilieren ausgeschaltet werden, wie zum Beispiel ICMP oder SMTP.
Außerdem können die Speichergrößen angepasst werden, um die Ressourcen optimal zu nutzen. Alle Parameter sind in der Textdatei des Projekts beschrieben. Bereits in der Ursprungsversion zeichnet sich die emBetter-Implementierung durch eine außerordentlich geringe Codegröße und benötigten Speicherbedarf aus.
Geschwindigkeit
Darüber hinaus wurde in verschiedenen Projekten die Leistungsfähigkeit des Protokollstapels optimiert. Auf der Grundlage eines NIOS-Prozessors mit 50MHz wurde eine Datenrate auf TCP-Ebene von 34 MBit/s erreicht. Weitere Optimierungen sind möglich.
Ein vorbereitetes 5-in-1-Package verbindet den Prozessor, einen leistungsfähigen Ethernet-Controller, den emBetter-TCP/IP-Stack und den Webserver.
emBetter Management & Configuration Suite (EMCS)
Zur Konfiguration des embedded Webservers steht eine grafische Oberfläche zur Verfügung, die die Umsetzung einer Webseite direkt in Source Code vornimmt.
Somit können Webseiten in einem beliebigen HTML Editor (WYSIWYG oder textuell) erstellt werden und daraus direkt die Sourcecode Dateien für den Webserver generiert werden.
- Hierarchische Verzeichnisstrukturen
- Konvertierung von HTML, Text und Binärdateien
- Erstellung von Funktionen für dynamische Inhalte
- Parser für Feldnamen in HTML Formularen
Weitere Informationen finden Sie hier.
emBetter Socket API
Für die Implementierung von Netzwerkapplikationen steht eine API zur Verfügung, die der Berkeley Socket API angelehnt ist.
Als wesentlicher Bestandteil sind Socket Deskriptoren, die zum einen eine TCP Verbindung oder einen UDP Endpunkt darstellen.
emBetter stellt alle wichtigen Funktionen für die Arbeit mit Socket Deskriptoren wie socket(), bind(), listen(), connect(), read(), write(), recvfrom() und sendto() zur Verfügung.
Dienstleistungen
Die Bereitstellung der standardisierten Netzwerkfunktionalität stellt nur die Grundlage für ein erfolgreiches Produkt dar. Die effiziente Anpassung der Übertragungsparameter an die jeweilige Anwendung ist ein nächster Schritt, dem die Einbindung in das Gesamtsystem folgt. Deswegen bietet das Steinbeis-Transferzentrum für Embedded Design und Networking stzedn Entwicklungsdienstleistungen an, die sowohl die Software-Einbindung als auch die Hardware-bezogene Systemlösung umfassen.
Downloads
emBetter.pdf
Application Note - emBetter - Internet Connectivity (Überblick über Portierungen und Realisierungen)
emcs.pdf
Application Note - emBetter - EMCS
flyer_embetter.pdf
emBetter TCP/IP Protocol-Suite for 8-/16-/ and 32-Bit Microcontrollers
flyer_emBetterDynDns_autoIPTools.pdf
embetter HTTP Client - Dynamic DNS, AutoIP Tools
stz_presse_elektronik_embetter_sw.zip
"Kompakter Server - Internet-Protokollstapel für Mikrocontroller mit Modemanbindung", Elektronik 10/2003, S. 66-73. Download der tif-Files