ROTATIONAL SPEED ESTIMATION METHOD FOR INCREMENTAL ENCODER

20240418741 ยท 2024-12-19

Assignee

Inventors

Cpc classification

International classification

Abstract

A rotational speed estimation method for an incremental encoder includes generating a plurality of pulse signals according to a plurality of square waves, detecting a time duration when the pulse signals reach a predetermined amount, and generating a rotational speed of a disc according to the predetermined amount, the time duration, and the total number of pulses corresponding to one rotation of the disc of the incremental encoder.

Claims

1. A rotational speed estimation method for an incremental encoder, comprising: generating a plurality of pulse signals according to a plurality of square waves; detecting a time duration for the plurality of pulse signals to reach a predetermined number; and generating a rotational speed of the incremental encoder according to the predetermined number, the time duration, and a total pulse number generated by one rotation of a disc of the incremental encoder.

2. The method of claim 1, wherein detecting the time duration for the plurality of pulse signals to reach the predetermined number comprises: using a direct memory access (DMA) to access a start time and an end time of generating the plurality of pulse signals.

3. The method of claim 2, wherein detecting the time duration for the plurality of pulse signals to reach the predetermined number further comprises: generating the time duration based on the start time and the end time.

4. The method of claim 1, further comprising generating the predetermined number according to a pulse number of the pulse signals, and the number of rotations of the disc for generating the pulse number of the pulse signals.

5. The method of claim 1, further comprising generating the predetermined number according to a pulse number of the pulse signals, the number of rotations of the disc for generating the pulse number of the pulse signals, and a compensation value.

6. The method of claim 1, further comprising: generating the square waves according to a plurality of light sources and a plurality of light sensors.

7. The method of claim 1, wherein generating the plurality of pulse signals according to the square waves comprises: generating the pulse signals according to a first square wave and a second square wave, the second square wave having a same period as the first square wave, and a phase difference between the second square wave and the first square wave being 90 degrees.

8. A rotational speed estimation method for an incremental encoder, comprising: generating a plurality of pulse signals according to a plurality of square waves; detecting a plurality of time durations for the plurality of pulse signals to reach a predetermined number; and generating a rotational speed of the incremental encoder according to the predetermined number, a sum of the time durations, and a total pulse number generated by one rotation of a disc of the incremental encoder.

9. The method of claim 8, further comprising: generating the square waves according to a plurality of light sources and a plurality of light sensors.

10. The method of claim 8, wherein generating the plurality of pulse signals according to the square waves comprises: generating the pulse signals according to a first square wave and a second square wave, the second square wave having a same period as the first square wave, and a phase difference between the second square wave and the first square wave being 90 degrees.

11. The method of claim 8, further comprising: accessing the plurality of time durations using a plurality of direct memory accesses (DMA).

12. The method of claim 8, further comprising summing the plurality of time durations to generate the sum of the time durations.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] FIG. 1 is a block diagram of an incremental encoder according to the present invention.

[0010] FIG. 2 is a schematic diagram of a disc, the light source and the light sensor in FIG. 1.

[0011] FIG. 3 is a waveform diagram of a plurality of pulse signals generated according to a first signal and a second signal outputted by the light sensor in FIG. 2.

[0012] FIG. 4 is a block diagram of another incremental encoder.

[0013] FIG. 5 shows waveforms generated according to a first signal and a second signal outputted by the light sensor in FIG. 4.

[0014] FIG. 6 is a flow chart of a method for estimating a rotational speed of an incremental encoder according to an embodiment of the present invention.

[0015] FIG. 7 is a flowchart of a method for estimating a rotational speed of an incremental encoder according to another embodiment of the present invention.

DETAILED DESCRIPTION

[0016] Encoders can be classified into three types based on the principle of signal generation: mechanical, magnetic and optical. The optical type encoder, in particular, has a disc that spins in synchronization with the main shaft, and is sandwiched between light sources and light sensors. The disc has alternating transparent and opaque regions, enabling the light sensors to generate data for a microprocessor to determine the number of rotations of the disc.

