Ein
Erfahrungsbericht von Manfred Resel über
Diplomarbeiten der TI-Abteilung Mikrocontrollerboard mit
TCP/IP und USB
Das Projektteam
von links nach rechts:
TCP/IP Harald.Huber@a1.net
Ethernet-Hardware Andreas.Kneissl@gmx.at
Monitorsoftware <Josef-Paul.Füger>
fuegerjoe@a1.net
Die ständige Suche nach der „blauen Blume“ hat uns in den
letzten Jahren in verschiedenen Projekten Erfahrungen mit Infineons C166 Produkten und Microchips
PIC- Mikrocontrollern gebracht.
(Siehe auch
PCNEWS-64a, Seite 52, Mikrocontroller HTL-hl Board).
Aber
noch immer ist der 8051 nicht ausgestorben. Ganz im Gegenteil tauchen laufend hochinteressante
Neuentwicklungen meist mit in System programmierbarbarem (ISP) onboard Flash und integriertem XRAM
auf. So zum Beispiel von
Philips der
89C66x, http://www.semiconductors.philips.com/pip/p89c660hba/00
von Analog Devices http://products.analog.com/products/info.asp?product=ADuC834
von Cypress, http://www.cypress.com/products/datasheet.cfm?partnum=CY7C68013-128AC
oder von Winbond http://www.winbond.com/e-winbondhtm/partner/b_2_f_2.htm
oder von unzähligen
anderen Herstellern.
Angeboten werden
Prozessoren mit 3.3 oder 5 Volt, DIL- ,
PLCC- oder TQFP Sockel. Unter ISP versteht leider jeder Hersteller etwas
Anderes, jeder bietet aber Programmierlösungen dazu im Internet an .
Beim unserem
Standard Schul Single Board Computer SBC3 mit einem 80C552-Prozessor belegen
leider 3 dicke SRAM/EPROM Sockel und eine Pufferbatterie relativ viel
Platz auf der Platine. Ziel der heurigen Truppe war es, einen Controller zu finden, der P0 bis P5
(ADC) besitzt, alle Speicher bereits integriert hat, über die V24 sein Hex-File
ins Flash programmieren kann und noch dazu die Platinenfläche so verkleinert,
dass eine Ethernetplatine optional
bestückt werden kann.
Wir verwenden wir beim SBC3 keinen Standard
RS232 Treiber, sondern über einen 8-poligen DIL Sockel kann wahlweise ein RS485
Treiber, ein RS232 Modul oder aber seit heuer NEU ein USB auf UART
Konverterprint bestückt werden.
Ethernet Hardware:
Da Embedded-Ethernet-Lösungen am Mikrocontrollermarkt in den letzten
Jahren zunehmend an
Bedeutung gewonnen haben, wurde bereits im Vorjahr eine ECB Platine für den SBC3 entwickelt.
Siehe dazu PCNEWS-74, Seite 58, Ethernet-Interface für
den SBC3 http://pcnews.at/ins/pcn/0xx/07x/074/005800/main.htm
oder http://www.embeddedethernet.com\
Aufgabenstellung für heuer war ein wesentlich kleinerer Aufsteckprint für
einen DIL28 Sockel als memory mapped I/O
in 3.3 Volt Technologie. Der RJ45 Stecker ist sowohl Bauteil- als auch
Lötseitig bestückbar.
Bild Netzwerkkarte
TCP (Transfer Control Protokoll RFC397)
Projektziel war es
einen TCP/IP Stack (Funktionssammlung zur Kommunikation über TCP) zu
entwickeln.
Aufbauend auf
einer Include Datei von Erik Andersson (http://www.8052.com/forum/read.phtml?id=5360&top=),
wurde der TCP/IP Stack für den SBC3 angepasst und ANSI-C Funktionen entwickelt,
mit denen es möglich ist einfache Programme (Server oder Client) mit TCP
Kommunikation zu schreiben.
Der TCP/IP Stack
besteht aus 3 Schichten:
ANSI-C Funktionen
(für Userprogramme) Projekt
01/02
Assembler
Funktionen, die TCP-Pakete erzeugen bzw. auslesen Erik Andersson
Assembler
Funktionen zur Kommunikation mit der Netzwerkkarte Projekt 00/01
Mit dem TCP/IP
Stack ist es nun möglich, mit einfacher Syntax Netzwerkanwendungen zu
programmieren. (Echo Server, Telnet Server/Terminal...)
Ein weiterer Punkt
der Diplomarbeit war das Monitorprogramm PAULMON2 von Paul Stoffregen (http://www.pjrc.com/tech/8051/index.html#paulmon)
für den SBC3 anzupassen.
Hierzu wurden die
für den SBC3 entwickelten ROS Funktionen (Regeltechnik Operating System)
implementiert.
Dieses
Monitorprogramm wurde mit dem TCP/IP Stack erweitert und so modifiziert, dass
es möglich ist mit dem SBC3 über TCP (Telnet, HyperTerminal) zu steuern,
Programme downzuloaden, Speicher zu editieren... .
Der
Programmdownload über die 10Mbit Ethernetkarte ergibt allerdings nur eine
Datenrate von ca. 500 bit/s, was im Vergleich zu einer RS232 Schnittstelle mit
9600,n,8,1 eher langsam erscheint, aber mit dem Verweis auf die Abarbeitung der
Schichten des TCP/IP Stacks mit dem 8051 wohl zu erklären ist.
Die hauptsächliche
Verwendung des TCP/IP Stack wird im Rahmen des TINF (Technische Informatik)
Unterrichts erfolgen, um Programme für den SBC3 zu schreiben, und dessen
Ein/Ausgaben über TCP mittels Labwindows CVI von National Instruments zu
visualisieren. Als Beispiel dient der folgende
Programmausschnitt: Echo Server (echo.c)
#include
"ros.h"
unsigned char
ch;
unsigned char
ch1;
code unsigned
char SBC_IP[] = {172,31,41,112};
code unsigned
char SBC_MAC[] = {0x00,0xE0,0x7D,0x7B,0x5D,0x66};
void
main(void)
{
set_MAC(SBC_MAC); //
MAC setzen
setip(SBC_IP); //
IP setzen
init_tcp(); // Puffer initialisieren
while(1)
{ ch1 = tcp_open_server(23); //
Verbindung öffnen
CID = ch1; // Begrüßungstext
fprintf(TCP, "Dies ist ein Echo-Server\xd\xa");
fprintf(TCP, "========================\xd\xa\xa");
tcp_flush(ch1);
while(tcp_state(ch1)) // Verbindung aktiv?
{
if(tcp_ri(ch1)) // Zeichen
empfangen?
{
ch = tcp_in(ch1); // Zeichen lesen
printf("%c", ch);
tcp_out(ch1, ch); // Zeichen zurücksenden
if(ch==0x1b) // Bei ESC Abbruch
close_con(ch1);
}
}
}
}
USB
Seit der Einführung des USB
Standards am IBM PC stellt sich für den RS232 verwöhnten Hobbyanwender und
Techniker die Frage: „Wie erstelle ich ein USB Interface?“
Die Frage wird umso
bedeutender, je mehr man sich bewußt wird, daß es in einigen Jahren keine RS232
Schnittstelle mehr geben könnte (vielleicht nicht in der Industrie, aber mit
größter Wahrscheinlickeit bei den handelsüblichen PCs).
Die Suche nach einem
geeigneten USB Baustein war schwierig.
Eine sehr wertvolle Hilfe bei der Auswahl fanden wir bei Craig Peacock www.beyondlogic.org/about.htm. Es gibt einige
Firmen die verschiedene USB Bridges oder komplette Mikrocontroller Lösungen
anbieten. Neben der immer vorhandenen SIE [= Serial Interface Engine]
entscheidet der IC Hersteller darüber,
wie groß der Aufwand bei Entwicklung eines USB-Geräts ist
Am Markt befindet sich eine
große Auswahl an Port Replikatoren für USB. Die Elektronik befindet sich
oft im Kabel in SMD Bauform und ist
daher angenehm platzsparend. Meistens handelt es sich um einen USB/RS232
Umsetzer, was den Vorteil bietet, daß bereits vorhandene RS232 Geräte nicht neu
zu entwerfen sind! Ein Nachteil ist der relativ hohe Preis (je Kabel).
Die für uns wohl eleganteste Lösung bietet die
Firma FTDI mit ihrem FT8U232AM. Dieser Baustein ermöglicht eine Verbindung vom USB zum 8051 UART . Über Windows Geräte Treiber kann der
Baustein als virtueller COM Port, kurz VCOM, verwendet werden. So handelt es
sich z.B. um eine zusätzliche COM3 oder COM4.
Zusätzlich sind Treiber und
Headerdateien erhältlich um den Chip programmieren zu können. Ein externes
EEPROM sorgt für eine induviduelle Geräteanmeldung mit eigenen Hersteller- und
Gerätedaten. Dies erfolgt nach der USB Spezifikation über Deskriptoren.
FTDI Link: http://www.ftdichip.com/FTSchema.htm#ft232
Ein Musterlayout in
SMD erhielten wir von fred.dart@ftdichip.com
Die Bausteine bezogen wir von <Sonja.SASSMANNSHAUSEN@unitronic.de>
Preis US-$/St.: 4,60 US-$/St. bei Abnahme von 1 Stück+ Versand 20
Euro !
Die folgenden Bilder zeigen den
Stromlaufplan, den Prototypen des FT8U232AM und die Verwendung als RS232 –
Ersatz für den SBC3. Auf dem Screenshot befinden sich ein Terminal (WIBA Term),
eine Entwicklungsumgebung (Franklin) und der Windows – Gerätemanager, wo über
die VCOM der COM – Index 3 auf z.B. 4 eingestellt werden kann. Weitere Vorteile dieser Lösung sind die
Stromversorgung über den USB, und die einfache Verwendung über die COM3 in
allen Applikationsprogrammen ohne zusätzliche DLL´s die sonst nötig wären um
auf den USB zuzugreifen. Die Baudrate ist in weiten Bereichen variierbar.
Die USB-Platine wurde statt dem
ursprünglichen V24 Treibermodul
eingesetzt. Die Datenleitungen RxD und TxD erlauben den unkomplizierten
Ersatz. Es ist daher möglich den SBC als RS232, als RS485 oder als USB Gerät zu
verwenden.
Virtuelle Com-Schnittstelle VCOM und HEX-Download
Unser
Dankeschön ergeht an alle Sponsorfirmen und deren Ansprechpartner :-))
Sabine
Reinisch von Analog Devices
Vera Maria Kalina
SPOERLE ELECTRONIC
Erwin
Hartl Atlantik Elektronik GmbH
Den
Internetgrößen Fred Dart, Erik Andersson, Paul Stoffregen und Craig Peacock und
unseren Projektvorgängern Wihsy, Karli
und Gerald.