Wie kann ich ca. alle 50 ms ca. 30 B an Daten drahtlos an ca. 10 Peripheriegeräte übermitteln?

Ich denke an ein System, bei dem etwa 10 Peripheriegeräte alle 50 Millisekunden 30-50 B Daten empfangen müssen (jedes Peripheriegerät erhält eindeutige Daten). Der erforderliche Gesamtdurchsatz ist möglicherweise nicht sehr groß (6-10 kB/s), aber das Problem liegt in der Anzahl der Geräte, die die Daten empfangen müssen.

Ich habe mich mit der Verwendung von BLE befasst, aber obwohl der Gesamtdurchsatz deutlich innerhalb der maximal möglichen ~ 35 kB / s liegt, ist das, was ich möchte, aufgrund der festen Grenze von 20 ms Verbindungsintervallen nicht möglich. Eine andere Lösung, die ich in Betracht gezogen habe, ist die Verwendung eines einfachen HF-Senders und HF-Empfängers, die alle gleichzeitig darauf hören. Ich müsste mich manuell um die Fehlerkorrektur usw. kümmern, aber ich müsste mich nicht um das Umschalten zwischen den Empfängern kümmern, was wertvolle Zeit kostet. Ein Problem dabei wäre auch die Unfähigkeit, zwei solcher Systeme nebeneinander einzusetzen, ohne das Risiko einzugehen, dass die Sender übereinander sprechen.

Welche anderen Lösungen stehen mir also zur Verfügung?

Wie würde ein Empfänger dem Sender mitteilen, dass er einen Datenfehler hat? Was würde dann passieren? Enthalten die Daten Nutzdaten und Adress- und Präambelbits?
Möglicherweise können Sie BLE als Beacon verwenden, es gibt keine Verbindung, bei der Sie einfach Daten für alle hörbar ausgeben. Ich bin mir über die Einzelheiten nicht sicher (daher Kommentar nicht beantworten), aber etwas, das ich untersuchen sollte
@Andyaka - würde es nicht. In diesem Fall würde das hin und wieder fehlende Datenelement dem System nicht schaden, solange der Empfänger weiß, dass die empfangenen Daten ungültig waren.
@Sanuuu In diesem Fall benötigen Sie kein Point-to-Point und können sich für eine Broadcast-Lösung entscheiden, die möglicherweise schneller und einfacher ist.

Antworten (3)

Ich vermute, dass die Verwendung von nRF24L01 + -Transceivern dies für Sie lösen würde. Theoretisch gut für 1 oder 2 Mbit/s, weniger Bestätigungen und etwas Paket-Overhead, und Sie sollten immer noch in der Lage sein, über 100 Kbit/s an Benutzerdaten ohne großen Aufwand aufrechtzuerhalten.

NRF24L01+ wäre definitiv in der Lage, ich wollte sie empfehlen.
Danke, ich denke, das würde gut funktionieren, besonders mit dem zusätzlichen Bonus relativ niedriger Kosten pro Einheit!

Sie können sich das Protokoll IEEE 802.15.4 ansehen . Es gibt viele Transceiver da draußen. Auf diese Weise könnten Sie alle Gerätedaten für alle Peripheriegeräte alle 50 ms in einem Paket übertragen (die Sendezeit für ein solches Paket beträgt <1 ms). Angenommen, Sie benötigen kein Mesh-Netzwerk, könnte dies für Sie gut funktionieren und die Latenz minimieren.

IEEE 802.15.4-Funkgeräte verwenden CDMA, sodass sie beim Senden im selben HF-Raum nicht aufeinander stampfen.

Ohne ein Mesh-Netzwerk würden Sie eine Sternkonfiguration mit dem „Master“ in der Mitte des Hubs betreiben und Ihre Peripheriegeräte als Punkte auf Ihrem Stern fungieren.

Viel Glück - klingt nach einem lustigen Projekt.

Holen Sie sich einen einfachen 433-MHz-Sender und ein paar Empfänger, senden Sie eine Datenpräambel, dann eine Adresse, dann die Daten und dann ein paar Byte CRC. Wenn Sie Daten an bestimmte Empfänger senden müssen, betten Sie Adresse und Daten in einen langen Stream ein, der mit CRCs durchsetzt ist, damit der richtige Empfänger weiß, wonach er sucht. Mit anderen Worten, entwickeln Sie ein einfaches Protokoll und kaufen Sie einige billige TX und RX und Sie sollten im Geschäft sein. 433 MHz sind in Ihrem Land möglicherweise nicht erlaubt, aber es wird eine Frequenz geben, die es ist.

Wie ich in meiner ursprünglichen Frage sagte, habe ich diese Lösung in Betracht gezogen und aufgrund von Übersprechen bei Verwendung von mehr als einem Sender für nicht geeignet befunden.
Sie können dies problemlos auf zwei Systeme erweitern, indem Sie entweder ein anderes Frequenzband verwenden oder die beiden Sender die Zeitnutzung des anderen respektieren.
Zeit - der Sender müsste ziemlich kontinuierlich mit der von mir benötigten Datenrate arbeiten, sodass eine Aufteilung der Zeitnutzung nicht möglich wäre. Außerdem würde ich lieber dieselbe Hardware in allen Systemen verwenden, die ich baue, sodass die manuelle Auswahl einer anderen Frequenz für die Wandler nicht funktionieren würde.
Entscheiden Sie sich für die doppelte Datenrate oder finden Sie Möglichkeiten, die Nutzdaten zu reduzieren. Abgesehen davon sind beide sowieso sinnvolle Dinge zu tun.