Logo

last update: Thursday, February 07, 2008

BMW I-Bus

Informationen zum Instrumentenbus von BMW Fahrzeugen der Baureihen E38, E39 und E46. Alle Informationen ohne Gewähr und nur zur privaten Nutzung bestimmt!

Neu! Über dieses Thema kann im Forum geschrieben werden. Bei Fragen und Problemen bitte ich im Forum Hilfe zu suchen.


Software

I-Bus Analyseprogramm (IBus Analyser 1.0.11)


Inhalt

Steuergeraete im Fahrzeug der Baureihe E39

Konvertierung des I-Bus auf RS232 Standard

Protokoll des I-Bus

Adressen der Busteilnehmer im I-Bus

Kommunikation der Steuergeraete im I-Bus

Codes der Bormonitortasten

Tastencodes der Lenkradtasten

Visualisierung von Nachrichten in der Instrumentenkombination

Visualisierung von Nachrichten im Bordmonitor

Kommunikation mit dem CD-Wechsler

Sonstige I-Bus Codes (Telefon, LCM, Licht, IKE, Bordcomputer, Navigation, Kassettenlaufwerk)

Z4 / X3 Monitorsteuerung

Steuerung des 16:9 Widescreen Bordmonitor



Steuergeräte im Fahrzeug der Baureihe E39 (5er BMW)

Bei Fahrzeugen der Modelreihe E39 des Automobilherstellers BMW werden zur Vernetzung der einzelnen Steuergeräte eigesetzt unter anderen über K-Bus ähnliche Bussysteme eingesetzt. Der K-Bus ist ein Kommunikationsbus und gehört zu den Feldbussen. Ein verbreitetes Einsatzgebiet ist die Diagnosekommunikation in Kraftfahrzeugen. Auf der Bitübertragungsschicht verwendet der K-Bus ISO-9141. Es handelt sich um eine einfache serielle UART-Kommunikation, die für Datenraten bis maximal 20 kBit/s eingesetzt werden kann.

Im vorliegenden Fahrzeug existieren insgesamt drei größere Netzwerke von Steuergeräten. Es sind dabei jeweils die Steuergeräte zusammengefasst, die ähnliche Aufgaben erfüllen. Unterhalb bestimmter Steuergeräte sind weitere kleine Netzwerke die Sensoren und Aktoren mit dem Steuergerät verbinden. Ein Beispiel hierfür ist die Klimaautomatik. Die zugehörigen Stellelemente der Luftverteilerklappen sind über den M-Bus vernetzt.

Die Steuergeräte mit Sicherheitsverantwortung sind unter anderen über CAN-Bus vernetzt. Teilweise sind diese auch noch (zusätzlich z.B. zu Diagnosezwecken) über den D-Bus bzw. K-Bus angebunden, der CAN-Bus hat aber Vorrang. Damit werden  Motor- und Getriebesteuerung und ABS Steuerung nicht von Störungen auf den D/K/I-Bussen beeinflusst.


Abbildung 1.1: Topologie der Steuergerätenetzwerke im BMW E39

Die Grafik zeigt  die drei Netzwerke mit den einzelnen gruppierten Steuergeräten. Der MP3-Player wird an den Instrumentierungsbus gekoppelt und ersetzt bzw. emuliert den CD-Wechsler. Es sind nur die Steuergeräte dargestellt die im für das Projekt verwendeten Fahrzeug verbaut sind.

 


Konvertierung des I-Bus (K-Bus ISO-9141) auf RS232 Standard

Der Bus arbeitet mit Pegeln, die relativ zur Batterie Spannung (ca. 12 V) des Fahrzeugs definiert sind und für eine logische 0 (Low) 0-30 % und für eine logische 1 (High) 70-100 % der Batteriespannung betragen.

Der I-Bus ist Low aktiv. Die Logische "1" wird übertragen wenn der Bus vom H-Pegel (Ruhezustand) für kurze Zeit auf L-Pegel gezogen wird. Die Übertragung wird über die Busgeschwindigkeit und den Pegel gesteuert. Low entspricht 1 und High entspricht 0, bei definierter Dauer eines Bits.

Über spezielle integrierte Schaltungen können die Pegel des I-Bus auf den RS232 Standard angepasst werden. Die entsprechenden Bus Treiber werden von verschiedenen Herstellern angeboten.

Abbildung 1.2: Pegelanpassung

Für dieses Aufgabe kann zum Beispiel der Melexis TH8080 LIN-Transceiver verwendet. Dieser IC stellt eine günstige und sehr stabile Lösung dar die erforderliche Anpassung zu realisieren. Die Wandelung von TTL auf RS232 kompatible Pegel übernimmt dann ein MAX232 Standard IC. Der Melexis IC kommt mit wenigen esternen Bauteilen aus. Der Schaltungsentwurf sollte nach dem lesen des Datenblattes kein Problem darstellen.

P630004G

 

 

 

 

Index

Signal

Sollwert

