Sie sind auf Seite 1von 27

EDIABAS — TRANSPARENTMODE

EDIABAS
Elektronik Diagnose Basissystem

TRANSPARENTMODE-
SCHNITTSTELLENBESCHREIBUNG

VERSION 6a

Copyright BMW AG, created by Softing AG

TMODE.DOC
EDIABAS — TRANSPARENTMODE

INHALT

INHALT ............................................................................................................2

1. Änderungshistorie .................................................................................4

2. Einführung ..............................................................................................5
2.1. Über diese Dokumentation ............................................................5
2.2. Konventionen.................................................................................5
2.3. Besonderheiten, Begriffe, Akronyme .............................................6

3. Allgemeines ............................................................................................7

4. Die Programmierschnittstelle ...............................................................9


4.1. Die API-Funktionen apiJobData/apiJobExt....................................9
4.2. Die API-Funktion apiResultBinary .................................................12
4.3. Anwendungsbeispiel......................................................................13

5. Die TMODE-Funktionen .........................................................................15


5.1. Übersicht über alle TMODE-Funktionen ........................................15
5.2. INITIALISIERUNG .........................................................................16
5.3. SETZE_INTERFACE_ZURUECK..................................................16
5.4. SETZE_SG_PARAM_ZURUECK ..................................................17
5.5. SETZE_SG_PARAMETER_ALLG.................................................17
5.6. SETZE_SG_PARAMETER_EIDBSS.............................................18
5.7. SETZE_ANTWORTLAENGE ........................................................18
5.8. HOLE_KEYBYTES ........................................................................20
5.9. SENDE_TELEGRAMM..................................................................20
5.10. SENDE_TELEGR_WIEDERHOLT ................................................20
5.11. HOLE_ANTWORT_TELEGR ........................................................21
5.12. STOPPE_WIEDERH_ANFORDERUNG .......................................21
5.13. LESE_INTERFACE_TYP ..............................................................21
5.14. LESE_INTERFACE_VERSION .....................................................22
5.15. LESE_SPANNUNG_KL30.............................................................22

2
EDIABAS — TRANSPARENTMODE

5.16. LESE_SPANNUNG_KL15.............................................................22
5.17. LESE_PORT .................................................................................22
5.18. SETZE_PORT ...............................................................................23
5.19. SETZE_PROGRAMMIERSPANNUNG .........................................23
5.20. SETZE_SIA_RELAIS.....................................................................23
5.21. TESTE_DIAGNOSELEITUNG.......................................................24
5.22. HOLE_INTERFACE_STATUS ......................................................24
5.23. REICHE_AN_INTERFACE_DURCH .............................................24
5.24. SETZE_TRAP_MASK_REGISTER ...............................................24
5.25. LIES_TRAP_MASK_REGISTER ...................................................25

A. LITERATURVERZEICHNIS.....................................................................26

B. INDEX ......................................................................................................27

3
EDIABAS — TRANSPARENTMODE

1. Änderungshistorie

Version 3.0

1. Version

Version 3.0A

Neu: SETZE_TRAP_MASK_REGISTER
Neu: LIES_TRAP_MASK_REGISTER

Version 3.0B

Korrektur: SETZE_SG_PARAM_ZURUECK statt


SETZE_SG_PARAMETER_ZURUECK

Version 4.1

Überarbeitung für EDIABAS V4.1.0

Version 5

Überarbeitung für EDIABAS V5.1.0

Version 6

EDIABAS V6.0.0

Version 6a

Überarbeitung für EDIABAS V6.4.0

4
EDIABAS — TRANSPARENTMODE

2. Einführung

2.1. Über diese Dokumentation

Das vorliegende Dokument ist die Schnittstellenbeschreibung des EDIABAS


Transparent-Modes. Sie richtet sich an Entwickler von Diagnosesoftware, die mit der
API-Schnittstelle arbeiten. Dieses Dokument setzt auf die API-
Schnittstellenbeschreibung [1] und die EIDBSS Dokumentation [2] auf. Dabei wird
nur so weit auf API-Funktionen und Funktionen des Interfaces eingegangen wie für
das Verständnis des Transparent-Modes notwendig ist. Der Schwerpunkt liegt bei
der Beschreibung der einzelnen TMODE-Funktionen. Unter TMODE-Funktionen
werden die Aufträge (Jobs) verstanden, die von der speziellen Beschreibungsdatei
für den Transparent-Mode mit dem Namen "TMODE" zur Verfügung gestellt werden.
Allgemeines über EDIABAS und über Steuergerätebeschreibungsdateien wird in [4]
beschrieben.

2.2. Konventionen

Diese Dokumentation verwendet die folgenden typographischen Konventionen:

