• Onlineshop
  • Kontakt
  • Facebook
  • Google+
  • YouTube
  • Xing
  • kununu
dataTec News

FlexRay-Analysen mit dem Scope

Serielle Datenbusse wie FlexRay kommen bei sehr unterschiedlichen Anwendungen zum Einsatz. Sie verbinden Chips und Module in einem System, stellen die Verbindung zwischen Peripherie-Einheiten und einem Controller her oder sie werden für die Übertragung von Mess- und Sensordaten genutzt. Bei der Fehlersuche in einer FlexRay-Architektur können Oszilloskope – sofern sie bestimmte Voraussetzungen erfüllen – gute Dienste leisten.

FlexRay, der Seriell-Standard, wurde zunächst ausschließlich für den Automobilbereich entwickelt, ist zwischenzeitlich weit verbreitet. Zum Kern des FlexRay-Konsortiums gehören die Firmen Adam Opel GmbH, Bayerische Motoren Werke AG, Daimler AG, Freescale Halbleiter Deutschland GmbH, NXP B.V., Robert Bosch GmbH und Volkswagen AG. Im Jahre 2010 wurde die letzte gültige Spezifikation veröffentlicht [1, 2].

Ausgefeilte Scope-Messtechnik für FlexRay nötig

Die Komplexität und die engen Signalgrenzen bringen es mit sich, dass zur Entwicklung eines FlexRay-Moduls eine ausgeklügelte und effiziente Messtechnik gehört, die es ermöglicht, die Vielzahl der Spezifikationen [2] nachzumessen, um eine „Gut/Schlecht“-Beurteilung durchführen bzw. um Fehler aufspüren zu können. In der Entwicklung ist es außerdem von Interesse herauszufinden, wo sich der Fehler eingeschlichen hat bzw. welche Module in fehlerhafter Weise miteinander interagieren.

Typischerweise werden Protokoll-Tests mit Protokoll-Analysatoren vorgenommen – hier geht aber der zeitliche Bezug zu dem einzelnen übertragenen Bit verloren. Diesen Nachteil zur genauen zeitlichen Signalverfolgung auf der physikalischen Ebene hat ein Oszilloskop nicht. Allerdings muss dieses einer Anzahl an Anforderungen genügen, um das komplexe serielle und synchrone FlexRay-Protokoll so aufnehmen zu können, um schnell und zielsicher auf die Daten-Frames und Daten-Anomalien triggern zu können. Moderne Oszilloskope, die für die FlexRay-Messtechnik verwendet werden sollen, müssen deshalb einige Anforderungen erfüllen:

  • Eine hardware-basierte Decodierung, um Fehler schneller zu finden.
  • Eine Synchronisation, um Messungen auf gemultiplexte Daten mit zyklus-basierten und mit sich zyklisch wiederholenden Triggerbedingungen durchzuführen.
  • Eine hardware-basierte „Gut/Schlecht“-Entscheidung mit Hilfe eines Augendiagramms, basierend auf dem aktuellen Standard.
  • und decodierte FlexRay-Frame-Aufnahme und eine nach der Frame-ID selektierte Frame-Erkennung/-Aufnahme mit Hilfe eines segmentierten Speichers.
  • Eine Protokoll-Überprüfung im Service-Bereich mit der Möglichkeit zur Nutzung batteriebetriebener Geräte.
  • Eine genaue Messwertaufnahme durch entsprechend aktive differenzielle Tastköpfe.
  • Einen umfassenden und automatisierten Konformitäts-Test auf der physikalischen Ebene des FlexRay-Busses entsprechend dem Standard [2].
  • Die Möglichkeit, eine Multi-Bus-Analyse durchzuführen mit anschließender zeitlich verschachtelter Darstellung der Messergebnisse.
  • Eine automatische Fehlersuche mit voreinstellbaren Rahmenbedingungen.

Oszilloskope der Agilent InfiniiVision- und Infiniium-Serie erfüllen diese Anforderungen. Da sie auf die Busse und Frames triggern und das Protokoll decodieren können, sind sie in der Lage, die Vorgänge auf dem Bus auch mit anderen Interaktionen – sogar auf anderen Bussystemen – zueinander in Bezug zu stellen. Bild 1 zeigt eine Messung an einem FlexRay-Bus im „Lister-Mode“, indem sowohl die zeitliche Darstellung eines Frames und die Protokoll-Liste (daher Lister-Mode) dargestellt werden. Dazu gibt es je nach Serie oder Modell optional verschiedene Software-Pakete, die es dem Anwender vereinfachen, die richtigen Einstellungen vorzunehmen und die Ergebnisse zeitkorreliert darzustellen.

