Introduction
The I-BUS is a communication protocol used in BMW vehicles to facilitate communication between various electronic components. It is primarily used in models such as the E38, E39, and E31, among others. The I-BUS controls a range of systems including navigation, audio, and the integrated telephone system, which is the focus of this article. The telephone system in the BMW E38 is integrated via the I-BUS, allowing for seamless interaction with the vehicle's multimedia interface.
In the BMW E38, the telephone system originally utilized a Nokia module, which communicated with the vehicle's systems through the I-BUS. This setup allowed users to access telephone functions through the vehicle's built-in controls, such as the Multi-Functional Steering Wheel (MFL) and the Board Monitor Buttons (BMBT). The integration also supported features like the telephone directory and call history, which could be accessed through the vehicle's display.
Physical Layer
The physical layer of the I-BUS in BMW vehicles is characterized by its open collector topology. This means that the bus line is pulled up to a voltage level, typically 12 volts, using a resistor. When a device on the bus wants to transmit data, it pulls the bus line to ground, creating a low voltage state that represents a logical '0'. In the absence of transmission, the bus remains at the high voltage state, representing a logical '1'.
The wiring for the I-BUS is typically a single wire, often colored white with a yellow stripe. This wire is responsible for both transmitting and receiving data, making it a bidirectional communication line. The open collector design allows multiple devices to share the bus without conflict, as devices only pull the line low when transmitting.
Communication Parameters
The I-BUS operates with specific communication parameters that ensure reliable data transmission. The baud rate for the I-BUS is set at 9600 baud, which is a standard speed for automotive communication systems. The data format consists of 8 data bits, even parity, and 1 stop bit. These settings are crucial for maintaining synchronization between devices on the bus.
Packet timing is another important aspect of I-BUS communication. Each message on the bus is structured in a way that allows devices to recognize and process them efficiently. The timing between packets must be carefully managed to prevent collisions and ensure that all devices can communicate effectively.
Packet Structure
The packet structure of the I-BUS is designed to convey information between devices in a standardized format. Each packet consists of several components: the Source Device ID, Length, Destination Device ID, Data, and an XOR Checksum. The Source Device ID identifies the sender, while the Destination Device ID specifies the intended recipient.
For example, a typical packet might look like this: 3B 05 FF 20 02 0C EF. Here, 3B is the Source Device ID for the navigation module, 05 is the length of the packet excluding itself and the Source ID, FF is a broadcast address, and 20 02 0C is the data being transmitted. The final byte, EF, is the XOR Checksum, which ensures data integrity.
Device ID Table
Each device on the I-BUS has a unique identifier, allowing for targeted communication. The following table includes all known device IDs relevant to the E38:
| ID | Device Name |
|---|---|
| 00 | Broadcast |
| 18 | CDW - CDC CD-Player |
| 3B | NAV Navigation/Videomodule |
| 50 | MFL Multi Functional Steering Wheel Buttons |
| 68 | RAD Radio |
| 6A | DSP Digital Sound Processor |
| 80 | IKE Instrument Kombi Electronics |
| BB | TV Module |
| BF | LCM Light Control Module |
| C0 | MID Multi-Information Display Buttons |
| C8 | TEL Telephone |
| E7 | OBC TextBar |
Collision Detection & Arbitration
Collision detection and arbitration on the I-BUS are managed by the IKE (Instrument Kombi Electronics), which acts as a central hub for communication. The IKE monitors the bus for collisions, which occur when two devices attempt to transmit simultaneously. When a collision is detected, the IKE uses a priority-based system to determine which device has the right to transmit.
The priority is determined by the device ID, with lower numerical values having higher priority. This ensures that critical messages, such as those from the navigation or safety systems, are given precedence over less critical communications. The IKE's role in managing the bus is crucial for maintaining orderly communication and preventing data loss.
Hardware Interfacing
Interfacing with the I-BUS at the hardware level involves using specific components to translate the bus signals into a format that can be processed by microcontrollers or computers. Commonly used components include transceiver chips that handle the voltage level conversion and signal conditioning required for reliable communication.
These transceivers are responsible for interfacing the 12-volt I-BUS signals with the lower voltage levels used by microcontrollers, typically 5 volts or 3.3 volts. They also provide isolation and protection against voltage spikes, which are common in automotive environments.
Software Tools
Several software tools are available for analyzing and interacting with the I-BUS. These tools allow users to capture and decode bus messages, facilitating troubleshooting and development of custom integrations. Popular tools include INPA, NCS Expert, and WinKFP, which are part of the BMW Standard Tools suite.
These tools provide a graphical interface for monitoring bus traffic, sending custom messages, and configuring vehicle systems. They are essential for anyone working on I-BUS projects, as they offer insights into the communication patterns and allow for precise control over the bus interactions.
Practical Example
A practical example of an I-BUS message is the command to select the telephone from the main menu. This message is broadcast by the navigation module (GT) with the following structure: 3B 05 FF 20 02 0C EF. Each byte in this message serves a specific purpose:
3B: Source ID for the navigation module.05: Length of the packet, excluding the Source ID and Length byte.FF: Destination ID, indicating a broadcast to all devices.20: Command to select the telephone menu.02 0C: Additional data specific to the command.EF: XOR Checksum for data integrity.
This message structure allows the telephone system to be activated from the vehicle's main menu, demonstrating the integration of the telephone system with the I-BUS.