Field of application
[0001] The present invention relates to a hardware architecture of an automatic system for
               driving injector of an internal combustion engine , in particular direct injection,
               four-stroke engines with automatic determination of the angular position of the drive
               shaft and of the operating phase.
 
            [0002] More in particular, but not exclusively, the invention relates to an injection and/or
               ignition driving system in internal combustion engines, of the type structured to
               cooperate with an engine electronic control unit (ECU) by driving the corresponding
               injection drivers.
 
            Prior Art
[0003] As it is well known in this specific technical field, the use of electronic control
               units for injection management in modern car engines has become usual. Reference shall
               be made, for example, to the European patent application No. 01830645.6 to the same
               Applicant.
 
            [0004] Their use has become necessary to control some engine parameters in order to decrease
               the harmful emissions produced by the engine itself, on the basis of the regulations
               in force in many industrialised Countries, which set very restrictive limits to the
               maximum emissions allowed.
 
            [0005] To comply with these limits imposed by law, major automotive companies are increasing
               the production of direct injection engines that allow the decreasing of the level
               of pollutants released in the environment and the improving of the engine performance.
               However, these engines require a more complex and advanced control system.
 
            [0006] The recent introduction of multi-injection systems, for which the parameters to be
               considered, during the control phase, are characterised by more pressing time specifications,
               requires the use of a certain number of sensors of various type, whose signals are
               always processed by the current control units.
 
            [0007] Accordingly, nowadays the current control units - which are also classified as ECU
               (Electronic Control Unit) - are required to carry out increasingly complex and elaborated
               control functions.
 
            [0008] In the automotive field it is known the use ECU provided with a co-processor of the
               TPU (Time Processor Unit) type, specifically intended to be used for processing signals
               transmitted by a tone wheel sensor of the drive shaft and by a tone wheel sensor of
               the camshaft, so as to obtain the angular position of the drive shaft as well as the
               engine operating phase.
 
            [0009] A lot of parameters are required for a better actuation of the injection process,
               controlled by the ECU or by the TPU co-processor. This implies a large computational
               load, both by the ECU and by the TPU co-processor.
 
            [0010] In fact, both units manage a large number of signals having different priority levels.
               These signals must in any case be managed by software routines, started by interrupt
               signals in case of ECU, or by the occurrence of certain events, in case of the TCU
               co-processor.
 
            [0011] In any case, a difference between the ideal injection time instant and the real time
               in which it is actuated occurs, to the detriment of an accurate combustion, which
               shall therefore generate a higher quantity of pollutants than expected.
 
            [0012] The technical problem at the basis of the present invention is to devise a new hardware
               architecture for an automatic driving system for injectors in internal combustion
               engines, which architecture should exhibit such structural and functional features
               as to allow a better management of the signals transmitted by the various sensors
               depending on the engine control unit as well as a higher control over the means in
               charge of the injection and/or the engine ignition step.
 
            Summary of the invention
[0013] The solution idea at the basis of the present invention is to provide a hardware
               module, operating in digital logic, which may be used as a peripheral device by the
               ECU in order to reduce its computational load.
 
            [0014] Such hardware module should have the task of actuating the injection process, that
               is to say, following an injection profile stored therein.
 
            [0015] In practice, the idea at the basis of the invention is to release the engine electronic
               control unit (ECU) from the injection and/or ignition actuation.
 
            [0016] On the basis of such a solution idea, the technical problem is solved by a hardware
               architecture of an automatic injector driving system of the type mentioned above and
               defined in the characterising part of claim 1 attached hereinafter.
 
            [0017] The features and advantages of the architecture according to the invention will be
               more evident from the following description of an indicative and non-limiting example
               of embodiment, made with reference to the attached drawings.
 
            Brief description of the drawings
[0018] 
               
               
                  - Figure 1 shows a schematic view of an endothermic injection engine associated to an
                     injector driving driver associated to a system for driving and managing the ignition
                     and/or injection process according to the present invention;
- Figure 2 shows a schematic block view of the architecture of the piloting system according
                     to the present invention;
- Figure 3 shows a schematic view of a detail of the architecture of Figure 2;
- Figure 4 shows a diagram having the same time basis with a set of profiles corresponding
                     to injection piloting signals for the system of the present invention;
- Figure 5 shows a wiring diagram of an injector driving circuit;
- Figure 6 shows a diagram with the time-based evolution of a PWM signal generated through
                     the system of the present invention;
