Der einfache Weg zur Simulation komplexer
Transcription
Der einfache Weg zur Simulation komplexer
Der einfache Weg zur Simulation komplexer Fahrzeugnetzwerke für den Test von Steuergeräten Autor: Dipl.-Ing. Manfred Schneider, GÖPEL electronic GmbH, Jena Dipl.-Ing. Thomas Sedlaczek, GÖPEL electronic GmbH, Jena Der immerhin überschaubaren Anzahl von Bussystemen zur Steuergerätevernetzung in Kraftfahrzeugen steht trotz aller Bestrebungen zur Standardisierung eine Flut unterschiedlicher Kommunikationsprotokolle und Funktionsumfänge gegenüber. Will ein Entwicklungs- oder Prüfingenieur ein Steuergerät für Testzwecke über seine Kommunikationsschnittstelle ansprechen, so besteht seine größte Schwierigkeit darin, eine den realen Verhältnissen im Fahrzeug entsprechende Steuergerätekommunikation zu simulieren. Er hat dabei nicht nur die Kommunikationsumfänge im Auge zu behalten, welche die eigentliche Funktion seines Steuergerätes betreffen, sondern muss zusätzliche Anforderungen wie Netzwerkmanagement oder Komponentenschutz berücksichtigen, ohne deren vorbildgetreue Simulation das Steuergerät nicht die gewünschte Funktion ausführen wird. Dieses Problem stand bei der Entwicklung der Softwaresuite Net2Run im Vordergrund, welche dem Anwender eine vollständige, mit Datenbankunterstützung generierte Restbussimulation für sein Steuergerät zur Verfügung stellt. Dabei wurde der AUTOSAR-Ansatz eines einheitlichen Signalzugriffs sowie das PDU-Konzept (PDU = Protocol Data Unit) für den CAN-, LIN- und FlexRay-Bus umgesetzt. Welche Softwarephilosophie sich hinter diesen Begriffen verbirgt, soll mit dem folgenden Beitrag beispielhaft veranschaulicht werden. Abb.1 Funktionsumfang der Softwaresuite Net2 Run Erzeugung einer Restbussimulation Um eine signalbasierte Restbussimulation zu konfigurieren ist im ersten Schritt die Auswahl der Datenbasis notwendig, welche alle Informationen zu den in einem Netzwerk verbundenen Steuergeräten enthält. Net2Run unterstützt CANdb, LIN und Fibex-Datenbasen (.dbc, .ldf, .xml). Die Software nutzt intern das aktuellste Fibex-Datenformat, deshalb werden dbc- und ldf-Files automatisch in entsprechende Fibex-Dateien konvertiert. Der Bediener wählt die für seinen Steuergerätetest relevanten Datenbasen aus und übernimmt diese in sein aktuelles Projekt. Da ein Steuergerät über mehrere Interfaces verfügen kann, die in unterschiedliche Fahrzeugnetze eingebunden sind (z.B. Gatewaysteuergeräte oder Kombiinstrumente), können mehrere Datenbasen parallel geladen werden. Danach durchsucht der Anwender das importierte Netzwerk nach den für ihn interessanten, d.h. zu testenden Steuergeräten und zieht diese per per Drag & Drop in das Projektfenster. Der Net2Run Konfigurator erkennt automatisch, welche für das bzw. die Steuergeräte relevanten Botschaften und erstellt eine vollständige Restbussimulation für die zu untersuchende Baugruppe, hierbei werden alle zyklischen und sporadischen Sende- und Empfangsbotschaften des Steuergerätes aus der Datenbasis heraussucht und mit den dafür hinterlegten Defaultwerten parametriert. In Abhängigkeit, ob die komplette Steuergeräteumgebung oder nur einzelne Botschaften bzw. Signale simuliert werden sollen, erfolgt im Projektfenster eine entsprechende Auswahl. Nun braucht lediglich noch eine Zuordnung der Botschaften zu dem gewünschten Hardwareinterface des Kommunikationscontrollers vorgenommen zu werden und die Erzeugung der Restbus Simulation gestartet werden. Botschaftszähler und Checksummenberechnungen werden dabei automatisch eingefügt. Die Modelle zur Checksummenberechnung sind in einer C-Bibliothek hinterlegt und werden über entsprechende Namensattribute zugewiesen. Darüberhinaus kann der Benutzer eigene Checksummenmodelle in Form von C-Bibliotheken hinzufügen. Die Software stellt hierfür ein entsprechendes C-Template bereit. Abb.2 Bedienoberfläche des Net2Run Konfigurators 2 Net2Run unterstützt die Kommunikationscontroller der aktuellen Serie 61 von GÖPEL electronic, auf denen je nach Ausstattungsvariante mehrere CAN-, LIN- und FlexRay- Interfaces bereitgestellt werden. Benutzerspezifische Restbussimulationen sowie Variantenanpassungen lassen sich mit geringem Aufwand durch Hinzufügen bzw. Entfernen von einzelnen Frames bzw. Signalen erzeugen. Der Anwender kann durch Aufklappen der in Form einer Baumstruktur dargestellten Datenbasis bis auf Signalebene vordringen und einzelne Frames, PDUs oder Signale per Drag & Drop den Projekt hinzufügen, bzw. bereits enthaltene Elemente heraus löschen oder dessen Eigenschaften im Properties Fenster editieren. Abb.3 Konfiguration der Zielhardware mittels Hardware Explorer Damit hat der Anwender in sehr effizienter Weise alle notwendigen Schritte abgearbeitet, um zu einer den realen Verhältnissen im Fahrzeug entsprechenden, vollständigen und funktionsfähigen Testumgebung für sein zu untersuchendes Steuergerät zu kommen. AUTOSAR PDU Unterstützung Die voranschreitende Standardisierung von Fahrzeugsteuergeräte Software und Softwarekomponenten im Rahmen der AUTOSAR (AUTomotive Open System ARchitecture) Entwicklungspartnerschaft bringt veränderte Anforderungen an das Testsystem mit sich. Um diesen Anforderungen Rechnung zu tragen, hat GÖPEL electronic bei der Entwicklung von Net2Run besonderes Augenmerk auf die Unterstützung der im AUTOSAR Standard beschriebenen Kommunikationsmechanismen und Protokolle gelegt. Net2Run unterstützt das Konzept der Protocol Data Units (PDUs), wie es im AUTOSAR Standard Anwendung findet. Das PDU Konzept erlaubt es Datenpakete zwischen verteilten Applikationen 3 auszutauschen, ohne dass die Applikation hierzu Kenntnisse des verwendeten Bussystems benötigt. Der Kommunikationsstack übernimmt hierbei das Packen bzw. Entpacken der Datenpakete in busspezifische Botschaften. Hierzu verfügt die Net2Run Firmware über einen PDU-Router, welcher als Bindeglied zwischen der Vermittlungsschicht (Data-Link-Layer) und der Anwendungsschicht (Interaction Layer) fungiert. Die Information welches Datenpaket in welcher Botschaft enthalten ist, ist in der Fibex Datenbank hinterlegt und wird vom Net2Run Konfigurator automatisch konfiguriert. Ein weiterer Baustein der Net2Run Firmware ist der PDU-Multiplexer, dieser ermöglicht es dynamisch verschiedene Datenpakete innerhalb einer Botschaft zu übertragen. Hierzu wird ein Bitvektor im statischen Segment der Botschaft definiert, dessen Wert die Stellung des Multiplexeres und damit die im dynamischen Teil zu übertragende PDU festlegt. Abb.4 Frame Layout einer gemultiplexten PDU Das FlexRay Bussystem erlaubt es, bis zu 254 Bytes an Nutzdaten in einer einzelnen Botschaft zu übertragen. Will man in heterogenen Bordnetzen die PDUs in der Anwendungsschicht vom verwendeten Bus-System unabhängig behalten, darf die von CAN bekannte Nutzdatenlänge von 8 Bytes nicht überschritten werden. Daher ist es zweckmäßig, eine FlexRay Botschaft in mehrere PDUs zu unterteilen. Diese Segmentierung hat den Nebeneffekt, dass bei erfolgter Änderung eines einzelnen Signals alle enthaltenen PDUs in einen temporären Speicher kopiert und anschließend die gesamte Botschaft gesendet werden muss. Auf der Empfangsseite müssen dann umgekehrt alle in der Botschaft enthaltenen PDUs aktualisiert und an die zugehörige Applikation übergeben werden. Dies belastet den Kommunikationsstack unnötig mit dem Kopieren unveränderter Botschaftsinhalte und deren erneuter Auswertung. Zur Reduzierung dieser Blindleistung wurde im AUTOSAR das Konzept der Update-Bits eingeführt. Hierbei teilt der Sender einer PDU durch Setzen des zugehörigen Update-Bits dem Empfänger mit, dass der Dateninhalt der PDU aktualisiert wurde. Entsprechend werden PDUs deren Update-Bit nicht 4 gesetzt wurde auch nicht ausgewertet. Enthält die Fibex Datenbasis für das zu testende Steuergerät Update-Bit Informationen, so erkennt dies der Net2Run Konfigurator und konfiguriert die Net2Run Firmware entsprechend. Unterstützt das zu testende Steuergerät keine Update-Bits, so werden wie gehabt alle in der Botschaft enthaltenen PDUs aktualisiert. Manipulation von Signalen In einer auf die beschriebene Art und Weise generierten Restbussimulation fehlt dem Anwender bislang noch die Möglichkeit, Applikationsprogramm bzw. Signale während des Programmablaufes seiner Testautomation heraus aus seinem aktiv zu beeinflussen, d.h. veränderbare Botschaftsinhalte (z.B. Sensoristwerte) zu generieren. Dazu stellt ihm der Net2Run Konfigurator ein Signalfenster bereit, in das der Anwender per Drag & Drop alle Signale hineinziehen kann, die während des Programmlaufes verändert werden sollen. Zur besseren Orientierung werden auf der Bedienoberfläche die Signaleigenschaften und das Layout des dazugehörigen Frames dargestellt. Die in die Signalliste aufgenommenen Signale können nun zur Laufzeit der Restbus Simulation über die GÖPEL C API (G-API) gelesen bzw. geschrieben werden. Hierbei kann sowohl auf den physikalischen als auch den Rohwert des Signals zugegriffen werden. Darüber hinaus können Signalwerte auch direkt aus der Net2Run Bedienoberfläche heraus geändert werden, hierzu steht ein entsprechendes Signal Panel bereit. Die G-API benutzt symbolische Signalnamen, welche in der Signalliste vom Anwender geändert werden können. Die G-API Befehle können On-Board auf der Karte bzw. auf dem Host-Rechner unter Windows genutzt werden. Bei der G-API handelt es sich um eine C-API welche direkt in C/C++ Programme eingebunden werden kann. Hierzu stehen Beispiele für Visual Studio und LabWindowsCVI bereit. Für den Einsatz unter LabVIEW steht dem Anwender entsprechende VIBibliothek zur Verfügung. Gateway Editor Der in Net2Run integrierte Gateway Editor unterstützt die Konfiguration eines Multibus-Gateways mittels Bus System unabhängigen Routings auf PDU und Signalebene. Neben einfachen 1:1 Mappings von PDUs und Signalen unterstützt der Gateway Editor die Umrechnung von Signalwerten mittels vordefinierter Transferfunktionen. Zur Konfiguration werden Routingtabellen erstellt, in denen der Benutzer Quell- und Zielsignal aus der vorhandenen Signalliste auswählt die Triggerbedingung festlegt sowie die gewünschte Transferfunktion auswählt und ggf. erforderliche Umrechnungsparameter wie Skalierung, Offset oder Wertebereich angibt. Sind in der Fibex Datenbasis bereits Gateway-Mappings vorhanden, so können diese direkt ins Projekt übernommen werden. 5 Erstellung von On-Board Anwenderprogrammen Die Möglichkeit, Applikationsprogramme mit zeitkritischen Anforderungen an die Steuergerätekommunikation unabhängig vom PC unter Echtzeitbedingungen abarbeiten zu können, stellte auch die Motivation dar, die Softwaresuite mit einer kompletten Toolkette Net2Run IDE für die Erstellung von On-Board Anwenderprogrammen auszustatten. Net2Run IDE basiert auf der Eclipse Entwicklungsumgebung bietet mit den QNX Neutrino Command Line Tools eine vollwertige C/C++ Cross Development Plattform für die Kommunikationscontroller der Serie 61. Der Zugriff auf die Kommunikationsroutinen und IO Funktionen der Serie 61 Hardware erfolgt über die bekannten G-API Funktionen. So lassen sich bereits bestehende Windows Prüfprogramme mit geringem Aufwand für die On-Board Programmierung portieren. Mittels Ethernetverbindung und des Remote Debug Dienstes der Serie 61 lassen sich die erstellten Applikationsprogramme direkt aus dem Net2Run IDE heraus debuggen. Anschließend können die Programme im Flash Dateisystem der Serie 61 abgelegt werden und lassen sich entweder mittels Autostartfunktion automatisch ausführen oder über die G-API von Host PC aus starten. Abb.5 Entwicklungsumgebung Net2Run IDE So lassen sich zeitkritische Anwendungen wie z.B. Regler-Modelle direkt auf die Zielhardware verlagern und direkt in Echtzeit ausführen. Ein weiteres Einsatzgebiet sind auch stand-alone Messdatenerfassungseinheiten und Prüfstandskonfigurationen, die ohne fest installierten BedienPC auskommen, wie z.B. Dauerlaufprüfstände. Hier wird der komplette Prüfablauf auf die Zielhardware verlagert und eine Verwaltung erfasster Messdaten vorgenommen, sodass während des teils mehrwöchigen Prüfdurchlaufes kein PC angesteckt sein muss. 6 Autoren: Dipl.-Ing. Manfred Schneider studierte von 1971-75 Nachrichtentechnik an der Technischen Hochschule Ilmenau und war 1991 Mitgründer der GÖPEL electronic GmbH, wo er als geschäftsführender Gesellschafter für den Bereich Automotive Test Solutions verantwortlich ist. Thomas Sedlaczek studierte Industrieinformatik an der Fachhochschule in Wolfsburg und Electronic Design an der University of Glamorgan in Süd Wales. Er sammelte einige Jahre Erfahrung als Softwareentwickler bei Sanken Power Systems Ltd. in Cardiff und als FAE bei dSPACE Ltd. in Cambridge. Seit Januar 2008 ist er als Softwareentwickler bei der der GÖPEL electronic GmbH in Jena für die FlexRay Lösungen verantwortlich. 7