12.07.2015 Aufrufe

Von der Funktion zum serienreifen Steuergerät - dSPACE

Von der Funktion zum serienreifen Steuergerät - dSPACE

Von der Funktion zum serienreifen Steuergerät - dSPACE

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

ENTWICKLUNGSWERKZEUGESoftware-Entwicklung<strong>Von</strong> <strong>der</strong> <strong>Funktion</strong><strong>zum</strong> <strong>serienreifen</strong>SteuergerätWie können neue Standards die Weiterentwicklung von Entwicklungswerkzeugenför<strong>der</strong>n und die Zusammenführung von bisher völlig getrennten Werkzeugenermöglichen? Welchen Einfluss nehmen Echtzeitbetriebssystem-Standards wieOSEK/VDX auf die hardwarenahe Codegenerierung? Diese und viele an<strong>der</strong>e Fragenstellen sich heute die Entwickler von Steuergeräten, die sich mit neuen Methoden<strong>der</strong> Software-Entwicklung auf diesem Gebiet beschäftigen. Wie die <strong>dSPACE</strong> GmbHdie vollständige Integration eines Echtzeitbetriebssystems in den Codegenerierungsprozessverfolgt wird hier anhand eines Gesamtüberblicks beschrieben.2 Automotive Electronics


1 EinleitungDie Software-Entwicklung für Steuergerätewird in zunehmendem Maße mitmodellbasierenden Entwicklungstoolswie MATLAB/Simulink/Stateflow von TheMathWorks durchgeführt. Steht die Spezifikationunter Zuhilfenahme dieser Toolsfest, beginnt die Arbeit <strong>der</strong> Codierung. Diegrafisch beschriebenen <strong>Funktion</strong>en müssennun in C-Code umgewandelt undzusammen mit einem Echtzeitbetriebssystemauf <strong>der</strong> Steuer-gerätehardwareimplementiert werden.2 TargetLink für die Codegenerierungnach MaßEin Seriencodegenerator wie beispielsweiseTargetLink von <strong>dSPACE</strong> löst das anstehendeCodierproblem. TargetLink ergänztdie Simulink-Umgebung um eine Codegenerierungin Serienqualität und ist in <strong>der</strong>Lage, portablen ANSI-C-Code sowie auchprozessor- und compilerspezifischen Codezu generieren.TargetLink kann sowohl ein unverän<strong>der</strong>tesSimulink-Modell vollautomatisch –also mit wohlüberlegten Standardeinstellungen– in eine optimale Echtzeitimplementierungumsetzen, als auch umfangreichezusätzliche Optionen anbieten, dieeine exakte Anpassung an spezielle Anfor<strong>der</strong>ungenerlauben. Dabei ist zu beachten:Ein Simulink-Modell kennt ursprünglichkeine Tasks, son<strong>der</strong>n ist aus an<strong>der</strong>enObjekten aufgebaut, die <strong>der</strong> Codegeneratorauf Betriebssystemeinheiten abbildenmuss. Für die automatische Codegenerierungaus Simulink für Echtzeitbetriebssystemeergeben sich daher zwei wesentlicheZiele:◆ Die Abbildung von etablierten Simulink-Modellierungskonzepten auf verfügbareBetriebssystemobjekte.◆ Die Schaffung neuer Spezifikationsmöglichkeitenauf Modellebene für wichtigeBetriebssystemeigenschaften.Eine leistungsfähige Codegenerierungkann die technischen Hürden zwischen<strong>der</strong> Modellierung und <strong>der</strong> Implementierungauf Basis eines Echtzeitbetriebssystemssignifikant abbauen. Doch welcheRolle spielt dabei <strong>der</strong> OSEK/VDX-Betriebssystemstandardin Bezug auf TargetLink?Unter OSEK/VDX sind offene Systeme und<strong>der</strong>en Schnittstellen für die Elektronik imKraftfahrzeug/Vehicle Distributed eXecutive.<strong>dSPACE</strong> erweitert in <strong>der</strong> nächsten Versionvon TargetLink den Anwendungsbereich<strong>der</strong> Codegenerierung um die Unterstützungvon OSEK/VDX-konformenBetriebssystemen. Die Gründe hierfür sind:◆ Der OSEK/VDX-Standard definiert eineeinheitliche Betriebssystemfunktionalitätund eine einheitliche Programmierschnittstelle<strong>der</strong> Betriebssystemdienste.Damit ist es einem Codegenerator möglich,auch den Anschluss an diese Softwareschichtzu automatisieren. Dies istbei proprietären Echtzeitbetriebssystemennur über zusätzliche manuelle Programmierungmöglich.◆ OSEK/VDX hat eine weite Verbreitunginnerhalb <strong>der</strong> Automobilindustrie gefundenund es existiert inzwischen eine Reihehocheffizienter, kommerzieller Betriebssysteme,die diesem Standard genügen. Folglichmöchten die Anwen<strong>der</strong> auch eineautomatische Anbindung für die Codegenerierungan ihr OSEK/VDX-konformesEchtzeitbetriebssystem.3 OSEK/VDX: Konzepte undZieleDer OSEK/VDX-Betriebssystemstandardbeschreibt ein statisches Echtzeitbetriebssystem,dessen Objekte (Tasks, Events,Messages, Ressourcen, etc.) alle zur Compile-Zeitangelegt werden. Diese Betriebssystem-Objektewerden in einer speziellenBeschreibungssprache (OIL: OSEK/VDXImplementation Language) definiert. Zueinem Objekt gehören bestimmte OIL-Attribute wie beispielsweise die Prioritäteiner Task. Zusätzlich zu den Standard-Attributen können Hersteller vonOSEK/VDX-konformen Betriebssystemenweitere Attribute definieren und so <strong>zum</strong>Beispiel ihr Betriebssystem auf bestimmteMikrocontroller anpassen.3.1 Ziele von OSEK/VDXZiel des OSEK/VDX-Betriebssystemstandardsist es, die Wie<strong>der</strong>verwendbarkeitund Portierbarkeit von Anwendungs-Softwarezu verbessern. Um dieses Ziel zu erreichen,wurden von den OSEK/VDX-ArbeitsgruppenSchnittstellen in den BereichenEchzeitbetriebssystem, Kommunikationund Netzwerk-Management spezifiziert.Es soll hier nur auf den Bereich Echtzeitbetriebssystemeingegangen werden.OSEK/VDX selbst ist also kein Betriebssystem,son<strong>der</strong>n ein Standard, <strong>der</strong> dieSchnittstellen und das Verhalten einesOSEK/VDX-konformen Betriebssystems,im Folgenden OSEK/VDX-Betriebssystemgenannt, definiert. Die Vorteile desOSEK/VDX-Standards sind:◆ Verkürzung <strong>der</strong> Entwicklungszeit◆ Erhöhte Software-Qualität durch Wie<strong>der</strong>verwendungbereits getesteter Software-Module◆ Optimale Speicherausnutzung durchSkalierbarkeitDie AutorenDr. Ing. Lutz Köster istGruppenleiter <strong>der</strong> Software-Entwicklungbei <strong>der</strong><strong>dSPACE</strong> GmbH, Pa<strong>der</strong>born.Dr. Ing. Rainer Otterbachist Leiter Produktmanagementbei <strong>der</strong> <strong>dSPACE</strong>GmbH, Pa<strong>der</strong>born.Dipl.-Ing. (FH) GüntherGruhn ist TechnischerRedakteur bei <strong>der</strong> dSPA-CE GmbH, Pa<strong>der</strong>born.SummaryFunctionDesign to ProductionECUIs it possible to map operatingsystem functionalities whileduring function design for anelectronic control unit (ECU)?How can new standards promotethe further development ofdevelopment tools and enablecompletely separate tools to bebrought together? What effectare real-time operating systemstandards such as OSEK/VDXhaving on hardware-relatedcode generation? These andmany other questions todayface the developers of ECUs asthey investigate new methodsof software development fortheir field. The following overviewgives an account of how<strong>dSPACE</strong> GmbH is striving forcomplete integration of a realtimeoperating system in thecode generation process.Son<strong>der</strong>ausgabe von ATZ und MTZ und AUTOMOTIVE ENGINEERING PARTNERS3