[0017] The encoders can be classified into absolute encoders and incremental encoders based on the encoding methods. An incremental encoder operates by using a first signal A and a second signal B that have a 90-degree phase difference therebetween, resulting in four combinations at output terminals. The four combinations of the first signal A and the second signal B are (0, 0), (0, 1), (1, 1), (1, 0) respectively, enabling the high and low levels of the first signal A and the second signal B to be converted into pulses that correspond to the number of rotations of the disc. Assuming that a rotation of the disc corresponds to 600 pulses, then the disc performs 1/600 rotation when the first signal A and the second signal B changes from (0,0) to (0,1).

[0018] An embodiment of the invention presents a method for estimating the rotational speed of an incremental encoder. FIG. 1 is a block diagram of an incremental encoder 10 according to the present invention. The incremental encoder 10 includes a microprocessor 100, a direct memory access (DMA) 110, a counter 120, a timer 130, a disc 140, a light source 150, and a light sensor 160. The microprocessor 100 may control the counter 120, the timer 130, and access the DMA 110 at an appropriate time. The light from the light source 150 passes through the transparent regions on the disc 140 to reach the light sensor 160, and the light sensor 160 outputs corresponding square wave signals to the microprocessor 100. The microprocessor 100 then converts the rising and falling edges of the square wave signals into pulse signals. While the figures in the disclosure are based on an optical encoder, the application is not limited thereto and can be extended to mechanical, magnetic, or optical incremental encoders.

[0019] FIG. 2 is a schematic diagram of the disc 140, the light source 150 and the light sensor 160. In an embodiment, the microprocessor 100 can generate pulse signals using the setup shown in FIG. 2. The disc 140 has a plurality of recesses 230. The light source 150 can include a plurality of light emitting diodes 200, 210 positioned on one side of the disc 140, and the light sensor 160 can include a plurality of light sensing elements 201, 211 positioned on the opposite side of the disc 140. The light emitting diodes 200 and 210 can continuously emit light, and the light sensing elements 201 and 211 can continuously detect the light emitted by the corresponding light emitting diodes 200 and 210. When the disc 140 rotates and the light emitted by the light emitting diode 200 passes through a recess 230, the light sensing element 201 can detect the light transmitted from the light emitting diode 200. When there is no recess 230 between the light sensing element 201 and the light emitting diode 200, the light sensing element 201 cannot detect the light transmitted from the light emitting diode 200, thus the light sensing element 201 can generate the first signal A with a square wave. Likewise, when the disc 140 rotates and the light emitted by the light emitting diode 210 passes through a recess 230, the light sensing element 211 can detect the light transmitted from the light emitting diode 210. When there is no recess 230 between the light sensing elements 211 and the light emitting diode 210, the light sensing element 211 cannot detect the light transmitted from the light emitting diode 210, thus the light sensing element 211 can generate the second signal B with a square wave. By properly arranging the light emitting diodes 200, 210 and the light sensing elements 201, 211, the phase difference between the first signal A and the second signal B can be substantially 90 degrees.

[0020] FIG. 3 is a waveform diagram of a plurality of pulse signals generated according to the first signal A and the second signal B. As shown in FIG. 3, since the phase difference between the first signal A and the second signal B is 90 degrees, a quadrupled frequency pulse signal C can be generated, and the number of the quadrupled frequency pulse signal C can be calculated by a counter 120.

[0021] When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) is stored in the microprocessor 100. When the timer 130 starts timing, the time is reset to 0. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the microprocessor 100 can instruct the timer 130 to stop timing when the number of pulses reaches the predetermined number of pulses

[00003] P r = N + M - N - 1 k .

[0022] Upon the timer 130 stopping the timing, the time recorded by the timer 130 is the end time Td, and the microprocessor 100 can use the end time Td, the total number of pulses P.sub.T for one turn of the disc 140, the number of pulses N, and the predetermined number of pulses P.sub.r to generate the rotational speed

[00004] = 60 ( P r - N - 1 ) Td P T rpm

of the disc 140.

[0023] In another embodiment of the present invention, suppose the microprocessor 100 sequentially calculates the rotational speeds of the disc 140 as .sub.1, .sub.2, . . . , .sub.n, if the slope of .sub.1, .sub.2, . . . , .sub.n obtained by linear regression