1

U high [V]

7 V ... Ubatt

2

U low [V]

0 V ... 2 V

3

Telegrammzeit [ms]

5 ms ... 30 ms

 

 

 

 

Abbildung 1.3:  Oszillogramm I-/ K-Bus-Signale





Eine weitere Möglichkeit ohne spezielle IC ist eine Pegelanpassung über die folgende einfache Transistorschaltung. Die Schaltung funktioniert neigt aber teilweise zu Übertragunsproblemen bzw. Übertragungsfehlern.


Protokoll des I-Bus

In BMW Fahrzeugen ist das Protokoll über das die einzelnen Steuergeräte in den Netzwerken kommunizieren nach dem folgenden Schema aufgebaut:

·         Quell ID
Identifikation des Teilnehmers der eine Nachricht an einen anderen BUS-Teilnehmer senden will

·         Länge
Länge der kompletten Nachricht (ohne Quell ID und Längenangabe selbst)

·         Ziel ID
Identifikation des Teilnehmers an den die Nachricht gesendet werden

·         Daten
Nutzdaten den Nachricht

·         XOR CRC  - Checksumme 
Die Checksumme dient zur Verifizierung der Nachricht. Der Empfänger der Nachricht berechnet die Checksumme und vergleicht diese mit der in der Nachricht enthaltenen.

 

 

Abbildung 1.4:  Aufbau des Nachrichtenprotokolls

 

Jedes Netzwerk (K-Bus, I-Bus und D-Bus) überträgt Daten mit einer Baudrate von 9600 Bit pro Sekunde. Das Kommunikationsprotokoll hat 8 Daten-Bits, 1 Stop-Bit und gerade Parität (even).

Die Implementierung bei BMW sieht als Busmaster die Instumentenkombination vor. Nur wenn die IKE nichts sendet dürfen sich andere Busteilnehmer ‚unterhalten’. Dies erleichtert die Integration zusätzlicher Steuergeräte, z.B. MP3-Player und kann die Reaktionszeit verkürzen, z.B. Lenkradtasten. Auf dem I-Bus (wie auch den anderen Bussystemen) können bei hoher Buslast Kollisionen als Tribut an die Flexibilität auftreten. Daher verwendet BMW je nach Ausstattung mehrere Busse.

  • Folgende Mechanismen sind für die Kommunikation am I-Bus implementiert:
  • der Busmaster (IKE) hat Priorität
  • bis auf Broadcasts ist jede Botschaft (Request) zu bestätigen (Response) (dies trifft nicht für alle Botschaften zu, hier sieht der I-Bus dann eine entsprechende Kodierung vor)
  • wenn der Bus eine definierte Zeit (z.B. 20-100ms, nach Request erst nach dem Timeout, z.B. 100-1000ms) nicht belegt ist, dürfen andere Teilnehmer einen Request senden
  • nicht jeder Busteilnehmer wartet die gleiche Zeit (dies ist zwar nicht explizit geregelt, ergibt sich aber aus den Signallaufzeiten und Timingunterschieden in den Steuergeräten)
  • nach einer gewissen Übertragungszeit muss der Bus für andere Steuergeräte ‚geöffnet’ werden
  • Kollisionserkennung ist zu verwenden, insbesondere sollte das Echo überprüft werden.
  • es wird eine Adress-Arbitrierung verwendet: Der Sender mit der höchsten Adresse erhält den Buszugriff, wenn 2 oder mehr Teilnehmer gleichzeitig auf den Bus zugreifen. Dies funktioniert folgendermaßen: Während die Sendeadresse Bit für Bit auf den Bus gelegt wird, wird der Zustand der Leitung überprüft. Überträgt ein Steuergerät z.B. eine 0 (High-Pegel) und die Leitung wird Low, muss es den Bus abgeben (ohne die laufende Übertragung der anderen Steuergeräte zu stören). Bei Gleichheit entscheidet das nächste Bit. Adresse binär 00100100 ist höher als 00100011.
  • Kommandos/Botschaften werden im Steuergerät intern priorisiert. Entsprechend der Priorität wird eine unterschiedliche Pause zwischen den Botschaften (‚Botschaftsabhängige Wartezeit’) verwendet: Prio 1 ab 1,7ms, 2 ab 2.3ms und 3 ab 10ms. Bei Kollisionen wird eine vordefinierte ‚Konfliktwartezeit’ verwendet, die für Steuergeräte in der gleiche Domäne (gleiche Position des ersten rezessiven Bits in der Adresse) unterschiedlich ist.
  • sollte auf einen Request keine Antwort kommen, wird er bis zu 5 Mal nach jeweils 300ms Wartezeit wiederholt

Da die oben genannten Mechanismen nur aufwendig zu implementieren sin reicht in der Praxis das folgendes Vorgehen zum senden von Nachrichten aus:

