Single chip microcomputer realizes high-precision measurement of injection pump speed and advance angle

Publisher:TranquilWhisperLatest update time:2012-02-09 Source: 自动化技术与应用 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

1 Introduction

The injection advance angle refers to the crankshaft angle from the moment the injector starts to spray fuel into the cylinder during engine operation (marked by the rise of the injector needle valve) to the moment the piston reaches the top dead center. It is replaced by the fuel supply advance angle during use. The advance angle will change due to the wear of the diesel engine injection pump cam drive. In addition, the engine cylinder liner, piston wear, or the crankshaft and connecting rod bearings are bored or replaced, which will also cause the advance angle to deviate from the value required for normal combustion. Therefore, the injection advance angle needs to be checked or adjusted frequently during engine use. High-precision measurement of the advance angle value is the key to accurate adjustment. The method of measuring the advance angle using a single-chip microcomputer introduced in this article has the characteristics of high measurement accuracy, wide range, and simplicity. 

2 Measurement principle

A photoelectric sensor is fixed on the main shaft of the test bench motor and the injection pump respectively. The light pulse is converted into an electrical pulse by the photoelectric circuit, which is represented by N1 and N2 respectively. The 8051 single-chip microcomputer timer/counter 0 is set to working mode 2, that is, the 8-bit timer/counter with the initial value is automatically reloaded, and the TMOD gate bit GATE=1 and TRO=1 are set to make the timer/counter 0 work under the control of INT0. The spindle speed is calculated by the results measured by the measurement circuit shown in Figure 1. The advance time measurement circuit shown in Figure 3 measures the time difference T between pulse N1 and pulse N2 when the oil pump is operating normally at a certain speed, and calculates the advance angle. Since the absolute error of measuring the time of one spindle rotation is only one reference pulse cycle (1s), the relative measurement error of the speed is very small. 


(1) Measurement of spindle speed

The oil pump runs at a certain speed. The pulse signal NO from the optical encoder disk that measures the spindle speed reaches the P3.4 pin of 8051. The microcontroller detects the pulse signal at the P3.4 pin and sets the P1.0 pin to a high level. The D flip-flop arrives at the next rising edge of the NO pulse, and Q outputs a high level. INT0 starts the timer T0 and uses R0 and R1 to record the number of timer interrupts. Timer T0 is set for a period of time t (the time should be less than the interval between the two rising edges of the NO pulse). When the time is up, the CPU is requested to set the P1.0 pin to a low level. Timer T0 continues to work and starts recording the time Δt. The D flip-flop waits for the next rising edge of the NO pulse to arrive, and the Q terminal outputs a low level. INTO stops the timer T0. The CPU calculates the total time T between the two consecutive rising edges of the NO pulse. This time is the time for the spindle to rotate once, so the spindle speed is 1/T.

(2) Measurement of advance angle

The oil pump runs at a certain speed. The pulse signal NO from the optical encoder disk that measures the spindle speed reaches the P3.4 pin of 8051. The microcontroller detects the pulse signal at the P3.4 pin and sets the P1.0 pin to a high level. The D flip-flop arrives at the rising edge of the next pulse (N1 pulse) of S, and Q outputs a high level. INT0 starts the timer T0 and uses R0 and R1 to record the number of timer interrupts. Timer T0 is timed for a period of time t (the time should be less than the interval U between the two adjacent rising edges of NO and N1 pulses). When the time is up, the CPU is requested to set the P1.0 pin to a low level. Timer 0 continues to work and starts recording the time Δt. The D flip-flop waits for the next pulse of S to rise, and the Q terminal outputs a low level. INT0 stops the timer T0. The CPU calculates the total time T (t+Δt), which is the time that NO is ahead of N1. According to the speed measurement method, the time A required for the spindle to rotate once is measured, and then the advance angle is calculated using the formula: advance angle = T/A. 


3 Measurement subroutine flow chart

The following is the spindle speed measurement subroutine flow chart. The measurement of the advance angle can refer to this flow chart.

4 Conclusion

The method introduced in this paper has been applied to more than 30 oil pump test benches produced by two oil pump test bench manufacturers. The system has reliable operation and accurate measurement, which fully meets the test requirements. This system has certain reference value for high-precision measurement of speed and time of other systems.

5 References

[1] Single-Chip Microcomputer Principles and Applications [M]. Edited by Ding Yuanjie, China Machine Press. 1996, 10.
[2] Microcomputer Technology and Applications [M]. Dai Mei'e, Shi Jiaquan, Tsinghua University Press. 1996, 5.

Reference address:Single chip microcomputer realizes high-precision measurement of injection pump speed and advance angle

Previous article:Prevention of Program Out of Control Based on MCS-96 Single Chip Microcomputer Control System
Next article:Design of controllable digital frequency source by single chip microcomputer controlled DDS chip

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号