UART-Protokollanalyse

1. Vertragsgrundlage

1.1. Einführung in das Abkommen

UART ist „Universal Asynchronous Receiver/Transmitter“, kurz für Universal Asynchronous Transceiver. Um das Problem der Kommunikation zwischen Computer und Fernschreiber zu lösen, erfand Bell in den 1860er Jahren das UART-Protokoll, das parallele Eingangssignale in serielle Ausgangssignale umwandelt. Aufgrund seiner einfachen und praktischen Natur ist UART zu einem sehr weit verbreiteten Kommunikationsprotokoll geworden. Die seriellen Ports, denen wir täglich ausgesetzt sind, RS232, RS485 und andere Busse, die interne Verwendung ist im Grunde das UART-Protokoll.

Um die Beziehung zwischen Protokollen und Bussen besser zu verstehen und zu analysieren, unterteilen wir normalerweise eine vollständige Kommunikationsspezifikation in physikalische Schichten, Protokollschichten und Anwendungsschichten. Die physikalische Schicht definiert nur die wahren Signaleigenschaften (wie Spannung, Strom, Treiberkapazität usw.) und die Entsprechung zwischen dem elektrischen Signal und dem logischen Signal 0 und 1; Die Protokollschicht kümmert sich nicht darum, wie die zugrunde liegenden Nullen und Einsen implementiert werden, sondern spezifiziert nur die Protokollspezifikationen der logischen Signale und des Kommunikationsprozesses (wie Start, Daten und Ende usw.); Die Anwendungsschicht kümmert sich nicht darum, wie die Daten gewonnen werden, sondern definiert nur die Bedeutung der Datendarstellung und die Implementierung der spezifischen Geschäftslogik.

Die einfachste Anwendung des UART-Protokolls, normalerweise benötigt die physikalische Schicht nur zwei Übertragungsleitungen, eine zum Senden und eine zum Empfangen, wodurch eine Vollduplex-Kommunikation erreicht wird. Für unidirektionale Übertragungen können Sie auch nur eine Übertragungsleitung verwenden. Das typischste Beispiel für eine solche Anwendung sind die RX/TX-Ports des Mikrocontrollers, die miteinander verbunden sind und eine auf TTL-Pegel basierende UART-Kommunikation ermöglichen. Für unterschiedliche Übertragungsentfernungen und Zuverlässigkeitsanforderungen können durch Ersetzen verschiedener Implementierungen der physikalischen Schicht unsere gemeinsamen RS232-, RS485- und andere Kommunikationsbusse erhalten werden.

1.2. Verschiedene Implementierungen der physikalischen Schicht

Da die Eingabe in die UART-Protokollschicht ein logisches 0/1-Signal ist, kann das logische 0/1-Signal durch unterschiedliche Pegelstandards in der physikalischen Schicht unterschieden werden. Für unterschiedliche Kommunikationsanforderungen können unterschiedliche physikalische Schichten verwendet werden. Zum Beispiel einfache On-Board-Kommunikation oder allgemeine Geräte-Debugging-Szenarien, die UART-Protokollkommunikation zwischen zwei Geräten kann unter Verwendung eines einfachen LVTTL/TTL-Pegels ausgeführt werden.

Der universelle serielle Anschluss verwendet den RS232-Pegel, der die Übertragungsentfernung erhöhen und einem gewissen Grad an Signalstörungen widerstehen kann. Die Kosten bestehen darin, dass der entsprechende Pegelumsetzungschip auf der physikalischen Schicht erforderlich ist, um dies zu erreichen, der Sender muss das interne Signal mit hohem und niedrigem Pegel in ein +/- Spannungssignal mit höherer Spannung umwandeln, und das empfangende Ende muss das +/ - Spannungssignal in ein internes Signal mit hohem und niedrigem Pegel.

Bei der industriellen Kommunikation wird zur weiteren Verbesserung der Übertragungsdistanz und Erhöhung der Signalzuverlässigkeit im Allgemeinen der RS485-Pegelstandard verwendet. Die gewöhnlichen Signale mit hohem und niedrigem Pegel werden am Sendeende in ein Paar Differenzsignale umgewandelt, und die Differenzsignale werden am Empfangsende in gewöhnliche Signale mit hohem und niedrigem Pegel umgewandelt. Darüber hinaus ermöglicht RS485 den Anschluss von bis zu 128 Transceivern am Bus, während TTL oder RS232 Punkt-zu-Punkt-Verbindungen sind.

1.2.1. TTL-basierte UART-Kommunikation

Die auf TTL basierende UART-Kommunikation ist der einfachste Anwendungsfall für UART-Protokollanwendungen. Das heißt, die High- und Low-Pegel des digitalen I/O-Ausgangs werden direkt als tatsächliches physikalisches Signal übertragen. In Bezug auf die physische Verbindung muss nur das Gerät eine gemeinsame Masse sein, und die Gerätekommunikation in eine Richtung kann über eine Signalleitung abgeschlossen werden. Wenn bidirektionaler Vollduplex erforderlich ist, werden zwei Signalleitungen verwendet.

Um die Unterschiede in der Implementierung verschiedener physikalischer Schichten zu vergleichen, können wir beobachten, wie sich die tatsächlichen Signale verschiedener physikalischer Schichten unterscheiden, wenn dieselben Daten gesendet werden. Beobachten Sie hier am Beispiel des Übertragungszeichens „D“ durch das Stone-Oszilloskop direkt das vom TTL übertragene Signal (der Erdungsanschluss des Tastkopfs ist mit dem gemeinsamen Erdungsende des Geräts verbunden, und das Signalende des Tastkopfs ist mit verbunden die blaue Signallinie in der obigen Abbildung), und die in Abbildung 1-4 gezeigte Signalwellenform kann erhalten werden. Wie aus der Wellenform ersichtlich, bleibt das UART-Signal bei fehlender Datenübertragung auf High-Pegel (die spezifische Signalamplitude wird durch die Versorgungsspannung des I/O bestimmt), das Signal springt während der Datenübertragung , und das Signal kehrt in den Ruhezustand mit hohem Pegel zurück, nachdem die Übertragung abgeschlossen ist.

1.2.2. UART-Kommunikation basierend auf RS232

Um die Antriebsfähigkeit zur Erhöhung der Übertragungsentfernung und Zuverlässigkeit zu verbessern, verwendet der RS232-Bus ein bipolares Spannungssignal für die physikalische Übertragung. Vor dem Senden/Empfangen des Signals werden das interne Signal und das Bussignal mittels eines Level-Shifting-Chips ineinander gewandelt. Die Verbindungsmethode ist genau die gleiche wie beim TTL-Pegel, und die gesamte physikalische Schicht ist nur eine weitere Ebene der Pegelumsetzung.

