Empfehlungen für Zweidrahtbusse mittlerer Reichweite?

Haben Sie Empfehlungen für einen Zweidrahtbus mit mittlerer Reichweite (~ 10 Meter)? Meine Versorgungsspannung beträgt 24 V und ich habe einen einzelnen Master mit ~ 50 daran angeschlossenen Slaves. Ich habe nachgesehen:

  • I2C - Großartig, aber wird nicht so lange reichen (Kapazitätsgrenze, Buspuffer könnten jedoch eine Option sein)
  • SPI - Nicht zweiadrig, aber ähnlich wie I2C
  • CAN - Eine Option, aber dies ist eher ein Multi-Master-Bus und benötigt wahrscheinlich einen Abschlusswiderstand
  • RS485 - Scheint bisher die beste Wahl zu sein, könnte einen UART-RS485-Transceiver verwenden, benötigt aber immer noch einen Abschlusswiderstand wie CAN

Topologie

Welche Arten von Störern von außen müssen Sie tolerieren? Wenn die Störer Bitfehler verursachen, wird Ihr System diese erkennen und eine zweite Übertragung anfordern? Und haben Ihre Erdungen das gleiche Potenzial (alles, was mehrere Steckdosen in einem Haus verwendet, muss mit EINIGEN Erdungsspannungsunterschieden rechnen)? Welche Datenraten? Ein 100-Ohm-Bus (viele Twisted-Pairs haben etwa 100 Ohm, mit 10.000 pF (10 nF, 0,01 uF) pro Meter, um die Amplitude der durch elektrische Felder injizierten Spitzen zu reduzieren, hat eine Zeitkonstante von 10 Mikrosekunden, was problemlos 1.000 Bits pro Sekunde ermöglicht. Und verwenden Sie Schmidtt Trigger-Empfänger.
Ich weiß noch nicht, wie ich mit Interferenzen umgehen soll, aber dies sind unkritische Daten und werden oft genug aktualisiert, um in diesem Stadium keine Rolle zu spielen. Meine Gründe sind alle auf dem gleichen Potential, da sie alle von der gleichen Stromversorgung gespeist werden. Ich habe meine Frage bearbeitet, um meine Topologie zu zeigen und meine geplante Schaltung weiter zu veranschaulichen. Jeder Slave im Grunde eine einzelne Platine. Sie werden wahrscheinlich mit Leiterplatten-Randsteckverbindern verbunden, aber ich mache mir etwas Sorgen um den Kontaktwiderstand in diesen.
Es sieht für mich nicht nach einer Zweidrahtbusanwendung aus. Hast du vor etwa einer Woche eine ähnliche Frage gestellt ?
Interessant, das war nicht ich, aber ich suche nach etwas Ähnlichem. Ich habe diese Frage bei meiner Suche jedoch nicht gefunden. Mein Ziel ist es jedoch, ein vollständig modulares LED-Panel-System zu entwerfen, keinen Festo-Würfel. Vielleicht kann dies mit I2C-Multiplexing erreicht werden, aber ich weiß nicht, wie gut das funktionieren würde, wenn man bedenkt, dass ich es vollständig modular entwerfe.
Die Art und Weise, wie Sie die Verkabelung gezeichnet haben, funktioniert nicht für CAN oder RS485. Sie müssen in Reihe geschaltet werden, nicht wiederholt auffächern.
Genau da hänge ich gerade fest. Daisy-Chaining ist auch keine Option, da jeder Slave an jeder Position neu angeordnet werden können sollte.

Antworten (2)

50 Slaves klingt sehr danach, als ob Sie ein richtiges Netzwerk mit flexibler Architektur anstelle eines gemeinsam genutzten Busses wünschen, und sei es nur, um Probleme zu isolieren. Ihre ziemlich komplexe Grafik zeigt, wie wenig ein Daisy-Chain-Bus für Sie funktionieren würde.

Als solches ist Ethernet ziemlich beliebt und ausgereift. Mit IP und TCP obendrein gibt es sogar bewährte Software-Stacks, die Sie für fast alle Mikrocontroller finden können, die mit Ethernet-Schnittstellen ausgestattet sind.

Diese sind sicherlich allgegenwärtig und nicht zu teuer. Beispielsweise wird die SAME53-Familie mit einem 10/100-Mb-Ethernet-MAC geliefert. Fügen Sie einfach eine RMII-PHY ( z. B. 86 ct ) hinzu, und fertig: Sie erhalten eine vollständige Vernetzung mit Kollisionserkennung, Checksum-Offloading und so weiter. Da das Ding ein beliebter ARM ist, können Sie wahrscheinlich wählen, wann (wenn IP nicht in allen Fällen erforderlich ist) ein Netzwerkstapel ausgewählt wird.

Also: Verwenden Sie beim Aufbau eines Netzwerks, wie Sie es offensichtlich tun, ein Netzwerk, keinen Bus.

Am besten wäre wohl eine RS485-Verbindung vom Master zu allen parallel geschalteten Slaves. Zwei Drähte für Halbduplex, vier Drähte für Vollduplex.

Diese Anwendung geht detailliert auf die Verkabelung ein. Benötigen Sie einen Abschlusswiderstand an jedem Ende der Kette (Master und letzter Slave).

https://www.maximintegrated.com/en/app-notes/index.mvp/id/723

Da ich dies vollständig modular entwerfe und keine Watt in Widerständen verbrennen möchte, wo ich es nicht unbedingt brauche, sehe ich dies nicht wirklich als praktikable Option.
Machen Sie eines der Module zum Abschlusswiderstand, der am Ende der Kette steht.
Aber jedes dieser Module sollte in der Lage sein, an jeder beliebigen Position in einem 2D-Feld neu positioniert zu werden, solange es noch horizontal oder vertikal mit einem anderen Slave oder dem Master verbunden ist.
Wenn Sie den Bus nicht als langen parallelen Kabelsatz mit hier und da angeschlossenen Slaves mit kurzen Stichleitungen und einem Abschlusskabel am Ende des parallelen Kabelsatzes anordnen, dann vermute ich, dass Sie Probleme mit der Signalverschlechterung haben werden mit.