Injector Sequence Definition

This MotoHawk™ block sets up a sequence of injector drivers, starting with the given pin and working up, one for each driver required by the 'Sequence Type'.

Block ID

Injector Sequence

Library

MotoHawk_lib/Advanced Digital I/O

Description

This sets up a sequence of injector drivers, starting with the given pin and working up, one for each driver required by the 'Sequence Type'. The input ports may be scalars or vectors, but if vectors, the size must equal the number of cylinders defined by the Encoder Definition block. This number may be calibratable, in which case the vector must be as large as the 'Maximum Number of Cylinders'.

Peak Duration specifies the time to remain in peak (for those drivers that support dual current thresholds). Operation is synonomous of the Timed Peak/Hold block.

Block Parameters

Parameter Field Values Comments/Description
Initial Pin Drop-down list (FINJ1, FINJ2, etc.) Select the initial fuel injector in the sequence.
Sequence Type Select injector sequence type
      Standard Injector per cylinder
Batch Injector per 2 cylinders & half duration
Wasted Injector per 2 cylinders & half duration & all cylinders
Banked Injector per cylinder & half duration on each phase & all cylinders until CAM sync.
Note: Only supported on S12(X) based modules.
Behavior Select operating mode for output
  Standard A single pulse is generated per cylinder TDC, with an electrical duration of Mech Duration (per input of that name) plus Mech to Elec Offset (per input of that name), and starting at a crank angle of SOI (per input of that name) plus Angle Offset value as entered.
Transient Up to two pulses are generated. The first is referred to as the primary pulse and the second is the make-up or transient pulse. The make-up pulse is used to deliver an extra injection event to try and account for changing conditions since when the primary pulse occurred. See the detail here.
Update Mode Select whether to have the OS protect against pulse errors. Only visible for supporting modules (Classic Module Types). Modules that don't support will always use the OS update mode.
  OS ControlCore protects against missing pulses.
Application No error checking is provided, and the application is completely trusted. Not recommended.
Granularity   Select granularity (resolution) as required. Only visible for supporting modules (Classic Module Types).
Fine Uses interpolation to schedule angles that fall between encoder teeth.
Coarse No interpolation, uses encoder teeth to identify engine position.
Use Make-Up EOI Port Check box (enable) Enable control of EOI via port instead of using the fixed EOI Before SOI Angle. Only visible when the transient behavior has been selected or when the calibration option has been selected.
EOI Before SOI Angle (degCA) Numeric EOI is located this many crank angle degrees before the start angle. Only visible when Use Make-up EOI Port is not checked.
Output Injector Diagnostics Check box (enable) Only visible for supporting modules (Classic Module Types) or when already checked. This option shows the diagnostic output ports on the block. Modules that don't support this option expose dignostic information via blocks like Detailed Fault Status or IO Fault Status.
Show Transient Enable Port Check box (enable) Check to show Transient Enable Port on the block. Only visible when the transient behavior has been selected or when the calibration option has been selected.
Minimum Duration Mode   Select whether to have static or dynamic minimum duration. Only visible for supporting modules (Classic Module Types)
Static Select to have constant value, input in mask
Dynamic Select to have value calculated in model and input into the block as a signal port.
Minimum Duration (ms) Numeric Only visible for supporting modules (Classic Module Types). Any scheduled electrical injector duration smaller than this value (normal or make-up) is considered to have zero duration when scheduled. Is a member of the mask when the static Minimum Duration Mode is selected and is a signal when dynamic is selected.
Allow I/O pins to be calibrated Check box Name, Access Levels and Instrumentation Group fields available. This field is only available on Classic modules, see ModuleTypes for help.
Name Prefix Alpha-numeric text, single-quote enclosed Determines prefix for names of parameters. Should be unique and C-legal (no dashes, spaces or commas).
Read Access Level 0-8 Sets security level 1 lowest, 8 highest, for user access to read value. A setting of zero indicates unsecured access is allowed.
Write Access Level 0-8 Sets security level 1 lowest, 8 highest, for user access to write value. A setting of zero indicates unsecured access is allowed.
Instrumentation Group Alpha-numeric text, single-quote enclosed Defines the folder name and hierarchy for use by a suitable instrumentation tool. Use "|" character between folder names to delineate subfolder structure

Banked Sequence

Banked sequence type splits the requested injection pulse into two half duration pulses, one at the requested Start Of Injection (SOI) and one 360 degrees out of phase, until CAM synchronization occurs. After CAM synchronization, the full duration is applied at the requested SOI.
Note: Banked Sequence only supported on S12(X) based modules.

Transient Injection