Unter Verwendung des Sendezeichens „D“ als Beispiel wird die Sonde des Pushi-Oszilloskops mit dem Signalende verbunden, und die in Abbildung 1-6 gezeigte tatsächliche Wellenform kann erfasst werden. Es ist ersichtlich, dass die RS232-Wellenform im Leerlauf eine negative Spannung ist, und wenn eine Datenübertragung stattfindet, beginnt das Signal zwischen positiven und negativen Spannungen zu springen und kehrt nach Abschluss der Übertragung in den negativen Leerlaufspannungszustand zurück.

1.2.3. UART-Kommunikation basierend auf RS485

Der RS485 ist für komplexe industrielle Umgebungen ausgelegt, und das größte Merkmal des RS485-Bus ist die Verwendung einer differentiellen Signalübertragung im Vergleich zu den physikalischen Schichten anderer UART-Protokolle. Bevor das Signal gesendet wird, wird das Single-Ended-Signal vom RS485-Transceiver in ein Differenzsignal umgewandelt und dann zur Übertragung an den Bus gesendet. Auch vor dem Empfang wird das Differenzsignal auf dem Bus vom Transceiver in ein Single-Ended-Signal umgewandelt und dann zum Empfang an den UART-Controller gesendet. Auf dem RS485-Bus sind zwei Paare differentieller Signalleitungen (dh 4 Signalleitungen) für eine bidirektionale Vollduplex-Kommunikation erforderlich. Wenn nur Halbduplex-Zweiwegkommunikation durchgeführt wird, ist nur ein Paar Differenzsignale erforderlich.

Unter erneuter Verwendung des Sendezeichens „D“ als Beispiel kann die in Abbildung 1-8 gezeigte tatsächliche Wellenform mit zwei Kanalsonden (allgemein bezeichnet) der Sonden des Pushi-Oszilloskops erfasst werden, die mit den A/B-Enden verbunden sind eines der Differenzsignale. Es ist ersichtlich, dass die Wellenform am A/B-Ende komplementär ist. Die Wellenform des A-Anschlusses ist Vorwärtslogik (positive Spannung im Leerlauf) und die Wellenform des B-Anschlusses ist Rückwärtslogik (negative Spannung im Leerlauf).

2. Protokollspezifikationen

2.1. UART-Rahmenstruktur

In der Einleitung des vorherigen Abschnitts haben wir die tatsächliche UART-Wellenform durch das Stone-Oszilloskop beobachtet. Wie genau wird diese Wellenform also genau als das Zeichen „D“ und nicht als etwas anderes erkannt? Dabei geht es um die Definition der Rahmenstruktur des UART-Protokolls. Wie in Abbildung 2-1 gezeigt:

Wenn zwei Geräte über das UART-Protokoll kommunizieren müssen, müssen sie sich gleichzeitig auf Folgendes einigen:

  • Zeitdauer pro Signal T (Baudrate = 1/T)
  • Die spezifische Anzahl von Bits in jedem Element in der Rahmenstruktur
  • Ob es eine Prüfziffer gibt und den Mechanismus der Prüfziffer (ungerade/gerade/…). )

Mit diesen Konventionen muss das Empfangsgerät nur auf die Ankunft des Startbits warten und dann die nachfolgende Wellenform in regelmäßigen Abständen abtasten, um die übertragenen spezifischen Informationen zu erhalten. Am Beispiel der Wellenform des Zeichens „D“ ist der Auflösungsprozess in Abbildung 2-2 dargestellt:

2.1.1. Baudrate

Die Baudrate ist ein sehr wichtiges Konzept des UART-Protokolls oder aller asynchronen seriellen Protokolle, dh die Anzahl der Bits, die pro Zeiteinheit (1 Sekunde) dargestellt werden können, oder sie kann auch als Kehrwert der Bitbreite ausgedrückt werden . Beispielsweise bedeutet eine UART-Wellenform mit einer Baudrate von 115200, dass sie 115200 Bits pro Sekunde aufnehmen kann, was bedeutet, dass jedes Datenbit etwa 8.68 uS Zeit ausmacht.

Asynchrone serielle Protokolle wie UART haben, um die physikalische Verbindung von Signalen zu vereinfachen und Kommunikationskosten zu reduzieren, im Allgemeinen nur eine Signalleitung und können Daten und Taktsignale nicht gleichzeitig übertragen. Damit der Transceiver/das sendende Gerät die Wellenform korrekt auflösen kann, muss es dieselbe Baudrateneinstellung haben. Dieselbe Wellenform mit unterschiedlichen Baudraten kann völlig unterschiedliche Informationen liefern. Für das empfangende Gerät kann nur das Startbit als Synchronisationspunkt eines Datenrahmens verwendet werden, und die anderen Daten werden durch die Baudrate bestimmt, um den spezifischen Abtastort zu bestimmen.

Wenn Sie erneut die Wellenform des Zeichens „D“ als Beispiel verwenden, wie in Abbildung 2-4 gezeigt, erhalten Sie möglicherweise völlig falsche Dateninformationen, wenn es mit der falschen Baudrate empfangen wird.

2.1.2. Leerlaufbits

Wenn keine Daten zwischen Geräten übertragen werden, zeigt ein anhaltend hoher Pegel Leerlauf an. Je länger die Ruhebitdauer und je länger der Abstand zwischen zwei Datenrahmen ist, desto weniger Daten werden pro Zeiteinheit übertragen.

2.1.3. Bit starten

Der UART-Empfänger erkennt immer die Pegeländerung auf der Signalleitung, und wenn die Daten übertragen werden, zieht der Sender die Signalleitung vom hohen Pegel bis zum Ende des niedrigen Pegels in den Ruhezustand und hält ein wenig Zeit. Wenn der Empfänger eine High-Low-Pegelverschiebung erkennt, beginnt er mit dem Empfang von Signalen.

2.1.4. Daten Bits

Das Datenbit enthält die tatsächlich übertragenen Daten, die 5 bis 8 Bit lang sind, wenn Parität verwendet wird, und 5 bis 9 Bit lang, wenn Parität nicht verwendet wird. Im Allgemeinen sind die Datenbits 8 Bits, und die Daten werden zuerst vom niederwertigsten Bit gesendet, wobei die hohen Bits an zweiter Stelle kommen.

2.1.5. Ziffern prüfen

Die Prüfziffern können verwendet werden, um die Zuverlässigkeit der Übertragung zu verbessern. Wenn das Signal aufgrund von Störungen im Übertragungsprozess falsch ist und einen Fehler im Pegel einiger Positionen verursacht, kann bestimmt werden, ob die empfangenen Daten und die Prüfziffer übereinstimmen, indem berechnet wird, ob die empfangenen Daten und die Prüfziffern übereinstimmen, also um gültige Informationen an die Anwendungsschicht zu liefern, um zu entscheiden, die entsprechenden Daten zu akzeptieren/zu verwerfen.

2.1.6. Stop-Bit

