Engine control unit
The engine control device ensures accurate engine control by using an actual output time acquisition and theoretical value time calculation to verify the angle clock unit's functionality, addressing timing inaccuracies caused by abnormalities.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-01-18
- Publication Date
- 2026-04-07
AI Technical Summary
Existing engine control systems may perform control operations at inappropriate timings due to abnormalities in the angle clock unit, which generates and counts the angle clock, leading to incorrect engine control.
An engine control device with an actual output time acquisition unit, theoretical value time calculation unit, and normal determination unit to ensure the angle clock unit is functioning correctly by comparing actual and theoretical output times.
Guarantees that engine control is performed at the appropriate timing by determining the normal operation of the angle clock unit, ensuring accurate engine control.
Smart Images

Figure 0007841441000001 
Figure 0007841441000002 
Figure 0007841441000003
Abstract
Description
[Technical Field]
[0001] This disclosure relates to a technique for controlling an engine based on an angular clock with a shorter period than the crank signal generated in conjunction with the rotation of the engine's crankshaft. [Background technology]
[0002] A technique is known that controls an engine based on the rotational angle and position of the crankshaft, which corresponds to the crank signal generated as the engine's crankshaft rotates. For example, the technology described in Patent Document 1 below proposes a technique for performing highly accurate engine control based on an angular clock with a shorter period than the crank signal, which is generated as pulses at predetermined angular intervals in response to the rotation of the crankshaft. [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2008-190344 [Overview of the Initiative] [Problems that the invention aims to solve]
[0004] The angle clock is a signal with a period obtained by dividing the period (i.e., pulse interval) of the crank signal by a predetermined multiple. In the above-described technology, a control signal for engine control is output when the rotational angle position of the crankshaft corresponding to the number of angle clock counts reaches a predetermined angle.
[0005] However, if an abnormality occurs in the angle clock unit, which generates and counts the angle clock, engine control will be performed based on the abnormal angle clock, which may result in engine control not being performed at the appropriate timing. In order to ensure that engine control is performed at the appropriate timing, it is necessary to ensure that at least the angle clock unit is functioning correctly.
[0006] One aspect of this disclosure is to provide a technique for ensuring that the angle clock generation unit is functioning correctly. [Means for solving the problem]
[0007] One aspect of the present disclosure is an engine control device (10) mounted on a vehicle. The engine control device includes an actual output time acquisition unit (16, S110), a theoretical value time calculation unit (16, S160, S170), and a normal determination unit (16, S190). The detection unit is configured to detect that a control signal has been output from an output unit (17) which includes an angle clock unit (13) and an execution unit (14).
[0008] When the angle clock unit detects a crank signal, it outputs an angle count value, which is the number of times the angle clock has been multiplied by a preset multiplier, obtained by dividing the time interval between the detected crank signal and the previous crank signal by a preset multiplier. The crank signal is a signal that is generated as pulses at predetermined crank angle intervals in accordance with the rotation of the crank shaft. The execution unit outputs a control signal to the controlled object to be controlled according to the control signal, based on the angle count value and the required angle, which is the rotation angle position of the crank shaft set in advance.
[0009] The actual output time acquisition unit is configured to acquire the actual output time, which is the time when the control signal was output. The theoretical time calculation unit is configured to calculate the theoretical time, which is the theoretical value of the actual output time, based on at least the most recent interval time, which is the time interval between the most recent crank signal and the crank signal immediately preceding the most recent one. The most recent crank signal is the crank signal detected at the timing closest to the actual output time among the crank signals detected before the actual output time.
[0010] The immediately previous crank signal is the crank signal detected at the timing second closest to the actual output time among the crank signals detected before the actual output time. The normal determination unit is configured to determine that the angle clock unit is normal when the difference between the actual output time and the theoretical value time is less than a predetermined abnormal threshold value.
[0011] According to such a configuration, when the actual output time at which the control signal is actually output is equal to the theoretical value time, it can be determined that the output unit involved in the generation of the control signal is normal. That is, it can be determined that both the angle clock unit and the execution unit included in the output unit are normal. Therefore, it can be guaranteed that the angle clock unit alone is also normal.
Brief Description of Drawings
[0012] [Figure 1] It is a block diagram showing the configuration of the microcomputer. [Figure 2] It is a block diagram showing the configuration of the first input timer. [Figure 3] It is a block diagram showing the configuration of the angle timer. [Figure 4] It is a block diagram showing the configuration of the engine control unit. [Figure 5] It is a flowchart of the crank interrupt process. [Figure 6] It is a flowchart of the request interrupt process. [Figure 7] It is a timing chart for explaining the operation of the angle timer monitor unit. [Figure 8] It is a partial enlarged view of the portion surrounded by the dashed line in the timing chart shown in FIG. 7.
Modes for Carrying Out the Invention
[0013] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. Note that in the following, "match" is not limited to a strict match, and even if it is not a strict match, as long as it has the same effect, it may be acceptable.
[0014] [Embodiment] [1. Overall Structure] The microcomputer shown in Figure 1 (hereinafter referred to as "microcontroller 10") is used in the electronic control unit (hereinafter referred to as "ECU") mounted on the vehicle and outputs control signals to the controlled object to perform various engine control operations. ECU is an abbreviation for Electronic Control Unit. Engine control may include, for example, fuel injection by the fuel injection system and fuel ignition control by the ignition system. The controlled object may include the fuel injection system and the ignition system.
[0015] The microcontroller 10 includes a time timer 11, a first input timer 12, an angle timer 13, an output timer 14, a second input timer 15, and an engine control unit 16. <Time timer> The time timer 11 includes a free-running counter. The free-running counter measures time by counting a clock signal with a fixed period. The value of the free-running counter (hereinafter referred to as the time count value) is configured to reset to 0 if it overflows. The time timer 11 outputs the time count value to the first input timer 12 and the second input timer 15.
[0016] <First Input Timer> The first input timer 12 receives a time count value and a crank signal. The crank signal is a pulse that is generated at predetermined angular intervals in accordance with the rotation of the crankshaft. Hereinafter, the predetermined angular interval at which the crank signal (i.e., pulse) is generated will also be referred to as the crank angular interval. The first input timer 12 outputs a detection signal to the engine control unit 16 as a crank interrupt request. The detection signal is the rising edge of the crank signal or a signal indicating that the rising edge has been detected.
[0017] Furthermore, the first input timer 12 outputs the crank edge time and the crank count to the engine control unit 16. The crank edge time is the time when the rising or falling edge of the crank signal occurs. The crank count is the number of rising or falling edges of the crank signal counted. The first input timer 12 also outputs the crank time interval to the angle timer 13 and the engine control unit 16.
[0018] The crank time interval is the time interval between the detected crank signal (hereinafter also referred to as the current crank signal) and the previous crank signal. The previous crank signal refers to the crank signal that was detected before (i.e., in the past) the current crank signal and is closest to the current crank signal. Hereafter, the rising or falling edge of the crank signal (i.e., pulse) will also be referred to as the crank edge.
[0019] The crankshaft has a rotor that rotates with the crankshaft. The rotor has multiple teeth that protrude from its outer circumference at predetermined angular intervals, and these multiple teeth have missing teeth where a predetermined number of teeth (for example, two in this embodiment) are continuously missing. The crankshaft sensor outputs a pulse each time it detects the passage of a tooth while the crankshaft is rotating in a predetermined direction in conjunction with the operation of the internal combustion engine. As a result, in the crank signal as a pulse train (hereinafter also referred to as the crank signal train), missing tooth signals occur where the pulse generation interval is longer than the generation interval of other pulses.
[0020] Based on the missing tooth signal section, it is possible to determine at which rotational angle position (i.e., 360°CA) of the crankshaft the generated crank signal (i.e., pulse) originated. In this embodiment, in the crank signal sequence, pulses as crank signals are generated at equal angular intervals of 6°CA, excluding the missing tooth signal section. Furthermore, in the crank signal sequence, the angular interval between the crank edge immediately preceding the missing tooth signal section and the crank edge immediately following the missing tooth signal section is expressed as the angular interval excluding the missing teeth (i.e., 6°CA) × (number of missing teeth + 1), which in this embodiment is an 18°CA interval. CA stands for Crank Angle.
[0021] The crank angle spacing mentioned above refers to the angular spacing between the teeth on the crank (i.e., 6°CA in this embodiment; 18°CA in the case of missing teeth). In other words, the crank angle spacing is the angular spacing between the crank signals (i.e., pulses) in the crank signal train (i.e., pulse train).
[0022] Specifically, for example, the first input timer 12 includes an edge detection unit 121, a capture register 122, an increment unit 123, an edge counter 124, an increment unit 125, and an edge counter 126, as shown in Figure 2.
[0023] The edge detection unit 121 detects crank edges in the crank signal (i.e., pulses). When the edge detection unit 121 detects a crank edge, it outputs a detection signal indicating that a crank signal has been generated to the engine control unit 16 as a crank interrupt request. When the edge detection unit 121 outputs a detection signal for the crank signal, the capture register 122 outputs the time count value at that time (i.e., the count of the free-run counter at that time) as the crank edge time.
[0024] When the edge detection unit 121 outputs a detection signal, the increment unit 123 sets the edge counter 124 to a value obtained by adding 1 to the value of the edge counter 124 (i.e., a value with +1). The edge counter 124 outputs the number of crank edges as the crank count to the engine control unit 16.
[0025] When the increment unit 125 detects a rising or falling edge of the constant-period clock signal used in the free-running counter, it sets the edge counter 126 to a value obtained by adding 1 to the value of the edge counter 126 (i.e., a value increased by +1). When the edge detection unit 121 outputs a detection signal, the edge counter 126 outputs the count number that has been counted up to that point as the interval time. The edge counter 126 then resets the count number (i.e., sets it to 0) and resumes counting the constant-period clock signal used in the free-running counter.
[0026] In other words, each time the edge detection unit 121 detects a crank signal, the edge counter 126 detects the time interval between the currently detected crank signal and the previous crank signal, which is defined as the crank time interval. The number of counts accumulated by the edge counter 126 by the time the edge detection unit 121 outputs the detection signal corresponds to the crank time interval.
[0027] As described above, in this embodiment, the crank angle interval corresponds to 6°CA. In the missing tooth signal section, the crank angle interval is 18°CA. When the vehicle accelerates, the engine speed increases and the crank time interval shortens, and when the vehicle decelerates, the engine speed decreases and the crank time interval lengthens.
[0028] The first input timer 12 may be configured to detect the appearance of a missing tooth signal (for example, the beginning and end of the missing tooth signal) in the crank signal train (i.e., pulse train) and output the detection result to the engine control unit 16. The engine control unit 16 may also be configured to reset the crank count each time a missing tooth signal appears in the crank signal train. In this case, the crank count may be a numerical value indicating which pulse occurred after the missing tooth signal. The reset of the crank count is not limited to each time a missing tooth signal appears, but can be performed at any predetermined timing.
[0029] <Angle Timer> The angle timer 13 generates an angle clock based on the crank signal and outputs an angle count value. The angle count value is the number of angle clock counts. The angle clock is a signal for estimating changes in the rotational angle position of the crankshaft at angle intervals smaller than the crank angle interval in the crank signal. In this embodiment, the angle clock is set to be able to estimate changes in the rotational angle position of the crankshaft with a resolution of 1 / 16°CA, which is smaller than the crank angle interval of 6°CA. The angle clock is output as a pulsed signal once each time it is estimated that the rotational angle position of the crankshaft has changed by 1 / 16°CA. The angle timer 13 in this embodiment is equipped with a high-rate function and a hold function, which will be described later.
[0030] For example, as shown in Figure 3, the angle timer 13 includes an angle clock generation unit 31 that generates an angle clock, an increment unit 32 that counts the angle clock, and an angle counter 33. When the angle clock generation unit 31 outputs an angle clock, the increment unit 32 sets the angle counter 33 to a value obtained by adding 1 to the value of the angle counter 33 (i.e., a value that is +1). The angle counter 33 outputs the number of angle clock counts (i.e., the falling edge or the number of falling edges of the angle clock) as an angle count value to the engine control unit 16.
[0031] The angle clock generation unit 31 includes a multiplier clock generation unit 311, a high-speed clock unit 312, a clock selection unit 313, an increment unit 314, a current clock counter 315, a target clock setting unit 316, a clock output necessity calculation unit 317, an angle clock output unit 318, an increment unit 32, and an angle counter 33.
[0032] The multiplier clock generation unit 311 sets the crank time interval input from the first input timer 12 in a register, for example, that the multiplier clock generation unit 311 has. The multiplier clock generation unit 311 generates a multiplier clock whose period is the time obtained by dividing this crank time interval by a multiplier N that is pre-set in another register of 311. For example, in this embodiment, the multiplier N is N = 6°CA / (1 / 16)°CA = 96. The multiplier clock generation unit 311 outputs the generated multiplier clock to the clock selection unit 313.
[0033] The high-speed clock unit 312 generates a high-speed clock and outputs the generated high-speed clock to the clock selection unit 313. The high-speed clock has a period considerably shorter than the period of the multiplier clock. In this embodiment, the period of the high-speed clock is 0.25 μsec. However, the period of the high-speed clock is not limited to 0.25 μsec, but can be any period shorter than the period of the multiplier clock.
[0034] The clock selection unit 313 selectively outputs either the multiplier clock or the high-speed clock as the angle clock based on instructions from the clock output necessity calculation unit 317. The clock selection unit 313 outputs the angle clock to the angle clock output unit 318 and the increment unit 314.
[0035] The angle clock output unit 318 executes or stops outputting the angle clock to the increment unit 32 based on instructions from the clock output necessity calculation unit 317. When the clock selection unit 313 outputs an angular clock, the increment unit 314 sets the current clock counter 315 to a value obtained by adding 1 to the current clock counter 315 (i.e., +1).
[0036] The current clock counter 315 outputs the number of angular clock counts (i.e., the number of rising or falling edges of the angular clock) as the current clock count to the clock output requirement calculation unit 317. Hereinafter, the count value of the current clock counter 315 will also be referred to as the current clock count. The current clock count is reset each time a detection signal is output from the first input timer 12, that is, each time a crank signal (i.e., a crank edge) occurs. Here, reset means being set to 0. The reset of the current clock count for the current clock counter 315 may be performed, for example, by the engine control unit 16.
[0037] In the target clock count setting unit 316, the target clock count is reset each time a detection signal is output from the first input timer 12, that is, each time a crank signal (i.e., a crank edge) occurs. Here, "reset" means setting a new target clock count. Setting a new target clock count means setting the target clock count to a new predetermined value. The target clock count is set, for example, in a register or the like in the target clock count setting unit 316.
[0038] The target clock count is the value obtained by dividing the crank angle interval between the current crank signal that caused the detection signal to be output from the first input timer 12 and the next crank signal by the resolution of 1 / 16°CA.
[0039] As described above, the crank angle interval in this embodiment is 6°CA, except for the missing tooth signal section. The angle interval in the missing tooth signal section is 18°CA. In other words, in this embodiment, the resolution is 1 / 16°CA, so the target clock count is set to a predetermined value of 96 (i.e., 6°CA ÷ (1 / 16°CA) = 96), excluding the missing tooth signal section. For the missing tooth signal section, the target clock count is set to a predetermined value of 288 (i.e., 96 × 3 = 288). The setting of the target clock count to the target clock count setting unit 316 may be performed, for example, by the engine control unit 16.
[0040] When the target clock count setting unit 316 receives a detection signal from the first input timer 12, it outputs the target clock count that was already set in the register to the register of the clock output necessity calculation unit 317 before the target clock count is reset. Then, the target clock count setting unit 316 sets a new target clock count in its own register. The target clock count that was already set in the register here is the target clock that was newly set when the previous clock signal was generated, and it is the value obtained by dividing the crank angle interval between the previous clock signal and the current clock signal by the resolution.
[0041] In this way, when the detection signal is input from the first input timer 12, the target clock count setting unit 316 sets the target clock count in the register of the clock output necessity calculation unit 317.
[0042] When the clock output requirement calculation unit 317 receives a detection signal from the first input timer 12, in other words, when a crank signal (i.e., a crank edge) is generated, it compares the current clock count counter 315 count value with the set target clock count. Based on the comparison result, the clock output requirement calculation unit 317 outputs instructions to the clock selection unit 313 and the angle clock output unit 318.
[0043] When a detection signal is input from the first input timer 12, the clock output requirement calculation unit 317 outputs an instruction to the clock selection unit 313 to output a multiplied clock as an angle clock if the current clock count counter 315 count value equals the target number of clocks. In addition, the clock output requirement calculation unit 317 outputs an instruction to the angle clock output unit 318 to output an angle clock. As a result, the angle counter 33 counts the angle clock, and the count number indicating the rotational angle position of the crankshaft is continuously output as the angle count value.
[0044] <Hold function> Here, regardless of the input of a detection signal from the first input timer 12, if the current number of clocks > the target number of clocks, the clock output unit 317 outputs an instruction to the angle clock output unit 318 to stop outputting the angle clock. The clock output requirement calculation unit 317 stops outputting the angle clock until the next detection signal is input from the first input timer 12, that is, until the next crank signal (i.e., crank edge) occurs. The clock output requirement calculation unit 317 continues to output an instruction to the clock selection unit 313 to output the multiplied clock as the angle clock.
[0045] The situation in which the count value of the current clock counter 315 exceeds the target number of clocks occurs when the vehicle decelerates. In other words, after the multiplied clock based on past crank time intervals is output as the angle clock, if the vehicle decelerates, the count value of the current clock counter 315 reaches the target number of clocks before the detection signal is input from the first input timer 12. Therefore, when this situation occurs, the angle counter 33 fixes its count value without incrementing it until the detection signal is input from the first input timer 12. This function of fixing the count value of the angle counter 33 is called the hold function.
[0046] Furthermore, while the count value of the angle counter 33 is fixed, the current clock counter 315 continues to count the angle clock (i.e., the multiplier clock in this case). When the clock output necessity calculation unit 317 receives a detection signal from the first input timer 12, it outputs an instruction to the angle clock output unit 318 to execute the output of the angle clock. In other words, when the next crank signal (i.e., the next crank edge) occurs, the target clock count and the current clock count are reset as described above, and the angle counter 33 resumes counting the angle clock (i.e., the multiplier clock).
[0047] <High-rate function> On the other hand, when a detection signal is input from the first input timer 12, the clock output requirement calculation unit 317 outputs an instruction to the clock selection unit 313 to output a high-speed clock as the angle clock instead of the multiplier clock if the current number of clocks is less than the target number of clocks. The clock output requirement calculation unit 317 continues to output an instruction to the angle clock output unit 318 to output the angle clock.
[0048] When a detection signal is input from the first input timer 12, in other words, when a crank signal (i.e., a crank edge) occurs, the situation in which the current clock count value of the clock counter 315 is less than the target clock count occurs when the vehicle accelerates. That is, after the multiplied clock based on past crank time intervals is output as the angle clock, when the vehicle accelerates, the situation occurs in which the current clock count has not reached the target clock count when the detection signal is next input from the first input timer 12. Therefore, the angle clock is switched to a high-speed clock, and the angle counter 33 operates to forcibly and rapidly increase the count to the current target count based on the high-speed clock. In other words, the angle counter 33 catches up to the current target count based on the high-speed clock.
[0049] One count by the angle counter 33, which counts the high-speed clock as an angular clock, indicates the rotational angular position of the crankshaft at 1 / 16°CA, similar to when counting the multiplier clock as an angular clock. In other words, the angular interval of the high-speed clock is also 1 / 16°CA, just like the angular interval of the multiplier clock.
[0050] In this way, the high-rate function is a function that, when the crank signal is detected, forces the angle counter 33 to count up based on a high-speed clock if the angle count value has not reached the count indicating the rotation angle position of the crank signal. In other words, the high-rate function is a function that, when a crank signal is detected, forces the angle count value to change to the count indicating the rotation angle position of the crank shaft corresponding to the detected crank signal, based on a high-speed clock, if the rotation angle position of the crank shaft indicated by the angle count value is less than the rotation angle position of the crank shaft corresponding to the detected crank signal.
[0051] Then, the clock output requirement calculation unit 317 outputs an instruction to the clock selection unit 313 to select the multiplier clock when the count value of the angle counter 33 becomes equal to the target number of clocks. As a result, the angle counter 33 once again counts the multiplier clock as the angle clock.
[0052] Each angle count value is associated with the rotational angle position of the crankshaft (for example, the rotational angle position in one revolution), and the rotational angle position of the crankshaft can be identified by the angle count value. The rotational angle position of the crankshaft indicated by the angle count value is, as described above, the rotational angle position with a resolution of 6°CA / 96 = 1 / 16°CA, obtained by dividing the angular interval (i.e., the angular interval of 6°CA) by the multiplier N (i.e., N=96).
[0053] <Output Timer> The output timer 14 receives the angle count value continuously from the angle timer 13 (specifically, the angle counter 33) and the requested angle from the engine control unit 16. The output timer 14 is a timer circuit that outputs a control signal to the controlled object when the rotation angle position of the crankshaft indicated by the angle count value matches the requested angle. The control signal is a signal that causes the controlled object to perform control.
[0054] The requested angle is a preset rotational angle position of the crankshaft, and the timing for outputting a control signal to cause the controlled object to perform control according to the control signal is represented by the rotational angle position of the crankshaft. The requested angle may also be represented by the rotational angle position of the crankshaft, for example, 15°CA, 22°CA, etc. In this embodiment, the rotational angle position of the crankshaft indicated by the angle count value can be specified by multiplying the angle count value by 1 / 16°CA.
[0055] Alternatively, the required angle may be expressed as an angle count value indicating the rotational angle position of the crankshaft, for example, 240 (i.e., 15°CA ÷ 1 / 16°CA), 352 (i.e., 22°CA ÷ 1 / 16°CA), etc.
[0056] The requested angle is set in a register or the like of the output timer 14 by the output request unit 62 of the engine control unit 16. Thus, the output timer 14 can be described as a timer that outputs a control signal based on the rotation angle position of the crankshaft estimated based on the angle clock. When a control signal is output, the control associated with the control signal (i.e., various engine controls) is executed at the timing of the output of the control signal.
[0057] <Second Input Timer> The second input timer 15 receives a continuous time count value from the time timer 11, as well as a control signal from the output timer 14. The second input timer 15 outputs the time timer value at the time the control signal is output from the output timer 14 as the actual output time to the engine control unit 16.
[0058] <Engine Control Section> As shown in Figure 4, the engine control unit 16 is mainly composed of a CPU 65 and semiconductor memory such as RAM and ROM (hereinafter referred to as memory 66). The engine control unit 16, as a configuration of functions realized by the CPU 65 executing a program stored in memory 66, includes a crank interrupt control unit 61, an output request unit 62, and an angle timer monitor unit 63, as shown in Figure 1. The engine control unit 16 may also include a request generation unit 60.
[0059] The request generation unit 60 calculates the requested angle according to the vehicle's operating conditions (e.g., speed, acceleration, accelerator pedal position, etc.) and stores it in the memory 66. When the crank interrupt control unit 61 detects a crank signal in the first input timer 12, it executes a crank interrupt process. Through the crank interrupt process, each time a crank signal is detected in the first input timer 12, the crank interrupt control unit 61 associates the rotation angle position of the crank shaft corresponding to the detected crank signal with the previous crank time interval, the crank time interval immediately preceding, and so on, and stores them in the memory 66.
[0060] The most recent crank time interval is the time interval between the currently detected crank signal and the previous crank signal. The crank time interval immediately preceding is the time interval between the previous crank signal and the crank signal before that. The crank interrupt control unit 61 may further store in memory 66 the rotational angle position of the crank shaft corresponding to the current crank signal and the corresponding 1°CA time.
[0061] The output request unit 62 acquires the requested angle calculated by the request generation unit 60 and sets the requested angle in a storage device such as a register in the output timer 14. The angle timer monitor unit 63 executes a request interrupt process, described later, to determine whether the angle timer 13 is functioning correctly. In other words, the angle timer monitor unit 63 determines whether the angle counter 33 (i.e., the counter that increments the count every 1 / 16°CA as described above), which counts the angle clock in the angle timer 13, is functioning correctly. The angle timer monitor unit 63 includes a theoretical time calculation unit 71 and a comparison unit 72. S160 and S170 in the request interrupt process correspond to the processing of the theoretical time calculation unit 71. S180 in the request interrupt process corresponds to the processing of the comparison unit 72.
[0062] [2. Processing] [2.1 Crank Interrupt Processing] The crank interrupt processing performed by the crank interrupt control unit 61 of the microcontroller 10 will be explained using the flowchart in Figure 5. The crank interrupt processing is an interrupt process that is executed each time the first input timer 12 outputs a detection signal (i.e., each time a crank signal is generated and a crank edge is detected).
[0063] In S10, the crank interrupt control unit 61 stores the immediately preceding crank time interval, which is already stored in the memory 66 and will be described later, as the crank time interval immediately preceding the previous one. In S20, the crank interrupt control unit 61 acquires the crank time interval output from the first input timer 12 and stores the acquired crank time interval in the memory 66 as the previous crank time interval.
[0064] In S30, the crank interrupt control unit 61 identifies the rotational angle position of the crankshaft corresponding to the crank signal detected by the first input timer 12. In this embodiment, since the crank angle interval is 6° excluding the missing teeth, the rotational angle positions of the crankshaft are expressed in 6°CA intervals such as 0°CA, 6°CA, 12°CA, 18°CA, 24°CA, etc.
[0065] The crank interrupt control unit 61 may, for example, determine the rotational angle position of the crank shaft based on the crank count output from the first input timer 12, and by determining which pulse it is that occurred from the missing tooth signal portion appearing in the crank signal sequence. However, the method for determining the rotational angle position of the crank shaft is not limited to the method described above, and various methods can be used depending on the configuration of the microcontroller 10.
[0066] In S40, the crank interrupt control unit 61 sets the target clock count in the target clock count setting unit 316 in this embodiment. In this embodiment, when the crank signal excluding the missing tooth signal portion is detected in the crank signal sequence (hereinafter also referred to as the steady state), the crank interrupt control unit 61 sets 96 as the target clock count. Furthermore, when the appearance of the missing tooth signal portion (for example, the beginning of the missing tooth signal portion) is detected in the crank signal sequence, the crank interrupt control unit 61 sets the target clock count to three times the steady state target clock count (i.e., 288). Furthermore, when the end of the missing tooth signal portion is detected in the crank signal, the crank interrupt control unit 61 returns the target clock count to 96, which is the steady state target clock count. With this, the crank interrupt control unit 61 terminates this crank interrupt process.
[0067] [2.2 Request Interrupt Handling] The request interrupt processing performed by the angle timer monitor unit 63 of the engine control unit 16 will be explained using the flowchart in Figure 6. The angle timer monitor unit 63 performs the request interrupt processing when it detects the output of a control signal from the second input timer 15.
[0068] In S110, the angle timer monitor unit 63 acquires the actual output time. The actual output time is the time when a control signal is output from the output timer 14 to the controlled object. In this embodiment, for example, if the controlled object is an execution device that performs control such as a fuel injection device or an ignition device, the actual output time may be the time when a control signal is output to these controlled objects as a signal instructing fuel injection or ignition.
[0069] Note that the output time is not limited to the time described above. For example, the actual output time may be the time when the rotational angle position of the crankshaft corresponding to the angle count value output from the angle timer 13 matches the requested angle in the output timer 14. Alternatively, the output timer 14 may be configured to control an output circuit that outputs a command signal to an execution device such as a fuel injector or ignition device to instruct fuel injection or ignition, and to output a control signal to the output circuit as the controlled object, instructing it to output the command signal. In this case, the time when the control signal instructing the output of the command signal is output may be considered the actual output time.
[0070] In S120, the angle timer monitor unit 63 acquires the requested angle calculated by the request generation unit 60. In S130, the angle timer monitor unit 63 identifies the rotational angle position of the crankshaft corresponding to the most recent crank signal. The most recent crank signal is the crank signal detected at the timing closest to the actual output time among the crank signals detected before the actual output time. During the execution of this step, the angle timer monitor unit 63 identifies the rotational angle position of the crankshaft corresponding to the current crank signal, which is stored in memory 66 by the crank interrupt processing described above, as the rotational angle position of the crankshaft corresponding to the most recent crank signal.
[0071] In S140, the angle timer monitor unit 63 determines whether the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal identified in S130 and the required angle is less than the crank angle interval. Here, the crank angle interval is assumed to be, for example, the crank angle interval excluding the missing tooth portion (i.e., 6°CA).
[0072] Here, the angle timer monitor unit 63 proceeds to S200 if the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the requested angle is greater than or equal to the crank angle interval. In S200, the angle timer monitor unit 63 determines that an abnormality has occurred in the angle counter 33 and, consequently, the angle timer 13, and terminates this request interrupt processing. On the other hand, if the angle timer monitor unit 63 proceeds to S150 if the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the requested angle is less than the crank angle interval.
[0073] In S150, the angle timer monitor unit 63 determines whether the vehicle is accelerating or not, in other words, whether the high-rate function is being executed. Specifically, the angle timer monitor unit 63 determines whether the rotational angle position of the crankshaft corresponding to the most recent crank signal is less than or equal to the required angle. If the rotational angle position of the crankshaft corresponding to the most recent crank signal is less than or equal to the required angle, the angle timer monitor unit 63 determines that no acceleration is occurring (i.e., the high-rate function is not being executed).
[0074] Furthermore, the angle timer monitor unit 63 determines that acceleration is occurring (i.e., the high-rate function is being executed) if the rotational angle position of the crankshaft corresponding to the most recent crank signal is greater than the required angle. If the angle timer monitor unit 63 determines that acceleration is not occurring (i.e., the high-rate function is not being executed), it proceeds to S160. If the angle timer monitor unit 63 determines that acceleration is occurring (i.e., the high-rate function is being executed), it proceeds to S170.
[0075] In S160, the angle timer monitor unit 63 calculates the theoretical time value without considering the high rate (hereinafter referred to as the normal theoretical time value) and proceeds to S180. The theoretical time value is the theoretical value of the actual output time. Specifically, the angle timer monitor unit 63 calculates the normal theoretical time value based on equation (1).
[0076] Normal theoretical value time=tc_(i)+(T 01 / AI)×(Ar-Ac_(i)) (1) In the above equation, tc_(i) is the time when the most recent crank signal was generated (i.e., the crank edge time of the most recent crank signal). When S160 is executed, the angle timer monitor unit 63 obtains the crank edge time stored in memory 66 as tc_(i).
[0077] Ac_(i) is the rotational angle position of the crankshaft corresponding to the most recent crank signal, Ar is the requested angle, and AI is the crank angle interval (e.g., 6°CA). 01 This is the most recent interval time. Recent interval time T 01 This is the time interval between the most recent crank signal and the crank signal immediately preceding it. The crank signal immediately preceding it is the crank signal detected at the second closest timing to the actual output time among the crank signals detected before the actual output time. When this step is executed, the angle timer monitor unit 63 sets the most recent crank time interval stored in memory 66 to the most recent interval time T. 01 It will be acquired as follows.
[0078] In other words, the angle timer monitor unit 63 measures the most recent interval time T, which is the time interval between the most recent crank signal and the crank signal immediately preceding it. 01 The angle timer monitor unit 63 calculates a 1°CA time by dividing by the crank angle interval AI. Then, the angle timer monitor unit 63 calculates a time by multiplying the difference between the rotational angle position Ac_(i) of the crank shaft corresponding to the most recent crank signal and the required angle Ar (Ar-Ac_(i)) by the 1°CA time. Then, the angle timer monitor unit 63 calculates a time by adding the multiplied time to the time tc_(i) when the most recent crank signal occurred, which is the normal theoretical time.
[0079] In S170, the angle timer monitor unit 63 calculates a theoretical value time considering the high rate (hereinafter referred to as the high rate theoretical value time), and transfers the process to S180. The angle timer monitor unit 63 calculates, as the theoretical value time (hereinafter referred to as the high rate theoretical value time), the time obtained by adding the high rate time Ih to the time tc_(i) when the most recent crank signal was generated. The high rate time Ih is the time required to count the angle difference (Ar - As) between the required angle Ar and the acceleration start angle position As based on the high speed clock. The acceleration start angle position As is the rotational angle position of the crankshaft where acceleration is estimated to start. In other words, the acceleration start angle position As is the rotational angle position of the crankshaft where the high rate function is estimated to start.
[0080] First, the angle timer monitor unit 63 calculates, as the acceleration start angle position As, the angle obtained by adding the normal angle interval In, which is an angle interval estimated that the high rate function is not executed, to the rotational angle position Ac_(i - 1) of the crankshaft corresponding to the most recent previous crank signal. Specifically, the angle timer monitor unit 63 calculates the acceleration start angle position As based on the formula (2).
[0081] Acceleration start angle position As = Ac_(i - 1)+In = Ac_(i - 1)+AI×R = Ac_(i - 1)+AI×(T 01 / T 12 ) (2) Note that the previous interval time T 12 referred to below means the time interval between the most recent previous crank signal and the second most recent previous crank signal.
[0082] The second most recent previous crank signal means the crank signal detected at the timing closest to the most recent previous crank signal among the crank signals detected before the most recent previous crank signal. The angle timer monitor unit 63 acquires, as the previous interval time T 12 , the immediately previous crank time interval stored in the memory 66 at the time of execution of this step.
[0083] The crank interrupt control unit 61 may store the rotational angle position of the crankshaft corresponding to the detected crank signal in the memory 66 in chronological order. The angle timer monitor unit 63 may obtain the rotational angle position Ac_(i-1) of the crankshaft corresponding to the most recent crank signal from the memory 66.
[0084] In is the normal angular interval. The normal angular interval In represents the angular interval when the high-rate function is not activated. The normal angular interval In is calculated by multiplying the crank angular interval AI by the interval ratio R (i.e., In = AI × R). The interval ratio R is the most recent interval time T 01 The previous interval time T 12 It is the ratio to (i.e., R=T) 01 / T 12 In this way, the angle timer monitor unit 63 calculates the acceleration start angle position As by adding the normal angle interval In to the rotational angle position Ac_(i-1) of the crankshaft corresponding to the most recent crank signal.
[0085] Then, the angle timer monitor unit 63 calculates the high-rate theoretical time based on equation (3). High rate theoretical time = tc_(i) + Ih =tc_(i)+((Ar―As) / res)×Vh (3) Ih is the high-rate time, which indicates the time during which the high-rate function is executed; res is the resolution of the high-speed clock; and Vh is the clock period of the high-speed clock. The high-rate time Ih is calculated by multiplying the difference between the required angle Ar and the acceleration start angle position As by the high-speed clock resolution res by the speed of the high-speed clock Vh. For example, in this embodiment, the resolution res is 1 / 16°CA and the speed of the high-speed clock Vh is 0.25μsec.
[0086] In S180, the angle timer monitor unit 63 determines whether or not an abnormality has occurred in the angle counter 33. Specifically, the angle timer monitor unit 63 determines whether or not the difference between the theoretical time (i.e., the normal theoretical time or the high-rate theoretical time) calculated in S160 or S170 and the measured time is less than a predetermined threshold (hereinafter referred to as the abnormal threshold). The abnormal threshold may be, for example, a value relatively close to 0. In other words, the angle timer monitor unit 63 determines whether or not the theoretical time and the measured time match. Here, if the difference between the theoretical time (i.e., the normal theoretical time or the high-rate theoretical time) and the measured time is less than the abnormal threshold, the angle timer monitor unit 63 moves the process to S190. On the other hand, if the difference between the theoretical time (i.e., the normal theoretical time or the high-rate theoretical time) and the measured time is greater than or equal to the abnormal threshold, the angle timer monitor unit 63 moves the process to S200.
[0087] In S190, the angle timer monitor unit 63 determines that the angle counter 33 is normal and stores the determination result in the memory 66. The angle timer monitor unit 63 may also transmit the determination result to other ECUs installed in the vehicle. With that, the angle timer monitor unit 63 terminates the request interrupt processing.
[0088] In S200, the angle timer monitor unit 63 determines that the angle counter 33 is abnormal and stores the determination result in the memory 66. The angle timer monitor unit 63 may also transmit the determination result to other ECUs installed in the vehicle. With that, the angle timer monitor unit 63 terminates the request interrupt processing.
[0089] [2.3 Operation] The operation of the microcontroller 10 in this embodiment will be explained with reference to Figures 7 and 8. As described above, in the angle timer 13, the angle counter 33 counts up the count value by 1 / 16°CA each time. A predetermined target rotational angle position of the crankshaft is set in advance for each crank signal (i.e., for each crank edge). When the vehicle accelerates, the angle count value calculated by the multiplier clock based on past crank time intervals does not reflect the acceleration and is therefore insufficient to match the count corresponding to the actual rotational angle position of the crankshaft. For this reason, the angle timer 13 performs the high-rate function described above, which counts up the angle counter 33 using a high-speed clock instead of the multiplier clock.
[0090] [2.3.1 During constant speed driving] Figure 7 illustrates the case where the requested angle Ar = 15°CA. The output timer 14 outputs a control signal when the angle count value matches the requested angle Ar = 15°CA. The angle timer monitor unit 63 starts the request interrupt processing triggered by the output of the control signal. The angle timer monitor unit 63 obtains the measured time from the second input timer 15. The angle timer monitor unit 63 determines that the vehicle is not accelerating because the rotation angle position of the crankshaft corresponding to the most recent crank signal, Ac(i) (i.e., 12°CA), is ≤ the requested angle Ar (i.e., 15°CA). In other words, the angle timer monitor unit 63 determines that the high-rate function is not operating. The angle timer monitor unit 63 calculates the normal theoretical time.
[0091] Here, the requested angle Ar is the position +3°CA from the crank edge of the most recent crank signal (i.e., the crank edge at 12°CA). In other words, the difference (Ar - Ac_(i)) between the requested angle Ar and the rotational angle position of the crank axis corresponding to the most recent crank signal is 3°CA. Recent interval time T 01This is 4 msec (i.e., the time interval for section 1). The crank angle interval AI is 6°CA. Therefore, (4[msec] / 6[°CA])×3[°CA]=2 msec is added to the crank edge time of the most recent crank signal (i.e., Ac_(i) is the crank edge time of 12°CA) to calculate the normal theoretical time. The angle timer monitor unit 63 determines that the angle timer 13 is normal if the difference between the normal theoretical time and the measured time is less than a predetermined abnormality threshold.
[0092] [2.3.2 During acceleration] Figure 7 illustrates the case where the requested angle Ar = 22°CA. The output timer 14 outputs a control signal when the angle count value matches the requested angle Ar = 22°CA. The angle timer monitor unit 63 starts the request interrupt processing triggered by the output of the control signal. The angle timer monitor unit 63 obtains the measured time from the second input timer 15. The angle timer monitor unit 63 determines that the vehicle is accelerating, i.e., the high-rate function is operating, because the rotation angle position of the crankshaft corresponding to the most recent crank signal (i.e., 24°CA) > the requested angle (i.e., 22°CA). The angle timer monitor unit 63 calculates the high-rate theoretical time.
[0093] First, the angle timer monitor unit 63 calculates, based on the ratio of the past two intervals (for example, interval 3 and interval 2 in Figure 7), how far the angle counter 33 counted without being activated by the high-rate function. In other words, the angle timer monitor unit 63 calculates the normal angle interval In, which is the angle interval in which the high-rate function did not occur. The most recent interval time T 01 This is 2 msec (i.e., the time interval of section 3), and the previous interval time T 12 This is 4 msec (i.e., the time interval of interval 2).
[0094] From this, the interval ratio R is calculated as R = 2 msec / 4 msec = 0.5 = 50%. The normal angular interval In is calculated as 6°CA × 0.5 = 3°CA. The starting angle As is calculated by adding the normal angular interval In (i.e., 3°CA) to the rotational angular position of the crankshaft Ac_(i-1) (i.e., 18°CA) corresponding to the most recent crank signal, resulting in 21°CA. In other words, the high-rate time Ih, which is the time the high-rate function is executed, is calculated as ((22°CA - 21°CA) / (1 / 16°CA)) × 0.25 μsec.
[0095] Then, the time obtained by adding the high-rate time Ih to the crank edge time of the most recent crank signal (i.e., the crank edge time at 24°CA) is calculated as the high-rate theoretical time. During the high-rate time Ih, as shown in Figure 8, the angle counter value is counted up by 1 / 16°CA every 0.25μsec.
[0096] Here, as a comparative example, we will explain the case in Figure 7 where, when the required angle Ar is 22°CA, acceleration occurs, i.e., the high-rate function is activated, and the theoretical time is calculated based on the crank time interval during past constant-speed driving. In the following, the theoretical time calculated in this comparative example will be referred to as the provisional theoretical time. In Figure 7, the provisional theoretical time calculated based on the crank time interval during constant-speed driving (i.e., the time interval of section 2), which is 4 msec, is indicated by a double circle.
[0097] The provisional theoretical time is calculated as the crank edge time at 18°CA + 4msec × ((22°CA - 18°CA) / 6°CA). Even if the angle timer 13 is functioning correctly, the provisional theoretical time calculated in this way will differ from the measured time during acceleration (i.e., when the high-rate function is operating). If this difference exceeds the abnormality threshold, the angle timer 13 may be incorrectly judged as abnormal even if it is functioning correctly.
[0098] In the microcontroller 10 of this embodiment, if it is estimated that the high-rate function has been activated, a high-rate theoretical time value that takes into account the activation of the high-rate function is calculated. This prevents the angle timer 13 from being incorrectly judged as abnormal even though it is functioning normally.
[0099] [3. Effects] The embodiments described in detail above produce the following effects. (3a) In the microcontroller 10, when the angle timer monitor unit 63 of the engine control unit 16 detects that a control signal has been output from the output unit 17, it acquires the actual output time in S110. The execution unit includes an angle timer 13 that outputs an angle count value, which is the number of angle clock counts, and an output timer 14 that outputs a control signal to the controlled object based on the angle count value and a predetermined requested angle. In S160 and S170, the angle timer monitor unit 63 calculates the theoretical time based on the most recent interval time, which is the time interval between the most recent crank signal and the most recent crank signal. In S190, the angle timer monitor unit 63 determines that the angle clock unit is normal if the difference between the actual output time and the theoretical time is less than a predetermined threshold, which is an abnormality threshold.
[0100] According to the microcontroller 10 of the above embodiment, if the actual output time at which a control signal is actually output from the output unit 17, which includes the angle timer 13 and the output timer 14, is equal to the theoretical time, it can be determined that the output unit 17 involved in generating the control signal is functioning correctly. In other words, it can be determined that both the angle timer 13 and the output timer 14 included in the output unit 17 are functioning correctly. Therefore, it can be guaranteed that the angle timer 13 alone is also functioning correctly.
[0101] (3b) The angle timer 13 has a high-rate function. In the high-rate function, when the crank signal is detected by the first input timer 12, if the rotational angle position of the crankshaft corresponding to the angle count value is less than the rotational angle position of the crankshaft corresponding to the detected crank signal, the angle timer 13 uses a high-speed clock as the angle clock instead of the multiplier clock. The angle timer 13 then outputs the count of the angle clock (i.e., the high-speed clock) as the angle count value. The angle timer 13 forcibly changes the angle count value using the high-speed clock to a count that represents the rotational angle position of the crankshaft corresponding to the crank signal, and then uses the multiplier clock again as the angle clock.
[0102] In S150, the angle timer monitor unit 63 detects that a control signal has been output and determines whether the vehicle is accelerating or not. In S160 and S170, if the angle timer monitor unit 63 determines that the vehicle is accelerating, it calculates the theoretical time in a different manner than when it determines that the vehicle is not accelerating.
[0103] According to the microcontroller 10 of the above embodiment, when the vehicle accelerates and the high-rate function is executed in the angle timer 13, the theoretical time is calculated in a different manner than when the vehicle is not accelerating and the high-rate function is not executed in the angle timer 13. Instead of calculating the theoretical time in the same manner uniformly, the theoretical time can be calculated according to whether or not the vehicle is accelerating, so it is possible to accurately determine whether or not the angle timer 13 is functioning correctly according to whether or not the vehicle is accelerating.
[0104] For example, as in the comparative example above, if acceleration occurs and the high-rate function is activated, but the provisional theoretical time is calculated based on past interval times during constant-speed driving, the angle timer 13 may be incorrectly determined to be abnormal even though it is functioning normally. In the microcontroller 10 of this embodiment, if it is estimated that acceleration has occurred and the high-rate function has been activated, a high-rate theoretical time is calculated that takes into account the activation of the high-rate function.
[0105] Therefore, it is suppressed that the angle timer 13 is incorrectly determined to be abnormal even though it is functioning normally. As a result, it is possible to guarantee with greater accuracy that the angle timer 13 is functioning normally. By guaranteeing that the angle timer 13 is functioning normally, it is possible to guarantee with greater accuracy that engine control, such as that which is executed sporadically at a certain required angle, is executed at the appropriate timing.
[0106] (3c) In S150, the angle timer monitor unit 63 obtains the rotational angle position of the crankshaft corresponding to the most recent crank signal, and determines that the vehicle is accelerating if the rotational angle position of the crankshaft corresponding to the most recent crank signal is greater than the required angle.
[0107] According to the microcontroller 10 of the above embodiment, it is possible to determine that the vehicle is accelerating based on the rotational angle position of the crankshaft corresponding to the most recent crank signal and the requested angle. In other words, the angle timer monitor unit 63 of the microcontroller 10 can determine that the vehicle speed is accelerating. To put it another way, the processing can be completed within the microcontroller 10. This eliminates the need to use detection results from external components such as an acceleration sensor.
[0108] (3d) If the angle timer monitor unit 63 determines that no acceleration is occurring, in S160 the most recent interval time T 01 The angle timer monitor unit 63 calculates a 1°CA time by dividing by the crank angle interval AI. Then, the angle timer monitor unit 63 calculates a time by multiplying the difference between the rotation angle position Ac_(i) of the crank shaft corresponding to the most recent crank signal and the required angle Ar (Ar-Ac_(i)) by the 1°CA time. The angle timer monitor unit 63 calculates a time as the theoretical value time by adding the multiplied time to the time tc_(i) when the most recent crank signal occurred.
[0109] According to the microcontroller 10 of the above embodiment, the most recent interval time T is the past interval time. 01From this, the usual theoretical time can be calculated as the theoretical time. (3e) If the angle timer monitor unit 63 determines that acceleration is occurring, in S170 it calculates the acceleration start angle position As. The acceleration start angle position As is the rotation angle position of the crankshaft where it is estimated that the high-rate function has started. The angle timer monitor unit 63 calculates the theoretical time by adding the high-rate time Ih to the time tc_(i) when the most recent crank signal was generated. The high-rate time Ih is the time required to count the angle difference between the requested angle Ar and the acceleration start angle position As based on the high-speed clock. According to the microcontroller 10 of the above embodiment, it is possible to calculate the theoretical time corresponding to the operation of the high-rate function of the angle timer 13 (i.e., the high-rate theoretical time).
[0110] (3f) The angle timer monitor unit 63 monitors the most recent interval time T 01 The previous interval time T 12 The ratio to is defined as the interval ratio R, and the angle obtained by multiplying the crank angle interval AI by the interval ratio R is used as the normal angle interval for calculation. The interval ratio R is given by R = T 01 / T 12 The angle timer monitor unit 63 calculates the acceleration start angle position As by adding the normal angle interval to the rotation angle position of the crankshaft corresponding to the most recent crank signal.
[0111] According to the microcontroller 10 of the above embodiment, the previous interval time T is the past interval time. 12 and the most recent interval time T 01 Based on these changes, it is possible to calculate the theoretical time that reflects these changes (i.e., the high-rate theoretical time).
[0112] (3g) In S140, the angle timer monitor unit 63 determines that the angle timer 13 is abnormal if the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the required angle is greater than the crank angle interval. The difference here may be, for example, the absolute value of the difference. If the angle timer 13 is not determined to be abnormal in S140, the angle timer monitor unit 63 calculates the theoretical time in S160 or S170.
[0113] According to the microcontroller 10 of the above embodiment, if the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the required angle is greater than the crank angle interval, the angle timer 13 is determined to be abnormal. In the subsequent processing, the theoretical time value is not calculated, thus reducing the processing load on the microcontroller 10.
[0114] <Correspondence between words> In the above embodiment, the microcontroller 10 corresponds to the engine control device, and the angle timer monitor unit 63 and engine control unit 16 correspond to the detection unit, actual output time acquisition unit, theoretical value time calculation unit, normal determination unit, and initial determination unit. The angle timer 13 corresponds to the angle clock unit, and the output timer 14 corresponds to the execution unit. S110 corresponds to the processing as the actual output time acquisition unit, and S160 and S170 correspond to the processing as the theoretical value time calculation unit.
[0115] S190 corresponds to the processing as a normal determination unit, S150 corresponds to the processing as an acceleration determination unit, and S140 corresponds to the processing as an initial determination unit. The crank time interval corresponds to the time interval between the detected current crank signal and the previous crank signal. The high-rate time Ih corresponds to the time required to count the angle difference between the requested angle and the acceleration start angle position based on the high-speed clock.
[0116] [4. Other Embodiments] Although embodiments of the present disclosure have been described above, the present disclosure is not limited to the embodiments described above and can be implemented in various modified forms.
[0117] (4a) The angle timer 13 described herein is not limited to the embodiments described above, and may have different configurations as long as it achieves the same functions as described above. (4b) In the microcontroller 10 described above, the engine control unit 16 (i.e., the CPU 65) set the target clock count in the target clock count setting unit 316 in S40, but the disclosure is not limited thereto. For example, the microcontroller 10 may be configured to set the target clock count for each crank angle interval in a register it has, and load the set target clock count from the register each time a crank signal (i.e., a crank edge) is detected by the first input timer 12.
[0118] (4c) The engine control unit 16 and its method described herein may be implemented by a dedicated computer provided by configuring a processor and memory programmed to perform one or more functions embodied by a computer program. Alternatively, the engine control unit 16 and its method described herein may be implemented by a dedicated computer provided by configuring a processor by one or more dedicated hardware logic circuits. Alternatively, the engine control unit 16 and its method described herein may be implemented by one or more dedicated computers configured by a combination of a processor and memory programmed to perform one or more functions and a processor configured by one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by the computer on a computer-readable non-transitional tangible recording medium. The method for implementing the functions of each part included in the engine control unit 16 does not necessarily have to include software, and all of its functions may be implemented using one or more hardware components.
[0119] (4d) Multiple functions of one component in the above embodiment may be realized by multiple components, or one function of one component may be realized by multiple components. Also, multiple functions of multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Furthermore, some of the configuration of the above embodiment may be omitted. Also, at least some of the configuration of the above embodiment may be added to or replaced with the configuration of other above embodiments.
[0120] (4e) In addition to the engine control unit 16 described above, this disclosure can also be realized in various forms, such as an engine ECU that includes the engine control unit 16 as a component, an engine control system, a program for making the engine control unit 16 function, a non-transitional physical recording medium such as a semiconductor memory that records this program, and an engine control method.
[0121] [Technical concepts disclosed in this specification] [Item 1] An engine control device installed in a vehicle, An actual output time acquisition unit (16, S110) is configured to acquire the actual output time, which is the time when the control signal is output from an output unit (17) which includes an angle clock unit (13) that outputs an angle count value, which is the count of the angle clock, using a multiplied clock with a period obtained by dividing the time interval between the detected current crank signal and the previous crank signal by a preset multiplier as the angle clock, and an execution unit (14) that outputs the control signal to a controlled object that is controlled according to the control signal, based on the angle count value and a preset required angle as the rotation angle position of the crank shaft, and an execution unit (14) which outputs the control signal based on the angle count value and a preset required angle as the rotation angle position of the crank shaft, when a crank signal that is generated as pulses at predetermined crank angle intervals in accordance with the rotation of the crank shaft is detected, When it is detected that the control signal has been output, the theoretical time calculation unit (16, S160, S170) is configured to calculate the theoretical time, which is the theoretical value of the actual output time, based on the most recent interval time, which is the time interval between the most recent crank signal and the most recent crank signal, using the crank signal detected at the timing closest to the actual output time among the crank signals detected before the actual output time as the most recent crank signal, and the crank signal detected at the second closest timing as the most recent previous crank signal. A normal determination unit (16, S190) is configured to determine that the angle clock unit is normal when the difference between the actual output time and the theoretical value time is less than a predetermined abnormality threshold, An engine control device (10) equipped with the following.
[0122] [Item 2] The engine control device described in item 1, The angle clock unit, upon detecting the crank signal, has a high-rate function that, if the rotational angle position of the crankshaft indicated by the angle count value is less than the rotational angle position of the crankshaft corresponding to the detected crank signal, sets a high-speed clock with a shorter period than the multiplier clock as the angle clock, outputs the count of the high-speed clock as the angle count value, changes the angle count value to a count that indicates the rotational angle position of the crankshaft corresponding to the current crank signal, and then sets the multiplier clock back as the angle clock. The engine control device is, The system further includes an acceleration determination unit (S150) configured to determine whether or not the vehicle is accelerating when it is detected that the aforementioned control signal has been output. The theoretical time calculation unit is an engine control device that calculates the theoretical time in a different manner than when it is determined that the vehicle is not accelerating, when it is determined that the vehicle is accelerating.
[0123] [Item 3] The engine control device described in item 2, The acceleration determination unit, upon detecting that the control signal has been output, acquires the rotational angle position of the crankshaft corresponding to the most recent crank signal, and determines that the vehicle is accelerating if the rotational angle position of the crankshaft corresponding to the most recent crank signal is greater than the required angle, is an engine control device.
[0124] [Item 4] An engine control device as described in item 2 or 3, The engine control device (S160) calculates a 1°CA time by dividing the most recent interval time by the crank angle interval when it is determined that the vehicle is not accelerating, calculates a time by multiplying the difference between the rotation angle position of the crankshaft corresponding to the most recent crank signal and the required angle by the 1°CA time, and calculates the time by adding the multiplied time to the time when the most recent crank signal occurred as the theoretical time.
[0125] [Item 5] An engine control device described in any one of items 2 to 4, The engine control device comprises a theoretical time calculation unit (S170) which, when it is determined that acceleration is occurring, calculates the acceleration start angle position, which is the rotational angle position of the crankshaft at which the high-rate function is estimated to have started, and calculates the theoretical time by adding the time required to count the angle difference between the requested angle and the acceleration start angle position based on the high-speed clock to the time when the most recent crank signal was generated, and using this time as the theoretical time.
[0126] [Item 6] The engine control device described in item 5, The theoretical time calculation unit determines the crank signal detected at the timing closest to the most recent crank signal among the crank signals detected before the most recent crank signal as the second most recent crank signal, the time interval between the most recent crank signal and the second most recent crank signal as the previous interval time, the ratio of the most recent interval time to the previous interval time as the interval ratio, the angle obtained by multiplying the crank angle interval by the interval ratio as the normal angle interval, and the angle obtained by adding the normal angle interval to the rotation angle position of the crank shaft corresponding to the most recent crank signal as the acceleration start angle position.
[0127] [Item 7] An engine control device described in any one of items 2 to 5, The system further includes an initial determination unit (16, S140) configured to determine that the angle clock unit is abnormal if, upon detection that the aforementioned control signal has been output, the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the requested angle is greater than the crank angle interval. The theoretical time calculation unit calculates the theoretical time when the initial determination unit does not determine that the angle clock unit is abnormal. This is an engine control device. [Explanation of Symbols]
[0128] 10...Microcontroller, 13...Angle monitor, 14...Output timer, 16...Engine control unit, 17...Output unit, 61...Crank interrupt control unit, 63...Angle timer monitor unit, 71...Theoretical time calculation unit, 72...Determination unit.
Claims
1. An engine control device installed in a vehicle, An actual output time acquisition unit (16, S110) is configured to acquire the actual output time, which is the time when the control signal is output from an output unit (17) which includes an angle clock unit (13) that outputs an angle count value, which is the count of the angle clock, using a multiplied clock with a period obtained by dividing the time interval between the detected current crank signal and the previous crank signal by a preset multiplier as the angle clock, and an execution unit (14) that outputs the control signal to a controlled object that is controlled according to the control signal, based on the angle count value and a preset required angle as the rotation angle position of the crank shaft, and an execution unit (14) which outputs the control signal based on the angle count value and a preset required angle as the rotation angle position of the crank shaft, when a crank signal that is generated as pulses at predetermined crank angle intervals in accordance with the rotation of the crank shaft is detected, A theoretical time calculation unit (16, S160, S170) is configured to calculate the theoretical time, which is the theoretical value of the actual output time, based on the most recent interval time, which is the time interval between the most recent crank signal and the most recent crank signal, from among the crank signals detected before the actual output time, with the crank signal detected at the timing closest to the actual output time being the most recent crank signal, and the crank signal detected at the second closest timing being the crank signal immediately preceding the most recent. A normal determination unit (16, S190) is configured to determine that the angle clock unit is normal when the difference between the actual output time and the theoretical value time is less than a predetermined abnormality threshold, Equipped with, The theoretical time calculation unit, Based on the most recent interval time, which is the time interval between the most recent crank signal and the crank signal immediately preceding it, the unit time per crank angle interval is determined, and the theoretical time is calculated by adding a time corresponding to the difference between the requested angle and the crank angle to the time the most recent crank signal was generated, and if it is determined that the vehicle is accelerating, the method for calculating the theoretical time is changed. Engine control device (10).
2. An engine control device according to claim 1, The angle clock unit, upon detecting the crank signal, has a high-rate function that, if the rotational angle position of the crankshaft indicated by the angle count value is less than the rotational angle position of the crankshaft corresponding to the detected crank signal, sets a high-speed clock with a shorter period than the multiplier clock as the angle clock, outputs the count of the high-speed clock as the angle count value, changes the angle count value to a count that indicates the rotational angle position of the crankshaft corresponding to the current crank signal, and then sets the multiplier clock back as the angle clock. The engine control device is, The system further includes an acceleration determination unit (S150) configured to determine whether or not the vehicle is accelerating when it is detected that the aforementioned control signal has been output. The theoretical time calculation unit is an engine control device that calculates the theoretical time in a different manner than when it is determined that the vehicle is not accelerating, when it is determined that the vehicle is accelerating.
3. An engine control device according to claim 2, The acceleration determination unit, upon detecting that the control signal has been output, acquires the rotational angle position of the crankshaft corresponding to the most recent crank signal, and determines that the vehicle is accelerating if the rotational angle position of the crankshaft corresponding to the most recent crank signal is greater than the required angle, is an engine control device.
4. An engine control device according to claim 2, The engine control device comprises a theoretical time calculation unit (S160) which, when it is determined that the vehicle is not accelerating, calculates a 1°CA time by dividing the most recent interval time by the crank angle interval, calculates a time by multiplying the difference between the rotation angle position of the crankshaft corresponding to the most recent crank signal and the required angle by the 1°CA time, and calculates the theoretical time by adding the multiplied time to the time when the most recent crank signal occurred.
5. An engine control device according to claim 2, The engine control device comprises a theoretical time calculation unit (S170) which, when it is determined that acceleration is occurring, calculates the acceleration start angle position, which is the rotational angle position of the crankshaft at which the high-rate function is estimated to have started, and calculates the theoretical time by adding the time required to count the angle difference between the requested angle and the acceleration start angle position based on the high-speed clock to the time when the most recent crank signal was generated, and using this time as the theoretical time.
6. An engine control device according to claim 5, The theoretical time calculation unit determines the crank signal detected at the timing closest to the most recent crank signal among the crank signals detected before the most recent crank signal as the second most recent crank signal, the time interval between the most recent crank signal and the second most recent crank signal as the previous interval time, the ratio of the most recent interval time to the previous interval time as the interval ratio, the angle obtained by multiplying the crank angle interval by the interval ratio as the normal angle interval, and the angle obtained by adding the normal angle interval to the rotation angle position of the crank shaft corresponding to the most recent crank signal as the acceleration start angle position, wherein the theoretical time calculation unit determines the crank signal detected at the timing closest to the most recent crank signal, the second most recent crank signal, the second most recent crank signal, the second most recent crank signal, the second most recent crank signal, the second most recent crank signal, the first most recent crank signal, the second most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the first most recent crank signal, the theoretical time calculation unit determines the crank signal detected at the timing closest to the most recent crank signal and the second most recent crank signal, the second most recent crank signal, the second most recent crank signal, the first
7. An engine control device according to claim 2, The system further includes an initial determination unit (16, S140) configured to determine that the angle clock unit is abnormal if, upon detection that the aforementioned control signal has been output, the difference between the rotational angle position of the crankshaft corresponding to the most recent crank signal and the requested angle is greater than the crank angle interval. The theoretical time calculation unit calculates the theoretical value when the initial determination unit does not determine that the angle clock unit is abnormal. This is an engine control device.
Citation Information
Patent Citations
Engine control system and program
JP2008190344A
Engine control device
JP2015151945A
Engine control unit
JP2015229928A
Engine control device
JP2017193992A
Ad-conversion processor
JP2019035377A