Forum: Mikrocontroller und Digitale Elektronik RS485 Daten mitschneiden.


von Thomas Klein (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
vor einiger Zeit habe ich schonmal was ähnliches gefragt, will aber 
jetzt nochmal konkreter fragen und erklären.
Situation: Eine Platine und ein Diagnosegerät mit MB90F342CAS 
Mikrokontroller. Über ein RJ10 Kabel und Rs485 kommuniziert das Tool mit 
der Platine. Ich will die Kommunikation zwischen Tool und Platine so 
mitschnieden, das ich anschließend die Befehle für alle Funktioen über 
einen Laptop senden kann, und die entsprechende Antwort sehe. z.B. 
Fehlermeldungen auslesen oder aktueller Zustand von E/A Ports anzeigen, 
Parameter ändern etc.

Versucht habe ich das mit einem RS485 Adapter (siehe Foto), dieser ist 
an eine selbst gelötete kleine Leiterplatte angeschlossen, eine RJ10 
Buchse an die das Tool kommt, an die andere die Platine, dazwischen 
gehen dann Rx und Tx zu einem RS485 auf USB Adapter welcher dann an den 
PC angeschlossen ist. Mit einem Serial Port Monitor bekomme ich z.B. 
""FF00AA44" angezeigt.
Mein Problem ist wohl das ich nicht sehe welche Daten von Tool als 
Anfrage, und welche von Platine als Antwort kommen. Wenn ich im Terminal 
schaue, wird mir genau das in Klartext gezeigt, was das Tool anzeigt, 
deshalb gehe ich davon aus das Parity und Speed richtig eingestellt 
sind? Mit anderen Werten bekomme ich nämlich nur diverse Zeichen.

Meine Frage ist nun welche möglichst kostengünstige Hardware ich 
benötige, um mein Ziel zu erreichen. Von den selbstgebauten Teilen und 
dem RS485 Adapter habe ich Bilder angehängt. Das Diagnosetool ist 
ziemlich "komplex" muss regelmäßig mit einer speziellen PC Software 
wieder freigeschaltet werden.
Außerdem wäre interessant, ob jemand weiß wie die die Daten auf dem oben 
genannten Chip aussehen, ist das unterschiedlich? Zur Not könnte man, 
falls die Daten auf dem Chip verwendbar sind, diesen auch aus dem Tool 
auslösten und auslesen.
Danke im Voraus

von Sven B. (scummos)


Lesenswert?

Sorry, für mich ist nicht verständlich, was eigentlich dein Problem ist. 
Wenn du die Zeichen korrekt empfängst, ist doch alles gut? Was ist jetzt 
noch falsch?

RS485 ist idR Half Duplex, es gibt (ohne Hardware Flow Control) 
elektrisch keine Möglichkeit, zu erkennen wer sendet. Das wird 
normalerweise auf einer höheren Protokollebene ausgehandelt.

von (Gast)


Lesenswert?

Am einfachsten dürfte es sein einen billigen RS485-Repeater zu 
adaptieren, also auf beiden seiten am Treiberbaustein jeweils einen ttl 
usb seriell wandler auf TX hängen.

von Thomas Klein (Gast)


Lesenswert?

Eigentlich ist das Ziel ja das ich die Befehle selbst senden kann (ohne 
das Tool) und dann die Antwort in Klartext angezeigt bekomme.
Aber ich bekomme pro Funktion immer nur einen Code z.B "0A 11 F2 AA" ein 
Teil könnte die Anfrage des Tools sein, und ein anderer die Antwort. 
Dann müssen evtl. noch Timings eingehalten werden etc. und ich bekomme 
keine Reaktion wenn ich diesen Code an die Platine sende.

von Blechbieger (Gast)


Lesenswert?

Kommst du mit einem Logicanalyzer oder Oszi bei einem der beiden Boards 
an den DE/RE PIN des RS485 Transceivers? Dann noch A/B oder einfacher 
DI/RO und dekodieren. Wenn dann der Aufbau feststeht kannst du zurück an 
den komfortableren USB-Adapter

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Mit DIESEM Adapter wirst du nicht wirklich RS485 senden können.
Der CH340 USB<->UART Chinesen IC hat kein TX Enable Ausgang.
Daher ist das mit einem Monoflop rangefrickelt.
(Es gibt sogar eine Variante ohne dieses Monoflop, das sieht dann auf 
dem Oszi eher nach CAN aus statt RS485)

Je nach Baudrate kann der dann zu lange senden und die ersten 
Antwortbytes verschwinden.

Nimm einne Adapter auf FT232 oder CP2102 Basis.
Leider kann ich dir keinen kaufbaren empfehlen, weil ich sowas selber 
baue.

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.