Ich möchte die serielle Hardware-Schnittstelle meines Hauptmikrocontrollers gleichzeitig an mehrere Geräte anschließen. Mein Verständnis ist, dass UART auf meinen Mikrocontrollern auf einer Aktiv-Niedrig-5-V-TTL basiert.
(Ich weiß, was ich hier erkläre, kann technisch erreicht werden, indem geeignetere Protokolle wie SPI und I sup> C sup> C verwendet werden, aber mein Projekt muss only sein, das mit UART implementiert wird.)
Hier ist ein Pseudo-Schaltplan, der zeigt, was ich erreichen möchte:
simulieren diese Schaltung - Schema erstellt mit CircuitLab sup>
PBitte beachten Sie Folgendes:
-
I don't möchte eine zweite UART-Schnittstelle auf dem Master oder einem der Slaves verwenden.
-
Es wird jeweils nur one-Slave Daten auf der Leitung an den Master senden oder senden. (z. B. wenn der Slave 1 Daten überträgt, sollten Slave 2 und 3 inaktiv bleiben.)
-
Was auch immer the master sendet, kann und sollte von allen Slaves empfangen werden.
-
Alle Slaves sollten Hot-Plug-fähig sein, dh sie können jederzeit entfernt oder eingefügt werden.
-
Die RX- und TX-Kabel zum Master verlaufen parallel zwischen den Slaves, sodass keine Verkettung erfolgt.
ol>
-
Unter der Annahme, dass die richtige Impedanz berücksichtigt wird, sollte ich keine zusätzliche Schaltung benötigen, um Daten von der TX-Leitung des Masters gleichzeitig an eine der RX-Leitungen des Slaves zu übertragen. Ist das richtig?
-
Ich verstehe, dass ohne Strombegrenzungswiderstände zwischen der TX-Leitung der Slaves und der RX-Leitung des Masters die Leitung zwischen den Geräten kurzgeschlossen wird und ich die Gefahr habe, sie zu beschädigen. Ist das richtig?
-
Angenommen, die Punkte 1 und 2 sind korrekt:
a) Würden nur einige Strombegrenzungswiderstände ausreichen, um sie zu verwenden?
b) Kann ich anstelle von Widerständen Logikgatter der Serie 74 verwenden?
-
Welche Route soll ich zwischen den oben genannten Optionen a und b wählen?
-
Für eine zuverlässige 115200-Baudrate-Verbindung reicht die Schaltfrequenz eines
74HC08
AND-Gatters aus, um eingebaut zu werden?
ol>
Meine Fragen lauten also wie folgt:
EDIT: Mir sind andere gut geeignete Protokolle wie SPI und I sup> C sup> C bekannt. Es gibt einen Grund, warum ich UART verwende, und das liegt daran, dass der optiboot-Bootloader, der auf der mcu des Masters verwendet wird, über UART kommuniziert, obwohl die offensichtlichen Einschränkungen von UART.
Während das Verketten von Gänseblümchen definitiv ein kluger Ansatz ist, weil es die 4. Anforderung verletzt, bricht es auch die Bootloader-Funktionalität.
Die Geräte könnten auch USB-zu-Seriell-Chips sein, und die Verwendung von SPI-zu-USB oder I2C-zu-USB wäre in diesem Projekt nicht möglich.
Ich würde mich freuen, wenn Sie sich stattdessen auf die 6 hier aufgeführten Fragen konzentrieren und Ihr UART-Wissen teilen könnten.