Zuerst ist dies das Setup: (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.
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*
.
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.
Eine andere Option könnte com0com oder sein Schwesterprojekt hub4com sein .
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.
Connor Wolf
JPWack
JPWack
Kohlschmied
Erich M
RBerteig
Erich M