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ß
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.
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.
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.
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.
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.
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
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 ...
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.
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.
Gerade vergessen: Bei CAN-Transceivern 120 Ohm Abschlusswiderstände einbauen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.