Beispiel Beschreibung
SAMPLE.B2V Großschrift kennzeichnet Dateinamen, Register und
Betriebssystemkommandos.
job, string, Fettschrift kennzeichnet Schlüsselwörter und
while Operatoren der Sprachen BEST/2 und BEST/1
sowie der API-Funktionen.
In Beschreibungen der Syntax müssen diese Wörter
wie angegeben geschrieben werden.
ausdruck Kursivschrift kennzeichnet Platzhalter für vom
Programmierer einzutragende Werte, wie z.B.
Dateinamen.
[option] Wörter in eckigen Klammern bedeuten optionale
Angaben.
{ result | Geschweifte Klammern und senkrechte Striche
argument } kennzeichnen Eingaben, von denen jeweils eine
gewählt werden muß, außer wenn sie in eckigen
Klammern steht.

5
EDIABAS — TRANSPARENTMODE

[constant...] job... Drei Punkte, die direkt einem Ausdruck folgen,


kennzeichnen, daß mehrere Ausdrücke der selben
Form folgen können.
hallo="Test"; Diese Schriftart kennzeichnet Beispiele,
Benutzereingaben, Programmausgaben und
Fehlermeldungen.
while() { Eine Spalte oder eine Zeile aus drei Punkten
. kennzeichnet, daß ein Teil eines Beispiels
.} absichtlich weggelassen wurde.
[1] Verweis auf ein Dokument aus dem
Literaturverzeichnis.

2.3. Besonderheiten, Begriffe, Akronyme

Eine Erklärung der in dieser und allen anderen EDIABAS-Dokumentationen


verwendeten Abkürzungen finden Sie in der Dokumentation "EDIABAS
Benuterhandbuch" im Kapitel "GLOSSAR".

6
EDIABAS — TRANSPARENTMODE

3. Allgemeines
Der Transparent-Mode des EDIABAS gibt dem Entwickler von Diagnose/Codierungs-
Software die Möglichkeit, mit Hilfe einer speziellen Beschreibungsdatei direkt auf das
Interface und auf Steuergeräte zuzugreifen. Die Verarbeitung der Daten, die
zwischen dem Interface und dem Anwenderprogramm bzw. zwischen dem
Steuergerät und dem Anwenderprogramm ausgetauscht werden, findet beim
Transparent-Mode nicht mehr in einer steuergerätespezifischen Beschreibungsdatei
sondern direkt im Anwenderprogramm statt.
Das heißt, der Zugriff auf die Diagnosedaten erfolgt auf Telegrammebene und nicht
auf symbolischer Ebene. Die Fehlerbehandlung (z.B. Fehler bei der Kommunikation)
wird jedoch weiterhin vom EDIABAS übernommen. Mit Hilfe des Transparent-Modes
ist es somit möglich, bereits bestehende Diagnosesoftware auf EDIABAS zu
portieren, ohne strukturelle Änderungen am bereits bestehenden
Anwendungspogramm vornehmen zu müssen.
In der Beschreibungsdatei mit dem Namen "TMODE" werden elementare Dienste für
den Transparent-Mode zur Verfügung gestellt. Diese Dienste werden im folgenden
als TMODE-Funktionen bezeichnet.

TMODE-Funktionen für den Zugriff auf Steuergeräte:

„ Zurücksetzen der Steuergeräteparameter im Interface


„ Setzen der Steuergeräteparameter im Interface
„ Setzen der Telegrammantwortlänge
„ Auslesen der Keybytes aus dem Steuergerät
„ Senden und Empfangen eines Telegramms
„ Anstoßen des wiederholten Senden und Empfangen eines Telegamms
„ Abholen des aktuellen Antworttelegramms nach dem Anstoßen des
wiederholten Senden eines Telegramms
„ Beenden des wiederholten Senden und Empfangen eines Telegramms

TMODE-Funktionen für den Zugriff auf das Diagnosebus-Interface:

„ Zurücksetzen des Interfaces


„ Auslesen des Interfacetyps
„ Lesen der Interface Versionsnummer
„ Auslesen der Spannung an der Klemme 30
„ Auslesen der Spannung an der Klemme 15
„ Einlesen von Analog- und Digitalwerten
„ Setzten von digitalen Ausgängen
„ Setzen der Programmierspannung
„ Ansteuern des SI-Relais
„ Testen der Diagnoseleitung
„ Auslesen des Interfacestatus

7
EDIABAS — TRANSPARENTMODE

„ Senden einer beliebigen Bytefolge an das Interface

8
EDIABAS — TRANSPARENTMODE

4. Die Programmierschnittstelle

Die Programmierschnittstelle zum Zugriff auf die TMODE-Funktionen besteht im


wesentlichen aus folgenden API-Funktionen:

„ apiJobData/apiJobExt
„ apiResultBinary

4.1. Die API-Funktionen apiJobData/apiJobExt

Der Zugriff auf das Interface und darüber hinaus auf ein Steuergerät ist mittels
Absetzen eines API-Auftrags an das EDIABAS möglich. Dieser Auftrag hat im
Transparent-Mode immer folgende Struktur:

apiJobData(Beschreibungsdatei,Auftrag,Daten-Puffer,Daten-Länge,Ergebnis)

oder

