Forum: Mikrocontroller und Digitale Elektronik UART multiplexer 2:1


von Nicolai N. (nicolai)


Lesenswert?

Hey Leute,

hat jemand schon mal einen UART Mux gebaut?
Ich brauche einen der 2 Uart 8N1 19200Baut auf einen 19200Baut 8N1 
schaltet.
Die streams sind nicht kontinuierlich, sondern senden nur ab und zu 
Informationen.
Mit nem uC könnte man das eigendlich ganz gut machen, nur wenn die 
beiden uarts mal genau gleichzeitig senden geht halt was verloren. Im 
ungünstigstem Fall, also wenn beide immer im gleichen Zeitabschnitt 
senden kommt nur müll an oder nur einer kommt durch.....

Hat jemand damit Erfahrung oder hat nen Tipp für mich?

Grüße

Nicolai

von Max H. (hartl192)


Lesenswert?

Nicolai N. schrieb:
> Hat jemand damit Erfahrung oder hat nen Tipp für mich?
Nimm einen µC mit 2 UARTs. Mit nur einem UART bist du aufgeschmissen, 
wenn Beide gleichzeitig senden.

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Moin,
habe sowas schonmal als 3:1 gebaut. Habe dafür einen AVR mit 4 uarts 
genommen. Die empfangenen Daten von den drei Ports wurden gepuffert, bis 
das Ende Zeichen des Protokolls empfangen wurde und erst dann 
weitergeleitet. Wenn die drei nicht kontinuierlich senden sollten auch 
keine Daten verloren gehen. Die Daten von dem einzelnen Port habe ich 
direkt weitergeleitet.

Gruß
Michael

von Nicolai N. (nicolai)


Lesenswert?

Super,
das klingt doch sehr vielversprechend!
Ich danke sehr.
Dann werd ich das mal implementieren.

Grüße

Nicolai

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Nicolai N. schrieb:
> hat jemand schon mal einen UART Mux gebaut?
Was stellst du dir genau darunter vor?

> Ich brauche einen der 2 Uart 8N1 19200Baut auf einen 19200Baut 8N1
> schaltet.
Wenn die eine UART als Master arbeitet und die anderen als Slave, dann 
kann man diese mit einem BUS so verbinden, dass viele Slaves am Master 
funktionieren, ohne dass es Datenkonflikte gibt. Der Master muß dann 
aber die Kommunikation steuern.

> Die streams sind nicht kontinuierlich, sondern senden nur ab und zu
> Informationen.
Und tun die das selbststandig? Kannst du das beinflussen
Man kann Datenkonflikte unterbinden, wenn die Daten nicht autonom 
gesendet werden, sondern vom Master gezielt abgefragt werden.

> Mit nem uC könnte man das eigendlich ganz gut machen, nur wenn die
> beiden uarts mal genau gleichzeitig senden geht halt was verloren.
Gibt auch uC mit mehr als eine UART

> Im ungünstigstem Fall, also wenn beide immer im gleichen Zeitabschnitt
> senden kommt nur müll an oder nur einer kommt durch.....
Ja, das ist so.

Bessere Antworten kann man nicht geben, weil die Fragestellung 
weitgehend ungenau und nebulör ist.
Gruß Öletronika

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Schau Dir mal die XMegas an, die sind dafür gut geeignet. Viele UARTs 
mit Eventsystem und DMA, da braucht die CPU kaum noch was zu machen, da 
die Hardware die Daten quasi von alleine durchreicht, wenn sie einmal 
konfiguriert ist.

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Nicolai N. schrieb:
> Ich brauche einen der 2 Uart 8N1 19200Baut auf einen 19200Baut 8N1
> schaltet.

Und dann? Auf einen PC, auf einen µController? Da ist es einfacher, 2 
Uarts zu verwenden als sich einen Multiplexer zusammenzustoppeln - der 
muss zwischenspeichern, um Konflikte aufzulösen, geht also nicht mir ein 
paar Gattern, und fertig gibt es sowas auch nicht. PCs oder Controller 
mit 2 seriellen Schnittstellen aber sehr wohl.

Georg

von Amateur (Gast)


Lesenswert?

Bei einer Einbahnstraße dürfte es keine Probleme geben.
Also Du redest mal mit dem einen Empfänger und mal mit dem Anderen.

Findet eine Art von Frage- und Antwortspiel statt, so könnte es sein 
dass das Ganze auch noch funktioniert.
Also:
[Umschalten]
(Empfänger_1 sach mal was)
{definierbare Antwort}

[Umschalten]
(Empfänger_2 sach mal was)
{definierbare Antwort}

[Umschalten]
Usw.

Werden die Empfänger aber von sich aus aktiv ist Feierabend.

von Joachim B. (jar)


Lesenswert?

Nicolai N. schrieb:
> Mit nem uC könnte man das eigendlich ganz gut machen, nur wenn die
> beiden uarts mal genau gleichzeitig senden geht halt was verloren. Im
> ungünstigstem Fall, also wenn beide immer im gleichen Zeitabschnitt
> senden kommt nur müll an oder nur einer kommt durch.....
>
> Hat jemand damit Erfahrung oder hat nen Tipp für mich?

dann schalte doch nur Rx und Tx um mit analog Multiplexer und mit CTS 2* 
auf 2 Ports erlaubst du 1 oder 2 und den anderen nicht.

Wenn die Sender vernünftig arbeiten sollte das doch klappen.

es gibt ja auch noch

DCD
DSR
DTR
RTS
http://www.wut.de/kpics/e-8wwww-17-grus-000.gif

Xon
Xoff

: Bearbeitet durch User
von Amateur (Gast)


Lesenswert?

Wie schlimm eine Kollision ist, kannst nur Du beantworten!

Auf jeden Fall wird das letzte Byte (CH1) gestört und das erste (CH2) 
ist Mist.

Besteht das Protokoll auch noch aus mehreren Bytes, so ist das letzte 
Protokoll (CH1) zerstört und das nächste (CH2) ebenfalls.

Was der Empfänger macht, wenn die letzte Antwort unvollständig ist und 
die Nächste zerstört...

Es ist also nicht nur ein Übertragungsproblem, sondern auch noch die 
Frage wie die Software mit fehlerhaftem und unvollständigem Input 
umgeht.

von Joachim B. (jar)


Lesenswert?

Amateur schrieb:
> Wie schlimm eine Kollision ist, kannst nur Du beantworten!

eine Kollision muss doch nicht sein, wenn der UART auf 1 steht sieht 2 
nicht grün, wenn das ignoriert wird ist der Sender Schuld.

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.