- Figure 8 shows a schematic view of a state machine that illustrates the operation
                     of the driving system according to the invention (indicated with reference numeral
                     7 in figure 3);
- Figure 7 shows a further schematic view of a state machine that illustrates the operation
                     of a subsystem of the driving system (indicated with reference numeral 8 in figure
                     3).
 
            Detailed description
[0019] With reference to the above figures, 1 globally and schematically indicates the hardware
               architecture of an automatic system for driving and managing the injection and/or
               ignition of an endothermic engine 2, in particular a direct-injection four-stroke
               engine with automatic determination of the drive shaft angular position and of the
               operating phase.
 
            [0020] System 1 is associated to an ECU, not shown since it is a conventional one, is widely
               used in automotive applications for controlling the ignition and/or injection of these
               types of engines. System 1 is schematised in figure 1 by the "Injection manager" block.
 
            [0021] The main task of system 1 is to releasing the Engine control ECU of the task of enabling
               the piloting of the means in charge of the injection and/or ignition of engine 2.
 
            [0022] In practice, the time instant in which injection or ignition should be actuated is
               a critical parameter since the optimum combustion conditions depend on it to generate
               the smallest quantity of polluting substances.
 
            [0023] The object of the present invention is that of defining the architecture of a modular
               hardware system which should generate a series of signals useful for the drivers 3
               in charge of driving the injectors. Given the variety of types of these drivers 3
               and of the possible applications using a same driver, system 1 can be programmed so
               as to generate driving signals having the desired time pattern. This makes the system
               according to the invention very flexible and reusable in several applications.
 
            [0024] Thanks to a standard I/O interface it is possible to store the sequence of the output
               logical states inside the module; such states may be of the PWM type, bothsteady at
               a logical level "0" or "1".
 
            [0025] The internally stored injection profile can be described on the basis of angles and/or
               times, thereby allowing the shift from a logical output level to the other when the
               drive shaft reaches a fixed position, or after a certain time interval from the previous
               situation.
 
            [0026] This peculiarity of system 1 makes it usable both in applications where the quantity
               of fuel to be injected is calculated in terms of time in which the injector is open,
               and in applications wherein the quantity of fuel is calculated in terms of the drive
               shaft angular position.
 
            [0027] Figure 1 shows a layout of the invention.
 
            [0028] System 1 exhibits a plurality of inputs and outputs described in the following Table
               1: 
               
               
                  
                     
                        
                           
                           
                        
                        
                           
                              | Signals | Description | 
                           
                              | Input |  | 
                        
                        
                           
                              | Control_bus | Standard communication interface. | 
                           
                              | Address_bus |  | 
                           
                              | Data_bus (I/O) | The Data bus is bidirectional. | 
                           
                              | cam_phase | This indicates the engine operating phase | 
                           
                              | teeth_cnt | This indicates the drive shaft angular position with the precision given by the number
                                 of teeth of the drive shaft tone wheel. | 
                           
                              | i_teeth | This indicates an estimated angular position between two teeth of the drive shaft
                                 tone wheel | 
                           
                              | measured_diag | Diagnostic signals | 
                           
                              | start | Start signal for module internal state machines | 
                        
                     
                   
                  
                     
                        
                           
                           
                        
                        
                           
                              | Output |  | 
                        
                        
                           
                              | curr_out | STEADY signals | 
                           
                              | pwm_out | PWM signals | 
                           
                              | Interrupt_inj | Interrupt signal | 
                           
                              | start_dec | This indicates if the internal start register is activated | 
                        
                     
                   
                 
            [0029] The output signal "start_dec" can be connected to the input signal "start" to start
               the entire system by writing on the internal register "start", as highlighted by the
               broken line between the two signals in figure 1.
 
            [0030] System 1 comprises three modules 4, 5 and 6, each performing a specific function
               in order to reach the object of the present invention. The entire system 1 is structurally
               independent and can be realised as integrated circuit and be housed on a standard
               bus interconnection and support board. Such board may also house the engine ECU.
 
            [0031] Of course, nothing prevents system 1 and the ECU from being realised on a single
               integrated circuit of the "system on chip" type, even maintaining their functional
               independence.
 
            [0032] A general diagram of the hardware architecture of the driving system 1 is shown in
               Figure 2.
 
            [0033] The "Injection manager" block has a modular structure and comprises the three modules
               4, 5 and 6, respectively called "dec_injection", "inj" and "pend_inj". Figure 2 shows
               such modules and their interconnections.
 
            [0034] The task module 4 "dec_injection" should perform consists in providing a standard
               interface toward the ECU in order to exchange signals with such engine control units
               to regulate the activity of the "Injection manager"; this is obtained by suitably
               forcing the value of a set of registers internal to module 4 "dec_injection".
 
            [0035] The values of the above registers represent the configuration parameters of module
               5 "inj" which is the core of the entire system 1.
 
            [0036] This module 5, during normal operation, forces a second set of registers internal
               to module 4 "dec_injection" from which it is possible to trace the internal status
               and to the results of module 5 "inj".
 
            [0037] The set of signals 