Pluspunkte der Hardware-Protokoll-Decodierung

Die genannten Scopes decodieren als einzige Oszilloskope das Protokoll hardware-mäßig, was zwei Vorteile hat: Es kann in Echtzeit decodiert werden – es lassen sich letztlich bis zu 1 Mio. Signalkurven innerhalb einer Sekunde erfassen – , auch wenn große Datenmengen in den internen Speicher geschrieben werden. Zum anderen reduziert sich bei den genannten Scopes die Erfassungsrate nicht, wenn die Speichertiefe deutlich erhöht wird. Eine große Speichertiefe und eine hohe Abtastrate sind aber bei der Messwerterfassung an einem seriellen Bus eine wesentliche Voraussetzung. Durch die Reduktion der Abtastrate konnten etwaige Fehler nicht erkannt werden; die Suche dauert länger, wenn sie überhaupt zielführend ist.

Die Agilent-Oszilloskope verfügen über einen weiteren für eine Decodierung von Busprotokollen entscheidenden Vorteil – und der steht in direktem Zusammenhang mit der eben genannten Randbedingung nach einer großen Speichertiefe: Sie haben einen segmentierten Speicher. Die Oszilloskope optimieren damit die verfügbare Speicherkapazitat und ermöglichen es, mehr Daten-Pakete/-Frames aus einem seriellen Datenstrom zu erfassen. Bei segmentiertem Speicher werden nur die interessierenden Daten-Pakete/-Frames abgespeichert und bei Totzeiten „pausiert“ – oder wenn unwichtige bzw. nicht selektierte Frames/Bytes übertragen werden. Im Beispiel von Bild 1 wurden über ca. 400 μs FlexRay-Frames aufgenommen, in einer Lister-Darstellung in der zeitlichen Reihenfolge dargestellt und z. B. der Frame mit dem Zeitstempel „–6 μs“ (FID=34) im Zeitbereich dargestellt.

Zur Analyse kann jeder einzelne Frame angewählt und in ihn hineingezoomt werden. Dabei ist wesentlich, dass die hohe Abtastrate bei der Signalerfassung erhalten blieb und damit in jeden einzelnen Burst / in jedes Frame separat gezoomt werden kann, so dass sich die einzelnen Pulse innerhalb des Frames oder Bursts beurteilen lassen. Die Darstellung entspricht der des gewohnten Oszilloskop-Bildes. Durch die zur Signalerfassung parallel  ablaufende Protokoll-Decodierung lassen sich zusätzlich zur Signaldarstellung die jeweilige zugehörige Protokoll-Zeile darstellen und zuordnen, da jeder einzelne Burst / jedes Frame mit einer Zeitmarke versehen wird.

Herausforderung: die Multi-Bus-Analyse

Moderne Designs enthalten zuweilen mehrere unterschiedliche Busse, deren Daten zeitlich korreliert zu decodieren und darzustellen sind. Die Agilent-Oszilloskope können gleichzeitig zwei serielle Busse per Hardware decodieren. Und das Besondere daran: Die Daten werden zeitverschachtelt in der Lister-Darstellung präsentiert. Die InfiniiVision-Serie ist in der Lage, die Signale auf zwei unterschiedlichen Bussen, z.B. einem CAN- und einen FlexRay-Bus, zu erfassen und „fast“ in Echtzeit zu decodieren; die Infiniium-Serie erfasst bis zu vier unterschiedliche Bussignal-Kategorien und bietet durch den großen Speicher eine umfassendere Beobachtungsdauer. Fragestellungen „Wie wird das Signal eines Sensors weiterverarbeitet?“ oder „Wie und wann kommt dieses Signal oder die erforderliche Reaktion darauf im anderen Bussystem an?“ lassen sich so beantworten.

Augendiagramm- und Pulsmasken

Augendiagramm-Messungen geben Aufschluss über die Signalqualitat und Integrität von Sende- und Empfangssignalen. Gerade in Bussen mit hohen Geschwindigkeiten oder zeitkritischen Randbedingungen, zu denen auch FlexRay zählt, sind Augendiagramm-Messungen sehr wichtig, zumal bei FlexRay je nach den unterschiedlichen Systemmodulen und Testpunkten auch jeweils unterschiedliche Masken vorgeschrieben sind, die von der Agilent-Webseite [3] kostenlos herunterladbar sind und auf den neuesten Toleranzmasken-Standards [2] beruhen. Eine einfache Topologie ist in Bild 2 zu sehen; hier werden die „Örtlichkeiten“ der Testpunkte TPx definiert (Abkürzungen siehe Tabelle 1). Exemplarisch sind die Masken für die Ausgangsspannungen mit den zugehörigen Zeitbezügen eines FlexRay-Treibers mit Standard-Signalpegel in Bild 3 und für erhöhte Signalausgangspegel in Bild 4 zu sehen. Eine reale Messung an TP4 mit 10 Mbit/s am Eingang eines Empfängers gibt Bild 5 wieder; eingestellt ist die Triggerbedingung „all frames“.