Bevor eine Nachricht gesendet wird muß auf auf den Ruhezustand des Busses gewartet werden. Dieser ist erreicht wenn für eine gewisse Zeit kein Datentransfehr stattfindet. Die Zeit errechnet sich aus der Datenrate des Busses und dem Datenrahmen der Seriellen Verbindung von 10Bit/Zeichen. Dieser Datenrahmen ist in der nachfolgenden Rechnung bereits berücksichtigt (0,104ms/Bit * 10Bit).

Es muss also mindestens 1,2ms Inaktivität des Busses abgewartet werden bevor davon ausgegangen werden kann das keine weiteren Bits mehr gesendet und somit die Nachricht des gerade aktiv gewesenen Steuergerätes vollständig gesendet wurde. Danach kann eine Nachricht gesendet werden.

Diese System bzw. diese Art der Kollisionsvermeidung arbeitet in der Praxis unter der Voraussetzung das sich alle Steuergeräte genau an diese Softwarelösung halten sehr zuverlässig.  Eigentlich wird hierbei die Wartezeit der Busruhe verwendet um vor allen anderen Steuergeräten zu senden. Das bedeutet aber auch, dass wichtige Nachrichten unter umständen unterdrückt werden könnten und eigentlich die anderen Steuergeräte die Kollisionen vermeiden! Deshalb solte nur maximal 1 Busteilnehmer der nach dieser "Quick and dirty" Methode arbeitet angeschlossen werden.

 


Adressen der Busteilnehmer im I-Bus

Im Netzwerk wird jeder Teilnehmer durch eine ID (Adresse) identifiziert, die Länge ist ein jeweils Byte.

ID
(Hex)
  Name des Teilnehmers   Bemerkung
00
Allgemeine Nachrichten (1)
18
CD-Wechsler Adresse des MP3-Players
30
SES (Spracheingabe)
3B
Videomodul
3F
DIS externes Diagnosesystem
43
Menü Bildschirm auf Bordmonitor
50
Lenkradtasten Linke Seite
60
Parksystem PDC
68
Radio
6A
DSP (Soundprozessor)
7F
GPS Modul
80
Instrumentenkombination IKE
A8
Unbekannt
BB
TV-Modul (im Videomodul)
BF
Lichtkontrollmodul LCM
C0
Multiinformationsdisplay MID nicht verbaut
C8
Telefon
D0
Navigationsdaten
E7
Textzeile in Instrumentenkombination
E8
Unbekannt
ED
Memory Sitze
F0
Tasten Bordmonitor
FF
Allgemeine Nachrichten (2)


Kommunikation der Steuergeräte im I-Bus

Die Steuergeräte im Verbund des Instrumentierungsbus (I-Bus) kommunizieren nach dem im Kapitel beschriebenen  Protokoll.

Bestimmte Steuergeräte bilden einen Verbund im Bus. Dabei übernimmt ein Steuergerät die Rolle des „Master“ die anderen zugehörigen Steuergeräte bilden die „Slaves“. Hierbei handelt es sich um eine logische Zuordnung über die Software der Steuergeräte. Die elektrische Topologie des I-Busses verbindet im Gegensatz zur logischen Zuordnung alle Steuergeräte miteinander. Somit stehen alle Telegramme die über den Bus gesendet werden an allen Steuergeräten zur Verfügung.

Abbildung 1.5: Blockschaltbild der logischen Zuordnung

Steuergeräte die nicht zur Serienausstattung des Fahrzeugs gehören und nachgerüstet werden können werden am Bus automatisch erkannt. Die Erkennung erfolgt wenn in einer bestimmten Zeit auf eine an das Steuergerät gerichtete Anfrage geantwortet wird, oder das nachgerüstete Gerät sich mit einer Initialisierungsnachricht angemeldet hat. Dies betrifft auch den CD-Wechsler der durch den MP3-Player emuliert wird. Das Radio fragt nach dem Einschalten der Zündung die zugehörigen Slaves (DSP / CD-Wechsler bzw. MP3-Player) ab. Auf die Anfrage des Radios muss eine Antwort erfolgen. Außerdem muss das Gerät in regelmäßigen Abständen ein Lebenszeichen senden. Geschieht dies nicht wird das Gerät bis zum Neustart des Fahrzeugs deaktiviert. Es ist somit wichtig, dass der MP3-Player zuverlässig auf entsprechende Anfragen reagiert.

Die Steuerung des CD-Wechslers erfolgt regulär nur durch das Radio. Wird der CD-Modus angewählt sendet das Radio an den CD-Wechsler eine Nachricht die Wiedergabe zu starten. Der CD- Wechsler sendet eine Nachricht zurück an das Radio das die Wiedergabe startet. Alle weiteren Steuerbefehle wie CD-Wechsel etc. werden auf gleiche Weise übermittelt.

Die Tasten des Bordmonitor und die Tasten des Multifunktionslenkrad senden bei Tastendruck eine Nachricht die den Code der Taste sowie die Art des Tastendruck (kurzer Druck, langer Druck und loslassen der Taste) enthält.

