19
Traffic Logging Traffic Logging mit μC mit μC mit Lan Interface mit Lan Interface Dennis Wunderlich Studiengang Informatik Hochschule Merseburg (FH)

Traffic Logging mit µC mit Lan Interface - FB IKSuheuert/pdf/Anwendung Rechnernetze/Vortraege... · seien hier die 8051 Gattung von Intel sowie die C166 von Siemens Vertreter genannt

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Traffic LoggingTraffic Loggingmit µCmit µC

mit Lan Interfacemit Lan Interface

Dennis WunderlichStudiengang Informatik

Hochschule Merseburg (FH)

3

Inhaltsverzeichnis

Inhaltsverzeichnis ...........................................................................................3

1 Einleitung.....................................................................................................4

2 Mikrocontroller .............................................................................................5

3 Das Ethernutboard ......................................................................................7

4 Netzwerk Grundlagen..................................................................................9

4.1 Physikalische Verbindung......................................................................9

5 Ethernut mit Nut/OS...................................................................................11

6 Einrichten der Entwicklungsumgebung......................................................11

7 Debugging .................................................................................................15

8 Bilbiotheken ...............................................................................................16

Literaturverzeichnis ......................................................................................19

4

1. Einleitung

Das Ethernutboard ist ein Starter Kit von der Firma Egnite GmbH (www.egnite.de) . Egnitestellt verschiedene Embedded Hardware Boards für den Low Cost Bereich her. Das Starter Kitgibt es mitlerweile in der 2ten Auflage. In der ersten Version war noch ein 10-Mbit Netzwerkinter-face der Firma Ritlabs aufgebracht. Mittlerweile bring das Ethernut in der Version 2.1 ein 100-Mbit Ethernetinterface der Firma SMSC mit sich.

Ethernut ist ein 78 x 98 mm (3.1" x 3.9") kleines Multilayer Board. Auf dem Board befindet sichnicht nur ein Mikrokontroller von Atmel, es bringt auch ncoh die diversen Schnittstellen (Ether-net, RS232, RS485, …) mit sich. Alles in allem können mit dem Board schnell neue Produkteentwickelt werden. Dafür sorgt auch schon das mitgelieferte Echtzeitbetriebsystem mit dem pas-senden Namen Nut/OS. Kombiniert wird dieses mit dem TCP/IP Stack Nut/Net, mit diesem las-sen sich die vorgefertigten Routinen zur Netzwerkkommunikation nutze und so können in derHochsprache C einfache oder auch mächtigere Programme erstellt werden. Ein embededdWebserver erleichtert die Erstellung von Webbasierten Anwendungen und kann direkt mit denvon haus aus mitgebrachten Arp, IP, UDP, ICMP, TCP und PPP Protokollen verwendet werden.Im folgenden gehe ich auf die Einrichtung einer Umgebung zum Entwickeln von Software für

das Ethernut ein. Stelle die auf dem Markt befindlichen Echtzeitbetriebsystem die als alternativezum Nut/OS verwendet werden können vor.

Das Ziel dieser Ausarbeitung soll es sein, zu zeigen wie mit Hilfe des Ethernut’s ein Traffic Log-ger (Sniffer) erzeugt werden kann. Dazu müssen wie auf der Abbildung zusehen ist noch dreiGrundlegende Bereiche erläutert werden.

Abb.1.1 Zusammensetzung des TrafficLogger aus den drei Grundlagengebieten

5

2. Mikrocontroller

Mikrokontroller sind Ein-Chip-Computersysteme, meistens sind folgende Abkürzungen in derLiteratur zu finden µC,µController oder auch MCU (Abb.2.1).Dabei sagen alle drei Abkürzungen ein und das selbe aus. In der heutigen Zeit können MCU’s

in fast allen elektronischen Gegenständen gefunden werden. Sei es der Videorecorder oderauch der DVD – Player. Ein jeder der eine EC-Karte besitzt trägt damit tag täglich einen MCUmit sich in der Tasche.Die Mikroprozessoren gibt es in den unterschiedlichsten Varianten. Zum