Das Stoppbit stellt das Ende eines Datenrahmens dar, und das eigentliche Signal ist eine Zeit lang hoch. Die Länge des Stoppbits kann auf ein Stoppbit von 1, 1.5 oder 2 Bit eingestellt werden. In den meisten Fällen wird ein Stoppbit von 1 Bit verwendet.

Da es sich bei UART um ein asynchrones Protokoll handelt, kann der Beginn jedes Frames mit einer Sprungflanke synchronisiert werden, das Stoppbit kann aber nur durch die Baudrate die relative Position berechnen, und wenn an der Stoppposition ein Low-Pegel erkannt wird, ein Framefehler generiert wird. Um das durch den Fehler der Baudrate verursachte Problem im Kommunikationsprozess zu reduzieren, können verschiedene Stoppbitlängen zur Anpassung eingestellt werden.

3. Analysieren Sie die UART-Kommunikation mit einem Logikanalysator

3.1. Oszilloskop vs. Logikanalysator

Als wichtigstes Allzweck-Test- und Messinstrument haben Oszilloskope einen natürlichen Vorteil bei der Beobachtung der Details analoger Signale. Beispielsweise kann ein Echtzeitbetrieb mit einer hohen Wellenform-Aktualisierungsrate leicht plötzliche anormale Signale beobachten; Beispielsweise kann das Oszilloskop bei der Rauschbewertung und Signalqualitätsoptimierung die Ähnlichkeiten und Unterschiede von Signalen auf demselben Bus und verschiedenen Knoten vergleichen, um versteckte Signalintegritätsprobleme zu finden.

Allerdings hat das Oszilloskop natürlich auch einige unbequeme Stellen, neben den wenigen Kanälen, der Bildschirm ist generell klein, die Bedienung ist nicht Computer + Mausweise flexibel und beherrschbar sind diese morphologischen Probleme, für die Erfassung und Analyse digitaler Signale, die größten Problem des Oszilloskops ist, dass die Speichertiefe zu gering ist. Ein Oszilloskop von mehreren hunderttausend Yuan kann auch eine Speichertiefe von nur wenigen hundert Mpts haben. Gleichzeitig fällt aufgrund der Begrenzung der Speichertiefe die tatsächliche Abtastrate des Oszilloskops stark ab, wenn eine etwas längere Zeiterfassung erforderlich ist, was dazu führt, dass die erfasste Wellenform das echte Signal nicht wiederherstellen kann und das verloren geht Bedeutung der Analyse.

Logikanalysatoren sind Test- und Messinstrumente, die speziell für die digitale Signalerfassung und -analyse entwickelt wurden, und die gesammelten Wellenformergebnisse sind nur hohe und niedrige Pegel (d. h. logisch 0 und 1). Es gleicht jedoch das Fehlen von Oszilloskopen beim Erfassen und Analysieren digitaler Signale aus.

  1. 1. Die meisten Logikanalysatoren werden auf einem PC betrieben, mit der starken Leistung von Desktop-Prozessoren und der interaktiven Erfahrung ausgereifter Betriebssysteme, was den Komfort und die Effizienz der digitalen Signalanalyse erheblich verbessert.
  2. 2. Die Anzahl der Logikanalysatorkanäle ist groß, der DSLogic-Logikanalysator der Einstiegsklasse verfügt über 16 Kanäle, die gleichzeitig gesammelt werden können, und der Benutzer kann auch Logikanalysatorprodukte mit Dutzenden oder sogar Hunderten von Kanälen zu einem sehr günstigen Preis erwerben kosten.
  3. 3. Die Speichertiefe des Logikanalysators ist größer, z. B. kann DSLogic im Stream-Modus eine Speichertiefe von 16 G erreichen und gleichzeitig eine ziemlich hohe Abtastrate aufrechterhalten, die die Erfassungsfähigkeit der meisten Oszilloskope bei weitem übersteigt.
  4. 4. Logikanalysatoren bieten im Allgemeinen umfangreiche Protokolldecodierungsfunktionen, die eine eingehende Analyse digitaler Signale durchführen können. Beispielsweise unterstützt DSLogic derzeit mehr als 100 Dekodierungsprotokolle. Die meisten Oszilloskope haben begrenzte Dekodierungsfunktionen und für die meisten müssen die entsprechenden Plug-Ins separat erworben werden.

Als nächstes konzentrieren wir uns auf die Verwendung von Logikanalysatoren für die Erfassung und Analyse von UART-Signalen in verschiedenen Situationen.

3.2. Richten Sie eine Testumgebung für Logikanalysatoren ein

3.2.1. Verbindung zu DSLogic

DSLogic ist ein tragbarer Logikanalysator, der auf USB-Konnektivität basiert. Der DSLogic-Host ist für die Signalerfassung und das Zwischenspeichern verantwortlich und überträgt die Daten dann über USB an die Host-Computersoftware DSView auf dem PC. DSView ist verantwortlich für die Verarbeitung, Anzeige, Analyse und die entsprechenden Mensch-Computer-Interaktionsfunktionen von Wellenformdaten.

Schließen Sie bei der Verwendung einfach den DSLogic-Host über ein USB-Datenkabel direkt an den USB-Port auf der PC-Platine an, öffnen Sie die DSView-Software und bestätigen Sie, dass die ANZEIGE auf dem DSLogic-Host dauerhaft grün wird. An diesem Punkt ist die Verbindung und Initialisierung des Logikanalysators abgeschlossen. Wie in Abbildung 3-4 gezeigt, kann der aktuelle Gerätename in der oberen linken Ecke und der entsprechende Verbindungsstatus auf der DSView-Software beobachtet werden.

3.2.2. UART-Signalverbindung

Bei allen Messungen müssen die Messeinrichtung und das zu messende Signal auf einer gemeinsamen Bezugsebene, die gemeinhin als Erdung bezeichnet wird, aufliegen, damit das Messsignal korrekt erfasst und gemessen werden kann. In einigen Fällen gibt es keine explizite Erdung, aber die Messergebnisse scheinen kein Problem zu sein, da die Messausrüstung und das gemessene Signal auf andere Weise mit der Erde verbunden sind, z. B. dieselbe verwendete Stromversorgung oder die Referenz Erde wird gleichzeitig mit der Erdungsklemme des Netzes verbunden. Bei strengen Messungen sollte die Messausrüstung jedoch entsprechend dem zu testenden Signal geerdet werden. Je größer die Schleifenfläche der Signalerdungsklemme vom Messsignal zum Messgerät ist, desto leichter kann das Signal gestört werden, was zu Messfehlern oder gar Messfehlern führt.

Für UART-Signale müssen beim Zugriff auf den Logikanalysator im einfachsten Fall nur 2 Drähte verbunden werden, einer mit der Bezugsmasse und einer mit dem gemessenen Signal. Für die verschiedenen Implementierungen der physikalischen Schicht des UART-Protokolls, die wir zuvor erwähnt haben, ist die Art und Weise, wie die Signale verbunden sind, etwas anders.

