Forum: Mikrocontroller und Digitale Elektronik RS232 Hub/Switch


von feig (Gast)


Lesenswert?

Hallo,

ich hätte da eine Frage zu der RS232 Schnittstelle und UART. Nehmen wir 
mal an, dass ich mehrere Microcontroller habe, die ich per serieller 
Schnittstelle an meinen PC stecken will bzw, die auch untereinander 
kommunizieren sollen. Wäre folgendes möglich:

Ich habe mehrere Mikroprozessorboards, bei denen ich RX und TX für die 
Datenübertragung verwende. Nun erstelle ich mir ein neues Board (Hub), 
packe dort einen Atmega32 drauf (mit Quarz .. etc) und verkabele die 
Microprozessorboards folgendermaßen:

Mikroprozessorboard 1 - RX geht an Port A, Pin 0 des Hubs
Mikroprozessorboard 1 - TX geht an Port A, Pin 1 des Hubs
Mikroprozessorboard 2 - RX geht an Port A, Pin 2 des Hubs
Mikroprozessorboard 2 - TX geht an Port A, Pin 3 des Hubs
...
etc.

An die RX/TX Ein/Ausgänge des Hubs kommt dann wie in 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART beschrieben 
der MAX232 und die eigentliche Verbindung zum PC.

Für die Adressierung kann ich mir ja ein kleines Protokoll schreiben, so 
dass der Hub Daten zwischen zwei Anschlüssen korrekt hin/herleitet, also 
das Board 1 dem Hub sagen kann, dass die Daten nur zum PC oder nur zum 
Board 2 gesendet werden (eigentlich also eher ein Switch).

Meine Frage bezieht sich eigentlich eher auf die Verkabelung bzw die 
Logik: Sehe ich das richtig, dass ich die Microprozessorboards einfach 
mit RX/TX direkt an die einzelnen Ports des Atmega32 vom Hub anschließen 
kann und dort softwaremäßig die Weiterleitung verarbeiten kann (wenn das 
überhaupt geht) oder muss ich zwischen RX/TX eines Microprozessors und 
Ports eines anderen Prozessors bei UART Widerstände/Kondensatoren/... 
schalten?

Ich hoffe, ich konnte die Frage einigermaßen verständlich formulieren. 
Das soll kein reales Projekt werden (zumindest jetzt noch nicht), aber 
es interessiert mich einfach, ob meine Verkablungsmethode funktionieren 
würde oder ob ich es mir zu einfach vorstelle.

Danke schonmal.

von Gast2 (Gast)


Lesenswert?

Eigentlich gehoert da sowas wie ein MAX232 dazwischen.
ATMEGA: TTL-Pegel 0..5V
RS232: -15..+15V

Gast2

von Aha (Gast)


Lesenswert?

Weshalb ein Mega32 ? Der hat ja nur ein UART. Nimm einen Mega324, der 
hat schon 2, oder ein Mega2560, der hat 4 stueck.

von Kobaltchlorid (Gast)


Lesenswert?

> Sehe ich das richtig, dass ich die Microprozessorboards einfach
> mit RX/TX direkt an die einzelnen Ports des Atmega32 vom Hub anschließen
> kann

Hardwaretechnisch geht das, wenn die Portpins des ATMega32 bei den 
TXD-Leitungen als Eingang und bei den RXD-Leitungen als Ausgang 
konfiguriert sind.

Ich frage mich aber, warum du dir sowas antun willst und nicht gleich 
jedes Mikrocontrollerboard mit Ethernet ausrüstest. Dann hast du genau 
die Funktionalität, die du haben willst, praxisbewährt und ausgereift. 
Dann kann jedes Mikrocontrollerboard sowohl mit einem anderen Board als 
auch mit einem PC "reden":

Jedes Board bekommt über den XPort eine eigene IP-Adresse, der µC auf 
dem Board sieht seine gewohnte serielle Kommunikation auf dem UART, der 
PC bekommt seine Daten über die Netzwerkkarte und alle sind glücklich.

Für solche Zwecke gibt's z.B. den XPort, der auf der einen Seite mit dem 
UART des Mikrocontrollers verbunden wird und auf der anderen Seite einen 
netzwerkfähigen Ethernet-Anschluss bietet. Der XPort ist noch dazu 
winzigst, nicht viel größer als der RJ45-Stecker selber:

http://www.lantronix.com/device-networking/embedded-device-servers/xport.html

Als zusätzliche Hardware brauchst du bloss einen Standard-Switch und 
Standard Cat5-Verkabelung.

von Ralf (Gast)


Lesenswert?

So ein XPORT kostet aber auch ganz schön...
Wie wärs statt RS232 eher mit RS485? Musst halt dann das Protokoll 
implementieren, Richtungsumschaltung, Adressen, etc.

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.