apiJobExt(Beschreibungsdatei,Auftrag,Standarddaten-Puffer,Standarddaten-
Länge,Daten-Puffer,Daten-Länge,Ergebnis,Reserviert)

Die Beschreibungsdatei des Transparent-Modes hat den Namen "TMODE". Sie stellt
den Bezug zu den TMODE-Funktionen her. Jede der TMODE-Funktionen ist in der
Beschreibungsdatei als eigener Job implementiert.
Als Auftrag wir der Name der TMODE-Funktion (z.B. "SENDE_TELEGRAMM")
übergeben, siehe dazu Kapitel "TMODE-Funktionen".
Von der TMODE-Funktion benötigte Daten werden in einen Daten-Puffer übergeben
(z.B. für das Auslesen der Identifikationsdaten aus dem Steuergerät LSM die
Telegrammdaten 35,00,05,00). Daten-Länge gibt die Anzahl der Datenbytes an (z.B.
für das Auslesen der Identifikationsdaten aus dem Steuergerät LSM die Anzahl der
Daten 4).Als Parameter Ergebnis wird beim Transparent-Mode immer "" übergeben,
da in der Beschreibungsdatei TMODE keine Auswertung dieses Parameters
stattfindet.
Bei Verwendung der API-Funktion apiJobExt muß zusätzlich als Standarddaten-
Puffer immer "", als Standarddaten-Länge immer 0 und für Reserviert immer 0
übergeben werden.

Im Transparent-Mode wird für alle Steuergeräte dieselbe Beschreibungsdatei


("TMODE") verwendet.

9
EDIABAS — TRANSPARENTMODE

Syntax:

void apiJobData(char *ecu,char *job,


unsigned char *parabuf,int paralen,
char *result)

Parameter:

ecu Name der Transparent-Mode-Beschreibungsdatei: "TMODE".


job Name der TMODE-Funktion
parabuf Datenbytes. Die Datenbytes sind abhängig von der TMODE-Funktion
paralen Anzahl der Datenbytes (maximale Anzahl: APIMAXPARA)
result Zu ermittelnde Ergebnisse (max. Länge des Ergebnisstrings:
APIMAXRESULT). Mehrere Ergebnisse sind mit Semikolon zu
trennen.
Zur Bearbeitungaller Ergebnisse ist ein Leer-String anzugeben.
Die Ergebnisse sind abhängig von der TMODE-Funktion.

Rückgabe: -

Beispiel:

unsigned char telegramm[APIMAXPARA]={0x35,0x00,0x05,0x00};


int telegrammLaenge=4;

apiJobData("TMODE","SENDE_TELEGRAMM",
telegramm,telegrammLaenge,"");

10
EDIABAS — TRANSPARENTMODE

Syntax:

void apiJobExt(char *ecu,char *job,


unsigned char *stdparabuf, int stdparalen,
unsigned char *parabuf, int paralen,
char *result, long reserved)

Parameter:

ecu Name der Transparent-Mode-Beschreibungsdatei: "TMODE".


job Name der TMODE-Funktion
stdparabuf Datenbytes für Standard-Aufträge: Da dieser Parameter von
TMODE nicht unterstützt wird, muß immer "" übergeben werden.
stdparalen Anzahl der Datenbytes für Standard-Aufträge: Da dieser
Parameter von TMODE nicht unterstützt wird, muß immer 0
übergeben werden.
parabuf Datenbytes. Die Datenbytes sind abhängig von der TMODE-
Funktion
paralen Anzahl der Datenbytes (maximale Anzahl: APIMAXPARA)
result Zu ermittelnde Ergebnisse (max. Länge des Ergebnisstrings:
APIMAXRESULT). Mehrere Ergebnisse sind mit Semikolon zu
trennen.
Zur Bearbeitungaller Ergebnisse ist ein Leer-String anzugeben.
Die Ergebnisse sind abhängig von der TMODE-Funktion.
reserved Reserviert: Für diesen Parameter muß immer 0 übergeben
werden.

Rückgabe: -

Beispiel:

unsigned char telegramm[APIMAXPARA]={0x35,0x00,0x05,0x00};


int telegrammLaenge=4;

apiJobExt("TMODE","SENDE_TELEGRAMM","",0,
telegramm,telegrammLaenge,"",0L);

11
EDIABAS — TRANSPARENTMODE

4.2. Die API-Funktion apiResultBinary

Im Transparent-Mode werden die Ergebnisse eines über die Funktion


apiJobData/apiJobExt abgesetzten Auftrags mit der Funktion

apiResultBinary(Zieladresse-Puffer,Zieladresse-Länge,Ergebnis,Ergebnissatz)

durch das Anwendungsprogramm abgeholt.