[00005] .Math. i = 1 n ( i - 1 + n 2 ) ( i - _ ) .Math. i = 1 n ( i - 1 + n 2 ) 2

is a negative value, then the disc is decelerating, where is the average value of .sub.1, .sub.2, . . . , .sub.n. When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) and a constant p compensating for the deviation of the deceleration of the disc 140 are stored in the microprocessor 100. When the timer 130 starts timing, the time can be reset to 0. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the microprocessor 100 can instruct the timer 130 to stop timing when the number of pulses reaches the predetermined number of pulses

[00006] P r = N + M - N - 1 k - p .

[0024] When the timer 130 stops timing, the time recorded by the timer 130 is the end time Td, and the microprocessor 100 can use the end time Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed

[00007] = 60 ( P r - N - 1 ) Td P T rpm

of the disc 140.

[0025] In another embodiment of the present invention, a method for estimating the rotational speed of an incremental encoder is provided. When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc, and the starting time Ta is stored into the DMA 110 or another memory. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) is stored in the microprocessor 100. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the DMA 110 may record the end time Tb of the timer 130 in the memory when the number of pulses reaches the predetermined number of pulses

[00008] P r = N + M - N - 1 k .

[0026] The microprocessor 100 can generate an elapsed time duration Td=TbTa according to the start time Ta and the end time Tb. The microprocessor 100 can use the elapsed time duration Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed

[00009] = 60 ( P r - N - 1 ) Td P T rpm

of the disc 140.

[0027] In another embodiment of the present invention, suppose the microprocessor 100 sequentially calculates the rotational speeds of the runner 140 as .sub.1, .sub.2, . . . , .sub.n, if the slope of .sub.1, .sub.2, . . . , .sub.n obtained by linear regression

[00010] .Math. i = 1 n ( i - 1 + n 2 ) ( i - _ ) .Math. i = 1 n ( i - 1 + n 2 ) 2

is a negative value, then the disc is decelerating, where is the average value of .sub.1, .sub.2, . . . , .sub.n. When the microprocessor 100 measures the rotational speed of the disc 140, and the current pulse number recorded by the counter 120 is N1, the current pulse number N1 is stored into the DMA 110 or another memory. When the rising edge or falling edge of the first signal A or the second signal B generates the Nth pulse, the timer 130 starts to time a cycle Tc, and the starting time Ta is stored into the DMA 110 or another memory. A constant k ranging between 0.5 and 1.0 (e.g., k=0.8) and a constant p compensating for the deviation of the deceleration of the disc 140 are stored in the microprocessor 100. When the time reaches kTc, the number of pulses recorded by the counter 120 is M, and the DMA 110 may record the end time Tb of the timer 130 in the memory when the number of pulses reaches the predetermined number of pulses

[00011] P r = N + M - N - 1 k - p .

[0028] The microprocessor 100 can generate an elapsed time duration Td=TbTa according to the start time Ta and the end time Tb. The microprocessor 100 can use the elapsed time duration Td, the total pulse number P.sub.T for one turn of the disc 140, the pulse number N, and the predetermined pulse number P.sub.r to generate the rotational speed

[00012] = 60 ( P r - N - 1 ) Td P T rpm

of the disc 140.

[0029] In yet another embodiment, the invention presents a method for estimating the rotational speed of an incremental encoder. FIG. 4 is a block diagram of an incremental encoder 40. The incremental encoder 40 includes a microprocessor 100, a direct memory access (DMA) 110, a first timer 420, a second timer 430, a disc 140, a light source 150 and a light sensor 160. The microprocessor 100 is used to control the first timer 420, the second timer 430, and access the DMA 110 at the appropriate time. The light emitted by the light source 150 is transmitted to the light sensor 160 through the transparent region on the rotating disc 140. The light sensor 160 outputs a binary light sensing signal to the microprocessor 100, and the microprocessor 100 then converts the binary light sensing signal into a pulse signal.

