Without giving a long description of the evolution of fuel injection and how this is evolving into better engine management, I will try to explain a few fundamentals.
EFI basics:
[Highly oversimplified, But this might help to understand a few details. You really need to perform you own research into how different engine management systems, and different interface software suites are configured and operate.]
The software in the ECU is not like the software we use to alter the mapping. The ECU software is very basic code that must accomplish as much as possible, as quickly as possible, with a limited amount of space. We interface with this software with products like TuneEdit and TuneECU. In the old days, you had to remove the chip, flash it with light to blank it, and then load an altered map. Times, equipment, software, etc. are constantly evolving.
The software used for adjusting the software in the ECU (in this case TuneEdit or TuneECU) can be set up in many different configurations - VE (volumetric efficiency), estimated air flow into the cylinder, basic injector units of on-time (pulse units relating to time), etc. It really doesn't matter which way the software is configured other than for determining how easy it is to understand and operate for the end user. I swear some make their software difficult just to be different from everyone else.
You can/will have many different fuel tables. You will start with basic Alpha-n using throttle position over rpm. Then add acceleration compensation - normally manifold air pressure (MAP) over rpm. If it is a plenum intake manifold, you might add mass air flow (MAF) for good low rpm resolution (smooth operation at low throttle openings). If it is an individual throttle body (ITB) system like a bike or some BMW car engines, you will likely use MAP for low rpm resolution and switch over to Alpha-n at higher rpm where manifold vacuum is low. Then add offset tables for inlet air temp, engine temp, barometric pressure, etc., etc. This now gives us a
speed density system.
If you want to add a Lambda sensor to allow corrections by the ECU for idle and cruise to meet tighter emissions standards you use a narrow band Lambda sensor. If you want to operate in a wider range of closed loop conditions, you use a wider range Lambda sensor. Some automotive OEMs use very wide range Lambda sensors like the Bosch LSU 4.9 or some of the NTK units. But close loop operation is still a narrow range of total operating conditions simply because when accelerating, there is a lag between the changing engine speed and the time it takes for residual oxygen in the exhaust gases to make it to the Lambda sensor. There are also many limitations to using Lambda sensors for performance tuning, but this is not a good time to get into this.
You can even use a couple of tables that "learn" the difference between what the mapping is set at, and the results from the Lambda sensor when in closed loop. This will vary engine to engine, and how and where the engine is used. Then the ECU writes corrections that offset the main fueling tables. Sometimes these are called "adaptive" trim tables, and can be both long and short term in their offsets.
You have a total of 720 degrees of crankshaft rotation (two rotations of the crank in a four-stroke engine) to fire an injector. The diameter and number of teeth on the crank sensor help to set the resolution/accuracy. More teeth and larger diameters are needed for good accuracy at higher rpm. The ECU uses the known number of teeth to continuously correct where it is in relation to crank degrees, and then resets the count when it sees either missing teeth or a much stronger magnetic signal. OEM system are a bare minimum based on economics, not best results.
There two ways to configure injector timing in relation to absolute crankshaft degrees :
1. From the start of the injector pulse. You add or subtract on-time to the beginning of the pulse with a set off point.
2. From the end of the injector pulse (most common). You add or subtract on-time to the end of the pulse with a set on point.
Then you have latency issues with electronics and software, and lag times from the magnets and tip design of the injector, that reduce the actual time the injector is open, and how long it takes to get to fully open.
The amount, pattern, angle, and timing of the injector spray affects the way the fuel mixes with air and is distributed in the cylinder [search for
stratified charge], and if/how much makes it unburned into the exhaust at different throttle openings (loads) and engine speeds.
Now, you take the engine design and calculate the fuel demand based on theoretical output across all engine speeds and throttle openings. For the OEMs, this is usually done by someone called a
calibrator. This is done to configure a base map in the ECU that will start up and run. From here, a dyno is used to dial in the mapping for all the different requirements that the OEMs must meet - noise and exhaust gas emissions, fuel consumption, output, transient response, etc., etc. and to actually map for unforeseen pulse tuning and engine demand issues.
Some OEM calibrators then take the vehicle for road testing at varying atmospheric conditions and altitudes, and the mapping and sensor offsets are adjusted accordingly. Not all OEMs can afford to do this, and some ECUs are simply not as "smart", or configured well enough, to compensate for all operating conditions at different altitudes, air temps, air pressures, and humidity levels. For instance, Triumph does not calibrate any of the Keihin equipped bikes well for temps below 50 degrees F.
From here the vehicle is released to the consumer who may run it in completely stock formation, or start changing things. The further the engine varies from stock, the more it requires additional changes to the mapping.
Somewhere along the line a smart guy (or gal) comes along and decides that they want to see how the ECU software operates and how to change it. He pulls the software code out of the ECU and looks at how different parts of it alter different systems in the ECU. He writes some software that makes it easier to alter these different parts of the ECU coding and sets up this software in a manner that makes sense to him.
The software we use to interface with the ECU can be configured in many ways - all based on the whims of the code geek that writes it. Some of these smart guys have more understanding of what makes this software easier to use in relation to the engine for the gearheads and tuners (I detest that term). Some do not.
[If you have seen some of the early chip burning and interface software that was used in the past, you might be tempted to beat some code geeks viciously about the head and neck with a large blunt instrument. This goes for some of the race ECU software used up to just a couple of years ago, as well. The early Motec software could easily drive someone to violence.]
All that matters is that the end user can adjust the tables in the interface software in a manner that allows them to give the engine what it wants for their needs - output, response, fuel consumption, emissions, etc. And each interface software package tends to call the same things by different names, arrange it in different places, and even set up the tables in varying ways. It is up to the end user to understand how the engine and engine management operate. Then learn to get the best results from the interface software.
Enough technical BS, I am going for a ride.
