1501:
686:
2314:) acquire position information with adequate timing precision. For example, the computer may be unable to demand samples on a timely periodic schedule (e.g., for speed measurement) due to software timing variability. Also, in some applications it is necessary to demand samples upon the occurrence of external events, and the computer may be unable to do so in a timely manner. At higher encoder speeds and resolutions, position measurement errors can occur even when interrupts are used to demand samples, because the encoder may move between the time the IRQ is signaled and the sample demand is issued by the interrupt handler.
702:
293:
674:
662:
225:
596:) typically are used for direct interface to logic circuitry. These are well-suited to applications in which the encoder and interface are located near each other (e.g., interconnected via printed circuit conductors or short, shielded cable runs) and powered from a common power supply, thus avoiding exposure to electric fields, ground loops and transmission line effects that might corrupt the signals and thereby disrupt position tracking, or worse, damage the encoder interface.
2121:
2109:
2097:
399:
1635:
31:
980:, and jam the corresponding counts into the X and Y position counters. In the case of panel encoders used as hand-operated controls (e.g., audio volume control), the initial position typically is retrieved from flash or other non-volatile memory upon power-up and jammed into the position counter, and upon power-down the current position count is saved to non-volatile memory to serve as the initial position for the next power-up.
989:
1610:(brief pulses) may appear on the status outputs during input state transitions; typically, the encoder interface will filter the status signals to prevent these glitches from being erroneously interpreted as lost signals. Depending on the interface, subsequent processing may include generating an interrupt request upon detecting signal loss, and sending notification to the application for error logging or failure analysis.
605:
472:
2133:
139:
1619:
2756:
1729:
39:
537:
339:) square wave cycles per unit displacement. In the case of rotary encoders, resolution is specified as the number of pulses per revolution (PPR) or cycles per revolution (CPR), whereas linear encoder resolution is typically specified as the number of pulses issued for a particular linear traversal distance (e.g., 1000 pulses per
1320:
account the relationship between counts and desired distance units, as well as the ratio of the sampling period to desired time units. For example, in the case of a rotary incremental encoder that produces 4096 counts per revolution, which is being read once per second, the software would compute RPM as follows:
1415:
2617:
2397:
In the context of synchronous digital counters, "jamming" is the act of changing the stored counts to a specific value. The value is applied to the counter's parallel data inputs and the counter's Load Enable (or equivalent) input is asserted to invoke the counts change. During this operation, normal
2279:
frequency. The x2 and x1 multipliers allow the counts to change on some, but not all AB state changes, as shown in the quadrature decoder state table above (note: this table shows one of several possible implementations for x2 and x1 multipliers; other implementations may enable counting at different
1605:
In mission-critical systems, an encoder interface may be required to detect loss of input signals due to encoder power loss, signal driver failure, cable fault or cable disconnect. This is usually accomplished by using enhanced RS-422 line receivers which detect the absence of valid input signals and
1319:
The resulting speed value is expressed as counts per unit time (e.g., counts per second). In practice, however, it is often necessary to express the speed in standardized units such as meters per second, revolutions per minute (RPM), or miles per hour (MPH). In such cases, the software will take into
616:
signaling is typically preferred when the encoder will output high frequencies or be located far away from the encoder interface, or when the encoder signals may be subjected to electric fields or common-mode voltages, or when the interface must be able to detect connectivity problems between encoder
445:
For any particular encoder, the pulse width and phase difference ranges are defined by "symmetry" and "phase" (or "phasing") specifications, respectively. For example, in the case of an encoder with symmetry specified as 180° ±25°, the width of every output pulse is guaranteed to be at least 155° and
2297:
An encoder interface typically employs a sample register to facilitate position reporting. In the simple case where the computer demands position information under program control, the interface will sample the position counter (i.e., copy the current position counts to the sample register) and then
955:
is built into some mechanical systems to facilitate homing, which outputs a signal when the mechanical system is in its "home" (reference) position. In such cases, the mechanical system is homed by moving it until the encoder interface receives the sensor signal, whereupon the corresponding position
716:
An incremental encoder does not keep track of, nor do its outputs indicate the current encoder position; it only reports incremental changes in position. Consequently, to determine the encoder's position at any particular moment, it is necessary to provide external electronics which will "track" the
654:
Incremental encoders are commonly used to monitor the physical positions of mechanical devices. The incremental encoder is mechanically attached to the device to be monitored so that its output signals will change as the device moves. Example devices include the balls in mechanical computer mice and
560:
output signals. Typically, the contacts are electrically connected to signal ground when closed so that the outputs will be "driven" low, effectively making them mechanical equivalents of open collector drivers and therefore subject to the same signal conditioning requirements (i.e. external pull-up
2355:
Consecutive sampling triggers may occur faster than the computer can process the resulting samples. When this happens, the information in the sample register will be overwritten before it can be read by the computer, resulting in data loss. To avoid this problem, some incremental encoder interfaces
1431:
Alternatively, a speed measurement can be reported at each encoder output pulse by measuring the pulse width or period. When this method is used, measurements are triggered at specific positions instead of at specific times. The speed calculation is the same as shown above (counts / time), although
462:
Incremental encoders employ various types of electronic circuits to drive (transmit) their output signals, and manufacturers often have the ability to build a particular encoder model with any of several driver types. Commonly available driver types include open collector, mechanical, push-pull and
736:
and, depending on the sign of the phase difference, count up or down. The cumulative "counts" value indicates the distance traveled since tracking began. This mechanism ensures accurate position tracking in bidirectional applications and, in unidirectional applications, prevents false counts that
2288:
From an application's perspective, the fundamental purpose of an incremental encoder interface is to report position information on demand. Depending on the application, this may be as simple as allowing the computer to read the position counter at any time under program control. In more complex
2195:
logic states change in consecutive AB samples, the quadrature decoder has no way of determining how many increments, or in what direction the encoder has moved. This can happen if the encoder speed is too fast for the decoder to process (i.e., the rate of AB state changes exceeds the quadrature
1689:
In many cases an encoder interface must filter the synchronized encoder signals before further processing them. This may be required in order to reject low-level noise and brief, large-amplitude noise spikes commonly found in motor applications and, in the case of mechanical-type encoders, to
2317:
To overcome this limitation, it is common for an incremental encoder interface to implement hardware-triggered sampling, which enables it to sample the position counter at precisely-controlled times as dictated by a trigger input signal. This is important when the position must be sampled at
111:, an incremental encoder does not indicate absolute position; it only reports changes in position and, for each reported position change, the direction of movement. Consequently, to determine absolute position at any particular moment, it is necessary to send the encoder signals to an
1705:
Hardware-based interfaces often provide programmable filters for the encoder signals, which provide a wide range of filter settings and thus allow them to debounce contacts or suppress transients resulting from noise or slowly slewing signals, as needed. In software-based interfaces,
1034:
Encoder speed can be determined either by counting or by timing the encoder output pulses (or edges). The resulting value indicates a frequency or period, respectively, from which speed can be calculated. The speed is proportional to frequency, and inversely proportional to period.
1489:
This technique avoids position quantization error but introduces errors related to quantization of the time reference. Also, it is more sensitive to sensor non-idealities such as phase errors, symmetry errors, and variations in the transition locations from their nominal values.
975:
Some incremental encoder applications lack reference position detectors and therefore must implement homing by other means. For example a computer, when using a mouse or trackball pointing device, typically will home the device by assuming a central, initial screen position upon
870:
Typically this calculation is performed by a computer which reads the counts from the incremental encoder interface. For example, in the case of a linear incremental encoder that produces 8000 counts per millimeter of travel, the position in millimeters is calculated as follows:
685:
519:
in the schematic), whereas the low-level output current is determined by both the signal voltage and load resistance (including pull-up resistor). When the driver switches from the low to the high logic level, the load resistance and circuit capacitance act together to form a
1601:
RS-422 line receivers are commonly used to receive signals from encoders that have differential outputs. This type of receiver rejects common-mode noise and converts the incoming differential signals to the single-ended form required by downstream logic circuits.
2624:
217:
signals will be positive or negative depending on the encoder's direction of movement. In the case of a rotary encoder, the phase difference is +90° for clockwise rotation and −90° for counter-clockwise rotation, or vice versa, depending on the device design.
2270:
The clock multiplier value may be one, two or four (typically designated "x1", "x2" and "x4", or "1x", "2x" and "4x"). In the case of a x4 multiplier, the counts will change for every AB state change, thereby resulting in a count rate equal to four times the
47:
1576:
Incremental encoder interfaces use various types of electronic circuits to receive encoder-generated signals. These line receivers serve as buffers to protect downstream interface circuitry and, in many cases, also provide signal conditioning functions.
273:
2321:
In many applications the computer must know precisely when each sample was acquired and, if the interface has multiple trigger inputs, which signal triggered the sample acquisition. To satisfy these requirements, the interface typically will include a
1422:
When measuring speed this way, the measurement resolution is proportional to both the encoder resolution and the sampling period (the elapsed time between the two samples); measurement resolution will become higher as the sampling period increases.
292:
701:
636:
When RS-422 outputs are employed, the encoder provides a differential conductor pair for every logic output; for example, "A" and "/A" are commonly-used designations for the active-high and active-low differential pair comprising the encoder's
568:(which must be filtered) and by the operating speed of the mechanical contacts, thus making these devices impractical for high frequency operation. Furthermore, the contacts experience mechanical wear under normal operation, which limits the
1327:
1047:(a discrete time signal), the pulses (or pulse edges) are detected and counted by the interface, and speed is typically calculated by a computer which has read access to the interface. To do this, the computer reads the position counts
1791:
signals and thus produces amalgamate "AB" samples. As each new AB sample is acquired, the FSM will store the previous AB sample for later analysis. The FSM evaluates the differences between the new and previous AB states and generates
1593:(e.g., push-pull, open collector) outputs. This type of line receiver inherently rejects low-level noise (by means of its input hysteresis) and protects downstream circuitry from invalid (and possibly destructive) logic signal levels.
2318:
particular times or in response to physical events, and essential in applications such as multi-axis motion control and CMM, in which the position counters of multiple encoder interfaces (one per axis) must be simultaneously sampled.
572:
of these devices. On the other hand, mechanical encoders may be relatively inexpensive and have no internal, active electronics. These attributes make mechanical encoders a good fit for hand-operated controls (e.g. volume controls in
45:
44:
42:
41:
509:. Some encoders provide an internal resistor for this purpose; others do not and thus require an external pull-up resistor. In the latter case, the resistor typically is located near the encoder interface to improve noise immunity.
46:
942:
In order for an incremental encoder interface to track and report absolute position, the encoder counts must be correlated to a reference position in the mechanical system to which the encoder is attached. This is commonly done by
661:
228:
Quadrature signals from an oscillating shaft. Read the clockwise direction from 'Data' on the rising edge of the 'Clock' signal. As the shaft switches direction, the shaft slows and reverses, changing the pulse widths and
959:
In some rotating mechanical systems (e.g. rotating radar antennas), the "position" of interest is the rotational angle relative to a reference orientation. These typically employ a rotary incremental encoder that has an
241:
output is directly proportional to the encoder's velocity (rate of position change); higher frequencies indicate rapid movement, whereas lower frequencies indicate slower speeds. Static, unchanging signals are output on
1518:
is an electronic circuit that receives signals from an incremental encoder, processes the signals to produce absolute position and other information, and makes the resulting information available to external circuitry.
673:
930:
43:
947:
the system, which consists of moving the mechanical system (and encoder) until it aligns with a reference position, and then jamming the associated absolute position counts into the encoder interface's counter.
2215:
In many encoder applications this is a catastrophic event because the counter no longer provides an accurate indication of encoder position. Consequently, quadrature decoders often will output an additional
2334:
Sampling triggers are often asynchronous with respect to software execution. Consequently, when the position counter is sampled in response to a trigger signal, the computer must be notified (typically via
1312:
745:
Often the encoder counts must be expressed in units such as meters, miles or revolutions. In such cases, the counts are converted to the desired units by multiplying by the ratio of encoder displacement
272:
1560:
output signals frequently enough to detect every AB state change before the next state change occurs. Upon detecting a state change, it will increment or decrement the position counts based on whether
1650:. However, the incoming encoder signals are asynchronous with respect to the interface clock because their timing is determined solely by encoder movement. Consequently, the output signals from the
1504:
1023:
Incremental encoder interfaces are primarily concerned with tracking mechanical displacement and usually do not directly measure speed. Consequently, speed must be indirectly measured by taking the
863:
390:
output cycle. For example, a 1000 pulse-per-mm linear encoder has a per-cycle measurement resolution of 1 mm / 1000 cycles = 1 μm, so this encoder's resolution is 1 μm / 4 = 250 nm.
426:
signals. In real encoders, however, due to sensor imperfections and speed variations, the pulse widths are never exactly 180° and the phase difference is never exactly 90°. Furthermore, the
1677:
synchronizer seen here. At very high clock frequencies, or when a very low error rate is needed, the synchronizers may include additional flip-flops in order to achieve an acceptably low
2244:
A quadrature decoder does not necessarily allow the counts to change for every incremental position change. When a decoder detects an incremental position change (due to a transition of
323:
The resolution of an incremental encoder is a measure of the precision of the position information it produces. Encoder resolution is typically specified in terms of the number of
266:
Quadrature encoder outputs can be produced by a quadrature-offset pattern read by aligned sensors (left diagram), or by a simple pattern read by offset sensors (right diagram).
1410:{\displaystyle RPM={\frac {(C_{1}-C_{0})}{\text{1 second}}}\times {\frac {\text{60 seconds}}{\text{1 minute}}}\times {\frac {\text{1 revolution}}{\text{4096 counts}}}}
1568:. This is typically done by storing a copy of the previous AB state and, upon state change, using the current and previous AB states to determine movement direction.
1484:
1457:
1207:
1180:
1153:
1126:
1099:
1072:
40:
2360:
buffer for samples. As each sample is acquired, it is stored in the FIFO. When the computer demands a sample, it is allowed to read the oldest sample in the FIFO.
1500:
475:
Schematic diagram of a typical open collector driver. The output pull-up resistor is built into some encoders; if not built in, an external resistor is required.
2267:
pulse frequency. Depending on the decoder's design, the clock multiplier may be hardwired into the design or it may be run-time configurable via input signals.
784:
764:
2156:
changes state, it is assumed that the encoder has moved one increment of its measurement resolution and, accordingly, the quadrature decoder will assert its
972:
signal is asserted when the shaft is in its reference orientation, which causes the encoder interface to jam the reference angle into its position counter.
1505:
2302:
and thus ensures the integrity of the sample data, which might otherwise be at risk (e.g., if the sample's word size exceeds the computer's word size).
57:
996:
Incremental encoders are commonly used to measure the speed of mechanical systems. This may be done for monitoring purposes or to provide feedback for
2388:
signal, when present and asserted, indicates the encoder is located at its reference position, which in some applications may be an absolute position.
2289:
systems, the position counter may be sampled and processed by intermediate state machines, which in turn make the samples available to the computer.
1527:
88:
signals indicate both the occurrence of and direction of movement. Many incremental encoders have an additional output signal, typically designated
2460:
2160:
output to allow the counts to change. Depending on the encoder's direction of travel (forward or reverse), the decoder will assert or negate its
717:
position. This external circuitry, which is known as an incremental encoder interface, tracks position by counting incremental position changes.
641:
logic output. Consequently, the encoder interface must provide RS-422 line receivers to convert the incoming RS-422 pairs to single-ended logic.
878:
120:
Incremental encoders report position increments nearly instantaneously, which allows them to monitor the movements of high speed mechanisms in
96:, which indicates the encoder is located at a particular reference position. Also, some encoders provide a status output (typically designated
2571:
490:) allow operation over a wide range of signal voltages and often can sink significant output current, making them useful for directly driving
1507:
346:
This is in contrast to the measurement resolution of the encoder, which is the smallest position change that the encoder can detect. Every
1510:
PCI Express 6-axis incremental encoder interface. Top to bottom: input connectors (L) and line receivers (R); FPGA; backplane connector
124:. Because of this, incremental encoders are commonly used in applications that require precise measurement and control of position and
2542:
2252:, but not both), it may allow the counts to change or it may inhibit counting, depending on the AB state transition and the decoder's
1216:
2357:
1028:
667:
Trackballs and electromechanical computer mice employ two rotary incremental encoders to facilitate position tracking on two axes
593:
505:
Because it cannot source current, the output of an open-collector driver must be connected to a positive DC voltage through a
2760:
2650:
992:
Mechanical conveyors such as this typically use rotary incremental encoders as feedback devices for closed-loop speed control
679:
Electronic equipment controls are often implemented with a knob attached to a mechanical encoder (shown with detached knob)
2108:
2096:
793:
1638:
At high clock frequencies, the synchronizers may use three (such as this) or more flip-flops to reduce the bit error rate
1044:
1013:
618:
2259:
The clock multiplier of a quadrature decoder is so named because it results in a count rate which is a multiple of the
695:
antennas, a rotary incremental encoder is typically attached to the rotating antenna shaft to monitor the antenna angle
564:
The maximum output frequency is limited by the same factors that affect open-collector outputs, and further limited by
1667:
2344:
1543:
2776:
2594:
2209:
708:
499:
182:
outputs are quadrature-encoded, meaning that when the incremental encoder is moving at a constant velocity, the
2340:
2618:"Speed Measurement Algorithms for Low-Resolution Incremental Encoder Equipped Drives: a Comparative Analysis"
2311:
2120:
1674:
512:
The encoder's high-level logic signal voltage is determined by the voltage applied to the pull-up resistor (
434:
pulse widths vary from one cycle to another (and from each other) and the phase difference varies at every
2781:
1590:
2676:
2516:
1673:
Typically this synchronization is performed by independent, single-signal synchronizers such as the two
1031:, which poses challenges for taking the derivative due to quantization error, especially at low speeds.
442:
signal edge. Consequently, both the pulse width and phase difference will vary over a range of values.
2704:
1780:
101:
406:
When moving at constant velocity, an ideal incremental encoder would output perfect square waves on
382:), the encoder's measurement resolution equals one-fourth of the displacement represented by a full
2228:
states change simultaneously. Due to the severity and time-sensitive nature of this condition, the
1773:
1666:, if used) line receivers must be synchronized to the interface clock, both to avoid errors due to
711:
tractor is typically monitored by a rotary incremental encoder attached to the tractor's cable reel
549:
2491:
604:
2729:
2175:
changes, it is assumed that the encoder has not moved and so the quadrature decoder negates its
2132:
2233:
1017:
622:
446:
no more than 205°. Similarly, with phase specified as 90° ±20°, the phase difference at every
2299:
1643:
952:
720:
As it receives each report of incremental position change (indicated by a transition of the
626:
589:
506:
398:
224:
195:
108:
1506:
1462:
1435:
1185:
1158:
1131:
1104:
1077:
1050:
1634:
1586:
1535:
1005:
737:
would otherwise result from vibration or mechanical dithering near an AB code transition.
655:
trackballs, control knobs in electronic equipment, and rotating shafts in radar antennas.
630:
574:
521:
30:
2429:
988:
142:
Two square waves in quadrature. The direction of motion is indicated by the sign of the
1699:
1678:
997:
769:
749:
578:
565:
483:
479:
255:
251:
121:
2298:
the computer will read the counts from the sample register. This mechanism results in
1772:(clock enable) signals needed for controlling a bidirectional (up- and down-counting)
471:
2770:
495:
728:
signal), an encoder interface will take into account the phase relationship between
2197:
1647:
692:
569:
491:
1522:
Incremental encoder interfaces are implemented in a variety of ways, including as
402:
Incremental encoders exhibit symmetry and phase errors due to sensor imperfections
138:
17:
2347:), which facilitates responsive system behavior and eliminates polling overhead.
2086:
will never both change. In this regard, each AB sample is effectively a two-bit
1728:
347:
191:
1618:
1606:
report this condition via a "signal lost" status output. In normal operation,
1539:
1024:
415:
340:
1718:
that are sampled (via polling or edge interrupts) and debounced by software.
2336:
2323:
2087:
525:
254:, the frequency indicates the speed of the encoder's shaft rotation, and in
52:
1670:
and to coerce the signals into the clock domain of the quadrature decoder.
2755:
1552:
Regardless of the implementation, the interface must sample the encoder's
310:
index signal indicates the encoder is located at its reference position.
1009:
925:{\displaystyle mm=counts\times {\frac {\text{1 mm}}{\text{8000 counts}}}}
125:
117:, which in turn will "track" and report the encoder's absolute position.
2078:
may change or both levels may remain unchanged, but in normal operation
1027:
of the position with respect to time. The position signal is inherently
977:
34:
Rotary incremental encoder with shaft attached to its thru-bore opening
2164:
output to cause the counts to increment or decrement (or vice versa).
1622:
A 2-FF synchronizer. The line receiver's output signal is applied to D
358:
indicates a detected position change. Since each square-wave cycle on
1607:
613:
69:
2616:
Petrella, Roberto; Tursini, Marco; Peretti, Luca; Zigliotto, Mauro.
2310:
In some cases the computer may not be able to programmatically (via
1000:, or both. Widespread applications of this include speed control of
536:
68:
is a linear or rotary electromechanical device that has two output
1633:
1617:
1499:
1001:
987:
603:
535:
223:
37:
29:
1748:
signals, which are used to control a synchronous up/down counter
1715:
1546:
1531:
1523:
487:
2384:
output signals do not indicate absolute position. However, the
581:) and a variety of other low duty, low frequency applications.
331:) pulses per unit displacement or, equivalently, the number of
2339:) that a sample is available. This allows the software to be
418:
would be 50%) with a phase difference of exactly 90° between
80:, which issue pulses when the device is moved. Together, the
1307:{\displaystyle speed={\frac {(C_{1}-C_{0})}{(T_{1}-T_{0})}}}
262:
Conceptual drawings of quadrature encoder sensing mechanisms
1800:
signals as appropriate for the detected AB state sequence.
306:
sensors are offset by 90° phase of the simple pattern, the
150:
phase difference which, in this case, is negative because
608:
Differential output waveforms from an incremental encoder
209:
At any particular time, the phase difference between the
2179:
output, thereby causing the counts to remain unchanged.
2572:"3 Steps to Specifying the Correct Encoder Output Type"
286:
signal states shown on the right as the shaft reverses.
258:
the frequency indicates the speed of linear traversal.
2070:
In any two consecutive AB samples, the logic level of
1642:
An incremental encoder interface largely consists of
1465:
1438:
1330:
1219:
1188:
1161:
1134:
1107:
1080:
1053:
881:
796:
772:
752:
414:(i.e., the pulses would be exactly 180° wide and the
100:) that indicates internal fault conditions such as a
1779:
Typically, a quadrature decoder is implemented as a
858:{\displaystyle position=counts\times {\frac {D}{C}}}
540:
A PCB-mounted, rotary mechanical incremental encoder
1432:
in this case the measurement start and stop times (
1589:inputs to receive signals from encoders that have
1478:
1451:
1409:
1306:
1201:
1174:
1147:
1120:
1093:
1066:
924:
857:
778:
758:
113:
528:and thus limits its maximum switching frequency.
454:edge will be at least 70° and no more than 110°.
250:when the encoder is motionless. In the case of a
1585:Incremental encoder interfaces typically employ
2552:. Institute for Astronomy, University of Hawaii
1503:
2595:"How are encoders used for speed measurement?"
1752:Incremental encoder interfaces commonly use a
2651:"Metastability and Synchronizers: A Tutorial"
1805:Quadrature decoder state table
8:
633:used in aircraft and spacecraft simulators.
174:output signals. The pulses emitted from the
2677:"Synchronization in Digital Logic Circuits"
2026:Moved an indeterminate number of increments
956:value is jammed into the position counter.
524:, which stretches (increases) the signal's
51:Introduction to incremental encoders, from
2705:"Quadrature Decoder/Counter Interface ICs"
2699:
2697:
1922:Moved one increment in "reverse" direction
1850:Moved one increment in "forward" direction
1802:
2326:and trigger information in every sample.
1740:signals from an incremental encoder into
1630:signal is sent to the quadrature decoder.
1470:
1464:
1443:
1437:
1397:
1384:
1366:
1353:
1343:
1329:
1292:
1279:
1261:
1248:
1238:
1218:
1193:
1187:
1166:
1160:
1139:
1133:
1112:
1106:
1085:
1079:
1058:
1052:
912:
880:
845:
795:
771:
751:
1727:
1698:to avoid count errors due to mechanical
1534:, as dedicated peripheral interfaces in
1155:. The average speed during the interval
617:and interface. Examples of this include
470:
397:
366:) encompasses four signal edges (rising
137:
2550:NASA Infrared Telescope Facility (IRTF)
2454:
2452:
2450:
2448:
2446:
2411:
2369:
2092:
1783:(FSM) which simultaneously samples the
657:
268:
2537:
2535:
2533:
2531:
2529:
2430:"Introduction to Incremental Encoders"
2423:
2421:
2419:
2417:
2415:
2486:
2484:
2482:
2480:
1993:
7:
2492:"The Basics of How an Encoder Works"
1486:) are provided by a time reference.
548:) incremental encoders use sliding
278:Rotary encoder, with corresponding
233:The frequency of the pulses on the
2220:signal which is asserted when the
1732:A quadrature decoder converts the
25:
2398:counting is momentarily disabled.
1128:reads the counts again to obtain
162:An incremental encoder employs a
2754:
2656:. Israel Institute of Technology
2232:signal is often connected to an
2131:
2119:
2107:
2095:
700:
684:
672:
660:
291:
271:
486:or open drain drivers using an
104:failure or sensor malfunction.
1372:
1346:
1298:
1272:
1267:
1241:
577:and voltage controls in bench
1:
2196:decoder's sampling rate; see
2114:Movement in reverse direction
2102:Movement in forward direction
1516:incremental encoder interface
1494:Incremental encoder interface
1101:and then, at some later time
114:incremental encoder interface
1714:typically are connected to
1074:from the interface at time
2798:
2730:"Addressing encoder error"
2497:. Encoder Products Company
1880:
1043:If the position signal is
629:, factory automation, and
2034:
2025:
1996:
1984:
1943:
1921:
1891:
1877:
1874:
1849:
1833:
1830:
1827:
1824:
1821:
1816:
1813:
1810:
709:pipeline video inspection
552:to directly generate the
194:and there is a 90 degree
1008:, and motion control in
500:fiber optic transmitters
27:Electromechanical device
2710:. Agilent Technologies
1749:
1639:
1631:
1538:, or as software (via
1511:
1480:
1453:
1411:
1308:
1203:
1176:
1149:
1122:
1095:
1068:
993:
926:
859:
780:
760:
645:Principal applications
609:
541:
476:
403:
230:
159:
61:
35:
2682:. Stanford University
1731:
1637:
1621:
1614:Clock synchronization
1509:
1481:
1479:{\displaystyle T_{1}}
1454:
1452:{\displaystyle T_{0}}
1412:
1309:
1204:
1202:{\displaystyle T_{1}}
1177:
1175:{\displaystyle T_{0}}
1150:
1148:{\displaystyle C_{1}}
1123:
1121:{\displaystyle T_{1}}
1096:
1094:{\displaystyle T_{0}}
1069:
1067:{\displaystyle C_{0}}
1004:antenna rotation and
991:
968:) output signal. The
927:
860:
781:
761:
607:
539:
474:
463:differential RS-422.
401:
227:
141:
50:
33:
2763:at Wikimedia Commons
2761:Incremental encoders
1985:No detected movement
1781:finite-state machine
1646:which is paced by a
1463:
1436:
1328:
1217:
1209:is then calculated:
1186:
1159:
1132:
1105:
1078:
1051:
879:
794:
770:
750:
2593:Collins, Danielle.
1807:
1774:synchronous counter
627:industrial robotics
550:electrical contacts
66:incremental encoder
58:Incremental Encoder
2574:. Encoder Products
2461:"Optical Encoders"
2330:Event notification
2306:Triggered sampling
2284:Position reporting
2144:Normal transitions
1803:
1754:quadrature decoder
1750:
1722:Quadrature decoder
1640:
1632:
1512:
1476:
1449:
1407:
1304:
1199:
1172:
1145:
1118:
1091:
1064:
1006:material conveyors
994:
922:
855:
776:
756:
741:Displacement units
707:The location of a
610:
542:
482:drivers (using an
477:
404:
394:Symmetry and phase
231:
164:quadrature encoder
160:
132:Quadrature outputs
62:
36:
18:Quadrature decoder
2759:Media related to
2280:AB transitions).
2234:interrupt request
2066:State transitions
2063:
2062:
1764:signals into the
1405:
1404:
1401:
1392:
1391:
1388:
1379:
1378:
1302:
984:Speed measurement
920:
919:
916:
853:
779:{\displaystyle C}
759:{\displaystyle D}
650:Position tracking
600:Differential pair
590:Push-pull outputs
48:
16:(Redirected from
2789:
2777:Position sensors
2758:
2742:
2741:
2739:
2737:
2732:. Machine Design
2726:
2720:
2719:
2717:
2715:
2709:
2701:
2692:
2691:
2689:
2687:
2681:
2672:
2666:
2665:
2663:
2661:
2655:
2646:
2640:
2639:
2637:
2635:
2630:on 16 April 2021
2629:
2623:. Archived from
2622:
2613:
2607:
2606:
2604:
2602:
2590:
2584:
2583:
2581:
2579:
2568:
2562:
2561:
2559:
2557:
2547:
2543:"Encoder Primer"
2539:
2524:
2523:
2521:
2517:"Encoder Basics"
2513:
2507:
2506:
2504:
2502:
2496:
2488:
2475:
2474:
2472:
2470:
2465:
2456:
2441:
2440:
2438:
2436:
2425:
2399:
2395:
2389:
2374:
2300:atomic operation
2254:clock multiplier
2240:Clock multiplier
2135:
2123:
2111:
2099:
1808:
1644:sequential logic
1564:leads or trails
1536:microcontrollers
1485:
1483:
1482:
1477:
1475:
1474:
1458:
1456:
1455:
1450:
1448:
1447:
1418:
1416:
1414:
1413:
1408:
1406:
1402:
1399:
1398:
1393:
1389:
1386:
1385:
1380:
1376:
1375:
1371:
1370:
1358:
1357:
1344:
1315:
1313:
1311:
1310:
1305:
1303:
1301:
1297:
1296:
1284:
1283:
1270:
1266:
1265:
1253:
1252:
1239:
1208:
1206:
1205:
1200:
1198:
1197:
1181:
1179:
1178:
1173:
1171:
1170:
1154:
1152:
1151:
1146:
1144:
1143:
1127:
1125:
1124:
1119:
1117:
1116:
1100:
1098:
1097:
1092:
1090:
1089:
1073:
1071:
1070:
1065:
1063:
1062:
953:proximity sensor
933:
931:
929:
928:
923:
921:
917:
914:
913:
866:
864:
862:
861:
856:
854:
846:
785:
783:
782:
777:
765:
763:
762:
757:
704:
688:
676:
664:
631:motion platforms
507:pull-up resistor
298:Linear encoder;
295:
275:
196:phase difference
166:to generate its
109:absolute encoder
49:
21:
2797:
2796:
2792:
2791:
2790:
2788:
2787:
2786:
2767:
2766:
2751:
2746:
2745:
2735:
2733:
2728:
2727:
2723:
2713:
2711:
2707:
2703:
2702:
2695:
2685:
2683:
2679:
2675:Donohue, Ryan.
2674:
2673:
2669:
2659:
2657:
2653:
2648:
2647:
2643:
2633:
2631:
2627:
2620:
2615:
2614:
2610:
2600:
2598:
2592:
2591:
2587:
2577:
2575:
2570:
2569:
2565:
2555:
2553:
2545:
2541:
2540:
2527:
2519:
2515:
2514:
2510:
2500:
2498:
2494:
2490:
2489:
2478:
2468:
2466:
2463:
2458:
2457:
2444:
2434:
2432:
2427:
2426:
2413:
2408:
2403:
2402:
2396:
2392:
2375:
2371:
2366:
2353:
2332:
2308:
2295:
2293:Sample register
2286:
2242:
2185:
2146:
2139:
2136:
2127:
2124:
2115:
2112:
2103:
2100:
2068:
1923:
1851:
1756:to convert the
1724:
1687:
1629:
1625:
1616:
1599:
1587:Schmitt trigger
1583:
1574:
1508:
1496:
1466:
1461:
1460:
1439:
1434:
1433:
1429:
1362:
1349:
1345:
1326:
1325:
1324:
1288:
1275:
1271:
1257:
1244:
1240:
1215:
1214:
1213:
1189:
1184:
1183:
1162:
1157:
1156:
1135:
1130:
1129:
1108:
1103:
1102:
1081:
1076:
1075:
1054:
1049:
1048:
1041:
986:
940:
877:
876:
875:
792:
791:
790:
768:
767:
748:
747:
743:
712:
705:
696:
689:
680:
677:
668:
665:
652:
647:
602:
587:
575:audio equipment
544:Mechanical (or
534:
522:low-pass filter
517:
469:
460:
396:
321:
315:
311:
296:
287:
276:
256:linear encoders
221:
134:
38:
28:
23:
22:
15:
12:
11:
5:
2795:
2793:
2785:
2784:
2779:
2769:
2768:
2765:
2764:
2750:
2749:External links
2747:
2744:
2743:
2721:
2693:
2667:
2649:Ginosar, Ran.
2641:
2608:
2597:. Design World
2585:
2563:
2525:
2508:
2476:
2442:
2410:
2409:
2407:
2404:
2401:
2400:
2390:
2368:
2367:
2365:
2362:
2352:
2349:
2331:
2328:
2312:programmed I/O
2307:
2304:
2294:
2291:
2285:
2282:
2241:
2238:
2184:
2181:
2145:
2142:
2141:
2140:
2137:
2130:
2128:
2125:
2118:
2116:
2113:
2106:
2104:
2101:
2094:
2067:
2064:
2061:
2060:
2057:
2053:
2052:
2049:
2045:
2044:
2041:
2037:
2036:
2033:
2030:
2027:
2023:
2022:
2019:
2015:
2014:
2011:
2007:
2006:
2003:
1999:
1998:
1995:
1992:
1989:
1986:
1982:
1981:
1978:
1975:
1972:
1968:
1967:
1964:
1961:
1957:
1956:
1953:
1950:
1946:
1945:
1942:
1939:
1936:
1933:
1919:
1918:
1915:
1912:
1908:
1907:
1904:
1901:
1897:
1896:
1893:
1890:
1887:
1883:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1847:
1846:
1843:
1840:
1836:
1835:
1832:
1829:
1826:
1823:
1819:
1818:
1815:
1812:
1723:
1720:
1700:contact bounce
1686:
1683:
1679:bit error rate
1627:
1623:
1615:
1612:
1598:
1595:
1582:
1579:
1573:
1572:Line receivers
1570:
1495:
1492:
1473:
1469:
1446:
1442:
1428:
1425:
1420:
1419:
1396:
1383:
1374:
1369:
1365:
1361:
1356:
1352:
1348:
1342:
1339:
1336:
1333:
1317:
1316:
1300:
1295:
1291:
1287:
1282:
1278:
1274:
1269:
1264:
1260:
1256:
1251:
1247:
1243:
1237:
1234:
1231:
1228:
1225:
1222:
1196:
1192:
1169:
1165:
1142:
1138:
1115:
1111:
1088:
1084:
1061:
1057:
1040:
1037:
998:motion control
985:
982:
939:
936:
935:
934:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
868:
867:
852:
849:
844:
841:
838:
835:
832:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
775:
755:
742:
739:
714:
713:
706:
699:
697:
691:In commercial
690:
683:
681:
678:
671:
669:
666:
659:
651:
648:
646:
643:
601:
598:
586:
583:
579:power supplies
566:contact bounce
533:
530:
515:
496:opto-isolators
484:NPN transistor
480:Open collector
468:
467:Open collector
465:
459:
456:
395:
392:
320:
317:
313:
312:
297:
290:
288:
277:
270:
264:
263:
252:rotary encoder
190:waveforms are
133:
130:
122:near real-time
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2794:
2783:
2782:Speed sensors
2780:
2778:
2775:
2774:
2772:
2762:
2757:
2753:
2752:
2748:
2731:
2725:
2722:
2706:
2700:
2698:
2694:
2678:
2671:
2668:
2652:
2645:
2642:
2626:
2619:
2612:
2609:
2596:
2589:
2586:
2573:
2567:
2564:
2551:
2544:
2538:
2536:
2534:
2532:
2530:
2526:
2518:
2512:
2509:
2493:
2487:
2485:
2483:
2481:
2477:
2462:
2455:
2453:
2451:
2449:
2447:
2443:
2431:
2424:
2422:
2420:
2418:
2416:
2412:
2405:
2394:
2391:
2387:
2383:
2379:
2376:An encoder's
2373:
2370:
2363:
2361:
2359:
2350:
2348:
2346:
2342:
2338:
2329:
2327:
2325:
2319:
2315:
2313:
2305:
2303:
2301:
2292:
2290:
2283:
2281:
2278:
2274:
2268:
2266:
2262:
2257:
2255:
2251:
2247:
2239:
2237:
2235:
2231:
2227:
2223:
2219:
2213:
2211:
2207:
2203:
2199:
2194:
2190:
2182:
2180:
2178:
2174:
2170:
2167:When neither
2165:
2163:
2159:
2155:
2151:
2143:
2134:
2129:
2122:
2117:
2110:
2105:
2098:
2093:
2091:
2089:
2085:
2081:
2077:
2073:
2065:
2058:
2055:
2054:
2050:
2047:
2046:
2042:
2039:
2038:
2031:
2028:
2024:
2020:
2017:
2016:
2012:
2009:
2008:
2004:
2001:
2000:
1990:
1987:
1983:
1979:
1976:
1973:
1970:
1969:
1965:
1962:
1959:
1958:
1954:
1951:
1948:
1947:
1940:
1937:
1934:
1931:
1927:
1920:
1916:
1913:
1910:
1909:
1905:
1902:
1899:
1898:
1894:
1888:
1885:
1884:
1871:
1868:
1865:
1862:
1859:
1855:
1848:
1844:
1841:
1838:
1837:
1820:
1809:
1806:
1801:
1799:
1795:
1790:
1786:
1782:
1777:
1775:
1771:
1767:
1763:
1759:
1755:
1747:
1743:
1739:
1735:
1730:
1726:
1721:
1719:
1717:
1713:
1709:
1703:
1701:
1697:
1693:
1684:
1682:
1680:
1676:
1671:
1669:
1668:metastability
1665:
1661:
1657:
1653:
1649:
1645:
1636:
1620:
1613:
1611:
1609:
1603:
1596:
1594:
1592:
1588:
1580:
1578:
1571:
1569:
1567:
1563:
1559:
1555:
1550:
1548:
1545:
1541:
1537:
1533:
1529:
1525:
1520:
1517:
1502:
1498:
1493:
1491:
1487:
1471:
1467:
1444:
1440:
1426:
1424:
1394:
1381:
1367:
1363:
1359:
1354:
1350:
1340:
1337:
1334:
1331:
1323:
1322:
1321:
1293:
1289:
1285:
1280:
1276:
1262:
1258:
1254:
1249:
1245:
1235:
1232:
1229:
1226:
1223:
1220:
1212:
1211:
1210:
1194:
1190:
1167:
1163:
1140:
1136:
1113:
1109:
1086:
1082:
1059:
1055:
1046:
1038:
1036:
1032:
1030:
1026:
1021:
1019:
1015:
1011:
1007:
1003:
999:
990:
983:
981:
979:
973:
971:
967:
963:
957:
954:
949:
946:
937:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
874:
873:
872:
850:
847:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
789:
788:
787:
773:
753:
740:
738:
735:
731:
727:
723:
718:
710:
703:
698:
694:
687:
682:
675:
670:
663:
658:
656:
649:
644:
642:
640:
634:
632:
628:
624:
620:
615:
612:Differential
606:
599:
597:
595:
591:
584:
582:
580:
576:
571:
567:
562:
559:
555:
551:
547:
538:
531:
529:
527:
523:
518:
510:
508:
503:
501:
497:
493:
492:current loops
489:
488:n-type MOSFET
485:
481:
473:
466:
464:
457:
455:
453:
449:
443:
441:
437:
433:
429:
425:
421:
417:
413:
409:
400:
393:
391:
389:
385:
381:
377:
373:
369:
365:
361:
357:
353:
349:
344:
342:
338:
334:
330:
326:
318:
316:
309:
305:
301:
294:
289:
285:
281:
274:
269:
267:
261:
260:
259:
257:
253:
249:
245:
240:
236:
226:
222:
219:
216:
212:
207:
205:
201:
197:
193:
189:
185:
181:
177:
173:
169:
165:
157:
153:
149:
145:
140:
136:
131:
129:
127:
123:
118:
116:
115:
110:
105:
103:
99:
95:
91:
87:
83:
79:
75:
71:
67:
60:
59:
54:
32:
19:
2734:. Retrieved
2724:
2712:. Retrieved
2684:. Retrieved
2670:
2658:. Retrieved
2644:
2634:22 September
2632:. Retrieved
2625:the original
2611:
2601:22 September
2599:. Retrieved
2588:
2576:. Retrieved
2566:
2554:. Retrieved
2549:
2511:
2499:. Retrieved
2467:. Retrieved
2433:. Retrieved
2393:
2385:
2381:
2377:
2372:
2354:
2341:event-driven
2333:
2320:
2316:
2309:
2296:
2287:
2276:
2272:
2269:
2264:
2260:
2258:
2253:
2249:
2245:
2243:
2229:
2225:
2221:
2217:
2214:
2205:
2201:
2200:) or if the
2198:Nyquist rate
2192:
2188:
2187:If both the
2186:
2177:count enable
2176:
2172:
2168:
2166:
2161:
2158:count enable
2157:
2153:
2149:
2147:
2083:
2079:
2075:
2071:
2069:
1929:
1925:
1857:
1853:
1804:
1798:count enable
1797:
1793:
1788:
1784:
1778:
1770:count enable
1769:
1765:
1761:
1757:
1753:
1751:
1746:count enable
1745:
1741:
1737:
1733:
1725:
1711:
1707:
1704:
1695:
1691:
1688:
1685:Input filter
1672:
1663:
1659:
1655:
1651:
1648:clock signal
1641:
1604:
1600:
1597:Differential
1591:single-ended
1584:
1581:Single-ended
1575:
1565:
1561:
1557:
1553:
1551:
1521:
1515:
1513:
1497:
1488:
1430:
1421:
1400:1 revolution
1318:
1042:
1039:By frequency
1033:
1022:
995:
974:
969:
965:
961:
958:
950:
944:
941:
869:
744:
733:
729:
725:
721:
719:
715:
693:marine radar
653:
638:
635:
611:
588:
563:
557:
553:
545:
543:
513:
511:
504:
478:
461:
458:Signal types
451:
447:
444:
439:
435:
431:
427:
423:
419:
411:
407:
405:
387:
383:
379:
378:and falling
375:
371:
367:
363:
359:
355:
351:
345:
336:
332:
328:
324:
322:
314:
307:
303:
299:
283:
279:
265:
247:
243:
238:
234:
232:
220:
214:
210:
208:
203:
199:
192:square waves
187:
183:
179:
175:
171:
167:
163:
161:
155:
151:
147:
143:
135:
119:
112:
106:
97:
93:
89:
85:
81:
77:
73:
65:
63:
56:
2351:Sample FIFO
2126:No movement
1811:Description
1403:4096 counts
918:8000 counts
625:machinery,
561:resistor).
348:signal edge
2771:Categories
2686:21 January
2660:21 January
2522:. ICS A/S.
2459:Craig, K.
2428:Sensoray.
2406:References
2356:provide a
2208:signal is
2148:When only
1540:interrupts
1387:60 seconds
1025:derivative
1020:machines.
766:per count
532:Mechanical
416:duty cycle
374:, falling
319:Resolution
107:Unlike an
2736:20 August
2714:20 August
2578:20 August
2556:17 August
2337:interrupt
2324:timestamp
2162:direction
2088:Gray code
1794:direction
1766:direction
1742:direction
1690:debounce
1675:flip-flop
1528:IP blocks
1427:By period
1395:×
1382:×
1360:−
1286:−
1255:−
1029:quantized
910:×
843:×
585:Push-pull
526:rise time
370:, rising
53:VideoWiki
1822:Previous
1817:Outputs
1814:AB state
1608:glitches
1390:1 minute
1377:1 second
1010:robotics
198:between
126:velocity
2501:23 July
2469:25 July
2435:18 July
1825:Current
1626:; the D
1544:polling
1530:within
1045:sampled
978:booting
592:(e.g.,
546:contact
154:trails
102:bearing
70:signals
55:script
2345:polled
2183:Errors
1928:leads
1856:leads
1658:(also
945:homing
938:Homing
614:RS-422
229:phase.
2708:(PDF)
2680:(PDF)
2654:(PDF)
2628:(PDF)
2621:(PDF)
2546:(PDF)
2520:(PDF)
2495:(PDF)
2464:(PDF)
2386:index
2364:Notes
2343:(vs.
2230:error
2218:error
2210:noisy
2138:Error
1716:GPIOs
1664:alarm
1547:GPIOs
1532:FPGAs
1526:, as
1524:ASICs
1002:radar
970:index
962:index
302:&
98:alarm
90:index
2738:2018
2716:2018
2688:2020
2662:2020
2636:2020
2603:2020
2580:2018
2558:2018
2503:2018
2471:2018
2437:2018
2380:and
2358:FIFO
2224:and
2191:and
2171:nor
2082:and
1834:ERR
1796:and
1787:and
1768:and
1760:and
1744:and
1736:and
1710:and
1694:and
1662:and
1654:and
1556:and
1459:and
1016:and
964:(or
915:1 mm
732:and
621:and
619:CMMs
570:life
556:and
498:and
438:and
430:and
422:and
410:and
362:(or
335:(or
327:(or
246:and
213:and
202:and
186:and
178:and
170:and
84:and
76:and
2275:or
2263:or
2248:or
2204:or
2152:or
2074:or
2059:00
2051:01
2043:10
2021:11
2013:10
2005:01
1845:x4
1831:DIR
1628:out
1549:).
1542:or
1514:An
1182:to
1018:CNC
1014:CMM
724:or
623:CNC
594:TTL
450:or
386:or
354:or
350:on
343:).
237:or
92:or
64:An
2773::
2696:^
2548:.
2528:^
2479:^
2445:^
2414:^
2256:.
2236:.
2212:.
2090:.
2056:11
2048:10
2040:01
2035:1
2032:11
2029:00
2018:11
2010:10
2002:01
1997:X
1991:00
1988:00
1980:1
1974:00
1971:10
1966:0
1963:10
1960:11
1955:1
1952:11
1949:01
1944:0
1938:01
1935:00
1917:0
1914:00
1911:01
1906:1
1903:01
1900:11
1895:0
1889:11
1886:10
1881:0
1866:10
1863:00
1842:x2
1839:x1
1828:CE
1776:.
1702:.
1681:.
1624:in
1012:,
951:A
786::
516:OH
502:.
494:,
341:mm
206:.
128:.
72:,
2740:.
2718:.
2690:.
2664:.
2638:.
2605:.
2582:.
2560:.
2505:.
2473:.
2439:.
2382:B
2378:A
2277:B
2273:A
2265:B
2261:A
2250:B
2246:A
2226:B
2222:A
2206:B
2202:A
2193:B
2189:A
2173:B
2169:A
2154:B
2150:A
2084:B
2080:A
2076:B
2072:A
1994:0
1977:1
1941:0
1932:)
1930:A
1926:B
1924:(
1892:0
1878:1
1875:1
1872:1
1869:1
1860:)
1858:B
1854:A
1852:(
1789:B
1785:A
1762:B
1758:A
1738:B
1734:A
1712:B
1708:A
1696:B
1692:A
1660:Z
1656:B
1652:A
1566:B
1562:A
1558:B
1554:A
1472:1
1468:T
1445:0
1441:T
1417:.
1373:)
1368:0
1364:C
1355:1
1351:C
1347:(
1341:=
1338:M
1335:P
1332:R
1314:.
1299:)
1294:0
1290:T
1281:1
1277:T
1273:(
1268:)
1263:0
1259:C
1250:1
1246:C
1242:(
1236:=
1233:d
1230:e
1227:e
1224:p
1221:s
1195:1
1191:T
1168:0
1164:T
1141:1
1137:C
1114:1
1110:T
1087:0
1083:T
1060:0
1056:C
966:Z
932:.
907:s
904:t
901:n
898:u
895:o
892:c
889:=
886:m
883:m
865:.
851:C
848:D
840:s
837:t
834:n
831:u
828:o
825:c
822:=
819:n
816:o
813:i
810:t
807:i
804:s
801:o
798:p
774:C
754:D
734:B
730:A
726:B
722:A
639:A
558:B
554:A
514:V
452:B
448:A
440:B
436:A
432:B
428:A
424:B
420:A
412:B
408:A
388:B
384:A
380:B
376:A
372:B
368:A
364:B
360:A
356:B
352:A
337:B
333:A
329:B
325:A
308:R
304:B
300:A
284:B
282:/
280:A
248:B
244:A
239:B
235:A
215:B
211:A
204:B
200:A
188:B
184:A
180:B
176:A
172:B
168:A
158:.
156:B
152:A
148:B
146:-
144:A
94:Z
86:B
82:A
78:B
74:A
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.