Gleichzeitige Überwachung von zwei seriellen Leitungen

Zuerst ist dies das Setup: Zwei serielle Geräte, die miteinander kommunizieren, plus zwei FT232RL mit Rx-Pins, die mit den Tx-Leitungen jedes Geräts verbunden sind(bitte beachten Sie, dass eine der Erdungen nicht verbunden ist, beide FTDIs funktionieren ordnungsgemäß)

Jetzt habe ich PuTTY verwendet, um diese beiden seriellen Streams zu betrachten, die beide Daten mit 9600 Baud austauschen, aber mein Problem besteht darin, die Aktivität zeitlich zu protokollieren.

Ich habe auch einige serielle Monitore ausprobiert, die ich auf den Röhren gefunden habe, aber die Zeitauflösung ist in Sekunden.

Gibt es ein Tool, um diese beiden Streams gleichzeitig zu überwachen? Wenn dies nicht der Fall ist, sollte ich selbst eine in Processing programmieren (es wird in dieser Sprache weniger Zeit in Anspruch nehmen, nehme ich an).

PS: Das ultimative Ziel ist es, das Remote-Gerät (eine tatsächliche kabelgebundene Fernbedienung) durch eine kleine MCU wie die ATtiny85 oder ATtiny2313 mit einem simulierten Eingang zu ersetzen.

PS2: Ich habe nur diese beiden FTDIs, ein analoges Oszilloskop und ein Multimeter.

Was Sie hier wirklich wollen, ist ein Logikanalysator. Budgetbeschränkungen scheinen dies jedoch nicht verfügbar zu machen.
Sie haben absolut Recht. Falscher Name, Budget und Vorlaufzeit sind eine Zicke, wenn Sie in einem Unternehmen arbeiten, das nicht im Elektronikgeschäft tätig ist und sich im letzten Land der Erde (Chile) befindet.
Außerdem waren am Ende die Signale in den Kabeln der Frage nicht RS232@TTL :(
So etwas wie die USB-Logikanalysatoren USBee SX ( usbee.com ) oder Saleae Logic ( saleae.com/logic ) würden dies leicht und für weniger als 150 US-Dollar tun. Ich persönlich besitze das USBee SX, hätte aber das Saleae haben sollen (ich verwende kein Windows). Beide sind ansonsten ziemlich identisch.
Ich habe sowohl USBee AXPRO als auch Saleae Logic. USBee ist zum Kotzen!!!! Ihre Software stürzt ständig ab und hat eine umständliche Benutzeroberfläche. Saleae dagegen viel ausgefeilter.
Ich kann die Erfahrung von Eric M mit USBee nicht bestätigen. Ich habe festgestellt, dass es sehr zuverlässig ist, und es hat viel Mühe gespart, einige skurrile serielle Protokollprobleme zwischen Geräten zu debuggen. Sicherlich gibt es Features, die ich mir wünschen würde, aber bei dem Preis.... Mit Saleae habe ich keine Erfahrung, der Coinflip ist beim Einkaufen auf USBee gelandet.
@RBerteig: Die USBee-Suite ist abgestürzt, wenn Sie mehr als 3 Erfassungskanäle bei 24 Msps verwenden. Ich mache viel I2S-Arbeit, also muss ich mir Wordclock, Bitclock, Daten und einen Dekodierungskanal ansehen. Der AXPro hat ein Zielfernrohr und das Zielfernrohr besteht aus zwei kleinen Stiften an der Seite des Geräts. Sonden für das Zielfernrohr sind billige Drähte, die Sie in diesen Header-Anschluss schieben. Die Drähte waren zu dick für die Öffnung. Die schwache Konstruktion fühlte sich an, als würde sie gleich brechen, wenn ich versuchte, die Stifte nach oben zu zwingen, um die Sondendrähte zu installieren. Die Software ist nicht so schön wie Saleae-Software. Das Scrollen durch die Daten ist bestenfalls eine lästige Pflicht.

Antworten (6)

Wenn Sie ein 32-Bit-Windows-Betriebssystem verwenden, würde ich die Verwendung von PortMon empfehlen . Es geht mindestens auf die Millisekunde. Es könnte sogar eine Mikrosekundenauflösung sein. Ich habe es in der Vergangenheit oft mit großem Erfolg verwendet.

In Ihrem speziellen Fall werden Sie jeden FTDI-Chip an einen eigenen seriellen Anschluss anschließen. Wählen Sie dann in PortMon einfach die Ports, die Sie überwachen möchten, aus dem Pulldown-Menü aus. Beide Datensätze werden mit hoher Auflösung protokolliert, und Sie können sogar Filter hinzufügen, um die Datenmenge zu reduzieren. Für die Überwachung des seriellen Protokolls füge ich den Include-Filter hinzu IRP_MJ*.

Vielen Dank an dich mein Freund! das Programm funktioniert einwandfrei!, trotzdem muss ich jeden Port einzeln öffnen (mit PuTTY), damit es erfasst werden kann. Jetzt werde ich die erfassten Daten jetzt suchen.
super, freut mich, dass es dir hilft. PortMon ist schon sehr lange mein Freund. :)
Denken Sie daran, dass die USB-Konvertierung das Timing beeinflusst und die relative Reihenfolge der Bytes auf jedem Kanal sogar anders erscheinen kann. Das Reduzieren mit Latency-Timer und Einstellungen im FTDI-Treiber kann hier einen großen Unterschied machen (Geräte-Manager->Port-Einstellungen->Erweitert). Wenn das Timing kritisch ist, gibt es keinen Ersatz für echte COM-Ports.
absolut! Sie werden eine Latenzzeit von etwa 16 ms bei der Round-Trip-Kommunikation sehen. Es ist sehr auffällig, wenn Sie das Flashen eines Mikros über einen USB-> Seriell-Adapter mit einem "echten" COM-Port vergleichen.
Eine weitere Option ist die Verwendung der Dual/Quad-UART-Chips FT2232 oder FT4323 von FTDI - diese laufen mit USB2 High Speed, sodass die Latenz von USB viel geringer sein sollte.
Mein Kollege hatte mir von einem viel besseren, neueren FTDI-Chip erzählt, der dieses Problem angeht. Muss der sein, von dem du sprichst! :) Ich werde mich darum kümmern - danke für das Teilen der Teilenummer.

