Handlungsanweisung
Transcrição
Handlungsanweisung
www.bmwcoders.com Fahrzeugprogrammierung Handlungsanweisung Handlungsanweisung SG-Programmierung mit E-Sys Projekt : Autoren: Version: Gültig ab: Datum: Fahrzeugprogrammierung Wolfgang Schühle, ESG Tobias Thiemann, ESG 6.1 E-Sys 3.12 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Inhaltsverzeichnis 1 Einleitung 4 1.1 Änderungsdokumentation 4 1.2 Vertraulichkeit 4 1.3 Zweck des Dokuments 5 1.4 Referenzen 5 1.5 Abkürzungen 5 1.6 Abbildungsverzeichnis 7 2 Grundlagen 9 2.1 Programmierablauf 9 2.2 Konfiguration 9 2.2.1 Programm 9 2.2.2 Systemdaten / Fingerprint 10 2.2.3 FSC 11 2.2.4 Optionen 12 2.2.5 Verbindungen 13 2.2.6 Externe Applikationen 14 2.2.7 EST 15 2.2.8 ODX 15 3 Erstellung eines PDX-Komponentencontainers 17 3.1 Laden des PDX-Templates 17 3.2 Hinzufügen der SG-Software 17 3.3 Einfügen von BLUP-/FLUP-Dateien und BLUMap 18 3.4 Einfügen von Benutzerdokumenten 20 3.5 ActivationCode für EraseMemory 21 3.6 Festlegung der Programmierreihenfolge 21 3.7 Abspeichern des Komponentencontainers 22 3.8 ODX-Checker 23 3.9 Import des Komponentencontainers ins PSdZ 24 3.10 Containerupdate 24 4 Erstellung der TAL 26 4.1 Manuelle Erstellung der TAL im TAL-Editor 26 4.2 Automatische TAL-Berechnung 28 4.3 Erzeugung einer TAL im PDX-Charger 28 4.4 Erstellen einer TAL mit BLUP/FLUP 29 4.4.1 Automatische Berechnung im Modul „TAL-Berechnung“ Seite 2 von 44 29 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 4.4.2 Automatisch Berechnung im PDX-Charger 29 4.4.3 Manuelle Erzeugung der TAL 29 5 Verbindungsaufbau 32 5.1 Auswahl des TargetSelectors 32 5.1.1 Verbindung über Gateway 32 5.1.2 Direkte Verbindung 33 5.2 Auswahl des physikalischen Interface 5.2.1 Verbindung über Ethernet 33 33 Verbindung über Gateway-URL 34 Verbindung über Fahrgestellnummer (VIN) 34 5.2.2 Verbindung über CANCard 34 5.2.3 Verbindung über OMITEC 35 5.2.4 Verbindung über Funk 36 5.3 Test der Verbindung 36 6 TAL-Abarbeitung 38 7 Besonderheiten bei Übernahmesteuergeräten 40 7.1 Mapping 40 7.2 AIFContents 41 8 Individualdatenrettung 42 8.1 IDRlight 42 8.1.1 IDBackup 42 Automatische Berechnung der TAL 42 Manuelle Erstellung der TAL 42 Auslesen und Speichern der Individualdaten 43 8.1.2 IDRestore 43 Automatische TAL-Berechnung 43 Manuelle Erstellung der TAL 43 Zurückschreiben der Individualdaten 44 Seite 3 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 1 Einleitung 1.1 Änderungsdokumentation Version Datum Beschreibung Autor 0.1 07.12.06 Erstanlage des Dokuments Wolfgang Schühle, ESG 1.0 11.01.07 Dokument komplett überarbeitet Tobias Thiemann, ESG, ES-71 1.1 02.02.07 Beschreibung des Komponentennamens in 3.4 ergänzt Tobias Thiemann, ESG, ES-71 1.2 04.05.07 Kapitel 7 „Übernahme-ECUs“ eingefügt Tobias Thiemann, ESG, ES-71 2.0 22.05.07 2.1 19.07.07 Wechsel auf E-Sys 3.0 Kapitel 2, 5 und 6 überarbeitet Umstrukturierung von Kapitel 4 Neuanlage der Abschnitte 4.2 und 4.3 Tobias Thiemann, ESG, ES-71 Tobias Thiemann, ESG, ES-71 Wechsel auf E-Sys 3.1 3.0 11.09.07 Neuanlage des Abschnitts 3.4 Tobias Thiemann, ESG, ES-71 Abschnitte 4.3 und 5.2.1 geändert 3.1 13.12.07 4.0 20.12.07 5.0 25.03.08 5.1 23.04.08 Kleinere Anpassungen an E-Sys 3.3.1 Wechsel auf E-Sys 3.3 Abschnitt 3.4 komplett überarbeitet Wechsel auf E-Sys 3.4 Abschnitt 2.2 ergänzt und überarbeitet Tobias Thiemann, ESG, ES-71 Tobias Thiemann, ESG, ES-71 Tobias Thiemann, ESG, FZ-620 Wechsel auf E-Sys 3.5 Abschnitt 3.6 neu angelegt Tobias Thiemann, ESG, FZ-620 Abschnitt 4.3 überarbeitet 5.2 12.06.08 Wechsel auf E-Sys 3.6 Tobias Thiemann, ESG, FZ-620 Wechsel auf E-Sys 3.7 5.3 07.08.08 Abschnitt 3.3 neu angelegt Tobias Thiemann, ESG, FZ-620 Abschnitt 4.4 neu angelegt 5.4 05.09.08 5.5 04.11.08 5.6 10.12.08 6.0 05.06.09 Abschnitt 3.4 neu angelegt Tobias Thiemann, ESG, FZ-620 Lizenzhinweis in Abschnitt 3.8 eingefügt Layout der Hinweiskästen geändert Kapitel 8 neu angelegt Tobias Thiemann, ESG, FZ-620 Tobias Thiemann, ESG, FZ-242 Wechsel auf E-Sys 3.10 Abschnitt 2.2 aktualisiert Tobias Thiemann, ESG, FZ-242 Kapitel 5 wegen Entfall des B2V komplett überarbeitet Wechsel auf E-Sys 3.12 6.1 18.11.09 Einige Screenshots angepasst Tobias Thiemann, ESG Kapitel 5.2.2 überarbeitet 1.2 Vertraulichkeit Das vorliegende Dokument ist nur zur Einsicht für direkt am Projekt beteiligte Personen bestimmt. Eine Weitergabe, insbesondere bei Vertragspartnern außerhalb der BMW Group, ist mit dem jeweiligen Seite 4 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Projektverantwortlichen abzustimmen und richtet sich nach den Bestimmungen zur Geheimhaltung im Entwicklungsvertrag. 1.3 Zweck des Dokuments Dieses Dokument beschreibt den Prozess der SG-Programmierung mit E-Sys. Es wird vorausgesetzt, dass bereits gültige Softwareeinheiten (SWEn) mit einer aktuellen Version des SWE-Generators erzeugt wurden. Der Umgang mit dem SWE-Generator wird in [SWEGEN] beschrieben. 1.4 Referenzen Referenz Version Datum Beschreibung Autor [SWEGEN] 1.0 28.11.2006 Handlungsanweisung SWE-Generator Patrick Wagner, ESG Auf GIS unter „BMW Standard Tools Entwicklung/ Standard Tools/ Datei-Generatoren und Vorlagen/ SWE-Generator (L6)/ Applikation“ [LH_FP_SWL] 9 18.04.2008 LH „FP Teil 2 Softwarelogistik“, 10000967 - 000 – 09 Dr. Olaf Kluge, BMW Verfügbar in SAP [FA_GEN] 4 02.07.2009 FA-Generator Auf GIS unter „BMW Standard Tools Entwicklung/ Standard Tools/ Datei-Generatoren und Vorlagen/ FA-Generator (L6)/ Applikation“ 1.5 Abkürzungen Abkürzung Bedeutung CAF Coding Application File E-Sys Neues Programmiersystem für das E-Ressort FA Fahrzeug-Auftrag FP Fahrzeugprofil FSC Freischaltcode GIS Global Information Service GUI Grafical User Interface KIFA Fachbereiche: Karosserie, Interieur, Fahrwerk, Antriebsstrang KIS Kompatibilitäts- und Informations-System LAN Local Area Network ODX Open Diagnostic Data Exchange Seite 5 von 44 Markus Wolf, BMW www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abkürzung Bedeutung PDX Packed ODX PSdZ ProgrammierSystem der Zukunft SG Steuergerät SG-ID Steuergeräte-Identifier SGBM Steuergerätebeschreibungsmodell SGBM-ID Steuergerätebeschreibungsmodell-Identifier SWLdZ Software-Logistik der Zukunft SREC Datenformat Motorola SREC SVK Steuergeräte-Verbau-Kennung SVT (Ist) System-Verbau-Tabelle des Programmier-Istzustands SVT (Soll) System-Verbau-Tabelle des Programmier-Sollzustands SWE Softwareeinheit TAL Transaktionsliste VCM Vehicle Configuration Management VIN Vehicle Identification Number (Fahrgestellnummer) Seite 6 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 1.6 Abbildungsverzeichnis Abbildung 1: Maske für Programmeinstellungen..............................................................................................10 Abbildung 2: Einstellungen für Codierung und Fingerprint...............................................................................11 Abbildung 3: Einstellungen für Freischaltcodes ...............................................................................................12 Abbildung 4: Sonstige Optionen .......................................................................................................................13 Abbildung 5: Verbindungseinstellungen ...........................................................................................................14 Abbildung 6: Einstellungen für externe Applikationen ......................................................................................14 Abbildung 7: Einstellungen für Entwicklersofttoken .........................................................................................15 Abbildung 8: Einstellungen für ODX .................................................................................................................16 Abbildung 9: PDX-Charger mit geöffnetem PDX-Template .............................................................................17 Abbildung 10: Hinzufügen eines BLUPs zum Komponentencontainer ............................................................18 Abbildung 11: Hinzufügen einer BLUMap-Datei zum PDX-Container .............................................................19 Abbildung 12: Anzeige der BLUMap im PDX-Charger .....................................................................................19 Abbildung 13: Hinzufügen von Anwenderdokumentation zum PDX-Container ...............................................20 Abbildung 14: Anwenderdokumentation im PDX-Container ............................................................................20 Abbildung 15: Anlage eines ECUVariantPattern unterhalb der SG-Variante...................................................21 Abbildung 16: SWESEQ-Editor mit geöffneter SWESEQ-Datei ......................................................................22 Abbildung 17: Meldungen nach ODX-Check....................................................................................................23 Abbildung 18: Auszug aus dem Datei-Explorer nach Import der ODX-Daten .................................................24 Abbildung 19: Update des PDX-Containers .....................................................................................................25 Abbildung 20: Hinzufügen einer neuen Transaktion ........................................................................................26 Abbildung 21: TAL-Editor-Maske mit geöffneter TAL .......................................................................................27 Abbildung 22: Berechnung der TAL aus SVT-Ist und SVT-Soll .......................................................................28 Abbildung 23: TAL/SVT-Erzeugung aus einer SG-Variante ............................................................................29 Abbildung 24: Hinzufügen einer BlFlash-Transaktion ......................................................................................30 Abbildung 25: Löschen des vorgegebenen BLFlashTA-Eintrags.....................................................................30 Abbildung 26: Hinzufügen einer BLFlashTA auf Basis einer Datei ..................................................................31 Abbildung 27: TAL-Line mit BLUP-Transaktion................................................................................................31 Abbildung 28: Button zum Öffnen des Verbindungsdialogs .............................................................................32 Abbildung 29: Verbindungsdialog von E-Sys ...................................................................................................32 Abbildung 30: Mögliche Targetselektoren für eine Verbindung über ZGW ......................................................33 Abbildung 31: Mögliche Targetselektoren für eine direkte ECU-Verbindung...................................................33 Abbildung 32: Aufbau einer Verbindung über Gateway-URL...........................................................................34 Abbildung 33: Aufbau einer Verbindung über Fahrgestellnummer (VIN) .........................................................34 Abbildung 34: Beispielzuordnung von „ProDiaS-CAN-Driver CAN 1/2“ ...........................................................35 Abbildung 35: Aufbau einer direkten CAN-Verbindung über FA-CAN .............................................................35 Abbildung 36: Einstellungen für Verbindung über OMITEC-Interface .............................................................36 Abbildung 37: Einstellungen für Verbindung über Funk-Interface ...................................................................36 Abbildung 38: SVK lesen ..................................................................................................................................37 Seite 7 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 39: TAL-Abarbeitung .......................................................................................................................38 Abbildung 40: TAL-Matrix zur gezielten Auswahl von Transaktionen ..............................................................39 Abbildung 41: Container mit Mapping-Dateien für AMP_TOP und MULF_Basis ............................................40 Abbildung 42: TAL für MULF_Basis mit AifContents .......................................................................................41 Abbildung 43: Einstellungen für IDRestore bei der TAL-Berechnung ..............................................................43 Abbildung 44: Manuell erstellte TAL für IDRestore ..........................................................................................44 Seite 8 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 2 Grundlagen 2.1 Programmierablauf Zur Programmierung eines Steuergerätes mit E-Sys sind folgende Einzelschritte erforderlich: Erstellung eines PDX-Komponentencontainers Laden des PDX-Templates Anlegen von SG-Varianten und Hinzufügen der SG-Software (Bootloader, Programm, Daten, Codierdaten) in Form von SWEn Hinzufügen von Konfigurationsdateien (Mapping, SWE-Reihenfolge, …) Abspeichern des Komponentencontainers 2) Import des Komponentencontainers ins PSdZ. 3) Erstellung einer Transaktionsliste (TAL), in der die vom Programmiersystem durchzuführenden Aktionen vom Anwender spezifiziert werden 4) Aufbau einer Verbindung zum Steuergerät 5) Abarbeitung der TAL (Programmierung der Daten auf das Steuergerät) Die Durchführung der genannten Schritte ist Gegenstand dieses Dokuments. 2.2 Konfiguration Sämtliche Programm- und Benutzereinstellungen können im Menü „Optionen Einstellungen“ geändert werden. Systemspezifische Informationen werden in der Datei ESYS_INSTALL\config\Esys.properties abgelegt, benutzerspezifische Einstellungen werden unter C:\Dokumente und Einstellungen\<user>\Esys\EsysUser.properties gespeichert. Die wichtigsten Einstellungen werden im Folgenden noch einmal genauer erläutert. 2.2.1 Programm Allgemeine Einstellungen befinden sich auf der Karteikarte „Programm“ (vgl. Abbildung 1), folgende Einstellungen können vorgenommen werden: „Verzeichnisse“: Hier kann der Pfad für das Datenverzeichnis festgelegt werden, indem die E-SysDatenstruktur angelegt wird. Dieses Verzeichnis wird im Folgenden als ESYS_DATA bezeichnet. In das Verzeichnis ESYS_DATA/psdzdata wird später der PDX-Container importiert. „Speicherbedarf“: Legt den maximalen Arbeitsspeicher für E-Sys (bzw. die Java Virtual Machine) fest. Der Wert darf den physikalischen Arbeitsspeicher nicht übersteigen! „Sprache“: Schaltet die E-Sys-Oberfläche zwischen Deutsch und Englisch um. „Logging“: Legt die Einstellungen für das Logging von E-Sys fest. Die Logdateien werden automatisch beim Start von E-Sys im Verzeichnis ESYS_DATA/Logs nach dem Muster E-Sys_yyyymmdd_hhmmss.log erzeugt. Alte Logdateien können durch Auswahl der Checkbox jeweils beim Start von E-Sys gelöscht werden. Seite 9 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 1: Maske für Programmeinstellungen 2.2.2 Systemdaten / Fingerprint Auf der Karteikarte „Systemdaten“ (vgl. Abbildung 2) können die Einstellungen für Codierung und Fingerprint konfiguriert werden. Der Fingerprint enthält das Programmierdatum sowie Informationen zum Programmiersystem, die bei der Programmierung in das Steuergerät geschrieben und dort gespeichert werden. Er setzt sich folgendermaßen zusammen: Byte 1-3: Aktuelles Systemdatum. Byte 4, Bit 7..4: Länge des Fingerprints, immer 0x8 (langer Fingerprint). Byte 4, Bit 3..0: „Testereinsatzkennung“ gemäß Einstellung in Systemdaten. Byte 5-6: „PlantID/DealerID/SystemSupplierNr“, je nach verwendeter Testereinsatzkennung. Byte 7: „Programmiergerätetyp“, immer 0x01. Byte 8-11: „Programmiergeräte-Seriennummer“ gemäß Einstellung in Systemdaten. Byte 12-13: Km-Stand, immer 0x00 00. Bewegt man den Cursor über eines der Eingabefelder erscheint ein Tooltip mit den für das Feld zulässigen Werten. Die Option „ignoreErrors“ erhöht die Fehlertoleranz des Systems bei der Programmiervorbereitung, es wird trotz negativer oder ausbleibender SG-Antworten mit der Programmierung fortgefahren, sofern dies möglich ist. Achtung: Ist „ignoreErrors“ aktiviert, können unter Umständen auch fehlerhafte Steuergeräte erfolgreich programmiert werden. Seite 10 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 2: Einstellungen für Codierung und Fingerprint 2.2.3 FSC In der Karteikarte „FSC“ (vgl. Abbildung 3) können Einstellungen für den Umgang mit Freischaltcodes festgelegt werden. Ist „Verifizieren“ aktiviert, werden die verwendeten Freischaltcodes beim Laden und Speichern auf Gültigkeit überprüft. Für einige FSC-Aktionen ist außerdem ein Zertifikat nötig, das im Kasten „FSC-Aktionen“ spezifiziert werden kann. „Periodische Prüfung“ sorgt dafür, dass bei einigen FSC-Aktionen zusätzliche Statusabfragen im FSCSteuergerät durchgeführt werden. Seite 11 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 3: Einstellungen für Freischaltcodes 2.2.4 Optionen Auf der Karteikarte „Optionen“ (vgl. Abbildung 4) können folgende Einstellungen vorgenommen werden: „Meldung nach Abbruch …“: Legt fest, ob nach dem Abbruch einer Aktion eine Meldung angezeigt wird. „Abfrage beim Verlassen …“: Legt fest, ob beim Verlassen eines Moduls mit einer noch nicht gespeicherten Datei eine Sicherheitsabfrage durchgeführt werden soll. „VCM nach TAL-Abarbeitung aktualisieren“: Legt fest, ob das VCM (Vehicle Configuration Module) nach der TAL-Abarbeitung automatisch aktualisiert werden soll. Dabei werden nach der Programmierung FA, FP, I-Stufe und SVT in das VCM-Modul sowie FA und I-Stufe in das VCMBackup geschrieben. Ist kein Steuergerät mit VCM- bzw. VCM-Backup-Modul verbaut, kommt es beim VCM-Update zu einem Timeout-Fehler. „Vor der TAL-Generierung …“: Legt fest, ob bei der TAL-Generierung im PDX-Charger der Dialog mit den Funktionseinschränkungen angezeigt werden soll. „SWEn-Verfügbarkeitsprüfung …“: Legt fest, ob die Verfügbarkeit aller in der TAL verwendeten SWEn vor der TAL-Abarbeitung geprüft werden soll. Steht eine der SWEn in der TAL nicht zur Verfügung, wird die TAL-Abarbeitung mit einer entsprechenden Fehlermeldung abgebrochen. „MSM nach TAL-Abarbeitung aktualisieren“: Legt fest, ob das MSM (Master Security Module) nach der TAL-Abarbeitung automatisch aktualisiert werden soll. Dabei werden nach der TALAbarbeitung Transportschlüssel für alle CSM-Steuergeräte (Client Security Modules) an das MSM (im ZGW) übertragen und deren Weiterverteilung im Bordnetz angestoßen. Welche Steuergeräte für das Update zu berücksichtigen sind, wird zuvor aus der SVT im VCM ermittelt. „Meldung nach dem Aufbau einer Verbindung anzeigen“: Legt fest, ob ein erfolgreicher Verbindungsaufbau durch einen Infodialog bestätigt wird oder nicht. Seite 12 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 4: Sonstige Optionen Mit den Radiobuttons im Kasten „E-Sys Modus“ kann E-Sys zwischen dem PKW- und dem Motorrad-Modus umgeschaltet werden. Der Funktionsumfang ist dann speziell auf den gewählten Modus zugeschnitten. 2.2.5 Verbindungen In der Karteikarte „Verbindungen“ (vgl. Abbildung 5) kann ein zusätzliches Transmission-Timeout spezifiziert werden, das auf das normale Service-Timeout addiert wird und somit die Übertragungszeit eines Diagnoseservice zwischen Tester und Steuergerät berücksichtigt. Der maximale Wert für diesen Timeout beträgt 1000ms. Außerdem können spezielle Einstellungen für die Verbindungen über Funk und ICOM spezifiziert werden. Seite 13 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 5: Verbindungseinstellungen 2.2.6 Externe Applikationen In der Karteikarte „Externe Applikationen“ (vgl. Abbildung 6) können ein externer Editor, ein Browser sowie der Pfad des SWE-Generator eingestellt werden, um geeignete Dateiformate aus E-Sys heraus in den spezifizierten Anwendungen öffnen zu können. Abbildung 6: Einstellungen für externe Applikationen Seite 14 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 2.2.7 EST In der Karteikarte „EST“ (vgl. Abbildung 7) wird der Ablageort des EntwicklerSoftToken(EST) angegeben, welches für die Codierung einer Funktionsdatenliste (FDL) benötigt wird. Abbildung 7: Einstellungen für Entwicklersofttoken 2.2.8 ODX In der Karteikarte „ODX“ (vgl. Abbildung 8) kann unter „ODX-Regel-Pfad“ der Ablageort der ODX-CheckerRegeln angegeben werden, die der ODX-Checker im Modul PDX-Charger nutzt, um die ODX-Struktur eines PDX-Containers/-Templates zu überprüfen. Ab E-Sys 3.4.0 wird hier bei der Installation standardmäßig das Verzeichnis C:\Data\Rules eingetragen, in das die Regeln bei der E-Sys-Installation kopiert werden. Unter „Componenten-Dokumentation“ kann die maximale Größe der Zusatzdokumente festgelegt werden, die in den PDX-Container eingefügt werden können (siehe Kapitel 3.4). Seite 15 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abbildung 8: Einstellungen für ODX Seite 16 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 3 Erstellung eines PDX-Komponentencontainers Im folgenden Kapitel wird die Erstellung eines PDX-Komponentencontainers auf Basis eines PDX-Templates sowie dessen Import in das PSdZ beschrieben. 3.1 Laden des PDX-Templates Um einen Komponentencontainer erstellen zu können, muss zunächst das aktuelle PDX-Template im Modul Datenhandling → PDX-Charger geladen werden. Das jeweils aktuellen Templates für die verschiedenen Baureihen finden Sie auf dem GIS unter BMW Standard Tools Entwicklung Standard Tools/ Programmierung/ E-Sys/ PDX-Templates 3.2 Hinzufügen der SG-Software In der Ordnerstruktur des PDX-Templates können Sie nun über das Kontextmenü per Klick mit der rechten Maustaste auf das Element PDX-Container neue SG-Varianten anlegen. Jede neue SG-Variante muss zunächst einer Basisvariante zugeordnet werden. Dies geschieht durch Auswahl der gewünschten Basisvariante aus der DropDown-Box des gleichnamigen Elements. Für jede SG-Variante kann ein beliebiger Name vergeben werden, der allerdings nicht identisch mit dem Namen einer Basisvariante sein darf. Abbildung 9: PDX-Charger mit geöffnetem PDX-Template Schließlich können unterhalb der Basisvariante die jeweiligen Softwareeinheiten durch Rechtsklick auf das Element SWE und Auswahl von Hinzufügen ergänzt werden. Die entsprechenden SWE-Dateien werden Seite 17 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 dann über einen Dateidialog ausgewählt. Die SWEn werden im BSW-Format in das Template eingepflegt. Sie werden beim Import automatisch extrahiert und verarbeitet. Die für die Codierung notwendigen Coding Application Files (CAFs) werden nicht bei der SG-Variante, sondern unterhalb des Elementes CAF in das Template eingehängt. Sie sind somit keiner SG-Variante zugeordnet. Dasselbe gilt für die SVT-Dateien, die den Soll-Stand der Komponente beschreiben. Sie können beim Element SVT hinzugefügt werden. Alle übrigen Konfigurationsdateien, beispielsweise die Mapping-Dateien für die Übernahmesteuergeräte oder die SWESEQ-Datei (siehe 3.6) zur Steuerung der Programmierreihenfolge, werden unterhalb des Elements Config eingefügt. 3.3 Einfügen von BLUP-/FLUP-Dateien und BLUMap Bootloader-Updater der Prozessklassen BLUP/FLUP werden analog zu den herkömmlichen BootloaderSWEn der Prozessklasse BTLD zusammen mit den anderen Softwareeinheiten unterhalb von SWE in die ECU-Variante eingefügt (vgl. Markierung in Abbildung 10). Die Auswahl der Dateien wird wie gewohnt in einem Dateidialog vorgenommen. Abbildung 10: Hinzufügen eines BLUPs zum Komponentencontainer Enthält eine ECU-Variante (in unserem Beispiel EVAL__S12X) mindestens eine SWE der Prozessklasse BLUP oder FLUP, kann über das Kontextmenü der Basisvariante die zugehörige BLUMap-Datei hinzugefügt werden (vgl. Abbildung 11). Die Auswahl der BLUMap-Datei erfolgt wiederum über einen Dateidialog. Nach der Auswahl kann der Name für die BLUMap-Datei geändert werden. Die Namenskonvention für die BLUMap-Dateien lautet blumap_<Basisvarianten-Name>_<EE-Komponenten-Name>.xml. Wurde die BLUMap-Datei zum Container hinzugefügt, erscheint die Datei in der Baumstruktur des PDXChargers unterhalb von Config/blumaps, nicht unterhalb der ECU-Variante (vgl. Markierung in Abbildung 12). Dass für eine ECU-Variante eine BLUMap im Container hinterlegt wurde, erkennt man an dem Knoten „Bootloader Map vorhanden: ja“ unterhalb der ECU-Variante (vgl. roter Kreis in Abbildung 12). Seite 18 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 11: Hinzufügen einer BLUMap-Datei zum PDX-Container Beim Import des PDX-Containers werden die BLUP/FLUP-SWEn im Verzeichnis psdzdata\swe\blup bzw. psdzdata\swe\flup, die BLUMap im Verzeichnis psdzdata\mainseries\<BRV>\<Projekt>\mapping\blumaps abgelegt. Abbildung 12: Anzeige der BLUMap im PDX-Charger Seite 19 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 3.4 Einfügen von Benutzerdokumenten Durch das Hinzufügen von Benutzerdokumenten hat der Entwickler die Möglichkeit, auch ODX-fremde Inhalte über den Komponentencontainer zu verteilen (TAL, Anleitungen, etc.). Hinzugefügt werden die Dokumente über das Kontextmenü des Knotens DOC (vgl. Abbildung 13). Abbildung 13: Hinzufügen von Anwenderdokumentation zum PDX-Container Die hinzugefügten Dateien werden im Container in einem ZIP-Archiv mit dem Namen <Komponentenname>_Doku.zip abgespeichert und im PDX-Charger unterhalb von DOC aufgelistet (vgl. Abbildung 14). Abbildung 14: Anwenderdokumentation im PDX-Container Die maximale Größe des ZIP-Archivs ist per Default auf 1MB beschränkt, kann aber unter Optionen → Einstellungen → ODX angepasst werden. Seite 20 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 3.5 ActivationCode für EraseMemory Der ActivationCode ist ein zusätzlicher Parameter des Diagnoseservice EraseMemory, er dient zum Schutz des Steuergerätes vor ungewolltem Löschen des Speichers. SC-Steuergeräte verwenden den ActivationCode, weswegen er für jede neue SG-Variante standardmäßig aktiviert ist. Wird er von einem Steuergerät nicht unterstützt, ist er in der entsprechenden SG-Variante abzuschalten. Hierzu ist die Angabe der Bootloader-ID bzw. der Diagnoseadresse notwendig, um die jeweilige ECU-Variante bei der Programmierung eindeutig zu identifizieren (Variantenidentifikation). Abbildung 15: Anlage eines ECUVariantPattern unterhalb der SG-Variante Zum diesem Zweck muss zunächst unterhalb der SG-Variante ein ECUVariantPattern angelegt werden, zu dem dann entweder die Bootloader-ID oder die Diagnoseadresse angegeben werden muss. Die (De-)Aktivierung für EraseMemory erfolgt dann über den Schalter Activation (vgl. Abbildung 15). 3.6 Festlegung der Programmierreihenfolge Durch Einbinden einer Reihenfolgedatei in den PDX-Container ist es möglich, eine Programmierreihenfolge für die SWEn eines Steuergerätes anzugeben. Diese Datei muss der Namenskonvention sweseq_<Bootloader-ID>.xml.xxx_yyy_zzz gehorchen, wobei <Bootloader-ID> die achtstellige BootloaderSGBM-ID des Steuergeräts bezeichnet, beispielsweise sweseq_01020304.xml.001_002_003 für den Bootloader des SC-Templates. Abbildung 16 zeigt den SWESEQ-Editor, mit dessen Hilfe in E-Sys SWESEQ-Dateien erstellt werden können. Es können jedoch lediglich Abhängigkeiten für die Programmierung vorgeben werden („A muss vor B und C programmiert werden“), keine feste Programmierreihenfolge. Das Programmiersystem ermittelt dann aus den vorgegebenen Abhängigkeiten eine mögliche Programmierreihenfolge und durchläuft diese. Achtung: Enthält die SWESEQ-Datei zyklische Abhängigkeiten („A vor B“ und „B vor A“), kommt es zu einem Abbruch bei der Programmierung. Für jede Abhängigkeit ist innerhalb der SWESEQ-Datei ein neuer EcuDependencies-Abschnitt anzulegen. Innerhalb eines solchen Abschnitts sind die folgenden Elemente zu befüllen: BootloaderId: Die BootloaderId des Steuergeräts, für das die Abhängigkeit festgelegt werden soll BaseVariant: Die Basisvariante des betroffenen Steuergeräts PhysicalOffset: Die Diagnoseadresse des Steuergeräts (hexadezimal) PreConditions: Eine Liste von SGBM-IDs der SWEn, die vor den SWEn aus Dependors Seite 21 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 programmiert werden müssen Dependors: Eine Liste von SGBM-IDs der SWEn, die nach den SWEn aus PreConditions programmiert werden müssen Im Beispiel aus Abbildung 16 muss also auf ein SG mit SC-Template (Bootloader-ID 01020304, Diagnoseadresse 0x7E, Basisvariante EVALBOARD) die SWE 11121314 vor den SWEn 21222324, 31323334 und 41424344 programmiert werden. Die Reihenfolge unter den drei letztgenannten SWEn kann vom Programmiersystem beliebig gewählt werden. Abbildung 16: SWESEQ-Editor mit geöffneter SWESEQ-Datei Achtung: Die sweseq-Datei kann auch herangezogen werden, um Abhängigkeiten zwischen MasterBootloader (BTLD) und Slave-Bootloader (FLSL) festzulegen. Ist keine Abhängigkeit in der sweseqDatei festgelegt, wird der Slave-Bootloader zuerst programmiert! Strukturelle Abhängigkeiten (z.B. BTLD vor SWFL, SWFL vor CAFD) müssen nicht extra angegeben werden. Widersprechen die vom Anwender spezifizierten Abhängigkeiten diesen Grundregeln, wird die Programmierung mit einer entsprechenden Fehlermeldung abgebrochen. 3.7 Abspeichern des Komponentencontainers Enthält der Container alle gewünschten SG-Varianten und Konfigurationsdateien, muss er zur späteren Verwendung (z.B. Import in das PSdZ) abgespeichert werden. Sinnvoll ist hierbei die Verwendung der „Speichern unter…“-Funktion, da ansonsten das verwendete PDX-Template überschrieben wird. Bei der Benennung des E/E-Komponentencontainers ist die Namenskonvention BBBB_KKK.xxx_yyy_zzz.eee (vgl. Tabelle 1) einzuhalten. Ein gültiger Containername wäre dementsprechend beispielsweise F001_EVAL__1.001_002_003.pdx. BBBB Baureihenverbund KKK Komponentenname (variable Länge) gemäß [LH_FP_SWL], FP_4758 (Bindestriche sind durch zwei Unterstriche zu ersetzen). Seite 22 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Xxx Hauptversion (dezimal) Yyy Unterversion (dezimal) Zzz Patchversion (dezimal) Eee Dateiendung, standardmäßig pdx 18.11.2009 Tabelle 1: Legende für Benennung des Komponentencontainers 3.8 ODX-Checker Nach dem Abspeichern kann der Container mit Hilfe des ODX-Checkers (vgl. Abbildung 17, grüner Kasten) auf formale Korrektheit geprüft werden. Die vom ODX-Checker benötigten Regeln werden bei der E-SysInstallation in das Verzeichnis C:\Data\Rules kopiert (vgl. 2.2.8). Der ODX-Checker erkennt Fehler in der ODX-Struktur, wie beispielsweise Kleinschreibung in ECU-Variant-Patterns, und listet diese im unteren Fensterbereich auf (vgl. Abbildung 17: Meldungen nach ODX-Check, roter Kasten). Achtung: Das E-Sys-Installationspaket beinhaltet sowohl für BMW geschriebene ODX-Regeln, als auch ODX-Regeln aus einem zugekauften Paket (ASAM). Wird E-Sys auf einem Rechner installiert, der nicht der BMW Group gehört, dann muss der Benutzer entweder 1) eine Lizenz für die ASAM-Regeln kaufen (nähere Informationen erhalten Sie unter http://www.asam.net) oder 2) die ASAM-Regeln löschen. Diese finden Sie im E-Sys-Datenverzeichnis: C:\Data\Rules\asamrules.jar Geschieht dies nicht, verstößt der Benutzer gegen das Lizenzrecht! Abbildung 17: Meldungen nach ODX-Check Seite 23 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 3.9 Import des Komponentencontainers ins PSdZ Bevor die Inhalte des PDX-Containers für die Programmierung in E-Sys verwendet werden können, muss dieser über den Button „Import into PsdZ“ in das PSdZ importiert werden. Beim Import des PDX-Containers kann ein vom Containername abweichender Projektname angegeben werden, unter dem das Projekt unter anderem beim Öffnen einer Verbindung angezeigt wird. Damit die im Container enthaltenen Bibliotheken eingebunden werden können, muss E-Sys unter Umständen nach dem Import neu gestartet werden! Die Applikation zeigt dann eine entsprechende Meldung an. Beim Import werden die Daten aus dem Container aufbereitet und im Verzeichnis ESYS_DATA/psdzdata lokal für die Verwendung in E-Sys bereitgestellt. Um unerwartete Effekte aufgrund inkonsistenter Datenstände zu vermeiden, empfiehlt es sich bei Verwendung von Containern mit unterschiedlichen Templateversionen, die Unterverzeichnisse von ESYS_DATA/psdzdata vor dem Import des PDX-Containers zu löschen. Die Inhalte von ESYS_DATA/psdzdata können in E-Sys jederzeit im Datei-Explorer (vgl. Abbildung 18) eingesehen und auch gelöscht werden. Achtung: Da Dateien im Verzeichnis psdzdata/extLibs von der Java VM benutzt werden, lässt sich dieses Verzeichnis nicht löschen, solange E-Sys geöffnet ist. Abbildung 18: Auszug aus dem Datei-Explorer nach Import der ODX-Daten 3.10 Containerupdate Es ist außerdem möglich, einen vorliegenden Komponentencontainer automatisch auf den Stand eines neueren PDX-Templates zu bringen. Dazu muss der Komponentencontainer zunächst im PDX-Charger geöffnet werden. Die Updatefunktionalität wird dann über den Button Update angestoßen (vgl. Abbildung 19). Über einen Dateidialog wird das neue PDX-Template ausgewählt und bestätigt. E-Sys ersetzt daraufhin die Template-spezifischen Inhalte im Komponentencontainer durch die des gewählten Templates, die komponentenspezifischen Inhalte bleiben unverändert. Der so generierte Container kann dann mittels Datei → Speichern unter… unter einem neuen Namen abgespeichert werden (vgl. 3.7). Achtung: Ein Containerupdate ist nur dann möglich, wenn die Templateversion des vorliegenden Containers und die Version des neuen Templates in der Hauptversion übereinstimmen. Seite 24 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abbildung 19: Update des PDX-Containers Seite 25 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 4 Erstellung der TAL Um ein Steuergerät in E-Sys programmieren zu können, muss vom Entwickler zunächst eine Transaktionsliste (TAL) erstellt werden. Diese kann entweder manuell im TAL-Editor, durch automatische TAL-Berechnung oder aus einer SG-Variante im PDX-Charger erzeugt werden. 4.1 Manuelle Erstellung der TAL im TAL-Editor Im TAL-Editor im Modul „Editoren & Viewer“ kann über die Funktion Datei → Neu oder das entsprechende Symbol in der Werkzeugleiste eine leere TAL erzeugt oder über Datei → Öffnen eine bereits bestehende TAL editiert werden. Bei Neuerstellung der TAL im TAL-Editor muss pro Steuergerät und Aktionsklasse eine eigene TAL-Line mit einer eindeutigen ID verwendet werden. Darüber hinaus ist in jeder TAL-Line die Basisvariante (nicht der Komponentenname) sowie die hexadezimale Diagnoseadresse des gewünschten Steuergerätes einzutragen (vgl. Tabelle 2). Die übrigen Attribute (ExecutionStatus, FlashPreReqs, CodingPreReqs, …) verbleiben im Defaultzustand. TalLine Eindeutige ID für die jeweilige TAL-Line (dezimal) BaseVariant Basisvariante des zu programmierenden Steuergerätes wie im PDX-Container DiagAddress Diagnoseadresse des zu programmierenden Steuergerätes (hexadezimal) Tabelle 2: Basiselemente einer TAL-Line Elementarer Bestandteil jeder TAL-Line sind natürlich die SWEn, die programmiert werden sollen. Diese können durch einen Rechtsklick auf das Element TalLine_ID=0 und Auswahl von Neu (vgl. Abbildung 20) hinzugefügt werden. Beim Hinzufügen einer Transaktion ist es wichtig, die richtige Aktionsklasse zu verwenden, beispielsweise SWDeploy für die Programmierung von Applikation und Daten. Eine Zusammenfassung gängiger Transaktionsklassen gibt Tabelle 3. Abbildung 20: Hinzufügen einer neuen Transaktion Seite 26 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 In Abbildung 21 ist beispielhaft eine TAL zur Programmierung der SWEn des SC-Templates dargestellt. Zu diesem Zweck wurde eine TAL-Line für den Bootloader (ID=1) und eine für die Software erstellt (ID=2). Für die Applikations-SWEn wurden in TAL-Line 2 vier Transaktionen vom Typ SWDeploy eingefügt. Die Attribute unterhalb des Elements SgbmIdentifier (ProcessClass, ID, MainVersion, …) wurden dabei übereinstimmend mit den Dateinamen der zu programmierenden SWEn befüllt. Achtung: Stimmen die Versionen in der TAL nicht mit denjenigen im Dateinamen überein, führt dies zu einem Abbruch bei der Programmierung! Abbildung 21: TAL-Editor-Maske mit geöffneter TAL Die TAL-Line für den Bootloader wurde analog mit einer BLFlash-Transaktion befüllt. SWDeploy Applikationssoftware und Daten (SWFL) CDDeploy Codierdaten (CAFD) BLFlash Bootloader/Slave-Bootloader (BTLD/FLSL) Tabelle 3: Gängige Transaktionsklassen in der TAL Seite 27 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 4.2 Automatische TAL-Berechnung Im Modul „TAL-Berechnung“ kann eine TAL durch Angabe einer SVT-Ist und einer SVT-Soll berechnet werden (Abbildung 22). Die SVT-Ist, die den momentanen Verbauzustand angibt, kann entweder aus dem VCM oder direkt aus den Steuergeräten ausgelesen oder aus einer Datei geladen werden. Der angestrebte Verbauzustand SVT-Soll wird, sofern vorhanden, aus dem KIS berechnet oder ebenfalls aus einer Datei geladen. Bei der Berechnung eines Soll-Verbaustandes aus KIS muss zusätzlich ein FA geladen und aktiviert sowie eine Ziel-I-Stufe angegeben werden. Ist sowohl eine SVT-Ist als auch eine SVT-Soll geladen, wird die Differenz im linken Fenster farbig dargestellt. Über den Button „Berechnen“ kann nun eine TAL generiert werden, die das Fahrzeug (den SGVerbund) vom Ist-Zustand in den Soll-Zustand überführt. Die berechnete TAL kann nun gespeichert, im TALEditor bearbeitet oder direkt abgearbeitet werden. Ist die Checkbox „ECUs aus SVTsoll“ aktiviert, werden nur Steuergeräte bei der Berechnung berücksichtigt, die in der SVT-Soll enthalten sind. Steuergeräte, die nur in der SVT-Ist auftauchen, werden verworfen. Achtung: Die TAL-Berechnung funktioniert nur mit geöffneter Verbindung. Abbildung 22: Berechnung der TAL aus SVT-Ist und SVT-Soll 4.3 Erzeugung einer TAL im PDX-Charger Steht keine KIS-Wissensbasis zur Verfügung, kann es nützlich sein, eine TAL direkt aus den Daten des PDX-Containers zu erzeugen. Die TAL-Erzeugung ist sowohl für den gesamten Container als auch für einzelne ECU-Varianten möglich. Angestoßen wird die Erzeugung der TAL durch den Menüpunkt „Generiere TAL“ im Kontextmenü der ECU-Variante (vgl. Abbildung 23) bzw. des Container-Wurzelelements. In die TAL werden dann automatisch alle SWEn übernommen, die der ECU-Variante direkt zugeordnet sind. Je nach Beschaffenheit des Containers kann es danach notwendig sein, in einem Wizard die Zuordnung von Versionsnummern, Diagnoseadressen und CAF-Dateien zu der ECU-Variante manuell vorzunehmen, falls diese Zuordnung aus den ODX-Daten nicht eindeutig möglich ist. Auf analoge Art und Weise kann anstatt einer TAL auch eine SVT_soll im PDX-Charger berechnet werden („Generiere SVT“). Mit dieser SVT kann dann im Modul „TAL-Berechnung“ eine TAL auf Basis eines aktuell ausgelesenen Ist-Standes berechnet werden (vgl. Kapitel 4.2). Vorteil: es werden nur die tatsächlich notwendigen Transaktionen in der TAL erzeugt. Achtung: Zur Erzeugung einer TAL/SVT im PDX-Charger muss eine Verbindung geöffnet werden (vgl. Kapitel 5), es muss jedoch kein reales Steuergerät vorhanden sein. Die Verbindungsart kann in diesem Fall beliebig gewählt werden. Seite 28 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 23: TAL/SVT-Erzeugung aus einer SG-Variante 4.4 Erstellen einer TAL mit BLUP/FLUP 4.4.1 Automatische Berechnung im Modul „TAL-Berechnung“ Die automatische TAL-Berechnung funktioniert auch mit BLUP/FLUP-SWEn wie in Kapitel 4.2 beschrieben. Die SVT_ist bzw. SVT_soll enthält jeweils den Ist-/Soll-Bootloader der Prozessklasse BTLD/FLSL. Anhand der Informationen aus der BLUMap werden daraus die benötigten BLUP/FLUP-SWE für die TAL berechnet. Achtung: Für diese Methode ist eine Verbindung mit einem Projekt notwendig, das gültige BLUMaps für die jeweiligen Steuergeräte enthält. 4.4.2 Automatisch Berechnung im PDX-Charger Achtung: Die Berechnung einer TAL mit BLUP/FLUP-SWEn im PDX-Charger ist nicht möglich. Der für die Berechnung notwendige Ist-Stand der Steuergeräte ist im PDX-Charger nicht verfügbar. 4.4.3 Manuelle Erzeugung der TAL Um eine BLUP-Transaktion manuell in eine TAL einzufügen, gehen Sie folgendermaßen vor: 1. Erzeugen Sie eine TAL-Line für die BLUP-Transaktion und fügen Sie eine BLFlash-Transaktion hinzu (vgl. Abbildung 24). Seite 29 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abbildung 24: Hinzufügen einer BlFlash-Transaktion 2. Löschen Sie den standardmäßig erzeugten BLFlashTA-Eintrag BLFlash_BTLD_00000000_001_000_000 (vgl. Abbildung 25). Abbildung 25: Löschen des vorgegebenen BLFlashTA-Eintrags 3. Erzeugen Sie eine neue BLFlashTA aus einer Datei (vgl. Abbildung 26). Seite 30 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 26: Hinzufügen einer BLFlashTA auf Basis einer Datei 4. Wählen Sie im Dateidialog die gewünschte BLUP-Datei aus. Es wird eine BLFlash-Transaktion erzeugt, die sowohl die SGBM-ID des BLUP (SgbmIdentifier) als auch die SGBM-ID des gekapselten BTLD (ContainedBootloader) enthält (vgl. Abbildung 27). Abbildung 27: TAL-Line mit BLUP-Transaktion Seite 31 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 5 Verbindungsaufbau Bevor mit der SG-Programmierung bzw. –Codierung begonnen werden kann, muss eine Verbindung zum Fahrzeug aufgebaut werden. Grundvoraussetzung dafür ist ein erfolgreich importierter PDX-Container (vgl. Abschnitt 3). Der Dialog zum Aufbau einer Verbindung wird in E-Sys über den Verbindungsbutton in der Toolbar (vgl. Abbildung 28) geöffnet. Abbildung 28: Button zum Öffnen des Verbindungsdialogs Der E-Sys-Verbindungsdialog (vgl. Abbildung 29) gliedert sich in zwei Teile. In dem Textfeld in der oberen Hälfte wird der „TargetSelector“ ausgewählt. Hier entscheidet sich, welcher der importierten PDX-Container als Datenquelle für die Verbindung verwendet wird. Im unteren Teil des Dialogs wird spezifiziert, über welches physikalische Interface die Verbindung aufgebaut werden soll. Welche Parameter für welche Verbindung ausgewählt werden müssen, wird in den folgenden Abschnitten erklärt. Abbildung 29: Verbindungsdialog von E-Sys 5.1 Auswahl des TargetSelectors Jeder „TargetSelector“ setzt sich aus zwei Teilen zusammen, dem „Project“ und der „VehicleInfo“. Über das „Project“ wird ausgewählt, welcher der importierten ODX-Container für die Verbindung verwendet wird. Über die „VehicleInfo“ entscheidet sich, ob eine direkte Verbindung zum Steuergerät aufgebaut werden soll, oder ob das Steuergerät über ein Gateway (ZGW) angeschlossen wird. Folglich werden für jeden importierten Container im Verbindungsdialog je zwei Target-Selektoren angeboten, einer für die direkte Verbindung und einer für die Verbindung über ZGW. 5.1.1 Verbindung über Gateway Diese Verbindungsart ist zu wählen, wenn sich ein Gateway (ZGW) zwischen Tester und Steuergerät(en) befindet. Alle Services werden von E-Sys an das ZGW geschickt, von wo aus sie auf Basis der Seite 32 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Routingtabelle im ZGW auf die Subbusse weitergeleitet werden. Achtung: Soll eine Verbindung über ZGW aufgebaut werden, muss im Verbindungsdialog als Ziel stets ein TargetSelector OHNE den Zusatz „_DIRECT“ verwendet werden (vgl. Abbildung 30). Abbildung 30: Mögliche Targetselektoren für eine Verbindung über ZGW 5.1.2 Direkte Verbindung Bei der direkten Verbindung wird der Testrechner, beispielsweise über eine CANCard, direkt mit dem zu programmierenden SG verbunden, es wird kein ZGW verwendet. Achtung: Soll eine direkte Verbindung aufgebaut werden, muss im Verbindungsdialog als Ziel stets die VehicleInfo MIT dem Zusatz „_DIRECT“ verwendet werden (vgl. Abbildung 31). Abbildung 31: Mögliche Targetselektoren für eine direkte ECU-Verbindung 5.2 Auswahl des physikalischen Interface Über die Auswahlknöpfe im unteren Teil des Verbindungsdialogs entscheidet der Benutzer, welches physikalische Interface für die Verbindung zum Steuergerät/ZGW verwendet werden soll. 5.2.1 Verbindung über Ethernet Eine Verbindung über Ethernet kann entweder durch Angabe der Gateway-URL oder durch Auswahl eines Fahrzeugs über die Fahrgestellnummer (VIN) aufgebaut werden. Damit eine Verbindung zum Fahrzeug Seite 33 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 hergestellt werden kann, müssen sich der Testrechner und das Fahrzeug (ZGW) im gleichen IP-Subnetz befinden. Befindet sich kein DHCP-Server in diesem Subnetz, verwendet das ZGW standardmäßig eine IPAdresse der Form 169.254.x.y. Das bedeutet, der Testrechner muss ebenfalls eine Adresse der Form 169.254.u.v erhalten, damit eine Netzwerkverbindung aufgebaut werden kann. Als Subnetzmaske ist in diesem Fall 255.255.0.0 einzustellen. Windows XP unterstützt diese Adressklasse als „Alternative Konfiguration“ in den TCP/IP-Eigenschaften einer Netzwerkverbindung. Verbindung über Gateway-URL Ist die IP-Adresse des Gateways bekannt, kann die Verbindung direkt unter Angabe der URL geöffnet werden (vgl. Abbildung 32). Hierbei darf die Angabe des Protokolls (tcp://) und des Ports (6801) nicht vergessen werden, eine gültige Gateway-URL lautet also beispielsweise tcp://169.254.47.11:6801. Abbildung 32: Aufbau einer Verbindung über Gateway-URL Verbindung über Fahrgestellnummer (VIN) Beim Öffnen des Verbindungsdialogs werden per Broadcast automatisch die erreichbaren Fahrzeuge ermittelt und im Verbindungsdialog von E-Sys unter „Verbindung über Fahrgestellnummer (VIN)“ angezeigt (vgl. Abbildung 33). Ist kein Fahrzeug verfügbar, ist diese Verbindungsart deaktiviert. Nach Auswahl des gewünschten Fahrzeugs kann daraufhin die Verbindung hergestellt werden. Abbildung 33: Aufbau einer Verbindung über Fahrgestellnummer (VIN) 5.2.2 Verbindung über CANCard Die von E-Sys unterstützte CAN-Hardware sowie die unterstützten Treiberversionen entnehmen Sie bitte jeweils den Release-Notes der jeweiligen Version. Aktuelle Treiber für die CAN-Karten erhalten Sie auf der Vector-Homepage (http://www.vector-informatik.de). Achtung: Vor der Programmierung muss über „Systemsteuerung → Vector Hardware Config“ der Anbindungstreiber „ProDiaS-CAN-Driver CAN 1“ dem zum Programmieren genutzten CAN-Kanal und „ProDiaS-CAN-Driver CAN 2“ einem anderen gültigen Kanal zugeordnet werden (vgl. Abbildung 34)! Seite 34 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 34: Beispielzuordnung von „ProDiaS-CAN-Driver CAN 1/2“ Im Verbindungsdialog von E-Sys ist die „Verbindung über Bus“ auszuwählen. In der linken DropDown-Box ist der Bus anzugeben, über den die Verbindung aufgebaut werden soll. In der rechten DropDown-Box ist als Interface „VECTOR_DIRECT“ einzustellen (vgl. Abbildung 35). Abbildung 35: Aufbau einer direkten CAN-Verbindung über FA-CAN 5.2.3 Verbindung über OMITEC Voraussetzung für die Benutzung des OMITEC-Interface ist die Installation der OMITEC-EDIBAS-Treiber. Sie finden das Installationspaket mit Anleitung auf dem GIS unter: BMW Standard Tools Entwicklung Standard Tools/ Fahrzeug-Kommunikation/ EDIABAS/ HW-Interface/ EDIABAS Interface OMITEC Im Verbindungsdialog ist dann die „Verbindung über Bus“ sowie der Busname und das Interface „STD_OMITEC“ auszuwählen (vgl. Abbildung 36). Seite 35 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 36: Einstellungen für Verbindung über OMITEC-Interface 5.2.4 Verbindung über Funk Voraussetzung für die Benutzung des Funkinterface ist die Installation von EDIBAS. Sie können EDIBAS im Rahmen des Standard Tools Setup vom GIS unter BMW Standard Tools Entwicklung Standard Tools/ Programmierung/ Tool Installation Entwicklung/ Für Windows XP/ WINKFP 5.1.6 - EDIABAS 7.0.0.500 - NFS 4.8.0.4 - INPA 5.0.2.0 herunterladen. Für eine Verbindung über Funk wählen Sie bitte „Verbindung über Bus“ unter Angabe des Busnamens und des Interface „STD_FUNK“ (vgl. Abbildung 37). Hinweis: Für eine Funk-Verbindung sind noch weitere Einstellungen in E-Sys notwendig (vgl. Abschnitt 2.2.5). Abbildung 37: Einstellungen für Verbindung über Funk-Interface 5.3 Test der Verbindung Um die Verbindung zu prüfen und zu kontrollieren, ob alle angeschlossenen Steuergeräte tatsächlich reagieren, empfiehlt es sich nach dem Herstellen der Verbindung die aktuelle SVK aus den Steuergeräten auszulesen. Diese Funktionalität befindet sich im Modul „Experten-Modus → Codierung“ (vgl. Abbildung 38). Ist die Verbindung hergestellt, wird auf der linken Seite der Verbaustand sämtlicher angeschlossener Steuergeräte angezeigt. Erscheint eine Fehlermeldung oder eine leere SVT, überprüfen Sie bitte nochmals die Verbindungseinstellungen! Seite 36 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abbildung 38: SVK lesen Seite 37 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 6 TAL-Abarbeitung Der eigentliche Programmiervorgang erfolgt im Modul TAL-Abarbeitung (vgl. Abbildung 39), bei der die in der TAL eingetragenen Transaktionen (vgl. Erstellung der TAL) ausgeführt werden. Voraussetzung für die TAL-Abarbeitung sind somit eine geladene TAL sowie eine gültige Fahrgestellnummer (Vehicle Identification Number, VIN). Die VIN kann entweder aus einem geladenen Fahrzeugauftrag (FA) ausgelesen oder direkt in das dafür vorgesehene Feld eingetragen werden. Sowohl FA als auch VIN können, falls verfügbar, aus dem VCM ausgelesen werden (Buttons Lesen (VCM) bzw. VIN lesen (VCM)). TAL und FA können über den Button „Bearbeiten“ direkt in dem dafür vorgesehenen Editor geöffnet werden. Achtung: Enthält die gewählte TAL Codiertransaktionen, ist eine VIN für die Abarbeitung nicht ausreichend, es wird ein geeigneter FA (faVersion="3") benötigt. Fahrzeugaufträge können komfortabel mit dem Tool [FA_GEN] erstellt werden. Abbildung 39: TAL-Abarbeitung Folgende Steuerelemente sind für die TAL-Abarbeitung relevant: Start: Hier wird die TAL-Abarbeitung gestartet. Läuft gerade eine TAL-Abarbeitung, ändert sich die Beschriftung in „Pause“ und die Abarbeitung kann unterbrochen werden. Stop: Bricht die TAL-Abarbeitung ab, wird erst beim Start der Abarbeitung aktiviert. Leeren: Löscht den Inhalt des Log-Fensters. Events: Gibt an, ob während der TAL-Abarbeitung Events im Logfenster angezeigt werden sollen oder nicht. Die gewählten Events werden während der Abarbeitung der TAL im Logfenster angezeigt (Karteikarte „Log“). Event Typ: Gibt an welche Typen von Ereignissen bei der TAL-Abarbeitung angezeigt werden. Weiterhin ist es möglich, bestimmte Steuergeräte oder Transaktionsklassen von der Bearbeitung auszuschließen. Zu diesem Zweck dient die Karteikarte „SG“ (vgl. Abbildung 40). Über eine Matrix kann gezielt gesteuert werden, welche Transaktionen der geladenen TAL für welches Steuergerät ausgeführt werden sollen. Somit kann eine beliebige Untermenge einer vorliegenden TAL ausgeführt werden. Seite 38 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys Abbildung 40: TAL-Matrix zur gezielten Auswahl von Transaktionen Seite 39 von 44 18.11.2009 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 7 Besonderheiten bei Übernahmesteuergeräten 7.1 Mapping Um die Übernahmesteuergeräte im L6-Umfeld behandeln zu können, müssen die logistischen Informationen im Übernahme-SG (ZB-Nummer, Hardwarenummer, Hardwarereferenz, …) auf die L6-SGBM-Identifier abgebildet werden. Dies geschieht mit Hilfe von Mapping-Dateien, die im Eintrittskarten-Editor erzeugt und im PDX-Charger unter Config in den Komponentencontainer eingebunden werden (vgl. Abbildung 41). Abbildung 41: Container mit Mapping-Dateien für AMP_TOP und MULF_Basis Im Folgenden wird kurz skizziert, welche Datei welche Mapping-Informationen enthält und wie das jeweilige Mapping durchgeführt wird: _BTLD: Mapping der Hardwarereferenz auf die SGBM-ID und die Version des Bootloaders (BTLD). _CAFD: Mapping der ZB-Nummer auf die SGBM-ID der CAF-Datei (CAFD). Als Hauptversion wird der BMW_vehicleManufacturerCodingIndex aus dem Service „Ident_Lesen“ herangezogen. Die Unterversion und die Patchversion der Codierdaten werden über den Service „Aenderungsindex der Codierdaten lesen“ ermittelt. _HWEL: Mapping von Hardwarenummer (PECUHN) und Hardwarereferenz (ZZZPPP) auf SGBM-ID und Version der Hardware-Elektronik (HWEL). Kann keine Hardwarenummer aus dem Steuergerät gelesen werden, erfolgt das Mapping nur auf Basis der Hardwarereferenz. _TYPNR: Mapping der ZB-Nummer auf die Typprüfnummer. _ZB: Mapping von ZB-Nummer und Programmreferenz auf den Softwarestand des Steuergeräts (SGBM-IDs und Versionen). Stimmen alle Angaben bis auf die Programmversion mit den MappingDateien überein, wird nur die SGBM-ID mit der Version 000.000.000 vom Mapping zurückgeliefert. Seite 40 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 7.2 AIFContents Bei der Programmierung eines Mischverbau-ECUs in E-Sys müssen in der TAL zusätzlich die Inhalte des Anwender-Info-Felds (AifContents) befüllt werden (vgl. Abbildung 42). Abbildung 42: TAL für MULF_Basis mit AifContents Folgende Eintragungen sind dort vorzunehmen: BmwAssemblyNumber: Die Zusammenbau-Nummer, die nach der Programmierung in das AIF/UIF geschrieben wird BmwCalibrationDataSetNumber: SW-Nummer aus der _TYPNR-Mappingdatei für Steuergeräte mit "großem" AIF (51 oder 64 Byte), sonst "0000000" BmwExhaustRegulationOrTypeApprovalNumber: Typprüfnummer aus der _TYPNRMappingdatei für abgasrelevante Teile, sonst "0000000" PrgRef: Die Programmreferenz der zu programmierenden Software Achtung: Die in der TAL eingetragenen AifContents werden am Ende eines erfolgreichen Programmiervorgangs in das Steuergerät geschrieben. Sind diese Informationen inkorrekt, kann anschließend für dieses Steuergerät kein Mapping mehr durchgeführt werden. Damit ist das Steuergerät mit E-Sys nicht mehr programmierbar! Seite 41 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 8 Individualdatenrettung Die Individualdatenrettung (IDR) dient dazu, bei einem defekten, aber noch diagnosefähigen SG vor dem SG-Tausch individuelle Daten des Fahrzeugs/Fahrers aus dem betroffenen Steuergerät auszulesen und diese nach dem Tausch in das neue SG einzuspielen. 8.1 IDRlight IDRlight ist eine Variante der IDR, die von EA eingesetzt wird. 8.1.1 IDBackup Als IDBackup bezeichnet man das Auslesen und Speichern der Individualdaten. Um ein IDBackup durchführen zu können, benötigt man zunächst eine passende TAL. Diese TAL kann entweder mit geeigneter SVTist/SVTsoll automatisch berechnet oder manuell erstellt werden. Automatische Berechnung der TAL Um eine TAL für den IDBackup mit E-Sys automatisch berechnen zu können, benötigt man eine SVTist/SVTsoll, die folgende Voraussetzungen erfüllen: Bei dem Steuergerät, aus dem die Individualdaten gelesen werden sollen, muss sich in der SVTist/SVTsoll mindestens ein Hardwareelement (HWEL) entweder in der SGBM-ID oder in der Version unterscheiden. Steht keine KIS-Datenbank zur Verfügung, um eine geeignete SVTsoll automatisch auszuleiten, empfiehlt es sich, die SVTist im TAL-Editor geeignet anzupassen und als SVTsoll zu verwenden. Werden diese Dateien im Modul „Komfort-Modus → TAL-Berechnung“ geladen, kann aus ihnen eine geeignete TAL berechnet werden (siehe 4.2). Achtung: Bei der TAL-Berechnung kann es zu Warnings kommen, wenn keine KIS-DB zur Verfügung steht oder bestimmte Module nicht genutzt werden können. I.d.R. können diese Warnungen aber vernachlässigt werden. Die berechnete TAL kann anschließend abgespeichert und im Modul „Editoren & Viewer → TAL-Editor“ oder in einem beliebigen XML-Editor geöffnet werden. Manuelle Erstellung der TAL Die TAL für das IDBackup kann auch manuell im TAL-Editor erstellt werden. Folgende Elemente müssen für ein funktionierendes IDBackup in der TAL mindestens angelegt werden: Eine HWInstall-Transaktion für das betroffene SG (beliebiger Inhalt) Eine HWDeinstall-Transaktion für das betroffene SG (beliebiger Inhalt) Eine IDBackup-Transaktion für das betroffene SG Für jede der genannten Transaktionen muss eine eigene TAL-Line erstellt werden (vgl. 4.1). Innerhalb der IDBackup-Transaktion muss ein IDBackupLight-Element eingefügt werden. Achtung: Innerhalb einer IDBackup-Transaktion kann entweder ein IDBackup- oder ein IDBackupLight-Element eingefügt werden. Das beim Erstellen einer neuen IDBackup-Transaktion automatisch erzeugte IDBackupTA-Element muss daher zuerst gelöscht werden, bevor ein IDBackupLight-Element angelegt werden kann. Seite 42 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Auslesen und Speichern der Individualdaten Um die Individualdaten auszulesen, muss die erzeugte TAL nun im Modul „Experten-Modus → TALAbarbeitung“ ausgeführt werden (vgl. Kapitel 6). Wenn die Individualdatenrettung erfolgreich verläuft, endet die TAL-Abarbeitung mit dem Status „FinishedForHWTransactions_BackupOK". Wird dieser Status erreicht, kann über den Menüpunkt „Extras → Individualdatenrettung…“ ein Verzeichnis spezifiziert werden, in dem die Individualdaten gespeichert werden sollen. Die Daten werden daraufhin in der XML-Datei IDBackup.bak im angegebenen Verzeichnis abgelegt. 8.1.2 IDRestore Auch das IDRestore, also das Zurückschreiben der gelesenen Daten in das Steuergerät, wird über eine TAL gesteuert. Auch hier kann die TAL entweder automatisch berechnet oder manuell erstellt werden. Die automatische Berechnung setzt voraus, dass Backupdaten in Form der Datei IDBackup.bak vorhanden sind. Automatische TAL-Berechnung Zur Berechnung der IDRestore-Transaktion im Modul „Komfort-Modus → TAL-Berechnung“ müssen sich SVTist und SVTsoll nicht unterscheiden. Es empfiehlt sich, beide Felder mit der aktuellen SVTist zu belegen, damit eine korrekte InstalledECUList erzeugt wird. Damit tatsächlich eine IDRestore-Transaktion berechnet wird, muss zusätzlich der Haken in der Checkbox „Individualdatenrettung“ gesetzt und das Verzeichnis mit der Datei IDBackup.bak im nebenstehenden Feld angegeben werden (vgl. Abbildung 43). Anschließend kann die TAL-Berechnung angestoßen und die TAL abgespeichert werden, die dann genau die Daten enthält, die in der Datei IDBackup.bak gespeichert waren. Achtung: Bei der TAL-Berechnung kann es zu Warnings kommen, wenn keine KIS-DB zur Verfügung steht oder bestimmte Module nicht genutzt werden können. I.d.R. können diese Warnungen aber vernachlässigt werden. Abbildung 43: Einstellungen für IDRestore bei der TAL-Berechnung Manuelle Erstellung der TAL Auch die TAL für das IDRestore kann manuell erzeugt werden. Dazu muss im TAL-Editor in einer TAL lediglich eine TAL-Line mit einer IDRestore-Transaktion erstellt werden (Basisvariante und Diagnoseadresse nicht vergessen). Innerhalb dieser IDRestore-Transaktion muss ein IDRestoreLight-Element eingefügt werden, in dem dann beliebig viele DataRecords mit jeweils einem DataIdentifier und den zugehörigen Daten (Values) angelegt werden können (vgl. Abbildung 44). Achtung: Innerhalb einer IDRestore-Transaktion kann entweder ein IDRestore- oder ein IDRestoreLight-Element eingefügt werden. Das beim Erstellen einer neuen IDRestore-Transaktion automatisch erzeugte IDRestoreTA-Element muss daher zuerst gelöscht werden, bevor ein IDRestoreLight-Element angelegt werden kann. Seite 43 von 44 www.bmwcoders.com Bedienungsanleitung: SG-Programmierung mit E-Sys 18.11.2009 Abbildung 44: Manuell erstellte TAL für IDRestore Zurückschreiben der Individualdaten Um die Individualdaten ins Steuergerät zurückzuschreiben, muss nun nur noch die berechnete oder manuell erstellte TAL im Modul „TAL-Abarbeitung“ abgearbeitet werden. Ist das Zurückschreiben der Daten erfolgreich, endet die TAL-Abarbeitung im Status „Finished“. Seite 44 von 44