Rohdaten im COM-Port erfassen


11

Ich habe ein Bluetooth-Übertragungsgerät und mein PC (Windows 7) ist damit verbunden und so konfiguriert, als ob er über eine serielle RS232-Schnittstelle (COM4) verbunden wäre. Wie kann ich die vom Bluetooth-Gerät übertragenen Rohdaten oder gleichwertig die in COM4 empfangenen Rohdaten erfassen?


Keine elektronische Frage, soweit ich das beurteilen kann.
Brian Carlton

5
Ich denke tatsächlich, dass dies ein Thema ist. Es gibt einige Softwareteile, die serielle Daten von einem COM-Port erfassen können (einige davon sogar, wenn eine andere Anwendung den Port verwendet), und die Software ist tatsächlich so spezialisiert, dass die meisten Menschen nicht wissen, dass sie existiert. Der Nachteil ist, dass ich nach einiger Zeit der Suche nach solcher Software keine finden konnte, die auf Post-XP-Computern gut funktioniert.
AndrejaKo


Antworten:


9

Sie können ein Standard-Terminalprogramm verwenden, um die Daten in verschiedenen Formaten zu erfassen. Ich schlage vor, Brays Terminal zu verwenden , es ist wirklich einfach und hat viele Optionen!

Oder möchten Sie die Daten in einer eigenen Anwendung erfassen und interpretieren?


Vielen Dank! Ich suche keine Interpretation der Daten. Ich möchte nur die Rohdaten empfangen und in einer Datei speichern können. Ich versuche herauszufinden, was mein Bluetooth-Gerät tatsächlich überträgt. Würde Brays Terminal das für mich tun?
user11395

@ user11395 - Ja, jede anständige Terminalsoftware wird dies tun. Ich verwende auch Brays Terminal. Putty ist ein weiterer guter ... Ein Tipp: Wenn Sie Probleme beim Verbinden mit Brays Terminal haben, gehen Sie zu den Geräteeigenschaften Ihres BT-Moduls in Windows (Control) Panel -> Bluetooth-Geräte, klicken Sie mit der rechten Maustaste und wählen Sie "Eigenschaften") und deaktivieren Sie den SPP-Dienst und wählen Sie ihn erneut aus.
Oli Glaser

danke Oli. Ich betreibe Brays Terminal, aber etwas scheint nicht zu stimmen. Ich "scanne" die Ports erneut, finde Port COM4, ​​verbinde mich mit COM4 und sehe dann, wie Daten erfasst werden. Ich denke jedoch nicht, dass sie richtig sind. Ich bin mir nicht sicher, welche Werte für Baudrate / Datenbits / Paritätsstoppbits / Handshaking ich wählen soll. Irgendwelche Vorschläge?
user11395

Im Allgemeinen sind die Module auf 9600,1, N (1 Stoppbit, keine Parität) eingestellt, aber 115200 ist auch üblich (es kann sein, dass die Standardeinstellungen überall dort sind, wo Sie sie gekauft haben). Auch auf kein Handshake eingestellt. Sie können die Baudrate mit einem AT-Befehl einstellen (nicht über die drahtlose Verbindung, Sie müssen eine direkte Verbindung zu den Rx / Tx-Pins des Moduls herstellen). Bevor Sie dies versuchen, senden Sie wiederholt ein bekanntes Zeichen und beginnen Sie einfach mit dem langsamsten Baud und arbeiten Sie sich nach oben - Einer von ihnen sollte die richtigen Daten liefern.
Oli Glaser

Ich habe es geschafft, die Daten mit Brays Terminal zu erfassen. Egal, ob ich auf Brays Terminal eine Baudrate von 9600 oder 115200 wähle, ich erhalte die gleichen Daten (die korrekt zu sein scheinen). Warum liefern beide Optionen das gleiche Ergebnis? Außerdem habe ich festgestellt, dass mein Gerät eine Baudrate von 115200 hat, aber soweit ich in meinem Geräte-Manager sehen kann, ist dieser COM-Port auf eine Baudrate von 9600 eingestellt (ich denke standardmäßig). Soll ich das ändern?
user11395

2

Die beste Lösung, die ich gefunden habe, ist Tera Term http://ttssh2.sourceforge.jp/index.html.de .

Bray's spielt nicht gut mit Windows 8. Obwohl es unmöglich ist zu sagen, was genau es ohne die Quelle tut, scheint es, dass es einige Annahmen über den Speicherort einer Registrierungseinstellung macht.

portmon hat auch bei mir unter Windows 8 nicht funktioniert.


