Forum: Haus & Smart Home RS485 mit 4 abschaltbaren Kanälen


von Gerhard M. (xdream)


Angehängte Dateien:

Lesenswert?

Hi,

ich hätte gerne eine qualifizierte Meinung von jemanden der sich gut mit 
UART speziell mit dem RS485 Bus auskennt.
Geplant ist ein Master, der 4 Kanäle separat ansteuern kann. An den 
einzelnen Kanälen müssen Slaves u.a. im hot-plugging Modus erkannt 
werden (entweder durch pollen oder mit zusätzlichen Leitungen).
Ist das nach Spec. erlaubt bzw. funktioniert so etwas prinzipiell?
Den Schaltplan findet ihr im Anhang. Danke für Eure Hilfe!!

Grüße Gerhard

von Sender (Gast)


Lesenswert?

Hallo Gerhard,

sowas funktioniert prinzipiell, ja.
Die Aufteilung in 4 Kanäle kannst Du so machen.

Das Hotplug kannst Du am einfachsten mit einer regelmäßigen Abfrage des 
Busses machen, kommt halt auf Deine Slaves an und wo Deine Schaltung 
eingesetzt wird.


Gruß

von Frank K. (fchk)


Lesenswert?

Ich würde /RE permanent aktiv lassen. So kannst Du die eigenen Pakete 
mithören und weißt, ob ein Telegramm durch einen Hotplug-Vorgang kaputt 
gegangen ist.

fchk

von bastler (Gast)


Lesenswert?

Frank K. schrieb:
> Ich würde /RE permanent aktiv lassen. So kannst Du die eigenen Pakete
> mithören und weißt, ob ein Telegramm durch einen Hotplug-Vorgang kaputt
> gegangen ist.
>
> fchk

Das Problem dabei ist, dass dann alle RX Pins gegeneinander arbeiten 
müssen.

von Christian B. (luckyfu)


Lesenswert?

musst du sie ver-odern

von Route_66 H. (route_66)


Lesenswert?

Hallo!
> musst du sie ver-odern
Das funktioniert nur so lange, bis ein Slave ständigen Start-Pegel auf 
die Leitung klemmt (z.B. durch Fehlfunktion). Bei unklaren Situationen, 
wie sie durch Hot-Plug entstehen, kann sowas tödlich sein. Entweder ist 
man sich dessen bewußt, oder muß explizit separat umschalten.

von Zac Hobson (Gast)


Lesenswert?

Aaaaaahhhhhhhh. Schmeiss den 75176 raus. Der ist veraltet und zieht 40mA 
ohne Last. Ein neuerer pinkompatible Baustein zieht weniger wie 1mA.

von old-school_offline (Gast)


Lesenswert?

Hallo Gerhard M.

> entweder durch pollen oder mit zusätzlichen Leitungen

Das Problem beim RS485 ist doch, es kann immer nur ein Device (Master 
/Slave) den Bus verwenden.

Da musst Du also alles über das verwendete Protokoll abgefangen.

Jeder Slave bekommt eine ID vom Master zugewiesen, zwischen durch fragt 
der Master über ein Broadcasts (ID=0) alle Slaves ohne ID ab, diese 
Antworten dann mit einer Kennung(Type, Bez, SN oder so).
Um Kollisionen zu vermeiden, wenn mehrere Slaves ohne ID sich 
gleichzeitig melden wollen, musst Du Dir was überlegen, das die Slaves 
verschieden lange dann warten, um den BUS zu belegen. Mach es doch so 
ähnlich wie Ethernet: jeder Slave bekommt so was wie eine einmalige 
MAC-Adresse bei der Herstellung
und dein Master vergibt IDs so wie  DHCP die IP.

ansonsten werden alle Slaves über die verwendete ID <> 0 abgefragt 
(gepollt), ob diese war zu melden haben bzw. ob diese noch vorhanden 
sind.

So lange Du nur einen BUS-Master verwendest ist alles recht einfach zu 
bewerkstelligen, interessant wird das erst bei mehreren Master, oder 
wenn jeder Slave auch Master sein kann.

Bei mehreren Master kann man z.B. mit einem Token geordnet arbeiten oder 
mit der Kollision Methode.

Gruss Ralf

von Michael (Gast)


Lesenswert?

Christian B. schrieb:
> musst du sie ver-odern

wieso sollte er das?

Die Kanäle sollten parallel eingelesen und verarbeitet werden. Dann kann 
das Zusammenführen der Information auf logischer Ebene erfolgen und 
nicht lowlevel auf Signalebene.

von Christian B. (luckyfu)


Lesenswert?

wieso er das sollte? nun, weil er dann die UART Einheit des Controllers 
verwenden kann. Via Software die Unterscheidung zu realisieren bedeutet, 
die UART via Software zu emulieren. Muss er selbst wissen, was ihm 
wichtiger ist. Bei einem Master Slave Bus, was der RS485 ja eigentlich 
ist, darf es normal nicht vorkommen, daß mehrere Slaves parallel senden. 
Somit sehe ich erstmal kein Problem darin die Signale via Hardware 
zusammenzuführen.

Wenn er nat. ein Protokoll fahren will, wo er mehrere Slaves hat die 
gleichzeitig oder gar autark senden sieht es anders aus. Dann ist eine 
Implementierung zumindest des Empfängers via Software sicherlich 
sinnvoller als das Hardwareverknüpfen.

Fakt ist jedoch, daß es so, wie auf dem Schaltbild dargestellt 
vorraussichtlich nicht funktionieren kann. de facto funktioniert es so 
wie gezeichnet nur dann, wenn die RS285 Wandler OC Ausgänge haben. 
Andernfalls Treiben Ausgänge gegeneinander. Auf diesen Umstand ziehlte 
meine Aussage ab

von spontan (Gast)


Lesenswert?

Christian B. schrieb:
>Fakt ist jedoch, daß es so, wie auf dem Schaltbild dargestellt
>vorraussichtlich nicht funktionieren kann. de facto funktioniert es so
>wie gezeichnet nur dann, wenn die RS285 Wandler OC Ausgänge haben.
>Andernfalls Treiben Ausgänge gegeneinander. Auf diesen Umstand ziehlte
>meine Aussage ab

Kennst Du denn den Baustein 65176 oder 75176 überhaupt?

Der RX-Pin kann Tristate, dazu ist ja auch der Eingang /RE vorhanden.


Anregung:
Ich würd an RX1 einen leichten Pull-Upwiderstand einfügen, eben für den 
Fall, das alle RX-Pins der '176 auf Tristate geschalten sind. Das hilft 
dem PIC mit seinen RX1-Eingang, der bleibt so immer in einem definierten 
Zustand.


Für den Baustein '176 gibts pin-kompatiblen Ersatz u.a. von Maxim.

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
Noch kein Account? Hier anmelden.