Patent Publication Number: US-11029397-B2

Title: Correlated time-of-flight sensor

Description:
TECHNICAL FIELD 
     This disclosure relates generally to optical sensors. In particular, examples of the present invention are related to time-of-flight sensors. 
     BACKGROUND INFORMATION 
     Interest in three dimension (3D) cameras is increasing as the popularity of 3D applications continues to grow in areas such as imaging, movies, games, computers, user interfaces, facial recognition, object recognition, augmented reality, and the like. A typical passive way to create 3D images is to use multiple cameras to capture stereo or multiple images. Using the stereo images, objects in the images can be triangulated to create the 3D image. One disadvantage with this triangulation technique is that it is difficult to create 3D images using small devices because there must be a minimum separation distance between each camera in order to create the three dimensional images. In addition, this technique is complex and therefore requires significant computer processing power in order to create the 3D images in real time. 
     For applications that require the acquisition of 3D images in real time, active depth imaging systems based on time-of-flight measurements are sometimes utilized. Time-of-flight cameras typically employ a light source that directs light at an object, a sensor that detects the light that is reflected from the object, and a processing unit that calculates the distance to the objected based on the round-trip time it takes for the light to travel to and from the object. 
     A continuing challenge with the acquisition of 3D images is balancing the desired performance parameters of the time-of-flight camera with the physical size and power constraints of the system. For example, the power requirements of time-of-flight systems meant for imaging near and far objects may be considerably different. These challenges are further complicated by extrinsic parameters (e.g., desired frame rate of the camera, depth resolution and lateral resolution) and intrinsic parameters (e.g., quantum efficiency of the sensor, fill factor, jitter, and noise). 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Non-limiting and non-exhaustive examples of the invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified. 
         FIG. 1  is a diagram that shows one example of a time-of flight (TOF) sensor, in accordance with the teachings of the present disclosure. 
         FIG. 2  illustrates a histogram showing a sum of all photons from an example time-of-flight sensor that is not the sensor of  FIG. 1 . 
         FIG. 3  shows one example of logic, and timing of the logic, that may be implemented in the time-of-flight sensor of  FIG. 1 , in accordance with the teachings of the present disclosure. 
         FIG. 4  depicts an example of additional logic that may be included in the time-of-flight sensor of  FIG. 1 , in accordance with the teachings of the present disclosure. 
         FIG. 5  illustrates an example timing diagram of the lock functionality of the logic depicted in  FIG. 4 , in accordance with the teachings of the present disclosure. 
         FIG. 6  illustrates an example method of calculating time-of-flight, in accordance with the teachings of the present disclosure. 
     
    
    
     Corresponding reference characters indicate corresponding components throughout the several views of the drawings. Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. 
     DETAILED DESCRIPTION 
     Examples of an apparatus and method for a correlated time-of-flight sensor are described herein. In the following description, numerous specific details are set forth to provide a thorough understanding of the examples. One skilled in the relevant art will recognize, however, that the techniques described herein can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring certain aspects. 
     Reference throughout this specification to “one example” or “one embodiment” means that a particular feature, structure, or characteristic described in connection with the example is included in at least one example of the present invention. Thus, the appearances of the phrases “in one example” or “in one embodiment” in various places throughout this specification are not necessarily all referring to the same example. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more examples. 
     A single photon avalanche diode (SPAD) is photodiode that is biased around its avalanche point to absorb and detect single photons. When the SPAD is properly biased in Geiger mode (with reverse voltage above the avalanche breakdown value), it waits for a charge to enter its internal electrical field and trigger an avalanche. Each avalanche generates a pulse. Since the SPAD has a timing jitter typically around or less than 100 ps, SPADs can be used to time measurements with high precision. 
     Generally, time-of-flight image sensors work by emitting light (e.g., coherent pulses of light, which may be from a monochromatic light source like a laser diode or the like). The pulses of light are reflected and received by the image sensor or camera. The time-of-flight for the photons to travel from the system to an object and return to the system is measured and used to determine distance. See e.g.,  FIG. 1  and associated discussion for one example of a time-of-flight system. 
     Free charge carriers, that are not related to the absorption of incident light, may sometimes be generated in the biased semiconductor material (e.g., silicon, germanium, etc.). These carriers may be generated randomly at a rate called the “dark count rate” (DCR). Similarly, a background light photon generated by the sun or a lamp, for example, can also be absorbed at any time (randomly) during the exposure. The background light photon occurrence is more or less stochastic depending on the illumination level (Poisson distribution) and should be different for pixels under the same background illumination. A synchronous light photon occurs when a return pulse of light—that was emitted from the light source in the system—hits the sensor. This is thus not stochastic and should be similar for pixels receiving the same signal. 
     By summing all photon arrival times of a group of N SPADs over a large number of frames, one can obtain a histogram of data (see e.g.,  FIG. 2 ). However, background light and/or DCR also causes SPAD breakdown at random times, distributed more or less equally over the full integration period. Using SPADs for time-of-flight (TOF) distance measurements generally implies dealing with a lot of data due to background light and DCR. In some SPAD time-of-flight sensors, the device may take a large number of frames to build a histogram (see e.g.,  FIG. 2 ) and distinguish a return signal from background and DCR. This requires storing and processing data, and filtering the histogram to find the signal peak among all the data. These steps may require lots of memory and processing power. Moreover, by averaging a histogram filled with noise, it is possible to calculate a wrong estimation for the return signal. 
     Accordingly, proposed here is a calculation of overlapping (correlated) pulses (generated in response to a SPAD receiving a photon) in order to reduce error and the processing power required to calculate the time-of-flight and subsequent distance measurements. 
       FIG. 1  is a block diagram that shows one example of a time-of-flight system  100  in accordance with the teachings of the present disclosure. Time-of-flight system  100  includes light source  102 , lens  116 , plurality of pixels  120  (including first pixel  122 ), and controller  126  (which includes control circuitry, memory, etc.). Controller  126  is coupled to light source  102 , and plurality of pixels  120  (including first pixel  122 ). Plurality of pixels  120  is positioned at a focal length f lens  from lens  116 . As shown in the example, light source  102  and lens  116  are positioned at a distance L from object  130 . It is appreciated that  FIG. 1  is not illustrated to scale and that in one example the focal length f lens  is substantially less than the distance L between lens  116  and object  130 . Therefore, it is appreciated that for the purposes of this disclosure, the distance L and the distance L+focal length f lens  are substantially equal for the purposes of time-of-flight measurements in accordance with the teachings of the present invention. As illustrated, plurality of pixels  120 , and controller  126  are represented as separate components. However, it is appreciated that plurality of pixels  120  and controller  126  may all be integrated onto a same stacked chip sensor and may also include a time-to-digital converter (or a plurality of time-to-digital converters, with each pixel of four or more SPADs associated with a corresponding one of the plurality of time-to-digital converters). In other examples, plurality of pixels  120 , and controller  126  may be integrated onto a non-stacked planar sensor. It is also appreciated that each pixel (or even each SPAD) may have a corresponding memory for storing digital bits or signals for counting detected photons. 
     Time-of-flight system  100  may be a 3D camera that calculates image depth information of a scene to be imaged (e.g., object  130 ) based on time-of-flight measurements with plurality of pixels  120 . Each pixel in plurality of pixels  120  determines depth information for a corresponding portion of object  130  such that a 3D image of object  130  can be generated. Depth information is determined by measuring a round-trip time for light to propagate from light source  102  to object  130  and back to time-of-flight system  100 . As illustrated, light source  102  (e.g., a vertical-cavity surface-emitting laser) is configured to emit light  104  to object  130  over a distance L. Emitted light  104  is then reflected from object  130  as reflected light  110 , some of which propagates towards time-of-flight system  100  over a distance L and is incident upon plurality of pixels  120  as image light. Each pixel (e.g., first pixel  122 ) in plurality of pixels  120  includes a photodetector (e.g., one or more single-photon avalanche diodes) to detect the image light and convert the image light into an electric signal (e.g., image charge). 
     As shown in the depicted example, the round-trip time for pulses of the emitted light  104  to propagate from light source  102  to object  130  and back to plurality of pixels  120  can be used to determine the distance L using the following relationships in Equations (1) and (2) below: 
                     T   TOF     =       2   ⁢   L     c             (   1   )               L   =         T   TOF     ×   c     2             (   2   )               
