Etwas passt nicht zusammen. Ihre Signale scheinen von Spitze zu Spitze 3,3 V zu betragen, was bedeutet, dass sie direkt aus dem Mikro kommen. Die UART-Pegel der Mikrocontroller sind jedoch (fast) immer hoch und niedrig aktiv. Ihre Signale sind davon invertiert, was keinen Sinn ergibt.
Um diese Daten schließlich in einen PC zu übertragen, müssen sie in RS-232-Pegel konvertiert werden. Dies ist, was ein PC-COM-Port erwartet. RS-232 ist im Leerlauf niedrig und aktiv hoch, aber niedrig ist unter -5V und hoch ist über + 5V. Glücklicherweise gibt es dafür Chips, die es einfach machen, zwischen typischen UART-Signalen mit Mikrocontroller-Logikpegel und RS-232 zu konvertieren. Diese Chips enthalten Ladungspumpen, um die RS-232-Spannungen von Ihrem 3,3-V-Netzteil zu erzeugen. Manchmal werden diese Chips allgemein als "MAX232" bezeichnet, da dies eine Teilenummer für einen frühen und beliebten Chip dieses Typs war. Sie benötigen eine andere Variante, da Sie anscheinend 3,3 V und nicht 5 V verwenden. Wir stellen ein Produkt her, das im Grunde genommen einer dieser Chips auf einer Platine mit Steckverbindern ist. Gehen Sie zu http://www.embedinc.com/products/rslink2Schauen Sie sich den Schaltplan an, um ein Beispiel für den Anschluss eines solchen Chips zu sehen.
Eine andere Sache, die sich nicht summiert, ist, dass beide Sequenzen mehr als ein Byte zu sein scheinen, obwohl Sie sagen, dass Sie nur 0 und 255 senden. Diese Art von seriellen Daten wird mit einem Startbit gesendet, dann mit den 8 Datenbits. dann ein Stoppbit. Das Startbit hat immer die entgegengesetzte Polarität zum Leitungsleerlaufpegel. In den meisten Beschreibungen wird der Leitungsleerlaufpegel als "Leerzeichen" und das Gegenteil als "Marke" bezeichnet. Das Startbit ist also immer an der Marke. Der Zweck des Startbits besteht darin, die verbleibenden Bits zeitlich zu synchronisieren. Da beide Seiten wissen, wie lang ein Bit ist, ist die einzige Frage, wann der Anfang eines Bytes ist. Das Startbit liefert diese Information. Der Empfänger startet im Wesentlichen einen Takt an der Vorderflanke des Startbits und verwendet diesen, um zu wissen, wann die Datenbits kommen werden.
Die Datenbits werden in der niedrigstwertigen Reihenfolge gesendet, wobei die Markierung 1 und das Leerzeichen 0 sind. Ein Stoppbit auf der Leerzeichenebene wird hinzugefügt, damit der Start des nächsten Startbits eine neue Flanke ist, und um etwas Zeit zu lassen zwischen Bytes. Dies ermöglicht einen kleinen Fehler zwischen Sender und Empfänger. Wäre der Empfänger auch nur ein bisschen langsamer als der Sender, würde er sonst den Start des nächsten Startbits verpassen. Der Empfänger setzt jedes neue Startbit zurück und startet seine Uhr neu, damit sich keine Zeitfehler ansammeln.
An all dem sollte man also erkennen können, dass der erste Trace mindestens zwei Bytes sendet und der letzte wie vielleicht 5 aussieht.
Es wäre hilfreich, wenn Sie die Zeitskala der Spuren erweitern würden. Auf diese Weise können Sie messen, was ein bisschen Zeit wirklich ist. Auf diese Weise können Sie überprüfen, ob Sie wirklich 9600 Baud (104 µs / Bit) haben, und einzelne Bits eines Captures dekodieren. Derzeit gibt es nicht genügend Auflösung, um festzustellen, wo sich die Bits befinden, und decodieren daher tatsächlich, was gesendet wird.
Hinzugefügt:
Mir ist gerade eingefallen, dass Ihr System die Daten möglicherweise in ASCII anstelle von Binär sendet. Dies ist im Allgemeinen nicht der Fall, da die Konvertierung in ASCII in dem kleinen System weniger Ressourcen beansprucht, die Bandbreite nicht ausreicht und die Konvertierung auf dem PC einfach ist, wenn Sie die Daten einem Benutzer anzeigen möchten. Wenn Ihre Übertragungen jedoch ASCII-Zeichen sind, erklärt dies, warum die Sequenzen mehr als ein Byte umfassen, warum die zweite länger ist ("255" enthält mehr Zeichen als "0") und warum beide offenbar im selben Byte enden. Das letzte Byte ist wahrscheinlich eine Art Zeilenendezeichen, das normalerweise ein Wagenrücklauf oder ein Zeilenvorschub ist.
Wie auch immer, erweitern Sie die Zeitskala und wir können genau dekodieren, was gesendet wird.