Die Zieladresse-Puffer ist die Adresse einer Variable im Anwendungsprogramm (Feld


für Datenbytes), in welche EDIABAS das Ergebnis ablegt. Die Zieladresse-Länge ist
die Adresse einer APIWORD-Variable im Anwendungsprogramm, in welche
EDIABAS die Anzahl der empfangenen Bytes ablegt. Als Parameter Ergebnis ist der
Namen des auszulesenden Ergebnisses anzugeben, wobei keine Unterscheidung
von Groß-/Kleinschreibung erfolgt. Die Ergebnisnamen sind in den einzelnen
TMODE-Funktionen definiert. Alle Ergebnisse liegen im Ergebnissatz 1.
Der Fehlerstatus wird beeinflußt, d.h. trat bei der Bearbeitung ein Fehler auf, kann
die Fehlernummer und der Fehlertext über API-Funktionen (siehe [1]) abgefragt
werden.

Syntax:

APIBOOL apiResultBinary(APIBINARY *buf,APIWORD *buflen,char *result,


APIWORD set )

Parameter:

buf Adresse von Puffer-Zielvariable.


buflen Adresse von Längen-Zielvariable Es können maximal
APIMAXBINARY Zeichen übergeben werden
result Name des Ergebnisses
set Ergebnissatznummer (immer 1)

12
EDIABAS — TRANSPARENTMODE

Rückgabe:

APITRUE Ergebnis vorhanden


APIFALSE Auftrag fehlerhaft oder Ergebnis nicht vorhanden

Beispiel:

APIBINARY telegramm[APIMAXPARA];
APIWORD telegrammLaenge;
apiResultBinary(telegramm, &telegrammLaenge, "SG_ANTWORT",
1);

4.3. Anwendungsbeispiel

In diesem Kapitel wird an Hand eines Beispiels in der Programmiersprache C


gezeigt, wie der Programmteil im Anwenderprogramm aussieht, in dem Dienste vom
EDIABAS angefordert werden.

Im ersten Teil werden die Steuergeräteparameter für das Steuergerät gesetzt. Nach
dem Setzen der Parameter wird kein Ergebnis abgeholt, da dieser Dienst kein
Ergebnis zurückliefert.

Im zweiten Teil werden vom Steuergerät die Identifikationsdaten angefordert. Nach


dem Senden des Telegramms wird das Antworttelegramm des Steuergeräts
abgeholt.

Als erstes wird immer ein Auftrag mit der API-Funktion apiJobData/apiJobExt
abgesetzt. Danach wird in einer Schleife so lange apiState aufgerufen, bis die
Bearbeitung des Auftrags durch das EDIABAS beendet ist. In dieser Schleife können
immer wieder Aktionen wie z.B. die Abfrage der Tastatur ausgeführt werden. Nach
Abschluß des Auftrags wird das Ergebnis mit apiResultBinary abgeholt.
Entsprechen dem Returnwert (TRUE oder FALSE) von apiResultBinary wird
entweder mit der Bearbeitung des Ergebnisses fortgefahren oder eine
Fehlerbehandlung durchgeführt. Wird kein Ergebnis erwartet, so wird nach Abschluß
der Bearbeitung mit apiState überprüft ob ein Fehler aufgetreten ist.
unsigned char sgParameter[]= {
0x01,0x01,0x01,0x01,0x0F,0x20,0x03,0x64,0x00};
int sgParameterLaenge= 9;
unsigned char anforderungsTel[] = {0x35,0x00,0x05,0x00};
int anforderungsTelLaenge = 4;
APIBINARY antwortTel[APIMAXBINARY];
APIWORD antwortTelLaenge;

13
EDIABAS — TRANSPARENTMODE

apiJobData("TMODE",
"SETZE_SG_PARAMETER_EIDBSS",
sgParameter,sgParameterLaenge,
"");

while (apiState() == APIBUSY) {


/* Kurzer Programmteil, z.B. Tastaturabfrage */
}

if (apiState() == APIREADY) {
/* Weiterverarbeitung des Ergebnisses oder weiter im Programm */
}
else {
/* Fehlerbehandlung, z.B. mit apiErrorCode */
}

apiJobData("TMODE","SENDE_TELEGRAMM",
anforderungsTel,anforderungsTelLaenge,
"");

while (apiState() == APIBUSY) {


/* Kurzer Programmteil, z.B. Tastaturabfrage */
}

if (apiResultBinary(antwortTel, &antwortTelLaenge, "SG_ANTWORT", 1))


{
/* Weiterverarbeitung des Antworttelegramms */
}
else {
/* Fehlerbehandlung, z.B. mit apiErrorCode */
}

14
EDIABAS — TRANSPARENTMODE

5. Die TMODE-Funktionen

Ein wesentlicher Bestandteil des Transparent-Mode ist eine Beschreibungsdatei, in


der alle TMODE-Funktionen (z.B. Setzen der Steuergeräte Parameter, Senden eines
Telegramms, usw.) auf Jobs abgebildet werden. In diesem Kapitel wird jeder Job
durch seinen Namen, die benötigten Parameter, den Ergebnisnamen und den
Ergebnisinhalt beschrieben.

Zuordnung zwischen den Parametern der API-Funktionen und den Namen in der
Jobbeschreibung:

apiJobData("TMODE",
Auftrag <-----------> Jobname
Parameter-Puffer <-----------> Parameter
Parameter-Pufferlänge <-----------> Parameter
Ergebnis <-----------> "" oder Ergebnisname
)

apiResultBinary(

Zieladresse-Puffer, <-----------> Ergebnisinhalt


Zieladresse-Länge,
Ergebnis <-----------> Ergebnisname
Ergebnissatz <-----------> 1
)
Als Paramter wird immer eine Folge von Zeichen vom Typ unsigned char übergeben.
Sollen Variablen vom Typ int, long usw. übergeben werden, müssen sie zuerst
konvertiert werden. In diesem Fall ist das erste Zeichen das niederwertigste und das
letzte Zeichen das höchstwertige Zeichen (Intelformat).
Die Ergebnisse werden auch als eine Folge von Zeichen vom Typ APIBINARY
übergeben. Sollen die Ergebnisse als Variablen vom Typ int, long usw. interpretiert
werden, müssen auch sie zuerst konvertiert werden. Die Ergebnisse werden auch im
Intelformat übergeben.

5.1. Übersicht über alle TMODE-Funktionen


„ INITIALISIERUNG
„ SETZE_INTERFACE_ZURUECK

15
EDIABAS — TRANSPARENTMODE

„ SETZE_SG_PARAM_ZURUECK
„ SETZE_SG_PARAMETER_ALLG
„ SETZE_SG_PARAMETER_EIDBSS
„ SETZE_ANTWORTLAENGE
„ HOLE_KEYBYTES
„ SENDE_TELEGRAMM
„ SENDE_TELEGR_WIEDERHOLT
„ HOLE_ANTWORT_TELEGR
„ STOPPE_WIEDERH_ANFORDERUNG
„ LESE_INTERFACE_TYP
„ LESE_INTERFACE_VERSION
„ LESE_SPANNUNG_KL30
„ LESE_SPANNUNG_KL15
„ LESE_PORT
„ SETZE_PORT
„ SETZE_PROGRAMMIERSPANNUNG
„ SETZE_SIA_RELAIS
„ TESTE_DIAGNOSELEITUNG
„ HOLE_INTERFACE_STATUS
„ REICHE_AN_INTERFACE_DURCH
„ SETZE_TRAP_MASK_REGISTER
„ LIES_TRAP_MASK_REGISTER

5.2. INITIALISIERUNG
Jobname: INITIALISIERUNG
Parameter: Keine
Ergebnisname: DONE
Ergebnisinhalte: Der Wert 1 als 2-Bytezahl.
Beschreibung: Dieser Job wird immer automatisch aufgerufen, wenn die
Beschreibungsdatei geladen wird oder ein EDIABAS-Fehler
auftrat. Hier wird festgestellt welches Interface angeschlossen
ist. Dieser Job benötigt das Ergebnis DONE, das vom
EDIABAS-System interpretiert wird. Im Transparent-Mode ist
dieses Ergebnis immer 1.

5.3. SETZE_INTERFACE_ZURUECK
Jobname: SETZE_INTERFACE_ZURUECK
Parameter: Keine

16
EDIABAS — TRANSPARENTMODE

Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Dieser Job versetzt das Interface in den Initialisierungszustand
und die Diagnoseschnittstelle wird getestet. Nach diesem Job
nimmt das EDIC (IDBSS) etwa 2 Sekunden lang kein Komando
mehr an.

5.4. SETZE_SG_PARAM_ZURUECK
Jobname: SETZE_SG_PARAM_ZURUECK
Parameter: Keine
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Dieser Job bricht die Kommunikation mit einem Steuergerät ab
und löscht die Kommunikationsparameter. Ein möglicherweise
noch im EDIC (IDBSS) gespeichertes Telegramm vom
Steuergerät wird gelöscht.

5.5. SETZE_SG_PARAMETER_ALLG
Jobname: SETZE_SG_PARAMETER_ALLG
Parameter: Als Parameter werden die Kommunikationsparameter
übergeben.
Eine genaue Beschreibung der Parameter befindet sich in [7]
bei der Beschreibung der Funktion set_communication_pars
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Job werden die für die Kommunikation mit einem
Steuergerät erforderlichen Kommunikationsparameter gesetzt.
Die Parameter haben ein interfaceunabhängiges Format.
Wurden die Parameter mit diesem Job gesetzt, muß die
Anwendersoftware auf Grund eines Interfacewechsels nicht
geändert werden. Dieser Job muß vor jedem Ansprechen eines
neuen Steuergerätes aufgerufen werden. Zusätzlich zu den
Kommunikationsparametern wird im EDIABAS entsprechend
dem eingestellten Konzept der Telegrammvorspann mit
Defaultwerten belegt. Genaueres zum Telegrammvorspann
siehe unter 5.7.

17
EDIABAS — TRANSPARENTMODE