Docklight ist das Tool, das Sie suchen: http://www.docklight.de/

Ich habe es schon einmal benutzt und es ist großartig. Probieren Sie es genauso aus wie PortMon.

Docklight glänzt wirklich, wenn Sie mit gemischten ASCII-/Binärprotokollen arbeiten möchten. Darüber hinaus fand ich die Makrofunktion sehr nützlich, mit der Sie eine Reihe von Bytes zum automatischen Senden vorprogrammieren können. Die automatische Antwortfunktion ist auch sehr cool. Es kann jedoch nicht zwei Ports gleichzeitig protokollieren (soweit ich mich erinnern kann).

Eine andere Option könnte com0com oder sein Schwesterprojekt hub4com sein .

com0com ist großartig und funktioniert unter 64-Bit-Windows. Ich wusste nicht, dass es protokolliert - ich habe nur seinen superpraktischen Port-Simulator / die interne Nullmodem-Loopback- / Port-Mapping-Funktion verwendet.

Ich habe so etwas explizit geschrieben, um das Gespräch zwischen meinem iPod und dem iPod-Adapter in meinem Auto zu beobachten. Die Quelle ist hier auf GitHub . Es ist ziemlich spezifisch für das iPod-Protokoll, aber ich muss in der Lage sein, die Daten, die an den iPod gesendet und von ihm empfangen werden, in Echtzeit zu sehen und eine Antwort so genau wie möglich mit seiner Anfrage abzugleichen. Das funktioniert bei mir ganz gut.

Wenn Sie ein genaues Timing wünschen, können Sie nicht zu separaten seriellen Ports gehen. Sie benötigen einen Mikrocontroller, der die Daten aus beiden Quellen erfassen und mit einer Datenrate an den PC ausgeben kann, die mehr als doppelt so schnell ist wie die Datenrate der kommunizierenden Geräte. Angenommen, die Geräte kommunizieren mit 115.200 Baud und die PC-Verbindung hat 500.000 Baud (eine von FTDI unterstützte Rate). Man könnte dann 12.500 Mal / Sekunde (alle 80 us) den Mikrocontroller einen 1-3-Byte-Datensatz ausgeben lassen, der aus einem Header und den unteren 7 Bits von Sende- und Empfangsdatenbytes besteht (letztere werden nur eingeschlossen, wenn vorhanden).