Für die Testpunkte TP1 und TP11 eines Bustreibers (TP11 ist übrigens die Ausgangsseite eines signalübertragenden „aktiven“ Sterns (AS), der sich innerhalb der Netzwerktopologie befindet) gibt es übrigens für die Systeme mit Übertragungsraten von 2,5 und 5 Mbit/s keine Maskensets. In diesen Systemen muss der Bustreiber mit der 10 -bit/s-Maske gemessen werden [4]. Ferner: Wirken ein aktiver Stern und ein anderer Bustreiber auf das Netzwerk, so ist das Testergebnis mit Sorgfalt zu analysieren. Werden die TP1- und TP11-Maskentests erfüllt, so ist davon auszugehen, dass beide Knoten die Ausgangsbedingungen erfüllen. Wird jedoch der Augendiagramm-Test nicht bestanden, so kann es sein, dass auch die Empfangsdaten gemessen wurden – es gibt keine Möglichkeit, diese beiden Signale bei einer bestimmten Frame-ID der TP1- und TP11-Signale voneinander zu unterscheiden – im Gegensatz zur TP4-Messung. Zu diesem Sachverhalt gibt die Applikationsschrift [4] weitere Auskunft.

Die richtige Maske wählen – im Download verfügbar

Nach den FlexRay-Spezifikationen sind die Orte, an denen gemessen wird, sowie der für das System zugrundeliegende Signalpegel für die Wahl der richtigen Maske entscheidend. Damit die doch komplexen Masken nicht jedes Mal neu eingegeben werden müssen, sind von Agilent die gültigen FlexRay-Masken herunterladbar.

Bild 6 zeigt einen Maskentest an TP4 eines komplexen Busses mit sehr vielen Modulen, zu erkennen an der Varianz der „0-1“-Wechsel. Die Auswahl der jeweiligen Maske richtet sich nach der Baudrate des zu vermessenden Busses, nach dessen Spannungspegel und dem Bauteil, das getestet werden muss (Eingang oder Übertragungs-Ausgang) und der Art des Ausgangs-Bausteins (Bus-Treiber oder aktiver Stern).

Der TP4-Maskentest erfasst alle Bits, Bytes und Frames innerhalb des Systems. Daher müssen Frames mit einer bestimmten ID erfasst werden können, um Signal-Integritäts-Probleme bei T4-Messungen zu untersuchen. Ein Isolieren der zu untersuchenden Frames mit spezifischer ID wird unerlässlich. Bild 7 zeigt einen Maskentest an TP4 über alle Frames in einem System mit vielen Knoten. Die Anzeige weist aus, dass 763.779 Tests durchgeführt und dabei 3.602 Maskenverletzungen von einem oder mehreren Knoten verursacht wurden, die eine Fehlerrate von ca. 0,472 % ausmachen; in Bild 8 werden über die Triggerbedingung nur die Frames mit der ID=13 „herausgefiltert“ und man kann ablesen, dass bei 3.439 erfolgten Tests 1.071 Fehler vorgekommen sind, was einer Fehlerrate von 31,14 % entspricht. Zu diesem Sachverhalt siehe auch [4]. 

Trigger- und Einstell-Möglichkeiten sowie Spezifikationen

Exemplarisch sind in Tabelle 2 die spezifischen Trigger-Arten, wie Frame-, Fehler- und Ereignis-Triggerung, die Frame-Decodierung, die Ereigniserfassung und die von der Agilent-Webpage herunterladbaren kostenlosen Maskendateien aufgezeigt. Entsprechendes gilt beispielsweise für die anderen Software-Pakete N8803A der Infiniium 9000-, 90000- und 90000X-Serie. Ergänzend hierzu in Tabelle 3 die wichtigsten Daten der im Beitrag genannten Oszilloskope.

