Liebe Gemeinde, ich plane zZ. ein Projekt mit einer relativ langen Leitung, bin aber neu im Thema Signalübertragung. Als Steuerung und für das UI soll ein Raspberry zum Einsatz kommen, der über eine Signalleitung an einigen entfernten Relais eine 12V Spannung schalten soll. An jedem Relais ist ein ATTiny85 (hier: Digispark), der ein Signal für an/aus und ggf. ein paar weitere Werte empfangen soll (ein Datenpaket mit 2-3 Byte). Als Zuleitung steht 3x1,5mm² zur Verfügung, davon sind 2 Adern für die 12V der per Relais zu schaltenden Geräte belegt (am Ort der ATTinys ist also 12V verfügbar). Über die Gesamtstrecke von 100m+ werden verschiedene Relais-ATtinys-Boxen verteilt. Die Übertragungsrate ist eher nebensächlich; wenn das Schaltsignal 'ne Sekunde Verzögerung hat wg. niedriger Datenrate wäre das kein Problem. Wenn der ATTiny dabei auch Werte von einem angeschlossenen Sensor senden könnte, wäre das schick. Der Digispark hat i2c - würde sich also aufdrängen. i2c kommt aber nach meiner Recherche auf keinen Fall mit der Leitungslänge klar. Kann 1-wire mit dieser Leitungslänge arbeiten? Ich finde immer nur Angaben, die auch eine Versorgungsspannung der jeweiligen Elektronik über die 1-wire-Ader vorsehen, was aber hier dank 12V "vor Ort" nicht nötig ist. Ich mache mir Gedanken, ob 3,3V für 1-wire auf 100m+ nicht zu wenig sind. Oder verwenden Raspberry/ATTiny da 5V? Da relativ viele der Relaisboxen zum Einsatz kommen, sollten die Kosten niedrig bleiben; all zu viele Zusatzbauteile würde ich gern vermeiden. Danke für jeden Tip im Vorraus!
Bei 100m kommst du um tranceiver nicht herum. Evtl lin oder Single wire can solange es keine größeren emv Probleme gibt. Einfacher wäre definitiv ein richtiges bus Kabel mit 2 verdrillten Leitungen. Darüber kann man dann mit den richtigen transceivern auch i2c nutzen (oder gleich can..)
Ich habe das vor langer Zeit mal gemacht, um das Bedienfeld einer Alarmanlage in ein benachbartes Gebäude zu duplizieren. Da standen nur zwei Drähte zur Verfügung. Da habe ich die Daten mit 300 Baud auf die 12V Stromversorgung aufmoduliert, mit einem Pegel von ungefähr 0,5 Volt. Da das Bedienfeld nur Tasten und ein unbeleuchtetes LCD hatte, also wenig Stromaufnahme, war das relativ simpel mit R/C Filtern und OP-Amps realisierbar.
Stefan ⛄ F. schrieb: > Da habe ich die Daten mit 300 Baud auf die 12V Stromversorgung > aufmoduliert, mit einem Pegel von ungefähr 0,5 Volt. Da hier noch eine Leitung frei ist, könnte man sich sogar den Luxus leisten, die Datenübertragung differentiell zu machen. D.h.: man führt die 12V über zwei Adern und speist die Modulation gegenphasig ein. Damit ist DC-mäßig bereits alles in Butter, weil sich die Wirkung der Modulation aufhebt. Und was das Signal betrifft, trifft es sich glücklich, dass die Tiny85 dazu passende differentielle analoge Eingänge besitzen. Mit diesem Ansatz sollten über 100m Datenraten bis um die 10kBaud sehr sicher mit recht geringem Aufwand an Hardware und Software machbar sein.
Hm, die Idee mit Signal aufmodulieren hatte ich auch am Anfang, aber da hätte ich nichtmal einen Hauch von Ansatz, wie das umzusetzen wäre. Ich hatte die ein oder andere Stunden mit der Websuche dazu verbracht, aber die Diskussionen dazu waren weit über meiner Gehaltsklasse... Hat jmd. einen Startpunkt, der auch für Nicht-Fernmeldetechniker geeignet wäre? Danke!
Hallo von TestX (Gast), was ist denn "lin" bzw. "single wire can"? Ist single wire was anders als 1-wire? Gruß, Norbert
Sehr gute Erfahrungen habe ich mit dem RS485 Sytem von ICPcon (blaue Kisten), aber die Nachbauten davon, die auch Reichel't mal hatte (Marke Expert, wimre), liefen nicht so stabil. Die Produktpalette umfaßt verschiedenste I/Os, Relais, Sensoreingänge usw. Auch MOXA war immer zuverlässig per Ethernet auf RS485 und hat in den Jahren seine Produktvielfalt ausgebaut. Damit könnte schon deine Eigenentwicklung entfallen. Die Preise sind zwar keine Schnapper, aber die Geräte dafür zuverlässig.
LIN ist eher für kurze Distanzen im KFZ mit Leitungslängen bis 40 m, wenn ich das recht sehe. https://de.m.wikipedia.org/wiki/Local_Interconnect_Network
Norbert schrieb: > Hm, die Idee mit Signal aufmodulieren hatte ich auch am Anfang, aber da > hätte ich nichtmal einen Hauch von Ansatz, wie das umzusetzen wäre. Dann lass es besser, die Theorie dahinter ist nämlich wirklich nicht auf Anfänger-Niveau und die Schaltung müsstest du dann ja auch noch entwickeln, weil man das nicht fertig kaufen kann. Ist zu speziell.
Norbert schrieb: > Als Zuleitung steht 3x1,5mm² zur Verfügung, davon sind 2 Adern für die > 12V der per Relais zu schaltenden Geräte belegt (am Ort der ATTinys ist > also 12V verfügbar). Irgendwie müssen die ja auch versorgt werden... Also hast du jetzt mit 12V und GND 2 der 3 Leitungen verbruacht und kannst auf der restlichen Ader noch das Steuersignal übertragen. Ich würde da drauf ein 12V Signal mit niedriger Baudrate modulieren und auf den Empfängern heftig filtern. Alles andere übersteigt dein Können und Wissen derzeit bei weitem (nein, das ist jetzt nicht böse gemeint, sondern nur realistisch, denn DU wirst hinterher Probleme haben, wenn die hocheffiziente Trickschaltung nicht funktioniert, und DU wirst im Zweifelsfall diese Probleme mit deinem Wissen beheben müssen). Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft musst du deine Relais umschalten? Norbert schrieb: > was ist denn "lin" bzw. "single wire can"? Was sagt denn Google? > Ist single wire was anders als 1-wire? Ja, der Eindraht-CAN ist was anders als der 1-Wire Bus von Dallas. Bezeichnenderweise gibt es aber sowieso keinen "Eindrahtbus", weil immer auch die Masse als Bezugspunkt mit im Spiel ist. Toni schrieb: > Sehr gute Erfahrungen habe ich mit dem RS485 Sytem Mag sein, geht mit 1 einzigen übrigen Ader halt nicht. Denn du darfst da nicht einfach eine der RS485/RS422 Leitungen auf GND oder 12V legen und zudem funktioniert eine differentielle Übertragung auch nur mit verdrilltem Kabel richtig gut, denn nur dann heben sich die eingekoppelten Störungen pro Verdrillung auf.
:
Bearbeitet durch Moderator
Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was.
Norbert schrieb: > 3,3V für 1-wire auf 100m+ Du brauchst bessere Signalabstände. Auf 100m fängst Du Dir alles mögliche ein und dazu sind die Ports nicht gedacht oder geeignet. LIN wäre doch okay. Du brauchts ausserden eine CRC, um Übertragungsfehler zu erkennen zu können und ein Half Duplex Zugriffsprotokoll, um Daten hin und herschieben zu können.
Damals™ hat mit 20...60mA Kilometer überbrückt, Stichwort: Stromschleife.
Lothar M. schrieb: > Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft > musst du deine Relais umschalten? Für die Relais sind ein/aus Signale nicht öfter als 1x pro 5 Minuten (so ganz grob) vorgesehen. Wäre aber natürlich schön, wenn das Relais innerhalb von ein, zwei Sekunden nach den Schalten am Raspberry auch reagiert. Es werden selten mehr als 3 Relais aktiv sein, daher wäre auch bei 20+ angeschlossenen Relais immer noch sehr wenige Signale zum ungefähr gleichen Zeitpunkt nötig. Bei einem hier großzügigen 4-Byte Datenpaket x 3 Empfänger/Relais "gleichzeitig" wäre das wohl selbst mit BTX-Datenrate noch zu schaffen. RS485 hatte ich auf dem Schirm, aber da müsste dann eben zusätzlich verkabelt werden, was die Kosten in die Höhe treibt, neben den RS485-Bausteinen natürlich. Gruß, Norbert
Stromschleife stimmt, ist bei M-Bus in der Datenübertragung mit 9k6, glaube ich, angwendet.
Norbert schrieb: > RS485 hatte ich auf dem Schirm, aber da müsste dann eben zusätzlich > verkabelt werden, was die Kosten in die Höhe treibt, neben den > RS485-Bausteinen natürlich. Die Idee war, eine der RS4xx Leitungen z.B. auf GND oder 12V zu legen und auf der anderen dazu differentiell das andere RX4xx Signal zu übertragen. Dazu müssen der RS4xx Sender und Empfänger natrülich potentialfrei ausgeführt werden. Norbert schrieb: > wenn das Relais innerhalb von ein, zwei Sekunden nach den Schalten am > Raspberry auch reagiert. > ... bei 20+ angeschlossenen Relais Eine Baudrate von 50 Bit/s reicht also eigentlich schon locker aus, damit könntest du pro Sekunde netto 5*8 Bit übertragen und wenn du es wie Midi machst und den Telegrammbeginn mit einem gesetzten MSB kennzeichnest, bleiben bei 50 Bit/s und einer Rektionszeit von 1s netto 35 Relais übrig. Norbert schrieb: > Kann 1-wire mit dieser Leitungslänge arbeiten? Du könntest die Idee (Pulsdauermodulation), die hinter 1-Wire steckt, für dein Protokoll verwenden. Allerdings musst du halt auch wesentlich niedrigere Baudraten fahren.
Lothar M. schrieb: > Die Idee war, eine der RS4xx Leitungen z.B. auf GND oder 12V zu legen Ich denke, das geht völlig am Sinn von RS4xx vorbei.
Sieh dir doch mal die Hardware für DALI an, ist für 300m auf 1,5mm² ausgelegt, kommt mit UART aus und ist günstig.
M. K. schrieb: > LIN wäre doch okay. Klingt in der Tat gut. Die genannten 40m max. scheinen für 19200 Baud zu gelten, ich würde also hoffen, dass bei geringerer Datenrate auch mehr Länge drin in. Da gehe mal nach Bibliotheken für den Attiny/Raspberry suchen. Grüße, Marobert
Lothar M. schrieb: > Ich > würde da drauf ein 12V Signal mit niedriger Baudrate modulieren und auf > den Empfängern heftig filtern. Alles andere übersteigt dein Können und > Wissen derzeit bei weitem Das ist wohl eine ziemlich realistische Einschätzung. > Wieviele Daten musst du denn pro Sekunde übertragen? Wie schnell und oft > musst du deine Relais umschalten? Genau das ist der springende Punkt. Wenn man mit ein paar Bit/s auskommt, hängt man sich nicht freiwillig all die Probleme ans Bein, die entstehen, wenn man halt mehr braucht... > zudem funktioniert eine differentielle Übertragung auch nur mit > verdrilltem Kabel richtig gut, denn nur dann heben sich die > eingekoppelten Störungen pro Verdrillung auf. Naja, das ist dann doch etwas sehr vereinfacht. Klar ist tatsächlich nur, dass eine enge paarweise Verdrillung die Sache einfacher (und auch relativ einfach berechenbar) macht. Das schließt allerdings nicht aus, dass differentielle Übertragung bei weniger idealen Medien nicht auch dramatische Vorteile gegenüber single-ended haben könnte. Bitte zu bedenken: Typische Kabel sind allesamt "verseilt". Das ist natürlich sehr viel lockerer als eng verdrillte Paare und es sind da noch ein (oder mehrere) weitere Leiter mit im Verbund. Aber das Grundprinzip der differentiellen Übertragung funktioniert auch hier. Nur halt weniger gut.
Deine Beschreibung liest sich ja so, dass nur der Raspi sendet, alle anderen Knoten am Bus "hören" nur. D.h. es gibt keinen Rückkanal. Das ist ein wichtiger Punkt bei dem du dir sicher sein musst. Solltest du einen Rückkanal brauchen (und sei es nur für das "Ack, habe verstanden") ist das eine ganz andere Spielwiese. Und dann müsstest du dir überlegen, ob ein Master-Slave-System reicht (d.h. der Raspi "fragt" jeweils einen einzelnen Knoten, der dann antwortet) oder ob du einen "richtigen" Bus brauchst, auf dem jeder Knoten etwas senden kann wenn er Bedarf hat. (Dann braucht man Verfahren, die den Buszugriff regeln und auch das Problem lösen, wenn zwei entfernte Knoten gleichzeitig anfangen zu senden) Aber nehmen wir den einfachsten Fall an, nur der raspi sendet. Ich würde es auch (wie oben schon von anderen vorgeschlagen) mit einem UART und den Signalpegeln GND und 12V probieren. Da brauchst du am wenigsten extra-Hardware. Tips, wenn es nicht so toll funktioniert: * Baudrate runter. 9600, 4800, 1200 oder noch weniger reicht für deine Aufgabenstellung * Serienterminierung. Auf der Senderseite ein Serienwiderstand von 75 Ohm in der Datenleitung kann helfen. (Die Idee ist, dass der mit dem Wellenwiderstand der Leitung einen 1:1 Spannungsteiler bildet. Wenn das gesendete Signal dann nach der Reflektion am offenen Ende der Leitung als Welle zurückkommt frisst dieser Widerstand sie auf und der Spannungspegel passt dann überall) * CRC oder zumindest das Parity-Bit als Checksumme wurden ja schon genannt. Du kannst Befehle auch 3x wiederholen und die Mehrheit bilden. * Wenn das alles immer noch nicht reicht (was ich allerdings nicht erwarte) kann man überlegen, ob man bei den Knoten unterwegs oder am Ende der Leitung noch mit einem Widerstand und Dioden gegen 12V und GND klemmt. Das würde dann Überschwinger auf der Leitung bremsen. Wie Lothar schon sagte: bei den Empfängern filtern. Schmitt-Trigger-Eingänge sind auch eine Option.
:
Bearbeitet durch User
Atmel hat mal eine Application Note gemacht, wo sie auf einer Leitung Halb-Duplex mit einem Software-UART machen, der einen Open-Collector-Ausgang mit Pullup-Widerstand ansteuert. http://ww1.microchip.com/downloads/en/AppNotes/AVR274.pdf Du hast den Luxus von Hardware-UARTs (UART im Raspi und das Universal Serial Interface im Tiny), es wird also einfacher. Für den Buszugriff musst du selber ein Master-Slave-Protokoll bauen, d.h. jeder Tiny sendet nur nachdem er vom Raspi gefragt wurde. Mit den Bitraten musst du im Vergleich zur Application Note deutlich runter (ich würde aber bei Vielfachen von 50Hz bleiben). Grund ist auch, dass sendende Knoten auch irgendwo in der Mitte vom Kabel sitzen können. Die schöne Serienterminierung, mit der Reflektion am gegenüberliegenden Ende, funktioniert dann natürlich nicht mehr. LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier nicht erste Wahl.
Die wichtigste Frage: a) Alle parallel? (also Bus) b) oder hat jeder Tiny seine eigene Kommunikationsleitung? c) Oder Daisy Chain? a) wie viele in etwa und wie lang in Summe? b) das wäre das einfachste c) dann spielt die Anzahl keine Rolle, sondern die Zeiten bei b oder c sind 100m mit 10k auch mit einer Leitung und bidirektional kein Problem, jedoch evt. das Timing.
> Deine Beschreibung liest sich ja so, dass nur der Raspi sendet, alle > anderen Knoten am Bus "hören" nur. Ja, das ist die primäre Anforderung. Wie es aber so ist, wenn erstmal was da ist, kommen Ideen und Anforderungen hinzu. Hier würde ich aber bei Polling durch den Raspberry-Master eine Grenze ziehen (Status des Relais oder einen ggf. am Attiny angehängten Sensor abfragen). Ein aktives Senden von Attiny kann ich in der Anwendung weg definieren. Daher scheint mir das genannte LIN gut zu passen. Danke für die Tips bzgl. der Verschaltung! Gruß, Norbert
Tilo R. schrieb: > LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier > nicht erste Wahl. Tilo, danke für den Link. Bzgl. LIN: sprichst Du da von Lizenzkosten, oder Hardwarekosten? Ich hatte everstanden, dass sich LIN als Protokoll in Software abbilden lässt. Gruß, Norbert
Können RPi und Tiny auch 9 Bit und Multiprozessor Mode? Damit ginge das über RS485 auch einfach und effizient. Für den AVR habe ich das gefunden: Beitrag "Multi-processor Communication Mode AVR" Edit: Ok, 3 Leitungen, ziehe meinen Vorschlag zurück. Die STM32 haben LIN Unterstützung in HW.
A. S. schrieb: > Die wichtigste Frage: > a) Alle parallel? (also Bus) > b) oder hat jeder Tiny seine eigene Kommunikationsleitung? > c) Oder Daisy Chain? Hallo A.S. Es gibt wie beschrieben 3 Adern, die sich alle teilen müsssen, also Bus. (Wenn ich je eine Adern pro Attiny/Relais hätte würde einfach die Relais direkt ab Rasberry anklemmen.) Die verfügbare freie 1,5mm² "Signalader" liegt vom Rasbperry bis zum letzten Attiny/Relais (ca. 100m), zusammen mit den 12V/GND-Adern. Alle anderen Relais sind irgendwo dazwischen. Wie viele Relais es wirklich werden wird die Praxis zeigen; ich plane vorsorglich mit 10-20. Das Timing darf gern im Bereich von manuellem Morsen sein ;-) Ich hänge mal eine Skizze an. Grüße, Norbert
Norbert schrieb: > Tilo R. schrieb: > >> LIN und CAN sind interressant zu lesen, aber aus Kostengründen hier >> nicht erste Wahl. > > Tilo, danke für den Link. > > Bzgl. LIN: sprichst Du da von Lizenzkosten, oder Hardwarekosten? Ich > hatte everstanden, dass sich LIN als Protokoll in Software abbilden > lässt. Von der Hardware ist LIN wie in der verlinkten Application Note nur ein Wired-OR, da ist kein Unterschied. Und Lizenzkosten wären mir egal. (Du programmierst irgendwas, schreibst nicht LIN drauf und es funktioniert halt so ähnlich.) Was ich meinte: LIN legt auch das gesprochene Protokoll fest (bin da zugegeben kein Experte). LIN hat vorgegebene Busbefehle, eine Checksumme und Knoten müssen ihr eigenes Signal kontrollieren. Das ist alles gut und schön und die Geräte sind dann auch kompatibel. Mit einem einfacheren, selbstausgedachten Protokoll bist du aber vermutlich schneller am Ziel. Zu CAN: CAN ist toll und nimmt einem viel Arbeit ab. Es ist Multimaster, regelt den Buszugriff, hat Fehlererkennung und Checksumme und alles in Hardware, ohne dass man sich drum kümmern muss. Das lohnt sich auf jeden Fall mal anzuschauen, welche Gedanken die sich gemacht haben und welche Fehler erkannt werden. Aber man braucht zwingend einen CAN-Controller, in Software geht das nicht. Und die ganzen Features nützen dir in deinem Master-Slave-Szenario nur begrenzt.
Norbert schrieb: > Alle anderen Relais sind irgendwo dazwischen. Dann ist das einfachste (robusteste) für unidirektional: ein Treiber 0/3.3V, 20mA, 110...150R in Reihe, hinten der gleiche Widerstand ans Ende gegen gnd und in jedem tiny ein Komparator bei ~0.7V. Einfacher Uart, mit 0V Ruhepegel (also invertiert) Und Rückkanal auf gleicher Leitung halt mit Serien-schottkydiode (0.3V) an jedem tiny-TX + 110R. Ja, eigentlich sollte dann die Schwelle am raspi tiefer liegen, da 1V max, aber da die Flanken unsymmetrisch sind, eher nicht.
Wenn man den Kosten- und Bastelfaktor außen vor läßt, dann wäre das Ganze doch eine schöne Aufgabe für ein bekanntes/funktionierendes Bus-System, wie z.B. KNX oder LCN oder auch Loxone Tree o.ä.
3x 1,5 qmm reicht auch so gerade eben um einen ESP mit Strom zu versorgen, Daten dann per WLAN. Warum wurde diese Lösung hier im ESP Forum noch nicht genannt :)
Mit ner halbwegs guten Antenne (Ikea Klobürstenhalter aus Edelstahl) schafft man auch 1000m. Gut, sollte Sichtverbindung haben. War aber nicht ganz Ernst gemeint.
Johannes S. schrieb: > Mit ner halbwegs guten Antenne (Ikea Klobürstenhalter aus Edelstahl) > schafft man auch 1000m. Du hast jetzt die Gelegenheit, es zu beweisen.
Tilo R. schrieb: > und schön und die Geräte sind dann auch kompatibel. Mit einem > einfacheren, selbstausgedachten Protokoll bist du aber vermutlich > schneller am Ziel. Hallo Tilo, ah, ok. Ja, eigenes Protokoll ist nachvollziehrbar und natürlich überlegenswert; eine Aufwandasabwägung natürlich. Ich war über den Hinweis auf Kosten gestolpert. Grüße, Norbert
Stefan ⛄ F. schrieb: > Du hast jetzt die Gelegenheit, es zu beweisen. Das hier habe ich mit einem Kumpel mal nachgebaut, er hat damit rund 800 m überbrücken können. Ist schon etwas her, mittlerweile hat das Dorf auch Glasfaser. https://www.heise.de/ct/artikel/WLAN-Richtfunk-mit-Hausmitteln-221433.html?seite=all
Johannes S. schrieb: > 3x 1,5 qmm reicht auch so gerade eben um einen ESP mit Strom zu > versorgen, Daten dann per WLAN. Warum wurde diese Lösung hier im ESP > Forum noch nicht genannt :) Hallo Johannes, Funk ist keine Option. Aussenbereich, Master im Innenbereich, lange Wege, keine Sichtverbindung. WLAN, Bluetooth, LoRa, 433 Mhz etc. hatte ich zuerst eruiert & verworfen. Grüße, Norbert
Stefan ⛄ F. schrieb: > Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den > MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste > Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was. Eine Halbierung der Datenrate bringt in der Regel die doppelte Reichweite. 38400 Baud = 25 m 19200 Baud = 50 m 9600 Baud = 100 m 4800 Baud = 200 m mfg klaus
Klaus R. schrieb: > Stefan ⛄ F. schrieb: >> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den >> MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste >> Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was. > > Eine Halbierung der Datenrate bringt in der Regel die doppelte > Reichweite. > > 38400 Baud = 25 m > 19200 Baud = 50 m > 9600 Baud = 100 m > 4800 Baud = 200 m > mfg klaus Alles andere als RS232 wäre wahrscheinlich komplett oversized. Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und in der Regel unkaputtbar. Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance haben.
Nils S. schrieb: > Klaus R. schrieb: >> Stefan ⛄ F. schrieb: >>> Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den >>> MAX3232. 100 Meter habe ich damit aber noch nicht gemacht. Meine längste >>> Leitung war 25 Meter mit 38400 Baud. Da geht bestimmt noch was. >> >> Eine Halbierung der Datenrate bringt in der Regel die doppelte >> Reichweite. >> >> 38400 Baud = 25 m >> 19200 Baud = 50 m >> 9600 Baud = 100 m >> 4800 Baud = 200 m >> mfg klaus > > Alles andere als RS232 wäre wahrscheinlich komplett oversized. > Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und > in der Regel unkaputtbar. > Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance > haben. Echter V24/RS232 hat so geringe Eingangswiderstände und Ausgangsimpedanzen das Signale über lange Leitungen am Empfänger nicht mehr im zulässigen Spannungspegel sind. Darum wurden für solche Anforderungen Stromschleifen mit dem selben Protokoll verwendet, die lösen auch ausreichend Robust das Problem der unterschiedlichen GND-Pegel, vor allem wenn nebenan ein gröberes Stromgewitter, sei das durch eine Halle mit Neonröhren, ein brizzelnder Schalter oder ein Blitz in der mittelbaren Umgebung verusacht. es hat schon einen Grund warum bei EMV-Messungen Leitungslängen über 30m deutlich heftiger getestet werden als Leitungen, die kürzer als 30m sind. Als Protokoll bietet sich MIDI an, das Rad muß nicht neu erfunden werden, damit wäre das "alle höhren zu und einer sendet" schon einmal relativ elegant erledigt, der TE braucht es ja nicht mit 31,5kbaud fahren... eine Ringleitung genügt, damit wäre auch ein Rückkanal möglich.
Nils S. schrieb: > Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und > in der Regel unkaputtbar. Auch das ist mittlerweile leider den Bach runter gegangen... Suche mal nach "Fake Max232"
Arduino Fanboy D. schrieb: > Nils S. schrieb: >> Die für wenige Cent kaufbaren RS232 Transceiver sind auch ESD-fest und >> in der Regel unkaputtbar. > Auch das ist mittlerweile leider den Bach runter gegangen... > Suche mal nach "Fake Max232" Wer sich ICs beim Chinamann bestellt hat selber Schuld. Kein Mitleid ! you get what you pay for
LIN Bus hört sich doch wirklich brauchbar an, Transceiver bekommt man bei Reichelt oder Distris. Nur die Auswahl ist erschlagend groß. Und wie schon vorgeschlagen, mit Master Slave Ping Pong muss man ja nicht irgendwelche komplexen Standards implementieren. Oder gibts günstige Komponenten aus dem KFZ die man verbinden könnte?
Nils S. schrieb: > Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance > haben. RS232 erfordert, dass beide Kommunikationspartner das gleiche GND Potential haben. RS422 und RS485 erlauben hingegen einige Volt differenz.
Stefan ⛄ F. schrieb: > Nils S. schrieb: >> Echter RS232 hat einen so hohen Signalpegel das Störungen keine Chance >> haben. > > RS232 erfordert, dass beide Kommunikationspartner das gleiche GND > Potential haben. RS422 und RS485 erlauben hingegen einige Volt > differenz. Er hat aber nur eine Signalleitung.
Stefan ⛄ F. schrieb: > Für einen Draht würde ich RS232 Treiber nutzen, zum Beispiel den > MAX3232. Wenn die Laufzeit des Signals in die Größenordnung der Baudrate kommt, wird die Annäherung des Eingangswiderstands an den Wellenwiderstand wichtig. 200m wären etwa 1µs. Mit 5k Eingangswiderstand und 110 Wellenwidertand läuft Dir das Signal quasi wie eine E-Funktion mit 40 Stufen = 40µs (kannst Du am Oszi einfach nachstellen, aber nimm richtige Widerstände). Darum ist es sinnvoller, mit 3V und 2*110...160R zu arbeiten. Ist auch einfacher, wenn Ports/Treiber direkt 20mA können (Dann halt 165R nehmen für Kurzschluss-Fehler). Damit kommst Du ein vielfaches weiter. Probleme machen die kleinen Spannungen, wenn der GND nicht stabil ist und sich z.B. um 0.5V durch die parallel betriebene Last anheben kann. Dann ist es besser, z.B. mit 12V-Signalen zu arbeiten, mit z.B. 1k beim Sender (Und klar, je hochohmiger der Sender, je störanfälliger) Beim Empfänger ist es optimal, wenn der Pegel etwa 1.5V beträgt. Dann reicht ein Transistor, 2 Dioden (eine gegen negative Spannungen, eine von Basis zum Kollektor gegen Sättigung) und 3 Widerstände (110 Eingangswiderstand, ~1k Basis, ~10k Kollektor) statt Komparator. Mit sowas kannst Du einen Uart über 100m bei 100k betreiben. Die RS232 ist nicht für Reichweiten sondern für Kompatibilität und Einfachheit. Egal was der Sender liefert (+5/-5, +15/-15, +5/0, +15/0, mit 1mA oder 100mA, mit guten Kabeln oder schlechten, mit Potentialanhebungen zwischen den Geräten ...) der Empfang klappt trotzdem meist für alle direkten Verbindungen.
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.