curr_out and 
pwm_out allows the driving of a wide variety of car injector drivers 3 in order to actuate
               the desired injection profiles.
 
            [0038] The task of module 6 "pend_inj" consists of generating an interrupt signal toward
               the engine injection control unit once the error signals generated by module 5 "inj"
               have been provided in input.
 
            [0039] The generation of an interrupt signal also defines the value of the related register
               internal to module 4 "dec_injection", from which it is possible to detect the type
               of error generated by module 5 "inj".
 
            [0040] The operation of module 4 "dec_injection" will now be described in deeper detail.
 
            [0041] The task of module 4 consists of providing a standard Input/Output interface toward
               the ECU controller, so as to define the functionality of system 1 by suitably programming
               the registers embedded therein. Moreover, it transfers the value of these registers
               to module 5 "inj".
 
            [0042] The following tables 2, 3, 4 and 5 describe the registers embedded in module 4 "dec_injection";
               these registers can be read/written via the standard interface: 
               
               
Table 2:
                  
                     
                        
                           
                           
                        
                        
                           
                              | Register Type | Description | 
                           
                              | Output to module 5 "inj" |  | 
                        
                        
                           
                              | start | Its status is reported by the output "start_dec" | 
                           
                              | stop | Stops the state machine implemented in "inj" restoring its original status waiting
                                 for a new start. | 
                           
                              | presc_conf | Prescaler of the timer internal to module "inj" | 
                           
                              | period | Period of the PWM signals to be generated | 
                           
                              | duty_high | Table containing a set of duty-cycle values of the PWM signals to be generated | 
                           
                              | security | This indicates if the security condition is enabled | 
                           
                              | compare_value | Watchdog value | 
                           
                              | time_diag | This indicates the instants in which diagnostics should be carried out | 
                           
                              | cfg_diag | This indicates if diagnostics should be carried out | 
                           
                              | index_diag | This indicates the element of the time_diag signal to be used for diagnostics | 
                           
                              | expected_diag | This indicates the value expected fromthe diagnostic check | 
                           
                              | cfg_diag_sec | This indicates if diagnostics should be carried out in security condition | 
                           
                              | index_diag_sec | This indicates the element of the time_diag signal to be used for diagnostics in security condition | 
                           
                              | expected_diag_sec | This indicates the value expected from the diagnostic check in security condition | 
                        
                     
                   
               Table 3:
                  
                     
                        
                           
                           
                        
                        
                           
                              | Configuration data for the injection profiles to be actuated in normal conditions | 
                           
                              | time_prof | Table containing the instants of variation of the injection profile | 
                        
                        
                           
                              | profile | Table containing the configuration values of signals curr_out and pwm_out for every instant of variation of the injection profile | 
                           
                              | cfg_time_prof | This indicates whether the actuation of the injection profile should be based on time
                                 or angles | 
                           
                              | cam_phase_conf | This indicates the phase in which injection should be carried out | 
                           
                              | num_shape | Number of shapes forming the injection profile | 
                        
                     
                   
               Table 4:
                  
                     
                        
                           
                           
                        
                        
                           
                              | Configuration data for the injection profiles to be actuated in security condition | 
                        
                        
                           
                              | time_prof_sec | Table similar to time_prof but valid in security condition | 
                           
                              | profile_sec | Table similar to profile but valid in security condition | 
                           
                              | cfg_time_prof_sec | This indicates whether the actuation of the injection profile in security condition
                                 should be based on time or angles | 
                           
                              | cam_phase_conf_sec | This indicates the phase in which injection should be carried out in security condition | 
                           
                              | num_shape_sec | Number of shapes forming the injection profile in security condition | 
                        
                     
                   
               Table 5:
                  
                     
                        
                           
                           
                        
                        
                           
                              | Output to "pend_inj" |  | 
                        
                        
                           
                              | Mask | Interrupt mask | 
                        
                     
                   
                  
                     
                        
                           
                           
                        
                        
                           
                              | Input from "inj" |  | 
                        
                        
                           
                              | stato_out | This allows tracing the "inj" state | 
                           
                              | cfg_pwm | This indicates the current configuration of module "pwm_inj" | 
                           
                              | curr_out | This indicates the current configuration of the steady driver driving signals | 
                        
                     
                   
                  
                     
                        
                           
                           
                        
                        
                           
                              | Input from "pend_inj" |  | 
                        
                        
                           
                              | pending | This indicates the type of error occurred | 
                        
                     
                   
                
            [0043] The operation of module 5 "inj" shall now be described in deeper detail.
 
            [0044] The task of such module 5 consists of actuating the injection process according to
               the stored profile, which indicates both the time the injection should start and the
               quantity of fuel to be injected during the process. An example of injection profile
               to be actuated, intended as current profile to be applied to the injector is shown
               in figure 4.
 
            [0045] On the other hand, an example of circuit used to generate the desired current profile
               is shown in figure 5. This type of electronic circuits, known as power drivers, can
               be driven by system 1 object of the present invention.
 
            [0046] The circuit of figure 5 substantially is a bridge circuit wherein the current flow
               fed toward the injector is regulated by a first power transistor T1, driven by a signal
               P, and by a second transistor T2, driven by a PWM signal.
 
            [0047] A third transistor T3, driven by a signal W, allows to close the current path toward
               earth, when needed.
 
            [0048] In fact, signals 
