This disclosure relates generally to image sensors, and in particular but not exclusively, relates to data transmission in an image sensor.
Image sensors have become ubiquitous. They are widely used in digital still cameras, cellular phones, security cameras, as well as, medical, automobile, and other applications. The technology used to manufacture image sensors has continued to advance at a great pace. For example, the demands of higher resolution and lower power consumption have encouraged the further miniaturization and integration of these devices.
Many mobile devices, such as smartphones, have begun to introduce multiple antennae for the wireless transmission and reception. However, in some instances, one or more of the additional antennae may be placed in close proximity to an integrated image sensor. In general, the proximity of the antennae and the image sensor may be a non-issue, but due to certain operations, electromagnetic interference (EMI) generated in the antennae may be due to the image sensor. For example, the EMI may be due to large switching operations that occur in the image sensor due to movement of data from the pixel array to processing logic. As such, reduction or elimination of the EMI may be desirable.
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.
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.
Examples of an apparatus and method for data transmission within an image 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.
Throughout this specification, several terms of art are used. These terms are to take on their ordinary meaning in the art from which they come, unless specifically defined herein or the context of their use would clearly suggest otherwise. It should be noted that element names and symbols may be used interchangeably through this document (e.g., Si vs. silicon); however, both have identical meaning.
In one example, after each image sensor photodiode/pixel in pixel array 102 has acquired its image data or image charge, the image data is readout by readout circuitry 106 and then transferred to function logic 110. Readout circuitry 106 may be coupled to readout image data from the plurality of photodiodes in pixel array 102. In various examples, readout circuitry 106 may include amplification circuitry, analog-to-digital (ADC) conversion circuitry, and data transmission circuitry 108. Function logic 110 may simply store the image data or even manipulate the image data by applying post image effects (e.g., crop, rotate, remove red eye, adjust brightness, adjust contrast, or otherwise). In some examples, control circuitry 104 and function logic 110 may be combined into a single functional block, and may control the capture of images along with the readout of image data from the readout circuitry 106 to the function logic 110. The function logic 110 may be a digital processor and some memories associated with it, for example. In one example, readout circuitry 106 may readout a row of image data at a time along readout column lines (illustrated) or may readout the image data using a variety of other techniques (not illustrated), such as a serial readout or a full parallel readout of all pixels simultaneously.
In one example, control circuitry 104 is coupled to pixel array 102 to control operation of the plurality of photodiodes in pixel array 102. For example, control circuitry 104 may generate a shutter signal for controlling image acquisition. In one example, the shutter signal is a global shutter signal for simultaneously enabling all pixels within pixel array 102 to simultaneously capture their respective image data during a single acquisition window. In another example, the shutter signal is a rolling shutter signal such that each row, column, or group of pixels is sequentially enabled during consecutive acquisition windows. In another example, image acquisition is synchronized with lighting effects such as a flash.
In one example, data transmission circuitry 108 may receive image data from ADCs, which convert the image data into digital representations of the same, and provide the digital representation of the image data to the function logic 110. In some embodiments, the data transmission circuitry 108 may receive the digital representations of the image data from the ADCs in parallel, and provide the same to the function logic 110 in series. The digital representations of the image data may be data words ranging from 11 to 15 bits, with 9 to 12 bits being associated with the image data and the remaining bits (two to three bits) being reserved for error correction. The error correction may be generated using any known error correction code (ECC), such as Hamming code, Reed-Solomon code, etc.
The image data received by the data transmission circuit 108 may comprise a row of data, less than a row of data, or more than a row of data, which may then be provided to the function logic 110 in series, as noted. However, instead of conventional data transmission techniques that provide the data over one or more conductors that have been precharged to a high logic level, for example, the data transmission circuitry 108 may comprise a plurality of banks configured to receive the image data in parallel, then provide their data sequentially to adjacent banks in a direction toward the function logic 110. The data may propagate through a series of latches that couple adjacent banks, and with the propagations controlled by a common clock signal. The common clock signal may be delayed an amount respective to the bank in relation to the function logic 110. As such, instead of each latch of each of the plurality of banks operating simultaneously, each latch may operate one after another, such as in a wave-like pattern. The wave-like pattern and free of precharge may reduce current load and electro-magnetic interference (EMI) generation.
In one example, imaging system 100 may be included in a digital camera, cell phone, laptop computer, or the like. Additionally, imaging system 100 may be coupled to other pieces of hardware such as a processor (general purpose or otherwise), memory elements, output (USB port, wireless transmitter, HDMI port, etc.), lighting/flash, electrical input (keyboard, touch display, track pad, mouse, microphone, etc.), and/or display. Other pieces of hardware may deliver instructions to imaging system 100, extract image data from imaging system 100, or manipulate image data supplied by imaging system 100.
The illustrated embodiment of the data transmission circuit 208 includes a plurality of banks 212 coupled to function logic 210, which provides a read clock and a read address to the plurality of banks 212 via a plurality of delays 214 and 216, respectively. In some embodiments, there may be K number of banks, such as banks 212-1 through 212-K. For example, K may be 8 or 16, but other numbers of banks are also contemplated. The K banks may be coupled in series with a first one of the banks coupled to function logic 210. In general, image data may propagate through the plurality of banks to the function logic 210. In some embodiments, image data from bank 212-1, e.g., bank_1, may be provided to the function logic 210 first sequentially followed by data from banks 212-2 through 212-K, e.g., bank_2 through bank_K. Other than bank 212-1, data from each other bank 212 may propagate through all other interstitial banks 212 between it and the function logic 210. For example, image data from bank 212-K may propagate through banks 212-(K−1) through 212-1 before reaching function logic 210.
The illustrated embodiment of a bank 212 includes a plurality of channels 218, an address decoder 222, and a plurality of ADC counters (e.g. binary ripple counter, Gray-Code counter) 220 that maintain the digital value of the ADC once latched. In some embodiments, there may be N ADC counters 220 and M channels 218, where the N represents the number of pixels the bank may receive image data from, and the M represents the number of channels. For each bank 212 there may be 8 or 16 channels, but other numbers of channel are contemplated herein. Image data of each bank 212 may be provided to a subsequent downstream bank 212 in response to at least the clock signal. As used herein, downstream may refer to movement of data toward the function logic 210. Because the plurality of banks 212 is coupled in series, image data propagates from an initial bank 212 through each interstitial bank 212 between it and the function logic 210. The propagation of the image data may be from one of the plurality of channels 218 connected to a word bus 226 through the respective channel switch 224 to a subsequent downstream interface D flip-flop 228. The image data may move in a series of hops from interface D flip-flop 228 to interface D flip-flop 228 in response to a series of read clock signals.
The plurality of ADC counters 220 for each bank 212 may be or include ADC converters of associated readout circuitry, such as readout circuitry 106. While the ADC counters 220 are shown as part of the plurality of banks 212, the depiction is for ease of discussion and different implementations may be possible. For each bank 212, the plurality of ADC counters 220 may be a number N, so that each bank 212 receives image data from N pixels. In some embodiments, the summation of N ADC counters 220 for each bank 212 may equal a row of pixels of a pixel array, such as the pixel array 102. Each ADC counter 220 may convert image data received from a pixel into a digital representation of the same. For example, each ADC counter 220 may convert an analog voltage into a digital data word. The data word may be 9 bits or more, depends on application, to represent the image data, and 2 to 3 ECC bits may be appended after one or more ECC operations. As used herein, image data may be used to refer both to the analog and digital form, for sake of brevity.
The address decoder 222 may receive a delayed read address and provide a channel switch control signal and a bank switch control signal in response. In some embodiments, the channel switch control signal is provided to determine which channel of the plurality of channels 218 is responsible to provide the image data of the preset bank 212 to the interface D flip-flop 228. In some embodiments, the read address determines a sequence of providing the N image data to the function logic 210. Additionally, the channel switch control signal controls a channel switch 224 of each channel 218, which may cause the image data to be provided sequentially to the word bus 226 through each channel 218. In some embodiments, the read address may include up to nine bits, with a portion of the bits used to determine image data associated with which one of the plurality of channels 218 to be transmitted, and the remaining bits of the read address to control a bank switch 240.
As will be discussed below, in an example, when all the image data of the present bank 212_i (i=2, . . . , K−1 bank) have been transmitted to the downstream adjacent bank 212_i−1, word bus 226_i is released for inter-bank transmission use in a time shared fashion or a mutually exclusive way, channel switch 224_i is turned off and bank switch 240_i turned on to enable connection between and image data from the upstream adjacent bank 212_i+1 and the word bus 226_i of the present bank 212_i. As used herein, downstream would refer to directions toward the function logic 210, and upstream would refer to directions away from the function logic 210.
The illustrated embodiment of each of the plurality of channels 218 may include channel image data stored (data is maintained once latched) in one or more of the plurality of the ADC counters 220, a channel buffer 242, and channel switch 218. The ADC counters 220 may be coupled to the channel switch 218 directly or through the channel buffer 242. The channel buffer 242 may be implemented between the ADC counters 220 and the channel switch 218 to isolate the ADC counters 220 from the word bus 220 down the data stream, and to enhance transmission speed to overcome the large parasitic capacitance presented on the word bus 226 which may be caused by the multiple channel switches 218 and bank switches 240.
Image data from other ADC counters 220 of a bank 212 may take turns to go through respective channels 218 during a data transmission process of the present bank 212. In some embodiments, each channel 218 of the plurality of channels 218 may transmit a plurality of data words, with each data word representing image data from each pixel, to the word bus 226 in response to a read address decoded by the address decoder 222. Channels 218 associated to each bank may be accessed one at a time in series.
The word bus 226 may receive a plurality of data words through channel switch 224 from one or more of the plurality of ADC counters 220 in response to the channel switch control signal from the address counter 220. The data words representing the image data on the word bus may be coupled to the interface D flip-flop 228 either directly or through a sense amplifier 244. The sense amplifier 244 may be implemented between the word bus 226 and the interface D flip-flop 228 to enhance transmission speed to overcome the large parasitic capacitance on the word bus 226 caused by the multiple channel switches 218, bank switches 240, and other capacitance loads so introduced by the switches.
The word bus 226 may be coupled to the channel image data from channels 218 and/or an output of an upstream interface D flip-flop 228. The interface D flip-flop 228 is coupled to latch image data from any associated channel 218 or from an upstream bank 212 in response to a read clock signal. Once the image data is latched by the interface D flip-flop 228, the image data is ready to be provided to a downstream bank switch 240.
Additionally, each bank 212 receives the read clock and the read address signals via a plurality of delays 214 and 216, respectively. For example, bank 212-1 receives the read address after being delayed a single time by delay 216-1, whereas bank_K receives the read address after being delayed K times due to delays 216-1 through 216-K. The same is true for the read clock signal. In general, the delay of each delay 214 and 216 may be very small, at least compared to a clock period. In some embodiments, the delay of each delay 214 and 216 may be a period of a system clock (not shown) divided by the number of banks 212, e.g., K. Delaying at least the read clock signal, accordingly, allows each interface D flip-flop 228-1 through 228-K to latch data sequential instead of all at the same time. By sequentially triggering each interface D flip-flop 228, the peak current is spread out and reduced, which helps to reduce peak power consumption. Additionally, triggering the interface D flip-flops 228 as such reduces the generation of electromagnetic interference (EMI), since each of them are not triggered concurrently.
In operation, the function logic 210, or the control circuitry 104, provides a read address signal and a read clock signal to the data transmission 208. In some embodiments, the two signals are provided concurrently. In other embodiments, the read address signal may be provided prior to the read clock signal so that the image data associated with the read address is ready before the read clock signal arrives to latch. In response to the read address and read clock signals, one or more of the banks 212 provides image data to the function logic 210 via intervening bank 212. For example, if a channel 218 of bank 212-4 is targeted by the read address, then the image data may propagate to the function logic 210 via banks 212-3, 212-2, and 212-1 before arriving at the function logic 210. To move the data between banks 212, subsequent pulses of the read clock signal will trigger the movement of the image data from bank 212 to bank 212. Additionally, the read address signal received by the banks 212 may cause the banks 212 not to enable their bank switches 240 to provide data passage from an upstream bank 212 to the associated interface D flip-flop 228.
In some examples, each bank 212, e.g., 212-1 through 212-K, may direct one of the plurality of the channel image data to a respective interface D flip-flop 228. Once the local (bank) data is latched by the respective interface D flip-flop 228, the local data may propagate to a subsequent downstream interface D flip-flop 228 via a subsequent pulse of the read clock signal. To move all K banks of image data into the function logic 210, K clock signals may be required.
The illustrated embodiment of the ADC counters 320 is shown as a block that includes 16 channels, with each channel including eight data words. Of course, the numbers of channels and data words are for example purposes only, and should not be considered limiting to the present disclosure. The ADC counter 320 may be an example of the ADC counter 220, and may receive analog image data from a pixel, or a plurality of pixels and provide digital image data in response. In the embodiment of
The channel switches 324 may be coupled to provide data words from one of the 16 channels of the ADC counters 320 to the word bus 326 in response to the channel switch control signal. The channel switch control signal may be provided by the address decoder 322, for example. The channel switch from one of the 16 channels may asynchronously provide, in one embodiment, the 8 data words of the selected channel to the word bus 326 in response to the channel switch control signal in a sequential fashion, one channel at a time, from channel 1 to channel 16.
The address decoder 322 may receive a read address from a control circuit or function logic 210, and provide the image data associated with the read address in response. The read address may be delayed a respective amount of delay in accordance with a relation of the bank 312 to the function logic, such as function logic 110 and/or 210. For example, bank_K−1 of
The address decoder 322 may include two four-bit decoders 348 and 350, and a logic gate 352. The two four-bit decoders 348 and 350 may decode a different part of the read address and provide respective control signals in response. For example, the four-bit decoder 348 may determine which of the 16 channels to couple to the word bus 326, e.g., how to control each channel switches 324, one at a time, and the four-bit decoder 350 may determine whether all the channel image data of the present bank to be decoupled (or excluded) and the output of a subsequent upstream bank to be allowed to couple to the word bus 326. While the logic gate 352 is shown as a flow chart-type decision block in
In some embodiments, there may be eight data words in each channel and 8 to 13 bits in each data word, but the number of words and/or bits should not be considered limiting.
In some embodiments, the number of the Interface DFFs 328 may depend on the number of words provided by each channel of the ADC counters 320. For example, there may be eight data words coupled to the eight interface DFFs 334 via the word bus 326.
The Interface DFFs 328 may be coupled to receive data words at a plurality of inputs, latch and provide the same in response to the read clock signal. In some embodiments, the Interface DFFs 328 may be formed from a plurality of D flip-flops 334. In general, the number of D flip-flops may be commensurate with a number of data words received as inputs. For example, to receive eight data words, there may be eight D flip-flops 334. Outputs of the interface D flip-flop 328 may be coupled to a bank switch 340 of a subsequent downstream bank, for example. However, the outputs of the Interface DFFs 328 of a bank_1 may be coupled to an input of a logic function, such as logic function 110/210.
The plurality of delay 336 may further delay the read clock signal, and may be coupled to trigger a respective D flip-flop 334. For example, seven delays may be implemented with each of the seven delays coupled between instances of D flip-flops 334. By further delaying the read clock signal, each data word from a channel is latched in a cascade-like manner so that each of the D flip-flops do not trigger simultaneously. In some embodiments, data word 1 may be latched first followed by data word 2, then data word 3, and so on until all eight data words are latched.
Function logic and/or control circuitry of an imaging system may receive the data represented in the timing diagram 460. In some embodiments, the data may be received sequentially channel by channel and bank by bank. While the order of the banks may not change from receiving data from bank_1 first then bank_2 and on until bank_K data is received, the order of the channels of each bank may be different. The order of the channel data within each bank data may be provided in response to the read address provided by the digital processor. In general, the sequence of not only the banks, channels within the banks, and data words within each channel may depend on the order of read addresses provided by control circuitry or function logic.
Each data block may take a clock period to be received by the function logic. For example, the clock period may be TRead Clock, which may be a period of the read clock signal. In some embodiments, the read clock signal may be a derivative of a system clock signal. With reference to
The rising edge of the distributed read clock signal may result in latching of data words by interface DFFs 228/328 of the data transmission circuit. Each arrowed line shown in the timing diagram 570 represents a rising edge of a read clock signal distributed through a data transmission circuit via a plurality of delays. The read clock signal may originate at function logic or control circuitry of an imaging system. In terms of sequence, the read clock signal may be provided to Bank_1 before sequentially propagating to each of the Banks 2 through K through a respective number of delays. Additionally, each rising edge of the read clock signal may be delayed within each bank so that interface DFFs 334 are each triggered sequentially. As a result, there is a cascade of data words latched by respective interface DFFs 334.
Additionally, the timing diagram 570 shows a single read clock period TRead Clock. In some embodiments, to ensure that each interface D flip-flop 328 (including the DFFs 334) of the K banks latches image data within a single clock period, the delay of each delay may be TRead Clock divided by (K*8), where 8 represents the number of D flip-flops 334 that form an interface D flip-flop 328. This is to ensure that all image data of all K banks is latched in a single period of the read clock before the data serially propagates through the data transmission circuit to the function logic.
The process block 682 may be followed by process block 684, which includes the function logic or control circuitry generating read address and read clock signals. The read address signal may be provided to a plurality of banks, such as banks 212, via a read address line, which may include a plurality of delays 216. The read clock signal may be provided to the plurality of banks via a read clock line, which may also include a plurality of delays 214. In some embodiments, the read address signal may be provided before the read clock signal to account for any latency associated with a targeted bank to prepare the eight data words to be latched by associated interface DFFs 334.
The process block 684 may be followed by process block 686, which includes setting a channel switch 224 of the targeted bank (bank i, for example) to select a desired channel including the eight data words. The read address signal received by the targeted bank may be decoded by an address decoder 220 to select which channel of 16 different channels to couple to word bus 226. At the same time, turning off a bank switch 240 of the targeted bank (bank i) to prevent the interface D Flip-flop 228 of the upstream bank (bank i+1) from being connected to the word bus 226.
The process block 686 may be followed by process block 688, which determines whether the eight data words have been latched by bank_1. If however, the targeted bank is bank_1, then the outcome is YES, and process block 692 follows. If the targeted bank is not bank_1, then the outcome is NO, and process block 690 follows. Process block 690 includes the function logic providing an additional read clock signal to move the eight data words to a subsequent bank closer to the function logic 210. After the completion of process block 690, then process block 688 is repeated. The process blocks 688 and 690 may be repeated i times, where i designates the targeted bank (bank i), and until the eight data words have propagated through the banks of the data transmission circuit until reaching bank_1.
Once the outcome of process block 688 is YES, then process block 692 follows, which includes latching the eight data words into the function logic. At this time, process block 694 may follow, which includes ending the transmission of the eight data words to the function logic 210.
In one embodiment, if data transmission sequence of
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.
Number | Name | Date | Kind |
---|---|---|---|
6707411 | Poulton | Mar 2004 | B1 |
9848141 | Panicacci | Dec 2017 | B2 |
10110837 | Lin | Oct 2018 | B2 |
10129496 | Hagihara | Nov 2018 | B2 |
20060220939 | Kirsch | Oct 2006 | A1 |
20090052362 | Nii | Feb 2009 | A1 |
20090085616 | Wada | Apr 2009 | A1 |
20100276572 | Iwabuchi | Nov 2010 | A1 |
20110002179 | Kim | Jan 2011 | A1 |
20150304583 | Lee | Oct 2015 | A1 |