Beispielsweise muss für das UART-Signal auf TTL-Pegel zusätzlich zum Anschluss der Bezugsmasse nur das zu testende Signal (TX oder RX) mit dem entsprechenden Kanaleingang des Logikanalysators verbunden werden.

Bei RS232-Bussignalen können wir entweder das Bussignal nach der Pegelumsetzung messen (DSLogic hat einen Spannungsfestigkeitsbereich von +-30 V am Kabeleingang, und der Signalbereich von +-15 V von RS232 kann direkt angeschlossen werden), oder wir können messen das interne Digitalsignal vor der Pegelumsetzung. Seine Verdrahtungsmethode stimmt mit dem TTL-Signal überein, das einzige, was zu beachten ist, ist, dass das RS232-Signal den Pegel umkehrt (negative Spannung im Leerlauf, dh niedriger Pegel), wenn wir das UART-Protokoll decodieren, können wir den entsprechenden Signalpegel umkehren das Dekodierungseinstellungsfenster von DSView (Option „Signal umkehren“ ist auf „Ja“ eingestellt).

Der RS485-Bus verwendet differentielle Signale, und wenn wir einen Logikanalysator zur Signalerfassung verwenden, müssen wir besonders auf die Verbindung des gemessenen Signals achten. Zunächst muss die Referenzseite des Logikanalysators mit der Bezugsmasse des entsprechenden RS485-Transceivers des zu testenden Geräts verbunden werden, damit der Logikanalysator garantiert die richtige Pegelbezugsebene hat; Zweitens muss der Logikanalysator für differentielle Signale nur hohe und niedrige Homopolaritätspegel mit dem internen Signal erfassen. Aus der Perspektive digitaler Signale verbessert der differenzielle Weg nur die Zuverlässigkeit der Signalübertragung, ohne zusätzliche Informationen hinzuzufügen. Wie in Abbildung 3-7 gezeigt, verbinden Sie beim Testen des 485-Bussignals mit einem Logikanalysator die Bezugserde des Transceivers des entsprechenden Geräts und das A+-Signal auf dem Differenzbus.

Wenn nur das B-Signal gesammelt werden kann, können wir natürlich auch den UART-Decoder so einstellen, dass er das Signal umkehrt, um beim Decodieren in DSView das richtige Ergebnis der Protokollauflösung zu erhalten.

3.2.3. Schwellenwerteinstellungen

Die Schwelle des Logikanalysators ist die Beurteilungsspannung von hohen und niedrigen Pegeln, das heißt, wenn die Eingangssignalspannung höher als die Schwellenspannung ist, ist die Erfassung ein hoher Pegel; Wenn die Eingangssignalspannung unter der Schwellenspannung liegt, ist die Erfassung niedrig.

Für das UART-Protokoll haben wir zuvor eingeführt, dass es unterschiedliche Implementierungen der physikalischen Schicht hat und dass unterschiedliche Implementierungen der physikalischen Schicht unterschiedliche Niveaustandards haben. Wir müssen nur einen entsprechenden Schwellenwert wählen, um in verschiedenen Fällen zwischen hohen und niedrigen Pegeln zu unterscheiden. Die in Abbildung 3-8 dargestellten Schwellen können diese Anforderung grundsätzlich erfüllen.

In einigen Fällen kann die differentielle Signalamplitude des RS485-Busses aufgrund von Konfiguration oder Fehlersuche über einen weiten Bereich variieren. Denn die RS485-Spezifikation legt fest, dass die Differenzspannung zwischen AB größer als 200 mV als hoch angesehen werden kann. An diesem Punkt können wir das Stone-Oszilloskop verwenden, um die tatsächliche Signalpegelamplitude zu beobachten und dann über die geeignete Schwellenwerteinstellung zu entscheiden. Sie müssen nur sicherstellen, dass die von Ihnen eingestellte Schwellenspannung vernünftig zwischen hohen und niedrigen Pegeln unterscheiden kann.

3.3. Einfache UART-Signalerfassung

Die meisten UART-Signale sind Signale mit niedriger Geschwindigkeit, wie z. B. die am häufigsten verwendete Baudrate von 115200, was darauf hinweist, dass die Signalfrequenz nur 115.2 kHz beträgt. Solche Signale können direkt mit den Standardeinstellungen von DSLogic erfasst werden. Hier wird am Beispiel des festen 1s-Intervalls des Hosts und dem wiederholten Senden des Zeichens „D“ beschrieben, wie ein Logikanalysator verwendet wird, um solche UART-Signale zu erfassen und zu analysieren.

3.3.1. Signalerfassung

Nachdem die Hardware- und Signalverbindung vorbereitet sind, klicken Sie direkt auf die Schaltfläche „Start“ der DSView-Software, um das zu testende Signal mit der Standardeinstellung (1 MHz Abtastrate Erfassungszeit 1 s) zu erfassen. Wenn Sie die Abtastrate und die Erfassungsdauer ändern möchten, wählen Sie die entsprechenden Parameter direkt in der entsprechenden Dropdown-Box aus. Es wird empfohlen, dass das Abtastraten-Einstellungsprinzip das 10-fache oder mehr der maximalen Frequenz des gemessenen Signals beträgt, z. B. für UART-Signale mit einer Baudrate von 115200 Baud beträgt die schnellste Signalfrequenz 115.2 kHz, wenn die Abtastrate 1M beträgt ausgewählt, hat jedes Bitsignal 8 oder 9 Abtastpunkte und der entsprechende Phasenfehler beträgt +-1/8 (12.5%); Wenn eine Abtastrate von 10 M gewählt wird, gibt es 86 oder 87 Abtastpunkte pro Signalbit, was einem Phasenfehler von +-1/86 (1.16 %) entspricht. Natürlich wird im Allgemeinen nicht empfohlen, eine zu hohe Abtastrate zu verwenden, da je höher die Abtastrate, desto kürzer die Zeit, für die sie gesammelt werden kann, und eine zu hohe Abtastrate mehrere Sprünge auf einem einzigen Sprung erfassen kann Flanke des langsamen Signals, wodurch Probleme bei der Protokolldecodierung verursacht werden. Abbildung 3-9 zeigt die resultierende Signalwellenform, die mit den Standardeinstellungen erfasst wurde.

Wie in Abbildung 3-9 zu sehen ist, erfasst Kanal 0 ein dauerhaft hohes Signal, findet aber keine Sprünge. Beobachten Sie sorgfältig die Zeitleiste über dem Wellenformfenster und die Bildlaufleiste am unteren Rand des Fensters, um zu wissen, dass das aktuelle Fenster nur einen Teil der erfassten Wellenform anzeigt, nicht alle Signale. An dieser Stelle können Sie mit dem Mausrad zoomen oder mit der rechten Maustaste in den Wellenformbereich klicken, um alle Wellenformen für die gesamte Erfassungsdauer anzuzeigen. Erhalten Sie das in Abbildung 3-10 gezeigte Ergebnis.