bmw_navidisplay.jpg

Abbildung 1.6: Bordmonitor mit aktiver Radioanzeige (MP3 Daten werden angezeigt)

 

Der Bordmonitor besteht aus den Bordmonitortasten die mit der Sendeadresse 48 Hex und 49 Hex die Tastencodes senden. Außerdem befinden sich ein TFT-Display und das Kassettenlaufwerk im Gehäuse des Monitors. Das TFT-Display wird direkt vom Navigationsrechner mit einem RGB Videosignal gespeist und dient somit nur als Monitor. Die Steuerung des Kassentenlaufwerks ist über den I-Bus (des Bordmonitors) relaisiert. Die Audioleitung des Laufwerks ist direkt mit dem Radio verbunden



Codes der Bormonitortasten (Adresse 0F)

Nachrichten zum Radio:     Adresse 68 Hex

Format der Nachricht:

<0F 04 68> <Tastencode> <XOR>

Taste

Druck

<1s

Druck>1s

Druck

aus

Taste

Druck

Kurz

Druck Lang

Taste

aus

<> 

48 14

48 54

48 94

Eject

48 24

48 64

48 A4

1

48 11

48 51

48 91

2

 

48 01

 

48 41

48 81

3

48 12

 

48 52

48 92

4

 

48 02

 

48 42

48 82

5

48 13

48 53

48 93

 

6

 

48 03

48 43

48 83

TP

 

48 32

 

48 72

48 B2

 

RDS

 

48 22

48 62

48 A2

FM

 

48 31

48 71

48 B1

AM

 

48 21

48 61

48 A1

Info

 

48 07*

48 47*

48 87*

MODE

 

48 23

48 63

48 A3

TONE

 

48 04

48 44

48 84

SELECT

 

48 20

48 60

48 A0

(Titel zurück)

48 10

48 50

48 90

(Titel vor)

48 00

48 40

48 80

(Radio Menü)

48 30

48 70

48 B0

 * Nachricht zu "FF" statt Radio "68"

 

Nachrichten zum Navigationsrechner: Adresse 3B Hex

Format der Nachricht:

<0F 04 3B> <Drehknopfcode> <XOR>

48 05     Druck                     48 45     Druck > 1s            48 85     Druck aus

49 0n     Drehen links          49 8n     Drehen rechts

n ist zwischen 1 und 9. Der Wert ändert sich je nach Drehgeschwindigkeit.

 

Allgemeine Nachrichten:     Adresse FF Hex

Format der Nachricht:

<0F 04 FF> <Tastencode> <XOR>

Taste ‘Telefon’

48 08     Druck                     48 48     Druck > 1s            48 88     Druck aus

 

Taste ‘Standheizung / Uhr’ 

48 07     Druck                     48 47     Druck > 1s            48 87     Druck aus  

 

Taste ‘MENÜ’

48 34     Druck                     48 74     Druck > 1s            48 B4     Druck aus

 

Tastencodes der Lenkradtasten (Adresse 50)

 

BMW_EMBLEM_STEERING_WHEEL_INSTALLED.jpg

Abbildung 1.7: Lenkradtasten

 

Nachrichten zum Radio:     Adresse 68 Hex 

Format der Nachricht:

<50 04 68> <Tastencode> <XOR>

Taste "-" (Lautstärke +)

32 10    

 

Taste "+" (Lautstärke +-)

32 11    

 

Button ">" (nächster Titel)

3B 01     Druck                     3B 21     Druck aus

 

Button "<" (vorheriger Titel)

3B 08     Druck                     3B 28     Druck aus

 

Nachrichten zum Telefon:     Adresse C8 Hex

Format der Nachricht:

<50 04 C8> <Tastencode> <XOR>

 

Taste ‘Wählen’

3B 80     Druck                     3B 90     Druck > 1s            3B A0     Druck aus

 

Taste "R/T"

3B 40     Druck

 

Nachrichten zur Sprachsteuerung (SES / ULF):     Adresse B0 Hex

Das Aktivieren der SES geschiet durch halten der Taste 'Wählen'

<50 04 B0> 3B 80 5F

Hinweis: bei MFL ab Mj.1999 wir die SES automatisch erkannt und der oben genannte Code beim Halten der Hörertaste abgegeben. Die älteren MFL können dies nicht! Somit kann mit diesen die SES nicht direkt aktiviert werden.



Visualisierung von Nachrichten in der Instrumentenkombination

Die Textzeile der Instrumentenkombination kann über den I-Bus beschrieben werden. Eventuell bereits angezeigte Nachrichten, vom Bordcomputer zum Beispiel, werden dabei ausgeblendet. Die Anzeige erfolgt nach Übertragung der Nachricht für ca. 10s. Nach dieser Zeit wechselt die Anzeige wieder zu dem vorher angezeigten Text oder schaltet sich aus wenn dies der vorherige Zustand der Anzeige war.

 

bmw_ike.jpg

