8051 NEWS aus Hollabrunn

Ein Erfahrungsbericht von Manfred Resel über

Diplomarbeiten  der TI-Abteilung Mikrocontrollerboard mit TCP/IP und USB

 

 

Das Projektteam von links nach rechts:

USB        Daniel.Gschoesser@web.de

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.