Auf der Grundlage der obigen Abbildung wollen wir nur den Übergangsteil von Kanal 0 betrachten. Sie können die Wellenformanzeige anderer Kanäle im Optionsfenster ausschalten und die Anzeigehöhe des Kanalsignals anpassen. Zeigen Sie dann mit der Maus auf die Zielwellenform und gleichzeitig durch das Mausrad, um die Wellenform der angezeigten Position zu vergrößern; Alternativ können Sie den Bereich der Wellenform, den Sie vergrößern möchten, auswählen, indem Sie die rechte Maustaste im Feld gedrückt halten. Halten Sie außerdem die linke Maustaste gedrückt, um die Wellenform nach links und rechts zu verschieben. Rufen Sie die in Abbildung 3-11 gezeigten Wellenformdetails ab.

Beim Beobachten der Wellenform können durch Platzieren der Maus über der Pulswellenform Informationen wie Pulsbreite, Periode, Frequenz und Arbeitszyklus des Stromsignals angezeigt werden. Gleichzeitig können Sie auch einen Cursor hinzufügen, indem Sie mit der linken Maustaste doppelklicken, und wenn Sie den Cursor bewegen, springt er automatisch auf die nahegelegene Sprungkante.

3.3.2. UART-Decodierung

Der vom Logikanalysator erfasste Signalverlauf ändert sich zeitlich nur bei High- und Low-Pegeln (0/1), was unserer gezielten Analyse des Ablaufs und Inhalts der Signalübertragung nicht förderlich ist. Obwohl wir das bloße Auge verwenden können, um den Protokollinhalt entsprechend der Wellenform gemäß der Protokollspezifikation zu übersetzen, wird dies die Effizienz der Analyse erheblich verringern. Der integrierte Decoder von DSView bietet reichhaltige Inhalte zur Protokolldecodierung und verwandelt langweilige Wellenformen in aussagekräftige Zeichen, Markierungen und Dateninhalte. Es erleichtert Ingenieuren die Analyse und das Verständnis von Signalen erheblich, um Fehlermeldungen oder kritische Daten zu finden.

In der DSView-Software ist die Protokolldecodierung der erfassten Wellenform sehr einfach, öffnen Sie einfach das „Decode“-Panel, suchen Sie nach dem entsprechenden Decoder (hier wählen wir 1: UART-Protokoll) und stellen Sie die entsprechenden Decoder-Optionen ein (einschließlich Anzeige/Kanal /Rahmenstruktur/Format usw.). Nach der Bestimmung beginnt die Software, das Protokoll des UART auf dem ausgewählten Kanal zu decodieren. Das decodierte Ergebnis wird im Protokollkanal angezeigt. Dies ist in Abbildung 3-12 dargestellt.

Bei der Auswahl eines Decoders bietet DSView eine bequeme Protokollsuchfunktion, geben Sie einfach Schlüsselzeichen in das Protokollsuchfeld ein, DSView listet alle Decoder auf, die diese Zeichen enthalten, wo der Benutzer den richtigen Decoder auswählen kann. Wie in Abbildung 3-13 gezeigt, gibt es zwei Protokolle im Zusammenhang mit UART 0: UART und 1: UART, wobei 0: UART ein vereinfachter Decoder ist, der keine Bitinformationen analysiert und auch nicht das Stapeln von Protokollen höherer Ebene unterstützt. Wenn wir nur die der Wellenform entsprechenden Daten erhalten möchten, können Sie dieses vereinfachte Protokoll verwenden, um die Dekodierungszeit und die Speicherressourcen zu reduzieren.

Das Einstellungsfenster des Decoders hat viele Einstellungsoptionen in Bezug auf die Dekodierung, und der Inhalt des Einstellungsfensters verschiedener Protokolle ist unterschiedlich. Es gibt einige Optionen, die alle Decoder einstellen müssen, wie z. B. die Entsprechung zwischen Kanal- und Protokollsignalen. Hier verwenden wir das von Kanal 0 erfasste UART-Signal, daher sollte der entsprechende Kanal, der decodiert werden muss, auf Kanal 0 eingestellt werden.

Und protokollbezogene Einstellungsoptionen, die wir ausführlich im Abschnitt Frame-Struktur erläutert haben, können im eigentlichen Betrieb auch über die Host-Computersoftware für serielle Ports (Debugging-Assistent für serielle Ports usw.) abgerufen werden, um diese Informationen zu erhalten. Dies ist in Abbildung 3-14 dargestellt.

Für decodierte Dateninhalte unterstützt DSView verschiedene Anzeigeformate. Beispielsweise zeigt das zuvor erfasste UART-Signal das Zeichen „D“ in Form von ASCII-Codes an, oder es kann in den Anzeigemodus Hexadezimal (Hex) geändert werden, und das Ergebnis zeigt 0x44 an. Dies ist in Abbildung 3-15 dargestellt. Derzeit unterstützte Anzeigeformate sind: hex (hexadezimal), dec (dezimal), oct (oktal), bin (binär) und ASCII-Code.

3.4. Erfassung einer einzelnen UART-Übertragung

Wenn die Wellenform, die wir erfassen möchten, ein gelegentliches Signal ist, wissen wir nicht, wann die Wellenform erscheinen wird, und wenn wir die direkte Erfassungsmethode verwenden, können wir möglicherweise die meiste Zeit nur die Wellenform des Leerlaufsignals erfassen, aber wir können es nicht Erfassen Sie das Signal zum Zeitpunkt der tatsächlichen Übertragung.

Zu diesem Zeitpunkt kann es durch Auslösen erfasst werden. Durch Einstellen der entsprechenden Triggerbedingungen können wir die Startzeit der Signalerfassung entsprechend der Änderung der Wellenform steuern, um die gewünschte Signalwellenform genau zu erfassen.

3.4.1. Puffermodus

DSLogic unterstützt zwei Erfassungsmodi: Stream-Modus und Buffer-Modus. Die im Stream-Modus gesammelten Daten werden in Echtzeit an den PC übertragen und dann von DSView verarbeitet. Die im Puffermodus gesammelten Daten werden zunächst im internen Hardware-Cache von DSLogic zwischengespeichert und dann nach Abschluss der Erfassung auf den PC übertragen und von DSView verarbeitet.

Zusätzlich zu den Vorteilen, höhere Abtastraten zu erreichen, unterstützt der Puffermodus auch mehr Triggeroptionen und -einstellungen, wie z. B. mehrstufiges Triggern, serielles Triggern und Einstellen von Triggerpositionen. Der Stream-Modus hingegen unterstützt nur einfaches Triggern.

3.4.2. Trigger-Einstellungen