ENTWICKLUNGSWERKZEUGESoftware-Entwicklung4.1 Die Schritte vom Simulink-Modell zurausführbaren TaskBild 1: Typisches Simulink/Stateflow-Diagramm◆ Wie<strong>der</strong>verwendung von Software inan<strong>der</strong>en Umgebungen.3.2 Die Skalierbarkeit innerhalbvon OSEK/VDXUnterschiedliche Anwendungen erfor<strong>der</strong>nunterschiedliche Betriebssystemfunktionalitäten.Um keine Steuergeräte-Ressourcen zu verschwenden, ist es notwendig,das Betriebssystem zu skalieren,also dessen Umfang an die Anwendunganzupassen.Um dieses Ziel zu erreichen, sieht <strong>der</strong>OSEK/VDX-Standard zwei Stufen für eineschrittweise Fokussierung <strong>der</strong> Anwen<strong>der</strong>bedürfnissevor:◆ Mit einer Entscheidung für einebestimmte <strong>der</strong> vier vordefinierten Conformanceklassen,die unterschiedliche <strong>Funktion</strong>sumfängebeschreiben.◆ Mit individuellen Einträgen in die OIL-Datei. Diese statische Definition <strong>der</strong>Betriebssystemobjekte erlaubt die Generierungeines Betriebssystemkerns mitdem System-Generator des Betriebssystemherstellers,<strong>der</strong> genau nur die <strong>Funktion</strong>enenthält, die für die jeweiligeAnwendung benötigt werden.Der OSEK/VDX-Betriebssystemstandarddefiniert als wichtigste Objekte:◆ Tasks, die als Software-Einheiten dieeinzelnen <strong>Funktion</strong>en <strong>der</strong> Steuergeräte-Software beinhalten.◆ Counter, Alarme und Events, um wie<strong>der</strong>kehrendeEreignisse zu verarbeiten o<strong>der</strong>Tasks zu synchronisieren.◆ Eine Message-basierende Inter-Task-Kommunikation für den Datenaustauschsowohl zwischen Tasks auf demselbenSteuergerät als auch zwischen Tasks, diesich auf verschiedenen Steuergerätenbefinden.◆ Verriegelungsmechanismen (Ressourcen),um den gemeinsamen Zugriff vonverschiedenen Tasks o<strong>der</strong> Interrupt ServiceRoutinen (ISR) auf kritische Bereiche zuregeln.4 Modellierung von Echtzeit-Anwendungen in Simulink/TargetLinkEine Anwendung, die auf einem Echtzeitbetriebssystembasiert, ist in unterschiedlicheSoftware-Einheiten aufgeteilt. Diesesogenannten Tasks fassen Software-Abschnitte mit gemeinsamen Echtzeitanfor<strong>der</strong>ungenwie Timing, Priorität etc.zusammen. Sie werden vom Echtzeitbetriebssystemperiodisch zu definierten Zeitenaufgerufen o<strong>der</strong> durch aperiodischeHard- o<strong>der</strong> Software-Ereignisse aktiviert.4.1 Die Schritte vom Simulink-Modell zur ausführbaren TaskSimulink nutzt zur hierarchischen Strukturierungdes Modells sogenannte Subsysteme,die zu einer gewissen <strong>Funktion</strong>alitätgehörende Basisblöcke zusammenfassen.Diese Basisblöcke werden entwe<strong>der</strong>zyklisch mit einer bestimmten Abtastrateo<strong>der</strong> ereignisgetrieben abgearbeitet.Bild 1 zeigt ein typisches Simulink/StateflowDiagramm, das periodische un<strong>der</strong>eignisgetriebene Modellteile enthält.Um dieses Modell als OSEK/VDX-Echtzeitanwendungzu implementieren, bedarf esmehrerer Schritte.4.2 Periodische TasksIm Beispiel von Bild 1 würde TargetLinkdas 10ms- und 100ms-Subsystem jeweilsals separate Task (A und B) implementieren.Die zugehörigen C-<strong>Funktion</strong>en werdenautomatisch durch entsprechendeSchlüsselwörter im Code als Task gekennzeichnet.Zusätzlich wird das Betriebssystemdurch die Vorgaben von TargetLinkso konfiguriert, dass diese Tasks automatischin <strong>der</strong> korrekten Periodendauer aufgerufenwerden. Hierfür werden OSEK-Alarme definiert, geeigneten Timern zugeordnetund in einer speziellen Startup-Routine durch entsprechende Betriebssystemaufrufeinitialisiert.4.3 Aperiodische TasksEreignisgesteuerte <strong>Funktion</strong>en werden inSimulink durch getriggerte Subsystememodelliert. Ihre Triggerung wird entwe<strong>der</strong>durch bestimmte Bedingungen ausgelöst,die im Steuergerätecode selbst ausgewertetwerden (FC_System in Bild 1), o<strong>der</strong>durch externe Ereignisse wie <strong>zum</strong> BeispielHardware-Interrupts.Die intern getriggerten Systeme werdenvon TargetLink entwe<strong>der</strong> als C-<strong>Funktion</strong>en,die nach Auswertung <strong>der</strong> Trigger-Bedingung direkt aufgerufen werden,implementiert o<strong>der</strong> optional – wie in Bild 1– als separate Task D, die nach Auswertung<strong>der</strong> Trigger-Bedingung durch entsprechendeBetriebssystemfunktionenaktiviert wird.Extern getriggerte Systeme sind solche,<strong>der</strong>en Triggerung nicht durch Steuergerätecodeausgelöst wird, son<strong>der</strong>n <strong>zum</strong> Beispieldurch einen Hardware-Interrupt(Crankshaft in Bild 1). Für die Simulationkönnen diese externen Triggerquellen mitSimulink-Blöcken nachgebildet (Chart inBild 1) werden. Seriencode soll für dieseBlöcke allerdings nicht generiert werden.Der Wirkungsbereich des Codegenerators4 Automotive Electronics