5.6. SETZE_SG_PARAMETER_EIDBSS
Jobname: SETZE_SG_PARAMETER_EIDBSS
Parameter: Als Parameter werden die Kommunikationsparameter
übergeben. Die Parameter müssen das von der EIDBSS-
Applikation auf dem EDIC verlangte Format haben, siehe [2].
Die Kontrollbytes werden nicht mitübergeben.
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Job werden die für die Kommunikation mit einem
Steuergerät erforderlichen Kommunikationsparameter gesetzt.
Die Parameter haben ein interfaceabhängiges Format. Wurden
die Parameter mit diesem Job gesetzt, muß die
Anwendersoftware auf Grund eines Interfacewechsels geändert
werden. Dieser Job muß vor jedem Ansprechen eines neuen
Steuergerätes aufgerufen werden. Zusätzlich zu den
Kommunikationsparametern wird im EDIABAS entsprechend
dem eingestellten Konzept der Telegrammvorspann mit
Defaultwerten belegt. Genaueres zum Telegrammvorspann
siehe unter 5.7.

5.7. SETZE_ANTWORTLAENGE
Jobname: SETZE_ANTWORTLAENGE
Parameter: Als Parameter wird der Telegrammvorspann übergeben. Der
Telegrammvorspann besteht aus zwei Parametern, von denen
jeder aus zwei Bytes besteht. Der erste Parameter ist die
Antwortlänge, der zweite der Antwortoffset.
Antwortlänge: Mit der Antwortlänge wird angegeben, wie
lang die erwartete SG-Antwort ist.

bei Konzept 1 , DS1, DS2 und Konzept 3:

positiv: Zahl der erwarteten Bytes im Antworttelegramm des


SG
(Antwortlänge konstant)
negativ: Position der Antwortlänge im Antworttelegramm (ab
Byte 0)
(Antwortlänge variabel)

18
EDIABAS — TRANSPARENTMODE

bei Konzept 2 und 4:

Maximale Anzahl der Blöcke, die die gewünschte Information


enthalten. Wird als Antwortlänge die Null angegeben, so
werden alle Antwortblöcke bis einschließlich des ersten
Acknowledge Blocks aufgesammelt.

Antwortoffset: Nur bei variabler Antwortlänge bei Konzept


1, DS1, DS2. In diesem Fall erfolgt die
Berechnung der Antwortlänge
folgendermaßen:
Länge = (Antwortlänge + 1) + Antwortoffset
Defaultwert für den Telegrammvorspann nach dem Setzten der
Steuergeräteparameter:

Konzept Länge Offset


1 -2 0
3 52 0
5,6 (DS1,DS2) -1 0
2,4 1 0
sonst 1 0

Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Das Interface benötigt beim Senden eines Telegramms einen
Telegrammvorspann, in dem die Information über die erwartete
Antwortlänge und dem Antwortoffset enthalten ist. Diese
Information ist bei den meisten SG-Telegrammen gleich. Damit
der Vorspann nicht mit jedem Telegramm mitgesendet werden
muß, kann er vom Anwender mit SETZE_ANTWORTLAENGE
gesetzt werden. Der Vorspann wird beim Senden eines
Telegramms immer automatisch an den Anfang des
Telegramms gesetzt. Wird vom Anwender kein Vorspann
angegeben, werden die Defaultwerte verwendet, die beim

19
EDIABAS — TRANSPARENTMODE

Setzen der Kommunikationsparameter von EDIABAS belegt


wurden.

5.8. HOLE_KEYBYTES
Jobname: HOLE_KEYBYTES
Parameter: Keine
Ergebnisname: KEYBYTES
Ergebnisinhalte: Steuergeräte Keybytes
Beschreibung: Mit diesem Job werden die Keybytes und die
Identifikationsdaten aus einem Konzept-2-, Konzept-3- oder
Konzept-4-Steuergerät ausgelesen. Wurde das Steuergerät
noch nicht gereizt, wird die Reizung automatisch durchgeführt.

5.9. SENDE_TELEGRAMM
Jobname: SENDE_TELEGRAMM
Parameter: Steuergerätetelegramm laut SG-Lastenheft. Bei Konzept-2-,
DS1- und DS2-Steuergeräten wird die Prüfsumme
weggelassen. Bei Konzept-2 und Konzept-4-Steuergeräten wird
das ETX am Blockende weggelassen.
Ergebnisname: SG_ANTWORT
Ergebnisinhalte: Steuergeräteantwort. Bei Konzept-2 und Konzept-4-
Steuergeräten werden die Antwortblöcke aneinandergehängt,
wobei das letzte Byte jedes Blocks (ETX) weggelassen wird.
Beschreibung: Mit diesem Job wird ein Telegramm an ein Steuergerät
gesendet und die Antwort abgeholt.

5.10. SENDE_TELEGR_WIEDERHOLT
Jobname: SENDE_TELEGR_WIEDERHOLT
Parameter: Steuergerätetelegramm laut SG-Lastenheft. Bei Konzept-2-,
DS1- und DS2-Steuergeräten wird die Prüfsumme
weggelassen. Bei Konzept-2 und Konzept-4-Steuergeräten wird
das ETX am Blockende weggelassen.
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Job wird das übergebene Steuergerätetelegramm
immer wieder an das Steuergerät gesendet. Dieser Modus kann