where c is the speed of light, which is approximately equal to 3×10 8  m/s, and T TOF  corresponds to the round-trip time which is the amount of time that it takes for pulses of the light to travel to and from the object as shown in  FIG. 1 . Accordingly, once the round-trip time is known, the distance L may be calculated and subsequently used to determine depth information of object  130 . Controller  126  is coupled to plurality of pixels  120  (including first pixel  122 ), and light source  102  and includes logic that when executed causes time-of-flight system  100  to perform operations for determining the round-trip time.
 
     As shown, individual pixels (e.g., first pixel  122 ) may include a SPAD coupled to a quenching circuit (e.g., resistor R (Q)), and an analog to digital voltage converter (represented in the current example as an inverter) is coupled between the SPAD and the quenching circuit. As shown in graph  108 , when a photon is received, a large voltage drop (e.g., V (OUT)) occurs in the SPAD but then the voltage is returned to a steady state voltage via the quenching circuit. Other embodiments may include well known active quench and active recharge circuitry to actively drive the SPAD rather than relying on a simple resistive component. A digital waveform is output from the analog to digital converter in response to the avalanche breakdown occurring in the diode. 
     In some examples, time-of-flight sensor  100  is included in a handheld device (e.g., a mobile phone, a tablet, a camera, etc.) that has size and power constraints determined, at least in part, based on the size of the device. Alternatively, or in addition, time-of-flight system  100  may have specific desired device parameters such as frame rate, depth resolution, lateral resolution, etc. In some examples, time-of-flight sensor  100  is included in a LiDAR system. 
       FIG. 2  illustrates a histogram  200  showing a sum of all photon arrival times from an example time-of-flight sensor that is not the sensor of  FIG. 1 . As shown in  FIG. 2  and described above, by summing all inputs of a group of N SPADs over a large number of frames, one can obtain a histogram  200  of photon arrivals. The depicted example, represents data from four SPADs over 100 frames. As shown, the return light signal occurred at time corresponding to the bin  90 . The background light and/or DCR caused triggering at random times, distributed more or less equally over the full integration period, from 0 to 100 bins. Thus, as illustrated, using SPADs for time-of-flight distance measurements generally implies dealing with a lot of data due to background light and DCR, since the system needs to capture a large number of frames to build histogram  200  and distinguish a return signal from background light and DCR. This requires lots of memory and processing power. As described below, examples in accordance with the teachings of the present disclosure provide an architecture that may be used with the system in  FIG. 1  in order to avoid storing large quantities of data as a histogram, and also reduce the processing power required to calculate time-of-flight measurements. 
       FIG. 3  shows one example of logic  300 A, and timing of the logic  300 B, that may be implemented in the time-of-flight sensor of  FIG. 1 , in accordance with the teachings of the present disclosure. The logic  300 A, and timing of the logic  300 B, depicted, makes binning of time-of-flight data unnecessary and therefore cuts down on the required memory and processing for the system, because no histogram data (like that depicted in  FIG. 2 ) is generated. By using photon arrival time correlation, the system is able to suppress the amount of background noise and DCR data. It is appreciated that the “logic” shown here and elsewhere may be implemented in hardware, software, or a combination of the two. 
     As shown in the logic diagram  300 A, each SPAD (e.g., SPADs  1 - 4 ) is coupled to a respective pulse generator  301 A- 301 D. As shown, each avalanche event from the SPADs is received by pulse generators  301 A- 301 D and the pulse generators output a pulse with a specific width (T WIN ). The pulses are then received by two NAND gates  303 A and  303 B, and the output of NAND gates  303 A and  303 B is received by NOR gate  305 . Thus the system then only processes the overlap of the output from the pulse generators: effectively AND-gating all inputs (one of skill in the art will appreciate that AND(A,B,C,D)=NOR[NAND(A,B),NAND(C,D)]). Thus the all-SPAD output sends out a pulse only where the pulses from the pulse generators overlapped temporally. By doing so, the system only accepts pulses that are within a T WIN  interval (and are thus correlated). The system could also accept less restrictive combinations. We can imagine that a 4-inputs logic diagram can have a variable threshold for the number of overlapping input pulses. One of ordinary skill in the art will appreciate that logic diagram  300 A is just one example logic diagram, and there are many equivalent circuits that can achieve the same or similar result. Moreover, the diagram employs four SPADs, and for architectures with more than four SPADs additional combinations will need to be verified, requiring additional logic. 
     The operations of logic  300 A are depicted in timing diagram  300 B where a light pulse (e.g., from an IR laser) is emitted, and the received light pulse is incident on the sensor. In the present case, the threshold of detection of overlapping pulses has been set to two. So the system would only process if any combination of two inputs are correlated over a T WIN  interval. As shown, SPAD  1  triggered randomly (e.g., due to stray light or DCR) unrelated to when the received light pulse hit the camera. SPAD  2  triggered due to a photon from the received light pulse (which created one of the “correlated pulses”). SPAD  3  also triggered due to a photon from the received light pulse. Like SPAD  1 , SPAD  4  triggered randomly (e.g., due to stray light or DCR), and not when the light pulse was received. Regardless of when or why an individual SPAD triggers, its respective pulse generator (e.g., pulse generator  301 A- 301 D) will output an electrical pulse. Because, in the depicted example, SPADs  2  and  3  triggered close together (temporally) within an interval T WIN  the pulses emitted by their respective pulse generators overlap for a period of time. Accordingly, the “all SPAD output” (e.g., NOR gate  305 ) sends out a timing signal (e.g., AND(PULSE  2 , PULSE  3 )). Since the other pulses (pulse  1  and  4 ) did not occur within the same temporal window, nothing is output as a result of these pulses. Accordingly, the system will only output a timing signal when a plurality (or a user defined number) of SPADs break down within a short T WIN  temporal window (e.g., when a light pulse is received by the sensor system). Thus no binning or excessive processing is required since the system only registers a light pulse when an actual reflected light pulse is received. Put another way, only the data output for the SPADs that have triggered/broke down within an interval T WIN  will be processed by a time to digital converter (TDC). 
     In the depicted example a cluster of four SPADs was used. A cluster of these four SPADs may form a single pixel for use with a single TDC. However, one of skill in the art will appreciate that any number of SPADs may be used with a single TDC (e.g., six SPADs per TDC, eight SPADs per TDC, etc.), in accordance with the teachings of the present disclosure. In a chip, there will be many clusters of SPADs. For example in some time-of-flight sensors there may be (320×240) SPADs, and clusters of 2×2 SPADs may form a pixel. Accordingly, the system has 160×120=19200 pixels. 
       FIG. 4  depicts additional logic  400  that may be included in the time-of-flight sensor of  FIG. 1 , in accordance with the teachings of the present disclosure. As depicted, there may be any number of AND gates  403  (see e.g.,  FIG. 3 ) which output the timing signal (“CORR_OUT”) in response to the SPAD breakdown and subsequent pulse generation by the plurality of pulse generators. The AND gate(s)  403  are coupled to time to digital converter (TDC)  409  and also coupled to first D-flip flop  405  and second D-flip flop  407 . Second D-flip flop  407  is coupled to first D-flip flop  405  to receive a lock signal. It is appreciated that once a valid timing signal is read out, the logic depicted may lock (e.g., not output any more time-of-flight measurements) despite additional timing signals being output from the AND gates  403 . This makes it so the system needs minimal memory (because only one time-of-flight measurement is calculated per TDC  409 ). Subsequent time-of-flight measurements may be performed once the reset signal is received by first D-flip flop  405  and second D-flip flop  407 . In some examples the logic  400  may repeat itself many times in the sensor, and each TDC  409  has 24 or fewer (e.g., 12) bits of memory. 
     By having a scheme of consecutive k mini-frames, the device ensures a valid return signal for all pixels after all mini frames. As stated, TDC  409  will be locked once a valid signal arrives, and be prevented from overwriting if a second valid timing signal occurs for the remaining mini-frames. It is appreciated that the system may repeat many mini-frames and readout the data all at once, after all the mini frames. Each mini frame will include SPAD reset and light pulse emission, and then exposure. Since TDC  409  is locked, as stated, there is no need to accumulated additional internal data. The system also conserves power since TDC  409  does not perform calculations for other redundant data or background photons. 
       FIG. 5  illustrates an example timing diagram  500  of the lock functionality of the logic depicted in  FIG. 4  in accordance with the teachings of the present disclosure. It is appreciated that for simplicity of illustration, the pulses output from the pulse generators have been omitted from this timing diagram. Moreover, the logic depicted here is coupled to six SPADs. Timing diagram  500  shows three example periods: a first period where no timing signal is output, a second period where a timing signal is output, and a third period where a timing signal is output but the logic is locked. 
     In the first period, the system emitted a light pulse, but no valid return pulse was received since, in the instant example, the logic requires three overlapping pulses output from the pulse generators to generate a timing signal. Here, only two pulses were received within a small enough window to generate a timing signal. Conversely in the second period, a light pulse is received which causes three photodiodes to breakdown within a short period of time. This results in a timing signal being generated (e.g., “all SPAD out”). Since the timing signal is output, this causes a lock signal to be output by the logic. Accordingly, in the third period, while the system outputs valid timing signals, the state of the TDC remains unchanged. Thus the timing signal received in the third period will not influence the time-of-flight calculation until the logic is reset and “unlocked”. 
       FIG. 6  illustrates an example method  600  of calculating time-of-flight, in accordance with the teachings of the present disclosure. One of skill in the art will appreciate that blocks  601 - 609  in method  600  may occur in any order and even in parallel. Moreover blocks may be added to or removed form method  600  in accordance with the teachings of the present disclosure. 
     Block  601  shows emitting light from a light source structured to emit light (e.g., a diode with the correct bandgap or correct coating). In some examples, the light is emitted with a laser emitter which may be visible (e.g., a red, green, or blue laser) or non-visible (e.g., infrared or ultraviolet laser). In other examples, non-lasing diodes may be employed. In some examples, the control circuitry (e.g., specific processor containing logic described above, general purpose processor, or the like) is coupled to the light source to control the light source and emit light pulses at intervals that are pre-defined or determined during operation (e.g., depending on the ambient light conditions, the type and frequency of light pulses emitted from the light source may change). 
     Block  603  illustrates receiving the light pulse reflected from an object with a plurality of avalanche photodiodes structured to receive the light (e.g., a correct bias is applied to the photodiode, and the semiconductor material has the right bandgap). The individual photons reflected from the object may cause the plurality of SPADs to break down. This may cause an analog drop in voltage in the diode. The drop in voltage may then be quenched with a quenching circuit coupled to the plurality of avalanche photodiodes. Following breakdown the quench may return the internal voltage of the avalanche photodiodes back to the excess bias above breakdown. 
     Block  605  shows, in response to receiving the light with the plurality of avalanche photodiodes, outputting a plurality of pulses from individual pulse generators coupled to individual avalanche photodiodes in the plurality of avalanche photodiodes. The individual pulse generators that output the pulses are coupled to the individual avalanche photodiodes that received the light. One example of the individual pulse generators maybe an inverter, and when the voltage drop across the avalanche photodiode reaches a certain threshold, the inverter outputs a digital signal. The width of the digital signal may be responsive to the amount of time that the analog signal is above (or below) the threshold value of the inverter (see e.g.,  FIG. 1 ). In other examples, other circuitry may be used to generate a pulse with a predetermined fixed pulse-width. It is appreciated that the pulse width may be pre-programmed into the device or maybe adjusted with use (e.g., by the user, automatically depending on light conditions, or the like). 
     Block  607  illustrates in response to outputting the plurality of pulses, outputting a timing signal from control circuitry when the plurality of pulses overlap temporally. For example several avalanche photodiodes in a pixel may receive photons (and break down) at roughly the same time, their respective individual pulse generators may output a pulse, and the pulses overlap temporally. Accordingly, the control circuitry would then output a timing signal during the period of time where the pulses overlapped temporally (see e.g.,  FIG. 3  timing diagram  300 B “all SPAD out”). Thus, in some examples, the timing signal has a duration equal to or less than the fixed duration of the digital signal output from the pulse generators. 
     In some examples, outputting the timing signal may include receiving the plurality of pulses with AND gates coupled to the plurality of pulse generators, and the AND gates output the timing signal. It is appreciated that the plurality of AND gates may include a plurality of NAND gates coupled to one or more NOR gates, or other equivalent/similar logic structures. 
     Block  609  describes calculating the time-of-flight, using the timing signal, with the control circuitry. In some examples, the timing signal is representative of when a large number of SPADs are triggered. This may correlate to when photons emitted from the device and reflected from an object are captured by the SPADs. By calculating the amount of time between emission of the light from the light source and when the timing signal is produced, a time-of-flight is calculated. This time may then be used to determine distance using the equations discussed above. The controller may include timing circuitry (e.g., a ring resonator, charge on a capacitor, or other timing methods) to calculate the time between light emission and receipt of the photons. 
     In some examples, calculating the time-of-flight includes using a time to digital converter (TDC) included in the control circuitry and coupled to receive the timing signal. Additionally, a first D flip-flop and a second D flip-flop may be disposed in the control circuitry, and the second D-flip flop is coupled to the first D flip-flop to receive a lock signal from the first D-flip Flop. The logic may remain locked (e.g., no more time-of-flight calculations are performed for a set of SPADs) until a frame reset signal is received by the first D flip-flop and the second D flip-flop. In some examples, the plurality of avalanche photodiodes may be disabled when the lock signal is present, and when the devices uses an active quench. 
     The above description of illustrated examples of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed. While specific examples of the invention are described herein for illustrative purposes, various modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. 
     These modifications can be made to the invention in light of the above detailed description. The terms used in the following claims should not be construed to limit the invention to the specific examples disclosed in the specification. Rather, the scope of the invention is to be determined entirely by the following claims, which are to be construed in accordance with established doctrines of claim interpretation.