Abbildung 1.8: Das Bild zeigt die Instrumentenkombination. Es wird der Name des aktuell abgespielten Interpreten in der Textzeile angezeigt.

 

Beschreiben der Textzeile in der Instrumentenkombination:    Adresse 80 Hex

Format der Nachricht:

<68 17 80> 23 62 30  <Option>  <Text in ASCII Hex> <XOR>

Hinweis: Es müssen immer alle Zeichen die in der Textzeile darstellbar sindgesendet werden da ansonsten die "alten" Zeichen nicht überschrieben werden. Somit ist die Nachrichtenlänge immer "17H".

Die Nachricht  kann mit folgenden Optionen angezeigt werden:

35 00     normale Anzeige

37 01     Text zwischen zwei roten Feilen anzeigen

37 03     Texte zwischen zwei roten, blinkenden Feilen anzeigen

37 04     Gong und Text zwischen zwei roten, blinkenden Feilen anzeigen

37 05     Gong und Text anzeigen

37 08     Gong  I  (ohne Anzeige einer Nachricht)

37 10     Gong  II  (ohne Anzeige einer Nachricht)


Visualisierung von Nachrichten im Bordmonitor

Die Bildausgabe des Navigationsrechners erfolgt auf dem TFT-Display des Bordmonitors. Die vom Navigationsrechner generierten Bildinformationen können nicht oder nur mit hohen Aufwand  verändert werden. Es ist zwar grundsätzlich möglich andere Videosignale auf dem Bordmonitor anzuzeigen indem die Videosignale auf eine externe Quelle umgeschaltet werden. Allerdings ist hier entweder ein Videoumschalter notwendig oder das Videosignal müsste über den Eingang der Rückfahrkamera in das Videomodul eingespeist werden. Letzteres hätte eine schlechte Bildqualität zur Folge da der Kameraeingang nur kompatibel zu FBAS Videosignalen nach dem NTSC Videostandard ist. Des Weiteren wäre die Generierung eines entsprechenden Videosignals mit einem unverhältnismäßig hohen Aufwand verbunden.

Das Projekt wählt denselben Weg den das Radio zur Anzeige von Informationen verwendet. Im „Radio Anzeigemodus“ des Navigationssystems können einzelne Bereiche des angezeigten Bildes über den I-Bus vom Radio beschrieben werden. Im für das Projekt verwendeten Fahrzeug ist ein Navigationsrechner der 4. Generation (MK4) verbaut.  Dieser bietet den sogenannten „Split-Screen“ Modus. In diesem Anzeigemodus werden auf der rechten Bildschirmseite Navigationsdaten dargestellt. Auf der linken Bildschirmseite können entweder die Straßenkarte, Bordcomputerdaten oder die Radioanzeige dargestellt werden. Die Anzeige des Telefonmenüs und der Einstellungen werden grundsätzlich im Vollbildmodus dargestellt. Es ist auch möglich alles im Vollbildmodus darzustellen wenn eine entsprechende Einstellung vorgenommen wird. Die Anzeige des MP3-Players ist allerdings für den „Split-Screen“ Modus optimiert da dieser eine bessere Darstellung bietet da die beschreibbaren Felder untereinander liegen.

        

Abbildung 1.9: Gegenüberstellung „Splitt-Screen“ Modus (links) und Vollbildanzeige (rechts)

 

Auf den Bildern ist die Radioanzeige im CD-Wechsler Modus zu sehen. Alle über den Bus beschreibbaren Felder sind mit Texten beschrieben. Es ist zu beachten, dass sich die Anordnung der Felder in beiden Anzeigemodi unterscheidet. 

Die Inhalte der Felder bleiben bestehen solange sie überschrieben werden oder der Modus (hier CD-Wechsler Modus) verlassen wird. Dies gilt für jedes Zeichen eines Textfeldes. Wenn zum Beispiel der aktuelle Wert 8 Zeichen hat während der neu anzuzeigende Wert aus 5 Zeichen besteht ist die Differenz mit Leerzeichen aufzufüllen. Die Anzahl der darstellbaren Zeichen ist je nach Feld unterschiedlich. Dieses Verhalten kann dazu genutzt werden eigene Texte in die Felder zu schreiben.

Die Möglichkeit die sich aus diesem Verhalten bietet ist die Felder, nachdem das Radio Nachrichten zum Navigationsrechner gesendet und somit die Textfelder beschrieben hat, mit Daten des MP3-Players überschrieben. Somit können eigene Daten auf dem Bordmonitor ausgegeben werden.

Die Nachrichten an den Navigationsrechner werden vom Radio mit der Adresse 68 Hex gesendet. Der beschreibbare Teil (links im „Split-Screen“) ist ein Titel- und Indexbereich in  jeweils 6 Textfeldern unterteilt.


Abbildung 1.10: Beschreibbare Textfelder im Radioanzeigemodus des Bordmonitors