Some engine management applications, especially those that are supercharged, want to use very early fuel injection timings because it improves the probability of the fuel vaporising. However the consequences of running early injection is that in cylinder engine conditions, like the available air for combustion, can change between when the fuel was injected and when that fuel is ignited. The aim of a transient fuelling strategy is to cope as best as possible with such problems. The transient injection mode of the MotoHawk Injector Sequence Block provides an inbuilt pulse mode that can allow a transient injection pulse strategy to be employed.

Many of the MotoHawk blocks that generate crank synchronous pulses do not allow the timing of a pulse that is active to be affected by a subsequent update. Transient Injection will allow the duration of a primary pulse that is currently active (asserted) to be updated provided the underlying pulse generation core supports that capability. A pulse that can be affected whilst active could have its duration extended or reduced, which can assist with "tip-in" and "tip-out". The term "tip-in" is associated with the need to add fuel, whilst "tip-out" is generally associated with the need to remove fuel.

A "tip-out" situation may arise where the desired volume of fuel to be injected has been reduced because of some transient condition. Consider the situation where the throttle closes suddenly. Fuel already injected can't be removed, but fuel about to be injected can still be aborted. What the system can do is driven by its primary pulse update capability.

The figure illustrates a primary pulse extension (annotated with 'A') because of an update that occurs at 'X' due to a "tip-in" event. However it is quite likely that the scheduled fuel pulse will have already completed when in cylinder conditions change. The fuel pulse extension annotated by 'A' in the figure would not be possible if the update at 'X' instead occured at 'Y'. Generally "tip-in" occurs when there is a small fuel duration to deliver. Thus an update that occurs after the pulse has completed will be a common update situation.

A "make-up" fuel event is used to address the need to add further fuel. The built in transient injection capability only supports a single "make-up" fuel event in order to keep the pulse count down. Thus the "make-up" pulse is typically scheduled to occur using an End Of Inject (EOI) timing because this allows the boundary of where legal fuel injection is allowed. The primary's Start Of Inject (SOI) specifies the beginning of the legal injection window and the EOI of the "make-up" pulse defines the end of the legal injection window. Fuel injection pulses would not be scheduled outside of this window.

The "make-up" pulse is always scheduled when the pulse is enabled, even when its duration is zero. MotoHawk may (depending on pulse scheduling capability and/or the core's implementation) terminate the primary pulse prematurely to prevent it from overlapping with the "make-up" pulse. Injection should not occur outside the legal window, which is defined by the SOI and EOI timings. In the best case, where there is overlap protection, a primary fuel pulse that was less than one cycle in duration may still be clipped because it exceeds the legal injection window defined by the SOI to EOI boundary.

"Skip firing" will result if overlap occurs, which looks like the primary pulse is being missed on alternate cycles. It occurs because the pulse scheduler must schedule the transient pulse (even when its duration is zero) and the scheduler does not attempt to schedule until the primary pulse has completed. If there was overlap then the "make-up" pulse is effectively in the past relative to the completion of the primary pulse and so it must wait most of the next cycle to schedule that pulse. While waiting to schedule that pulse it is not scheduling the primary pulse, thus missing it. The make-up fuel pulse should be disabled if the legal injection window needs to be opened up to account for longer primary durations. This can be done as a runtime change via the transient enable signal that is exposed when the Use Make-Up EOI Port is checked in the mask.

There may be no point in scheduling a transient pulse. The Make-Up Min Mech Duration signal provides the threshold as to when to schedule a "make-up" pulse. The mechanical duration not yet delivered by the primary will be delivered provided it exceeds the Make-Up Min Mech Duration value. The delivered pulse duration will include the Mech to Elec Offset so as to correct for any turn-on delay in the fuelling.

It is advantageous to locate EOI advanced of SOI so that the legal injection window is large and the application has time to refresh the "make-up" fuel pulse duration as the situation dictates. It also advantageous to have the MotoHawk Injection Sequence Block execute frequently. MotoHawk will only refresh the pulse timings when it has new data. Having the application determine that 10ms of fuel is now required instead of 5ms won't result in the insertion of a transient pulse unless the block executes and supplies a new primary pulse timing of 10ms. The figure illustrates 3 executions of the block where the primary duration was increased each time, which resulted in the scheduled "make-up" pulse being extended each time.

The system may attempt to deliver what fuel it can when a request is made to deliver more fuel than is possible.

Transient Injection Pulse Capability MPC55xx Core MPC5xx Core S12/S12XE Core
Primary pulse's duration affected on update when active Yes Yes No
MotoHawk terminates the primary pulse prematurely to prevent overlap with the make-up pulse Yes No Yes
MotoHawk will assert the make-up pulse immediately when it detects that it's duration can't be delivered before the EOI timing. Yes Yes Yes