WO2018073532A1 - Procédé de traitement de données de position d'un moteur par un calculateur multi-coeurs - Google Patents
Procédé de traitement de données de position d'un moteur par un calculateur multi-coeurs Download PDFInfo
- Publication number
- WO2018073532A1 WO2018073532A1 PCT/FR2017/052855 FR2017052855W WO2018073532A1 WO 2018073532 A1 WO2018073532 A1 WO 2018073532A1 FR 2017052855 W FR2017052855 W FR 2017052855W WO 2018073532 A1 WO2018073532 A1 WO 2018073532A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- engine
- angular position
- software
- deactivation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/009—Electrical control of supply of combustible mixture or its constituents using means for generating position or synchronisation signals
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/26—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
- F02D41/263—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the program execution being modifiable by physical parameters
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/26—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
- F02D41/266—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the computer being backed-up or assisted by another circuit, e.g. analogue
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02P—IGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
- F02P11/00—Safety means for electric spark ignition, not otherwise provided for
- F02P11/02—Preventing damage to engines or engine-driven gearing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D2250/00—Engine control related to specific problems or objectives
- F02D2250/06—Reverse rotation of engine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2623—Combustion motor
Definitions
- the invention relates to a method for processing position data of a motor vehicle engine implemented by a multi-core electronic computer.
- the invention applies in particular to the management of a loss of synchronization of the electronic computer with respect to the position of the engine, or the management of operating modes of the engine for which engine control commands must be interrupted, such as reverse engine operation or engine recovery after a temporary fuel-saving interruption ("Stop and Start" interruption).
- An electronic computer of a motor vehicle is conventionally a microcontroller comprising at least one software module for controlling the engine of the motor vehicle, adapted for example to control the injection of fuel, ignition of the fuel, etc.
- the commands made by the engine control modules must be synchronized to the angular position of the engine to allow proper operation of the engine.
- the electronic computer also comprises a software module for generating angular position data of the motor, and an angular counter controlled by the data generation module.
- the angular counter is a fixed counter of fixed angular resolution, so that each count counted by the counter corresponds to a fixed angle value of the crankshaft of the engine.
- the angular position data generating software module of the engine is further adapted to receive, from dedicated sensors, information concerning the position of the crankshaft and the camshaft of the engine.
- this module determines a reference position of the engine corresponding to a null angle of the crankshaft of the engine.
- this reference value associated with the counting by the angular counter makes it possible to associate with each angular position of the angular counter a corresponding angular position of the motor, and thus to determine an angular position of the motor at each instant according to from that of the angular counter. This makes it possible to synchronize control commands of the motor at the angular position thereof.
- the angular position of the motor can no longer be determined from that of the angular counter.
- commands generated by the engine control software modules for example ignition of the fuel
- This can seriously degrade the engine.
- a deactivation command is typically sent by the data generation module to these modules as soon as a loss of synchronization is detected. Then, once the commands are deactivated, a new synchronization of the motor is started by resetting the angular counter, that is to say by restarting it at an initial zero angular position.
- the microcontrollers used as electronic computers of motor vehicles are single-core microcontrollers, that is to say that the microcontroller comprises only one physical heart, or a single set of electronic circuits, allowing run the various software applications of the microcontroller.
- motor vehicle microcontrollers now have multi-core structures, that is to say, they include several independent physical modules or cores, which are adapted to run programs in parallel completely independently.
- This multi-core character removes the sequential character of the implementation of functions by the microcontroller.
- the fact of forwarding a deactivation command of the engine control modules of an angular counter reset command does not guarantee, when restarting the angular counter, that the control modules have been effectively deactivated. This results in a risk that commands are launched by the engine control modules after a reset of the angular counter, and that these commands are completely out of sync with the angular position of the engine, and cause damage to the latter.
- the resynchronization of the engine must take place as soon as possible after the loss of synchronization and it is not possible to wait for a long period of time to ensure that all the engine control modules are disabled. .
- the aim of the invention is to propose a solution to the loss of synchronization of the motor in the case of a multi-core electronic calculator.
- an object of the invention is to allow to guarantee the deactivation of the controls of the engine control modules before resetting an angular counter in the event of loss of synchronization of the motor.
- Another object of the invention is to allow rapid deactivation of the engine control modules in other circumstances where there is no loss of synchronization of the engine but where the operation thereof can generate inappropriate trips commands (for example in the case of reverse rotation or after a temporary interruption of the engine).
- Another object of the invention is to allow rapid deactivation of the engine control modules when the engine position determined by the production module is not valid.
- the subject of the invention is a method for processing position data of a motor vehicle engine, implemented by a multi-core electronic calculator comprising:
- At least one input for receiving an angular position value of the crankshaft, of an angular position sensor of the crankshaft,
- a software module for generating angular position data of the engine adapted to generate a reference angular position from at least the information provided by said angular position sensor of the crankshaft, and
- At least one engine control software module according to the angular position data, able to receive from the data generation software module the value of the reference angular position,
- said method comprising:
- a step of deactivating each engine control software module by the engine angular position data production software module followed by:
- An activation step of each engine control software module by the angular position data production software module of the engine characterized in that the deactivation step comprises:
- the reactivation step of the engine control software modules is only implemented when the deactivation of all the engine control software modules has been confirmed to the engine angular position data production software module.
- the method according to the invention may further comprise at least one of the following characteristics:
- the deactivation step may further comprise at least one repetition of the sending of a confirmation request of the deactivation of the control modules if at least one control module has not confirmed its deactivation.
- the repetition of the sending of the confirmation request of the deactivation of the control modules can be implemented within a delay of between 5 and 20 ms, preferably equal to 10 ms, after the sending of the first request of confirmation.
- the method may further comprise a step of resetting the electronic computer if the production module does not receive confirmation information of a deactivated state of each control module after the repetition or the sending of the control command. deactivation, and the activation step of the control modules is implemented after the step of resetting the electronic computer.
- the electronic computer may comprise an angular counter
- the software module for generating engine position data is adapted to, based on angular position information of a crankshaft and a camshaft of the engine, generate a reference angular position of the motor, and wherein:
- the deactivation step is preceded by a stop of the angular counter
- the reactivation step is preceded by a step of resetting the angular counter and calculating a new angular reference position of the engine, implemented when the production module has received the confirmation information of the state disabled from each control module.
- Each of the data generation software module and each engine control software module may comprise a low level software layer and an application software layer, and the sending of a deactivation command by the production module to each module of the engine. piloting includes:
- Each of the data generation software module and each computer engine control software module comprising a low level software layer and an application software layer, and the low level software layer of each pilot software module being adapted to adopt a state "Active", a "passive” state and a "suspended” state, the reception of a deactivation command by a control module can cause the transition of said module from the "active" state or the "suspended” state. in the "passive" state.
- the method may further comprise an additional step of rapid deactivation implemented prior to the deactivation step, comprising sending a command to quickly disable the low level software layer of the data generation module directly to the the low level software layer of each engine control module.
- the method may further comprise an additional step implemented before the deactivation step, during which the low level software layer of each engine control module changes from an "active" state to a "suspended" state. when a motor position reference value supplied by the production module is erroneous.
- the invention relates to a multi-core electronic computer of a motor vehicle comprising:
- At least one engine control software module according to the position data
- the proposed method makes it possible, by confirming with the engine angular position data production module that the control modules have been deactivated, to avoid an inappropriate triggering of motor commands by a multi-core electronic computer, during a subsequent reactivation of these control modules.
- This is applicable in particular in case of loss of synchronization of the engine, and ensures that the commands executed by the engine control modules are stopped before resetting the angular counter.
- FIG. 1 already described, represents the position of the motor synchronized with the angular counter
- FIG. 2 schematically represents an electronic computer of a motor vehicle
- FIGS. 3a to 3c show different implementations of a step of deactivating the control modules in the event of a loss of synchronization of the motor
- FIGS. 4a and 4b show two embodiments of a step of sending control of deactivation of the engine control modules;
- FIG. 5 represents a state machine of the low level layer of the engine control modules;
- FIG. 6 schematically represents the main steps of a data processing method
- FIG. 7 is a logic diagram showing schematically a detailed example of a data processing method according to one embodiment of the invention
- FIGS. 8a to 8g represent the states adopted by the software modules of the electronic computer during the implementation of the different steps of the processing method.
- the electronic computer 1 is typically a microcontroller, but alternatively could be an ASIC type integrated circuit, a microprocessor or a processor coupled to a clock, a memory and communication interfaces.
- the electronic computer 1 is of the multi-core type, that is to say that it comprises a processor comprising several physical cores, that is to say several circuits capable of executing programming programs. autonomous way.
- the processor of the electronic computer is adapted to execute program instructions corresponding to different functionalities to be executed.
- the processor is adapted to execute program instructions corresponding to a software module 10 for generating angular position data of the vehicle engine, and a plurality of engine control software modules 20 based on position data produced by the module 10.
- the control modules 20 include, for example, a module for controlling the injectors of the engine of the vehicle, a module for controlling the ignition of the fuel, etc.
- the program instructions for the execution of the software modules 10, 20 are installed on a dedicated memory of the electronic computer. In the following, we will talk more simply software modules 10, 20 of the electronic computer.
- the software module 10 is adapted to receive as input, a sensor 2 for measuring the angular position of the crankshaft of the engine, an angular position of the crankshaft value between 0 and 720 ° or 0 and 720 degree CRK.
- the software module 10 is also adapted to receive an input, of a sensor 3 for measuring the angular position of the camshaft of the motor, an angular position value of the cam shaft between 0 and 360 °.
- a motor cycle corresponding to two turns of the crankshaft, the crossing of the angular position information of the crankshaft and the cam by the software module 10 for producing data makes it possible to determine the exact angular position of the engine.
- the software module 10 for producing position data is also adapted to generate a reference angular position of the engine from the information provided by the sensors 2 and, if appropriate, 3.
- this reference angular position is a zero angular position of the motor, corresponding to the start of a cycle.
- This angular position is called TDC0.
- it is called synchronization the fact for the data generation module 10 to generate the value of the reference angular position TDCO from the sensors 2 and 3.
- the electronic computer 1 furthermore comprises an angular counter 30, which is advantageously a free running timer (or free running timer) adapted to count a number shots between 0 and a maximum value, such that each shot corresponds to a fixed angular resolution.
- an angular counter 30 is advantageously a free running timer (or free running timer) adapted to count a number shots between 0 and a maximum value, such that each shot corresponds to a fixed angular resolution.
- the angular counter 30 is controlled by the software module 10 for producing data.
- the software module 10 for producing data is adapted to start, stop, and reset the angular counter 30.
- Each motor control module 20 receives from the data generation software module 10 the value of the reference angular position TDCO, and is further adapted to execute, depending on this value and the position of the angular counter, control commands. motor actuators in synchronism with it.
- the mapping of the reference position of the motor and the angular counter makes it possible to deduce, by subtracting from the number of strokes counted by the angular counter, the number of strokes corresponding to the reference position, the absolute angular position of the motor.
- the position of the angular counter can be exploited in other ways, for example to calculate the moment at which a command must be sent by a control module 20, according to a corresponding target angular position of the engine.
- control modules 20 are advantageously adapted to communicate with additional modules (not shown) of the electronic computer 1, whose function is to read the angular position of the angular counter 30 and to use said position from the position angular reference of the TDCO engine.
- the additional modules can then return to the information control modules 20 for the implementation of the actuator commands synchronously with the engine.
- an additional module is known as a hardware module for comparing angular value, or software modules of the type PMT (for the acronym "Position Minus Timer") or ATD (for the acronym "Angle Time Driver”).
- Each software module 10, 20 comprises a so-called low level software layer (also called Basic Software, in English) BSW1020, and an application software layer ASWi 0 , 2o.
- the low level software layer BSW10 of the data generation module 10 is the software layer by which the module 10 communicates with the sensors 2 and 3 to receive the position data of the crankshaft and the cam shaft, and by which the module 10 sends control instructions to the angular counter.
- the software application layer ASW10 of the module 10 is the layer enabling the module to produce the reference position TDC0, based on the information received by the sensors 2 and 3 and transmitted by the low level layer BSW10.
- the software application layer ASW20 of a module 20 is the layer providing angle setpoints for the control of actuators of the motor at the low level layer BSW of the module 20.
- the low level software layer BSW20 of an engine control module 20 is the software layer receiving the value of the reference position TDC0 and converting therefrom the angle setpoints to setpoints in angular counter values. . It is also the software layer by which the module 20 communicates with an actuator of the motor (for example an injector, a candle) to control it.
- an actuator of the motor for example an injector, a candle
- Each software layer of a module 10, 20 is further adapted to have a finite number of states which will be described in more detail below.
- each engine control module 20 is adapted to present an EP1 state called “active” and a state EP2 said "passive".
- the module 20 executes instructions for controlling the motor 20.
- the low level layer BSW20 has the passive state, the commands of the module 20, including the commands of the motor actuators, as well as the commands of additional modules to exploit the position of the angular counter 30, are canceled.
- the ASW10 application layer and the low level layer BSW10 of the data production module 10 are adapted to present:
- An ED1 state called “deactivated” or passive, typically during an engine start or module reset, before an engine synchronization,
- An ED2 state called “synchronization in progress”, during which the module 10 is active and searches for the angular position of the engine to calculate the reference value TDC0 from the values of the sensors 2 and 3, and
- An ED3 state called “available engine position”, which corresponds to an active state of the module once the reference angular position of the TDCO engine has been calculated.
- an additional state ED4 called “suspended synchronization” is provided for the software layers of the data generation module 10, and an additional state EP3 called “suspended” is provided for the BSW low level software layers 2 o control modules 20.
- This method comprises a first step 100 of deactivating the engine control software modules 20 by the software module 10 for producing data.
- Deactivation 100 includes the sending of a disabling command
- step 1 of sending an order comprises the following series of commands:
- the application layer of the module 10 communicates a deactivation instruction to the software application layer ASW 2 o of each engine control module 20, and
- the software application layer ASW 2 o of each module 20 goes into the passive state and communicates a deactivation instruction to the corresponding low level layer BSW 20 of the module 20.
- the step 100 of deactivating the modules 20 is advantageously, but not exclusively, implemented in the event of loss of synchronization between the angular counter 30 and the angular position of the motor.
- a loss of synchronization can occur for example in case of engine stall, failure or measurement error of one of the sensors 2 and 3.
- the loss of synchronization can be detected by the low level software layer BSW10 or by the software application layer ASW10 of the data production module 10 which then communicates the information to the low level software layer.
- the method comprises the implementation, before step 100, of a step 90 during which the low level layer of the module 10 freezes the angular counter 30, and passes the value of the reference angular position TDCO of the motor to invalid. This protects the motor by preventing the implementation of commands exploiting the position of the angular counter.
- the deactivation step 100 further comprises a step 120 of sending to each control module 20, by the data production module 10, a confirmation request that the corresponding module 20 is deactivated, c that is, all his orders have been canceled.
- This request is a synchronous request so that the module 10 immediately receives a response from each control module.
- step 120 is implemented at the end of a predetermined period, between 5 and 20 ms, for example equal to 10 ms, after sending 1 10 of the deactivation command.
- the method then comprises a step 200 of reactivation of each control module 20, which comprises the sending, by the data generation module 10, of a reactivation command of each control module 20 so that the application layer ASW 2 o, then the low level layer BSW 2 o of each control module 20 adopts the active state.
- the method further comprises a step 190 prior to step 200 during which the low level layer BSW10 of the module 10 resets the angular counter 30, that is to say restarts it from the initial value 0, recalculates the value of the reference angular position of the TDCO motor and sends it back to the control modules 20.
- the method advantageously comprises the repetition, a predetermined number of time greater than or equal to one, of step 120. This repetition is implemented at the end of a given period elapsed from the previous implementation of step 120, the delay being for example between 5 and 20 ms, advantageously equal to 10 ms.
- the method comprises a step 300 of reinitializing the electronic computer 1. During this reset, all the software layers of all the modules are forced to go to the "passive" or “deactivated” state and the angular counter is also reset.
- FIGS. 3a to 3c show the abscissa time and the ordinate the value of the angular counter 30.
- FIG. 3a there is shown an embodiment of the method in which, at the moment of loss of synchronization, the angular counter 30 being frozen, the deactivation command is sent to step 1. .
- a deactivation confirmation request 120 is sent by the data generation module 10 to each control module 20, and each module 20 confirms its deactivation.
- the method then comprises a reset 190 of the angular counter 30 and a reactivation of each control module 20.
- FIG. 3b there is shown the case where one of the control modules 20 is not deactivated when sending the request 120 for confirmation of deactivation by the module 10. In this case, the step 200 of reactivation therefore does not take place.
- step 120 the repetition of step 120 is shown.
- at least one of the modules is still not deactivated, and this step is followed by the reset 300 electronic calculator 1.
- the method then comprises a step 400 of rapid deactivation of the control modules 20.
- this step 400 comprises sending, directly from the low level layer BSW10 of the data production module 10 to the low level BSW layer 2 o of each control module 20, a deactivation command.
- the reception of the deactivation command by a low level layer BSW 2 o of a control module when said command is sent by the low level layer of the module 10, causes the transition to the deactivated state. of said layer.
- the low level layer BSW 2 o of a control module can be put in the suspended state, as described in more detail below.
- step 400 of fast deactivation of the modules causes a difference in state between the application layer, which has remained in the active state, and the low level layer of a module 20. This decorrelation of states Software layers should not last to avoid malfunctions of the computer.
- step 400 is then followed by the implementation of the deactivation and resetting steps 200 and 300 previously described, so as to deactivate the application layer and then the low level layer of each control module 20. engine, before reactivating them. This makes it possible to re-establish a correlation between the application layers of the modules 20 and the corresponding low-level layers.
- the low level software layer of the motor control modules 20 can adopt, in addition to the active state EP1 and the passive state EP2, a so-called "suspended" state EP3.
- This state is a transient state including, as the passive state, a deactivation of all actuator commands and all module commands for the operation of the angular counter.
- this state is intended to detect the inconsistency with the state of the application layer of the same module, and its adoption does not generate any risk of malfunction of the computer.
- the suspended state can be adopted either from the passive state or from the active state.
- the suspended state only the passive state can be adopted.
- transition from an active state to a suspended state upon receipt of a fast deactivation command 400 from the low level layer of the data generation module
- the suspended state can be adopted in the following different cases.
- the suspended state can be adopted 500 in the case where, during a step 200 of activation of the engine control modules 20, the synchronization of the motor is immediately lost.
- the application layers of the modules 20 have already been activated but not the low level layers.
- the reference value TDC0 sent by the module 10 to each module 20 is then invalid.
- the low level layers BSW 2 o modules 20 receive the reference value TDC0 and note that this data invalid, these layers go to the suspended state.
- This passage in the suspended state 500 in the event of rapid deactivation or rapid loss of synchronization makes it possible to deactivate all the commands of the module 20 without putting the low level layer of the module 20 in a passive state while the application layer is still in active state . The operation of the module is therefore more robust with this state.
- step 100 of deactivation is implemented, and the low level layer of the module 20 goes from the suspended state to the passive state upon receipt of the control of deactivation from the application layer of the data generation module 10, via the application layer of the module 20.
- the step 100 is followed as previously described by a reactivation step 200 or a reset step 300.
- the suspended state can be used in the case of a suspension of the synchronization.
- the state machines corresponding to the software layers ASW10 and BSW10 of the data generation module 10 have the additional state "suspended motor synchronization".
- This type of case may in particular occur when the vehicle does not include a camshaft position sensor or the position of the camshaft is not available. In this case it is not possible to determine solely from the position of the crankshaft the angular position of the engine and the state of the engine cycle, since an engine cycle covers two turns of crankshaft.
- a first reference angular position TDCO of the engine can be determined by the data generation module 10 by making a hypothesis on the fact that the engine cycle corresponds to the first or second revolution of the crankshaft, this angular position being communicated normally. to the engine control modules 20.
- the software layers of the data generation module 10 are then in the "available engine position" state.
- the data generation module 10 then monitors the operation of the engine according to this TDCO reference angular position value.
- the detection of an engine malfunction makes it possible, if necessary, to note that the assumption adopted for the calculation of the TDCO reference value was invalid.
- the fast deactivation command 400 is also followed by a deactivation step 100 and a reactivation or reset step 200 in accordance with the preceding description, in order to harmonize the states of the different software layers of the modules and to guarantee the stopping of the controls before resuming normal operation.
- the method comprises a step 120 of verification that all the driving modules 20 are inactive. If no (N), we return to the initial situation S0, if yes (O), the process continues with the establishment of the motor synchronization S1.
- step S2 it is asked whether the motor synchronization has been reached. If no (N), step S1 synchronization is implemented until synchronization is reached. If yes (O), the method proceeds to step S3 in which synchronization is performed.
- the method then comprises a step 200 of activation of the engine control modules 20, first comprising the activation of the software application layer 20 of said modules, then the activation of the low level software layer of the modules.
- the state obtained at the end of step 200 is the state represented in FIG. 8c.
- the method then comprises a step S4 during which it is determined whether the reference position of the TDCO engine is valid. If not (N), then the method comprises a step 500 of suspending the low level layers of the engine control modules. This step is followed by a step 100 of deactivation of the engine control modules 20.
- step S5 the motor position is calculated from the reference position TDCO.
- the method then comprises a step S6 during which it is determined whether the vehicle is in a reverse rotation situation. If yes (O), the method comprises a step 400 of fast deactivation of the low level layers of the engine control modules. This step may lead to the suspended state of the low level layers of the motor control modules 500, and is followed by a step 100 of deactivation of the control modules 20.
- the method comprises a step S7 during which it is checked again if the position of the motor determined by the module 10 is still valid. If yes (O), the commands of the motor control modules 20 can be executed during a step S8, which loops back to step S5. If no (N), this is a case of loss of motor synchronization.
- the method then comprises a step 90 for stopping the angular counter, followed by a step 100 of deactivating the control modules, comprising the inactivation of the application layers ASW 2 o modules 20, then low level layers BSW 2 o said modules.
- step 100 the method loops back to step S0.
- the software layers of the module 10 are in the deactivated ED1 state, and the software layers of each module 20 are in the inactive EP1 state.
- the transition 1 brings the software layers of the module 10 to the state ED2 "motor synchronization in progress", while the software layers of the modules 20 are always in the EP1 inactive state.
- the motor synchronization is obtained by the module 10.
- the transition 2 brings the software layers of the module 10 to the state ED3 of the available engine position.
- the application layer of each module 20 is activated, so that at the end of the transition 3 it adopts the active state EP2.
- the activation of this application layer causes the activation of the corresponding low level layer, corresponding to the transition 4 which brings said layer to the active state EP2.
- FIG. 8d there is shown the case of an immediate loss of synchronization during the activation of the control modules 20.
- the transition 5 brings the software layers of the module 10 from the ED3 state synchronized to the ED1 deactivated state.
- the state of the application layer ASW 2 o modules 20 is then always active.
- the reception by the low level layer BSW 2 o of an invalid reference value TDC0 causes the transition 9 to go to the suspended state EP3 of the corresponding layer.
- FIG. 8e shows the case of a suspension of the synchronization, where the software layers pass (transition 14) to the state ED4 of suspension of the synchronization, which causes the sending of a deactivation command Fast 400 to BSW layer 20 of the module 20, which goes to the EP3 state suspended by the transition 12.
- FIG. 8f when the synchronization has been suspended, the rapid deactivation is followed by a step 100 of deactivation of the modules 20, which brings the application layer of each module to the inactive state EP1 by the transition 6, and the layer low level in the EP1 state inactive by the transition 10.
- FIG. 8g describes the example of a resumption of the synchronization in which the software layers of the module 10 return to the synchronized state ED3 by the transition 13.
- the software application and low level layers of the modules 20 return to the active state EP2 by transitions 3 and 4 respectively.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Control Of Electric Motors In General (AREA)
Abstract
La présente invention a pour objet un procédé de traitement de données de position d'un moteur de véhicule automobile, mis en oeuvre par un calculateur électronique multi-coeurs comprenant: un module logiciel (10) de production de données de position angulaire du moteur, adapté pour générer une position angulaire de référence (TDCO) et au moins un module logiciel (20) de pilotage des actionneurs du moteur en fonction des données de position angulaire, une étape de détection de la perte de la position angulaire de référence (TDCO), et en cas de perte, une étape de désactivation (100) est mise en oeuvre, pendant laquelle le module de production envoie à chaque module de pilotage une commande de désactivation, puis une requête de confirmation que chaque module de pilotage est désactivé, et l'étape d'activation (200) des modules de pilotage n'est mise en oeuvre que lorsque la désactivation de tous les modules de pilotage a été confirmée au module de production.
Description
PROCEDE DE TRAITEMENT DE DONNEES DE POSITION D'UN MOTEUR
PAR UN CALCULATEUR MULTI-COEURS
L'invention concerne un procédé de traitement de données de position d'un moteur de véhicule automobile mis en œuvre par un calculateur électronique multi-cœurs.
L'invention s'applique notamment à la gestion d'une perte de synchronisation du calculateur électronique par rapport à la position du moteur, ou à la gestion de modes de fonctionnement du moteur pour lesquels des commandes de pilotage du moteur doivent être interrompues, telles qu'un fonctionnement du moteur en rotation inverse ou une reprise du moteur après une interruption temporaire destinée à économiser du carburant (interruption « Stop and Start »).
Un calculateur électronique de véhicule automobile est classiquement un microcontrôleur comprenant au moins un module logiciel de pilotage du moteur du véhicule automobile, adapté par exemple pour piloter l'injection de carburant, l'allumage du carburant, etc.
Les commandes réalisées par les modules de pilotage du moteur doivent être synchronisées à la position angulaire du moteur pour permettre un bon fonctionnement de ce dernier.
Pour réaliser la synchronisation du pilotage du moteur à la position angulaire de celui-ci, le calculateur électronique comprend également un module logiciel de production de données de position angulaire du moteur, et un compteur angulaire commandé par le module de production de données. Le compteur angulaire est un compteur fixe de résolution angulaire fixée, de sorte que chaque coup compté par le compteur correspond à une valeur d'angle fixe du vilebrequin du moteur.
Le module logiciel de production de données de position angulaire du moteur est en outre adapté pour recevoir, en provenance de capteurs dédiés, des informations concernant la position du vilebrequin et de l'arbre à came du moteur.
A partir de ces informations, ce module détermine une position de référence du moteur correspondant à une valeur nulle d'angle du vilebrequin du moteur. En référence à la figure 1 , cette valeur de référence associée au comptage par le compteur angulaire permet d'associer à chaque position angulaire du compteur angulaire une position angulaire correspondante du moteur, et donc de déterminer une position angulaire du moteur à chaque instant en fonction de celle du compteur angulaire. Ceci permet de synchroniser des commandes de pilotage du moteur à la position angulaire de celui-ci.
Dans certaines circonstances il peut arriver que la synchronisation entre la position du moteur et la position du compteur angulaire soit perdue. C'est le cas par
exemple si des données relevées par les capteurs de position du vilebrequin ou de l'arbre à came du moteur sont erronées, ou en cas de calage du moteur, etc.
Dans ces cas, la position angulaire du moteur ne peut plus être déterminée à partir de celle du compteur angulaire. Il s'ensuit un risque que des commandes générées par les modules logiciels de pilotage du moteur (par exemple allumage du carburant) soient exécutées à des moments inappropriés par rapport à la position réelle du moteur. Ceci peut fortement dégrader le moteur.
Il est donc connu, en cas de perte de synchronisation du moteur, de figer le compteur angulaire afin de protéger le moteur, et d'arrêter l'exécution des commandes par les modules logiciels de pilotage du moteur avant de réinitialiser le compteur angulaire.
Pour ce faire, une commande de désactivation est typiquement envoyée par le module de production de données à ces modules dès qu'une perte de synchronisation est détectée. Puis, une fois les commandes désactivées, une nouvelle synchronisation du moteur est lancée en réinitialisant le compteur angulaire, c'est-à-dire en le faisant redémarrer à une position angulaire initiale nulle.
Classiquement, les microcontrôleurs utilisés en tant que calculateurs électroniques de véhicules automobiles sont des microcontrôleurs mono-cœur, c'est-à- dire que le microcontrôleur ne comprend qu'un seul cœur physique, ou encore un seule ensemble de circuits électroniques, permettant d'exécuter les différentes applications logicielles du microcontrôleur.
Dans le cas de microcontrôleurs mono-cœur, une série de commandes est exécutée de manière séquentielle et synchrone. De ce fait, l'implémentation par le microcontrôleur d'une fonction d'arrêt de commande des modules de pilotage avant de mettre en œuvre une nouvelle synchronisation du moteur implique que les commandes sont nécessairement arrêtées au moment où une nouvelle synchronisation a lieu et où le compteur angulaire est réinitialisé.
Or, certains microcontrôleurs de véhicules automobiles ont désormais des structures multi-cœurs, c'est-à-dire qu'ils comprennent plusieurs modules physiques ou cœurs indépendants, qui sont adaptés pour exécuter des programmes en parallèle de façon totalement autonome.
Ce caractère multi-cœurs supprime le caractère séquentiel de l'implémentation des fonctions par le microcontrôleur. En particulier, le fait de faire suivre une commande de désactivation des modules de pilotage du moteur d'une commande de réinitialisation du compteur angulaire ne permet pas de garantir, lors du redémarrage du compteur angulaire, que les modules de pilotage ont été effectivement désactivés.
Il en résulte un risque que des commandes soient lancées par les modules de pilotage du moteur après une réinitialisation du compteur angulaire, et que ces commandes soient complètement désynchronisées de la position angulaire du moteur, et causent des dégradations de ce dernier.
Par ailleurs, la resynchronisation du moteur doit avoir lieu le plus vite possible après la perte de synchronisation et il n'est pas envisageable d'attendre un laps de temps long pour s'assurer que l'ensemble des modules de pilotage du moteur sont désactivés.
L'invention a pour but de proposer une solution à la perte de synchronisation du moteur dans le cas d'un calculateur électronique multi-cœurs.
En particulier, un but de l'invention est de permettre de garantir la désactivation des commandes des modules de pilotage du moteur avant de réinitialiser un compteur angulaire en cas de perte de synchronisation du moteur.
Un autre but de l'invention est de permettre une désactivation rapide des modules de pilotage du moteur dans d'autres circonstances où il n'y a pas de pertes de synchronisation du moteur mais où le fonctionnement de celui-ci peut générer des déclenchements inadaptés de commandes (par exemple en cas de rotation inverse ou après une interruption temporaire du moteur).
Un autre but de l'invention est de permettre une désactivation rapide des modules de pilotage du moteur lorsque la position du moteur déterminée par le module de production n'est pas valide.
A cet égard, l'invention a pour objet un procédé de traitement de données de position d'un moteur de véhicule automobile, mis en œuvre par un calculateur électronique multi-cœurs comprenant :
• au moins une entrée, pour recevoir une valeur de position angulaire du vilebrequin, d'un capteur de position angulaire du vilebrequin,
• un module logiciel de production de données de position angulaire du moteur, adapté pour générer une position angulaire de référence à partir d'au moins les informations fournies par ledit capteur de position angulaire du vilebrequin, et
• au moins un module logiciel de pilotage du moteur en fonction des données de position angulaire, apte à recevoir du module logiciel de production de données la valeur de la position angulaire de référence,
ledit procédé comprenant :
• une étape de désactivation de chaque module logiciel de pilotage du moteur par le module logiciel de production de données de position angulaire du moteur, suivie :
• d'une étape d'activation de chaque module logiciel de pilotage du moteur par le module logiciel de production de données de position angulaire du moteur,
caractérisé en ce que l'étape de désactivation comprend :
• une étape d'envoi par le module logiciel de production de données de position angulaire du moteur, à chaque module logiciel de pilotage du moteur, d'une commande de désactivation,
· suivie par au moins une étape d'envoi par le module logiciel de production de données de position angulaire du moteur, à chaque module logiciel de pilotage du moteur, d'une requête de confirmation que chaque module logiciel de pilotage du moteur est désactivé, et
• l'étape de réactivation des modules logiciels de pilotage du moteur n'est mise en œuvre que lorsque la désactivation de tous les modules logiciels de pilotage du moteur a été confirmée au module logiciel de production de données de position angulaire du moteur.
Avantageusement, mais facultativement, le procédé selon l'invention peut en outre comprendre au moins l'une des caractéristiques suivantes :
· L'étape de désactivation peut comprendre en outre au moins une répétition de l'envoi d'une requête de confirmation de la désactivation des modules de pilotage si au moins un module de pilotage n'a pas confirmé sa désactivation.
• La répétition de l'envoi de la requête de confirmation de la désactivation des modules de pilotage peut être mise en œuvre dans un délai compris entre 5 et 20 ms, de préférence égal à 10 ms, après l'envoi de la première requête de confirmation.
• Le procédé peut comprendre en outre une étape de réinitialisation du calculateur électronique si le module de production ne reçoit pas d'information de confirmation d'un état désactivé de chaque module de pilotage après la ou les répétitions de l'envoi de la commande de désactivation, et l'étape d'activation des modules de pilotage est mise en œuvre après l'étape de réinitialisation du calculateur électronique.
• Le calculateur électronique peut comprendre un compteur angulaire, et le module logiciel de production de données de position du moteur est adapté pour, à partir d'informations de position angulaire d'un vilebrequin et d'un arbre à cames du moteur, générer une position angulaire de référence du moteur, et dans lequel :
- l'étape de désactivation est précédée d'un arrêt du compteur angulaire, et
- l'étape de réactivation est précédée d'une étape de réinitialisation du compteur angulaire et de calcul d'une nouvelle position angulaire de référence du moteur, mise en œuvre lorsque le module de production a reçu l'information de confirmation de l'état désactivé de chaque module de pilotage.
• Chacun du module logiciel de production de données et de chaque module logiciel de pilotage du moteur peut comprendre une couche logicielle bas niveau et une couche logicielle applicative, et l'envoi d'une commande de désactivation par le module de production à chaque module de pilotage comprend :
- l'envoi d'une commande de désactivation par la couche logicielle applicative du module de production à la couche logicielle applicative de chaque module de pilotage, suivie de
- l'envoi d'une commande de désactivation par la couche logicielle applicative de chaque module de pilotage à la couche logicielle bas-niveau respective.
• Chacun du module logiciel de production de données et de chaque module logiciel de pilotage du moteur du calculateur comprenant une couche logicielle bas niveau et une couche logicielle applicative, et la couche logicielle bas niveau de chaque module logiciel de pilotage étant adaptée pour adopter un état « actif », un état « passif » et un état « suspendu », la réception d'une commande de désactivation par un module de pilotage peut entraîner la transition dudit module de l'état « actif » ou de l'état « suspendu » à l'état « passif ».
• Le procédé peut en outre comprendre en outre une étape supplémentaire de désactivation rapide mise en œuvre avant l'étape de désactivation, comprenant l'envoi d'une commande de désactivation rapide de la couche logicielle bas niveau du module de production de données directement à la couche logicielle bas niveau de chaque module de pilotage du moteur.
• La réception d'une commande de désactivation rapide par un module de pilotage entraîne la transition dudit module de l'état « actif » à l'état « suspendu ».
• Le procédé peut comprendre en outre une étape supplémentaire mise en œuvre avant l'étape de désactivation, au cours de laquelle la couche logicielle bas niveau de chaque module de pilotage du moteur passe d'un état « actif » à un état « suspendu » lorsqu'une valeur de référence de position du moteur fournie par le module de production est erronée.
Selon un autre objet, l'invention concerne un calculateur électronique multi- coeurs de véhicule automobile comprenant :
• un module logiciel de production de données de position du moteur, et
• au moins un module logiciel de pilotage du moteur en fonction des données de position,
caractérisé en ce qu'il est adapté pour mettre en œuvre le procédé selon la description qui précède.
Le procédé proposé permet, par la confirmation auprès du module de production des données de position angulaire du moteur du fait que les modules de pilotage ont bien été désactivés, d'éviter un déclenchement inapproprié de commandes du moteur par un calculateur électronique multi-cœurs, lors d'une réactivation ultérieure de ces modules de pilotage.
Ceci est applicable notamment en cas de perte de synchronisation du moteur, et permet de garantir l'arrêt des commandes exécutées par les modules de pilotage du moteur avant la réinitialisation du compteur angulaire.
Ceci est également applicable lors d'une rotation inverse du moteur ou lors d'une phase de fonctionnement en veille comprenant une interruption temporaire du moteur destinée à économiser du carburant (mode « Stop and Start »), même si la synchronisation du moteur n'a pas été perdue.
La possibilité pour les couches logicielles bas niveau des modules de pilotage du moteur d'adopter un étant transitoire « suspendu » en plus d'états « actif » et « passif » permet également une plus grande réactivité du calculateur à des circonstances impliquant l'arrêt des commandes, tout en sécurisant le fonctionnement du calculateur.
D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels :
- La figure 1 , déjà décrite, représente la position du moteur synchronisée avec le compteur angulaire,
- La figure 2, représente schématiquement un calculateur électronique de véhicule automobile,
- Les figures 3a à 3c représentent différentes mises en œuvre d'une étape de désactivation des modules de pilotage en cas d'une perte de synchronisation du moteur,
- Les figures 4a et 4b représentent deux modes de réalisation d'une étape d'envoi de commande de désactivation des modules de pilotage du moteur, - La figure 5 représente une machine à état de la couche bas niveau des modules de pilotage du moteur,
- La figure 6 représente schématiquement les principales étapes d'un procédé de traitement de données,
- La figure 7 est un logigramme représentant schématiquement un exemple détaillé d'un procédé de traitement de données selon un mode de réalisation de l'invention,
- Les figures 8a à 8g représentent les états adoptés par les modules logiciels du calculateur électronique lors de l'implémentation des différentes étapes du procédé de traitement.
Calculateur électronique multi-cœurs
En référence à la figure 2, on a représenté schématiquement un calculateur 1 électronique de véhicule automobile. Le calculateur électronique 1 est typiquement un microcontrôleur, mais en variante pourrait être un circuit intégré de type ASIC, un microprocesseur ou un processeur couplé à une horloge, une mémoire et des interfaces de communication.
Dans tous les cas, le calculateur électronique 1 est de type multi-cœurs, c'est- à-dire qu'il comprend un processeur comprenant plusieurs cœurs physiques, c'est-à-dire plusieurs circuits capables d'exécuter des programmes de façon autonomes.
Le processeur du calculateur électronique est adapté pour exécuter des instructions de programme correspondant à différentes fonctionnalités à exécuter. En particulier, le processeur est adapté pour exécuter des instructions de programme correspondant à un module logiciel 10 de production de données de position angulaire du moteur du véhicule, et une pluralité de modules logiciels 20 de pilotage du moteur en fonction de données de position produites par le module 10. Les modules 20 de pilotages comprennent par exemple un module de pilotage des injecteurs du moteur du véhicule, un module de pilotage de l'allumage du carburant, etc.
Les instructions de programme pour l'exécution des modules logiciels 10, 20 sont installées sur une mémoire dédiée du calculateur électronique. Dans la suite, on parlera plus simplement des modules logiciels 10, 20 du calculateur électronique.
Le module logiciel 10 est adapté pour recevoir en entrée, d'un capteur 2 de mesure de la position angulaire du vilebrequin du moteur, une valeur de position angulaire du vilebrequin comprise entre 0 et 720° ou 0 et 720degré CRK.
Avantageusement, le module logiciel 10 est également adapté pour recevoir en entrée, d'un capteur 3 de mesure de la position angulaire de l'arbre à came du moteur, une valeur de position angulaire de l'arbre à came comprise entre 0 et 360° .
Un cycle moteur correspondant à deux tours de vilebrequin, le croisement des informations de position angulaire du vilebrequin et de la came par le module logiciel 10 de production de données permet de déterminer la position angulaire exacte du moteur.
A cet effet, le module logiciel 10 de production de données de position est également adapté pour générer une position angulaire de référence du moteur à partir des informations fournies par les capteurs 2 et le cas échéant 3. Typiquement, cette position angulaire de référence est une position angulaire nulle du moteur, correspondant au démarrage d'un cycle. Cette position angulaire est appelée TDC0.
Dans la suite, on appelle synchronisation le fait pour le module 10 de production de données de générer la valeur de la position angulaire de référence TDCO à partir des capteurs 2 et 3.
De plus, pour que les modules logiciel 20 de pilotage du moteur puissent exploiter la position angulaire du moteur, le calculateur électronique 1 comprend en outre un compteur angulaire 30, qui est avantageusement un compteur libre (ou free running timer) adapté pour compter un nombre de coups entre 0 et une valeur maximale, tel que chaque coup correspond à une résolution angulaire fixe.
Le compteur angulaire 30 est piloté par le module logiciel 10 de production de données. En particulier, le module logiciel 10 de production de données est adapté pour démarrer, arrêter, et remettre à zéro le compteur angulaire 30.
Chaque module 20 de pilotage du moteur reçoit du module logiciel 10 de production de données la valeur de la position angulaire de référence TDCO, et est en outre adapté pour exécuter, en fonction de cette valeur et de la position du compteur angulaire, des commandes d'actionneurs du moteur de manière synchronisée avec celui- ci.
En effet, comme sur la figure 2 présentée ci-avant, la mise en correspondance de la position de référence du moteur et du compteur angulaire permet de déduire, en soustrayant du nombre de coups comptés par le compteur angulaire le nombre de coups correspondant à la position de référence, la position angulaire absolue du moteur. La position du compteur angulaire peut être exploitée d'autres manières, par exemple pour calculer le moment à laquelle une commande doit être envoyée par un module 20 de pilotage, en fonction d'une position angulaire cible correspondante du moteur.
A cet égard, les modules de pilotage 20 sont avantageusement adaptés pour communiquer avec des modules additionnels (non représentés) du calculateur électronique 1 , ayant pour fonction de lire la position angulaire du compteur angulaire 30 et d'exploiter ladite position à partir de la position angulaire de référence du moteur TDCO. Les modules additionnels peuvent ensuite retourner aux modules de pilotage 20 des informations permettant la mise en œuvre des commandes d'actionneurs de manière synchronisée avec le moteur. On connaît par exemple comme module additionnel un module matériel de comparaison de valeur angulaire, ou des modules logiciels de type PMT (pour l'acronyme anglais « Position Minus Timer ») ou ATD (pour l'acronyme anglais « Angle Time Driver »).
Chaque module logiciel 10, 20 comprend une couche logicielle dite bas niveau (également appelé Basic Software, en anglais) BSW1020, et une couche logicielle applicative ASWi0,2o.
La couche logicielle bas niveau BSW10 du module 10 de production de données est la couche logicielle par laquelle le module 10 communique avec les capteurs 2 et 3 pour recevoir les données de position du vilebrequin et de l'arbre à came, et par laquelle le module 10 envoie des instructions de commande au compteur angulaire.
La couche logicielle applicative ASW10 du module 10 est la couche permettant au module de produire la position de référence TDC0, à partir des informations reçues par les capteurs 2 et 3 et transmises par la couche bas niveau BSW10.
La couche logicielle applicative ASW20 d'un module 20 est la couche fournissant des consignes en angles pour la commande d'actionneurs du moteur à la couche bas niveau BSW du module 20.
La couche logicielle bas niveau BSW20 d'un module 20 de pilotage du moteur est la couche logicielle recevant la valeur de la position de référence TDC0 et convertissant, à partir de celle-ci, les consignes en angle vers des consignes en valeurs de compteur angulaire. C'est également la couche logicielle par laquelle le module 20 communique avec un actionneur du moteur (par exemple un injecteur, une bougie) pour le commander.
La structure de ces couches logicielles est visible par exemple sur les figures 4a, 4b et 8a à 8g.
Chaque couche logicielle d'un module 10, 20 est en outre adaptée pour présenter un nombre fini d'états qui seront décrits plus en détails ci-après.
En particulier, la couche applicative et la couche bas niveau de chaque module 20 de pilotage du moteur est adaptée pour présenter un état EP1 dit « actif », et un état EP2 dit « passif ». Lorsque la couche applicative ASW20 et la couche bas niveau BSW20 d'un module présentent l'état actif, alors le module 20 exécute des instructions de commande du moteur 20. Lorsque la couche bas niveau BSW20 présente l'état passif, les commandes du module 20, incluant les commandes des actionneurs du moteur, ainsi que les commandes de modules additionnels visant à exploiter la position du compteur angulaire 30, sont annulées.
La couche applicative ASW10 et la couche bas niveau BSW10 du module 10 de production de données est adaptée pour présenter :
• un état ED1 dit « désactivé » ou passif, typiquement lors d'un démarrage du moteur ou d'une réinitialisation du module, avant une synchronisation du moteur,
• un état ED2 dit « synchonisation en cours », lors de laquelle le module 10 est actif et recherche la position angulaire du moteur pour calculer la valeur de référence TDC0 à partir des valeurs des capteurs 2 et 3, et
• un état ED3 dit « position moteur disponible », qui correspond à un état actif du module une fois que la position angulaire de référence du moteur TDCO a été calculée.
Avantageusement, mais facultativement, un état supplémentaire ED4 dit de « synchronisation suspendue » est prévu pour les couches logicielles du module 10 de production de données, et un état supplémentaire EP3 dit « suspendu » est prévu pour les couches logicielles bas niveau BSW2o des modules 20 de pilotages. Ces états et leur fonctionnement est décrit plus en détails ci-après.
Désactivation des modules de pilotage - cas de la perte de synchronisation En référence à la figure 6, on va maintenant décrire un procédé de traitement de données de position du moteur mis en œuvre par le calculateur électronique 1 décrit ci -avant.
Ce procédé comprend une première étape 100 de désactivation des modules logiciels 20 de pilotage du moteur par le module logiciel 10 de production de données.
La désactivation 100 comprend l'envoi 1 10 d'une commande de désactivation
« ExitSyn » du module 10 de production de données à chaque module 20 de pilotage du moteur. La commande de désactivation permet de faire passer l'état de la couche bas niveau BSW2o de chaque module 20 de pilotage du moteur d'actif à passif, et donc d'annuler toutes les commandes générées par le module 20.
En particulier, l'étape 1 10 d'envoi d'une commande comprend la série de commandes suivantes :
• la couche applicative du module 10 communique une instruction de désactivation à la couche logicielle applicative ASW2o de chaque module 20 de pilotage du moteur, et
· la couche logicielle applicative ASW2o de chaque module 20 passe à l'état passif et communique une instruction de désactivation à la couche bas niveau correspondante BSW20 du module 20.
L'étape 100 de désactivation des modules 20 est avantageusement, mais non limitativement, mise en œuvre en cas de perte de synchronisation entre le compteur angulaire 30 et la position angulaire du moteur. Une telle perte de synchronisation peut survenir par exemple en cas de calage du moteur, de panne ou d'erreur de mesure de l'un des capteurs 2 et 3. La perte de synchronisation peut être détectée par la couche logicielle bas niveau BSW10 ou par la couche logicielle applicative ASW10 du module 10 de production de données qui communique alors l'information à la couche logicielle bas niveau.
Dans ce cas d'une perte de synchronisation, le procédé comprend la mise en œuvre, avant l'étape 100, d'une étape 90 au cours de laquelle la couche bas niveau du
module 10 fige le compteur angulaire 30, et passe la valeur de la position angulaire de référence TDCO du moteur à invalide. Ceci permet de protéger le moteur en empêchant l'implémentation de commandes exploitant la position du compteur angulaire.
Il est nécessaire, pour reprendre un fonctionnement normal à la suite de la perte de synchronisation, de redémarrer le compteur angulaire 30 et pour ce faire de le réinitialiser à une valeur initiale nulle.
Avant de réinitialiser le compteur angulaire 30, il est impératif de désactiver les modules logiciels 20 de pilotage pour arrêter l'envoi de commande aux actionneurs du moteur. En effet, le déclenchement des commandes lors du redémarrage du compteur angulaire 30 serait désynchronisé avec le moteur et pourrait provoquer des défauts de fonctionnement ou des dégradations du moteur.
Or, dans le cas d'un calculateur électronique multi-cœurs 1 , l'envoi d'une instruction de désactivation de la couche logicielle bas niveau BSW2o de chaque module 20, avant la mise en œuvre d'une étape de réactivation 200 de chaque module 20, ne garantit pas que les modules soient effectivement inactivés et en particulier que les commandes respectives générées par les modules soient annulées.
Par conséquent, l'étape de désactivation 100 comprend en outre une étape 120 d'envoi à chaque module de pilotage 20, par le module 10 de production de données, d'une requête de confirmation que le module correspondant 20 est bien désactivé, c'est- à-dire que toutes ses commandes ont été annulées.
Cette requête est une requête synchrone de sorte que le module 10 reçoit immédiatement une réponse de chaque module de pilotage.
Avantageusement, l'étape 120 est mise en œuvre à l'issue d'un délai déterminé, compris entre 5 et 20 ms, par exemple égal à 10 ms, après l'envoi 1 10 de la commande de désactivation.
Lorsque tous les modules de pilotage 20 ont confirmé leur désactivation, le procédé comprend ensuite une étape 200 de réactivation de chaque module de pilotage 20, qui comprend l'envoi, par le module 10 de production de données, d'une commande de réactivation de chaque module de pilotage 20 pour que la couche applicative ASW2o, puis la couche bas niveau BSW2o de chaque module de pilotage 20 adopte l'état actif.
Dans le cas où l'étape 100 a été mise en œuvre à cause d'une perte de synchronisation, le procédé comprend en outre une étape 190 préalable à l'étape 200 au cours de laquelle la couche bas niveau BSW10 du module 10 réinitialise le compteur angulaire 30, c'est-à-dire le redémarre à partir de la valeur initiale 0, recalcule la valeur de la position angulaire de référence du moteur TDCO et la renvoie aux modules de pilotage 20.
En revanche, si en réponse à la requête de confirmation 120, au moins un module de pilotage 20 a indiqué au module de production de données 10 que toutes ses commandes n'étaient pas annulées, le procédé comprend avantageusement la répétition, un nombre déterminé de fois supérieur ou égal à un, de l'étape 120. Cette répétition est mise en œuvre à l'issue d'un délai déterminé écoulé à partir de la précédente mise en œuvre de l'étape 120, le délai étant par exemple compris entre 5 et 20 ms, avantageusement égale à 10 ms.
Dans le cas où, à l'issue de la mise en œuvre répétée de l'étape 120, tous les modules 20 de pilotage n'ont pas confirmé leur désactivation, le procédé comprend une étape 300 de réinitialisation du calculateur électronique 1 . Lors de cette réinitialisation, toutes les couches logicielles de tous les modules sont forcées à passer à l'état « passif » ou « désactivé » et le compteur angulaire est également réinitialisé.
Sur les figures 3a à 3c, on a représenté en abscisse le temps et en ordonnée la valeur du compteur angulaire 30.
En référence à la figure 3a, on a ainsi représenté un exemple de mise en œuvre du procédé dans lequel, au moment d'une perte de synchronisation, le compteur angulaire 30 étant figé, la commande de désactivation est envoyée à l'étape 1 10.
A l'issue d'une temporisation de 10 ms, une requête 120 de confirmation de désactivation est envoyée par le module de production de données 10 à chaque module 20 de pilotage, et chaque module 20 confirme sa désactivation.
Le procédé comprend alors une réinitialisation 190 du compteur angulaire 30 et une réactivation de chaque module de pilotage 20.
Dans le cas de la figure 3b, on a représenté le cas où l'un des modules 20 de pilotage n'est pas désactivé lors de l'envoi de la requête 120 de confirmation de désactivation par le module 10. Dans ce cas, l'étape 200 de réactivation n'a donc pas lieu.
Sur la figure 3c, on a représenté la répétition de l'étape 120. Lorsqu'après la répétition de l'étape 120, au moins l'un des modules n'est toujours pas désactivé, et cette étape est suivie de la réinitialisation 300 du calculateur électronique 1 .
Désactivation rapide des modules de pilotage
Dans certaines circonstances, il peut être nécessaire d'interrompre les commandes envoyées par les modules 20 de pilotage du moteur, même lorsque la synchronisation du moteur n'a pas été perdue.
C'est par exemple le cas lors d'une rotation inverse du moteur. Une telle rotation inverse peut survenir lors d'une diminution brusque du régime moteur à bas régime, ou par exemple lors d'un arrêt momentané du moteur pour économiser la consommation de carburant du véhicule (cas dit « Stop and Start »), lors duquel le moteur peut osciller en rotation avant de s'arrêter.
Dans ces cas, la position angulaire du moteur continue d'être suivie, le compteur angulaire 30 n'est pas interrompu et la position angulaire de référence TDCO est valide. Néanmoins, dans ce type de circonstance on ne souhaite pas commander le moteur (par exemple on ne souhaite pas déclencher d'injection ou d'allumage du carburant), et il faut annuler les commandes des modules 20 de pilotage du moteur. De plus, les commandes doivent alors être annulées le plus rapidement possible pour éviter une commande intempestive du moteur lors de la reprise d'une rotation normale du moteur et lors de la rotation inverse.
Dans ce cas, le procédé comprend alors une étape 400 de désactivation rapide des modules de pilotage 20. En référence à la figure 4b, cette étape 400 comprend l'envoi, directement de la couche bas niveau BSW10 du module 10 de production de données à la couche bas niveau BSW2o de chaque module 20 de pilotage, d'une commande de désactivation.
En effet, cette commande est plus rapide que celle de l'étape 1 10 représentée à la figure 4a et qui nécessite de transiter par les couches applicatives des différents modules.
Selon un mode de réalisation, la réception de la commande de désactivation par une couche bas niveau BSW2o d'un module de pilotage, lorsque ladite commande est envoyée par la couche bas niveau du module 10, entraine le passage à l'état désactivé de ladite couche.
En variante, la couche bas niveau BSW2o d'un module de pilotage peut passer à l'état suspendu, comme décrit plus en détails ci-après.
Dans tous les cas, l'étape 400 de désactivation rapide des modules 20 entraine une différence d'état entre la couche applicative, qui est restée à l'état actif, et la couche bas niveau d'un module 20. Cette décorrélation des états des couches logicielles ne doit pas durer pour éviter des dysfonctionnements du calculateur.
Par conséquent, l'étape 400 est alors suivie de la mise en œuvre des étapes 100 de désactivation et 200 de réactivation ou 300 de réinitialisation décrites précédemment, de manière à désactiver la couche applicative, puis la couche bas niveau de chaque module 20 de pilotage du moteur, avant de les réactiver. Ceci permet de réétablir une corrélation entre les couches applicatives des modules 20 et les couches bas niveau correspondantes.
Etat suspendu
Comme évoqué ci-avant, selon un mode de réalisation particulier, la couche logicielle bas niveau des modules 20 de pilotage du moteur peut adopter, outre l'état actif EP1 et l'état passif EP2, un état dit « suspendu » EP3.
Cet état est un état transitoire comprenant, comme l'état passif, une désactivation de toutes les commandes d'actionneurs et de toutes les commandes de modules pour l'exploitation du compteur angulaire. Cependant contrairement à l'état passif, cet état est prévu pour relever l'incohérence avec l'état de la couche applicative du même module, et son adoption ne génère pas de risque de dysfonctionnement du calculateur.
En référence à la figure 5, l'état suspendu peut être adopté soit à partir de l'état passif, soit à partir de l'état actif. En revanche, à partir de l'état suspendu, seul l'état passif peut être adopté.
Plus précisément, le fonctionnement de la machine à état correspondant à la couche logicielle bas niveau d'un module 20 de pilotage du moteur est le suivant :
• passage d'un état actif ou suspendu à un état inactif à réception d'une commande de désactivation 1 10 provenant de la couche applicative du module 10 de production de données,
· passage d'un état inactif à l'état actif à réception d'une commande d'activation
200 provenant de la couche applicative du module 10 de production de données,
• dans un mode de réalisation, passage d'un état actif à suspendu à réception d'une commande de désactivation rapide 400 provenant de la couche bas niveau du module 10 de production de données,
· passage d'un état inactif à suspendu à réception d'une commande d'activation provenant de la couche applicative du module 10 de production de données avec une valeur de position angulaire de référence du moteur invalide.
De manière plus détaillée, l'état suspendu peut être adopté dans les différents cas suivants.
Tout d'abord, dans le cas d'une désactivation rapide 400 des modules de pilotage 20, lors de laquelle la couche bas niveau d'un module 20 reçoit une requête de désactivation émise par la couche bas niveau BSW10 du module de production de données 10. Cette requête peut faire passer la couche bas niveau BSW2o d'un module 20 de pilotage à l'état suspendu plutôt qu'à l'état passif. On note 500 une étape de passage à l'état suspendu de la couche BSW2o d'un module 20.
En variante, l'état suspendu peut être adopté 500 dans le cas où, au cours d'une étape 200 d'activation des modules 20 de pilotage du moteur, la synchronisation du moteur est immédiatement perdue. Dans ce cas, les couches applicatives des modules 20 ont déjà été activées mais pas les couches bas niveau. La valeur de référence TDC0 qui est envoyée par le module 10 à chaque module 20 est alors invalide. Lorsque les couches bas niveau BSW2o des modules 20 reçoivent la valeur de référence TDC0 et constatent que cette donnée invalide, ces couches passent à l'état suspendu. Ce passage
à l'état suspendu 500 en cas de désactivation rapide ou de perte de synchronisation rapide permet de désactiver toutes les commandes du module 20 sans pour autant mettre la couche bas niveau du module 20 en état passif alors que la couche applicative est toujours en état actif. Le fonctionnement du module est donc plus robuste avec cet état.
Dans ce cas, à la suite du passage à l'état suspendu l'étape 100 de désactivation est mise en œuvre, et la couche bas niveau du module 20 passe de l'état suspendu à l'état passif à réception de la commande de désactivation provenant de la couche applicative du module 10 de production de données, via la couche applicative du module 20. L'étape 100 est suivie comme décrit précédemment d'une étape 200 de réactivation ou d'une étape 300 de réinitialisation.
Selon un autre mode de réalisation, l'état suspendu peut être utilisé dans le cas d'une suspension de la synchronisation. Dans ce mode de réalisation, les machines à état correspondant aux couches logicielles ASW10 et BSW10 du module 10 de production de données présentent l'état supplémentaire « synchronisation moteur suspendue ».
Ce type de cas peut notamment intervenir lorsque le véhicule ne comprend pas de capteur de position de l'arbre à came ou que la position de l'arbre à came n'est pas disponible. Dans ce cas il n'est pas possible de déterminer uniquement d'après la position du vilebrequin la position angulaire du moteur et l'état du cycle moteur, puisqu'un cycle moteur couvre deux tours de vilebrequin.
Alors, une première position angulaire de référence TDCO du moteur peut être déterminée par le module 10 de production de données en faisant une hypothèse sur le fait que le cycle du moteur correspond au premier ou au deuxième tour du vilebrequin, cette position angulaire étant communiquée normalement aux modules 20 de pilotage du moteur. Les couches logicielles du module 10 de production de données sont alors à l'état « position moteur disponible ».
Le module 10 de production de données surveille ensuite le fonctionnement du moteur en fonction de cette valeur de position angulaire de référence TDCO. La détection d'un dysfonctionnement du moteur permet le cas échéant de constater que l'hypothèse adoptée pour le calcul de la valeur de référence TDCO était invalide.
Dans ce cas, les couches logicielles du module 10 passent à l'état
« synchronisation moteur suspendue », ce qui entraine directement l'envoi d'une commande de désactivation rapide 400 de la couche bas niveau du module 10 à la couche bas niveau de chaque module 20 de pilotage pour que celui-ci passe de l'état actif à l'état suspendu.
La commande de désactivation rapide 400 est dans ce cas également suivie d'une étape 100 de désactivation et d'une étape 200 de réactivation ou 300 de réinitialisation conformes à la description qui précède, afin d'harmoniser les états des
différentes couches logicielles des modules et de garantir l'arrêt des commandes avant la reprise du fonctionnement normal.
En référence à la figure 7, on va maintenant décrire un exemple de mise en œuvre du procédé de traitement intégrant les différentes situations exposées ci-avant.
Lors d'une situation initiale SO, la synchronisation du moteur n'est pas réalisée, et les modules 10, 20 de production de données et de pilotage du moteur sont inactifs. Cette situation correspond aux états de la figure 8a.
De retour à la figure 7, avant la recherche d'une synchronisation moteur SO, le procédé comprend une étape 120 de vérification que tous les modules de pilotage 20 sont inactifs. Si non (N), on revient à la situation initiale S0, si oui (O), le procédé poursuit avec l'établissement de la synchronisation moteur S1 .
Lors d'une étape S2 on interroge si la synchronisation moteur a été atteinte. Si non (N), l'étape S1 synchronisation est implémentée tant que la synchronisation n'est pas atteinte. Si oui (O), le procédé poursuit à l'étape S3 dans lequel la synchronisation est effectuée.
Le procédé comprend alors une étape 200 d'activation des modules de pilotage 20 du moteur, comprenant d'abord l'activation de la couche logicielle applicative 20 desdits modules, puis l'activation de la couche logicielle bas niveau des modules. L'état obtenu à l'issue de l'étape 200 est l'état représenté à la figure 8c.
Le procédé comprend ensuite une étape S4 au cours de laquelle on détermine si la position de référence du moteur TDCO est valide. Si non (N), alors le procédé comprend une étape 500 de passage à l'état suspendu des couches bas niveau des modules de pilotage du moteur. Cette étape est suivie d'une étape 100 de désactivation des modules 20 de pilotage du moteur.
Si la position de référence TDCO est valide (O), le procédé poursuit avec une étape S5 où la position du moteur est calculée à partir de la position de référence TDCO.
Le procédé comprend ensuite une étape S6 au cours de laquelle on détermine si le véhicule est dans une situation de rotation inverse. Si oui (O), le procédé comprend une étape 400 de désactivation rapide des couches bas niveau des modules 20 de pilotage du moteur. Cette étape peut entraîner le passage 500 à l'état suspendu des couches bas niveau des modules de pilotage du moteur, et est suivie d'une étape 100 de désactivation des modules de commande 20.
Si non (N), le procédé comprend une étape S7 au cours de laquelle on vérifie à nouveau si la position du moteur déterminée par le module 10 est toujours valide. Si oui (O), les commandes des modules 20 de pilotage du moteur peuvent être exécutées lors d'une étape S8, qui reboucle à l'étape S5.
Si non (N), il s'agit d'un cas de perte de synchronisation du moteur. Le procédé comprend alors une étape 90 d'arrêt du compteur angulaire, suivi d'une étape 100 de désactivation des modules de commande, comprenant l'inactivation des couches applicatives ASW2o des modules 20, puis des couches bas niveau BSW2o desdits modules.
A l'issue de l'étape 100, le procédé reboucle sur l'étape S0.
En référence aux figures 8a à 8g, on va présenter le fonctionnement des différentes machines à état des modules 10, 20 lors de la mise en œuvre du procédé de traitement de données.
Sur la figure 8a, les couches logicielles du module 10 sont à l'état ED1 désactivé, et les couches logicielles de chaque module 20 sont à l'état EP1 inactif. Il s'agit d'un cas où tous les modules sont désactivés, par exemple au démarrage du moteur où suite à la mise en œuvre d'une étape 100 de désactivation par exemple en cas de perte de synchronisation avec une étape 90 d'arrêt du compteur angulaire.
Sur la figure 8b, la synchronisation du moteur est en cours de mise en œuvre.
La transition 1 amène les couches logicielles du module 10 à l'état ED2 « synchronisation moteur en cours », tandis que les couches logicielles des modules 20 sont toujours à l'état EP1 inactif.
Sur la figure 8c, la synchronisation moteur est obtenue par le module 10. La transition 2 amène les couches logicielles du module 10 à l'état ED3 de position du moteur disponible. De ce fait la couche applicative de chaque module 20 est activée, de sorte qu'à l'issue de la transition 3 elle adopte l'état EP2 actif. L'activation de cette couche applicative entraîne l'activation de la couche bas niveau correspondante, correspondant à la transition 4 qui amène ladite couche à l'état actif EP2.
Sur la figure 8d, on a représenté le cas d'une perte de synchronisation immédiate lors de l'activation des modules 20 de pilotage. Dans ce cas la transition 5 amène les couches logicielles du module 10 de l'état ED3 synchronisé à l'état ED1 désactivé. L'état de la couche applicative ASW2o des modules 20 est alors toujours actif. En revanche la réception par la couche bas niveau BSW2o d'une valeur de référence TDC0 invalide entraine la transition 9 de passage à l'état suspendu EP3 de la couche correspondante.
Sur la figure 8e, on a représenté le cas d'une suspension de la synchronisation, où les couches logicielles passent (transition 14) à l'état ED4 de suspension de la synchronisation, ce qui entraine l'envoi d'une commande de désactivation rapide 400 à la couche bas niveau BSW20 du module 20, qui passe à l'état EP3 suspendu par la transition 12.
Sur la figure 8f, lorsque la synchronisation a été suspendue, la désactivation rapide est suivie d'une étape 100 de désactivation des modules 20, ce qui amène la couche applicative de chaque module à l'état EP1 inactif par la transition 6, et la couche bas niveau à l'état EP1 inactif par la transition 10.
Enfin, la figure 8g décrit l'exemple d'une reprise de la synchronisation dans lequel les couches logicielles du module 10 repassent à l'état synchronisé ED3 par la transition 13. Les couches logicielles applicative et bas niveau des modules 20 repassent à l'état actif EP2 par les transitions 3 et 4 respectivement.
Claims
1 . Procédé de traitement de données de position d'un moteur de véhicule automobile, mis en œuvre par un calculateur électronique (1 ) multi-cœurs comprenant :
• au moins une entrée, pour recevoir une valeur de position angulaire du vilebrequin, d'un capteur de position angulaire du vilebrequin, « un module logiciel (10) de production de données de position angulaire du moteur, adapté pour générer une position angulaire de référence (TDCO) à partir d'au moins les informations fournies par ledit capteur de position angulaire du vilebrequin, et
• au moins un module logiciel (20) de pilotage du moteur en fonction des données de position angulaire, apte à recevoir du module logiciel (10) de production de données la valeur de la position angulaire de référence (TDCO),
ledit procédé comprenant :
• une étape de désactivation (100) de chaque module logiciel de pilotage du moteur par le module logiciel (10) de production de données de position angulaire du moteur, suivie :
• d'une étape d'activation (200) de chaque module logiciel de pilotage du moteur par le module logiciel (10) de production de données de position angulaire du moteur,
caractérisé en ce que l'étape de désactivation (100) comprend :
· une étape d'envoi (1 10) par le module logiciel de production de données de position angulaire du moteur, à chaque module logiciel de pilotage du moteur, d'une commande de désactivation,
• suivie par au moins une étape (120) d'envoi par le module logiciel (10) de production de données de position angulaire du moteur, à chaque module logiciel (20) de pilotage du moteur, d'une requête de confirmation que chaque module logiciel (20) de pilotage du moteur est désactivé, et
• l'étape de réactivation (200) des modules logiciels de pilotage du moteur n'est mise en œuvre que lorsque la désactivation de tous les modules logiciels (20) de pilotage du moteur a été confirmée au module logiciel (10) de production de données de position angulaire du moteur.
2. Procédé de traitement de données selon la revendication 1 , dans lequel l'étape de désactivation (100) comprend en outre au moins une répétition de l'envoi (120)
d'une requête de confirmation de la désactivation des modules de pilotage si au moins un module de pilotage n'a pas confirmé sa désactivation.
3. Procédé de traitement de données selon la revendication 2, dans lequel la répétition de l'envoi (120) de la requête de confirmation de la désactivation des modules de pilotage est mise en œuvre dans un délai compris entre 5 et 20 ms, de préférence égal à 10 ms, après l'envoi de la première requête de confirmation.
4. Procédé de traitement de données selon l'une des revendications 2 ou 3, comprenant en outre une étape de réinitialisation (300) du calculateur électronique (1 ) si le module de production ne reçoit pas d'information de confirmation d'un état désactivé de chaque module de pilotage après la ou les répétitions de l'envoi de la commande de désactivation, et l'étape d'activation des modules de pilotage est mise en œuvre après l'étape de réinitialisation du calculateur électronique.
5. Procédé de traitement de données selon l'une des revendications précédentes, dans lequel le calculateur électronique (1 ) comprend un compteur angulaire (30), et le module logiciel (10) de production de données de position du moteur est adapté pour, à partir d'informations de position angulaire d'un vilebrequin et d'un arbre à cames du moteur, générer une position angulaire de référence du moteur, et dans lequel :
• l'étape de désactivation (100) est précédée d'un arrêt du compteur angulaire (90), et
· l'étape de réactivation (200) est précédée d'une étape (190) de réinitialisation du compteur angulaire et de calcul d'une nouvelle position angulaire de référence du moteur, mise en œuvre lorsque le module de production de données de position angulaire du moteur a reçu l'information de confirmation de l'état désactivé de chaque module logiciel de pilotage du moteur.
6. Procédé de traitement de données selon l'une des revendications précédentes, dans lequel chacun du module logiciel (10) de production de données de position angulaire du moteur et de chaque module logiciel de pilotage du moteur (20) comprend une couche logicielle bas niveau (BSW10, BSW2o) et une couche logicielle applicative (ASW10, ASW2o), et l'envoi d'une commande de désactivation (1 10) par le module de production de données de position angulaire du moteur à chaque module logiciel de pilotage du moteur comprend :
• l'envoi d'une commande de désactivation par la couche logicielle applicative du module de production de données de position angulaire du moteur à la couche logicielle applicative de chaque module logiciel de pilotage du moteur, suivie de
• l'envoi d'une commande de désactivation par la couche logicielle applicative de chaque module logiciel de pilotage du moteur à la couche logicielle bas-niveau respective.
7. Procédé de traitement selon l'une des revendications précédentes, chacun du module logiciel de production de données (10) de position angulaire du moteur et de chaque module logiciel de pilotage du moteur (20) du calculateur (1 ) comprenant une couche logicielle bas niveau (BSW10, BSW2o) et une couche logicielle applicative (ASW10, ASW20), et la couche logicielle bas niveau de chaque module logiciel de pilotage du moteur étant adaptée pour adopter un état « actif », un état « passif » et un état « suspendu », dans lequel la réception d'une commande de désactivation (1 10) par un module de pilotage du moteur (20) entraîne la transition dudit module de l'état « actif » ou de l'état « suspendu » à l'état « passif ».
8. Procédé de traitement de données selon l'une des revendications précédentes, comprenant en outre une étape supplémentaire de désactivation rapide (400) mise en œuvre avant l'étape de désactivation (100), comprenant l'envoi d'une commande de désactivation rapide de la couche logicielle bas niveau (BSW10) du module (10) de production de données de position angulaire du moteur directement à la couche logicielle bas niveau (BSW20) de chaque module (20) de pilotage du moteur.
9. Procédé de traitement de données selon les revendications 7 et 8 en combinaison, dans lequel la réception d'une commande de désactivation rapide (400) par un module logiciel de pilotage du moteur entraîne la transition dudit module de l'état « actif » à l'état « suspendu ».
10. Procédé de traitement de données selon l'une des revendications 7 à 9, comprenant en outre une étape supplémentaire mise en œuvre avant l'étape de désactivation, au cours de laquelle la couche logicielle bas niveau de chaque module logiciel de pilotage du moteur passe d'un état « actif » à un état « suspendu » lorsqu'une valeur de référence de position du moteur fournie par le module de production de données de position angulaire du moteur est erronée.
1 1 . Calculateur électronique multi-coeurs (1 ) de véhicule automobile comprenant :
· un module logiciel (10) de production de données de position du moteur, et
• au moins un module logiciel (20) de pilotage du moteur en fonction des données de position,
caractérisé en ce qu'il est adapté pour mettre en œuvre le procédé selon l'une des revendications qui précèdent.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/342,571 US10767583B2 (en) | 2016-10-21 | 2017-10-17 | Method for processing of motor position data by a multi-core computer |
| CN201780064835.5A CN109844288B (zh) | 2016-10-21 | 2017-10-17 | 通过多核计算机处理发动机位置数据的方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1660236 | 2016-10-21 | ||
| FR1660236A FR3057840B1 (fr) | 2016-10-21 | 2016-10-21 | Procede de traitement de donnees de position d'un moteur par un calculateur multi-cœurs |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018073532A1 true WO2018073532A1 (fr) | 2018-04-26 |
Family
ID=57750210
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2017/052855 Ceased WO2018073532A1 (fr) | 2016-10-21 | 2017-10-17 | Procédé de traitement de données de position d'un moteur par un calculateur multi-coeurs |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10767583B2 (fr) |
| CN (1) | CN109844288B (fr) |
| FR (1) | FR3057840B1 (fr) |
| WO (1) | WO2018073532A1 (fr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3083572A1 (fr) * | 2018-07-06 | 2020-01-10 | Continental Automotive France | Cible de vilebrequin avec dent entaillee et procede de synchronisation d'un moteur a combustion interne |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4434833A1 (de) * | 1994-09-29 | 1996-04-04 | Bosch Gmbh Robert | Einrichtung zur Erkennung des Rückdrehens eines rotierenden Teiles einer Brennkraftmaschine |
| DE10206182A1 (de) * | 2002-02-14 | 2003-09-04 | Siemens Ag | Verfahren für eine Motorsteuerung zur Ansteuerung einer Brennkraftmaschine |
| US6644273B1 (en) * | 2002-06-24 | 2003-11-11 | Mitsubishi Denki Kabushiki Kaisha | Internal combustion engine control apparatus |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102005060665A1 (de) * | 2005-12-19 | 2007-06-21 | Robert Bosch Gmbh | Verfahren und Teilnehmer zum Austausch von Informationen zwischen Teilnehmern eines Kommunikationssystems in einem Kraftfahrzeug |
| WO2011150487A1 (fr) * | 2010-05-31 | 2011-12-08 | Blutip Power Technologies Ltd. | Procédé et système pour améliorer l'économie de carburant et maîtriser les émissions d'un moteur |
| DE102010042533A1 (de) * | 2010-10-15 | 2012-04-19 | Bayerische Motoren Werke Ag | Einrichtung zur Erkennung der Ist-Kurbelwellenposition nach einem Neustart einer Brennkraftmaschine |
| US8919099B2 (en) * | 2011-06-10 | 2014-12-30 | GM Global Technology Operations LLC | System and method for determining an ammonia generation rate in a three-way catalyst |
| JP5817505B2 (ja) | 2011-12-21 | 2015-11-18 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
| FR2995466B1 (fr) * | 2012-09-13 | 2014-08-29 | Renault Sa | Systeme et procede de gestion de l'alimentation electrique d'au moins un equipement au redemarrage automatique d'un moteur thermique de vehicule |
| US20150354479A1 (en) * | 2012-12-04 | 2015-12-10 | Blutip Power Technologies Inc. | Improving engine performance by adjusting angular position sensor signal timing |
| CN103245367B (zh) * | 2013-04-23 | 2016-06-01 | 联合汽车电子有限公司 | 曲轴位置检测装置及曲轴信号轮 |
| DE102013214303A1 (de) * | 2013-07-22 | 2015-01-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Ermittlung einer Position einer Nockenwelle und einer Phase einer Verbrennungskraftmaschine |
| FR3025601B1 (fr) * | 2014-09-04 | 2019-03-22 | Continental Automotive France | Calculateur de vehicule et procede de detection de type de capteur de vilebrequin |
| EP3321628B1 (fr) * | 2016-11-10 | 2020-01-01 | Klingelnberg AG | Dispositif de mesure de coordonnées doté d'un capteur optique et procédé correspondant |
| CN106443046B (zh) * | 2016-11-23 | 2023-04-07 | 福州大学 | 一种基于变密度正弦条纹的转轴转速测量装置及方法 |
| CN110869596B (zh) * | 2017-05-05 | 2023-06-13 | 伍德沃德有限公司 | 双燃料燃烧强度 |
| US20190040805A1 (en) * | 2017-08-01 | 2019-02-07 | Woodward, Inc. | Pressure-Based Detection of Poor Fire and Misfire |
-
2016
- 2016-10-21 FR FR1660236A patent/FR3057840B1/fr active Active
-
2017
- 2017-10-17 WO PCT/FR2017/052855 patent/WO2018073532A1/fr not_active Ceased
- 2017-10-17 US US16/342,571 patent/US10767583B2/en active Active
- 2017-10-17 CN CN201780064835.5A patent/CN109844288B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4434833A1 (de) * | 1994-09-29 | 1996-04-04 | Bosch Gmbh Robert | Einrichtung zur Erkennung des Rückdrehens eines rotierenden Teiles einer Brennkraftmaschine |
| DE10206182A1 (de) * | 2002-02-14 | 2003-09-04 | Siemens Ag | Verfahren für eine Motorsteuerung zur Ansteuerung einer Brennkraftmaschine |
| US6644273B1 (en) * | 2002-06-24 | 2003-11-11 | Mitsubishi Denki Kabushiki Kaisha | Internal combustion engine control apparatus |
Non-Patent Citations (6)
| Title |
|---|
| AUTOSAR: "Layered Sotware Architecture Release 4.0", 17 January 2012 (2012-01-17), XP055392936, Retrieved from the Internet <URL:https://automotivetechis.files.wordpress.com/2012/05/autosar_exp_layeredsoftwarearchitecture.pdf> [retrieved on 20170721] * |
| GEOFF EMERSON ET AL: "AN3769, Using the Engine Position (CRANK and CAM) eTPU Functions", 28 September 2012 (2012-09-28), XP055392335, Retrieved from the Internet <URL:http://cache.nxp.com/docs/en/application-note/AN3769.pdf?fsrch=1&sr=2&pageNum=1> [retrieved on 20170719] * |
| JÖRN SCHNEIDER ET AL: "Migration of Automotive Real-Time Software to Multicore Systems: First Steps towards an Automated Solution", EUROMICRO CONFERENCE ON REAL-TIME SYSTEMS, 1 July 2010 (2010-07-01), Brussels, Belgium, XP055393157 * |
| OSEK: "OSEK/VDX Operating System Specification 2.2.3", 17 February 2005 (2005-02-17), XP055392941, Retrieved from the Internet <URL:http://perso.telecom-paristech.fr/~trobert/osek/osek-api.pdf> [retrieved on 20170721] * |
| PATRICK LETEINTURIER ET AL: "MultiCore Benefits & Challenges for Automotive Applications", SAE TECHNICAL PAPER SERIES, 17 April 2008 (2008-04-17), 2008 World Congress Detroit, Michigan, pages 776 - 4841, XP055164401, DOI: 10.4271/2008-01-0989 * |
| SIMON WIDLUND ET AL: "Migrating a Single-core AUTOSAR Application to a Multi-core Platform: Challenges, Strategies and Recommendations", MASTER'S THESIS IN COMPUTER SCIENCE AND ENGINEERING, 19 June 2017 (2017-06-19), XP055392947, Retrieved from the Internet <URL:http://publications.lib.chalmers.se/records/fulltext/250043/250043.pdf> [retrieved on 20170721] * |
Also Published As
| Publication number | Publication date |
|---|---|
| FR3057840B1 (fr) | 2018-12-07 |
| US10767583B2 (en) | 2020-09-08 |
| FR3057840A1 (fr) | 2018-04-27 |
| CN109844288A (zh) | 2019-06-04 |
| US20200056556A1 (en) | 2020-02-20 |
| CN109844288B (zh) | 2021-12-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5195738B2 (ja) | 回転センサの異常判定装置 | |
| US20110172901A1 (en) | Control device for controlling automatic engine stop and start | |
| KR101887974B1 (ko) | 엔진제어기의 안전부팅을 위한 시스템 및 방법 | |
| JP2009024548A (ja) | 内燃機関制御装置 | |
| CN107849993A (zh) | 用于确定车辆发动机的凸轮轴的旋转状态的方法 | |
| JP6101530B2 (ja) | 車載制御装置およびスタータ | |
| JP2011144740A (ja) | 燃料消費節約型車両制御装置 | |
| JP2003083146A (ja) | エンジン逆回転始動防止方法およびその装置 | |
| RU2659312C2 (ru) | Способ для обработки сигнала, поступающего от реверсивного датчика, и соответствующее устройство | |
| WO2018073532A1 (fr) | Procédé de traitement de données de position d'un moteur par un calculateur multi-coeurs | |
| CN104813585B (zh) | 用于处理由双向传感器供应的信号的方法和相应的装置 | |
| CN106499532A (zh) | 一种发动机的快速起动方法 | |
| JPS62651A (ja) | 内燃エンジンの制御装置 | |
| CN111120128B (zh) | 发动机同步检测方法和装置 | |
| FR3138096A1 (fr) | Procédé de gestion d’une phase de calage d’un moteur à combustion interne associé à un moteur électrique | |
| JPH0256517B2 (fr) | ||
| FR2818737A1 (fr) | Procede de detection d'une singularite notamment d'un repere de reference d'un disque phonique associe a l'arbre d'un moteur a combustion interne | |
| JP2013084059A (ja) | 電子制御装置 | |
| JP6828391B2 (ja) | エンジン再始動装置 | |
| EP3418578B1 (fr) | Détection de logiciels | |
| EP1424479A1 (fr) | Architecture de dispositif électronique de détection de la position angulaire d'un arbre de moteur à combustion interne | |
| JP2022090875A (ja) | エンジン制御装置およびエンジン制御方法 | |
| JP6350460B2 (ja) | 電動バルブタイミング制御装置 | |
| JP2015086788A (ja) | 内燃機関の制御装置 | |
| WO2015162351A1 (fr) | Gestion du rechauffage d'un moteur a combustion de vehicule automobile |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17794999 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17794999 Country of ref document: EP Kind code of ref document: A1 |