Kommunikation belauschen/beeinflussen

OP #4009422
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!
Gast #4009428
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.
(Firma: mechapro GmbH) Persönliche Seite #4009463
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
Gast #4009541
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
OP #4009574
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? ;-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.