• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fi Fi Webserver Hardwaredokumentation
 

Fi Fi Webserver Hardwaredokumentation

on

  • 1,793 views

 

Statistics

Views

Total Views
1,793
Views on SlideShare
1,793
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Fi Fi Webserver Hardwaredokumentation Fi Fi Webserver Hardwaredokumentation Document Transcript

    • FiFi- Webserver nach Ulrich Radig Dokumentation Bearbeitungsstand: 22.06.2008
    • 1. Inhalt 1. Inhalt................................................................................................................................... 2 1.1 Abbildungen ............................................................................................................... 3 2. Einleitung ........................................................................................................................... 4 2.1 Copyright und Haftung............................................................................................... 5 3. Aufbauanleitung ................................................................................................................. 6 3.1 Bestückung der Unterseite ......................................................................................... 6 3.2 Bestückung der Oberseite........................................................................................... 7 3.3 Fotodokumentation..................................................................................................... 9 4. Programmieren des Controllers........................................................................................ 10 4.1 ISP-Programmer....................................................................................................... 10 4.2 Anpassen der Konfiguration mit WinAVR.............................................................. 11 4.3 Kompilieren (make) ................................................................................................. 13 4.4 Flashen des Controllers ............................................................................................ 13 4.5 Bootloader ................................................................................................................ 13 5. Inbetriebnahme................................................................................................................. 17 5.1 Ethernetverbindung .................................................................................................. 17 5.2 RS232-Verbindung................................................................................................... 19 5.3 Installation im LAN ................................................................................................. 20 6. Standard-Software............................................................................................................ 22 6.1 Die Kommandozeile................................................................................................. 22 6.2 MAC-Adresse........................................................................................................... 22 6.3 Passwort ändern........................................................................................................ 23 6.4 Webinterface ............................................................................................................ 23 6.5 Telnetd...................................................................................................................... 23 6.6 NTP Client................................................................................................................ 24 7. Projektdaten...................................................................................................................... 25 7.1 Technische Daten ..................................................................................................... 25 7.2 Schaltungsbeschreibung ........................................................................................... 25 7.3 Belegung der Schnittstellen...................................................................................... 26 7.4 Schaltplan ................................................................................................................. 27 8. Extras................................................................................................................................ 29 8.1 Gehäuse .................................................................................................................... 29 8.2 Kamera ..................................................................................................................... 30 8.3 Grundplatine............................................................................................................. 33 8.4 DynDNS ................................................................................................................... 34 8.5 Amateurfunksoftware............................................................................................... 37 8.6 SD-Karte................................................................................................................... 37 8.7 COM Port Redirector ............................................................................................... 37 Seite 2 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • 1.1 Abbildungen Abbildung 1: Fichtenfieldday..................................................................................................... 4 Abbildung 2: FiFi-Webserver .................................................................................................... 4 Abbildung 3: Webinterface ........................................................................................................ 5 Abbildung 4: Benötigtes Werkzeug ........................................................................................... 6 Abbildung 5: Bestückungsplan Unterseite................................................................................. 7 Abbildung 6: Bestückungsplan Oberseite .................................................................................. 8 Abbildung 7: Bestückte Unterseite ............................................................................................ 9 Abbildung 8: Bestückte Oberseite.............................................................................................. 9 Abbildung 9: ISP-Programmer................................................................................................. 10 Abbildung 10: ISP-Programmierkabel..................................................................................... 11 Abbildung 11: Programmer’s Notepad .................................................................................... 11 Abbildung 12: Laufende Übertragung mit Fastboot ................................................................ 15 Abbildung 13: Erfolgte Übertragung mit Fastboot .................................................................. 16 Abbildung 14: Einstellen der IP-Adresse am PC ..................................................................... 17 Abbildung 15: Pingen des Webservers .................................................................................... 18 Abbildung 16: Authentifizierung im Webinterface ................................................................. 18 Abbildung 17: Webinterface nach DH8GHH .......................................................................... 19 Abbildung 18: Einschaltmeldung auf der seriellen Schnittstelle ............................................. 20 Abbildung 19: Beispielkonfiguration eines LAN .................................................................... 21 Abbildung 20: MMC-Pinbelegung........................................................................................... 27 Abbildung 21: Pinbelegung JP2............................................................................................... 27 Abbildung 22: Schaltplan......................................................................................................... 28 Abbildung 23: Vorschlag Hutschienengehäuse (Ulrich Radig)............................................... 29 Abbildung 24: Vorschlag Euro-Kühlrippengehäuse (DL1DOW) ........................................... 29 Abbildung 25: Kamera Philips DC-3840 ................................................................................. 30 Abbildung 26: Rastnasen an der Kamera................................................................................. 30 Abbildung 27: Kamera-Anschlusskabel................................................................................... 31 Abbildung 28: Kamerabild im Webinterface ........................................................................... 32 Abbildung 29: Gehäuse für IP-Außenkamera (Bild von www.pollin.de)................................ 33 Abbildung 30: Schaltplan der Grundplatine nach Ulrich Radig .............................................. 33 Abbildung 31: Layout der Grundplatine nach Ulrich Radig.................................................... 34 Abbildung 32: DynDNS-Account erstellen ............................................................................. 35 Abbildung 33: Hostnamen hinzufügen bei DynDNS.com....................................................... 35 Abbildung 34: Dynamic DNS-Konfiguration in einer FRITZ!Box......................................... 36 Abbildung 35: Portfreigabe in einer FRITZ!Box..................................................................... 37 DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 3
    • 2. Einleitung Der FiFi-Webserver wurde vom DARC-Ortsverband Lennestadt1 als Selbstbauaktivität für das Amateurfunk-Zeltlager „Fichtenfieldday 2008“2 bei Attendorn im Sauerland vorgestellt. Abbildung 1: Fichtenfieldday Beim FiFi-Webserver handelt es sich um ein Projekt des bekannten µC-Entwicklers Ulrich Radig3 aus Kreuztal. Ulrich erklärte sich auf Anfrage der Veranstalter spontan bereit, eine SMD-Variante seines Ethernet-Experimentierboards ETH_M32_EX4 zu erstellen. Im Rahmen dieser Änderungen fügt er auch einen SD-Kartenschacht in die Schaltung ein. Die Maße der Platine wurde so gewählt, dass diese aufrecht in ein Hutschienengehäuse passt. Somit bleibt viel Platz für eigene Erweiterungen wie z.B. Relais oder Sensoren. Abbildung 2: FiFi-Webserver 1 www.ov-lennestadt.de 2 www.ov-lennestadt.de/fifi 3 www.ulrichradig.de 4 www.ulrichradig.de/home/index.php/avr/eth_m32_ex Seite 4 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Der FiFi-Webserver mit seinem ATmega644 und dem Mikrochip ENC28J60 Ethernetcontrol- ler bietet eine Weboberfläche, die sich über die Netzwerkbuchse ansprechen lässt. Über eine serielle Schnittstelle hat man via Telnet Zugriff auf den Prozessor. Dieser nimmt Kommandos entgegen, z.B. zum Resetten, zum Einstellen der IP-Adresse oder um den aktuelle Verbin- dungszustand zu beobachten. Durch den NTP-Client5 ist es möglich von einem NTP-Server die aktuelle Uhrzeit zu beziehen. Abbildung 3: Webinterface Mit dem FiFi-Webserver und seinem offenen Quellcode in der Programmiersprache C lassen sich die üblichen Funktionen moderner µCs flexibel für eigene Projekte nutzen, also z.B. Ausgänge schalten und Pins einlesen. Da die Software kompatibel zum Ursprungsprojekt ist, kann man leicht auf bereits fertig gestellte Anwendungen zurückgreifen, wie z.B. den An- schluss einer Webcam. Aktuelle Informationen sind auf Ulrichs Webseite hinterlegt, wo der FiFi-Webserver unter der Bezeichnung „AVR Webmodul“ zu finden ist6. 2.1 Copyright und Haftung Diese Anleitung wurde erstellt von Kai-Uwe Pieper (DF3DCB) unter Mithilfe von Nicolas Sänger (DL1DOW) und Gerrit Herzig (DH8GHH). Zudem wurden viele Teile dieser Anlei- tung mit freundlicher Genehmigung der Webseite von Ulrich Radig entnommen. Ethernet ist ein eingetragenes Warenzeichen der XEROX, Inc., Digital Equipment Corporati- on und Intel Corporation. Microsoft und Windows sind eingetragene Warenzeichen der Microsoft Corporation. Alle anderen in dieser Dokumentation verwendeten Warenzeichen gehören ihren jeweiligen Eigentümern. Die vorliegende Dokumentation erhebt keinen Anspruch auf Vollständigkeit und Richtigkeit. Alle daraus direkt oder indirekt abgeleiteten Handlungen erfolgen ausschließlich auf eigene Gefahr. Die Rechtslage ist zu beachten. 5 NTP = Network Time Protocol 6 www.ulrichradig.de/home/index.php/avr/avr-webmodule DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 5
    • 3. Aufbauanleitung Eine Aufstellung der benötigten Bauteile finden Sie in den Tabellen auf den folgenden beiden Seiten. Geeignetes Werkzeug ist ebenfalls unverzichtbar. Dazu gehört: • Lötstation mit feiner Lötspitze, am besten mit leichtem SMD-Lötpencil • dünnes Lötzinn mit max. 0,5 mm Durchmesser, möglichst auch SMD-Lötpaste • eine spitze Pinzette • ein Elektronikseitenschneider ohne Wate Die Pinabstände der verwendeten ICs lassen eine manuelle Lötung der Einzelpins mit Lötzinn zu. Es wird dennoch empfohlen, eine reihenweise Lötung mit spezieller SMD-Lötpaste vor- zunehmen, da diese eine schnellere, sauberere und zuverlässigere Kontaktierung erlaubt. Bitte beachten Sie die üblichen Regeln beim Hantieren mit elektrostatisch empfindlichen Bauelementen: Verwenden Sie eine ESD-Unterlage sowie ein ESD-Armband bei Ihren Arbei- ten. Abbildung 4: Benötigtes Werkzeug Es sollte folgende Reihenfolge beim Bestücken eingehalten werden: • Bestückung der Unterseite • Bestückung der Oberseite o SMD-Teile o bedrahtete Teile o mechanische Teile (Schnittstellen) Die Footprints der meisten passiven SMD-Bauteile sind für die Bauform 0805 dimensioniert. Beim manuellen Bestücken lassen sich jedoch die etwas kleineren 0603-Bauteile häufig leichter handhaben. Sie sind in allen Fällen verwendbar. 3.1 Bestückung der Unterseite Auf der Unterseite ist die Bestückreihenfolge aufgrund der geringen Bauteildichte beliebig. Zur Gewöhnung an das Löten mit kleinen Pinabständen sollten Sie aber mit IC3 (MAX3232) beginnen, bevor Sie den ATmega (IC1) einlöten. Beachten Sie bei ICs die Einbaurichtung! Pin 1 ist gekennzeichnet. Seite 6 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Bestückungsplan Unterseite Abbildung 5: Bestückungsplan Unterseite Bauteilliste Unterseite Bauteilkürzel Wert Bauform Bezug C1, C2, C4, C5, C6, C7, 100 nF 0805 C10, C12, C14 C16, C17 22 pF 0805 C22 220 nF 0805 IC1 ATmega 644 44TQFP Digikey ATMEGA644-20AU IC3 MAXIM MAX3232CSE 16SOIC Digikey 296-13098-1-ND oder TI MAX3232IDR R1 470 Ohm 0805 R2 270 Ohm 0805 R3, R4 180 Ohm 0805 R5, R6, R7, R8 50 Ohm, altern. 47 Ohm 0805 3.2 Bestückung der Oberseite Beginnen Sie bitte wiederum mit den flachen Bauteilen, fahren Sie mit den bedrahteten Teilen fort und löten Sie die mechanischen Teile erst zum Schluss ein. Als Hilfestellung verwenden Sie bitte die Fotodokumentation auf Seite 9. Soll der optionale SD-Kartenschacht bestückt werden, muss dies vor SV2 (ISP-Stecker) und X2 (Sub-D-Buchse) geschehen. Vorsicht ist bei den Tantal-Elkos geboten (C3, C13, C20, C21). Die auf dem Bauteil und im Plan mit einem Strich markierte Seite steht für die Anode (Plus). Bei den Dioden D1 und D2 bedeutet er hingegen Kathode (Minus). Bei den beiden LEDs ist auf der Unterseite ein Dreieck aufgedruckt. Dessen Spitze zeigt auf die Kathode. Sie muss bei beiden LEDs nach oben zeigen, wenn man die Platine vor sich hat wie in Abbildung 6. Die Ethernetbuchse X3 hat in der Regel hinten nur 7 Pins, d.h. ein Lötauge bleibt leer. DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 7
    • Bestückungsplan Oberseite Abbildung 6: Bestückungsplan Oberseite Bauteilliste Oberseite Bauteilkürzel Wert Bauform Bezug C3, C20, C21 22 µF Tantal D C8, C9, C11, C19, C23, 100 nF 0805 C24, C25, C26 C13 10 µF Tantal A C15, C18 22 pF 0805 D2, D3 1N4004 / 1N4007 bedrahtet F1 Picofuse 500 mA / 750 mA bedrahtet Reichelt PICO 0,5A IC2 LM317 TO-220 Reichelt LM317-220 IC4 ENC28J60-SO 28SOIC Digikey ENC28J60/SO-ND JP1 Stifleiste 2x2 2,54 RM 2,54 Reichelt SL 2X10G 2,54 JP2 Stiftleiste 2x5 2,54 RM 2,54 L1 10 µH bedrahtet Reichelt SMCC 10µ LED1, LED2 0805 Reichelt SMD-LED 0805 RT Q1 14,7456 MHz HC49U Reichelt 14,7456-HC49U-S Q2 25 MHz HC49U Reichelt 25,0000-HC49U-S R9 2,7 kOhm 0805 R10, R12, R16 10 kOhm 0805 R11, R13 180 Ohm 0805 R14, R15 4,7 kOhm 0805 S2 Taster Reichelt TASTER 1600.11 SV1 Buchsenleiste 2x17 Winkel RM 2,54 Reichelt BL 2X17W 2,54 SV2 Wannenstecker 2x5, Winkel RM 2,54 Reichelt WSL 10W X1 Anreihklemme 2-polig RM 5,0 Reichelt AKL055-02 X2 D-Sub-Buchse 9-polig RM 9,4 Reichelt D-SUB BU 09EU X3 MAGJACK SI-60024F Digikey 380-1117-ND Seite 8 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Optionale Bestückungen Bauteilkürzel Wert Bauform Bezug IC5 24C64 SO8 Reichelt ST 24C64 MN6 MMC1 Farnell Multicomp SDBMF- 00915B0T2 oder Webshop von Ulrich Radig 3.3 Fotodokumentation Abbildung 7: Bestückte Unterseite Abbildung 8: Bestückte Oberseite DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 9
    • 4. Programmieren des Controllers Zur Programmierung wird benötigt • Bestückte FiFi-Webserver-Platine (aus Kapitel 3) • Windows-PC mit USB-Schnittstelle • Netzteil mit 5... 9 Volt, mind. 350 mA • ISP-Programmieradapter (wird im Folgenden beschrieben) • Die Software WinAVR7 (enthält u.a. AVRdude8 zum Flashen des Controllers, den GCC-Compiler und den Texteditor Programmer’s Notepad) Es gibt zwei Möglichkeiten, die Firmware auf den ATmega zu laden. Die klassische Variante ist die Verwendung der sog. ISP-Schnittstelle, für die ein Programmieradapter benötigt wird. Die zweite Möglichkeit besteht in der Verwendung eines im µC befindlichen Bootloaders, mit dem die Programmierung direkt z.B. über eine RS232-Schnittstelle erfolgen kann. Bei einem µC im Auslieferzustand befindet sich jedoch noch kein Bootloader auf dem Chip, da auch dieser erst mit einem ISP aufgespielt werden muss. Es folgt daher zunächst die Beschreibung der ISP-Programmierung. Mehr zur Verwendung eines Bootloaders lesen Sie in Kapitel 4.5 auf Seite 13. 4.1 ISP-Programmer Es gibt verschiedene ISP-Programmieradapter am Markt9. Die folgenden Ausführungen beziehen sich auf den sehr preiswerten USB-ASP, der im Webshop von Ulrich Radig erhält- lich ist und auf seiner Webseite beschrieben wird10. Abbildung 9: ISP-Programmer Zur Verwendung des Gerätes am FiFi-Webserver wird ein Verbindungskabel für den 10- poligen Programmierstecker SV2 benötigt. Es handelt sich um 1:1-Kabel mit folgenden Besonderheiten (s.a. Abbildung 10): • Pin 2 wird nicht durchverbunden, da die Spannungen von Programmieradapter und FiFi-Webserver nicht identisch sind (1). 7 erhältlich bei http://winavr.sourceforge.net 8 http://www.nongnu.org/avrdude/ 9 siehe z.B. http://www.dl1dow.de unter Arduino Bootloader 10 http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog Seite 10 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • • Es wird empfohlen, an Pin 4 zwei in Reihe geschaltete Dioden in Durchlassrichtung einzulöten, um die Spannung von 5 V auf ca. 3,3 V zu reduzieren (2). (1) (2) Abbildung 10: ISP-Programmierkabel 4.2 Anpassen der Konfiguration mit WinAVR Nach dem Herunterladen und Installieren von WinAVR wird das Tool Programmer’s Notepad gestartet. Im Menü File Open Project(s) öffnet man die Datei ETH_M32_EX.pnproj. Es werden nun alle zum Projekt gehörigen Dateien angezeigt, wobei nur die Dateien config.h und makefile ggf. angepasst werden müssen. Abbildung 11: Programmer’s Notepad DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 11
    • Die Datei config.h In dieser Datei in der Programmiersprache C werden einige grundlegende Konfigurationen vorgenommen. Kenntnisse der Programmiersprache sind nicht unbedingt erforderlich. Fol- gende Einstellungen sind zu überprüfen: • Quarzfrequenz: Die Taktfrequenz muss auf 14,7456 MHz eingestellt werden. In der Datei sieht die entsprechende Stelle so aus: //Taktfrequenz //#define F_CPU 16000000UL #define F_CPU 14745600UL Doppelte Schrägstriche kennzeichnen in C einen folgenden Kommentar. Die Definiti- on F_CPU darf nur ein einziges Mal durchgeführt werden. Dies wurde im Beispiel o- ben bereits richtig wiedergegeben: Die zweite Zeile würde 16 MHz einstellen, wurde aber auskommentiert. • Kamera abschalten: Für die erste Funktionsprüfung sollte die Kamera nicht verwendet und entsprechend auch in der Config-Datei ausgeschaltet werden: //Kamera mit einbinden //Kamera arbeitet nur mit einem 14,7456Mhz Quarz! #define USE_CAM 0 #define USE_SERVO 0 In einigen Versionen der Firmware kann es sein, dass der Webserver nicht funktio- niert, wenn die Kamera softwareseitig eingebunden, aber nicht angeschlossen ist. Außerdem finden Sie in dieser Datei die IP-Adresse (wenn auch mit etwas ungewöhnlicher Syntax mit Kommata statt Punkten): //IP des Webservers #define MYIP IP(192,168,0,99) Merken Sie sich diese IP-Adresse für später. Die Datei makefile Die Datei makefile muss nun noch an den Programmieradapter und an den Controller ange- passt werden. Beachten Sie bitte, dass in dieser Datei Kommentare mit einer Raute # begin- nen, und nicht mit einem Doppelstrich //. Kontrollieren Sie folgende Einstellungen: • Controllertyp: Der FiFi-Webserver verwendet einen ATmega 644 (keinen 644p). # MCU name #MCU = atmega32 MCU = atmega644 #MCU = atmega644p #MCU = atmega128 • Programmieradapter: Die folgenden Punkte sind nicht nötig, um eine korrekte Binär- datei zu erzeugen, aber hilfreich bei der Übertragung der erzeugten Datei in den µC. Stellen Sie bitte Folgendes ein: #AVRDUDE_PROGRAMMER = AVR910 #AVRDUDE_PROGRAMMER = stk200 AVRDUDE_PROGRAMMER = USBasp #AVRDUDE_PROGRAMMER = STK500v2 Seite 12 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • AVRDUDE_PORT = usb # programmer connected to USB port #AVRDUDE_PORT = com1 # programmer connected to serial device #AVRDUDE_PORT = lpt1 # programmer connected to parallel port Bei Verwendung eines anderen Programmiergerätes (z.B. STK500 von ATMEL) sind die Zeilen entsprechend anzupassen. 4.3 Kompilieren (make) Nach dem Abspeichern der Dateien werden in Programmer’s Notepad nacheinander aufgeru- fen: Tools [WinAVR] Make Clean Tools [WinAVR] Make All Damit werden die Binärdateien erzeugt, die in den Controller geladen werden müssen. 4.4 Flashen des Controllers AVRdude Wenn Sie den AVRdude von WinAVR benutzen, gehen Sie wie folgt vor: • Verbinden Sie nun den Programmieradapter mit Ihrem PC. Der USB-Treiber für USB ASP ist auf der Homepage von Ulrich Radig zu finden.11 • Entfernen Sie alle Datenkabel (seriell, Ethernet) und SD-Karten vom FiFi-Webserver. • Legen Sie Versorgungsspannung an den FiFi-Webserver. • Verbinden Sie Programmieradapter und Webserver über das 10-polige Programmier- kabel gemäß Abbildung 10. • Starten Sie den Programmiervorgang in Programmer’s Notepad über das Menü Tools [WinAVR] Program. Es wird automatisch das Kommandozeilentool AVRdude mit den richtigen Parametern (wel- che dem makefile entnommen wurden) gestartet. Der Fortschritt des Vorgangs ist über die Statuszeile ersichtlich. Andere Programme Wird zum Flashen ein anderes Programm verwendet, welches nicht auf das makefile zurück- greifen kann, sind folgende Einstellungen der Fusebits vorzunehmen: EXTENDED 0xFF HIGH 0xDE LOW 0xFF 4.5 Bootloader Ein Bootloader ermöglicht es, einen neue Software auf den µC aufzuspielen, ohne einen speziellen Programmieradapter benutzen zu müssen. Für den FiFi-Webserver wurde ein Bootloader angepasst, mit dem die Firmware einfach per RS232 aufspielbar ist. Für das Aufspielen des Bootloaders darf die Kamera nicht angeschlossen sein! Es sind die Jumper 2 und 3 der Jumperleiste JP2 zu setzen. 11 http://www.ulrichradig.de unter Projekte USB AVR PROG Layout, Software und Treiber DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 13
    • Bootloader aufspielen Der Bootloader muss ganz normal mit einem ISP-Adapter aufgespielt werden. Zu dessen Anschluss siehe Kapitel 4.1. AVRdude sollte sich im Suchpfad befinden12 (bei der Installation von WinAVR geschieht dies automatisch). Erstellen Sie an beliebiger Stelle einen Ordner „Bootloader”, in dem sich mindestens folgende Dateien befinden müssen: • Bootloader_AT644.hex • Program_Bootloader.cmd Das Script Program_Bootloader.cmd wird an den Programmieradapter angepasst: @echo off set part=atmega644 REM set port=com7 set port=usb REM set port=lpt1 REM set programmer=stk500v2 set programmer=USBasp REM set programmer=stk200 REM set programmer=AVR910 set file=Bootloader_AT644.hex set lfuse=0xff set hfuse=0xde set efuse=0xff @echo on avrdude -p %part% -P %port% -c %programmer% -e avrdude -p %part% -P %port% -c %programmer% -U flash:w:%file%:i -u -U lfuse:w:%lfuse%:m -U hfuse:w:%hfuse%:m -U efuse:w:%efuse%:m avrdude -p %part% -P %port% -c %programmer% -u -U lock:w:0xEF:m In einem Windows-Script bezeichnet „REM“ einen Kommentar. Wenn Sie ein anderes Pro- grammiergerät als den ISP-Programmer aus Kapitel 4.1 benutzen, müssen sie ggf. die Para- meter „set port“ und „set programmer“ anpassen. Beim Ausführen des Scriptes wird der gesamte Chip gelöscht, also auch der Inhalt des ATmega-EEPROMs. Der Start des Scriptes „Program_Bootloader.cmd“ über die Kommandozeile oder per Dop- pelklick programmiert den Bootloader in den Flash-Speicher des ATmega644. Außerdem werden direkt die Fuse-Bits korrekt gesetzt (lfuse:0xff, hfuse=0xde und efuse=0xff). Die Ausgabe im Kommandozeilenfenster gibt Auskunft über das Status des Programmiervor- gangs. Die Fehlermeldung mit "verification error" ist bekannt und darf ignoriert werden.13 12 D.h. das Programm ist an der Kommandozeile von überall aus aufrufbar. Wurde früher mit „set path“ in der Datei autoexec.bat festgelegt, ist seit Windows 2000 in den Systemeigenschaften unter Erweitert Umge- bungsvariablen zu finden. 13 Bug. Nr. 21954 (http://savannah.nongnu.org/bugs/?21954) Seite 14 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Nachdem sich AVRdude als fertig ausgibt, ist der Bootloader auf den Webserver aufgespielt und das Programmiergerät wird künftig nicht mehr benötigt, um die Firmware aufzuspielen. Beachten Sie, dass der Bootloader wieder verloren geht, wenn über ISP ein anderes Programm aufgespielt wird. Wenn das aufgespielte Programm zu groß ist, stürzt der Bootloader ab. Aufspielen der Firmware mit Bootloader Wenn der Bootloader auf dem FiFi-Webserver installiert ist, benötigen Sie für das Aufspielen neuer Firmware (abweichend von der Liste auf Seite 10) nur noch folgende Komponenten: • Bestückte FiFi-Webserver-Platine (aus Kapitel 3) • Netzteil mit 5... 9 Volt, mind. 350 mA • Windows-PC mit RS232-Schnittstelle Als Bootloader für den FiFi-Webserver ist das Tool „Fastboot 1.4”14 von Peter Dannegger vorgesehen, das seinem Namen alle Ehre macht. Es wird davon ausgegangen, dass sich die folgenden Dateien in einem Verzeichnis befinden: • z.B. FifiOCam.hex (die kompilierte Firmware, die auf den Webserver aufgespielt wer- den soll) • FBOOT.EXE (der Uploader) Die Firmware (=Hex-Datei) lässt sich mit den im vorherigen Kapitel beschriebenen Verfahren mit WinAVR erzeugen. Sie hat den Namen „Webserver_MEGA644.hex“ und befindet sich im Projekt-Unterordner newStack1_0_87Hexfiles. Die HEX-Datei sollte so umbenannt werden, dass der Dateiname den alten DOS-Konventionen (8+3) genügt. Der ausgeschaltete Webserver wird per RS232 mit dem PC verbunden. Das Programm FBOOT.EXE hat folgen- de Parameter: FBOOT /p<Dateiname/Pfad in DOS-Konvention> /c<Com-Nr.> wird also in unserem Beispiel gestartet mit dem folgenden Befehl (Leerzeichensetzung genau beachten): FBOOT /pFifiOCam.hex /c1 Das Übertragungsprogramm wartet nun auf Antwort vom entsprechenden COM-Port: Abbildung 12: Laufende Übertragung mit Fastboot 14 http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger. Verwenden Sie keine neuere als Version 1.4. Download: http://www.mikrocontroller.net/attachment/24619/fastload_V14.zip. DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 15
    • Es ist wichtig, dass die Reihenfolge eingehalten wird: Erst wird FBOOT ausgeführt und dann wird der Webserver eingeschaltet / mit Spannung versorgt. Es wird nun die neue Firmware übertragen: Abbildung 13: Erfolgte Übertragung mit Fastboot Weder FiFi-Webserver noch PC sollten während des Übertragungsvorganges ausge- schaltet oder die Kabelverbindungen getrennt werden. Passiert dies dennoch, war der Flashvorgang nicht erfolgreich und muss wiederholt werden. Seite 16 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • 5. Inbetriebnahme Für dieses Kapitel benötigen Sie: • Programmierten FiFi-Webserver (aus Kapitel 4) • Spannungsversorgung mit 5... 9 Volt DC, mind. 350 mA • Windows-PC mit o Netzwerkanschluss o serieller (RS232) Schnittstelle oder einem entspr. Adapter o Terminalprogramm (z.B. Hyperterminal) o Internetbrowser • Crossover-Netzwerkkabel oder Switch mit Patchkabeln • Serielles Kabel auf 9-pol Sub-D-Stecker (1:1 oder Nullmodem) Es wird im Folgenden vorausgesetzt, dass sie die IP-Adresse des FiFi-Webservers gegenüber den Defaulteinstellungen nicht geändert haben. Voreingestellt ist 192.168.0.99. 5.1 Ethernetverbindung Um eine Ethernetverbindung zum FiFi-Webserver herzustellen, muss sich die IP-Adresse Ihres PCs im gleichen Subnetz befinden. Um dies einzustellen, stellen Sie in den Windows- Netzwerkeinstellungen wie folgt eine feste IP-Adresse ein15: • Rechtsklick auf das Icon „Netzwerkumgebung“ auf dem Desktop • Doppelklick auf „LAN-Verbindung“ • Schaltfläche „Eigenschaften“ • Doppelklick auf „Internetprotokoll (TCP/IP) in der Liste aktivierter Komponenten • IP-Adresse 192.168.0.100, Subnetz 255.255.255.0 Abbildung 14: Einstellen der IP-Adresse am PC 15 Beispiel für Windows 2000 und XP in der klassischen Ansicht DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 17
    • Verbinden Sie den FiFi-Webserver über ein Crossover-Netzwerkkabel mit ihrem PC. Im Informationsbereich der Windows-Taskbar (neben der Uhr) müsste dann eine LAN- Verbindung mit 10 MBit/s angezeigt werden. Sollte dies nicht der Fall sein, prüfen Sie bitte, ob in Ihren Netzwerkeinstellungen die Geschwindigkeit auf „Autodetect“ oder manuell auf 10 MBit/s eingestellt ist.16 Geben Sie dann an der Eingabeaufforderung den Befehl „ping 192.168.0.99“ ein. Abbildung 15: Pingen des Webservers Wird, wie in der oben stehenden Abbildung, eine Zeitmessung zurückgeliefert, sollte es möglich sein, den FiFi-Webserver auch mit einem Internetbrowser anzusprechen. Funktio- niert dies nicht, überprüfen Sie bitte, ob auf Ihrem Rechner eine Firewall die Verbindung blockiert. Webinterface Starten Sie einen Internetbrowser und geben Sie als Zieladresse ein: http://192.168.0.99. Wenn sich ein Fenster öffnet und nach Zugangsdaten gefragt wird, geben Sie ein: Benutzername: admin Passwort: uli1 Abbildung 16: Authentifizierung im Webinterface 16 Eigenschaften von LAN-Verbindung, Reiter „Allgemein“ Schaltfläche „Konfigurieren“ „Erweiterte Eigenschaften“ „Connection Type“ Seite 18 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Anschließend sollte folgende HTML-Seite zu sehen sein: Abbildung 17: Webinterface nach DH8GHH 5.2 RS232-Verbindung Unabhängig davon, ob die Ethernetverbindung erfolgreich war, sollte zumindest eine serielle Verbindung möglich sein. Verbinden Sie die Sub-D-Buchse X2 über ein Schnittstellenkabel mit der COM-Schnittstelle Ihres PCs oder mit Ihrem entsprechenden USB-Adapter. Ferner müssen einige Einstellungen vorgenommen werden: Jumper JP1 Die Jumper JP1 an der Sub-D-Buchse dienen zum Vertauschen der RXD-/TXD-Signale. Bei Verwendung eines 1:1-Kabels oder eines USB-Adapters werden sie beide horizontal gesetzt wie im Bestückungsaufdruck vorgesehen und wie in Abbildung 8 sichtbar. Verwenden Sie hingegen ein sog. Nullmodem, müssen Sie beide Jumper vertikal stecken. Jumper JP2 Bei Verbindungen über die Sub-D-Buchse X2 müssen Sie grundsätzlich die Jumper-Zeilen 2 und 3 setzen. Sie verbinden also die Pins 3 und 4 sowie die Pins 5 und 6 von JP2 miteinander (vgl. Tabelle „Jumperleiste JP2“ auf Seite 27). DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 19
    • Schnittstellenparameter Starten Sie Ihr Terminalprogramm (z.B. Hyperterminal von Windows) und stellen Sie ein: • 9600 Baud • 8 Datenbits • kein Parity • 1 Stoppbit • kein Handshake Wenn Sie mit diesen Einstellungen den Reset-Taster S2 am FiFi-Webserver drücken, müssten Sie anschließend eine Einschaltmeldung erhalten. Abbildung 18: Einschaltmeldung auf der seriellen Schnittstelle Eingabeaufforderung Der Ihnen zur Verfügung stehende Befehlssatz an der Eingabeaufforderung hängt natürlich von der Software ab, die Sie verwenden. Eine Beschreibung der als Standard in den FiFi- Webserver geflashten Software finden Sie im zugehörigen Kapitel 6 ab Seite 22. 5.3 Installation im LAN In Kapitel 5.1 wurde für die erste Inbetriebnahme angenommen, dass der FiFi-Webserver eine feste IP-Adresse hat. Zur Verbindungsaufnahme haben Sie den PC ebenfalls auf eine feste IP umgestellt. Wenn Sie jedoch ein lokales Hausnetzwerk (LAN) betreiben, wird in der Regel die IP Ihres Rechners dynamisch zugewiesen (sog. DHCP17), z.B. durch Ihren DSL-Router. Da Sie zum FiFi-Webserver jedoch nur dann eine Verbindung herstellen können, wenn er sich im glei- chen Subnetz wie Ihr PC befindet, kann es erforderlich sein, die IP des FiFi-Webservers zu ändern, damit die Adresse innerhalb des gültigen Adressbereiches liegt. Das Ändern der IP-Adresse ist dauerhaft in der Datei config.h möglich, oder während des Betriebs über die serielle Schnittstelle unter Verwendung des Befehls „IP“ (mehr dazu folgt in 17 DHCP = Dynamic Host Configuration Protocol Seite 20 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Kapitel 6.1). Vergeben Sie einfach eine IP, die sich nur auf der letzten Zahl von der dyna- misch zugewiesenen IP Ihres Rechners18 unterscheidet. Die folgende Abbildung zeigt ein Beispiel, in dem • der DHCP-Server („FRITZ!Box“) die IP 192.168.178.1 hat • per DHCP die Adressen 192.168.178 20 bis 192.168.178.32 vergeben werden können (d.h. Ihr Rechner wird eine IP aus diesem Bereich haben). • Sie für den FiFi-Webserver z.B. die Adresse 192.168.178.2 vergeben könnten. Abbildung 19: Beispielkonfiguration eines LAN 18 abrufbar mit dem Befehl „ipconfig“ an der Eingabeaufforderung DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 21
    • 6. Standard-Software Wie bei allen Mikrocontroller-Projekten wird auch der FiFi-Webserver erst durch seine Software interessant. Hier sind die eigenen Fähigkeiten und eigene Ideen gefragt. Im Folgen- den kann nur die Software beschrieben werden, die standardmäßig auf den Controller geflasht wird. Bedenken Sie bitte, dass auch dies nur eine Momentaufnahme darstellt, da die Software vom Autor Ulrich Radig und anderen ständig weiterentwickelt und verbessert wird. Zu diesem Zweck hat Ulrich ein Onlineforum eingerichtet19, dessen Besuch hier ausdrücklich empfohlen wird. 6.1 Die Kommandozeile Über die serielle Schnittstelle können mit Hilfe eines Terminal-Programms die Ausgaben des Webservers mitgelesen werden (z.B. für debugging). Außerdem können verschiedene Kom- mandos an den Server gesendet und Einstellungen angepasst werden. Beispielsweise lassen sich WakeOnLan Pakete versenden. Die Tabelle zeigt alle derzeit möglichen Befehle. Befehl Bedeutung reset Setzt den AVR-Controller zurück arp Gibt die aktuelle ARP-Tabelle aus tcp Gibt die aktuelle Tabelle der TCP Verbindungen aus ip [<ip>] Gibt die aktuelle IP Adresse des Boards aus, oder überschreibt diese mit <ip> Gibt die aktuelle Netzwerkmaske des Boards aus, oder überschreibt diese mit net [<netmask>] <netmask> router [<ip>] Gibt die aktuelle IP Adresse des Routers aus, oder überschreibt diese mit <ip> ntp [<ip>] Gibt die aktuelle IP Adresse des NTP-Servers aus, oder überschreibt diese mit <ip> ntpr Holt die Zeit vom NTP-Server und stellt die Uhr des Boards mac Gibt die MAC-Adresse des Boards aus ping <ip> Sendet einen Ping an <ip> ver Gibt die Versionsnummer des ENC-Netzwerkchips aus sv set variable. Doku? time Gibt die aktuelle Zeit aus wol [<mac>] [<ip>] Versendet ein MagicPacket an die gespeicherte MAC-Adresse, oder überschreibt die MAC-Adresse, oder überschreibt die MAC-Adresse und die Broadcast-IP help, ? Gibt eine Hilfe aus 6.2 MAC-Adresse Unter der MAC-Adresse20 versteht man die Hardwareadresse eines Netzwerkadapters, die zur eindeutigen Identifikation des Gerätes im Netzwerk dient. Jede MAC-Adresse sollte nur ein mal vorkommen. Beim FiFi-Webserver wird die Adresse in der Datei config.h definiert. Sie lautet gemäß Voreinstellung „00 20 18 B1 15 6F“. Sie wird unverändert in jeden Webserver geflasht, wenn man sie nicht vorher manuell anpasst. Dies ist normalerweise kein Problem, denn die MAC- Adresse hat nur bis zum Router eine Bedeutung. Problematisch wird es, wenn in einem LAN 19 http://www.ulrichradig.de/site/forum/index.php, insb. Foren „ETH_M32_EX“ und „AVR-Webmodule“ 20 MAC = Media Access Control Seite 22 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • mehrere FiFi-Webserver gleichzeitig betrieben werden sollen. In dem Fall müssen unter- schiedliche MAC-Adressen vergeben werden. Vereinfacht gesagt sind die ersten drei HEX-Zahlen der Adresse (also 00 20 18) eine Herstel- lerkennung.21 Die letzten drei HEX-Zahlen (hier B1 15 6F) stellen eine fortlaufende Nummer da. Bestimmte Kombinationen sind jedoch ungültig. Sollten Sie für Ihr LAN verschiedene MAC-Adressen vergeben müssen, ändern Sie bitte die letzte der sechs HEX-Zahlen. Benutzen Sie die Zahlen 5F, 6F, 7F, 8F und 9F. 6.3 Passwort ändern Benutzername und Passwort werden selbsterklärend in der Datei config.h festgelegt. //Webserver mit Passwort? (0 == mit Passwort) #define HTTP_AUTH_DEFAULT 0 //AUTH String "USERNAME:PASSWORT" max 14Zeichen //für Username:Passwort #define HTTP_AUTH_STRING "admin:uli1" 6.4 Webinterface Das Webinterface kann den eigenen Vorstellungen angepasst werden. Der Code dazu ist in der Datei webpage.h zu finden. Diese Datei hat nicht HTML-Format, sondern liegt in der Programmiersprache C vor. Sie beinhaltet aber die HTML-Datei (oder auch mehrere davon) sowie die benutzten Grafiken. Die Datei webpage.h wurde von Gerrit Herzig (DH8GHH) gegenüber der Version, welche auf der Homepage von Ulrich Radig erhältlich ist, optisch für den Fichtenfieldday angepasst. Sie bietet einige Grundfunktionen und Lösungsbeispiele für typische Anwendungen, so dass man auch ohne besondere Kenntnisse in C und / oder HTML durch „Abkupfern“ des Quell- textes zum Ziel kommen kann. Beispiele: • Setzen und Einlesen bestimmter Ports • Bilder darstellen • Kamera einbinden • Unterseiten realisieren • IF-THEN-Bedingung Grafiken einbinden Grafikdateien müssen umformatiert werden, bevor sie in die Datei webpage.h eingebunden werden können. (wie? t.b.d.) 6.5 Telnetd Auf Port 23 horcht ein Telnetserver und tauscht Daten mit der seriellen Schnittstelle des Boards aus. Somit ist die RS232-Schnittstelle des Boards über das Internet "tunnelbar" und es können viele Geräte (z.B. Telefonanlagen) aus der Ferne gesteuert werden. Geplant ist auch der Zugriff auf die Kommandozeile per Telnet. 21 Die Adresse des FiFi-Webservers stammt von einer alten Realtek-Netzwerkkarte DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 23
    • 6.6 NTP Client Durch den NTP Client (NTP = Network Time Protocol) ist es möglich von einem NTP Server die aktuelle Uhrzeit zu beziehen. Somit kann man auch eine kleine Ethernet Uhr bauen, die über das Internet die aktuelle Uhrzeit empfängt. Seite 24 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • 7. Projektdaten 7.1 Technische Daten • Betriebsspannung: 5,0 … 9 Volt • Controller: ATmega 644, Fa. ATMEL o Takt: extern 14,75 MHz (gleichzeitig Takt für externe Kamera) o 64 kB Flash o 2 kB EEPROM o 4 kB SRAM o Betriebsspannung 3,3 V o Inputs: max. –0,5 .. 3,8 V o Outputs: max. 40 mA (max. 200 mA gesamt) • Ethernet-Controller: ENC28J60, Fa. Microchip, 10 Mbit/s (kein autom. Crossover) • Serielle Schnittstelle: MAX3232, 9600 Baud 8N1 • Programmierschnittstelle ISP (STK200) • Stromaufnahme: ca. 200 mA ohne Erweiterungen • 64 kB EEPROM optional • SD-Kartenschacht optional • Abmessungen der Leiterkarte 51,3 mm x 100,0 mm 7.2 Schaltungsbeschreibung Die Schaltung des FiFi-Webservers besteht aus den Funktionsblöcken • Spannungsversorgung • Mikrocontroller • Ethernetcontroller Spannungsversorgung Alle Schaltungsteile werden mit 3,3 V versorgt. Die Batteriespannung wird deshalb mit dem Linearregler IC2 (LM317) auf diesen Wert geregelt. Dazu wird IC2 gemäß Datenblatt mit den Widerständen R1 und R2 beschaltet. Zur Funktion sollten am Eingang des Reglers mindes- tens 4,5 V anliegen. Aus thermischen Gründen sollten jedoch 9 V nicht überschritten werden. Die Diode D1 erzeugt bei Verpolung einen Kurzschluss, um F1 auszulösen; D2 dient zum Schutz gegen Rückwärtsversorgung. Als F1 kann alternativ ein kleiner Metallschichtwider- stand (!) mit 0,1 Ohm eingesetzt werden. LED1 dient als Betriebsspannungsanzeige. Mikrocontroller Dem Mikrocontroller IC1 (ATmega 644) genügt als externe Beschaltung der Quarz Q1 mit seinen Schwingkreiskondensatoren C15 und C18. Die recht hohe Frequenz 14,75 MHz wurde trotz leichter Übertaktung gewählt, da sie gleichzeitig zum Anschluss einer Kamera verwen- det werden kann (siehe dazu Kapitel 8.2). Die Chip-Select-Signale CS_1 (Pin 43) und CS_2 (Pin 41) sowie das Interrupt-Signal (Pin 42) werden intern für die Ansteuerung der Peripherie benötigt. Alle anderen Signale werden an die Stiftleiste SV1 geführt und stehen für eigene Projekte zur Verfügung. CS_2 ist mit der LED2 beschaltet, S2 ist als Resettaster vorgesehen. Die RXD/TXD-Signale (Pins 9 und 10) dienen zur Kommunikation mit dem Schnittstellen- baustein IC3, der ein Allzweckinterface mit 9600 Baud zur Verfügung stellt. DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 25
    • Die Signale MOSI, MISO, SCLK (Pins 1 bis 3), CS_1 sowie der Interrupt stellen eine SPI- Schnittstelle zum Ethernetcontroller bereit. Ethernetcontroller Die Ethernetschnittstelle besteht aus dem Controller IC4 mit externem 25-MHz-Quarz (Q2), einer RJ45-Buchse mit integriertem Übertrager und zwei Leuchtdioden. Die Drossel L1 dient als Filter für die Spannungsversorgung. Die Widerstände R5 bis R8 sind Abschlusswiderstän- de für die Ethernetleitung; sie können mit 47 Ohm bestückt werden. 7.3 Belegung der Schnittstellen Buchsenleiste SV1 (I/O-Schnittstelle) Pin SV1 Signalname Pin IC1 Verwendung 1 PC3 (TMS) 22 2 PC2 (TCK) 21 3 PC1 (SDA) 20 EEPROM IC5-Pin 5 4 PC0 (SCL) 19 EEPROM IC5-Pin 6 5 PD7 (OC2) 16 6 PD6 (ICP) 15 7 PD5 (OC1A) 14 8 PD4 (OC1B) 13 9 PD3 (INT1) 12 10 PD2 (INT0) 11 11 PD1 (TXD) 10 RS232 IC3-Pin 10 [9] / JP2-Pin 3 12 PD0 (RXD) 9 RS232 IC3-Pin 9 [10] / JP2-Pin 5 13 PB7 (SCK) 3 MMC1-CLK / ISP SV2-Pin 7 / Ethernet IC4-Pin 8 14 PB6 (MISO) 2 MMC1-DAT/DO / ISP SV2-Pin 9 / Ethernet IC4-Pin 6 15 PB5 (MOSI) 1 MMC1-CMD/DI / ISP SV2-Pin 1 / Ethernet IC4-Pin 7 16 PB4 (SS) 44 17 (nc) - 18 (nc) - 19 (nc) - 20 PB0 (T0/XCK) 40 21 PA0 (ADC0) 37 22 PA1 (ADC1) 36 23 PA2 (ADC2) 35 24 PA3 (ADC3) 34 25 PA4 (ADC4) 33 26 PA5 (ADC5) 32 27 PA6 (ADC6) 31 28 PA7 (ADC7) 30 29 PC7 (TOSC2) 26 30 PC6 (TOSC1) 25 31 PC5 (TDI) 24 JP2-Pin 2 32 PC4 (TDO) 23 33 +5V - 34 GND Seite 26 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Wannenstecker SV2 (ISP-Schnittstelle) Pin SV2 Signalname 1 MOSI 2 VCC 3 (nc) 4 (nc) 5 /RES 6 GND 7 SCK 8 GND 9 MISO 10 GND MMC/SD-Kartenschacht Pin MMC1 Signalname 1 CS 2 CMD/DI 3 GND 4 VCC 5 CKL/SCK 6 GND 7 DAT/DO 8 (nc) 9 (nc) Abbildung 20: MMC-Pinbelegung Jumperleiste JP2 Pin Jumper Signalname JP2 1 1 GND 2 PC5 3 2 TXD 4 TXD1 5 3 RXD 6 RXD1 7 4 (nc) 8 (nc) 9 5 +5V 10 (nc) Abbildung 21: Pinbelegung JP2 7.4 Schaltplan Auf der folgenden Seite finden Sie den Schaltplan des FiFi-Webservers. Achtung! Das Netz mit dem Namen „+5V“ steht für die von Ihnen ange- schlossene Versorgungsspannung, die durchaus mehr als 5 Volt betragen kann! Die mit dem LM317 (IC2) geregelte Spannung von 3,3 Volt wird mit dem Netz „VCC“ bezeichnet. DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 27
    • Abbildung 22: Schaltplan Seite 28 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • 8. Extras 8.1 Gehäuse Hutschienengehäuse Konzipiert wurde die Platine für den Einbau in ein sog. Hutschienengehäuse. Abbildung 23: Vorschlag Hutschienengehäuse (Ulrich Radig) Schlecht erkennbar in der linken Abbildung ist die 2x17-polige Stiftleiste in der Mitte der Platine. Sie nimmt die SV1 des FiFi-Webservers auf. Aus Gründen der Bauhöhe musste der schwarze Kunststoffsteg nach dem Einlöten entfernt werden. Zu dem Gehäuse ist auf der Homepage von Ulrich eine BMP-Datei zur Anfertigung einer passenden Blende (wie im rechten Bild) verfügbar. Euro-Kühlrippengehäuse Da die Leiterkarte die Breite einer Eurokarte hat, lassen sich auch viele dafür vorgesehene Gehäuse direkt einsetzen. Problematisch ist allerdings, dass die Bestückung bis sehr nah an den Platinenrand geht. Um mechanische Überbeanspruchung oder elektrische Kurzschlüsse zwischen Gehäuse und Leiterbahnen zu verhindern, ist daher Vorsicht geboten. Erfolgreich getestet wurde der Einbau in ein Euro-Kühlrippengehäuse: Abbildung 24: Vorschlag Euro-Kühlrippengehäuse (DL1DOW) DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 29
    • 8.2 Kamera Es ist möglich, die externe Philips-Handykamera DC-3840 an den FiFi-Webserver anzu- schließen. Die Farbkamera bietet eine Auflösung von 640x480 Bildpunkte und wird über die Jumperleiste JP2 verbunden. Abbildung 25: Kamera Philips DC-3840 Die Kamera erhöht die Stromaufnahme des FiFi-Webservers um ca. 60 mA. Sie ist damit auch weiterhin niedrig genug, um eine Versorgung über USB zu ermöglichen. Umbau der Kamera Die beiden Hälften des Kameragehäuses sind an vier Stellen miteinander verrastet (siehe Abbildung 26). Man muss sie an diesen Stellen mit einem geeigneten Schraubendreher aufhe- beln. Dabei kommt zugute, dass die Platine von einem Kunststoffrahmen umgeben ist, so dass nicht die Gefahr besteht, dass man den Schraubendreher zu weit eindrückt und damit die Platine beschädigt. Abbildung 26: Rastnasen an der Kamera Seite 30 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Zum Entnehmen der Platine werden die vier Schrauben an den Ecken (und nur diese!) gelöst. Der Originalstecker wird abgeschnitten und die Kabelenden so verlängert, dass sie auf eine für die Jumperleiste JP2 passende Buchsenleiste führen. Halten Sie sich dabei an die Abbildung 27 sowie die folgende Tabelle. Achtung! Die Kamera wird mit 5 V DC betrieben. Diese Spannung ist direkt (ohne Spannungsregler) von der Anreihklemme X1 aus durchverbunden. Das heißt, die Versorgungsspannung des FiFi-Webservers darf bei ange- schlossener Kamera 5 V nicht überschreiten! Abbildung 27: Kamera-Anschlusskabel Pin JP2 Kabelfarbe Signalname Originalstecker-Pin 1 schwarz GND Ring innen 2 (nc) 3 grün RX Kamera Ring Mitte 4 (nc) 5 blau TX Kamera Ring vorn 6 (nc) 7 (nc) 8 (nc) 9 rot +5V Außenleiter (nc) weiß Kamera Preset Spitze Inbetriebnahme Die Kamera wird in der Datei config.h mittels Programmer’s Notepad konfiguriert. Die Passage lautet: DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 31
    • //Kamera mit einbinden //Kamera arbeitet nur mit einem 14,7456Mhz Quarz! #define USE_CAM 0 #define USE_SERVO 0 //In cam.c können weitere Parameter eingestellt werde //z.B. Licht, Kompression usw. //Auflösungen //0 = 160x120 Pixel kürzer (zum testen OK ;-) //1 = 320x240 Pixel ca. 10 Sek. bei einem Mega644 //2 = 640x480 Pixel länger (dauert zu lang!) #define CAM_RESELUTION 2 Hier setzen Sie einfach USE_CAM von 0 auf 1. Achtung: Es kann sein, dass Ihr FiFi- Webserver nicht funktioniert, wenn Sie diesen Wert auf 1 setzen, aber keine Kamera ange- schlossen haben! Anzeige des Bildes Der Code für die Anzeige des Kamerabildes ist bereits in der Datei webpage.h (Kapitel 6.4) enthalten. Bei Verwendung einer Kamera wird es einfach an Stelle des FiFi-Logos angezeigt. Abbildung 28: Kamerabild im Webinterface Beachten Sie bitte, dass die Übertragung und Verarbeitung des Bildes einen Moment dauert (insbesondere bei hoher Auflösung „#define CAM_RESELUTION 2“ wie im Beispiel). Wenn mehrere User gleichzeitig die HTML-Seite (und damit das Bild) abrufen, kann es sein, dass keine Daten mehr kommen und der FiFi-Webserver vorübergehend nicht erreichbar ist. Auch für die Kamera gibt es ein Forum auf der Homepage von Ulrich Radig.22 22 http://tinyurl.com/5mwzla Seite 32 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Kameragehäuse Für die Außenmontage der Kombination FiFi-Webserver und Philips-Kamera bietet sich ein Gehäuse an, das von der Firma Pollin23 unter der Bestellnummer 580 168 vertrieben wird. Die Größe ist zwar recht üppig, dafür ist das Gehäuse aber wetterfest und vor allem günstig (unter 15 EUR). Abbildung 29: Gehäuse für IP-Außenkamera (Bild von www.pollin.de) Netzteil Ebenfalls von Pollin ist für unter 5 EUR ein geeignetes 5-V-Stecker-Schaltnetzteil verfügbar. Die Bestellnummer lautet 350 174. Beachten Sie bitte, dass es sich bei den Artikeln um Restposten mit begrenzter Verfügbarkeit handeln kann. 8.3 Grundplatine Ulrich Radig, der Entwickler des FiFi-Webservers, hat auch eine passende Trägerplatine dazu entworfen. Wie schon die Platine des Webservers, ist auch die Grundplatine mechanisch zum Einbau in ein Hutschienengehäuse (siehe Kapitel 8.1) konzipiert. Abbildung 30: Schaltplan der Grundplatine nach Ulrich Radig 23 http://www.pollin.de DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 33
    • Abbildung 31: Layout der Grundplatine nach Ulrich Radig Bauteilkürzel Wert Bauteilkürzel Wert D1..D4 1N4148 OK1..OK4 PC817 D5..D6 Z-Diode 3,6 V Q1..Q4 BC337 D7 BAT49 RN2 SIL8x680 IC1 MC34063AP RN3 SIL5x100k L1 100 µH X1..X14 Wago508 8.4 DynDNS Wenn Sie möchten, dass Sie ihren FiFi-Webserver auch von außerhalb Ihres LANs, also aus dem Internet erreichen können, so sollten Sie einen dynamischen DNS-Account24 anlegen. Das hat den Vorteil, dass Sie Ihr Gerät immer unter der gleichen Adresse erreichen, auch wenn sich Ihre IP-Adresse ändert, etwa durch Zwangstrennung nach 24 Stunden. Wenn Sie hingegen eine feste IP-Adresse haben oder Ihnen der Aufruf über die IP zum Tes- ten genügt, benötigen Sie dennoch eine Portfreigabe Ihres Routers. Dies wird auf Seite 36 beschrieben. 24 DNS = Domain Name System Seite 34 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Kostenlosen Account anlegen Rufen Sie die Webseite www.dyndns.com auf und klicken Sie auf „Create Account“. Im folgenden Formular müssen Sie als erstes einen Usernamen wählen. Dieser wird später aber nicht zwangsläufig Teil Ihrer URL sein. Abbildung 32: DynDNS-Account erstellen Nach Ausfüllen des Formulars erhalten Sie nach wenigen Minuten eine E-Mail mit einem Link, den Sie zur Bestätigung aufrufen müssen. Anschließend können Sie sich mit Ihrem gewählten Passwort einloggen. Wählen Sie nun „Add New Hostname“. Nun können Sie sich den Namen Ihrer künftigen URL aussuchen, wobei sowohl der Hostname als auch die Domain innerhalb bestimmter Grenzen wählbar ist. Weitere Angaben sind nicht nötig; Ihre derzeitig IP erkennt das System auf Wunsch automatisch. Abbildung 33: Hostnamen hinzufügen bei DynDNS.com DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 35
    • Router für DynDNS konfigurieren Auch Ihren Router müssen Sie für DynDNS einrichten. Der Router muss nämlich dem DynDNS-Anbieter Ihre jeweils benutzte öffentliche IP-Adresse mitteilen. Wie das zu bewerk- stelligen ist, entnehmen Sie dem Handbuch Ihres Routers. Das folgende Beispiel zeigt die Konfigurationsseite einer FRITZ!Box. Abbildung 34: Dynamic DNS-Konfiguration in einer FRITZ!Box Unabhängig von dem von Ihnen gewählten Domainnamen geben Sie bitte unter „Dynamic DNS-Anbieter“ stets „dyndns.org“ an. Portfreigabe In Ihrem Router müssen Sie eine sog. Portfreigabe für das Webinterface des FiFi-Webservers einrichten (Port 80). Das setzt zunächst voraus, dass Ihr FiFi-Webserver im LAN läuft, d.h. von anderen Rechner im LAN gepingt werden kann. Mehr dazu lesen Sie im Kapitel 5.3 auf Seite 20. Ist dies gegeben, aktivieren Sie die Portfreigabe entsprechend der Anleitung zu Ihrem Router. Die folgende Abbildung zeigt wiederum exemplarisch eine FRITZ!Box. In dem Beispiel lautet die IP des FiFi-Webservers 192.168.1.100. Seite 36 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt
    • Abbildung 35: Portfreigabe in einer FRITZ!Box Ist auch das erledigt, sollte Ihr FiFi-Webserver aus dem Internet erreichbar sein. Im genannten Beispiel wäre die URL http://dh8ghh.dyndns.org. 8.5 Amateurfunksoftware Felix Erckenbrecht (DG1YFE) hat bei Sourceforge25 ein Projekt „FiFi-Webserver“ eingerich- tet, bei dem es um die Verbesserung und Weiterentwicklung der Standard-Software (Kapitel 6) geht. Der Fokus bei Erweiterungen soll auf Amateurfunkanwendungen liegen. Die URL lautet http://sourceforge.net/projects/fifi-webserver/. 8.6 SD-Karte Der FiFi-Webserver bietet die Bestückoption für einen SD-Kartenhalter (MMC1). Der Be- trieb erfolgt im SPI-Modus; die Pinbelegung finden Sie auf Seite 27. Für nähere Informatio- nen wird auf das Forum der Webseite von Ulrich Radig verwiesen. Ausgekoppelt daraus wurde bereits der sog. Mini-FTP26, eine Software, die den Zugriff auf die Karte ermöglichen soll. Mini-FTP Das Tool arbeitet mit dem Dateisystem FAT16. Nach Aussage des Entwicklers sind bereits folgende Funktionen verfügbar: • Anonymous Login • Umschalten auf PASV Mode (nur dieser ist implementiert) • Ausgeben des Directory listing • Herunterladen von Dateien per RETR 8.7 COM Port Redirector Der Webserver ist in der Lage via Telnet eine Verbindung zur RS232 Schnittstelle des AVRs aufbauen. Eingehende Zeichen an der seriellen Schnittstelle des Webservers werden zur gestarteten Telnetapplikation gesendet. Dieses kann auch umgekehrt erfolgen, also von der Tellnetapplikation zur RS232 Schnittstelle des Webservers. Mithilfenahme der Tools 25 Eine Entwicklerplattform für OpenSource-Softwareprojekte. http://sourceforge.net/ 26 http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex/erweiterungen/mini-ftp DARC e.V. Ortsverband Lennestadt FiFi-Webserver Dokumentation Seite 37
    • „com0com“ und „com2tcp“ kann nun ein virtueller COM Port eingerichtet werden. Eventuell muss der RX Buffer der seriellen Schnittstelle vergrößert werden. Dieses erfolgt in der „u- sart.h“ bei dem Eintrag BUFFER_SIZE. Seite 38 FiFi-Webserver Dokumentation DARC e.V. Ortsverband Lennestadt