einen wurden in der frühen Anfängen der Computerisierung Kontroller ent-wickelt die die Aufgabe hatten, als Unterstützungs- und Peripheriebausteinzu dienen. Diese vereinten schon verschiedenen Komponenten in einemChip, wie Takt- und Reset-Erzeugung, Interruptcontroller, Zeitgeber, Schnitt-stellenbausteine sowie zum Teil Speichercontroller. Zum Betrieb dieserChips war es dann nur noch von Nöten einen externen Taktgenerator(Quarz) mit anzuschliessen. Gegenüber dieser Architektur wurden auchMikroprozessorsystem entwickelt die primär auf die Steuerung ausgelegtwaren. Diese zeichneten sich durch schnelle Abarbeitung von Befehlen unddem schnellen reagieren auf Interrupt’s aus. Als Beispiel für solche Chipsseien hier die 8051 Gattung von Intel sowie die C166 von Siemens Vertreter genannt.

Die Architektur der Mikrokontroller überschneidet sich momentan etwas. Heute werden nochvermehrt die 8-Bit Architektur eingesetzt. Diese entstammt noch von den Anfängen der 8-Bit-Prozessoren.(1970er Jahren) Die 16- und 32-Bitter sind schon auf dem Vormarsch die nocheingesetzten 8-Bitter langsam aber sicher aufzuholen. Die Architektur sagt aus, wie viel Bit derProzessor in einem Taktzyklus gleichzeitig verarbeiten kann. Bei einem 8-Bitter sind dies 8-Bitbei einem Takt. Dies reicht bisweilen für die meisten Anforderungen noch aus. Ein Mikrokontrol-ler besteht demnach nicht nur aus der CPU sondern auch noch aus einem Taktgenerator für dieErzeugung des Prozessortaktes. (wird auch für die Kommunikation RS232.. benötigt). Der EE-Prom dient in einem Mikroprozessor zur verlustfreien Speicherung der Programmierung. Dienoch gängigen Grössen Variieren zwischen 32 Bytes und 48 KB, sie können jedoch auch nocherweitert werden durch externe Speicherbausteine. Einem Programm Flash in dem die zur Lauf-zeit benötigten Variablen, Daten abgelegt werden. Meist ist dies ein flüchtiger Flash-RAM.Ein wesentlicher Bestandteil eines Mikrocontrollers ist der Watchdog oder auch Todmann-

Schaltung. Dies ist im einfachsten Fall durch eine Monostabile Kippstufe realisiert. Diese hat nureinen stabilen Zustand, der durch einen äusseren Trigger (Impuls) erreicht werden kann. In die-sem Zustand bleibt diese Schaltung für eine vorgegebene Zeitspanne, versäumt nun ein inter-nes Programm innerhalb dieser Zeitspanne den Impuls neu zu geben. So wird ein RESET desMikrocontrollers durchgeführt. Dies ist schon ein wesentlicher Unterschied zu Mikrocomputer,wobei die Definition beider Bereiche etwas fliessend ist.Zur Kommunikation mit der Aussenwelt, besitzt ein Mikrocontroller die verschiedenen Vorberei-

tungen mit anderen Komponenten zu kommunizieren. Meistens wird hier der i²C-Bus oder auchder SPI-Bus implementiert. Diese zeichnen sich durch die geringe Portbelegung aus. In allerRegel wird auch noch eine UART-Schnittstelle mit geliefert. Diese kann für die Serielle kommu-nikation per RS232 durch Anpassungen der Signalpegel mithilfe eines MAX232 – Chips reali-siert werden. Die UART-Schnittstelle hat einen Max-Pegel von 5-Volt RS232-Schittstellen einesHandelsüblichen Personal Computers haben hier Pegel von 12V+/-.Daher wird hier eine PegelAnpassung zwingend. Verschiedene Mikrocontroller bringen auch noch den CAN-Bus oder auchdie RS485 Schnittstele mit sich.

Abb. 2.1 MCU in SMDTechnik

