Introduction
The I-BUS, based on ISO 9141 and K-Bus protocols, is a communication bus used in BMW vehicles to handle interfacing between various multimedia systems such as radio, CD, navigation, and telephone systems. It is particularly utilized for steering wheel controls for these systems. The I-BUS is prevalent in models including the E39 5-series, where it facilitates communication between different electronic modules within the vehicle.
This protocol allows for the integration and control of multiple devices using a single communication line, making it an efficient system for managing in-car entertainment and information systems. The I-BUS is particularly notable for its use in the CDC CD Changer, which uses a specific protocol for emulation, allowing it to interface seamlessly with other components of the vehicle's multimedia system.
Physical Layer
The I-BUS operates on a single wire bus system, characterized by a white/red/yellow wire available at various connectors within the BMW vehicles. This includes locations such as the CD changer connector in the rear and the phone connector in the center console.
The physical layer of the I-BUS is an open collector setup, which is pulled high (+12V) by the bus and pulled low by the device (talker) transmitting data. This setup means the idle voltage on the wire is +12V, similar to RS232 signaling. The open collector topology allows multiple devices to communicate on the same line without interference, as the bus is only driven low by the active talker.
Communication Parameters
The I-BUS utilizes serial communication with specific parameters: a baud rate of 9600 bps, 8 data bits, Even parity, and 1 stop bit. This configuration ensures reliable data transmission across the bus, allowing for efficient communication between devices.
Devices on the I-BUS can begin transmission when the bus is idle. However, if a device detects that the line is pulled low without its intervention, it must abort transmission to prevent data collision. This mechanism is crucial for maintaining data integrity and preventing bus contention.
Packet Structure
An I-BUS packet consists of several components: the Source Device ID, Length, Destination Device ID, Data, and XOR Checksum. This structure allows for organized and error-checked communication between devices.
The packet begins with the Source Device ID, indicating the sender. This is followed by the Length byte, representing the number of bytes in the message, excluding the Source ID and Length itself. The Destination Device ID specifies the intended recipient, while the Data section contains the actual message. Finally, the XOR Checksum ensures message integrity by allowing the receiver to verify the transmitted data.
Device ID Table
| ID | Device Name |
|---|---|
| 0x00 | Broadcast |
| 0x18 | CDC CD-Player |
| 0x3B | NAV Navigation/Videomodule |
| 0x43 | MenuScreen |
| 0x50 | MFL Multi Functional Steering Wheel Buttons |
| 0x60 | PDC Park Distance Control |
| 0x68 | RAD Radio |
| 0x6A | DSP Digital Sound Processor |
| 0x80 | IKE Instrument Control Electronics |
| 0xBF | LCM Light Control Module |
| 0xC0 | MID Multi-Information Display Buttons |
| 0xC8 | TEL Telephone |
| 0xD0 | Navigation Location |
| 0xE7 | OBC TextBar |
| 0xED | Lights, Wipers, Seat Memory |
| 0xF0 | BMB Board Monitor Buttons |
| 0xFF | Broadcast |
Collision Detection & Arbitration
Collision detection on the I-BUS is managed by the Instrument Control Electronics (IKE), which acts as a gateway for the bus. When a device attempts to communicate, it listens for a low signal on the bus. If detected, the device stops its transmission, preventing data collision.
This arbitration method ensures that only one device communicates at a time, maintaining the integrity and efficiency of the bus communication. It is crucial for preventing data loss and ensuring that messages are transmitted accurately between devices.
Hardware Interfacing
Interfacing with the I-BUS requires specific hardware components to convert the bus signals into a format that can be read by computers or microcontrollers. Commonly used components include the Maxim MAX232A for RS232 level conversion and various K-Bus interface chips such as the Melexis TH8080 and TH3122.
These components are essential for building adapters that allow hobbyists and engineers to interface with the I-BUS, enabling them to capture and analyze bus data for various applications, such as custom multimedia system integrations or diagnostics.
Software Tools
Several software tools are available for analyzing I-BUS communications. The I-BUS Analyser Software is a popular choice, allowing users to capture and decode messages in real time. It supports features like filtering by source or destination device IDs and provides a clear text representation of messages.
Tools like NavCoder also facilitate the connection of the I-BUS to a computer, enabling users to monitor and send messages through interfaces like the Resler's I-Bus interface or a USB to TTL serial converter.
Practical Example
A practical example of an I-BUS message is one that displays "CD 7-04" on the Radio MID Display. The packet for this message is structured as follows:
68 17 ff 23 c0 30 07 20 20 20 20 20 08 43 44 20 37 2d 30 34 20 20 20 20 45In this packet, 68 is the Source ID for the radio, 17 is the length, and ff is the Destination ID for broadcast. The data bytes contain the ASCII representation of "CD 7-04" and the XOR checksum 45 ensures message integrity. This example illustrates how data is formatted and transmitted over the I-BUS to control multimedia displays.