umfasst daher nur den im Bild 1 gestricheltenBereich. TargetLink implementiertextern getriggerte Systeme standardmäßigals Tasks und stellt dafür Aktivierungsfunktionenzur Verfügung, die <strong>der</strong>Anwen<strong>der</strong> den Triggerquellen zuordnenmuss.4.4 Vermeiden von Task-Overhead4.4 Vermeiden von Task-OverheadEin Steuergerät enthält üblicherweise einegrößere Anzahl von <strong>Funktion</strong>alitäten(<strong>zum</strong> Beispiel Drosselklappenregelung,Leerlaufregelung, Abgasrückführung etc.),die häufig von verschiedenen Teams entwickeltund sinnvollerweise als getrennteSubsysteme dargestellt werden. Jedes dieserFeatures kann wie<strong>der</strong>um Teile enthalten,die <strong>zum</strong> Beispiel im 10ms-Raster o<strong>der</strong>synchron zur Kurbelwelle abgearbeitetwerden müssen. TargetLink kann, soferngewünscht, alle periodischen Subsystemegleicher Abtastrate zu gemeinsamenTasks zusammenfassen. Getriggerte Subsystememit gemeinsamer Triggerquellewerden ebenfalls zusammengefasst.Dabei spielt es keine Rolle, wie die Subsystemeim Modell verteilt sind. Die Zusammenfassungdieser verteilten Einzelsystemegleicher Periodizität o<strong>der</strong> Eventzugehörigkeit– häufig Prozesse genannt –hilft Task-Overhead zu sparen.Neben <strong>der</strong> automatischen Taskpartitionierungkann <strong>der</strong> Anwen<strong>der</strong> diese auchgezielt selbst spezifizieren. Ein spezieller„Taskblock“, Bild 2, <strong>der</strong> in das Simulinkmodelleingefügt wird, erlaubt es demAnwen<strong>der</strong>, ein Simulink-Subsystem expliziteiner schon existierenden o<strong>der</strong> einerneu anzulegenden Task zuzuordnen.4.5 OSEK/VDX konforme TaskkonfigurationMit <strong>der</strong> Aktivierung des Taskblocks (Doppelklick)gelangt man in den Taskblock-Dialog. Eine Liste zeigt hier die schon imGesamtsystem vorhandenen Tasks an.Das aktuelle Subsystem kann einer dieserTasks zugeordnet werden o<strong>der</strong> es kanneine neue Task kreiert werden. Dazu gibtes Menüeinträge für alle von OSEK vorgeschriebenenAttribute wie Priorität,Anzahl <strong>der</strong> Aktivierungen, Unterbrechbarkeit,benutzte Ressourcen o<strong>der</strong> zugehörigeEvents. Darüber hinaus können für eineReihe von kommerziellen OSEK-Betriebssystemenauch die nicht standardisierten,herstellerspezifischen Optionen direkt aus<strong>der</strong> TargetLink-Umgebung eingestelltwerden.Bild 2: Taskblock-Dialog4.6 Inter-Task-Kommunikationund OIL-DateiDer nächste wichtige Schritt ist die Umsetzung<strong>der</strong> Datenverbindungen zwischenden Tasks. Betriebssysteme bieten üblicherweiseDienste <strong>zum</strong> geschütztenDatenaustausch zwischen Tasks an.OSEK/VDX definiert dafür sogenannteMessages, die allerdings für den Datenverkehrzwischen Tasks auf demselben Steuergerätnicht immer die effizientesteLösung darstellen.Daher kann TargetLink auch automatischden jeweils effizientesten Weg des Datenaustauschs,<strong>der</strong> abhängig von den Taskeinstellungenist, implementieren (globaleVariablen mit lokalen Kopien o<strong>der</strong>ohne lokale Kopien, Interrupt-Sperre, Ressourcen-Belegungetc.).Mit den Einstellungsdaten <strong>der</strong> Taskkonfigurationund den Einstellungsdaten<strong>der</strong> Inter-Task-Kommunikation wird vonTargetLink eine Offline-Beschreibung <strong>der</strong>gesamten Anwendung in Form einer OIL-Datei generiert, Bild 3. Mit den hierin enthaltenenInformationen kann <strong>der</strong> System-Generator des Betriebssystemherstellerseinen optimal angepassten Echtzeitkernerzeugen.5 OSEK/VDX-Konfigurationund verschiedene WerkzeugeEin typisches Steuergeräteprogrammbesteht aus mehreren C-Quelldateien, vonSon<strong>der</strong>ausgabe von ATZ und MTZ und AUTOMOTIVE ENGINEERING PARTNERS5


