Design Article
Designing a Vehicle Instrument Panel ClusterA Case Study
Aneesh Mathai
10/29/2002 12:00 AM EST
![]() |
|
ABOUT THE AUTHOR
Aneesh Mathai is a Member of Technical Staff at
CG-Smith Software, Bangalore. He has worked on Real
Time Embedded Systems and Software for more than 5
years. Aneesh received his Bachelor of Technology in
Electronics Engineering from Cochin University of
Science and Technology. He is also a Member of IEEE.
|
||
The Instrument Panel Cluster (IPC), or Vehicle Dashboard, is one of the few devices with which the vehicle communicates to the driver. Devices such as a driver information center and heads-up display are considered subsystems or add-on devices to the IPC. Even though, from technology and complexity perspectives, the IPC is simpler than other modules, it is important to the driver, since it is one of the few modules the driver sees.
The IPC module takes signals from various sensors and communicates with almost all the other modules in the vehicle to get relevant information and status about the vehicle. The IPC processes data and provides information in an appropriate form to the driver.
- Analog speedometer display
- Analog tachometer display
- Analog fuel display
- Analog engine coolant temperature display
- LCD single-line season/trip odometer
- Nine discrete LED or bi-pin lamp telltales
- Driver information center (DIC)18*2 character dot-matrix display
- Mode and reset switches to control the DIC and trip stem for odometer.
This list shows a typical requirement specification of an instrument cluster for a medium-sophistication vehicle such as a car or truck. Advanced clusters will have a higher number of gauges, high-resolution displays, compass, and other display features. These clusters may even integrate features such as security, vehicle immobilization, and so on, which are normally handled by other modules, in the vehicle.
You cannot design the cluster system from the previous specification alone. You need information on the types of inputs to the IPC, which needs to be processed. All the displayed data may not be directly sensed by the IPC. Other modules will sense and process some of the data and will then send this data to the IPC through an in-vehicle communication protocol.
You can divide inputs to the instrument cluster into four broad types, with examples of each shown:
- Analog inputs (ignition voltage and coolant temperature)
- Discrete inputs (switches and washer fluid status)
- Digital pulses (Vehicle speed sensor output)
- Serial data (Information from other modules such as the fuel used, telltale status, and warning data).
- Four gauges
- Nine LED telltales
- Seven-segment LCD display (six digit)
- Dot-matrix display (18*2 character)
- Serial-communication module
- Analog/discrete/pulse inputs
- A microcontroller to process data and control the devices.
- 30 I/O lines that are pin addressable
- Analog-to-digital module with five A/D channels/pins
- An SPI/I2C module capable of driving five devices
- External/Internal Interrupt capability
- Two to four general-purpose timers.
Other than these functions, you may also consider other built-in functions for the microcontroller, such as a built-in vehicle communication module, stepper driver, or LCD driver. On average, the complete processor software will occupy 70 to 90 Kbytes of ROM, 3 to 4 Kbytes of RAM, and 100 to 200 bytes of EEPROM. The microcontroller you select must have enough on-chip memory. You use the EEPROM for data backup, so it is best to keep it outside the processor. EEPROM chips with 256 bytes, accessible through SPI/I2C, are available.
You next need to choose the processor type and clock frequency. The system can use either a 16- or 8-bit processor, depending on the complexity of the processing. We may have a tradeoff between bits and clock frequency. Optimum clock frequency to use is around 4 MHz for a 16-bit processor or 8 MHz for an 8-bit device.
After completing the detailed block diagram, we can design the electrical circuit. Details of this task are beyond the scope of this article.
10 ms
20 ms
200 ms
500 ms
1 second
You can design the operating system such that only two task combinations are occurring in one time slot. Table 1 shows a typical arrangement of the tasks in the RTOS (placing of a one-second task is not shown in this table. Assume the one-second task is in the 94th time slot).
Table 1: Typical arrangement of the tasks in the RTOS
From the Table 1 arrangement we will get task combinations such as:
Task Combinations
10 ms
10 ms + 20 ms
10 ms + 200 ms
10 ms + 500 ms
10 ms + 1 second
After deciding on the structure of the RTOS, we have to allocate our functions in the corresponding tasks. Care should be taken not to overflow the time slot. The 10 ms task should be made the minimum execution time so that there is enough room for other task combinations.
Following are the seven OSI layers:
- Application
- Presentation
- Session
- Transport
- Network
- Data Link
- Physical.
While considering in-vehicle communication protocols like J1850 or CAN, we may not exactly map to OSI layers. The generic communication-handler modules will usually be available. We have to make these modules compatible with the cluster software. Following is a discussion of the software layers normally used in vehicle communications. While designing the software, it is good practice to place each layer in a separate module.
- Device-Driver LayerThis software layer provides the
control necessary to manage data flow in and out of the
protocol device. The primary purpose of this layer is to
convert service requests to device-specific commands, and to
convert device-specific status information to a
device-independent format. The upper layers utilize this
layer to move byte streams to and from the protocol device
without needing to know what specific protocol device
implementation is present. In our case, we are using SPI to
communicate with the protocol device. We will use a separate
device driver for SPI communication, and will use the same
device-driver functions for communicating with the protocol
device.
- Message Loader/Unloader LayerThis software
layer is used to manage one specific message which is either
to be transmitted on or received from the link. From the
transmit perspective, this layer is used to construct a valid
message and pass the resulting byte sequence to the device
driver, one byte at a time. From the receive perspective,
this layer is responsible for constructing and buffering
valid messages from the sequence of bytes passed to the layer
from the device driver.
- Message-Manager LayerThis software layer is used
to manage the collection of messages utilized by the device.
From the transmit perspective, this layer is used to
determine which message is next to be transmitted on the
link, and to request from the message loader/unloader that
the message be transmitted. From the receive perspective,
this layer is responsible for processing received messages
passed to this layer from the message loader/unloader.
- Application LayerThis layer consists of software that generates the message transmission requests and utilizes received message transmissions. This layer is the ultimate source and destination of all message data. In our case, fuel messages, warning messages, and telltale messages, among others, are received through in-vehicle communication. The application layer will pass the data to the corresponding application modules for processing and taking actions dependent on the received data.
- Odometer Value Computation
Computes and updates the odometer by taking the pulse input from the vehicle speed sensor.
- Odometer Display
Converts odometer data to a displayable format.
- Telltales Display
Turns on the LEDs depending on the various status of the vehicle.
- Gauges
Process various parameters and convert them into a format that can drive the stepper motors.
- Stepper-Motor Interface
Drives the stepper motor by generating pulses to the stepper driver.
- Power Mode
Determines the power mode of the cluster by looking into the ignition switch status and power-mode message from other vehicle modules.
- Driver-Information-Center Functions
Processes various driver-information functions, including trip distance, average speed, fuel economy, fuel used, range distance, and outside air temperature, and converts the data into a displayable format. Many calculations and algorithms might be involved in this operation. It is good practice to have separate modules for each of these functions.
- Serial Peripheral Interface
Handles the SPI interface between the microcontroller and peripherals.
- Dot-Matrix LCD Driver
Sends various DIC parameters to the LCD display through SPI.
- Seven-Segment LCD Driver
Sends odometer data to the seven-segment LCD display through SPI.
- LED Display Driver
Telltale displays are illuminated by setting the corresponding bits and sending the bits to the LED driver through SPI.
- Dimming
Backlighting of LCD displays, gauge backlighting, and LED intensity are controlled by the PWM output from the microcontroller.
- Input/Output Processing
Reads various input ports and periodically sets the output ports.
- ADC Handling
Periodically converts all the ADC-channel data and stores the result.
- External EEPROM Handling
The external EEPROM is read and written through SPI. Putting data in a buffer and sending it bit-by-bit serially needs to be handled properly since an EEPROM write may take 3 to 10 ms. You can use separate modules for the EEPROM driver and EEPROM queue handling.