Ich verwende Brays in der neuesten Version von Win 10, daher funktioniert es zumindest in einigen Fällen immer noch. Auf meinem Computer ist nur COM3 installiert.
Chris Dragon

2

Mein persönlicher Lieblings-Terminalemulator zum Debuggen ist RealTerm, das eine Reihe von Anzeigeoptionen für eingebettete Systeme bietet. Sowohl RS-232 als auch TCP / IP funktionieren unter Windows 7 x64 und darunter einwandfrei (ich habe es unter Win 8 nicht versucht, habe aber keinen Grund zu der Annahme, dass es nicht funktionieren würde). Einige Funktionen, die ich besonders nützlich finde, sind:

  • ASCII / HEX-Ansicht von Daten
  • Aufnahmedateien können Zeitstempel enthalten
  • Es gibt eine einfache Möglichkeit, binäre Datensequenzen zu senden
  • Hardware-Flusskontrollstifte können einfach überwacht / gewechselt werden

Es gibt auch einige andere Optionen für I2C, SPI, Dallas 1-Wire und GPIB. Ich habe diese Funktionen nicht persönlich verwendet, aber es gibt eine gute Zusammenfassung auf der SourceForge-Seite oben. Hier ist eine Bildschirmaufnahme der Registerkarte "Hauptanzeige":

Geben Sie hier die Bildbeschreibung ein


1

Ich würde auch bray empfehlen. Wenn Sie sich nicht sicher sind, wie hoch die Baudrate ist, öffnen Sie den Hardware-Manager, navigieren Sie zu COM-Ports und wählen Sie Eigenschaften aus. Diese werden dort aufgelistet, sind jedoch nicht immer korrekt.


Ich habe es geschafft, die Daten mit Brays Terminal zu erfassen. Egal, ob ich auf Brays Terminal eine Baudrate von 9600 oder 115200 wähle, ich erhalte die gleichen Daten (die korrekt zu sein scheinen). Warum liefern beide Optionen das gleiche Ergebnis? Außerdem habe ich festgestellt, dass mein Gerät eine Baudrate von 115200 hat, aber soweit ich in meinem Geräte-Manager sehen kann, ist dieser COM-Port auf eine Baudrate von 9600 eingestellt (ich denke standardmäßig). Soll ich das ändern?
user11395

1

Es gibt portmon : ein sysinternes Tool, das als Datascope für COM-Ports fungiert.


1
Funktioniert meiner Erfahrung nach nicht auf x64-Windows-Systemen.
JonCage

1

Abhängig von Ihren genauen Anforderungen kann es hilfreich sein, einen Mikrocontroller zu verwenden, der die Daten erfassen, mit einem Zeitstempel versehen und dann an den PC weiterleiten kann. Die UARTs, die in der Vergangenheit auf typischen PCs gefunden wurden, waren nur in der Lage, genaue Zeitinformationen aufzuzeichnen oder 9-Bit-Daten zu erfassen, indem der Prozessor jedes Byte beim Eintreffen erfasst, ohne zu puffern. Spätere Betriebssysteme und Treiber sind im Allgemeinen nicht dafür ausgerüstet, und UART-zu-USB-Chips sind in dieser Hinsicht hoffnungslos. Wenn Ihr PC Daten mit der doppelten gewünschten Datenrate empfangen kann, kann ein Mikrocontroller Datenbytes empfangen und für jedes Byte zwei Bytes senden. Das erste Byte würde das MSB setzen lassen, das MSB (oder zwei MSBs, wenn 9-Bit) der eingehenden Daten in den nächsten Bits melden, und verwenden Sie die unteren 5 (oder 4) Bits, um die Zeitdauer (0-30 oder 0-14) seit der Mitte des Stoppbits des vorherigen Bytes (gemessen in Einheiten von z. B. einer Bitzeit) zu melden. Das zweite Byte würde das MSB löschen und die verbleibenden 7 Datenbits enthalten. Wenn keine Daten übertragen werden, werden alle 30 (oder 14) Bitzeiten FF-Stimulationszeichen gesendet. Software, die diese Berichte empfängt, könnte somit den genauen Zeitpunkt eingehender Daten sehr genau (innerhalb einer Bitzeit) rekonstruieren. Wenn die Datenrate, die den PC speist, das Vierfache der zu überwachenden Datenrate beträgt, könnte man dieses allgemeine Schema verwenden, um zwei Empfangskanäle in einen PC-Port zu multiplexen (verwenden Sie ein Bit des Header-Bytes, um zu identifizieren, ob es Daten für die erste oder zweite enthält Hafen). Während das Timing von Dingen, die auf ein Bit genau sind, übermäßig erscheint, kann es Zeiten geben, in denen dies nützlich sein kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.