(http://de.wikipedia.org/wiki/Mikrocontroller)

6

Wichtig ist hier auch noch dasjeder Mikrocontroller über verschie-dene Analoge Ein-/Ausgänge ver-fügt. Je nach Anzahl der Ports, einPort ist die Zusammenfassung von8 Pinnen an einem Mikrocontroller,können hier direkt Bit-Signale aus-gegeben werden. (High-/Low-Pegel)

Wie sie aus der rechter Abbildung2.2 entnehmen könne sind die mei-sten Pinne eines Mikrocontrollersdoppelt belegt. Dies hat zu Folge,das nicht alle Feature genutzt wer-den könne. Einem Entwickler mussim Vorfeld klar sein welche Funktio-nen mit dem Mikrocontroller erfülltwerden sollen. Änderung, Upgra-des auf ein nachfolge Modell oderauf ein grösseres sind nicht ohneKomplikationen, wenn überhauptmöglich. Daher gibt es mitlerweileauch schon die diversen Mikrocon-troller mit eingebauten Wlan – In-terfaces oder auch schon Bluetooth um Pinne zu sparen, die für die Anbindung einerKommunikationskomponente nötig sein würden.

Die Vorteile eines Mikrocontrollers liegen wohl auf der Hand. Sie sind klein Stromsparend undgünstig. Ein normaler Mikrocontroller, wie er auch auf dem Ethernut zu finden ist, Kostest sozwischen 4€- 10€. Bei einer einzelnen Bestellung. Für Massen Produktionen reduzieren sichdie Preise um ein vielfaches.Ein weiterer Vorteil ist die grosse Vielfalt der auf dem Markt befindlichen Mikrocontroller, für fast

jedes Einsatzgebiet gibt es ein passenden Controller von den verschiedenen Herstellern. Durchden EEProm im Mikrocontroller können nachträgliche Programm Änderungen ohne grösserenAufwand über einen PC auf das jeweilige Endgerät gespielt werden. Das die Wartung und Feh-lerbehebung vereinfacht. Als Beispiel sei hier ein Handy genannt, dieses kann über eine USB-Datenkabel ein neues Firmware verpasste bekommen. Das Firmware wird von dem jeweiligenHersteller zum Download zur Verfügung gestellt.

Nachteil, leider gibt es die wie bei fast jedem Produkt auch bei den Mikrocontrollern. Dochdiese sind im Vergleich zu den Vorteilen recht marginal, zum einen ist die vorhin schon er-wähnte Erweiterung von Anschlüssen und Features nicht Möglich. Ein Upgrade auf eine grös-sere leistungsfähigeren Chip ist auch nicht möglich (vereinzelt schon).Atmel, ist heute einer der führenden Hersteller im Mikrocontroller Segment. Durch die einfache

Entwicklung in den verschiedenen Hochsprachen hat es Atmel geschafft Leistungsfähige Mikro-controller auf den Markt zu bringen. Als gute Konkurenz sind noch zu erwähnen: Infineon ,freescale (ehemals Motorola) und auch Intel einer der grösseren Prozessor Hersteller.

Abb. 2.2 ATmega128 in TQFP - Bauform,Überlagerung der PInne !!(http://www.atmel.com, Datasheet ATmega128,10.01.2007)

7

Eins der grösseren Einsatzgebiete von Mikrocontrollern ist die Steuerung und Überwachung.Hier sind die Stromsparenden Varianten gefragt, sie können ohne Schwierigkeiten mit Batterieoder Akkumulatoren betrieben werden. Dieser Vorteil ermöglicht Einsatzgebiete, in denen dieStromzufuhr mittels Kabel Problematisch wird. Aus solchen Controllern können Sensoren ent-wickelt werden, die in den Unterschiedlichsten Bedingungen eingesetzt werden können. Bei-spiele wären unter anderem die Raumüberwachung oder auch RFID-Scanner. Diese beidenBeispiele sind nur Exemplarisch, sie stellen nicht die Hauptbereiche dar. In Haushaltsgerätenkönnen die verschiedensten Controller gefunden werden. Sei es nur um die Waschmaschienezu steuern oder um den Teletext (Videotext) abzurufen. Überall hier finden wir diese kleinenChips.

3. Das Ethernutboard

Alle Bauteile des Ethernuts (Abb. 3.2) finde auf einer halben Europlatine (80x98mm) platz.Diese 4-Schichitge Platine ist wie auf dem folgenden Abbild zusehen aufgebaut.Als zentrale Einheit ist hier der Atmega128 zu finden. Als Memory Controller kommt der

XC9536 Chip von Samsung zum Einsatz. Dieser ist direkt mit dem Netzwerkinterface gekoppelt,so das die eintreffenden Daten vom LAN91C111-Chip den Weg in den vordefinierten (sieheHandbuch) Speicherbereich (Chip K6T4008) ohne Umwege finden. Zur Kommunikation wurden2 mögliche Serielle Schnittstellen zur Verfügung gestellt. Das ist zum einen eine RS232-Schnitt-stelle über die Programme mit der Aussenwelt kommunizieren können. Desweiteren befindetsich eine RS485-Schittstelle auf dem Board. Über die Extension-Leiste können weitere Anbin-dungen per SPI oder I²C Bus ermöglicht werden. Die Analogen Signale werden auf die selbe Artdem Mikrocontroller zugeführt. Für eine stabile Stromversorgung sorgt der LM1086 der auseiner ~13Volt Eingangsspannung eine stabile 5V Spannung erzeugt.Mit ca. 150€pro Board eignet sich dieses nicht nur zum Experimentieren für neue Produkten,

es eignet sich auch hervorragend als komplett Lösung für neue Produkte.Im Internet finden sich verschiedene Produkte die als Kernelement ein Ethernut verbaut haben.

Linkangaben bitte aus dem Anhang entnehmen.

Abb. 3.1 Schema-tische Darstellungdes Ethernut(http://www.ether-

nut.de,Auf-bau,10.01.2007)

8

Abb. 3.2 Ethernut - Board Rev. 2.1b (http://www.ethernut.de,10.01.2007)

9

4. Netzwerk Grundlagen

Auf der folgenden Abbildung 4.1 ist der Aufbau eines Ethernet-Frames dargestellt. Die Kommu-nikation zwischen Endgeräten im Ethernet erfolgt über deren MAC-Adresse.Diese setzt sich auch 6-Byte (Hex) zusammen. Die ersten 3 Byte (24Bit) werden für die Her-

stellerkennung (auch OUI – Organisationally Unique Identifier genannt) verwendet. Jeder Her-steller bekommt eine eindeutige Kombination zugewiesen. Die letzen 3 Byte sind für dieeindeutige Zuordnung einer Netzwerkkarte gedacht. Mit Hilfe dieser eindeutigen Mac-Adressekann die Kommunikation im Netzwerk erfolgen.

4.1 Physikalische Verbindung der Netzwerk Komponenten.

In einem Ethernetbasierenden Netzwerk kommt die folgende Kopplung der Komponenten inden meisten Fällen zum Einsatz. In der damaligen Zeit waren noch so genannte Hub’s zurSternförmigen Verkabelung im Einsatz, wie in Abbildung 4.2 zusehen.

Ein Hub sendet alle eingehen Datenpakete an alle angeschlossenen Endgeräte weiter. Das be-deutet, das sämtliche Angeschlossenen Geräte die gesamte Kommunikation mit empfangenkönnten. Das wird normalerweise durch die Netzwerkkarte verhindert. Diese überprüft bei einemeintreffenden Frame die Ziel – Mac mit der eigenen, stimmen diese nicht über ein verwirft siedas gesamte Paket. Leider hat diese Art der Vernetzung den Nachteil das unnötiger weise vielBandbreite vergeudet wird. Daher wurden Switch entwickelt. Diese haben den grossen Vorteileine Abhöhr sichere Kommunikation zwischen jeweils zwei Netzwerkgeräten aufzubauen. EinSwitch kennt die Mac-Adresse eines jeden angeschlossenen Netzwerkgerätes an den einzelnenPorts. Sendet ein Computer A ein Paket an den Computer C, wird eine Direkte 1 zu 1 Verbin-

Abb. 4.1 Aufbau Ethernetframe, mit Beispiel Typenfeld Werten

10

dung zwischen den beiden betreffenden Ports hergestellt. Das Paket wandert nun nur noch vondem einen Computer zum anderen und wird nicht mehr an alle angeschlossenen Geräte gesen-det. Durch diese 1zu1 Beziehung wird es leider für Geräte mit andrer Mac-Adresse unmöglichnoch Pakete von anderen Zielgeräten zu empfangen. Umgangen kann dieses Problem nur mitSwitches, die einen Monitoring – Port besitzen. Auf diesen Speziellen Port wird immer eineKopie des Gerade geswitchten Paketes ausgegeben. Zu beachten ist die maximal zu errei-chende Bandbreite!!! Diese Lösung ist gut um den gesamten Traffic in einem Netzwerk zu beob-achten.Es gibt noch eine andere Art um den Datenverkehr zweier Geräte zu belauschen. Dies wird

auch ARP-Spoofing genannt. Bei einem ARP-Spoof wird den beiden Geräten eine andere IP-Adresse <-- --> MAC-Adressen Zuordnung vorgespielt. Wodurch nun ein Dritter in der Lage ist,den Datenverkehr über sich zu leiten. Das funktioniert jedoch nur mit 2 Geräten!! Das wird auchals „Men in the middle“ bezeichnet.

Beide Varianten sind mit dem Ethernut denkbar. Für die Arp-Spoofing Lösung, bedarf es jedochnoch einigen Erweiterungen.

Abb. 4.2 Sternförmige Verkabelung mittels HUB1. Computer A sendet Paket, mit Ziel Computer B2. Hub Verteilt das Paket an alle angeschlossenen Geräte3. Alle verwerfen das Paket bis auf Comptuer B, Ziel MAC stimmt mit der eigenen überein

11

5. Ethernut mit Nut/OS

Am schnellsten und einfachsten kann mit dem Hauseigenen Echtzeitbetriebsystem gearbeitetwerden. Dieses steht unter der BSD Lizenz und ermöglicht die Entwicklung von Produkten ohnederen Quelltext offen zulegen. Das OS bietet eine viel Zahl von vorgegebenen Funktionen. Ge-schrieben ist dieses in C und lässt sich mit gängigen C Compilern kompilieren. Ein mitgeliefertesKonfigurations-Programm ermöglicht die Makedateien und Compiler spezifische Befehle / Struk-turen in den mitgelieferten Sourcedateien anzupassen. Die eigene Software kann mit dem eige-nen Lieblings Tool entwickelt werden. Die einfachste Variante ist unter Linux den GCC zubenutzen. Für Windows gibt es das pandaun WinAvr, welches den Compiler für AVR’S ( AtmelMikrocontroller) mitbringt. ICC-AVR ist eine Kommerzielle IDE die ausser des Grafischen Edi-tors noch mit ein par anderen Nettigkeiten daher kommt.

6. Einrichten der Entwicklungsumgebung

In diesem Kapitel soll es um die Einrichtung einer lauffähigen Entwicklungsumgebung für dasEthernut gehen.Ich gehe hier nur auf das einrichten einer Umgebung in Windows mit dem GCC (WinAVR) ein.

Der GCC in Kombination mit dem AVR-Studio (Assembler IDE von Atmle) und dem PN-Pad (Winavr Editor) stellt ein genauso Mächtiges Tool wie die Kommerzielle Version ICC-AVR (image-craft) dar.

Warum Imagecraft’s ICC-AVR? Nuja, auf der Ethernut Homepage wird die Möglichkeit be-schrieben wie das erzeugte Programm per JTAG – Dongel (Programmier Interface) genutztwerden kann in Kombination mit dem AVR-Studio, um Echtzeit Debugging zu betreiben. Dieskann auch mit dem freien GCC und einem Konsolenparameter geschehen. Dazu mehr im fol-genden Kapitel.

Das Einrichten:

1. Bevor irgend etwas installiert wird muss überprüft werden ob sich andere C-Compiler aufdem System befinden. Wie bespielsweise ein Borland – C oder Cygwin ….. . Wenn das der Fallsein sollte müssen diese entweder deinstalliert werden oder es reicht wenn die Windows „Path“Variable angepasst wird. Hier reicht es die betreffenden Verzeichnisangaben heraus zu nehmen.

Um sich das Leben etwas leichter zu machen können auch verschiedenen Batch-Dateien er-zeugt werden, die die Path-Variable dann entsprechend setzen.

SET Path=c:\Winavr\bin\;c:\Winavr\utils\bin\;c:\ethernut-VER\nut\tools\win32\;%PATH%

Setze_WinAVR_PAth.bat

Mit dieser einfachen Batch-Datei wird der Path für den WinAVR gesetzt, genauso leicht lässtsich das für Borland-c, Cygwin etc. einrichten.

12

2. Als nächste wird der WinAVR Compiler installiert. Dazu bitte die neuste Version vonhttp://winavr.sourceforge.net laden und in das Standard Verzeichnis installieren.Danach die Path-Variablen über Prüfen in Windows zu finden unter : Systemsteuerung --> Sy-

stem --> Registrierkarte ‚Erweiter’ --> Umgebungsvariablen

3. Nun kann ebenfalls die neuste Version des Nut/OS installiert werden. Diese kann von deroffiziellen Homepage http://www.ethernut.de geladen werden.

Bitte auch hier das Installationsverzeichnis nicht anpassen!!!!

4. Zum Uploaden der später erzeugten Hex-Datei wird noch das AVR-Studio von Atmel benö-tigt. Dieses bitte von der Atmel Internetseite downloaden (http://www.atmel.com)

5. Anpassen der Umgebungsvariablen wie oben beschrieben.Insgesamt müssen sich nun 3 Verzeichnis angaben zusätzlich in der Path-Variablen befin-

den. (Gegebenen falls Neustarten)

6. Konfigurieren des Nut/OS. In dem Nut/OS Verzeichnis befindet sich der Konfigurator (nut-conf.exe). Mit dessen Hilfe werden die Makefiles und der Sourcecode auf ihre Umgebung undden eingesetzten Atmel angepasst. Für das Ethernut 2.0 oder 2.1 Rev-b Board wird die ether-nut21b.conf Datei ausgewählt.

Nun müssen noch die Pfad Angabe(Abb. 6.1) unter Edit --> Settings eingestellt werden. Hierkann eine Relative Angabe zum Nut/OS Ver-zeichnis vorgenommen werden.

Die zweite Registrierkarte (‚Build’) sollte wieFolgt eingestellt werden. (Abb.6.2)

Abb. 6.1 Einstellungen Ethernutconfig , RepositoryScreenshot 30.01.2007

Abb. 6.3 Einstellungen für die Erstellung OSScreenshot 30.01.2007

13

Auf der dritten wird der Pfad zum Wi-navr Compiler und Make.exe einge-stellt. (Abb. 6.4)

Letzte Seite wie auf Abbildugn 6.5 zuz-sehen ist einstellen.

Im Hauptbildschirm des Konfigurators unter dem Baum Tools bitte „GCC for AVR“ auswählen.Hier könne die Verschiedenen Konfigurationen für die unterstützten Compiler ausgewählt wer-den. Unter dem Punkt ‚Architecture’ bitte die richtige CPU auswählen, für das 2.1b Board wäredies die ‚Atmel ATmega128’.Nun kann in dem Menü Build ‚Build OS’ ausgewählt werden. Nach einer Warnung und der In-

formation wohin das ganze erstellt werden soll. Sollte der Kopiervorgang und kompilier gestartetwerden.

Wenn alle glatt geht, sollte das Log-Fenster wie folgt aussehen.

Erscheinen doch noch Fehler sind diese meist auf falsche Compilerversionen zurück zu führen.Dann bitte noch mal die Pfade überprüfen und oder einen anderen Winavr-Version laden. Beimir lief der Comilier Vorgang nicht auf Anhieb durch. Ich selber musste die Pfade anpassen undmir eine andere WinAVR-Version installieren.

Um die Beispiel Programme gleich mit zu erzeugen, einfach noch den ‚ Create Sample Direc-tory’ anstossen.

Abb. 6.4 Einstellungen, Pfadangabe zum Compiler / Makefile

Abb. 6.5 Einstellungen für Verzeichnis der Beispiele

14

Nach dem nun die Grundlegende Arbeit getan ist, können wir das Beispielprogramm „Webser-ver (httpd)“ aus dem Example Verzeichnis mit dem PN-Editor von WinAVR öffnen. (PN-Editorbefindet sich in WinAVR\pn\pn.exe)

Hier können die IP Angaben und MAC – Adresse angepasst werden mit der sich das Ethernutim Netz identifizieren soll.Siehe Abb.6.6, bitte MAC-Adresse wie auf demEthernut board abgedruckt anpassen.

Achtung bitte die Datei urom.o vordem ersten Compilieren sichern.

Diese Datei beinhaltet das Datei-system mit den Grafiken, icons…. diespäter ins Rom geladen werden. ZumNeuerstellen der Datei bitte wie imbeiliegenden Handbuch nachzulesenvorgehen. (Kann auch mittels gcc er-zeugt werden. Kann jedoch zu Pro-blemen führen)

Als nächster Schritt wird ein Konso-lenfenster benötigt. Dort in das httpd– Verzeichnis wechseln und „make“eintippen. Nach <Enter> sollte derCompilierungsprozess durchlaufen.Wenn nun kein Fehler vorhanden istwurde eine httpserv.hex Datei er-zeugt.

Diese Datei kann mit dem AVR-Studio über den beiliegenden JTAG kompatiblen Dongle in dasEthernut upgeloaded werden.

Dazu das AVR-Studio starten und den aufgehenden Assistenten abbrechen. In dem MenüTools unter Program AVR auf Connect gehen. (STK500 odr AVRISP auswählen) Nun sollte eineWarnung erscheinen, das die Version vom JTAG nicht passt und das ein Update durch geführtwerden sollte. Diese bitte Abbrechen. Der mitgelieferte Adapter ist KEIN JTAG Programmer!!! Esist nur ein zu JTAG kompatibler!!! Daher steht leider auch keine Insystem Debugging Funktionzur Verfügung!!!!!

Im nun folgenden Dialog muss unter Device das ATmega128 ausgewählt werden (oder ähnlich)und im Bereich Flash wird die HEX-Datei ausgewählt. Der Bereich EEPROM bleibt in diesemFall leer. Nun auf den Button Programm in dem Bereich Falsh und der Atmel wird Program-miert…

Einmal am Ethernut den RESET betätigt und schon läuft das zuvor eingespielte Programm.Per Browser kann nun über die Vorhin eingestellte IP – Adresse die Funktionalität überprüft wer-den.

Abb. 6.6 Quelldatei httpdserv.c aus Nut/OS Ver. 4.2.1

15

7. Debugging

Das Debuggen von Programmen im Ethernut ist im Prinzip Möglich. Jedoch nicht mit dem mit-gelieferten Adapter, dieser ist nur ein quasi JTAG-Adapter. D.h. er gibt sich zum AVR-Studio hinnur als JTAG aus ist in Warheit keiner!!! Daher ist es auch nicht Möglich über das AVR-Studioein Echtzeit – Debugging durchzuführen.

Dennoch beschreibe ich hier, welche Compiler Einstellungen vorgenommen werden müssen,um mit dem GCC eine Coff-HEX-Datei zu erzeugen. Diese HEX Datei besitzt im Gegensatz zueiner standardmässig erzeugten Datei erweiterte Debugging Informationen. Mit dessen Hilfe dasAVR-Studio in der Lage ist, den C Sourcecode zu Zeigen. Mit dessen Hilfe kann dann eine Echt-zeit Verfolgung der Abläufe im Ethernut stattfinden.

Im Makefile muss noch folgender Parameter mit angegeben werden, um die erweiterten De-bugging Informationen für das AVR-Studio zu erstellen(Abb. 7.1).

-gdwarf-2 # AVR (extended) COFF

Alle weiteren Schritte des Compilierens verhalten sich gleich.

Im AVR-Studio wird über das File Menü der Punkt öffnen aufgerufen und die neue HEX Dateikann dort geöffnet werden. Im nächsten Schritt soll das Projekt abgespeichert werden.Zum de-buggen nun nur noch den JTAG Dongle auswählen und dem Debuggem steht nichts mehr imWege.

Dies Funktioniert nicht mit dem mitgelieferten Dongle!!!!!Hier für wird ein original Atmel JTAG Dongel benötigt. Anleitungen zum selbstbau eines Don-

gles der das Debuggen mit unterstützen soll können im Internet gefunden werden. Ob dieseFunktionieren konnte ich nicht überprüfen.

Abb. 7.1 Anpassung im Makefile für extendet Debugging information COFF ATMEL

16

8. Die Bibliotheken für das Traffic Logging

Um an die einzelnen Daten heranzukommen, gibt es im Nut/Net einen ‚Nutbuf’ diese Strukturbildet ein komplettes Netzwerkpaket vom Datalink- bis zum Application-Layer im Memory ab.

Über diesen Netbuffer ist es möglich an sämtliche Inhalte eines Netzwerkpakets zu kommen.

Als erstes muss die Netzwerkkarte in den Promiscuous Modus gesetzt werden. Dieses ge-schieht bei der SMSC111 Karte in der Datei lanc111.c. Hier muss nur beim Starten der Kartefolgendes Flag mit gesetzt werden:

Danach werden alle Frames weiter in die höheren Schichten geleitet, auch wenn die Ziel-Mac-Adresse nicht der eigenen entspricht.

Als nächstes Folgen die Hardware unabhängigen Sourcedateien, die die Verarbeitung für dieeinzelnen Protokollarten übernehmen.

Abb. 8.1 netbuf.h Datei aus dem Nut/Net, Strucktur des Netbuffers

Abb. 8.2 Auszug aus der LANC111.c Datei, die für die Ansteuerung des SMSC911 Chiips verantwortlich ist.Mit Anpassung für den promiscous Modus.

17

Trifft ein Paket an der Netzwerkkarte ein wird die Methode NutEtherInput(Nutdevice * dev, Net-buf * nb) aus ethin.c aufgerufen. Hier folgt die Typen abhängige Weiterleitung in die anderenSpezifischen Methoden. Hier ist nun auch der erste Ansatz für eine Traffic Logger. An dieserStelle kann eine Kopie im Speicher erzeugt werden (dazu gibt’s eine Funktion zum Clonen vonNETBUFFER) und anschliessend können weitere Methoden zur Verarbeitung des eingegange-nen Paketes folgen. Zuvor ist es noch ratsam die Pakete zufiltern die an einen Selbst gehen.Dies können bsp. Pakete für den Integrierten Webserver sein.Mit solch einer Filterung ist esMöglich ein Lauschendesgerät zu bauen, welches per Webbrowser Gesteuert werden kann.

Abb. 8.3 EtherIn.c, Einfache Ausgabe der einkommenden Pakete auf der Seriellenschnittstelle RS232

18

Denkbar ist hierbei die Eingabe von zwei Computern, die belauscht werden sollen. Ob MAC-oder IP-Adressen basierende Eingabe, ist abhängig von der Programmierung des GUI’S. Auchkönnte ein IP-Scanner implementiert werden, um das Netzwerk auf potentielle Opfer zu durch-suchen. Diese könnten dann in einer Auswahlliste dem User angezeigt werden.

Im vorliegenden Beispiel wurde eine einfache Ausgabe auf der Seriellenschnittstelle realisiert.Diese kann per Hyperterm (Windows) abgefragt werde.

Abb. 8.4 Paket informationen die im Promiscous - Modus aufgenommen wurden und auf ein Hyperterm ausgege-ben wurden.

19

Literaturverzeichnis

/ETH 06/ egnite, Ethernut, Grundlegende Informationen, Handbuch,Beschreibende Informationen, (25.12.2006)

/WIK 07/ de.wikipedioa.org, Ethernet - Dataframe 2007http://de.wikipedia.org/wiki/Datenframe (05.01.2007)