Jens Logo
Jens Dietrich
Bautzener Str.9a
D-02977 Hoyerswerda

Jens Dietrich Homepage


das bin ich
meine Interessen:
  • Controllerschaltungen mit ATMEGA, ATMEL, MC68HC11, ST62 und Z80
  • Eigenentwicklungen, Hard- und Softwarelösungen
  • Modellflug-, Solar-, Umwelt-, Akkulade-, Telefon- und Haustechnik, Audioschaltungen

...bin im Urlaub
Schaltungen für Umwelt, Haus und SicherheitWeb und FTP Controller, Mailclients, Netzwerktechnik Solarcontroller, Solarregler und Solartechnik Audiotechnik und Audioschaltungen Akkulader und Akkuladetechnik Telefonanlagen, Codeschlösser, Zeitschloss, serielle Schnittstellen Hersteller, Lieferanten und andere gute Webseiten
    Elektronik-Links und kostenlose Downloads
    eigene Nahaufnahmen und Hintergrundbilder hier ansehen + downloden .
    Scans von eigenen Handzeichnungen und interessanten Schaltungen
Hersteller und andere gute Webseiten
    ... wann habe ich was an meinen Seiten geändert !
geplante Projekte oder andere Spinnereien
    ... hier wird gerade gearbeitet !


jd@icplan.de
Copyright © 2001-2016 by Jens Dietrich. All rights reserved.
Revised: 14.05.2016













Controller mit Internet und E-Mail Funktion
TCP/IP Stack am Beispiel einer Zilog Z80 CPU

Ziel dieses Projektes

Es soll eine Software erstellt werden, die einen einfachen Controller über eine Wählverbindung oder Netzwerkanschluss mit dem weltweiten Internet verbindet. Jeder der an dieser Software mitarbeiten möchte kann durch den offenen Quellcode mitarbeiten. Jedes Programmstück ist per Download zugänglich. Die Software soll einen einfachen TCP/IP Protokollstack bilden. Über eine Modemverbindung (Festnetz oder Handy) oder Netzwerk wird der Controller E-Mails mit Messdaten senden und empfangen die entsprechende Schaltfunktionen im Controller auslösen. Im einfachsten Fall sendet der Controller eine E-Mail mit Wetterdaten (Temperatur/Luftfeuchte...). Er könnte aber auch beim Empfang einer entsprechenden E-Mail die Heizung in einem Wochenendhaus einschalten. Ein weiterer Ausbau der Software auf Protokolle wie TELNET oder HTTP lassen dann auch Steuerungen zu, bei denen nicht über die E-Mail, sondern mit direktem Kontakt (WEB oder WAP Browser, Terminal...) reagiert und agiert wird.
In der Historie können Sie sich über den aktuellen Stand dieses Projektes informieren. Jeder der mitmachen will, schreibt einfach an meine E-Mail Adresse. Hier finden Sie Literaturquellen zum Thema TCP/IP.

Hardware zum Projekt

Ich brauchte bei der Wahl des Controllers nicht lange überlegen. Die gute alte Zilog Z80 CPU erfüllt alle notwendigen Voraussetzungen und ist durch die grosse Zahl an Ein-/Ausgabe-Bausteinen sehr flexibel. Ebenso gibt es neuere Z80 Modelle die den gleichen Rechenkern benutzen und auch die 64 KByte Speichergrenze überspringen können. Ich denke nur an den Z84C015 (CPU,PIO,SIO,CTC) oder an den Z80180 (CPU,SIO,1MByte Speicherraum). Sie werden sich fragen, warum ich nicht gleich solch einen Baustein verwendet habe, diese weiter oben genannten Bausteine sind SMD Typen und fŘr den Amateur schlecht zu verarbeiten. Meine Hardware verwendet alles Bauteile in normaler DIL Bauform. Die Bauteile sind sehr preiswert und können auf einer Lochrasterplatte mit Litze verbunden werden. Bildserie

