Main Application

Start Up

Links from this page:

 

 

 

 

Updated 16 October  2008


Specifications
Overview
Functional Requirements
PC boot timing
Standbye
Power on and off
System Status

Hardware
IDE


Software
IBus com driver
The State Machine
IBus Congestion
Watchdog
Jumper config

 

Overview

The CPU always has its outputs, but its inputs can come from IO, IBus, or a combination. But never both on the same signal.

If IBus is used, the tacho and direction inputs are generated by the CPU and does not require those specific wires.

The PC can communicate with car thru IBus, but since the CPU is also listening to the same IBus, messages can be sent from PC to CPU to configure it and test it.

If IBus is not used in car, the com lines are connected (dashed line) so that the PC can still talk to the CPU, and get input events for instance.

There is only one USB connector, but it has got two com ports. One for the GPS data, and one for the IBus/CPU communication.

I've started to work on the configuration and test application. 480x800 :-)

At installation it is a good strategy to just connect outputs first, check the "keep LCD on",  and see that it works as expected simulating the input events. Then connect IBus and inputs that you will use and see if they are detected.

In this mode it is easy to measure proper timing too.

Functional Requirements

The PC will boot when...
- ignition is turned on 
- opening the car with remote key
- rearview camera is turned on manually
- system is turned on manually

This circuit detects those events and depending on the system was on or off last time car was driven, the screen and sound system is turned on when boot is completed.

If the system is "turned off" during driving it will only make screen and amp go inactive. It will never turn the PC off as long as the ignition is on.

When ignition is turned off  the screen and amp goes inactive but the PC remains on for another 30s (default. All timings are configurable from version 2.0). If the left knob is pressed or rearview camera is turned on within this time the screen and amp becomes active again and the pc does not go into hibernation. 

In this position the steering wheel buttons have no effect (design by BMW). The PC remains on for 30 minutes, until voltage is too low or the knob is pressed again.

To be able to turn on VGA mode it can never exit from rearview camera. It has to enter and exit camera mode via VGA mode. This very much complicates the sw design.

All in all the 8051 pcb will handle this:

Rear: The rear view camera enable (both signal to LCD and power to the camera itself)

LCD. Will turn LCD panel and power amplifier on.

USB. The enable signal to the 5V DC/DC converters for the USB hubs. Controlled from presence of USB power coming in.

PC On-Off. Can be pulsed (configurable). It will actually listen to IBus traffic at all times. For this reason this pcb is designed for extremely low power consumption.

The Red and Yellow LED's. It sends the IBus messages for turning them on and off

PC Boot timing

All timing is configurable apart from the delay after "ignition". 3s after the pc starts to boot. This idle time is there to let the power supply stabilize.

Timing for boot and shutdown is deadlines. When PC is up, it is supposed to send an ibus message to say so, and then lcd goes on, or at shutdown when the voltage on the cpu fan is monitored so that power is cut to the PC when fan stops.

Standbye

Standbye mode can be enabled. When enabled the power is only cut to the PC after 0x7000 [s] in standbye. That is about 8 hours.

Power on and off

Since it takes close to a minute to start the system, the PC is always on during driving. If the system is turned off (as the driver might think) it is really just the LCD and the power amp that is turned off.

The PC is turned on by any IBus activity, i.e. opening the car with the remote key, or pushing the power on button. If the ignition isn't turned on, the PC will go off after 30[min] (configurable).

When ignition is off the PC will go off in 30[s] (configurable) if not power-on button is pressed.

The monitor is turned on 5s after power-on and there is also a 5s delay when turned off. This is a delay internal to the monitor and not under my control.

System Status

On the top right corner of the Bordmonitor is three LED's that indicates system status.

    

None System is on or off
Yellow flash   System is booting
Red  System is standby. PC is on, but no LCD or Audio. In this state the reverse camera will be turned on during reverse.
Red flash  During the 30s in state Delay_off before state shutdown is entered
Yellow System is shutting down

(Green LED will indicate phone connected)

The State machine

The complexity of this unit and the logic so vast that I've decided to split it into 3 state machines. Most complicated single task is that to be able to turn on VGA mode it can never exit from rearview camera. It has to enter and exit camera mode via VGA mode. I also wanted the rearview camera to be operational withor without running PC.

System State Machine - System state is if PC is booting, shutting down, on or off and if it is on with timeout because ignition is off. 

LCD State Machine - This state machine controls the LCD enable of the monitor. It is a service to System State and RearView State. 

RearView Camera State Machine - Independent on System State Machine (pc on or off) the rearview camera can be on or off. This state machine will manage this.