PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serielles Signal mitschneiden/kopieren



philiph
01.10.2006, 22:49
Also ich hab ein Gerät das irgendein serielles Protokoll beherscht(kein Rs232) und auch ein Programm für den PC um es anzusteuern. Die Komunikation erfolgt aber nicht wie bei seriellem anschluss gedacht über ein rs232 protokoll sondern nur übrer Pegeländerungen auf TXD. Da ich dieses Gerät auch mit einem Controller ansteuern wollte dachre ich mir ich hänge das Signal einfach an einen Eingang meines Chips und Zeichne es auf und Sende wann immer ich möchte einfach dieses Signall über einen Pin. Nundie Frage: Wie mache ich das? Soll ich das USART oder normale "Pins" nehmen und wie programmiere ich sowas?

scales
02.10.2006, 00:07
Die Komunikation erfolgt aber nicht wie bei seriellem anschluss gedacht über ein rs232 protokoll sondern nur übrer Pegeländerungen auf TXD

funktioniert RS232 denn nicht über Pegeländerungen auf TXD?



Soll ich das USART oder normale "Pins" nehmen und wie programmiere ich sowas?

kommt drauf an wie genau die Kommunikation nun erfolgt,
"Pegeländerungen auf TXD" ist da zu ungenau

welche Pegel gibts denn? binär oder mehr?

aber allgemein wird der UART dir wohl nicht viel bringen wenn nicht die Stopbits usw. wie bei RS232 benutzt werden,
das musst du schon mit normalen I/O-Pins machen

wenn das wirklich nur Pegeländerungen auf einer Leitung sind musst du die eben aufzeichnen:
warten bis sich der Pegel ändert -> Zeit seit letzer Änderung eintragen,
warten bis sich der Pegel ändert -> Zeit seit letzer Änderung eintragen,
usw.

am besten wärs das Signal mal sichtbar zu machen um zu sehen wie es aufgebaut ist,
dann würde man z.B. auch sehen welcher der Ruhe-Pegel ist

philiph
02.10.2006, 08:46
Wenn ich die gesendeten daten mit einem anderen Mitschneide bekomme ich nur sinnloses wirres Zeug(Rücksenden bringt auch keine Antwort).
Deswegen dachte ich mir UART bringt nichs. Leider habe ich auch kein Oszi.Wie müsste den eigentlich ein "Mitschneidprogramm" aussehen?

marvin42x
02.10.2006, 11:48
Wenn Du mitschneidest und es kommt nur wirres Zeug scheint ja schon was zu stimmen.
Sonst würdest Du nix bekommen.
Wäre hilfreich zu wissen was Du mit dem "Anderen" meinst.
ist es ein Terminal unter Windows oder irgend was anderes?
Wo wird Dir das wirre Zeug angezeigt?
Daraus könnte man schließen was bereits geht.

Netter Gruß

philiph
02.10.2006, 12:10
Also ich habe zwei PCs mit einem Nullm. Kabel verbunden und auf dem einen Das Ansteuerprogramm wessen Daten ich mitschneiden will und auf dem anderen ein Terminalprogramm und da habe ich nur irgendwelche sonderzeichen in sinnloser anordnungBekommen

marvin42x
02.10.2006, 12:26
Ist doch super, da läuft schon was.
RS232 funktioniert zum Bleistift schon mal grundsätzlich.
Jetzt solltest Du mal schauen ob Du auf dem Sende PC rausfinden kannst mit welche Einstellungen der Seriellen Schnittstele das Programm sendet.
Gemeint sind:
Baudrate
Stopbit ja nein
7 oder 8 bit
parität ja nein
Flusssteuerung

das muss erstmal auf der Empfangsseite stimmen
sonst hast du sowiso Müll

Weiter muss Du Dich fragen was da ankommen könnte.
Wenn es z.B. Druckerdaten sind, also Steuerzeichen dann wirst Du da wenig Sinn drinn erkennen, sprich Wörter.

Netter Gruß

philiph
02.10.2006, 16:10
Also alles was ich weiss ist das es eine art "Binärer" Datentransfer ist und das es mit 1200 baud und Keiner Flussteuerung arbeitet. Deswegen dachte ich mir ich hänge es einfach an einen Chip und speichere welcher Pegel für wie Lange wann anliegt und "sende" das wann immer ich will.

marvin42x
02.10.2006, 16:44
Das ist doch schon was.
Du hast eine serielle Kommunikation mit 1200 Baud.
Daraus kannst Du schon mal ableiten das hier nix mehr mit Pegel oder so zu löten ist.
Die Sendestelle hat bereits alles in Daten zurechtgemacht und sendet sie Zeichen für Zeichen an den Empfänger.
Dabei hält sie sich an die Regeln der seriellen Kommunikation.

Soweit so gut.

Jetzt der Empfänger:
Der Empfänger muss ein Programm sein was sich ebenfalls an diese Regeln hält und die Daten so empfängt wie der Sender sie gesendet hat.
Dabei soll er die Daten nach Möglichkeit anzeigen, egal wie sinnvoll oder unsinnig sie sind und am besten noch in eine Datei schreiben, dass man sie in Ruhe angucken kann.

So ein Programm findest Du in Windows.
Es heißt Hyperterminal.
Du findest es vermutlich unter Programme -Zubehör
Dort stellst Du die Werte der Übertragung ein und schon sollte es losgehen.
Wenn Du was senden willst kannst Du eine Datei fertigmachen in der steht das was du senden willst. Du kannst aber auch über die Tastatur etwas eingeben.
Da Du vermutest das es binäre Daten sind wird es vermutlich ab hier schwieriger.
Da Die Terminalkommunikation Buchstabenorientiert ist.
Es wird hier üblicherweise jedes gesendete Zeichen (1Byte lang) anhand einer Tabelle einem Buchstaben zugewiesen (Ascci-Tabelle).
Ein Byte kann man aber auch als Zahlenwert interpretieren (0-255)

Ich schließe hier erstmal bis Du deine Werte in einer Datei hast.

Netter Gruß

philiph
02.10.2006, 19:49
Danke,aber das bringt mir nichts weil ich weiss das das Terminalprogramm die meisten Daten einfach verwirft weil sie keinem ASCII Zeichen entsprechen. Das mit einem Terminalprogramm hatte ich auch schon längst versucht(sonst würde ich mir ja nicht die Arbeit machen es über einen Chip zu lösen). Wenn ich die Daten genauso sende wie ich sie Empfange bleibt die gewünschte antwort aus.
Also müsste man die Empfangenen Daten Puffern und direkt wieder Senden ohne sie irgendwie zu überprüfen(ob sie ASCII oder sonst was sind)

marvin42x
03.10.2006, 00:33
Hmm...
irgendwie ein Missverständniss.
Da muss ich passen.
in Bascom kannst Du das Senden und Empfangen als Byte programmiere.
In z.B. Visual Basic geht das auch.
Ich würde mich auch wunder wenn Das Terminal Daten unterdrückt wenn es in eine Datei schreibt. Das kann man mit einem Hexeditor überprüfen.
Da müssen Leute mit mehr Detailwissen helfen.

Netter Gruß

avr57
03.10.2006, 01:28
Hi,

es gibt u. a. ein universelles Terminalprogramm, "Bin-Term" von www.mmvisual.de als Freeware. Bietet viele Einstellmoeglichkeiten und Funktionen. Vielleicht mal ausprobieren.

Viele Gruesse

Karl

repi64
03.10.2006, 21:40
Hi,
vielleicht hilft dir auch dieses Terminalprogramm weiter. http://www.docklight.de/
oder aber http://www.fcoder.com/products/rs232spy.htm