METHOD FOR DEBOUNCING AN ELECTRICAL INPUT SIGNAL, AND DEBOUNCING MODULE
A method for debouncing an electrical input signal (xin) includes following steps: (1) an input signal (xin) is received and a present value of the input signal (xin) is ascertained; (2) ascertaining whether the present value of the input signal (xin) is above or below at least one predefined limit value (xG); (3) producing a debounce status variable (xE) having a defined initial value; (4) altering the value of the debounce status variable (xE) on the basis of at least whether the value of the input signal (xin) is above or below the at least one limit value (xG), (5) generating an output signal (xout) on the basis of whether the value of the debounce status variable (xE) corresponds to the minimum value (Wmin), to the maximum value (Wmax) or to a value between the minimum value (Wmin) and the maximum value (Wmax).
Latest ZF Automotive Germany GmbH Patents:
This application claims priority to German Patent Application No. 102019109653.7, filed Apr. 11, 2019, the disclosure of which is incorporated herein by reference in its entirety.
TECHNICAL FIELDThe invention relates to a method for debouncing an electrical input signal and to a debouncing module.
BACKGROUNDElectrical signals in general and electrical signals from sensors specifically can be described as a superimposition comprising an ideal, interference-free signal and additional interference
Said interference typically has a randomly distributed component that is described as additive white Gaussian noise, for example. As a result, the electrical signal has high-frequency interference superimposed on it. The interference thus alters the electrical signal, so that it differs from the ideal signal.
In many different situations, it is necessary to ascertain whether the interference-free electrical signal is above or below a predefined limit value. This often involves a binary output signal being produced, the value of which is dependent on whether the interference-free electrical signal is above or below a predefined limit value.
Particularly in immediate surroundings of the limit value, however, the interference described above results in the electrical signal changing between the range above the limit value and the range below the limit value at a very high frequency and hence in what is known as bouncing occurring. It is therefore difficult to decide whether the interference-free signal is above or below the limit value or exceeds the limit value. Accordingly, the value of the output signal produced in this limit range would jump to and from between the two possible values at a high frequency (this phenomenon is also referred to as “toggling”).
The prior art reveals methods in which the electrical signal is debounced by virtue of the value of the output signal being changed only when the electrical signal is continuously above or below the limit value for a predefined period. This approach can lead to long delays, however, particularly in the case of a very noisy signal, since the electrical signal repeatedly exceeds the limit value, if only briefly.
SUMMARYIt is thus an object of the invention to provide a method for debouncing an electrical input signal and a debouncing module that allow even very noisy electrical signals to be debounced with short delay times.
The object is achieved according to the invention by a method for debouncing an electrical input signal, having the following steps:
receiving the input signal;
ascertaining a present value of the input signal;
ascertaining whether the present value of the input signal is above or below at least one predefined limit value;
producing a debounce status variable having a defined initial value;
altering the value of the debounce status variable on the basis of at least whether the value of the input signal is above or below the at least one limit value, wherein the value of the debounce status variable is alterable between a minimum value and a maximum value; and
generating an output signal on the basis of whether the value of the debounce status variable corresponds to the minimum value, to the maximum value or to a value between the minimum value and the maximum value.
The method according to the invention is based on the basic idea of introducing an additional variable, namely the debounce status variable, which is a measure of how likely it is that the actual value of the electrical input signal is above or below the limit value.
In contrast to the prior art, a timer is thus not reset each time the electrical input signal exceeds the limit value, but rather the value of the debounce status variable is continually adjusted.
For a change in the value of the output signal, it is therefore sufficient if the present value of the input signal is one side of the limit value for long enough on the whole over a certain period, It is thus no longer necessary for the present value of the input signal to be continuously one side of the limit value over the certain period.
The influence of brief, that is to say high-frequency, fluctuations is reduced thereby and the electrical signal is debounced with shorter delays.
Preferably, the initial value of the debounce status variable is determined on the basis of the present value of the input signal. To be more precise, the initial value is set equal to the minimum value if the present value of the input signal is less than the limit value, and is set equal to the maximum value if the present value of the input signal is greater than the limit value. Alternatively, the initial value of the debounce status variable may also be prescribed, however, for example as the minimum value or as the maximum value.
By way of example, the minimum value is equal to zero and the maximum value is equal to one. Naturally, however, any other isolated range can also be used.
In particular, the electrical input signal is a measurement signal from a sensor or an already further-processed measurement signal from a sensor. By way of example, the electrical input signal is the signal from a torque sensor, from an angle position sensor, from a temperature sensor, from a voltage sensor, from a current sensor and/or from a force sensor. The applicable sensor from which the input signal originates may be part of a steering system for a motor vehicle.
In accordance with one configuration of the invention, the output signal is a binary signal. The output signal thus has two possible values corresponding to the interpretations “electrical input signal above the limit value” and “electrical input signal below the limit value”.
Preferably, the value of the output signal is altered if the value of the debounce status variable reaches the minimum value or the maximum value. In this case, the minimum value corresponds to the interpretation that the electrical input signal is below the limit value, which is why the reaching of the minimum value is followed by an output signal being output that corresponds to this state. Analogously, the maximum value corresponds to the interpretation that the electrical input signal is above the limit value, which is why the reaching of the maximum value is followed by an output signal being output that corresponds to this state.
A further aspect of the invention provides for the present value of the output signal to be maintained for as long as the value of the debounce status variable is between the minimum value and the maximum value. Expressed another way, the output signal is thus altered only if the debounce status variable reaches one of its two extreme values, that is to say the minimum value or the maximum value. This reliably prevents the value of the output signal from changing at a high frequency, in particular from jumping to and fro at a high frequency.
In accordance with a further configuration of the invention, the value of the debounce status variable is raised with a predefined first gradient if the ascertained present value of the input signal is above the at least one limit value, and/or the value of the debounce status variable is lowered with a predefined second gradient if the ascertained present value of the input signal is below the at least one limit value. The first and second gradients may be equal to or different from one another.
At this juncture and below, the term “predefined gradient” means that the first gradient and/or the second gradient are at least stipulated, that is to say constant, or are ascertained by the signal processing unit on the basis of stipulated criteria.
Preferably, the first gradient and/or the second gradient are or is ascertained on the basis of how far the present value of the input signal is above or below the at least one limit value. As a result, there is more weight to values of the input signal that are very far away from the limit value and thus give a greater indication that the input signal is on a specific side of the limit value.
More preferably, the magnitude of the value of the first gradient and/or of the second gradient is greater the further away the present value of the input signal is from the at least one limit value. As a result, the value of the debounce status variable is altered more quickly if the present value of the input signal is further away from the limit value, as a result of which the delays when debouncing the input signal are reduced further.
In accordance with a further configuration of the invention, the first gradient and/or the second gradient is ascertained on the basis of a characteristic curve, wherein the characteristic curve assigns a gradient to the value of the input signal. Expressed another way, the gradient of the debounce status variable is then thus a function of the distance of the present value of the input signal from the limit value, preferably a monotonously rising function, in particular a stringently monotonously rising function. The function in this case may be continuous or discontinuous. By way of example, the characteristic curve can have staircase-shaped sudden changes.
A further aspect of the invention provides for there to be provision for at least one primary and one secondary first gradient and also at least one predetermined positive limit value above the at least one limit value, wherein the value of the debounce status variable is raised with the primary first gradient if the ascertained present value of the input signal is below the at least one positive limit value but above the at least one limit value and wherein the value of the debounce status variable is raised for the secondary first gradient if the ascertained present value of the input signal is above the at least one positive limit value, and/or in that there is provision for at least one primary and one secondary second gradient and also at least one predetermined negative limit value below the at least one limit value, wherein the value of the debounce status variable is lowered with the primary second gradient if the ascertained present value of the input signal is above the at least one negative limit value but below the at least one limit value and wherein the value of the debounce status variable is lowered with the secondary second gradient if the ascertained present value of the input signal is below the at least one negative limit value.
Expressed another way, the at least one limit value, the positive limit value and the negative limit value define multiple bands that each correspond to a predefined gradient of the debounce status variable. In particular, the gradient is constant within the individual bands but different between the individual bands.
There may be provision for a second predefined limit value, wherein the value of the debounce status variable is maintained for as long as the present value of the input signal is between the two limit values. The two limit values thus bound a dead band as it were, within which the value of the debounce status variable does not change. As such, a dead band can be implemented in a simple manner.
In particular, the value of the debounce status variable is raised with the first gradient if the ascertained present value of the input signal is above the greater of the two limit values and/or the value of the debounce status variable is lowered with the second gradient if the ascertained present value of the input signal is below the smaller of the two limit values. The at least one limit value is thus replaced by a dead band as it were, wherein the value of the debounce status variable is raised if the present value of the input signal is above the dead band, and is lowered if the present value of the input signal is below the dead band.
The object is furthermore achieved according to the invention by a debouncing module, in particular a controller, having a signal input for receiving an input signal, a signal output for outputting an output signal and a signal processing unit, wherein the signal processing unit is configured to perform a method as described above. In consideration of the advantages and features, reference is made to the explanations above in consideration of the method, which accordingly also apply to the debouncing module, and vice versa.
Further advantages and properties of the invention are obtained from the description below and the accompanying drawings, to which reference is made and in which:
The signal processing unit 16 is arranged in a manner connected downstream of the signal input 12 and is connected to the signal input 12 in signal-transmitting fashion. Further, the signal processing unit 16 is arranged in a manner connected upstream of the signal output 14 and is connected to the signal output 14 in signal-transmitting fashion.
Expressed in a general way, the signal processing unit 16 is designed to receive the electrical input signal xin via the signal input 12, to process the input signal xinand to generate the output signal xout on the basis of the input signal xin.
In particular, the electrical input signal xin(t) is a measurement signal from a sensor or is an already further-processed measurement signal from a sensor. By way of example, the electrical input signal xin(t) is the signal from a torque sensor, from an angle position sensor, from a temperature sensor, from a voltage sensor, from a current sensors and/or from a force sensor.
The applicable sensor from which the input signal xin originates may be part of a steering system for a motor vehicle.
Accordingly, the debouncing module 10 may be part of a controller of a motor vehicle or of an applicable subsystem of a motor vehicle.
Further, the input signal xin is an analog signal or a digital signal, in particular a binary signal.
For many different applications, the signal processing unit 16 needs to ascertain whether a value of the interference-free signal xin,id is above or below a predefined limit value xG. It should be pointed out that the input signal xin in
The output signal xout is then a binary signal that is produced by the signal processing unit 16 with one or two possible different values, specifically depending on whether the value of the interference-free input signal xin,id is above or below the limit value xG. The two different possible values of the output signal xout are denoted by E and Ē below.
If the input signal xin, as shown in
This is illustrated once again in more detail in
For the interference-free input signal xin,id, an interference-free output signal xout,id is obtained that has a single, step-shaped transition from Ē to E.
For the actual input signal xin, on the other hand, a greatly fluctuating output signal xout,r would be obtained without further processing of the input signal xin on account of the noise component.
To produce a stable output signal, the input signal xin is thus processed by the debouncing module 10, to be more precise by the signal processing unit 16.
Expressed in a general way, the debouncing module 10 is designed to debounce the input signal xin and to take the input signal xin as a basis for producing the output signal xout. The output signal xout is thus a binary signal having values E and Ē that corresponds to the debounced input signal xin.
To be more precise, the debouncing module 10 is designed to perform the method for debouncing the electrical input signal xin, that is described below with reference to
First, the electrical input signal xin is received via the signal input 12 and forwarded to the signal processing unit 16 (step S1).
A present value of the input signal xin is then ascertained (step S2). At this juncture and below, the “present value” should be understood to mean a measurable signal parameter, for example a present amplitude or a present power of the input signal xin.
In step S2, the present value of the input signal xin is additionally compared with the limit value xG. This involves ascertaining whether the present value of the input signal xin is above or below the limit value xG.
Additionally, a debounce status variable xE is produced having a predefined initial value (step S3). The predefined initial value is in a predefined range bounded by a minimum value Wmin and a maximum value Wmax. In particular, Wmin is equal to zero and Wmax is equal to 1. Naturally, any other isolated range can also be used, however.
The initial value of the debounce status variable xE is determined on the basis of the present value of the input signal xin. To be more precise, the initial value is set equal to Wmin if the present value of the input signal xin is less than the limit value xG, and is set equal to Wmax if the present value of the input signal xin is greater than the limit value xG.
Alternatively, the initial value of the debounce status variable xE may also be prescribed, however, for example as zero or as one.
On the basis of the present value of the input signal xin, the value of the debounce status variable xE is altered (step S4). To be more precise, the value of the debounce status variable xE is raised with a predefined first gradient if the ascertained present value of the input signal xin is above the limit value xG. Analogously, the value of the debounce status variable xE is lowered with a second predefined gradient if the ascertained present value of the input signal xin is below the limit value xG.
The debounce status variable xE is always in the predefined range. It thus cannot become less than the minimum value Wmin or become greater than the maximum value Wmax.
At this juncture and below, “predefined gradient” means that the first gradient and/or the second gradient are already stipulated, that is to say constant, or are ascertained by the signal processing unit 16 on the basis of stipulated criteria.
In
Alternatively, the first gradient and the second gradient, to be more precise the magnitudes thereof, may also be different from one another.
Additionally, the first and/or the second gradient may be dependent on how far away the present value of the input signal xin is from the limit value xG. The gradient of the debounce status variable is then thus a function of the distance of the present value of the input signal xin from the limit value xG, that is to say
m=f(xin(t)−xG),
where m denotes the gradient. Expressed another way, the gradient of the debounce status variable xE is thus ascertained on the basis of a characteristic curve and/or another computation code, the characteristic curve and/or the computation curve being defined by the function f(xin(t)−xG).
Preferably, f is a monotonously rising function having a zero crossing at xin(t)=xG, so that the magnitude of the gradient is greater the further away the present value of the input signal xin is from the limit value xG.
The output signal xout is produced on the basis of whether the value of the debounce status variable xE is equal to the minimum value Wmin, is equal to the maximum value Wmax or corresponds to a value between the minimum value Wmin and the maximum value Wmax (step S5).
As can be seen in
When the debounce status variable xE reaches the maximum value Wmax, however, which is the case at the time t1 in
Analogously, the value of the output signal xout is set to Ē again, only when the value of the debounce status variable xE reaches the minimum value Wmin again.
In comparison with
Unlike in the method described above, there is provision in this case not for a single limit value but rather for a first limit value xG1 and a second limit value xG2. The limit value xG is between the first limit value xG1 and the second limit value xG2.
While the present value of the input signal xin is between the first limit value xG1 and the second limit value xG2, the value of the debounce status variable xE remains unaltered.
Expressed in another way, the gradient of the debounce status variable xE is thus set to zero for as long as the present value of the input signal xin is between the first limit value xG1 and the second limit value xG2.
The first limit value xG1 and the second limit value xG2 thus define a dead band within which the debounce status variable xE does not change.
Otherwise, the method for debouncing the input signal xin proceeds analogously to that described above, wherein above the first limit value xG1 the value of the debounce status variable xE is raised and below the second limit value xG2 the value of the debounce status variable xE is lowered.
Alternatively or additionally, there is provision for a positive limit value xP and a negative limit value xN. The positive limit value xP is greater than the limit value xG or than the first limit value xG1, and the negative limit value xN is less than the limit value xG or than the second limit value xG2.
The text below merely describes the case portrayed in
The multiple limit values xP, xN, xG1 and xG2 define five bands that each correspond to a fixed, predefined gradient of the debounce status variable.
To be more precise, the debounce status variable xE is raised with a constant primary first gradient if the present value of the input signal xin is between the first limit value xG1 and the positive limit value.
If the present value of the input signal xin is greater than the positive limit value xP, the debounce status variable xE is raised with a constant secondary first gradient that is greater than the primary first gradient.
If the present value of the input signal xin is between the negative limit value xN and the second limit value xG2, the present value of the debounce status variable xE is lowered with a constant primary second gradient.
If the present value of the input signal xin is less than the negative limit value xN, the debounce status variable xE is lowered with a constant secondary second gradient, the magnitude of which is greater than the magnitude of the primary second gradient.
Expressed in another way, the limit values xP, xN, xG1 and xG2 thus define the five bands within which the gradient of the debounce status variable xE is constant in each case, the gradient changing in the event of a transition between the bands, however.
Naturally, there may also be provision for more than five bands, for example by virtue of there being provision for multiple positive limit values and/or multiple negative limit values.
Preferably, the magnitude of the gradient of the debounce status variable xE increases with the distance from the limit value xG in this case too.
Claims
1. A method for debouncing an electrical input signal (xin), having the following steps:
- receiving the input signal (xin),
- ascertaining a present value of the input signal (xin),
- ascertaining whether the present value of the input signal (xin) is above or below at least one predefined limit value (xG);
- producing a debounce status variable (xE) having a defined initial value;
- altering the value of the debounce status variable (xE) on the basis of at least whether the value of the input signal (xin) is above or below the at least one limit value (xG), wherein the value of the debounce status variable (xE) is alterable between a minimum value (Wmin) and a maximum value (Wmax), and
- generating an output signal (xout) on the basis of whether the value of the debounce status variable (xE) corresponds to the minimum value (Wmin), to the maximum value (Wmax) or to a value between the minimum value (Wmin) and the maximum value (Wmax).
2. The method according to claim 1, wherein the output signal (xout) is a binary signal.
3. The method according to claim 1, wherein the value of the output signal (xout) is altered if the value of the debounce status variable (xE) reaches the minimum value (Wmin) or the maximum value (Wmax).
4. The method according to claim 2, wherein the present value of the output signal (xout) is maintained for as long as the value of the debounce status variable (xE) is between the minimum value (Wmin) and the maximum value (Wmax).
5. The method according claim 3, wherein the value of the debounce status variable (xE) is raised with a predefined first gradient if the ascertained present value of the input signal (xin) is above the at least one limit value (xG; xG1), and/or the value of the debounce status variable (xE) is lowered with a predefined second gradient if the ascertained present value of the input signal (xin) is below the at least one limit value (xG; xG2).
6. The method according to claim 5, wherein the first gradient and/or the second gradient are or is ascertained on the basis of how far the present value of the input signal (xin) is above or below the at least one limit value (xG; xG1, xG2).
7. The method according to claim 6, wherein the magnitude of the value of the first gradient and/or of the second gradient is greater the further away the present value of the input signal (xin) is from the at least one limit value xG; xG1, xG2).
8. The method according to claim 6, wherein the first gradient and/or the second gradient is ascertained on the basis of a characteristic curve, wherein the characteristic curve assigns a gradient to the value of the input signal (xin).
9. The method according to claim 7, wherein there is provision for at least one primary and one secondary first gradient and also at least one predetermined positive limit value (xP) above the at least one limit value (xG; xG1), wherein the value of the debounce status variable (xE) is raised with the primary first gradient if the ascertained present value of the input signal (xin) is below the at least one positive limit value (xP) but above the at least one limit value (xG; xG1) and wherein the value of the debounce status variable (xE) is raised with the secondary first gradient if the ascertained present value of the input signal is above the at least one positive limit value (xP); and/or
- in that there is provision for at least one primary and one secondary second gradient and also at least one predetermined negative limit value (xN) below the at least one limit value (xG; xG2), wherein the value of the debounce status variable (xE) is lowered with the primary second gradient if the ascertained present value of the input signal (xin) is above the at least one negative limit value (xN) but below the at least one limit value (xG; xG2) and wherein the value of the debounce status variable (xE) is lowered with the secondary second gradient if the ascertained present value of the input signal (xin) is below the at least one negative limit value (xN).
10. The method according to claim 8, wherein there is provision for a first predefined limit value (xG1) and a second predefined limit value (xG2), wherein the value of the debounce status variable (xE) is maintained for as long as the present value of the input signal is between the two limit values (xG1, xG2).
11. The method according to claim 10, wherein the value of the debounce status variable (xE) is raised with the first gradient if the ascertained present value of the input signal (xin) is above the greater of the two limit values (xG1, xG2) and/or the value of the debounce status variable (xE) is lowered with the second gradient if the ascertained present value of the input signal (xE) is below the smaller of the two limit values (xG1, xG2).
Type: Application
Filed: Apr 8, 2020
Publication Date: Oct 15, 2020
Applicant: ZF Automotive Germany GmbH (Alfdorf)
Inventor: Tobias Oesterwind (Duesseldorf)
Application Number: 16/843,739