PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur seriellen Schnittstelle/ so mithören möglich?



daywalker008
16.12.2008, 07:44
Servus Leute, ich hab mal eine Frage zur seriellen Schnittstelle.
Und zwar hab ich 2 Geräte die mit einander über die serielle kommunizieren. Nun will ich den Datenverkehr mitschneiden.
Kann ich einfach meinen PC mit einklinken, so das er die Daten auch empfängt? also z.B. parallel zu den einem Gerät?

Wenn nicht, kann man das irgendwie anders machen? zur not reicht auch nur was von einem Gerät gesendet wird. Aber ich kann die Geräte nicht komplett trennen weil sonst keins von beiden was sendet...

Sepp O.
16.12.2008, 08:54
Ich vermute, du meinst mit serieller Schnittstelle die RS232 Schnittstelle(Com).
Denn z.B. USB ist auch seriell.

Wenn du die RS232 meinst, dann geht dass.

Vorraussetzungen sind:
Dir sind alle Einstellungen bekannt. (Datenrate, Start/Stoppbit, Parität, Flusssteuerung,...).
Dass Gerät uC/PC benötigt 2 RS232 Schnittstellen. (eine für jeden Teilnehmer).

Um mitzuhören mußt du mindestens den RX der beiden Schnittstellen in einen der beiden Datenleitungen hängen.
Vergiss aber nicht jedem empfangenen Byte einen Zeitstempel zu verpassen.
Denn sonst hast du keine Change die Gesendeten Daten und deren Antwort herauszufinden.

Wenn dass Ganze mittels PC gemacht wird, sollten so wenig Programme wie möglich nebenbei laufen, denn sonst verlierst du mitunter einige Daten bzw. die realen Zeiten.
Ich würde diese Aufgabe mittels uC machen, da hier kein OS dazwischenpfuschen kann.

Und wenn eine der zu bespitzelnden Teilnehmer ein PC ist, dann kann man ein Schnüffeltool verwenden dass einem die gesammte Komunikation aufzeichnet ohne irgendwelche Hardware bauen zu müssen.

nikolaus10
16.12.2008, 09:21
Ganz so kritisch ist die Rs232 Kommunikation unter einem Betriebssystem nicht.
Rs232 ist doch relativ langsam und es sind Hardwarepuffer verbaut so das eigentlich kein Zeichen beim Mithoeren verloren geht.
Aber der MithoerPc brauch zwei serielle Schnittstellen.
Wenn man Baudrate und Protokoll nicht kennt ist es auch nicht so schlimm.
Man kann sich durch ausprobiern an die Werte herantasten.
Baudrate und Datenlaenge bekommt man mit einem Oszillloskop auch rel. schnell heraus.

Sepp O.
16.12.2008, 10:23
Rs232 ist doch relativ langsam und es sind Hardwarepuffer verbaut so das eigentlich kein Zeichen beim Mithoeren verloren geht. Die sportliche Herausforderung ist nicht die Daten zu empfangen, sondern richtige Zeitstempel zuzuweisen.
Denn wenn man zu lange wartet, weis man nicht welche Byte-Reihenfolgen zusammen gehören und was die Antwort des Einen Teilnehmers auf das Datenpaket des Anteren war.


Aber der MithoerPc brauch zwei serielle Schnittstellen.
Genau dass habe ich auch geschrieben.
(Leider hatte ich mich etwas unglücklich ausgedrückt.)

daywalker008
16.12.2008, 13:04
Also Datenrate und sowas ist alles bekannt.
Warum brauch der PC 2 Schnittstellen? soll da an die eine der eine Teilnehmer und an die andere der andere Teilnehmer?

Sepp O.
16.12.2008, 13:17
Richtig.

Je eine Schnittstelle belauscht die Sendedaten eines Gerätes.

Black Scorpion
16.12.2008, 16:05
Servus Leute,

also das ganze ist relativ einfach. Man muss nur ein Adapterkabel zwischen die beiden zu belauschenden Systeme klemmen, so dass man zwei serielle Schnittstellen hat zum mithören. Wurde ja schon so beschrieben. Zum Anschauen der Daten gibt es sogenannte Sniffer wie dieser hier

http://www.heise.de/software/download/serial_sniffer/4718

Wenn man sich mit Softwareprogrammierung auskennt gibt es z. B. für Delphi und für C++ zusatzkomponenten wie TSerial4.3 von ToolBox oder ComPort3.0 von Sourceforge die man in ein selbst geschriebenes Programm mit einbinden kann und somit Daten aus den beiden Schnittstellen auszulesen und zu verarbeiten.

Für weitere Infos hier ein Link
http://www.flache.de/Download/Shareware/SerialSnifferD/index.html

Im Anhang befindet sich ein Schaltplan für ein so ein Adapterkabel. Hab damit mal in ner Projektarbeit mich rumschlagen müssen.
Ich hoffe ich konnte weiterhelfen.