ENTWICKLUNGSWERKZEUGESoftware-Entwicklung4.6 Inter-Task-Kommunikationund OIL-Datei5 OSEK/VDX-Konfiguration und verschiedeneWerkzeugeBild 3: Beispiel einer OIL-DateiBild 4: Zusammenspiel <strong>der</strong> Entwicklungswerkzeugedenen einige beispielsweise von Target-Link erzeugt, an<strong>der</strong>e von Handprogrammiererngeliefert werden. Eine gemeinsameOIL-Beschreibung dient als Eingabe fürden System-Generator, <strong>der</strong> das Betriebssystemoptimal konfiguriert. Der so angepassteEchtzeitkern wird zusammen mitden an<strong>der</strong>en Modulen <strong>zum</strong> endgültigenausführbaren Programm verbunden, Bild4.5.1 Konsistenz durch einegemeinsame OIL-DatenbasisZur Erzeugung <strong>der</strong> textuellen OIL-Dateigibt es verschiedene Möglichkeiten. Zumeinen sollten die Eigenschaften <strong>der</strong> ausdem Simulink-Modell stammendenBetriebssystemobjekte sinnvollerweisedirekt auf Modellebene spezifiziert sowiedie zugehörigen OIL-Abschnitte automatischgeneriert werden können. Zum an<strong>der</strong>enliefern die meisten OSEK/VDX-Betriebssystem-Anbieter komfortable grafischeTools zur Konfiguration <strong>der</strong> OIL-Datei. Deren Nutzung ist sicherlich für diehandgeschriebenen Programmteile sinnvoll.Für ein nahtloses Zusammenspiel bei<strong>der</strong>Werkzeuge benutzt TargetLink eineexterne OIL-Datei als Datenbasis für dieBetriebssystemeinstellungen, aus <strong>der</strong>importiert und in die exportiert werdenkann. Simulink-Komponenten (<strong>zum</strong> BeispielSubsysteme) können OSEK/VDX-Objekten (<strong>zum</strong> Beispiel Tasks) zugewiesenwerden, die bereits in <strong>der</strong> Datenbasis existieren,o<strong>der</strong> es können neue Einträgeangelegt werden. Der Anwen<strong>der</strong> kann freientscheiden, welches das für ihn geeignetsteTool <strong>zum</strong> Spezifizieren <strong>der</strong> Attribute ist.Die Verwendung <strong>der</strong> gemeinsamen,externen OIL-Datenbasis gewährleistetKonsistenz – Än<strong>der</strong>ungen, die in einemTool vorgenommen werden, werden alsoautomatisch vom an<strong>der</strong>en übernommen.6 Simulation von OSEK-AnwendungenEine <strong>der</strong> großen Stärken von Simulink ist,dass das Verhalten eines entworfenenSteuergeräts direkt auf dem PC simuliertwerden kann. Für den Test des Steuergerätealgorithmuswird häufig ein Streckenmodellbenutzt, um den Regelkreis zuschließen, Bild 5.Während <strong>der</strong> Entwurfsphase wird diesesModell von Simulink Block für Block inhöchster Fließkomma-Genauigkeit simuliert.Die gleiche Anordnung kann in <strong>der</strong>TargetLink-Umgebung benutzt werden,um in <strong>der</strong> Implementierungsphase denautomatisch generierten Seriencode zutesten und beispielsweise die Quantisierungseffekteeiner Festkomma-Implementierungzu untersuchen.In diesem Simulationsmodus wirdanstelle <strong>der</strong> originalen Simulink-Blöcke('Controller'-Subsystem aus Bild 5), <strong>der</strong>generierte C-Code in die Simulation eingebettet(Software-in-the-Loop). Dieser Codewird entwe<strong>der</strong> auf dem Entwicklungs-PC,im Nachfolgenden Host-PC genannt, ausgeführt(Production Code Host Mode) o<strong>der</strong>als spezielle Option auf einem realenMicrocontroller Board (Production CodeTarget Mode). In beiden Fällen wird dasStreckenmodell, das die Teststimulierzeugt, von Simulink auf dem Host-PCberechnet.Da in diesen Simulationsmodi <strong>der</strong> gleicheCode benutzt wird, <strong>der</strong> nachher auchauf dem Steuergerät läuft, bekommt <strong>der</strong>Anwen<strong>der</strong> schon in <strong>der</strong> Simulationsphaseexakt die gleichen Berechnungsergebnissewie in <strong>der</strong> späteren realen Applikation.Das gilt insbeson<strong>der</strong>e für den 'ProductionCode Target Mode', da hier <strong>der</strong> endgültigeSeriencode-Compiler <strong>zum</strong> Übersetzen desC-Programmes benutzt wird und so auchdessen Effekte berücksichtigt werden.Der in <strong>der</strong> Simulation verwendete Seriencodeenthält im Falle einer OSEK-Anwendung Betriebssystemaufrufe,<strong>der</strong>en <strong>Funktion</strong> in <strong>der</strong> Simulation nachgebildetwerden muss. Dazu bietet Target-Link folgende zwei Möglichkeiten.◆ Simulation mit spezieller OSEK Nachbildung:TargetLink stellt für die Simulationein vereinfachtes OSEK-Betriebssystemzur Verfügung, das alle im generiertenSeriencode aufgerufenen Betriebssystem-6 Automotive Electronics