Merkmale:
  • ZILOG Z80 System mit CPU, CTC, SIO, PIO
  • Taktfrequenz 2,54 MHz
  • LCD Anschluss für Punktmatrixmodule
  • 32 KByte RAM (Batteriegepuffert), 32 KByte EEPROM
  • Bootlodersoftware im EEPROM
  • Systembusstecker mit den wichtigsten Signalen
  • 2 x echte RS232 Steckverbindungen, 2 x 8 Bit Par.Ports


  • Das Boarddesign hat einige wichtige Besonderheiten. Der RAM befindet sich im Adressbereich 0 bis 7FFFh der EEPROM ab 8000h. Über einen DIP Schalter kann man wählen, ob die CPU das Programm mit Adresse 0 oder mit 8000h starten soll. An Adresse 0 steht das eigene Programm bei Adresse 8000h befindet sich der Bootloader mit einem kleinen Monitorprogramm. Durch den Bootlader ist es nicht notwendig, ständig EEPROM zu brennen um die Software auszutesten.

    Bootloader:
    Über die serielle Schnittstelle kann mit einem Terminalprogramm eine Intel-Hex Datei in den batteriegepufferten RAM übertragen werden. So eine Intel-Hex Datei enthält neben den zu speichernden Byten auch die Adressinformationen. Der Z80-Assembler erzeugt diese Intel-Hex Datei die dann zum Testen problemlos über die serielle Schnittstelle zum Z80 Board übertragen werden kann.

    Monitorprogramm:
    Die gerade übertragene Software kann nun gestartet werden. Was nun, wenn nicht alles so geht wie es soll? Hier hilft mein kleines aber wirkungsvolles Monitorprogramm. Das Monitorprogramm kann die übertragene Software im Schrittbetrieb testen. Es werden wichtige Register angezeigt. Aber auch Speicherzellen und Speicherbereiche können dargestellt und verändert werden.

    Monitorbefehle:
    B XXXX Haltepunkt (Breakpoint) setzen
    C XXXX YYYY ZZZZ Speicher vergleichen (Compare)
    D XXXX Speicherbereiche anzeigen (Display Memory)
    E XXXX Programmstart mit Haltepunkten (Execute)
    F XXXX YYYY ZZ Speicher füllen (Fill Memory)
    G XXXX Programmstart mit alten Registern (Go)
    H Hilfeseite (Help)
    I Software-Reset (Init)
    J XXXX Programmstart ohne Haltepunkte (Jump)
    L Intel Hex laden (Load)
    M XXXX Speicher verändern (Memory modify)
    N Schrittbetrieb (Next)
    P XX Portschreiben und -lesen (Port)
    R XX CPU Register verändern (Register)
    S schneller Schrittbetrieb
    T XXXX YYYY ZZZZ Speicherbereiche verschieben (Transfer)

    Literaturquellen

    Bücher:

    meine WertungAutor-Titel-Verlag-ISBN NummerPreis in DM
    ++++Gerhard Lienemann
    TCP/IP Grundlagen
    Verlag Heinz Heise
    ISBN 3-88229-180-X
    79,00
    ++++EXTRAHEFT
    Embedded Internet
    Design & Elektronik
    www.elektroniknet.de
    29,80
    ++Dirk Larisch
    Das Einsteigerseminar TCP/IP
    Verlag BHV
    ISBN 3-8266-7022-1
    19,80

    Internet:

    RFC (Requests For Comment)
    C/C++ Lehrbücher
    CPC/IP - A TCP/IP stack for Amstrad CPCs
    Die TCP/IP Protokoll Suite (UNI Freiburg)
    Embedded.com
    Guy Lancaster's Home Page
    Grundlagen Computernetze (Prof. Jürgen Plat)
    das Schichtenmodell (Uni-Duisburg)
    Internet Protocol Related Links
    RFCs in HTML Format (FH Koeln)
    SEGGER Microcontroller Systeme
    Die wichtigsten Grundlagen von TCP/IP
    TCP/IP Grundlagen
    Hypertext Transfer Protocol
    So funkioniert TCP/IP

    Bildserien zur Z80 Karte

    Bild 1 - Lochrasterplatte 100 x 200 mit Netzteil 5 Volt
    Bild 2 - Fassungen und Steckverbinder sind montiert
    Bild 3 - das 8 Bit Bussystem wird verlegt
    Bild 4 - alle Datenleitung und Busleitungen fertig

    Downloadbereich

    Hardware:
    Schaltung (80K) - ansehen
    Leiterplatte (25K) - Bestückung ansehen
    Leiterplatte (30K) - Leiterzüge oben ansehen
    Leiterplatte (62K) - Leiterzüge unten ansehen
    ZIP Datei (196K) - Schaltung und Platinenansichten downloaden

    Software:
    Monitorsoftware V1.00 (25K) - downloaden
    Monitorsoftware V1.01 (26K) - downloaden
    TCP/IP Programm (12K) - aktuell Stand 02-01-2002 downloaden

    Assemler Software:
    ZMAC Linux (106K) - downloaden

    Historie dieses Projektes

    24-06-2001 Was ist TCP/IP - Internetrecherche
    29-06-2001 Erstes Konzept eines Rechners, CPU Auswahl
    04-07-2001 Teilaufbau Z80 Rechner ohne CTC,PIO,SIO
    07-07-2001 Urlaub - alle wichtigen engl. RFC's (IP,TCP,SLIP,PPP,TELNET)
    23-08-2001 Restaufbau Z80 Rechner mit allen fehlenden Bausteinen
    25-08-2001 Z 1013 Monitor A2 in ZESY-Assembler einlesen, Tabellen bearbeiten
    29-08-2001 Z 1013 Monitor A2 funktioniert an jeder Stelle im ROM
    05-09-2001 Bootloader für Z80 Karte geschrieben - noch fehlerhaft
    07-09-2001 Bootloader funktioniert, Intel Hex laden über RS232 9600baud
    10-09-2001 Z 1013 A2 Monitor mit serielle Routinen umschreiben
    12-09-2001 Die Routinen lassen sich nicht einbinden - eigene RST20 Routinen
    18-09-2001 Monitor V1.00 ist fertig ! Probleme mit N Befehl - EPROM brennen
    30-09-2001 Monitor V1.01 ist fertig ! neu S Befehl - EPROM brennen
    01-10-2001 SLIP IP Datagramm von Palm auslesen und auswerten (TCP/IP Telnet)
    02-10-2001 Datagramm auftrennen in TCP und IP Header
    04-10-2001 Software für IP Header geschrieben! Probleme mit Checksumme
    07-10-2001 Internetrecherche Einer-Komplement der Checksumme bei IP
    09-10-2001 Softwaretest Programm zur Bildung der Checksumme für IP und TCP?
    15-10-2001 IP_out funktioniert mit richtiger Checksumme
    20-10-2001 IP_in funktioniert mit allen Prüfungen Fehlermeldungen vorgesehen
    21-10-2001 IP Fehlermeldungen bei Protokollfehlern werden ausgegeben
    23-10-2001 Datenintegration und TCP Protokoll begonnen
    26-10-2001 durch den Pseudoheader und TCP Header neues Konzept der Headerbildung
    27-10-2001 ein Data-Ram Platz, hier wird durch verschieben, Headerplatz geschaffen
    30-10-2001 Konzept mit verschieben geht gut, Probleme Checksummenberechnung in TCP
    02-11-2001 Checksumme ? RFC-TCP kann nicht stimmen Bytelänge anstelle Oktets !
    06-11-2001 TCP_out fertig ! Checksumme richtig
    15-11-2001 TCP/IP in und out Headererstellung / -prüfung ist fertig ! funktioniert !
    29-11-2001 SLIP in und out geschrieben
    01-12-2001 SLIP über RAM-Puffer getestet ok, bei TCP-Option MSS eingefügt
    16-12-2001 SLIP mit TCP/IP read und write über COM ok, Beginn TCP Statusprogrammierung
    22-12-2001 TCP/IP TELNET-SLIP Verbindung kann aufgebaut und getrennt werden
    27-12-2001 weiterer Checksummenfehler beim Senden von TCP/IP Daten gefunden
    02-01-2002 Z80 arbeitet als SLIP HTTP Server, eine kleine Seite ist mit jedem Browser sichtbar !

    _

    jd@icplan.de
    Copyright © 2001-2016 by Jens Dietrich. All rights reserved.
    Revised: 14.05.2016