Für eine einfache Triggerung können wir die Triggeroption direkt neben dem Kanal setzen. Es entspricht der Reihe nach einer steigenden Flanke, einem hohen, einer fallenden Flanke, einem niedrigen Pegel und einem beliebigen Flankentrigger. Behalten Sie einfach den standardmäßigen einfachen Triggermodus im Triggerpanel bei. Beispielsweise können wir für eine UART-Übertragung, die nicht weiß, wann sie auftritt, wählen, die fallende Flanke auszulösen. Wenn das UART-Signal im Leerlauf bleibt, ist der Trigger nicht erfüllt. DSLogic wartet auf das Eintreffen der Triggerbedingung, wie in Abbildung 3-17 gezeigt.

Wenn der UART mit der Übertragung des ersten Startbits beginnt, wird die Triggerbedingung aktiviert und DSLogic erfasst die Signalwellenform zum Zeitpunkt des Triggers. Dies ist in Abbildung 3-18 dargestellt.

Betrachten wir ein komplexeres Auslöserszenario, z. B. dass Gerät A ständig zufällig Daten an Gerät B sendet und Gerät B auf unterschiedliche Daten entsprechend dem von Gerät A gesendeten Dateninhalt antwortet. Wenn wir wissen möchten, welche Daten Gerät A an Gerät gesendet hat B Bevor wir Daten 0 senden, wie stellen wir die Triggerbedingung ein, um die Wellenform im entsprechenden Moment zu erfassen?

Hier müssen zwei Probleme gelöst werden: Zuerst müssen wir den Ort des Triggers festlegen, damit wir die Daten vor dem Trigger sehen können, nicht die Daten nach dem Trigger; Zweitens müssen wir die Wellenformeigenschaften von Gerät B finden, das Daten 0 sendet, und sie in die entsprechende Triggerbedingung umwandeln.

UART-Protokollanalyse

Abbildung 3-19 Triggerposition

Gemäß den Protokollregeln von UART ist die Wellenform, die Daten 0 sendet, ein relativ breites kontinuierliches Impulssignal mit niedrigem Pegel. Wenn die Baudrate des UART 115200 und die von uns eingestellte Abtastrate 1 MHz beträgt, wird die Wellenform von Daten 0 in Abbildung 3-20 gezeigt, die ein Impuls mit niedrigem Pegel von etwa 78.125 uS sein wird.

Um den erweiterten Trigger oder die Triggerposition einzustellen, ist Puffermodusunterstützung erforderlich. Sie müssen zuerst den „Run-Modus“ in den „Optionen“ auf „Puffermodus“ setzen und die Option „RLE-Hardwarekomprimierung“ nicht auswählen. Stellen Sie die erweiterte Triggerbedingung auf Kanal 1 mit einem kontinuierlichen Tief von 75 Abtastpunkten ein (entsprechend einer Abtastrate von 1 MHz, was einem niedrigen Pegel von 75 us entspricht), und stellen Sie die Triggerposition auf 80 % ein, um die Beobachtung von Daten vor dem Triggern zu erleichtern. Die spezifischen Einstellungen sind in Abbildung 3-21 dargestellt.

Gemäß dieser Triggerbedingung wird es getriggert, wenn Gerät B Daten 0 sendet, und die erfasste Wellenform ist in Abbildung 3-22 dargestellt.

3.4.3. Wiederholen Sie die Sammlung

In einigen Fällen müssen wir den Status einiger Signale dynamisch beobachten, wie z. B. den Dateninhalt, der jedes Mal von Burst gesendet wird, aber wir wissen nicht, wann die Daten gesendet werden, und es ist unmöglich, häufig auf die Schaltfläche „Start“ zu klicken . DSView bietet einen „Wiederholungs“-Erfassungsmodus, der Wellenformen automatisch erfasst und aktualisiert, wenn die Triggerung erfüllt ist. Wenn wir einige periodische Burst-Signale debuggen, ist es sehr praktisch, die Ergebnisse der dynamischen Erfassung und Protokollanalyse durch den Wiederholungsmodus zu beobachten.

Der Wiederholungsmodus kann wie in Abbildung 3-23 gezeigt eingestellt werden. Das Wiederholungsintervall ist die minimale Verweilzeit zwischen zwei Abtastwerten, um die Beobachtung der Wellenform und die Dekodierungsergebnisse der vorherigen Erfassung zu erleichtern.

3.5. Erfassung von Langzeit-UART-Übertragungen

Wenn es notwendig ist, ultralange Wellenformen für die Analyse zu erfassen, können wir den Stream-Modus verwenden. DSLogic kann im Stream-Modus eine Abtasttiefe von 16 G pro Kanal erreichen. Bei einer Abtastrate von 1 MHz kann die Erfassungszeit 16 G/1 M ≈ 16000 s erreichen, was mehr als 4 Stunden entspricht.

3.5.1.Stream-Modus

Das Stream-Modus-Setup ist in Abbildung 3-24 dargestellt, und verschiedene DSLogic-Hardwareversionen unterstützen unterschiedliche Stream-Modus-Kanaloptionen. U3Pro16, basierend auf dem USB3.0-Anschluss, kann 3 Kanäle mit einer Abtastrate von bis zu 1 GHz, 6 Kanäle mit einer Abtastrate von bis zu 500 MHz, 12 Kanäle mit einer Abtastrate von bis zu 250 MHz und 16 Kanäle mit einer Abtastrate von bis zu 125 MHz erreichen.

Wenn die gesammelte Datenmenge relativ groß ist, kann das 0:UART-Protokoll zum Decodieren verwendet werden, verglichen mit 1:UART, das die Ausgabe von Bitinformationen auslässt, kein High-Level-Protokollstapeln unterstützt und die Decodierzeit verkürzen kann und die Gedächtnisbelegung reduzieren. Die anderen Funktionen sind die gleichen wie 1: UART. Der Dekodierungseffekt ist in Abbildung 3-25 dargestellt.

3.5.2. Die Liste der Protokolle wird angezeigt

Wie in der folgenden Abbildung gezeigt, ist das grafische Dekodierungsergebnis zeitlich vollständig mit der erfassten Wellenform synchronisiert, was uns hilft, die Wellenform zu verstehen und das Problem zu finden, aber gleichzeitig ist dies aufgrund der Anzeigeskala der Zeit nicht der Fall förderlich für die Anzeige des Dekodierungsergebnisses. Listenanzeigen gleichen diesen Mangel aus, indem sie es einfach machen, große Mengen decodierter Inhalte anzuzeigen und zu analysieren.

DSView bietet eine Möglichkeit, zwischen grafischen und Listenergebnissen zu wechseln. Klicken Sie auf eine beliebige Zeile in den Listenergebnissen, um automatisch zum entsprechenden Wellenformergebnis zu springen, und Sie können auch wählen, ob die Wellenform beim Springen automatisch vergrößert oder das aktuelle Zoomverhältnis der Wellenformspalte fixiert werden soll. Wenn wir die Wellenform zu einem bestimmten Zeitpunkt anzeigen und zu der Position springen möchten, an der das dieser Wellenform entsprechende Decodierungsergebnis in der Liste angezeigt wird, müssen Sie außerdem nur auf die Positionierungsschaltfläche in der oberen rechten Ecke der klicken Listenanzeigefenster.

