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.
Eigentlich gehoert da sowas wie ein MAX232 dazwischen. ATMEGA: TTL-Pegel 0..5V RS232: -15..+15V Gast2
Weshalb ein Mega32 ? Der hat ja nur ein UART. Nimm einen Mega324, der hat schon 2, oder ein Mega2560, der hat 4 stueck.
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.