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
>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)
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
>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.).
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
Eine eigene Frage?
Dieser Thread ist über 16 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.