6 Simulation von OSEK-AnwendungenBild 5: Fließkomma-SimulationBild 6: ProductionCode Target-Simulationmit OSEK/VDX-Betriebssystemfunktionen abbildet. Diese 'OSEK-Nachbildung'ist auf die Anfor<strong>der</strong>ungen dieser'Software-in-the-Loop'-Simulation zugeschnittenund nutzt auf diese Weise dieVereinfachungen aus, die sich aus <strong>der</strong> speziellenNicht-Echtzeit-Simulationsumgebungergeben.◆ Simulation mit echtem OSEK Betriebssystem:Das Ziel des Entwicklers ist es, schonin <strong>der</strong> Simulationsphase möglichst viele<strong>der</strong> später verwendeten Software-Bausteineund <strong>der</strong>en Zusammenspiel zu testen.Dazu wird in <strong>der</strong> 'Production Code TargetSimulation' das endgültige (kommerzielle)OSEK-Betriebssystem des späteren Steuergerätesverwendet und <strong>der</strong> generierteCode ('Controller'-Subsystem aus Bild 5)zusammen mit diesem OSEK-Betriebssystemauf einem Mikrocontroller-Boardimplementiert. Gegenüber <strong>der</strong> späterenEchtzeitausführung werden für die SimulationModifikationen vorgenommen.Da <strong>der</strong> Fortschritt <strong>der</strong> Simulation auchvon Modellteilen abhängt, die auf demHost-PC gerechnet werden (Streckenmodell),und daher nicht Echtzeit entspricht,muss die Zielhardware von ihren Echtzeit-Eingängen – Hardware-Timern und Hardware-Interrupts– abgetrennt werden.Diese Stimuli werden vom Host-PC (Simulink)entsprechend <strong>der</strong> aktuellen Simulationszeitgeliefert, Bild 6. Dazu wird anstelledes 'Controller'-Subsystems in Simulinkein Programmteil (S-<strong>Funktion</strong>) eingesetzt,das die Schnittstelle <strong>zum</strong> Microcontroller-Board bedient.7 Spezifische Codegenerierungfür kommerzielle OSEK/VDX-BetriebssystemeOSEK/VDX lässt eine ausreichende Flexibilitätzu, um die Eigenschaften <strong>der</strong> verschiedenenMikrocontroller optimal auszunutzen.Deshalb können bestimmteSon<strong>der</strong>ausgabe von ATZ und MTZ und AUTOMOTIVE ENGINEERING PARTNERS7