20
EDIABAS — TRANSPARENTMODE

mit dem Job STOPPE_WIEDERH_ANFORDERUNG beendet


werden. In diesem Modus wird ein erneuter Aufruf von
SENDE_TELEGR_WIEDERHOLT oder der Aufruf von
SENDE_TELEGRAMM mit der Fehlermeldung IFH_0006
beantwortet.

5.11. HOLE_ANTWORT_TELEGR
Jobname: HOLE_ANTWORT_TELEGR
Parameter: Keine
Ergebnisname: SG_ANTWORT
Ergebnisinhalte: Steuergeräteantworttelegramm. Bei Konzept-2- und Konzept-4-
Steuergeräten werden die Antwortblöcke aneinandergehängt,
wobei das letzte Byte jedes Blocks (ETX) weggelassen wird.
Beschreibung: Wurde das wiederholte Anfordern von Steuergeräteantworten
mit SENDE_TELEGR_WIEDERHOLT gestartet, so können die
Antworten jetzt mit diesem Job abgefragt werden. Es wird
immer die momentan aktuelle SG-Antwort geliefert.

5.12. STOPPE_WIEDERH_ANFORDERUNG
Jobname: STOPPE_WIEDERH_ANFORDERUNG
Parameter: Keine
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Dieser Job stoppt das wiederholte Senden und Empfangen von
Telegrammen.

5.13. LESE_INTERFACE_TYP
Jobname: LESE_INTERFACE_TYP
Parameter: Keine
Ergebnisname: TYP
Ergebnisinhalte: "IDBSS" oder "EIDBSS"
Beschreibung: Dieser Job gibt den Interfacetyp als nullterminierten String
zurück. "EIDBSS" ist der Name der Applikation
(Diagnosesoftware) auf dem EDIC.

21
EDIABAS — TRANSPARENTMODE

5.14. LESE_INTERFACE_VERSION
Jobname: LESE_INTERFACE_VERSION
Parameter: Keine
Ergebnisname: VERSION
Ergebnisinhalte: Versionsnummer als Low- und Highbyte
Beschreibung: Dieser Job liefert die Versionsnummer des Interfaces.

5.15. LESE_SPANNUNG_KL30
Jobname: LESE_SPANNUNG_KL30
Parameter: Keine
Ergebnisname: SPANNUNG
Ergebnisinhalte: Vier-Byte-Wert, der die Spanung in Millivolt angibt.
Beschreibung: Dieser Job liefert die Spannung an der Klemme 30 in Millivolt.

5.16. LESE_SPANNUNG_KL15
Jobname: LESE_SPANNUNG_KL15
Parameter: Keine
Ergebnisname: SPANNUNG
Ergebnisinhalte: Vier-Byte-Wert, der die Spanung in Millivolt angibt.
Beschreibung: Dieser Job liefert die Spannung an der Klemme 15 Millivolt.

5.17. LESE_PORT
Jobname: LESE_PORT
Parameter: Ein Byte, in dem die Portnummer angegeben wird.
Ergebnisname: PORTWERT
Ergebnisinhalte: Vier-Byte-Wert, der den Portwert angibt.
Port 0 -5: Analogeingang 0 - 5 (Spannung in Millivolt)
Port 6: Analogeingang Kl 15 (Spannung in Millivolt)
Port 7: Analogeingang Kl 30 (Spannung in Millivolt)
Port 8: Jumperfeld (Digitalwert)

22
EDIABAS — TRANSPARENTMODE

Beschreibung: Beim EDIC können neun Ports ausgelesen werden. Die Ports 0
- 7 sind Analogeingänge, Port 8 gibt den Wert des Jumperfelds
zurück.
5.18. SETZE_PORT
Jobname: SETZE_PORT
Parameter: Im ersten Byte wird die Portnummer übergeben. Mit dem 2.-4.
Byte wird der Wert übergeben, mit dem das Port gesetzt wird.
Port 9: Digitale Ausgänge
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Jobs können Ports gesetzt werden. Im EDIC kann
nur Port 9 (digitale Ausgänge) gesetzt werden.

5.19. SETZE_PROGRAMMIERSPANNUNG
Jobname: SETZE_PROGRAMMIERSPANNUNG
Parameter: Vier-Byte-Wert mit dem die Höhe der Programmierspannung in
Millivolt übergeben wird.
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Job wird die Programmierspannung ein- und
ausgeschaltet. Die Höhe der Programmierspannung kann in
Millivolt festgelegt werden (0 - 33000 mV). Spannung 0 Volt
bedeutet Programmierspannung "aus", sonst "ein".