Beschreiben der Textfelder Navigationssystems im Radio bzw. CD-Wechsler Modus:  Adresse 3B Hex


Format der Nachricht für Titelfeld 0

<68 Länge 3B> 23 62 30 <Text in ASCII Hex> <XOR>

Format der Nachricht für Titelfelder T-1 bis T-6

<68 Länge 3B> A5 62 01 <Index des Textfeldes>  <Text in ASCII Hex> <XOR>

                Index ist 01 bis 06 für die Titelfelder 1 bis 6

               

Format der Nachricht für Indexfelder I-0 bis I-5 (MK2 Navigationssystem)

<68 Länge 3B> A5 62 00 <Index des Textfeldes>  <Text in ASCII Hex> <XOR>

Format der Nachricht für Indexfelder I-0 bis I-5 (MK3 und MK4 Navigationssystem mit Splitscreensoftware)

<68 Länge 3B> 21 60 00 <Index des Textfeldes>  <Text in ASCII Hex> <XOR>

Feld

Index

Feld

Index

0

40

5

45

1

41

6

46

2

42

7

47/07

(3)

(43)

(8)

(48)

(4)

(44)

(9)

(49)

Werte In Klammern sind nur im Vollbildmodus relevant

 

Zum Auffrischen der Indexfelder muss folgende Nachricht gesendet werden:

<68 06 3B> A5 60 01 00 91

 

Im Beschriebenen  Modus (Radio à CD-Wechsler) können über das Anwählen der Indexfelder mit dem Drehknopf des Bordmonitors  eine entsprechende Rückmeldung ausgegeben werden. Diese Rückmeldung wird an die Adresse des Radios gesendet.  Da mit originalem CD-Wechsler in den Indexfeldern die 6 CDs als Menü dargestellt werden ist es mit der oben genannten Funktion möglich diese über den Drehknopf auszuwählen. Diese Funktionalität kann für eine Steuerung über ein dynamisches Menü verwendet werden. Allerdings wurde in diesem Projekt auf diese Funktion verzichtet. Der Hauptgrund dafür ist der begrenzte Platz im Programmspeicher des verwendeten Mikrocontrollers. (à siehe Kapitel 4.2.3)

 

Format der Nachricht (Rückmeldung bei Anwahl der Indexfelder)

<3B 06 68>  23 62 30 <Index des Textfeldes> <XOR>

Index

Druck

Druck aus

Index

Druck

Druck aus

0

00

40

5

05

45

1

01 (CD 1)

41

6

06 (CD 4)

46

2

02 (CD 2)

42

7

07 (CD 5)

47

3

03 (CD 3)

43

8

08 (CD 6)

48

4

04

44

9

09

49

 

Bei Anwahl der Indexfelder 1-6 fordert das Radio als Reaktion mit einer Nachricht an die Adresse des CD-Wechslers einen CD-Wechsel. Diese Anfrage muss entsprechend beantwortet werden.

 

Kommunikation mit dem CD-Wechsler

Der CD-Wechsler kommuniziert hauptsächlich mit dem Radio. Nach Aktivierung des I-Busses, dies geschieht beim Öffnen des Fahrzeugs, beginnt der CD-Wechsler sich mit einer Anmeldenachricht dem System bekannt zu machen. Allein durch diese Nachricht wird der CD-Wechsler Modus im Radio allerdings nicht aktiviert. Dies geschieht nur wenn der CD-Wechsler auf die folgende Anfrage des Radios unverzüglich antwortet. Das Radio wiederholt diese Anfrage in einem Zyklus von ca. 10 Sekunden. Es müssen mindestens zwei Drittel dieser Anfragen beantwortet werden, wenn dies nicht erfolgt wird der CD-Wechsler Modus wieder deaktiviert. Bei einem Eindrahtbus wie dem I-Bus kann es, wenn ein anderes Steuergerät auf dem Bus Daten sendet, zu Verzögerungen kommen die eigene Nachricht abzusetzen. Außerdem ist nicht immer ausgeschlossen das Nachrichten fehlerhaft übermittelt werden. Die Antworten auf die Anfragen vom Radio müssen in der späteren Emulation aus den genannten Gründen zuverlässig beantwortet werden.

Nachrichten vom CD-Wechsler:    Adresse 18 Hex

 

Format der Anmeldenachricht:    Adresse FF Hex

<18 04 FF> 02 01 E0

Format der Antwort auf die Radioanfrage:    Adresse FF Hex

<18 04 FF> 02 00 E1

 

Nachrichten zum Radio:     Adresse 68 Hex

 

<18 0A 68> 39 00 02 00 3F 00 dd tt <XOR>   CD und Titel Status wenn CD-Wechsler nicht abspielt

<18 0A 68> 39 00 09 00 3F 00 dd tt <XOR>   CD und Titel Status wenn CD-Wechsler abspielt

<18 0A 68> 39 02 09 00 3F 00 dd tt <XOR>   Starte abspielen des Titels

