Ingenieursprojekt: Ethernet-Interface für den SBC3
Auftraggeber: HTBL Hollabrunn – Abteilung für Steuerungs- und
Regelungstechnik
Projektleiter: Ing. Manfred RESEL
Projektanten: Karl BACHL
Michael
WIHSBOECK
Da
Embedded Ethernet-Lösungen am Mikrocontrollermarkt in den letzten Jahren
zunehmend an Bedeutung gewonnen haben, setzte sich auch die Abteilung für
Steuerungs- und Regelungstechnik der HTBL Hollabrunn mit diesem Themengebiet auseinander.
In
dieser Abteilung wird derzeit hauptsächlich mit dem sog. SBC3 (Single
Board Controller Version 3) gearbeitet. Beim SBC3 handelt es sich um ein
Mikrocontrollerboard mit einem 80C552-Prozessor (8051-Familie).
Projektziel war daher, den SBC3 um ein Ethernet-Interface
(eine Netzwerkkarte) zu erweitern und diverse Protokolle (ARP, IP, ICMP usw.)
zu implementieren, um schlussendlich übers Schul-Netzwerk (Ethernet) z.B. Daten
vom SBC3 abrufen zu können.
Für
die Realisierung der Ethernetanbindung wurde der Ethernetcontroller CS8900A
der Firma Crystal gewählt. Der 16-Bit-orientierte Controller unterstützt
auch einen für den SBC3 notwendigen 8-Bit-Mode. Als Schnittstelle zwischen dem
SBC3 und dem Ethernetboard dient die ECB (4 Adressleitungen, 8 Datenleitungen,
I/O Request, I/O-Write, I/O-Read, Reset).
Zur
einfachen Verwaltung des 4 kByte großen internen RAMs des CS8900A wird das sog.
Packet Page System (mit den Ports „Packet Page Pointer“, „Data Port“ usw.),
verwendet.
Man benötigt dazu nur 4 Adressleitungen, durch welche
immer eines der acht 16-Bit-Ports (bzw. sechzehn 8-Bit-Ports) ausgewählt wird.
Um die Ausgangspegel des Ethernetcontrollers CS8900A an
die Pegel des Ethernet-Standards IEEE802.3 anzupassen und zur galvanischen
Trennung der Netze, wird der Übertrager S553-0716-00 der Firma Belfuse
verwendet.
Die
Firma AtlantikElektronik (http://www.atlantikelektronik.com)
stellte uns dankenswerterweise je 2 Muster des Ethernetcontrollers CS8900A und
des Übertragers S553-07-16-00 für die Fertigung des Prototypen des
Ethernetboards zur Verfügung.
Die
Leiterplatte (siehe Photo) wurde in der Schule gefertigt. Nach Inbetriebnahme
der Platine wurde zunächst das Address Resolution Protocol (ARP) und das
Internet Protocol (IP) implementiert. Dann konnte das Ping-Programm
(ICMP Echo) realisiert werden.
Mit
dem neuen Ethernetinterface wurde in Verbindung mit dem SBC3 und einer
CVI-Visualisierung ein leistungsfähiger Netzwerksniffer realisiert.
Über
die Benutzeroberfläche des CVI-Programms wird der Sniffer gestartet, gestoppt
und die Filtereinstellungen getroffen. Der SBC3 schickt dann die vom LAN
empfangenen und je nach Wunsch gefilterten Ethernetpakete über die parallele
Schnittstelle (Centronics) zum PC. Das CVI-Programm, das am PC läuft, wertet
die Datenpakete aus und stellt diese am Bildschirm dar.
Außerdem
wurde auch ein Programm geschrieben, das es ermöglicht den SBC3 als TFTP-Server
zu betreiben.
So
ist es möglich mit einem TFTP-Client, der z.B. auf einem PC im Netzwerk läuft,
eine Datei vom SBC3 anzufordern. Dieser schickt dann die gewünschte Datei
(Inhalt: z.B. Werte bestimmter Ports ) zum PC.
Außerdem
wurde mit Hilfe der Scriptsprache php auch noch ein TFTP-Client auf Webbasis
programmiert, sodass es nicht mehr notwendig ist, einen TFTP-Client auf dem
eigenen PC installiert zu haben.
Man
braucht nur mehr auf der Webseite die Datei anfordern, der SBC3 schickt dann
die Daten zum Webserver, wo ein php-Script die Daten als HTML-Seite
aufbereitet.
Somit
kann man sich auf jedem Rechner, der Internetzugang hat, die aktuellen Daten
des SBC3 auf der Webseite ansehen.
Das
Trivial File Transfer Protocol basiert im Gegensatz zu FTP (File Transfer
Protocol) auf dem wesentlich einfacher aufgebauten User Datagram Protocol
(UDP). Ein weiterer Schritt wäre nun die Realisierung eines FTP-, Telnet-
und/oder HTTP-Servers.
Dazu
müsste jedoch das umfangreiche Transmission Control Protocol (TCP)
implementiert werden.
Im
Zuge des Projektes war es auch erforderlich, den vorhandenen
8051-C-Cross-Compiler (DOS-Version) durch eine leistungsfähige
Windows-Entwicklungsumgebung (IDE) zu ersetzen.
Es wurde der Compiler ProView32 V8.63 der Firma Franklin verwendet. Dieser Compiler zeichnet sich durch eine benutzerfreundliche Oberfläche für die Entwicklung von ANSI C- sowie Assembler-Programmen aus.
Für den Schulgebrauch war es
notwendig das vorhandene ROS (Regelungstechnik Operating System) sowie
eine fprintf Streamfunktion für die vorhandenen I/O Komponenten des SBC3
(LCD, Centronics, V24) in den Compiler zu implementieren, da dieser Compiler
derartige Funktionen nicht zur Verfügung stellte. Die programmierte fprintf
Funktion beherrscht alle aus sprintf() oder printf() bekannten Formatbefehle
(%x, %c, %s,....) .
Außerdem
wurde ein WIN32–Terminal für die serielle Kommunikation mit dem SBC3
entwickelt.
Dieses
Terminalemulationsprogramm wurde mit Microsoft Visual C++ 5.0 realisiert.
Vorteile dieses Terminals (WIBATerm) sind der geringe Speicherbedarf
(~40kB) sowie die einfache Handhabung. Es ist keine Installation notwendig. Da
diese Software von uns entwickelt wurde, ist es leicht möglich sie an neue
Eigenschaften der Zielhardware anzupassen.
Nähere
Informationen finden Sie auf unserer Projekthomepage http://ethernet.wihsy.com.
Bei etwaigen Fragen können Sie sich auch via E-Mail an uns wenden: ethernet@wihsy.com