P, applied to the gate of transistor T1, W, applied to the gate of transistor T3, and
               
PWM, applied to the gate of transistor T2, allow to adapt the current driving of a wide
               variety of drivers for car injectors in a very flexible manner.
 
            [0049] Moreover, this object is achieved by the architecture of figure 3, showing the internal
               structure of module 5 "inj", comprising a main block 7 indicated with the abbreviation
               "inject_fsm", and an auxiliary block 8 "pwm_inj", whose purpose is that of generating
               the desired PWM signals through configuration commands provided by the main block
               7 "inject_fsm".
 
            [0050] The operation of block 8 "pwm_inj" shall now be described in deeper detail.
 
            [0051] The task of such block 8 is that of generating a square wave with desired duty-cycle,
               for example like the one shown in figure 6, with the possibility of obtaining both
               a high logical value and a low logical value in output.
 
            [0052] The input signals of block 8 "pwm_inj" are as follows:
               
               
clk,
               not_reset,
               start,
               period,
               duty_high,
               config.
 
            [0053] The output signal is 
pwmout. The behaviour of module 6 can be described with a state machine 9 like that shown
               in figure 7.
 
            [0054] The configuration parameters that allow to have the desired signal are given by signals
               
period, duty_high and 
config. 
            [0055] The signals 
period and 
duty_high respectively indicate the period and the duty-cycle of the signal that must be generated.
 
            [0056] The signal 
config allows to select whether the signal to generate should be PWM or a steady signal
               at the logical value 0 or 1.
 
            [0057] The signal 
duty_high, on the other hand, is a table wherein the elements contain a predetermined series
               of duty-cycle values programmable by the user.
 
            [0058] The signal 
config is used as index of the table indicated by 
duty_high to select the desired duty-cycle value; it can take two further values, which respectively
               indicate whether the signal 
pwmout must be a steady signal at the logical level 0 (
config = min_val) or at the logical level 1 (
config = max_val).
 
            [0059] Upon start-up, or after resetting system 1, the state machine 9 is in its initial
               status, indicated in the figure by "idle".
 
            [0060] If the signal 
config takes either the value min_val or the value max_val, the state machine 9 remains
               in the "idle" status and the signal 
pwmout is forced at the logical value 0 or 1.
 
            [0061] On the other hand, if 
config takes a value comprised between min_val and max_val, by activating the signal 
start, the state machine 9 passes through the state "high_val" (transition T_0). In this
               status, the signal 
pwmout is forced at the logical level 1, a counter/timer is started and checked to see that
               it reaches the value indicated by the element 
duty_high(config); when this condition occurs, the state machine 9 passes through the state "low_val"
               (transition T_2), the signal 