Zusätzlich kann der decodierte Inhalt über die Listenanzeige in eine Datei exportiert werden. Wie in der Abbildung oben gezeigt, können Sie durch Klicken auf die in der Liste angezeigte Schaltfläche „Speichern“ den aktuell dekodierten Inhalt in eine CSV- oder TXT-Datei exportieren, was für eine weitere Datenverarbeitung durch Drittanbieter, z. B. die Eingabe in Matlab, praktisch ist zur Analyse oder als Dateneingabe für andere Software.

3.5.3. Datensuche dekodieren

Ein weiterer Vorteil der Listenanzeige besteht darin, dass die decodierten Ergebnisse als Zeichenfolgen für die Ergebnissuche verwendet werden können, z. B. die Suche nach bestimmten Vorgängen oder bestimmten Datenbytes, wodurch der anzuzeigende Ort schnell gefunden werden kann.

Geben Sie das Schlüsselwort, nach dem Sie suchen möchten, in das Suchfeld ein und drücken Sie dann die Vorwärts-/Rückwärtstasten, um den decodierten Inhalt zu finden, der das Schlüsselwort enthält, und die Wellenformschnittstelle springt zur entsprechenden Analysestelle. Wenn Sie die Ergebnisse eines Segments parsen, können Sie auf eine Zeile in der Checkliste klicken, und die Vorwärts-/Rückwärts-Schaltflächen suchen nach den vorherigen und nächsten Übereinstimmungen, beginnend mit diesem Verhalten, anstatt von vorne zu beginnen.

Für das UART-Protokoll unterstützt DSView auch die mehrzeilige Datensuche. Kann verwendet werden, um einige zusammenhängende Zeichenfolgenergebnisse zu finden, die in Ihren Daten erscheinen. Wie in Abbildung 3-29 gezeigt, verkettet eine mehrzeilige Datensuche mehrere Schlüsselwörter mit dem Zeichen „-“.

3.5.4. Wellenformsuche

DSView unterstützt nicht nur die Suche nach decodierten Ergebnissen, sondern auch die Suchfunktion der Originalwellenform. Wellenformen können in vielen Szenen schnell lokalisiert werden. Wenn zum Beispiel die Wellenform plötzlich übertragen wird, weil die Leerlaufzeit relativ lang ist, ist es unmöglich, die detaillierte Wellenform zu sehen, die mehrmals gleichzeitig übertragen wird, Sie können die Wellenformsuche verwenden und sofort zum nächsten Wellenformsprung danach springen Betrachten der Wellenform im vorherigen Moment, um sicherzustellen, dass das Zoomverhältnis unverändert ist.

Aktivieren Sie die Symbolleiste „Suchen“, das Suchfeld wird unter dem Softwarefenster angezeigt, klicken Sie auf das Suchfeld, öffnen Sie das Sucheinstellungsfenster, bestimmen Sie die Kanalsprungkante, Sie können links und rechts nach der Wellenform suchen, die die Kriterien erfüllt Schlüssel. Gleichzeitig können Sie den Suchcursor auch manuell bewegen, um festzulegen, wo die Suche beginnt.

Wenn die Suche ausgewählt ist, erscheint ein Cursor mit einem „S“-Tag, der Anfangszustand ist grau, wenn Sie nach links/rechts klicken, um zu suchen und eine Wellenform zu finden, die die Kriterien erfüllt, wird der Cursor blau und bewegt sich automatisch zum Suchort . Wenn Sie den „S“-Cursor manuell bewegen, wird der Cursor wieder grau.

3.5.5. Cursor-Nutzung

DSView unterstützt eine breite Palette von Cursoroperationen und ermöglicht nicht nur Zeitmessungen mit dem Cursor, sondern auch das Markieren und Verfolgen spezieller Wellenformen mit dem Cursor. Wenn die Wellenform inaktiv ist oder das Intervall lang ist, können Sie an jeder interessierenden Position einen Cursor einfügen, und wenn Sie zu einer interessierenden Wellenform springen möchten, müssen Sie nur mit der rechten Maustaste in den Linealbereich klicken und dann auf klicken Cursorsequenznummer, zu der Sie springen möchten, die zur entsprechenden Cursorposition springen kann.

Wenn Sie den Cursor bewegen möchten, müssen Sie nur die Maus in die Nähe des Cursors bewegen, wenn der Cursor fett erscheint, klicken Sie zur Auswahl auf die linke Maustaste, der Cursor folgt der Mausbewegung, bestimmen Sie die Position und klicken Sie erneut auf die linke Taste um den Cursor loszulassen. Wenn Sie möchten, dass der Cursor an einer der Sprungkanten einer bestimmten Kanalwellenform einrastet, brauchen Sie nur die Maus in die Nähe der Sprungkante zu bewegen, und der Cursor wird automatisch an der Sprungkante einrasten.

3.5.6. Mausmessungen

Zusätzlich zu Cursor-basierten Messungen bietet DSView komfortablere Mausmessungen. Zum Beispiel Messungen der aktuellen Impulsbreite, -periode, des Arbeitszyklus und der Frequenz (Sie müssen nur die Maus über den sich ändernden Impuls platzieren); Messung der Flankenanzahl (Anklicken der Start- und Endposition der Wellenform zählt automatisch die Sprungflanken dieses Intervalls); und Messung des Randabstandes (Mausklick auf die Anfangskante und Bewegen zur Endkante).

Wie in Abbildung 3-31 gezeigt, bewegen Sie die Maus an die Position der Anfangsübergangskante, klicken Sie mit der linken Maustaste, wählen Sie die Anfangsübergangskante aus, bewegen Sie die Maus an die Position der Endübergangskante und den Abstand zwischen den beiden Übergangskanten (Dauer/Abtastintervallpunkt) werden angezeigt, und die linke Maustaste wird erneut geklickt, um die Messung abzuschließen.

4. Häufig gestellte Fragen

4.1. Bestimmen Sie die unbekannte Baurate

Wenn wir die Baudrate der UART-Wellenform nicht im Voraus erhalten können, können wir auch die wahre Baudrate anhand der erfassten Wellenform erraten. DSView bietet einen „Bitrate erraten“-Decoder, um die Baudratenparameter einer beliebigen Wellenformfolge zu erraten. Das Prinzip der Guess-Bitrate besteht darin, die schmalste Impulsbreite in der Wellenform wiederum als Wellenformbreite eines Bits zu finden und dann ihren Kehrwert als Baudrate zu berechnen. Es kann also mehrere Ergebnisse geben, wir müssen nur beobachten, ob der entsprechende Impuls eine vernünftige Impulsbreite hat, und dann das maximale Baudratenergebnis auswählen. Dies ist in Abbildung 4-1 dargestellt.

