Forum: Mikrocontroller und Digitale Elektronik Übertragung von Daten über 10m mit 230k Baud


von Marco G. (grmg2010)


Lesenswert?

Moin,

ich möchte gerne Daten zwischen zwei ATMEGA übertragen. Die Strecke 
beträgt ca. 10m. Diese sollte mit einer Geschwindigkeit von 230400Baud 
stattfinden. Meine Frage ist es, welches System oder Bussystem sich am 
besten für diese Aufgabe eignet. (Kabelgebunden, allerdings mit so wenig 
Adern wie möglich)

Gruß

von Peter S. (Gast)


Lesenswert?

Seriell über RS485.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Peter S. schrieb:
> Seriell über RS485.

Bei Punkt-zu-Punkt-Verbindung ist wohl RS422 sinnvoller. Dann hat man 
auch Voll-Duplex-Betrieb. Ist ja nichts anderes als 2 x RS485, wo man 
keine Richtungsumschaltung braucht.

Adern: 2 + 2 + GND = 5

Wenn man die Kommunikation nur in einer Richtung braucht, dann fallen 
halt 2 Adern weg. Leider ist die Beschreibung des TOs etwas nebulös.

von H.Joachim S. (crazyhorse)


Lesenswert?

230kB/10m sollte auch noch mit RS232 möglich sein. Es gibt recht 
schnelle Transceiver, mal durchwurschteln. Kabel ist dann aber auch 
schon nicht mehr ganz egal.
Ansonsten: einfach und billig: RS422, also mit 4 Leitungen + Masse. 
Spart die Umschalterei und ermöglicht Vollduplex. Praktisch ist das dann 
für dich als wären die beiden direkt nebeneinander mit gekreuzten Rx/Tx.

von Marco G. (grmg2010)


Lesenswert?

An RS422/RS485 hatte ich auch gedacht. Ich versuche noch einmal die 
Situation zu beschreiben.

Das System würde aus drei bis fünf Teilnehmern bestehen. Nur ein Master, 
aber bis zu vier Slaves. Diese sollen auch auf Anfrage antworten können. 
Die weiteste Entfernung wäre ca 10m, die Geschwindigkeit sollte um die 
230400Baud betragen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Marco G. schrieb:
> ich möchte gerne Daten zwischen zwei ATMEGA übertragen.

Marco G. schrieb:
> Das System würde aus drei bis fünf Teilnehmern bestehen. Nur ein Master,
> aber bis zu vier Slaves.

Beide Beiträge widersprechen sich. Wenn es mehr als 2 Teilnehmer gibt, 
dann RS485 oder CAN.

> Diese sollen auch auf Anfrage antworten können.

Kein Problem, der Master spricht sie einzeln über eine Adresse an und 
der Slave antwortet.

Beispiel für RS485:
1
$01T<CR><LF>              Master fragt Slave mit Adr. 01 nach Temperatur
2
!01T23<CR>>LF>            Slave antwortet: Temperatur ist 23 Grad

> Die weiteste Entfernung wäre ca 10m, die Geschwindigkeit sollte um die
> 230400Baud betragen.

Sollte mit Twisted-Pair kein Problem sein.

von Marco G. (grmg2010)


Lesenswert?

Frank M. schrieb:
> Marco G. schrieb:
>> ich möchte gerne Daten zwischen zwei ATMEGA übertragen.
>
> Marco G. schrieb:
>> Das System würde aus drei bis fünf Teilnehmern bestehen. Nur ein Master,
>> aber bis zu vier Slaves.
>
> Beide Beiträge widersprechen sich. Wenn es mehr als 2 Teilnehmer gibt,
> dann RS485 oder CAN.

Stimmt, erst war die Idee nur zwei Teilnehmer zu haben, aleerdings ist 
es möglich das  noch weitere Teilnehmer hinzukommen. daher die 
erweiterung der Anforderung.

Wäre es auch möglich, nur die Tranceiver für CAN zu nutzen, oder muss 
das komplette Protokoll implementiert werden, damit es einwandfrei 
funktioniert. Die Anforderung bleibt wie beschrieben kein 
Multimastersystem.

von georg (Gast)


Lesenswert?

Marco G. schrieb:
> ich möchte gerne Daten zwischen zwei ATMEGA übertragen

Marco G. schrieb:
> Das System würde aus drei bis fünf Teilnehmern bestehen

Am besten warten wir erst mal ab, welche Anforderungen sich im Lauf der 
Zeit noch so ergeben. Vielleicht werden es dann noch 100 m und/oder 1 
MBaud.

Georg

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Vlt. sollten wir erstmal klären, welche Geschwindigkeit nun tatsächlich 
gewünscht ist.

230 kBit?
230 kByte?
230 kBaud?

Baud sind Symbole bzw. "Informationseinheiten", können quasi beliebig 
viele Bit bzw. Byte enthalten ...

von Marco G. (grmg2010)


Lesenswert?

georg schrieb:
> Am besten warten wir erst mal ab, welche Anforderungen sich im Lauf der
> Zeit noch so ergeben. Vielleicht werden es dann noch 100 m und/oder 1
> MBaud.

Vielleicht sind es am Ende doch 11m zum Entferntesten Slave, oder auch 
nur 9m. Da wird die Lösung für 10m aber auch funktionieren. Die 
Übertragungsrate von 230kBaud ist das Maximum welches angepeilt ist, 
möglicherweise auch weniger. Aber auch in diesem Fall sollte eine Lösung 
mit höheren Spezifikationen funktionieren.

von Wolfgang R. (wolfgang_r)


Lesenswert?

Marco G. schrieb:

> Wäre es auch möglich, nur die Tranceiver für CAN zu nutzen, oder muss
> das komplette Protokoll implementiert werden, damit es einwandfrei
> funktioniert. Die Anforderung bleibt wie beschrieben kein
> Multimastersystem.

CAN-Transceiver kannst du ohne Protokoll nutzen. Gibt es für 5V und für 
3,3V. Diese CAN-Transceiver machen aus deinen Bits ein differentielles 
Signal. Je nach Kabelqualität (unshielded), Länge und Geschwindigkeit 
solltest du ev. einen Slope-Widerstand verwenden.

Ich nutze CAN-Tansceiver um I2C Kommunikation über längere Strecken zu 
übertragen. 400 kBit/s bei 100 m mit recht primitiven Kabeln gehen ohne 
Probleme.

von Wolfgang R. (wolfgang_r)


Lesenswert?

Gerade vergessen: Bei CAN-Transceivern 120 Ohm Abschlusswiderstände 
einbauen.

von Jan H. (j_hansen)


Lesenswert?

Marco G. schrieb:
> (Kabelgebunden, allerdings mit so wenig Adern wie möglich)

Aus dieser Aussage ergibt sich das Optimum als eine Ader. Ich schlage 
LWL vor.

von A. S. (Gast)


Lesenswert?

Bei 10m reicht als Transmitter ein Inverter, z.B. Hc14.

1k in Reihe, auf der Eingangsseite 120R nach GND Und und Komparator auf 
0,2V.

Oder.10k, bzw. Terminierung mit C, dann reicht der HC14 auch als 
Eingang.

Beim master die TXe und RXe parallel aufbauen.

RXe dann entweder verodern oder einen digitalen multiplexer dazwischen 
(ggf.auch beim TX)

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.