5.20. SETZE_SIA_RELAIS
Jobname: SETZE_SIA_RELAIS
Parameter: Schaltzeit in Millisekunden als 2-Byte-Wert.
Schaltzeit = 0x0000: dauerhaft ausschalten
Schaltzeit = 0xFFFF: dauerhaft einschalten
Ergebnisname: -
Ergebnisinhalte: Keine
Beschreibung: Mit diesem Job wird das Service-Intervall-Relais des EDIC für
die angegebene Zeit eingeschaltet.

23
EDIABAS — TRANSPARENTMODE

5.21. TESTE_DIAGNOSELEITUNG
Jobname: TESTE_DIAGNOSELEITUNG
Parameter: Keine
Ergebnisname: ERGEBNIS
Ergebnisinhalte: Testergebnis als 2-Byte-Wert.
0: Fehler aufgetreten
1: kein Fehler aufgetreten
Beschreibung: Dieser Job testet die Diagnoseleitung, wobei ein Kurzschluß
zwischen RD- und TD-Leitung vorliegen muß.

5.22. HOLE_INTERFACE_STATUS
Jobname: HOLE_INTERFACE_STATUS
Parameter: Keine
Ergebnisname: IF_STATUS
Ergebnisinhalte: Statusbytes des Interface
Beschreibung: Dieser Job fordert die Statusbytes des Interface an (siehe [2]).

5.23. REICHE_AN_INTERFACE_DURCH
Jobname: REICHE_AN_INTERFACE_DURCH
Parameter: Auftrag an das Interface (siehe [2])
Ergebnisname: IF_ANTWORT
Ergebnisinhalte: Antwort vom Interface
Beschreibung: Mit diesem Job werden die an das EDIABAS übergebenen
Datenbytes direkt an das Interface durchgereicht. Die Antwort
des Interfaces wird hier vom EDIABAS nicht ausgewertet. In
diesem Job erfolgt keine Auswertung des Statusbytes vom
Interface.
5.24. SETZE_TRAP_MASK_REGISTER
Jobname: SETZE_TRAP_MASK_REGISTER
Parameter: Setzt das Trapmaskregister mit dem als Parameter 1
übergebenen Longwert.
Ergebnisname: -

24
EDIABAS — TRANSPARENTMODE

Ergebnisinhalte: keine
Beschreibung: Setzt das Trapmaskregister, mit dem das Auftreten eines
Fehlers in der Beschreibungsdatei behandelt werden kann.

5.25. LIES_TRAP_MASK_REGISTER
Jobname: LIES_TRAP_MASK_REGISTER
Parameter: -
Ergebnisname: TMR
Ergebnisinhalte: Aktueller Wert des Trapmaskregisters
Beschreibung: Liest das Trapmaskregister, mit dem das Auftreten eines
Fehlers in der Beschreibungsdatei behandelt werden kann.

25
EDIABAS — TRANSPARENTMODE

A. LITERATURVERZEICHNIS

[1] EDIABAS: API-Schnittstellenbeschreibung

[2] SOFTWAREDOKUMENTATION ZU EIDBSS-BMW


SG-KOMMUNIKATIONSSCHNITTSTELLE
Softing GmbH, Version 1.4

[3] EDIABAS: BEST/1 - Sprache und Interpreter

[4] EDIABAS: Benutzerhandbuch

[5] EDIABAS: BEST/2 - Sprachbeschreibung

[6] EDIABAS: API Benutzerhandbuch

[7] EDIABAS: BEST/2 Funktionsreferenz

26
EDIABAS — TRANSPARENTMODE

B. INDEX

TESTE_DIAGNOSELEITUNG 22
APIBINARY 14 TMODE 7, 8, 9, 10
apiJobData 12, 14 TMODE-Funktionen 5, 7, 8, 14
apiJobData 8, 9, 10 Transparent-Mode 5, 7, 8, 14, 15
APIMAXBINARY 11
APIMAXPARA 9, 10
APIMAXRESULT 9, 10
apiResultBinary 11, 12, 14
apiState 12

HOLE_ANTWORT_TELEGR 20
HOLE_INTERFACE_STATUS 23
HOLE_KEYBYTES 18

INITIALISIERUNG 15

LESE_INTERFACE_TYP 20
LESE_INTERFACE_VERSION 20
LESE_PORT 21
LESE_SPANNUNG_KL15 21
LESE_SPANNUNG_KL30 21
LIES_TRAP_MASK_REGISTER 23

REICHE_AN_INTERFACE_DURCH
23

SENDE_TELEGR_WIEDERHOLT 19
SENDE_TELEGRAMM 19
SETZE_ANTWORTLAENGE 17
SETZE_INTERFACE_ZURUECK 15
SETZE_PORT 21
SETZE_PROGRAMMIERSPANNUNG
22
SETZE_SG_PARAM_ZURUECK 16
SETZE_SG_PARAMETER_ALLG 16
SETZE_SG_PARAMETER_EIDBSS
16
SETZE_SIA_RELAIS 22
SETZE_TRAP_MASK_REGISTER 23
STOPPE_WIEDERH_ANFORDERUNG
20

27