Sobald die Baudrate erhalten wurde, kann sie auf die Optionen für den UART-Decoder eingestellt werden. Da das UART-Protokoll jedes Startbit neu synchronisiert, sammelt sich der Fehler der Baudrate nur in einem Datenrahmen an, und solange der Fehler innerhalb eines Rahmens die Grenze des Bits nicht überschreitet, kann das korrekte Decodierergebnis erhalten werden .

Wenn natürlich ein kleiner Abtastwert der Wellenform vorhanden ist, wie z. B. kein Impuls mit einer einzigen Bitbreite in der Wellenform, dann ist die geschätzte Baudrate wahrscheinlich falsch, was zu einem falschen Decodierungsergebnis führt. Wenn es eine Wellenform gibt, die nicht dem Protokoll entspricht, gibt der UART-Decoder auch mögliche Fehlerhinweise aus, wie z. B. Rahmenfehler, wie in Abbildung 4-2 gezeigt. Erfahrene Ingenieure können die Baudrate anpassen, indem sie die Wellenform und die Decodierergebnisse beobachten, um die korrekten Decodierergebnisse zu erhalten.

4.2. Dekodierung von Anti-Vertrauens-Zeichen

Im vorherigen Abschnitt haben wir erwähnt, dass das UART-Protokoll durch verschiedene physikalische Signale übertragen werden kann, und einige Signale der physikalischen Schicht können eine umgekehrte Beziehung zum Protokollsignal haben (hoch- und niedrigpegelig austauschbar), wie z. B. RS232 oder das B-Signal in das Differenzsignal RS485. Wenn das von uns erfasste Signal umgekehrt wird, kann der UART-Decoder von DSView auch so eingestellt werden, dass er das korrekte Decodierergebnis erhält.

Der Benutzer muss nur das "Invert Signal ?" in den Einstellungen des UART-Decoders. Die Option ist auf „ja“ gesetzt. Die Dekodierung des Rückwärtssignals ist in der folgenden Abbildung dargestellt.

4.3. Dekodierung der UART-Kommunikation mit mehreren Gruppen

Der UART-Decoder von DSView ist bewusst als Einkanal-Ansatz konzipiert, der beim Decodieren willkürliche Kanaleinstellungen für Multiplex-Kommunikation ermöglicht. Beispielsweise müssen wir für eine Vollduplex-UART-Kommunikation, die sowohl ein TX-Signal als auch ein RX-Signal hat, nur zwei UART-Decoder hinzufügen, um der Decodierung von TX und RX zu entsprechen.

Wie in der folgenden Abbildung gezeigt, ist dies der Fall, wenn drei UART-Signale gleichzeitig decodiert werden.

4.4. Dekodierungsfehler durch die Startposition

Bei jedem Kommunikationsvorgang muss das Gerät vom Anfangszustand ausgehen, um den Kommunikationsinhalt korrekt zu empfangen, d. h. den Protokollrahmen korrekt zu identifizieren und zu analysieren. Dasselbe gilt für Logikanalysatoren, wenn die Erfassung eines Signals genau in der Mitte eines Datenrahmens beginnt, dann führt die falsche Startposition wahrscheinlich zu einem falschen Decodierungsergebnis. Wie in der folgenden Abbildung gezeigt, sendet das Gerät weiterhin die Zeichenfolge „DreamSourceLab“, aber da die Position der ersten Erfassung genau in der Mitte des Datenrahmens liegt, wird die Decodierung der ersten Wellenform verstümmelt.

Um eine falsche Decodierung von Daten zu vermeiden, können wir die Start- und Endposition der Decodierung künstlich festlegen, um Decodierungsfehler zu vermeiden, die durch abgeschnittene Datenrahmen verursacht werden. Die Dekodierungsposition kann die spezifizierte Position eines beliebigen Cursors sein, und die Operation muss nur die entsprechenden Start- und Endpositionen in den Einstellungen des Dekoders einstellen, nachdem der entsprechende Cursor eingefügt wurde. Wie in der folgenden Abbildung gezeigt, vermeidet das Festlegen der Startposition eine falsche Decodierung der ersten abgeschnittenen Wellenform.

5. Erweiterte Analyse

5.1. Mehrschichtiges Protokoll-Parsing

UART ist ein sehr weit verbreitetes Basisprotokoll und viele der in der Praxis eingesetzten Übertragungsprotokolle sind auf Basis von UART erweitert. Zum Beispiel: DMX512, LIN, MIDI und Modbus usw. Die zugrunde liegende Kommunikationsbasis ist das UART-Protokoll. 、

Entsprechend dieser Funktion unterstützt DSView auch das Parsing Stacking von Multi-Layer-Protokollen. Wenn wir einen Dekoder eines komplexen Protokolls hinzufügen, baut DSView automatisch den gesamten Protokollstapel von der obersten Ebene auf, wodurch die Dekodierungsergebnisse reichhaltiger und perfekter werden, was für die gründliche Analyse und das Verständnis des Protokolls durch den Benutzer sehr hilfreich ist.

Nehmen wir Modbus RTU als Beispiel, um den Prozess der DSView-Analyse von Multilayer-Protokollen zu verstehen. Basierend auf der UART-Byte-Übertragungsfunktion spezifiziert Modbus RTU die spezifische Bedeutung jedes Bytes im Detail, sodass die Rahmenstruktur von Modbus durch die Kombination mehrerer UART-Protokollrahmen gebildet wird. Dies ist in der folgenden Abbildung dargestellt.

Wenn Sie DSView für eine solche Protokolldecodierung verwenden, müssen Sie nur das entsprechende Protokoll in das Protokollsuchfeld eingeben und hinzufügen. DSView baut automatisch die Einstellungsseite für das gesamte Stapelprotokoll auf, wie in der folgenden Abbildung gezeigt, und der Benutzer kann die entsprechenden Einstellungen vornehmen.

Wie in der folgenden Abbildung gezeigt, ist die Stapelstruktur des Protokolls deutlich aus dem Decodierungsergebnis des Modbus RTU ersichtlich. Der Modbus für jeden Frame besteht aus 8 UART-Byte-Frames. Der Inhalt eines Modbus-Frames enthält außerdem deutliche Kommentare, die seine spezifische Bedeutung angeben. Wenn ein Übertragungsfehler auftritt, kann ein solches Decodierungsergebnis den Fehlerort sowie die Fehlerursache (ob ein Problem mit dem zugrunde liegenden UART oder ein Problem mit der Modbus-Protokollschicht) sehr eindeutig lokalisieren. Wenn Sie die zugrunde liegenden Details nicht sehen möchten, können Sie den entsprechenden decodierten Inhalt auf der Einstellungsseite des Decoders ausblenden.

Sei der erste der kommentiert

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht.


*