Forum: Mikrocontroller und Digitale Elektronik Kommunikation belauschen/beeinflussen


von Borislav B. (boris_b)


Lesenswert?

Hi, ich brauche mal euren Rat :-)

Ich habe hier ein System bestehend aus zwei Komponenten: 
Servo-Motor-Steuerung und Bedienpanel. Über das Bedienpanel lässt sich 
die aktuelle Position des Motors ablesen. Außerdem gibt es zwei Tasten, 
um den Motor zu verstellen.

Beide Teile sind mit folgenden Leitungen verbunden:
 - GND + VCC (5V)
 - RX + TX
 - 4x ? (zu den Leitungen konnte ich keine Infos finden. Ggf. werden die 
garnicht genutzt)

Nun würde ich gerne die Kommunikation mit einem µC belauschen, und die 
aktuelle Motorposition auch am PC anzeigen. Später würde ich gerne auch 
über den PC Tastendrücke simulieren.

Einen kleinen AVR µC mit Verbindung zum PC (via USB) habe ich schon 
vorbereitet. Nun ist nur die Frage, wie ich die "Busleitungen" 
anzapfe...


Meine erste Idee:
Ganz simpel über Widerstände (1kOhm?) jede Leitung in den µC abzweigen. 
Dort dann die Leitungen an Digitale Pins legen. Die können dann (je 
nachdem ob gelauscht oder gesendet werden soll) als Eingang oder Ausgang 
konfiguriert werden.

Ist das ein guter Ansatz? Oder könnte ich das System dadurch 
beschädigen?
Wäre sowas wie eine Galvanische Trennung notwendig?

Danke für euren Rat!

von Thomas (Gast)


Lesenswert?

Hallo Boris,

ich denke Logic Analysator und Oszi wären hier wohl Mittel der Wahl.

Ists ein Servo so müsste er ja mit PWM angesprochen werden.

Das hier schon durchgelesen: 
http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung

Thomas

von Stefan F. (Gast)


Lesenswert?

Du brauchst einen Mikrocontroller mit drei seriellen Schnittstellen. 
Also einen AVR aus der Xmega Reihe.

Außerdem solltest du herausfinden, wozu die unbekannten vier leitungen 
dienen. Möglicherweise werden dort genau die Informationen übertragen, 
die für deine Anwendung relevant sind.

Den Mikrocontroller schleifst du in die Verbindung ein, so dass er die 
Signale weiter reicht und dabei aufzeichnet und irgendwie an den PC 
sendet.
1
Bedienfeld                           Servo
2
              __________
3
Tx >---------|Rx      Tx|----------> Rx
4
             |    µC    |
5
Rx <---------|Tx      Rx|----------< Tx
6
             |          |      __________
7
             |          |     |          |----- 5V
8
             |        Tx|--*--| USB UART |----- D+  USB PC
9
             |        Rx|--*--|          |----- D-
10
             |__________|     |__________|
11
                  |                |
12
GND o-------------+--------*-------+----------- GND

Ob eine Galvanische Trennung notwendig ist, hängt davon ab, ob PC und 
Motosteuerung das gleiche GND Potential haben. Falls sie nicht gleiches 
Potential haben, sollten zwei Optokoppler zwischen Mikrocontroller und 
USB-UART positioniert werden (mit * markiert). Die GND-Verbindung kann 
dann an dieser Stelle getrennt werden.

von Stefan F. (Gast)


Lesenswert?

> Logic Analysator

Diese Geräte können IMHO nur mitlesen. Er will auch Daten senden.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Für den Einstieg ist der Logic Analyzer trotzdem erst wahl. Damit kann 
man neben der Erkennung der Baudrate (die auch mit dem Scope möglich 
ist) nämlich auch den Inhalt der Kommunikation verfolgen und parallel 
die anderen I/Os loggen. Wenn man dann verstanden hat was da gemacht 
wird, kann man sich mit einem µC dazwischen schalten und eingreifen.

Mit freundlichen Grüßen
Thorsten Ostermann

von Thomas (Gast)


Lesenswert?

@Thorsten:

Danke für die Klarstellung, das war auch genau was ich meinte.
Bevor ich einen uC anfasse würde ich erstmal mit LogikAnalysator 
und/oder Scope den Datentransfer ansehen und verstehen.

Danach würde ich weitergucken...

Thomas

von Borislav B. (boris_b)


Lesenswert?

Thomas schrieb:
> Danke für die Klarstellung, das war auch genau was ich meinte.
> Bevor ich einen uC anfasse würde ich erstmal mit LogikAnalysator
> und/oder Scope den Datentransfer ansehen und verstehen.

Blöd nur, wenn man ein solches Gerät nicht sein eigen nennt...

Ich hatte eigentlich vor, das auch mit dem µC zu erldigen. D.h. In einer 
Endlosschleife alle digitalen Eingänge lesen, die Bits zu einem Byte 
zusammensetzen und dass dann per Serieller Schnittstelle an den PC 
senden (mit maximaler baudrate, 115200 bps?).
Meine Hoffnung war, dass ich die Kommunikation so schnell genug abtasten 
kann, um sie nachher am PC zu analysieren...

War das zu naiv gedacht? ;-)

von Thomas (Gast)


Lesenswert?

@Boris:

Nein, war es nicht.
Wo es aber Selea Clones schon ab ein paar Euros gibt würde ich mir die 
Mühe nicht machen.
Schließlich musst du mit dem uC ja auch das Timing analysieren.

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.