pwmout is forced at the logical level 0 and the timer is checked to see that it reaches
               the value indicated by the signal 
period.
 
            [0062] When this condition occurs, the timer/counter is reset and the state machine 9 passes
               through the state "high_val" (transition T_3) so as to continue generating the desired
               signal. From the states "high_val" and "low_val" it is possible to stop the operation
               of the state machine and bring it back to the idle status by disabling the signal
               
start (transitions T_1 and T_4).
 
            [0063] The behaviour of block 7 "inject_fsm" embedded in module 5 is described through a
               state machine 10 shown in figure 8.
 
            [0064] Block 7 "inject_fsm" can work in two modes, according to the status of signal 
security. These two modes are identical as regards the execution, but they use two different
               data sets; if the security mode is disabled, the set of data taken into consideration
               is that of table 2; on the other hand, if the security mode is enabled, the set of
               data taken into consideration is that of table 3.
 
            [0065] The behaviour of the state machine 10 is described in this way with reference to
               the normal working condition only, and considering the injection profile shown in
               figure 4.
 
            [0066] The initial status of the state machine 10 is, also in this case, called "idle",
               a status that is reached upon start-up and/or after resetting system 1.
 
            [0067] By activating the signal 
start, the state machine 10 passes through the status "stand-by" (transition T_0), wherein
               the configuration of outputs 
curr_out and 
pwm_out is given by the first element of the table 
profile and it remains in such status until the value of the first element of table 
time_prof matches either the value of the internal timer, if the injection must occur on a
               time basis, or the values indicated by the signals 
teeth_cnt and 
i_teeth, if the injection must occur on an angle basis.
 
            [0068] This event coincides with the point α of the injection profile shown in figure 4.
               When this event occurs, the state machine passes through the state "shap_succ" (transition
               T_1), where the next elements of tables 
profile and 
time_prof are selected, to return to the "stand-by" status again (transition T_2) and remain
               there until the event indicated with b in figure 4 occurs.
 
            [0069] The transitions between the "stand-by" status and the "shape_succ" status follow
               one another up to considering the last elements of tables 
profile and 
time_prof (event indicated with e in figure 4).
 
            [0070] At this point, the state machine passes through the status "fine_shape" (transition
               T_3), where an interrupt is generated to indicate that the injection process has been
               completed and the system is waiting for the signal 
start to be disabled so as to bring the state machine back to its "idle" status (transition
               T_4), where the next injection is expected.
 
            [0071] Block 7 "inject_fsm" of module 5 allows to carry out a diagnostic process during
               the injection process, and this allows to check if this is being executed properly.
 
            [0072] The register 
cfg_diag contains a flag for every element of the table 
time_prof that indicates, if it is active, that the diagnostics should be carried out after
               the event indicated by the current element of 
time_prof. 
            [0073] If a flag is active, the corresponding element of table 
index_diag indicates an element of the table 
time_diag that represents the time that must be waited for from the occurrence of the event
               indicated by the table 
time_prof before comparing the diagnostic signal 
measured_diag, transmitted by the injector drive, with the signal 
expected_diag, which indicates the expected value in case of correct operation. An interrupt is
               then generated if the value of 
expected_diag differs from that of 
measured_diag. 
            [0074] It is also possible to activate an internal timer-watchdog to report any problems
               in case nothing occurs for a fixed time interval and when in the states of "stand-by"
               and "shape_succ"; the signal 
overflow indicates the maximum limit to be reached by the internal timer-watchdog to report
               this type of problem.
 
            [0075] The task of the auxiliary block 8 "pend_inj" associated to the main block 7 "inject_fsm"
               embedded in module 5 consists of generating an interrupt signal toward the ECU controller.
 
            [0076] Such block 8 receives an input signal from module 5 "inj" indicating the type of
               error occurred, and it generates a signal for module 4 "dec_injection" to set properly
               the "pending" register, whose reading allows the controller to determine the type
               of error so as to decide the action to be taken.
 
            [0077] Thanks to the features described above, the driving system 1 can also be applied
               to a variety of engines, each provided with different injector driving drivers.
 
            [0078] The piloting system 1 can be adapted to the wide variety of types of injection profiles
               for car injector drivers used in the automotive field, this thanks to the wide configurability
               of the parameters allowed by modules 4, 5 and 6. This makes the system according to
               the invention very flexible and reusable in several applications.