June 21, 2004 |
CMSC 391
|
Antilock brake systems were originally used in aircraft starting in
the early 1950’s. An automobile ABS was designed by Bosch in 19787.
In 1985 Mercedes Benz offered ABS as standard equipment on its S-class models.
In 1991 only about 18% of all new cars sold came equipped with antilock brakes2.
Now that number is over 90%3.
The purpose of ABS is to control vehicle braking when the driver presses
the brake pedal. By preventing the brakes from locking the wheels, the driver
is able to maintain control. By keeping brake pressure just below the point
of causing a wheel to lock up, ABS ensures that maximum braking power is used.
In order to do this the ABS must be able to monitor individual wheel speed,
compare these speeds with each other, be able to control the braking for each
wheel and relay this information to other electronic systems within the vehicle.
In other words, this system must have I/O, analog to digital capability, memory,
the ability to perform comparisons and calculations quickly and must be small
in size. This is a perfect job for a microcontroller.
There are three basic parts of an ABS: wheel speed sensors, electrically
controlled pressure modulating valves and the microcontroller itself1.
Wheel sensors generate an analog signal whose frequency is proportional to
the angular speed of the wheel. The microcontroller converts this into a digital
signal, records the time in between falling or rising edges and calculates
the actual wheel speed. It then determines if the wheel speed is increasing
or decreasing by comparing this new data to past history data held in memory.
It also must compare this to the speeds of the other wheels to determine if
one or more of the wheels has begun to lock up5.
If this occurs, the program in the controller must send a signal to
the valve for that wheel to reduce the hydraulic pressure to the brakes. By
continuing to reduce this pressure until the wheel grips the road, driver
control is re-established and overall braking power is increased. The microcontroller
determines when to stop decreasing the pressure when the wheel speed has matched
the remaining wheels. There are four possible outputs that the microcontroller
can send to each valve5:
Off- the vehicle is not braking
Hold- the vehicle is braking but none of the
wheels have locked
Increase- the wheels is moving faster than other non
locked wheels
Decrease- the wheel is locked
When the controller decreases the hydraulic
pressure to one wheel it must then determine if pressure can be increased
as a result of a change in real world conditions or because too much pressure
had been released. It then must signal the modulator to increase brake pressure.
This simulates the driver pumping the brakes in a non-ABS vehicle, though
at a much faster rate and in a more accurate manner. Not only must the controller
communicate with the sensors and modulators but also with other electronic
systems like those that control the instrument panel.
The microcontroller must be able to
execute every possible sequence of its code including IO commands within a
timeframe the vehicle manufacturer determines is necessary for the ABS to
perform its function. If the ABS controller requires too much time to monitor
and adjust the vehicles brakes then the system is worse than not having ABS
at all because it is still interfering with the braking system. Imagine avoiding
an accident only to have the ABS initiate braking on one or more wheels afterwards,
when it is not needed nor expected. This timeframe is critical. The microcontroller
clock must be fast enough and it must have enough system memory to execute
the code, send and receive I/O and communicate with other systems in the specified
time. Otherwise the system fails.
As an example, Saturn has used the Motorola
MC68HC11 microcontroller in some of its systems6. The highest clock
speed for this controller is 2 MHz. That equates to 500ns/cycle. If the system
is given a critical time limit of 1ms then the controller has 2000 cycles
to execute the longest sequence of its code. That may sound like a lot, but
consider if the code uses ten division statements with each taking about 40
cycles5. This results in
400 cycles used just for the division. Consider that it must also execute
sending and receiving I/O, memory searches and comparisons. Then it becomes
obvious that the code used must be very lean indeed!
The application of microcontrollers
in antilock braking systems is a step forward in vehicle safety. However,
it must meet the necessary hardware and software requirements to execute its
code and meet the critical time criterion. Failure to comply with this condition
is the same as a complete system failure if not worse.
Bibliography
1
“Technical Guidelines for Antilock Braking Systems”,
http://www.fmcsa.dot.gov/pdfs/fhwa_abs.pdf
2 “The History of ABS”,
http://www.culpepperlaw.com/abs.htm
3 “Development of Brakes after 1960”,
http://www.automobileindia.com/Timeline/time11.html
4 “Antilock Braking Systems”,
http://ewww.motorola.com/webapp/sps/site/application.jsp?nodeId=02WcbfWKy507jSKy5P
5
“Microcontroller Implementation Consideration”, http://scholar.lib.vt.edu/theses/available/etd5440202339731121/unrestricted/CHAP6_DOC.pdf
6 Mechatronics Laboratory, http://www.me.gatech.edu/mechatronics_lab/
7 “Electronic Stability Program”, http://encyclopedia.thefreedictionary.com/Electronic%20Stability%20Program