<18 0A 68> 39 03 09 00 3F 00 dd tt <XOR>   CD Status Scan vorwärts

<18 0A 68> 39 04 09 00 3F 00 dd tt <XOR>   CD Status Scan rückwärts

<18 0A 68> 39 07 09 00 3F 00 dd tt <XOR>   Titelende

<18 0A 68> 39 08 09 00 3F 00 dd tt <XOR>  CD Wechsel

- dd ist die CD-Nummer (zwischen 01 und 06).

- tt ist die Titelnummer



Z4 / X3 Monitorsteuerung


Nachrichten zum Monitor:  Adresse BF Hex

System aufwecken

<80 04 BF> 11 01 2B

TFT einschalten / Monitor ausfahren

<3B 06 F0> 4F 11 11 81 03

Lebenszeichen (muß alle 8-10 Sekunden an den Monitor gesendet werden)

<3B 04 46> 01 00 78



Steuerung des 16:9 Widescreen Bordmonitor


Nachrichten zur Änderung des Anzeigemodus im Bordmonitor: Adresse F0 Hex (Sender ED Hex)

<ED 05 F0> 4F 11 <Option> <XOR>

Optionen

31 Setze 16:9/Zoom 60Hz (Navianzeige)
32
Setze 16:9/Zoom 50Hz (TV Mode)

11 Setze 16:9 60Hz (Navianzeige)
12 Setze 16:9 50Hz (TV Mode)

01 Setze 4:3 60Hz (Navianzeige)
02 Setze 4:3 50Hz (TV Mode)



Ansteuerung der Karosserieelektronik


Nachrichten zu den Steuergeräten für die Baureihe E39:  Adresse 00 Hex (Sender 3F Hex / DIS)

<3F 05 00> 0C 00 44 <XOR> Fenster Fahrerseite hinten schließen
<3F 05 00> 0C 00 45 <XOR>
Fenster Fahrerseite hinten öffnen
<3F 05 00> 0C 00 46 <XOR> Fenster Beifahrerseite hinten schließen
<3F 05 00> 0C 00 47 <XOR>
Fenster Beifahrerseite hinten öffnen
<3F 05 00> 0C 00 65 <XOR>
alle Fenster öffnen
<3F 05 00> 0C 00 66 <XOR>
Schiebedach öffnen
<3F 05 00> 0C 00 0B <XOR>
Zentralverriegelung öffen/schließen
<3F 05 00> 0C 00 40 <XOR>
Kofferraum öffnen
<3F 05 00> 0C 00 00 <XOR>
Fahrersitz nach vorne verschieben
<3F 05 00> 0C 00 01 <XOR>
Fahrersitz nach hinten verschieben
<3F 06 00> 0C 01 31 01 <XOR>
Spiegel Fahrerseite einklappen
<3F 06 00> 0C 01 30 01 <XOR>
Spiegel Fahrerseite ausklappen
<3F 06 00> 0C 02 31 01 <XOR>
Spiegel Beifahrerseite einklappen
<3F 06 00> 0C 02 30 01 <XOR>
Spiegel Beifahrerseite ausklappen



Sonstige I-Bus Codes (Telefon, LCM, Licht, IKE, Bordcomputer, Navigation, Kassettenlaufwerk)

