more musings on EFI controllers
tom cloud
cloud at hagar.ph.utexas.edu
Tue Aug 6 16:01:13 GMT 1996
The following is an excerpt of a missive I just sent to Michael
Kasimirsky and is a continuation of my rambling thoughts on EFI
control.
>
> [ snip ]
>
>several ideas on overall logic of the system. The big question I have is
>on the electronics to control the system. I'd like to use a
>microcontroller of some sort; probably a Motorola of some sort.
>
I am in the research mode myself. The Motorola 68HC11 is a super controller,
and is apparently the backbone of some commercial EFI controllers,
but I am not sure what is really needed for EFI. I'll tell you,
if cost is not a major factor, I would check out the aftermarket
genre -- esp. Holley and Accel. Holley tech. line: 502-781-9741
(9:30 - 11:30 & 12:30 - 3:30 -- I think CST). Maybe they would
help you and sell you one of their controllers only (since I don't
think they make throttle bodies for motorcycles). [Trust me, if
you have no experience writing assembly, C, FORTH or some such, you
don't know what you're asking for trying to develop a complete
hardware and software system -- either one alone is a major under-
taking. So, you can realistically either choose to ride it or spend
the next few years working on it.] For me, I honestly think that a
reasonable alternative is to build an analog controller.
The reasons for using digital logic and microprocessors: they're
"neat", well defined, reproducible. They appeal to our egos because
we can actually "control" something. Analog tends to be "fuzzy",
irritating and often is the controller rather than the controllee.
But, it has the advantage of being faster to develop, easier to
implement (depends on the complexity of the system), cheaper,
and easier to "twiddle". I think that if one evaluates his priorities
and finds performance at the top, with economy and emissions some-
where further down the list (?), then an analog system becomes very
practical. If you'll read my latest posting, you'll see that I use
a Holley aftermarket EFI throttle body system that is analog (well,
the timing for the injection pulse, etc. is probably a digital
function) and uses the minimum of sensors: namely TPS and temperature.
This system works very well (it costs about $600 for everything) when
you consider that their next more sophisticated (read digital)
system costs double that.
So, with some linear circuits (i.e. analog) measuring TPS and RPM
one should be able to calculate an injector pulse width to give an
effective fuel mixture to operate. Keep in mind that TPS represents
the amount of opening of a butterfly valve, which is a non-linear
function of area and therefore air delivery (correcting this non-
linearity is probably "easier" with a micro-controller). With a simple
differentiator, a temporary extra shot of fuel can be added for a
positive delta of TPS (indicating acceleration).
Now, if you're interested, here's my very preliminary thoughts on how
to achieve this (hope you have someone with a little electronic
circuit know-how available). Take a linear ramp generator (I-constant
circuit charging a cap) and reset it with each ignition pulse. This
ties it to RPM. The rate of rise of this ramp is controlled by the
voltage (or current) at the input to the op-amp. The injector is opened
by the ignition pulse (set a FF) and closed (reset the FF) by the
ramp crossing some pre-determined level (a comparator), so the amount
of fuel given the engine is already greater for higher RPM, since
the injector open time is constant. The controllable points are
the V or I input to the op-amp and the level to the comparator that
resets the FF.
Now, take TPS and process it (can be a linear function, logarithmic, or
whatever) and feed it into the ramp generator, changing the slope of the
ramp -- steeper ramp = less on time of injector, and vice-versa. Also take
TPS and couple it through a capacitor (differentiate it), process this
signal (read adjust the gain and time constant) and sum it in also.
This gives the acceleration / deceleration adjustments.
The signal from temp. would also be summed in (though you'd want to
figure out how to remove it once operating temp. was achieved and at
higher RPM).
Now, the advantage of this system is that you could put potentiometers
allowing adjustment of how much each of these factors contributed and
they could be placed where you could easily access them so real-time
adjustments could be made -- and wouldn't require a computer in your
lap, much less re-programming and assembling or compiling.
But how, exactly, to do this? I haven't worked on it. I am fairly
certain though that that's how the Holley system works.
The complexity increases exponentially (same with a digital system)
as more control is attempted (read more sensors and therefore
more calculations). Adding EGO feedback would be done in the same
manner as before (remember, this is my speculation only, not gospel).
The signal would be processed and summed into the ramp generator, but
now there's a serious problem -- the EGO output is extremely non-
linear, and that becomes a B-I-G problem with analog. (With micro-
controller, one can store values in a lookup table for curve
correction.)
Calculating A/F ratio (i.e. the rate of rise of the ramp generator /
injector pulse width versus the air entering the system) was guessed
at and an acceptable compromise set with the above-mentioned system
(this is called speed density -- where the A/F ratio is assumed from
the position of the throttle (TPS) and the speed of the engine (RPM)).
Now, should one want to get more exact (and I'm not sure why you'd
want to, unless you were trying to maintain tight emission controls)
one would attempt to determine A/F more precisely. Enter MAF, etc.
As in my previous post, it would seem to me that the air charge could
be determined just as well -- maybe even better -- by using baro-
metric pressure, manifold pressure (establishing a pressure diff.),
and throttle position (aperture size, though this is a non-linear
function unless throttle slides are used).
Well, it seems to me that the point of diminishing returns is rapidly
found. But, if the objective is to go fast, it is much less complicated.
If consistency is desired -- more complicated. Stoichiometry --
even more complicated. So, it seems to me that the choice is
relatively easy: go fast, with varying climatic conditions and
altitudes, with some acceptable consistency (for me, I'd like to
not have to adjust the system, except maybe with the exception of
major climatic or altitude changes -- and even then, I want to do
it in a well defined, easily accomplished manner, like adjust a pot).
> Can you
>suggest some reference materials on microcontrollers where I can learn
>how to both set up the circuits as well as program the system? I think
>I've got a general idea how the system should work, but I've got a long
>way to go. Since you've taught electronics, hopefully you can recommend
>a good text to get me started.
As far as literature -- let me check and get back to you on a source.
When I need it, I'll find one of our students or a friend who works
at the Motorola plant here. But, for you, best bet might be to contact
their literature dist. center (used to be one here in Austin).
Check out: "http://motserv.indirect.com"
"http://www.motorola-powered.com/"
Motorola product info and tech. info. : 800-668-6765
Motorola literature distrib. center (MST zone) : 800-441-2447
for 68HC11: http://129.38.232.2/hc11/home.html
Even easier might be to post request on EFI group. (There are FAQ's
about 68Hxx also.)
As far as texts, the ones we use are extremely basic: like how a
CPU, ALU, etc. works, memory addressing schemes, instruction sets,
subroutines, parameter passing (note that this is all done in assembly
code). Interrupt handling is not covered at all. You want something
that gives you actual examples of code and block and schematic
diagrams of actual hardware. I don't know of such right now.
Anyone want to chip in?
Tom Cloud
More information about the Diy_efi
mailing list