Im Masken-Test-Menü können die Testkriterien und Triggerbedingungen festgelegt werden. Bei den spezifischen „run-until“ (Wenn-Dann-Kriterium) gibt es eine Reihe an Kriterien, die festlegen, was beim Auftreten eines Fehlers zu geschehen hat. Bei den Oszilloskopen der Serie 7000 sind folgende Aktionen selektierbar: „Bei Fehler – Stop“, „ – Speichern“, „ – Drucke“, „ – Messe“ und „ – Keine weitere Aktion“.

Bild 9 zeigt einen Fehler bei einer Stoppbedingung „Stop-on-error“ („Bei Fehler - Stopp). Eindeutig ist hier die Maskenbedingung verletzt, der Fehlerzähler steht auf 1 nach insgesamt 5.290 Messungen. Bild 10 zeigt dieselbe Messung, jedoch mit einer anderen zeitlichen Auflösung, um das fehlerhafte Bit in Frame 1 zu identifizieren.

Optimaler Signalabgriff

Einige Busse, wie auch FlexRay, arbeiten mit differenziellen Signalen. Um einerseits die Signale richtig kontaktieren zu können und andererseits den Bus nicht zusätzlich zu belasten, gibt es eine Reihe von differenziellen aktiven Tastköpfen hinsichtlich Bandbreite und Dynamik-Bereich für die Oszilloskop Serien.

Für den FlexRay- und CAN-Bus sind geeignet der aktive 200-MHz-Tastkopf N2792A, und – nachdem der FlexRay-Bus zeitkritischer ist – alternativ kann auch das 800-MHz-Modell N2793A genutzt werden. Für den N2792A-Tastkopf ist der Adapter 0960-2926 und für den 800-MHz-Tastkopf ist der Adapter 0960-2927 für das Kontaktieren an das DB9-SubD-Steckersystem verfügbar, was für den Anwender einen bequemen Signalabgriff bietet.

Nachdem die Temperaturanforderungen bei Automobilen sehr hoch sind und die Module daher bei hohen Umgebungstemperaturen bis zu 150 °C, gemessen werden müssen, wurden spezielle Adapter / Verlängerungen der Messkabel entwickelt, die bis 155 °C spezifiziert sind.

Auch für andere serielle Busse – wie CAN, LIN und für den im Audio-Bereich verwendeten I²C und auch nach MIL-Standard 1553 oder nach ARINC 429 – sind entsprechende Software-Pakete beim Vertriebsunternehmen dataTec verfügbar, um Untersuchungen und Decodierungen auf der physikalischen Ebene durchführen zu können.

 

Über den Autor

Dipl.-Ing. Klaus Höing trat nach dem Studium der Elektrotechnik in Stuttgart 1980 bei Hewlett Packard (später Agilent), Böblingen, in den Entwicklungsbereich für Messtechnik ein. 1998 wechselte er in den Bereich Computertechnik bei Hewlett Packard als PR-Manager für die deutsche Niederlassung. Seit dem Frühjahr 2012 ist er bei der Firma dataTec in Reutlingen mit PR-Aufgaben betraut.

Dieser Artikel erschien in der Elektronik 19/2012.

 

Literatur

[1] Webseite www.flexray.com

[2] Die Spezifikation teilt sich in folgende Segmente auf: FlexRay Protocol Specification Version 3.0.1, FlexRay Protocol Conformance Test Specification Version 3.0.1, FlexRay Electrical Physical Layer Specification Version 3.0.1, FlexRay Electrical Physical Layer Conformance Test Specification Version 3.0.1, FlexRay Electrical Physical Layer Application Notes Version 3.0.1, alle zu finden in [1], auch die Vorgängerversionen.

[3] FlexRay-Masken-files: www.Agilent.com, dort im Suchfeld „FlexRay Mask“ eingeben.

[4] Agilent Application Note: FlexRay Physical Layer Eye-diagram Mask Testing. Literaturnummer: 5990-4923EN.

[5] Agilent Datenblatt: Messapplikationen zur Analyse serieller Busse für die Oszilloskope der Agilent InfiniiVision 3000 X-Serie Literaturnummer: 5990-6677DEE.

[6] Agilent Application Note: Oszilloscope Measurement Tool to Help Debug Automotive Serial Buses Faster. Literaturnummer: 5991-0512EN.

[7] Agilent Data Sheet: FlexRay Measurements (Option FLX) for Agilent’s InfiniiVision Series Oszilloscopes. Literaturnummer 5989-9635EN.

[8] Agilent Data Sheet: CAN, LIN and FlexRay Protocol Triggering and Decode for Infiniium 90000 Oszilloscopes. Literaturnummer 5990-4099EN.

[9] Agilent Application Note: Evaluating Oscilloscope Segmented Memory for Serial Bus Applications. Literaturnummer 5990-5817EN.