Incremental encoder position interpolation
OwnerScott L. Bakerinventor
Life of this patent
Estimating the term…
Abstract
An interpolated position of an incremental encoder is provided. A first signal and a second signal having a quadrature relationship are received from the incremental encoder. A coarse position of the incremental encoder at a first time is produced using the quadrature relationship between the first signal and the second signal. An arcsine or arccosine value based on the first signal at the first time is determined using a lookup table and a fine position of the incremental encoder is calculated using the determined value. The interpolated position of the incremental encoder, based on both the coarse position and the fine position, is then provided.
Claims19
A method to provide an interpolated position of an incremental encoder, the method comprising:
- receiving a first signal from the incremental encoder;
- producing a coarse position of the incremental encoder based on the first signal;
- finding a local maximum of the first signal;
- finding a local minimum of the first signal;
- computing an average of the local maximum and the local minimum;
- establishing a first zero-crossing value for the first signal based on the average;
- obtaining a digital value of the first signal at a first time;
- ascertaining a quadrant of the first signal at the first time;
- computing a lookup address based on a difference between the digital value and the first zero-crossing value;
- using the lookup address to retrieve a lookup value from the lookup table;
- and
- calculating a fine position based on the quadrant and the lookup value;
- providing the interpolated position of the incremental encoder based on both the coarse position and the fine position.
An article of manufacture comprising a non-transitory storage medium having instructions stored thereon that, if executed, further result in:
- receiving a first signal from an incremental encoder;
- producing a coarse position of the incremental encoder based on the first signal;
- finding a local maximum of the first signal;
- finding a local minimum of the first signal;
- computing an average of the local maximum and the local minimum;
- establishing a first zero-crossing value for the first signal based on the average;
- obtaining a digital value of the first signal at a first time;
- ascertaining a quadrant of the first signal at the first time;
- computing a lookup address based on a difference between the digital value and the first zero-crossing value;
- using the lookup address to retrieve the lookup value from the lookup table;
- and
- calculating a fine position based on the quadrant and the lookup value;
- providing an interpolated position of the incremental encoder based on both the coarse position and the fine position.
An apparatus to provide an interpolated position of an incremental encoder, the apparatus comprising:
- at least one input configured to receive first information related to a first signal and second information related to a second signal;
- a quadrature state machine coupled to the at least one input and configured to track a quadrature relationship of the first signal and the second signal, the quadrature state machine providing counter control lines;
- a coarse position counter coupled to the counter control lines and configured to increment and decrement under control of the quadrature state machine;
- address calculation circuitry, coupled to the at least one input and configured to capture a local maximum and a local minimum of the first information, calculate a first zero-crossing value for the first signal by adding the local maximum and local minimum, determine a difference between the first zero-crossing value and a current value of the first information received from the at least one input, and generate a lookup address output using the difference;
- a memory having an address input coupled to the lookup address output;
- and
- circuitry to generate the interpolated position of the incremental encoder based on both an output of the coarse position counter and an output of the memory.
Dependencies are inferred from the claim text.