[0030] FIG. 5 shows waveforms generated according to the first signal A and the second signal B. As shown in FIG. 5, since the phase difference between the first signal A and the second signal B is 90 degrees, a quadrupled frequency pulse signal C can be generated, and the number of quadrupled frequency pulse signals C can be counted by the DMA 110.

[0031] The microprocessor 100 can set the first timer 420 to calculate the time duration of each pulse signal, prompting the DMA 110 to store the time durations in a loop. The length of the DMA 110 is equal to the total number of pulses P.sub.T generated by one turn of the disc 140. When the second timer 430 starts to time, the initial count value N0 is recorded in the DMA 110, followed by the ending count value N1 at the end of the timing period. The number of complete pulses during the timing period Tc is given by m=N1-N0-2. By summing all the pulse periods from N0+2 to N1 memory segments, the elapsed time duration Td of m pulses can be obtained, and the microprocessor 100 uses pulse number m, the elapsed time duration Td of the m pulses and total pulse number P.sub.1 in one turn of the disc 140 to generate the rotational speed

[00013] = 60 m Td P T rpm

of the disc 140.

[0032] Consider the embodiment in FIG. 5, when the second timer 430 starts to enter the timing cycle, the microprocessor 100 sets N0 to 1, and the DMA 110 continues to record the corresponding pulse time duration in the cycle of the second timer 430. Consequently, the pulse time durations are correspondingly recorded in the access units p2, p3, p4 . . . , m+3, m+4 of the DMA 110. Since the pulse time duration corresponding to the access unit p2 occurs before the second timer 430 starts timing, the pulse time duration stored in the access unit p2 is discarded when calculating the elapsed time duration Td. In addition, since the pulse time duration corresponding to the access unit m+4 has not been recorded before the timing period of the second timer 430 ends, when calculating the elapsed time duration Td, the pulse time duration corresponding to the access unit m+4 would not be recorded. Thus N1=m+3.

[0033] Therefore, when calculating the number of pulses m where m=N1-N0-2, the microprocessor 100 adds up the pulse time durations recorded in the access units from p3 to m+3 of the DMA 110 to obtain the elapsed time duration Td. The microprocessor 100 can then generate the rotational speed

[00014] = 60 m Td P T rpm

of the disc 140 according to the pulse number m, the elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.

[0034] FIG. 6 is a flow chart of the method 600 for estimating the rotational speed of the incremental encoder 10 according to an embodiment of the present invention. The estimating method 600 for the rotational speed of the incremental encoder 10 includes the following steps: [0035] S610: Generate a plurality of pulse signals C according to the first signal A and the second signal B; [0036] S620: Detect the elapsed time duration Td for the plurality of pulse signals C to reach a predetermined number (P.sub.rN1); and [0037] S630: Generate the rotational speed

[00015] = 60 ( P r - N - 1 ) Td P T rpm

of the disc 140 according to the predetermined number (P.sub.rN1), elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.

[0038] FIG. 7 is a flowchart of the method 700 for estimating the rotational speed of the incremental encoder 40 according to another embodiment of the present invention. The estimating method 700 for the rotational speed of the incremental encoder 40 includes the following steps: [0039] S710: Generate a plurality of pulse signals C according to the first signal A and the second signal B; [0040] S720: Detect a plurality of time durations (the sum of which is Td) for the plurality of pulse signals C to reach a predetermined number m=(N1-N0-2); and [0041] S730: Generate the rotational speed

[00016] = 60 m Td P T rpm

of the disc 140 according to the predetermined number m=(N1-N0-2), the elapsed time duration Td, and the total pulse number P.sub.T generated by one turn of the disc 140.

[0042] In the embodiments of the present invention, the timer is used to calculate the exact elapsed time duration Td and the number of complete pulses, thereby addressing the issues of the traditional estimation method and satisfying both high-speed and low-speed applications. The embodiment of the present invention is not only applicable to the estimation of the speed/position of the disc 140, but can also be used for measuring and recording pulses and pulse intervals. In addition to generating a plurality of pulse signals through the first signal A and the second signal B, a plurality of pulse signals can be generated using more than two square wave signals.

[0043] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.