Gute Abend liebe Elektroniker, Ich habe hier ein fremdes System dass seine Daten mit anderen System über RS485 (9600BAUD, 1S, EVEN, 7bit) überträgt. Nun müssen 2 digitale Signale zusätzlich übertragen werden ohne weitere Leitugen zu ziehen. Meine Idee: Ich benutze zwei Arduino Due. Einer auf jeder Seite der Leitung. Der eine serielle Port wird für den Transfer des 9600Baud-Datenstromes genutzt. Dieser Datenstrom wird dann mit den beiden 2Bit-Signalen als zusätzliches character an den zweiten seriellen Port übergeben und zum anderen Arduino übertragen wo beide Signale wieder voneinander getrennt werden. Natürlich müsste der zweite Port mit einer höheren Baudrate betrieben werden damit keine Informationen verloren gehen. Hätte gerne Feedbacks zur Machmarkeit. In der Überlegung fuktioniert es wunderbar ;) LG Thomas
Wie sieht das Datenformat des fremden Gerätes aus? Nur ASCII oder Binärdaten? Gibt es Pausen? Im Prinzip machbar, Aufwand hängt von den gefragten Bedingungen ab. Gruss Chregu
Thomas F. schrieb: > Ich benutze zwei Arduino Due. Meinst du nicht, dass das etwas übertrieben ist? 9600 Bd sind doch auch mit Soft-UART auf einem ATmega328 hinzukriegen. Mit welche Datenrate (nicht Übertragungsgeschwindigkeit) kommen denn die Daten und wie groß sind ggf. irgendwelche Datenpakete?
Wolfgang schrieb: > Thomas F. schrieb: >> Ich benutze zwei Arduino Due. > > Meinst du nicht, dass das etwas übertrieben ist? Thomas F. schrieb: > Einer auf jeder Seite der Leitung. Aber hast schon recht, irgend ein kleiner Arduino tut es längst. Meinst Du die Anzahl oder die Art Arduino? Gruss Chregu
Christian M. schrieb: > Meinst Du die Anzahl oder die Art Arduino? Wenn die Daten am einen Ende gemultiplext auf die Leitung gehen sollen und am anderen Ende wieder auseinander gefädelt werden sollen, wird man schon zwei brauchen. Sonst könnte man die zusätzliche Leitung auch direkt ziehen ;-) Eine weiter Frage zu dem System wäre noch, ob die Daten per Simplex, Semiduplex oder Vollduplex über die Leitung gehen und wie häufig die beiden zusätzlichen Signale übertragen werden müssen.
Danke für das Interesse und den schnellen Antworten. Je Richtung gibt es 2 Adern. Also Vollduplex. Bezüglich Daten oder Pausen oder dem Protokoll selber liegen keine Informationen vor. Also das ganze muss als BlackBox angesehen werden. Den Arduino Due habe ich gewählt weil er mir beim Lieferanten sofort ins Auge fiel. Bezüglich den beiden Bits würde bereits eine Abtastrate von 1 Hz reichen. Das antriggern einer Übertragung könnte man beim ersten Port über den UART-Interrupt bewerkstelligen. Im nächsten Schritt werden die Daten dann einfach an den zweiten UART übergeben. Soweit sehe ich eigentlich keine Schwierigkeiten. Die Herausforderung sehe ich vielleicht eher darin, dass zeitgleich ein Interrupt vom ersten UART ausgelöst wird (empfangen) und Daten auf den ersten UART geschrieben werden sollen (senden).
Hallo, kannst Du Anforderung nochmals erklären. Würde die folgende Hardware dein Problem abdecken? Die Senderseite besteht aus 2 Terminalprogrammen. Von diesen gehen 2 Leitungen (TX) auf die seriellen Eingänge (RX, RX1) vom Arduino Due? Sollte das der Fall sein, könnte man den Empfänger im Interrupt laufen lassen. Da der DUE 3 Serielle hat und mit der Arduino-IDE zu programmieren ist, halte ich den DUE (aber auch den Mega) für eine gute Wahl. Grüsse
Hallo, kannst Du Anforderung nochmals erklären. Würde die folgende Hardware dein Problem abdecken? Die Senderseite besteht aus 2 Terminalprogrammen. Von diesen gehen 2 Leitungen (TX) auf die seriellen Eingänge (RX, RX1) vom Arduino Due? Sollte das der Fall sein, könnte man den Empfänger im Interrupt laufen lassen. Da der DUE 3 Serielle hat und mit der Arduino-IDE zu programmieren ist, halte ich den DUE (aber auch den Mega) für eine gute Wahl. Grüsse
max123 schrieb: > Da der DUE 3 Serielle hat und mit der Arduino-IDE > zu programmieren ist, halte ich den DUE (aber auch den Mega) für > eine gute Wahl. Ob das eine gute Wahl ist, hängt von den Kriterien für "gut" ab. Nach dem bisherigen Informationsstand kann man allenfalls sagen, dass man mit dem Due auf der sicheren Seite läge und das mit einem relativ großen HW-Aufwand erkauft.
Guten Abend/Morgen, ich denke ich werde eher dazu übergehen, die ankommenden Signale vom unbekannten System einem INT-Pin zuzuführen wo dann bei jedem Pegelwechsel die INT-Routine ausgelöst wird. Diese Routine soll dann den UART anweisen das entsprechende Bit mit den 2 zusätzlichen Bits zu senden. Da eventuelle Pausen des Protokolls somit besser "abgefangen werden können" ;) Dies ist denke ich die beste Lösung die auch mit einem einfachen µC funktionieren würde. LG Thomas F.
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.