Forum: Mikrocontroller und Digitale Elektronik Signalqualität RS485-Bus dokumentieren?


von screwdriver (Gast)


Angehängte Dateien:

Lesenswert?

Prosit Neujahr!

Ich habe zuhause einen Hausbus aus selbstgeätzten Platinen aufgebaut. 
Aufgrund einer im Frühjahr/Sommer anstehenden Erweiterung um zwei Slaves 
möchte ich jetzt mal die Signalqualität festhalten und damit eine 
Vergleichsmöglichkeit mit der Signalqualität nach der Erweiterung 
schaffen. Desweiteren könnte ein Oszillosgramm auch ggf. bei einer 
Fehlersuche nützlich sein.

Im Anhang befindet sich folgende Dateien:

Topologie.png                 : Derzeitige Busstruktur

UNIT0000.bmp bis UNIT0002.bmp : Oszillosgramm einer Bitübertragung, 
Probe an Master Ader A, Oszi-Gnd an Master-Masse Versorgungsspannung

UNIT0004.bmp bis UNIT0006.bmp : Oszillosgramm einer Bitübertragung, 
Probe an Master Ader A, Oszi-Gnd an Master Ader B

Alle BusNodes werden von einer gemeinsamen Spannungsversorung 5VDC 
versorgt, die parallel zur Busleitung verlegt ist. Baudrate ist 
50kBit/s. Der Bus lief auch schon mal zeitweise mit 125kBit/s, hielt 
dies aber für unnötig und habe die Baudrate gesenkt.

Bei den Messungen UNIT0004 bis UNIT0006 wurde das Bussignal verfälscht, 
so dass keine fehlerfreie Kommunikatin mehr stattfand.

Wie misst man denn nun richtig an einem RS485-Bus?
Welche Messungen betreiben professionelle Hardwareentwickler bei 
Projekten mit RS485-Kommunikation?

MFG
screwdriver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dazu eignet sich ein Augendiagramm.

http://de.wikipedia.org/wiki/Augendiagramm

von Purzel H. (hacky)


Lesenswert?

bmp. ... hust. Sonst noch was ?

von Karl (Gast)


Lesenswert?

Bei 17,8 kB für etliche Bilder ist das doch egal. Zip komprimiert ganz 
gut :P

von Anja (Gast)


Lesenswert?

>UNIT0000.bmp bis UNIT0002.bmp : Oszillosgramm einer Bitübertragung,
>Probe an Master Ader A, Oszi-Gnd an Master-Masse Versorgungsspannung

Das Augendiagramm mußt Du natürlich differenziell aufnehmen. also 
Differentiellen Tastkopf zwischen Ader A und B.
(Behelfsweise 2 Tastköpfe und Differenzbildung im Oszi)

von screwdriver (Gast)


Lesenswert?

Danke für die Antworten.

Augendiagramm scheint das richtige Stichwort zu sein und im WWW gibts 
dazu auch einiges, was ich mir erstmal bei Gelegenheit anschauen muß.

Anja schrieb:
> (Behelfsweise 2 Tastköpfe und Differenzbildung im Oszi)

Ja, so werd ich es wohl machen.

Aber wo speise ich das Testsignal ein und wo messe ich das. Reicht es 
aus an einem Ende das Testsignal einzuspeisen und am anderen Ende zu 
messen? Und als Signalgenerator nehme ich dann einfach den 
entsprechenden Node. Werden die anderen Nodes abgeklemmt und nur die 
Abschlußwiderstände drangelassen?

Bezgl. des Testsignals:
Ich müßte ein kleines Programm schreiben, in dem die Uart abgeschaltet 
ist und ich nur einen High-Impuls mit entsprechender Dauer sende. Z.B. 
bei den 50kBit/s beträgt die Signaldauer 20µs. Ich würde dann ein 
High-Pegel von 20µs und nach einer Pause von, sagen wir mal 100ns, den 
nächsten Impuls senden, und so weiter. Nach 20µs/100ns= 200 Impulsen 
(bzw. 199) wäre ich dann ja wieder synchron und mein Augendiagramm hätte 
200 Schattenbilder. Habe ich das richtig verstanden?

screwdriver

von HildeK (Gast)


Lesenswert?

>Aber wo speise ich das Testsignal ein und wo messe ich das.
An allen Stellen, die senden können. Messen jeweils an den Stellen, die 
es empfangen sollen. Z.B. mit dem Master ein Telegramm senden und dies 
an jedem Knoten messen bzw. jeden Slave einzeln zum Senden auffordern 
und am Master messen.

>Reicht es
>aus an einem Ende das Testsignal einzuspeisen und am anderen Ende zu
>messen?
Nein, den damit wirst du das Best-Case-Ergebnis erhalten. (Wenn du mit 
'Ende' die Enden des Busses meinst)

>Und als Signalgenerator nehme ich dann einfach den
>entsprechenden Node.
Ja. Ein externer Signalgenerator hat u.U. ein deutlich anderes Verhalten 
(andere Impedanz). Da können die Signale dann besser oder schlechter 
aussehen.

Werden die anderen Nodes abgeklemmt und nur die
>Abschlußwiderstände drangelassen?
Nein. Gerade die Eingangsbelastung durch die Nodes, die Stichleitungen 
usw. sind die Ursache für Signalverfälschungen.

Richtig wäre es, reale Kommunikation zwischen den Nodes zu haben und 
dann an den verschiedenen Eingängen (möglichst nahe am Empfänger) zu 
messen. Augendiagramm muss nicht unbedingt sein, aber eine 
differentielle Messung ist ein Muss, denn das interpretiert ja auch der 
Empfänger. Du musst dein Oszillogramm gut interpretieren, denn die 
Qualität am Ausgang eines Senders kann beliebig schlecht sein, solange 
der bzw. die angesprochenen Empfänger ein gutes Signal sehen. Da jeder 
Senden und Empfangen kann, musst du die Signalrichtung beim Ablesen 
unterscheiden können (z.B. meist ist das Sendesignal etwas größer im 
Pegel oder du hast ein zusätzliches Signal auf der Node, das dir 
Auskunft über die aktuelle Richtung gibt).

Für die Erstellung von Augendiagrammen sind Randomsignale notwendig, 
einzelne Pulse führen nicht zu einem brauchbaren Ergebnis. Es ist bei 
Augendiagrammen in der Topologie auch schwieriger zu unterscheiden, 
welcher Anteil vom Empfangssignal und welcher vom Senden am Knoten 
kommt. Das muss schon unterschieden werden (s.o.).

von screwdriver (Gast)


Angehängte Dateien:

Lesenswert?

HildeK schrieb:
>>Aber wo speise ich das Testsignal ein und wo messe ich das.
> An allen Stellen, die senden können. Messen jeweils an den Stellen, die
> es empfangen sollen. Z.B. mit dem Master ein Telegramm senden und dies
> an jedem Knoten messen bzw. jeden Slave einzeln zum Senden auffordern
> und am Master messen.

Ohne Fleiß kein Preis, was? ;-)

Ich habe vorhin nochmal das Oszi an den Bus gehangen und so wie es der, 
die oder das Anja empfohlen hat, zweikanalig gemessen. Kanal 1 ist B, 
Kanal 2 ist A und die rote Meßkurve ist die Differenz A-B in doppelter 
Größe.
In den Oszillogrammen erkennt man, dass die Signalflanken weniger als 1% 
einer Bitdauer ausmachen. Ich denke, ein Augendiagramm wäre dann ein 
elend langes Rechteck mit runden Ecken, oder?

screwdriver

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.