An encoder system, such as an optical encoder, typically includes an electro-mechanical device that detects positional and/or motional information of an object and converts it to analog or digital signals. For example, the object may be a code disk with patterns thereon. When the code disk rotates or slides, light transmitted through or reflected off the code disk carries the positional and/or motional information of the code disk. The light is subsequently received by photodetectors and the information thereon is detected and processed by circuits. The photodetectors and the processing circuits are typically integrated into one device, such as an Application Specific Integrated Circuit (ASIC).
Manufacturers of optical encoders traditionally require different ASICs for different code disks having varying shapes, sizes, and/or configurations. For example, a code disk may be a code wheel or a code strip. Different code wheels may have different radii and different pulses-per-revolution. Different code strips may have different pulses-per-unit-length. Further, a code disk may be transmissive or reflective, and slits on code disks may have different shapes and sizes. To make different encoders in low-to-moderate volume with different code disks, manufacturers need to purchase and maintain a portfolio of different ASICs in low-to-moderate volume. This results in a higher cost and a need of more complex supply chain than would be needed if the same ASIC may be used for multiple different code disks.
Accordingly, improvements in the encoder system are desired.
Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is emphasized that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. Any alterations and further modifications to the described devices, systems, methods, and any further application of the principles of the present disclosure are fully contemplated as would normally occur to one having ordinary skill in the art to which the disclosure relates. For example, the features, components, and/or steps described with respect to one embodiment may be combined with the features, components, and/or steps described with respect to other embodiments of the present disclosure to form yet another embodiment of a device, system, or method according to the present disclosure even though such a combination is not explicitly shown. Further, for the sake of simplicity, in some instances the same reference numerals are used throughout the drawings to refer to the same or like parts.
The present disclosure is generally related to encoder systems and methods thereof, more particularly to optical encoders with a programmable photodetector array, programmable channels, and a programmable connectivity network between the photodetector array and the channels. In an embodiment, the programmable photodetector array, programmable channels, and programmable connectivity network are integrated into one device, such as an ASIC. The ASIC can be programmed to work with different code disks for detecting and encoding positions (and optionally movements) of the code disks to implement absolute encoders, as well as incremental encoders. An absolute encoder is capable of detecting and encoding the absolute position of a code disk, while an incremental encoder is capable of detecting and encoding the position of a code disk relative to its position when the encoder system is powered up. An encoder may have both functions of an absolute encoder and an incremental encoder integrated. The code disks include code wheels and code strips with any suitable configurations, as well as other types of coding apparatuses. Various embodiments of the present disclosure enable the use of a single ASIC design for encoder systems of varying configurations, thus enabling lower costs and a simpler supply chain for manufacturers. For the purposes of simplicity, optical detection with photodetectors is illustrated in the present disclosure. However, principles of the present disclosure are not limited to optical detection and may be applied to other types of electromagnetic or magnetic detection, such as using magnetic detectors for detecting the change in magnetic flux.
In an embodiment, the light source 102 includes a light emitting diode (LED). In another embodiment, the light source 102 includes a semiconductor laser which produces a coherent light. The wavelength or spectrum of the light produced by the light source 102 works compatibly with the code disk 104 and the detector device 110 which includes various photodetectors in the present embodiment. The light source 102 may further include one or more collimating optics (e.g., in a transmissive optical encoder) or one or more focusing optics (e.g., in a reflective optical encoder).
In the shown embodiment, the code disk 104 rotates around its central axis 103 and is also referred to as a code wheel. The code disk 104 includes one or more tracks with patterns thereon, such as tracks 106 and 108. A track is an annular region on the code disk 104 in this embodiment. Depending on the patterns thereon, a track may be referred to as a quadrature track or an absolute track. For example, a track with alternating and substantially equally sized transmissive and opaque patterns can be used for encoding motions (velocity and/or direction) of the code disk 104, and is therefore referred to as a quadrature track. In contrast, a track with varying sized transmissive and opaque patterns can be used for encoding absolute positions of the code disk 104, and is therefore referred to as an absolute track. Either track 106 or track 108 may be an absolute track. In an embodiment, the track 108 is an absolute track and the track 106 is a quadrature track. In some embodiments, the code disk 104 may include multiple absolute tracks 108.
An example code wheel 104 is depicted in
In the present embodiment, the detector device 110 is designed to include a programmable photodetector array, programmable channels, and programmable connectivity network. Each programmable channel may provide one bit in a code word. Each photodetector in the programmable photodetector array may be selectively turned ON, OFF, or partially ON. The connectivity network can be programmed to select a part of the programmable photodetector array to map to a particular channel. Such programmability allows the detector device 110 to work with a variety of code disks 104 with different absolute tracks 108, thereby reducing the costs and simplifying inventories for the encoder manufacturers. In various embodiments, the detector device 110 may support any number of code bits up to the number of available programmable channels. The design of the detector device 110 will be further discussed in later sections of the present disclosure.
One parameter of the code disk 104 is pulses per revolution (PPR), which may be defined by the angular pitch “θ” in its quadrature track 106 where PPR=360°/θ, as shown in
In the depicted embodiment of
In yet another embodiment, the code disk 104 is a code strip instead of a code wheel. A code strip moves linearly instead of rotating, and can be either transmissive or reflective.
The programmable detector array 120 includes a plurality of detectors 122. In the present embodiment, each detector 122 is a photodetector. For example, the detector 122 may include a photodiode, a phototransistor, or another suitable photoactive device capable of converting photons into electrons. For purposes of simplicity, a photodetector 122 in the array 120 is also referred to as a photo pixel or a pixel, and the detector array 120 is also referred to as a pixel array. In the present embodiment, the detectors 122 are arranged into regular rows and columns (e.g., 8 rows and 12 columns as shown in
In an embodiment, each detector 122 can be selectively turned ON or OFF. For example, the detector array 120 may be designed large enough for a variety of code disks 104. For a given code disk 104, not all of the detectors 122 are needed for encoding. Therefore, some of the detectors 122 may be turned off, either to produce better signal quality on the N outputs 128 given the shapes and sizes of the slits in the code disk 104, or to reduce overall power consumption. In another embodiment, each detector 122 can be selectively turned ON, OFF, or partially ON. Setting a detector 122 into partially ON (partial intensity) may allow a weighted current output from the detector, such as a half or quarter pixel to be used, or even zero (i.e., pixel is off). This intensity adjustment may improve the mapping of detectors 122 to match the shapes and sizes of the slits (e.g., a pie-shaped pattern 107) in a code disk 104. In an embodiment, each detector 122 may be programmed independently of others, which provides the maximum programmability of the detector array 120. In another embodiment, some adjacent detectors 122 may be grouped and programmed together. For example, a column or a partial column of detectors 122 may be grouped and programmed together. This reduces the amount of memory that stores the program information. In a further embodiment, electric current outputs from a group of detectors 122 (e.g., a column or a partial column of detectors 122) may be summed together as one output 128.
The shape of detectors 122 may also be made non-homogeneous within the detector array 120 in some embodiments. Having different sizes and/or shapes of the detectors 122 may reduce total system noise. For example, rectangular and grid-based pixels may produce a small amount of noise compared with an ideally shaped detector that better matches the slits (e.g., pie-shaped or sawtooth shaped slits). Adjusting the detectors' shapes to round, elliptical, or having rounded corners may reduce overall noise.
As discussed above with respect to
Referring back to
The programmable connectivity network 130 includes a connectivity block 130-1 that connects the detector block 122-1 to any one of the four channels, and a connectivity block 130-2 that connects the detector block 122-2 to any one of the four channels. Each of the connectivity blocks 130-1 and 130-2 may be implemented using multiplexers, switches, transistors, or other suitable circuits.
The channel 140 may further include a gain stage amplifier 144 for additional gain. The gain stage amplifier 144 provides further signal amplification or signal conditioning to the voltage signal 139, and produces a voltage signal 141. In an embodiment, the gain stage amplifier 144 is optional and may be turned off or not included in the channel 140. To further such embodiment, the voltage signal 139 feeds to the comparator 146 directly. The gain stage amplifier 144, if present, may be programmed using the control lines 160.
The comparator 146 compares the input voltage signal (141 or 139) to a programmable threshold voltage level, and produces an output 148 (e.g., a binary digital output) to indicate whether the input voltage is higher or lower than the threshold. In some embodiments, the comparator 146 may have multiple programmable threshold voltage levels, for example, to provide multi-level coding rather than binary coding. Further, the comparator 146 may have programmable hysteresis settings (e.g., different crossing points for low-to-high transition and for high-to-low transition) for better noise immunity. The configuration of the comparator 146 (e.g., the settings of the thresholds and hysteresis) works in conjunction with the configuration of the detector array 120 and the detector-to-channel mapping. For example, for a given code disk and a given absolute track, one or multiple columns of detectors 122 may supply electric currents to the channel 140. In the example shown in
In an embodiment, the quadrature track 106 includes alternating transmissive and opaque patterns 107 and 109 (see
The encoder device 110 may also provide current control for the companion light source 102 (e.g., an LED), either driving at a constant current over voltage/temperature or using feedback to provide a constant optical power density. Either the encoder device 110 or a discrete detector may be used to monitor this feedback. For example, one or more rows or columns of the detectors 122 in the detector array 120 may serve as the feedback mechanism. The encoder device 110 may further include components (not shown) for dithering detectors (pixels) during run time. Normally detectors are set to a static configuration at startup. Having the ability to shift a detector from one channel to another or to off, may allow increased performance particularly at low rotation speeds. Furthermore, a combination of detector dithering and LED current drive control may provide improvement in detection of small changes in the positions or movements of the code disk 104.
The configuration associated with the programmable detector array 120, the programmable connectivity network 130, and the programmable channels 140 may be accessed either from a random-access memory (RAM) or from a non-volatile memory (NVM). In the case of RAM, a host microcontroller may set each memory bits (or register bits) in the encoder device 110 using I2C, Serial Peripheral Interface (SPI) bus, a parallel memory bus, or other suitable memory interfaces. Alternatively, the encoder device 110 may contain logic (memory controller 162 in
At operation 302, code disk geometry characteristics are collected from the setup of the code disk 104, which may be stored in a memory. The code disk geometry characteristics may include disk radii, PPR or pulse-per-length, rotation/sliding speed, geometries of the patterns 107 and 109, the sequence of the patterns 107 and 109 on the absolute track 108, and so on.
At operation 304, detector array characteristics are collected from the setup of the detector array 120, which may be stored in a memory. The detector array characteristics include array dimensions (e.g., number of rows, number of columns), detector spacing, detector shape, and detector size. In an embodiment, the detector array characteristics may include X-/Y-direction misalignment information.
At operation 306, the method 300 determines a configuration. For example, the operation 306 may superimpose the patterns 107 and 109 of the absolute track 108 over a block of the detectors 122 (e.g.,
At operation 308, the method 300 stores the configuration to a memory module, such as a memory module in the encoder device 110 or a memory module outside of the encoder device 110.
At operation 502, the encoder device 110 retrieves a configuration from a memory module after power up. The configuration includes state assignments (ON, OFF, partially ON) of the detectors 122, track assignments of the detectors 122 (quadrature track or absolute track), channel assignments of the detectors 122, threshold levels of the comparators 146, and various other settings of the encoder device 110. In an embodiment, the encoder device 110 may run an internal state machine (e.g., using the memory control 162 of
At operation 504, each detector 122 in the detector array 120 is programmed to a state defined in the configuration, and is assigned to a proper channel (either a quadrature channel or an absolute channel). The connectivity network 130 is properly programmed using the detector-to-channel mapping. The channels 140 are programmed with proper threshold levels, hysteresis, or other settings. The programming may be implemented with register bits in the detector device 110.
At operation 506, the detector device 110 performs an optical detection, by collecting currents from different assigned regions on the detector array 120 in response to light modulated by a code disk 104, which may be rotary or linear, and may be transmissive or reflective. At operation 508, the detector device 110 generates digital or analog outputs for encoding the absolute position of the code disk 104 (using the absolute track 108) and optionally for encoding the movement of the code disk 104 (using the quadrature track 106).
Although not intended to be limiting, one or more embodiments of the present disclosure provide many benefits to an optical encoder using programmable detector array. Most conventional optical encoder designs use a fixed pattern phased array to match a particular code disk, thus preventing the use of the same detector design to other code disks. In contrast, the detector device in various embodiments of the present disclosure may be programmed to work with a variety of code disks, greatly increasing design flexibility and lowering the costs associated with the detector device. The detector device may be programmed by a host microcontroller, by the detector device itself using an internal non-volatile memory with a built-in circuit, or by using a masked ROM where the configuration are set in factory. Furthermore, in-system configurability is possible for some embodiments. Encoder manufacturers may apply a patch in the field, updating the configuration after the product has been installed in the field. Still further, the lack of a visible phased-array pattern makes the design less susceptible to copying by competitors.
Moreover, the programmable detector arrays may also allow a customer to use the same detector device to develop a product portfolio of difference performance levels. Therefore, encoder manufacturers may provide different performance/price points with a common set of hardware, allowing them to market their products differently.
In one exemplary aspect, the present disclosure is directed to an encoder system. The encoder system includes a group of programmable detectors, each of the programmable detectors operable to produce an electric current in response to an optical or magnetic input. The encoder system further includes a group of programmable channels, each of the programmable channels operable to produce an output in response to an electric current input, the outputs from the programmable channels forming at least a part of a code word for determining an absolute position of a motion object. The encoder system further includes a programmable connectivity network coupled between the programmable detectors and the programmable channels and operable to route electric currents from at least a part of the programmable detectors to each of the programmable channels.
In an embodiment of the encoder system, each of the programmable channels includes a comparator with a programmable threshold level. In a further embodiment, each of the programmable channels includes a transimpedance amplifier coupled between the comparator and the programmable connectivity network, wherein the transimpedance amplifier receives electric currents from the programmable detectors. In another further embodiment, the comparator also has a programmable hysteresis.
In an embodiment of the encoder system, each of the programmable detectors is operable to be set to one of states including: OFF, partially ON, and fully ON. In another embodiment, the programmable detectors are arranged into an array with rows and columns. In a further embodiment, the programmable detectors in a same column are routed to a same programmable channel. In yet another embodiment, at least one of the programmable detectors in a column is programmed to be OFF while other ones of the programmable detectors in the column are programmed to be ON.
In another embodiment, the encoder system further includes an incremental encoding channel whose outputs are operable to determine a relative position of the motion object, wherein the programmable connectivity network is operable to route electric currents from some of the programmable detectors to the incremental encoding channel. In a further embodiment, the programmable detectors supplying electric currents to the incremental encoding channel are separate from the programmable detectors supplying electric currents to the programmable channels.
In yet another embodiment, the encoder system further includes a controller operable to read one or more configuration files from one or more memories and to program the programmable detectors, the programmable channels, and the programmable connectivity network using the one or more configuration files.
In another exemplary aspect, the present disclosure is directed to an encoder system. The encoder system includes a transmitter operable to transmit an electromagnetic wave; a code disk operable to modulate the electromagnetic wave with a pattern, resulting in a modulated electromagnetic wave; and a receiver operable to receive the modulated electromagnetic wave and to detect at least absolute positions of the code disk. The receiver includes programmable detectors, each of the programmable detectors operable to produce an electric current in response to the modulated electromagnetic wave incident thereon. The receiver further includes programmable channels, each of the programmable channels operable to produce an output in response to an electric current input, the outputs from the programmable channels forming at least a part of a code word for determining the absolute positions of the code disk. The receiver further includes a programmable connectivity network coupled between the programmable detectors and the programmable channels and operable to route electric currents from at least a part of the programmable detectors to each of the programmable channels. The receiver is operable to receive one or more configuration files and to program the programmable detectors, the programmable channels, and the programmable connectivity network using the one or more configuration files.
In an embodiment of the encoder system, each of the programmable channels includes a comparator with a programmable threshold voltage level. In an embodiment of the encoder system, the programmable detectors are arranged in multiple columns, wherein the programmable detectors on a same column are routed to a same programmable channel through the programmable connectivity network. In a further embodiment, the programmable connectivity network is operable to route one column of the programmable detectors to multiple ones of the programmable channels. In yet another embodiment of the encoder system, the receiver is further operable to detect a motion of the code disk.
In yet another exemplary aspect, the present disclosure is directed to an encoder system. The encoder system includes an array of optical detectors. Each of the optical detectors is operable to be programmed into one of states that include ON and OFF, wherein an optical detector in the ON state is operable to produce an electric current in response to a light incident thereon. The encoder system further includes a group of channels. Each of the channels is operable to produce an output in response to an electric current input, the outputs from the channels forming at least a part of a code word for determining absolute positions of a motion object. Each of the channels includes a voltage comparator with a programmable threshold. The encoder system further includes a programmable connectivity network coupled between the optical detectors and the channels and operable to route electric currents from the optical detectors to the channels. The programmable connectivity network is operable to route one column of the optical detectors to multiple channels and to route multiple columns of the optical detectors to one channel.
In an embodiment of the encoder system, each of the channels further includes a transimpedance amplifier coupled between the voltage comparator and the programmable connectivity network. In an embodiment of the encoder system, two of the channels are programmed to receive electric currents from different numbers of the optical detectors. In a further embodiment, the comparators in the two of the channels are programmed with different thresholds.
In yet another exemplary aspect, the present disclosure is directed to a method. The method includes retrieving a configuration including a detector-to-channel mapping from a memory module; programming a detector device having an array of programmable detectors, a programmable connectivity network, and programmable channels using the configuration; performing an optical detection with the detector device and a code disk having an absolute track; and generating codes corresponding to absolute positions of the code disk. In an embodiment, performing the optical detection includes providing a light source; projecting light from the light source to the absolute track; and using the detector device, receiving light transmitted through or reflected by the absolute track. In an embodiment, the method further includes collecting code disk geometries; collecting characteristics of an array of programmable detectors; determining a configuration of the array of programmable detectors based on the code disk geometries, wherein the configuration includes a detector-to-channel mapping; and storing the configuration into a memory module. In some embodiments, determining the configuration further includes determining thresholds for programmable comparators in the programmable channels of the detector device.
The foregoing outlines features of several embodiments so that those skilled in the art may better understand the aspects of the present disclosure. Those skilled in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other processes and structures for carrying out the same purposes and/or achieving the same advantages of the embodiments introduced herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions, and alterations herein without departing from the spirit and scope of the present disclosure.
This application claims the benefits of U.S. Provision Application Ser. No. 62/615243, filed Jan. 9, 2018, the entire disclosure of which is herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62615243 | Jan 2018 | US |