Header-Formate:
10rrRttT - Beide Bytes sind vorhanden;
             RX-Byte empfangen rr*20us nach Start des Frames; MSB ist R
             TX-Byte xx*20us nach Frame-Start empfangen; MSB ist T
11000rrR - Nur RX-Byte ist vorhanden; Daten wie oben
11001ttT - Nur TX-Byte ist vorhanden; Daten wie oben
11111111 – Weder RX- noch TX-Daten sind vorhanden;
           Die nächsten ein oder zwei Bytes können einen langen Zeitstempel liefern

Das Einfügen eines Zeitstempels für den Fall, dass keines der Datenbytes vorhanden ist, würde vermeiden, dass 12.500 Datensätze/Sekunde zu Zeiten gesendet werden müssen, zu denen nichts gesendet wurde.

Die Verwendung eines solchen Ansatzes würde eine weitaus genauere Auswertung des Daten-Timings ermöglichen, als dies mit zwei separaten seriellen Ports möglich wäre (wobei die Timing-Auflösung bestenfalls 1 ms beträgt). PC-Software müsste natürlich vorbereitet werden, um die Daten zu parsen.

Dies kann eine Zeit sein, in der es die richtige Antwort ist, die Ressourcen für den Kauf eines kostengünstigen USB-basierten Logikanalysators zu suchen. Ich habe kürzlich ein USBee SX erworben und bin sehr zufrieden. Out of the Box kann es seriell auf mehreren Leitungen (nur TTL-Pegel) decodieren und alles so synchronisiert halten, dass es weitaus besser ist als eine einzelne Bitzeit.

Es hat keinen internen RAM, also schiebt es alle Daten, die es abtastet, auf den USB. Das hat ein paar Vorteile und mindestens einen Nachteil. Ein großer Vorteil ist der Preis. Im USBee SX gibt es kaum etwas zwischen Ihren Signalen und dem USB, sodass es nicht viele Arme und Beine kosten muss. Der größte Vorteil ist die Erfassungstiefe. Sie sind nur durch den Speicherplatz auf dem PC begrenzt. Wenn Sie eine einstündige Aufnahme benötigen, um einen schwer fassbaren Zeitfensterfehler zu erkennen, kann dies der Fall sein.

Ein Nachteil ist, dass die obere Samplerate begrenzt ist, sodass alle Samples über den USB zugeführt werden können. Dies macht es weniger nützlich für digitale High-End-Logik, aber für serielle Kommunikationsprotokolle ist das wirklich keine große Sache.

Die SX-Listen für etwa 170 US-Dollar. Bei diesem Preis muss Ihr Unternehmen nicht viele Stunden einsparen, um sich auszuzahlen....

Es ist sicherlich nicht das einzige Exemplar der Rasse, aber es ist das einzige, das ich persönlich verwendet habe.

USBee-Software ist scheiße. Ich bekomme einen reproduzierbaren Absturz bei 24Ms mit 3 Logikkanälen. Ich hatte ihr AXE PRO und habe es für ein Saleae-Produkt abgeladen. Die Saleae-Software ist SOOO viel schöner.
Das ist sicherlich nicht meine Erfahrung. Ich habe mein USBee SX weiterhin auf mehreren PCs im Büro verwendet, seit ich den ursprünglichen Beitrag geschrieben habe, und die einzigen Macken, die ich gesehen habe, beziehen sich darauf, Windows Energiesparmodi ausführen zu lassen, die alle USB-Geräte zu plagen scheinen und die fast unmöglich sind reproduzieren. Natürlich ist kein Produkt perfekt, und Ihre Laufleistung kann und wird unterschiedlich sein.
Sie sind es wirklich sich selbst schuldig, die Software von Saleae auszuprobieren. Vergleichen Sie die Navigation und das Zoomen. Obwohl Saleae ein paar Typen in einer Garage sind, haben sie ein besseres Produkt, ihr Support ist scheiße und so schlecht wie der Support von USBee. Aber zumindest bei Saleae antworten die Besitzer direkt auf E-Mails. Sie haben kein Konzept für eine Software-Roadmap ... Ich könnte fortfahren. Ich denke, ich bin wählerisch und sollte nicht viel von einem 140- oder 500-Dollar-USB-Gerät erwarten, oder?