ENTWICKLUNGSWERKZEUGESoftware-Entwicklung<strong>Funktion</strong>en in verschiedenen OSEK-Betriebssystemen unterschiedliche Benutzerschnittstellenhaben. Beispiele hierfürsind:◆ API-<strong>Funktion</strong>en für Counter, welchenicht in OSEK/VDX festgelegt sind◆ Unterschiede bei den OIL-Attributen.Viele sind schon im OSEK/VDX-Standarddefiniert, jedoch können zusätzlich beliebigviele Attribute vom Hersteller definiertwerden.TargetLink benutzt, sofern es nötig ist,auch die vom jeweiligen Betriebssystemherstellerzusätzlich <strong>zum</strong> Standard angebotenenBetriebssystemfunktionen, umeffizienten und lesbaren Code zu erzeugen.Der Anwen<strong>der</strong> erhält die Möglichkeit,auch diese Attribute in <strong>der</strong> TargetLink-Umgebung einzustellen.Möchte ein Anwen<strong>der</strong> sein Programmvon einem OSEK/VDX-Betriebssystem aufein an<strong>der</strong>es übertragen, ersetzt TargetLinkautomatisch die betriebssystemspezifischen<strong>Funktion</strong>saufrufe und OIL-Attribute.Das erhöht die Portierbarkeit und dieWie<strong>der</strong>verwendbarkeit. Nicht zuletztführen die Kooperationen zwischenOSEK/VDX-Anbietern und <strong>dSPACE</strong> zueinem optimalen Zusammenspiel zwischenden einzelnen OSEK/VDX-Betriebssystemenund TargetLink.8 ZusammenfassungEine ständig wachsende Anzahl vonAnwen<strong>der</strong>n in automotiven Entwicklungsbereichennutzt MATLAB/Simulink/Stateflowals Spezifikationsbasis fürden gesamten Entwicklungszyklus elektronischerSteuergeräte.Möglich wird dies auch durch den Einsatzvon TargetLink, einem Codegenerator,<strong>der</strong> aus Simulink-Modellen automatischseriencodetauglichen C-Code generierenkann. Für die Implementierung <strong>der</strong> vollständigenSteuergeräte-Software ist <strong>der</strong>Anschluss an ein Echtzeitbetriebssystemund dabei beson<strong>der</strong>s an den weit verbreitetenStandard OSEK/VDX von großerBedeutung. TargetLink wird in seinernächsten Version die Modellierungskonzeptevon Simulink noch umfassen<strong>der</strong>,und wenn gewünscht, auch vollautomatischauf OSEK/VDX-<strong>Funktion</strong>alität abbildenkönnen. <strong>Funktion</strong>sentwickler werdenweiterhin in ihrer vertrauten Umgebungarbeiten und sich trotzdem die OSEK/VDX-Dienste und Eigenschaften im Modellnutzbar machen können.Literaturhinweise[1] Köster, L., Thomsen, T, Stracke, R.: ConnectingSimulink to OSEK/VDX: Automatic Code Generationfor Real-Time Operating Systems with Target-Link, SAE Technical Paper 2001-01-0024, März2001[2] OSEK/VDX Operating System, Version 2.1 revision1, November 2000[3] OSEK/VDX System Generation OIL: OSEKImplementation Language, Version 2.2, Juli 2000[4] OSEK/VDX Communication, Version 2.2.2,Dezember 2000[5] TargetLink Production Code Generation Guide,<strong>dSPACE</strong> GmbH, Mai 2000[6] Simulink User’s Guide, The MathWorks, Nattick,MA USA 1999[7] Hanselmann, H., Kiffmeier, U., Köster, L.,Meyer, M.: Automatic Generation of ProductionQuality Code for ECUs, SAE Technical Paper 1999-01-1168, März 19998 Automotive Electronics

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!