Quelle Ziel Nachrichtenname Nachricht (HEX) Beispiel Bemerkung
??? LCM Schlüssel eingesteckt 44 05 bf 74 04 xx chk   xx ist die Schlüsselnummer
??? LCM Schlüssel entnommen 44 05 bf 74 00 ff chk   Nachricht kommt wenn der Schlüssel entnommen wird
ALL LCM Lichtansteuerung 00 04 bf 76 xx chk xx ist eine Bitmaske wie folgt 7 6 5 4 3 2 1 0 Bit 1 = Warnblinker, Bit 2 = Abblendlicht, Bit 3 = Aufblenden. Die Bits können kombiniert werden. z.B. Abblendlicht und Warnblinker = 0 0 0 0 0 1 1 0 = $06 (hex)
BMB RAD Kassette Fehler f0 05 68 4b 06 f0 chk   Fehler beim Kassettenlaufwerk
BMB RAD Abspielen Kassette 2 f0 05 68 4b 06 12 chk   Abspielen Kassette Seite 1 (Antwort vom Kassettenlaufwerk um das Radio in den Kassettenmodus zu schalten)
BMB RAD Abspielen Kassette 2 f0 05 68 4b 06 11 chk   Abspielen Kassette Seite 2 (Antwort vom Kassettenlaufwerk um das Radio in den Kassettenmodus zu schalten)
BMB RAD Keine Kassette f0 04 68 4b 05 chk   Antwort vom Kassettenlaufwerk das keine Kassette eingelegt ist. (Nach dem Auswurf der Kassette oder dem umschalten auf Kassette)
BMB RAD Kassettenlaufwerk- schneller Vorlauf f0 05 68 4b 06 51 chk   Antwort vom Kassettenlaufwerk während des schnellen Vorlauf.
BMB RAD Kassettenlaufwerk- schneller Rücklauf f0 05 68 4b 06 61 chk   Antwort vom Kassettenlaufwerk während des schnellen Vorlauf.
BMB RAD Dolby f0 05 68 b4 06 xx chk   xx = 81 = Dolby aus, xx = 82 = Dolby B, xx = 84 = Dolby C
IKE OBC Ausgabe vom Timer 80 0e e7 24 0e 00 xx xx xx xx xx xx xx xx xx chk   Ausgabe des Timer als Klartext. xx ist der Text.
IKE OBC Ausgabe der Stopuhr 80 0e e7 24 1a 00 xx xx xx xx xx xx xx xx xx chk   Ausgabe der Stopuhr, wird nur gesendet wenn die Stopuhr vorher angefordert und gestartet wurde xx ist die Zeit in Klartext (xx ist der Text)
IKE LCM Geschwindigkeit und Drehzahl 80 05 BF 18 xx yy chk   xx Geschwindigkeit /2 yy Drehzahl /100. Nachricht wird alle 2 Sekunden wiederholt.
LCM IKE Anforderung Kilometerstand BF 03 80 16 2A Die Kilometer sind in den Bytes 5-7 codiert (z.B. D0 A0 01);Berechnung wie folgt:km = Byte7 * 65536 + Byte6 * 256 + Byte 5 Ohne die Anforderung dieser Kilometeranzeige kommt die Nachricht selten (Abstand von mehreren Minuten)
MID OBC Telefon LED c8 04 e7 2b xx chk xx ist eine Bitmaske 7 6 5 4 3 2 1 0 Bit 0 = rot, Bit 1 = rot+blinken, Bit 2 = orange, Bit 3 = orange+blinken, Bit 4 = grün, Bit 5 = grün+blinken
NAV IKE Stoppe Timer 3b 05 80 41 0e 08 chk   Stoppe den Timer.
NAV IKE Timer anfordern 3b 05 80 41 1a 01 chk   Stopuhr/Timerstand angefordern wenn der Timer läuft.
NAV IKE Standheizung 3b 04 80 41 xx chk   Standheizung steuern: xx = 11 = AUS, xx = 12 = EIN
NAV IKE Lösche Durchschnitt. 3b 05 80 41 0a 10 chk   Durchschnittsgeschwindigkeit auf 0 setzen.
NAV IKE Lösche Verbrauchszähler 3b 05 80 41 xx 10 chk xx = 04 Verbrauchszähler 1 auf 0\ xx = 05 Verbrauchszähler 2 auf 0 Verbrauchszähler auf 0 setzen.
NAV IKE Abstand zum Ziel 3b 06 80 40 07 00 xx chk 3b 06 80 40 07 00 45 chk - Setze Abstand auf 69km Trage den Abstand zum Ziel in den Bordcomputer ein (zur berechnung der Ankunftszeit). xx ist die Entfernung
NAV IKE Setze Geschwindigkeitslimit 3b 06 80 40 09 00 xx chk 3b 06 80 40 09 00 32 chk Geschwindigkeitslimit = 50 km/h Setze Geschwindigkeitslimit und aktiviere es. xx ist die Geschwindigkeit.
NAV IKE Setze Geschwindigkeitslimit auf Tacho. 3b 05 80 41 09 20 chk   Setze Geschwindigkeitslimit auf die aktuell gefarene und aktiviere das Limit.
NAV IKE Setze Geschwindigkeitslimit aus 3b 05 80 41 09 08 chk   Setze Geschwindigkeitslimit aus. Die vorher eingestellte Geschwindigkeit bleibt gespeichert.
NAV IKE Starte den Timer 3b 05 80 41 0e 04 chk   Starte die Stopuhr / Timer.
TEL MFL Telefonstatus C8 04 50 2C xx chk / xx ist eine Bitmaske wie folgt 7 6 5 4 3 2 1 0 Bit6 0 = Telefonadaper nicht eingebaut, 1 = Telefonadaper eingebaut, Beispiel 1: C8 04 E7 2C 10 17 Siehe byte 5 Hex 10 ist Binär 0001 0000 das bedeutet: Freisprechen aus\, Telfon aus Bit0 0 = Freisprechen aus, 1 = Freisprechen ein, Bit1 0 = Telefonmenü auf Bordmonitor bzw. MID / 1 = aktives Gespräch, Bit2 1 = eingehender Anruf, Bit3 1 = Telefondisplay gesperrt, Bit4 0 = Telefon aus / 1 = Telefon ein, Bit5 0 = Telefon inaktiv / 1 = Telefon aktiv

(chk - XOR Prüfsumme)




Neu! Über dieses Thema kann im Forum geschrieben werden. Bei Fragen und Problemen bitte ich im Forum Hilfe zu suchen.

© 2007 Alexander Brünnert (besonderer Dank an HackTheIbus - yahoo Group)