Diagnose, Test und Fehlersuche UDE2.0: CANopen-Diagnose und MCU-Debugging

Autor / Redakteur: Heiko Rießland* / Holger Heller

Bislang werden Debugger in der Regel zur Fehlersuche und zum Test von Mikrocontroller-Applikationen, nicht aber für Diagnoseaufgaben genutzt. Das könnte sich mit der Markteinführung von der Universal Debug Engine (UDE) 2.0 von pls ändern. Der integrierte CAN-Recorder mit flexiblem Nachrichtenformatiermechanismus für CANopen und andere Protokolle ermöglicht eine deutliche Effizienzsteigerung gegenüber den heute üblichen Lösungsansätzen, die zumeist auf getrennten Werkzeugen und unterschiedlichen Kommunikationsgeräten basieren.

Anbieter zum Thema

Wer heutzutage für Diagnose, Test und Fehlersuche auf separate Tools und Kommunikationsgeräte zurückgreifen muss, weiß um den immensen Zeit- und Kostenaufwand, den solche Patchwork-Lösungen in der Regel mit sich bringen. Schon aus diesem Grund werden komplementäre integrierte Lösungsansätze in Zukunft an Bedeutung gewinnen. Kernstück des von pls bei der Universal Debug Engine 2.0 umgesetzten Konzepts ist ein einfacher CAN-Recorder, der als Add-in für eine Mikrocontroller-Debug-Umgebung zur Verfügung steht. Er kann alle CAN-Nachrichten verlustfrei aufzeichnen und symbolische Namen für Identifier anzeigen. Eine Filterung von Identifiern und das Aussenden von Nachrichten sind ebenfalls möglich. Die CAN-Schnittstelle für die Aufzeichnung wird am Debug-Kommunikationsgerät, dem Universal Access Device (UAD) realisiert. An diesem Tool sind neben dem CAN-Interface auch verschiedene andere Schnittstellen wie JTAG-Bus und serielle Anschlüsse für den Debug-Zugang zum Mikrocontroller vorhanden.

Das Kommunikationsgerät enthält einen leistungsfähigen 32-Bit-Mikrocontroller, der die kontinuierliche Aufzeichnung aller Nachrichten auf dem CAN-Bus übernimmt. Die Verbindung zum CAN-Bus erfolgt über einen D-Sub-Steckverbinder, die Pinbelegung entspricht dem Standard gemäß CiA 303-1. Das Gerät beinhaltet außerdem einen High-Speed-CAN-Bus-Schnittstellentreiber nach ISO-11898-2.

Klartextausgaben für vordefinierte Nachrichtentypen

Die Erweiterung des CAN-Recorders zur Interpretation der am CAN-Bus aufgezeichneten Daten verdeutlicht Bild 1. Eine Schlüsselfunktion kommt dabei dem allgemeinen CANopen-Interpreter zu. Dieser erzeugt Klartextausgaben für alle im Standard vordefinierten Nachrichtentypen wie Network-Management-Master-(NMT-)Messages, Heartbeat, SDO-Protokoll, Sync-Message, Timestamp und Emergency Message. Für den ebenfalls durch den Standard vorgegebenen ID-Bereich der PDOs wird eine Textausgabe erzeugt, falls nicht eine genauere Spezifizierung durch eine Nachrichtenformatdatei vorliegt.

Der Nachrichtenformatierer erlaubt ausgehend von einer im DCF-Format vorliegenden Beschreibungsdatei die Darstellung des Nachrichteninhalts als aufbereiteten Text. Dank dieser Beschreibung kann eine CAN-Nachricht anstatt in Hexadezimalwerten in einfacher Klartextausgabe darstellt werden (Bild 2). Auf der Basis eines Device Configuration File, das alle zur Textdarstellung von CAN-Nachrichten notwendigen Angaben eines CAN-Knotens enthält, wird eine Beschreibungsdatei für den Nachrichtenformatierer erstellt. Diese Aufgabe übernimmt ein DCF-Konverter. Wenn keine vollständige CANopen-Umgebung vorliegt, lässt sich die Nachrichtenformatierer direkt nutzen, um selbst eine Message-Beschreibungsdatei zu erstellen.

Die als Hostapplikation für den erweiterten CAN-Recorder dienende MCU-Debugumgebung ist modular aus COM-Komponenten aufgebaut und durch eine Add-In-Schnittstelle erweiterbar. Architektur- und targetspezifische Programmteile sind in Modulen gekapselt und werden bei Verwendung einer neuen MCU ausgetauscht. Als Erweiterungen stehen neben dem CAN-Recorder auch Flash-Programmierung oder Echtzeit-Betriebssystem-Support zur Verfügung.

Die Bedienoberfläche des integrierten CAN-Recorders besteht aus einem Debugger-Fenster, das eine Liste mit frei wählbarem Layout enthält. Folgende Spalten können dabei zur Anzeige ausgewählt werden:

  • MessageIndex für die aufsteigende Nummerierung der aufgezeichneten CAN-Nachrichten,
  • MessageID für die numerische oder symbolische Anzeige des CAN-Identifiers.

Neben der beschriebenen komplexen Interpretation der Nachricht ist auch eine einfache Zuordnungstabelle zwischen CAN-Identifiern und beliebig wählbaren Zeichenketten möglich, die in dieser Spalte dann angezeigt werden:

  • Timestamp zur Anzeige der Zeit in ms, die vom Start der Aufzeichnung bis zum Eintreffen der entsprechenden Nachricht vergangen ist,
  • Extended ID Flag zeigt an, ob der aktuelle Identifier das erweiterte Format aufweist. Für Identifier aus dem Standard-ID-Bereich wäre das am reinen Zahlenwert sonst nicht erkennbar.
  • Message Direction für die Anzeige, ob eine Nachricht gesendet oder empfangen wurde, oder ob es sich um einen Remote Frame handelt,
  • Number of Bytes gibt die Anzahl der Datenbytes in der aufgezeichneten Nachricht wieder,
  • Message Lost Flag zeigt an, ob in der CAN-Hardware des Recorders ein Überschreiben des Empfangspuffers aufgetreten ist oder ob es beim Senden zu einer Zeitüberschreitung gekommen ist. Message data – dient zur Anzeige der Datenbytes einer CAN-Nachricht in numerischer Form,
  • Message Formatter ermöglicht die Definition einer Spalte zur interpretierten Anzeige einer CAN-Nachricht unter Berücksichtigung von Identifier und Datenbytes mit einem Nachrichten-Formatierer wie oben beschrieben; die Ausgabe von formatierten Nachrichten zeigt Bild 3.

Desweiteren lassen sich die Baudrate und das Identifier-Format einstellen. Damit ist wiederum eine Nutzung der CAN-Schnittstelle am Kommunikationsgerät über den gesamten Baudratenbereich bis zu 1 MBit/s sowie ein einfaches und erweitertes Identifierformat (CAN Base Frame und CAN Extended Frame) garantiert. Die Message-Masken sind ebenfalls über eine Dialogseite einstellbar. So kann bereits durch die Hardware eine Filterung der Aufzeichnung erfolgen. Weiterhin ist die Speicherung der Aufzeichnung in einer Datei zur Weiterverarbeitung in anderen Programmen möglich.

pls Programmierbare Logik & Systeme, Tel. +49(0)35722 3840

*Heiko Rießland ist Produktmanager bei pls Programmierbare Logik & Systeme in Lauta.

(ID:182628)