DATA ENCODING AND SYNCHRONIZATION FOR
PULSE TELEMETRY
Field of the Invention
This invention relates to methods and means for encoding and synchronizing data in pulse telemetry systems. The invention is particularly suitable for use in processing data acquired at the bottom of a well while the well is being drilled.
The Prior Art
Data acquired at the bottom of a well while the well is being drilled may be transmitted to the surface for processing by pressure or acoustic signals transmitted through the drilling fluid. U.S. Patents Nos. 2,924,432 to Arps, et al; 3,789,355 to Patton; 3,949,354 to Claycomb; 3,964,556 to Gearhart, et al.; and 3,983,948 to Jeter illustrate various arrangements for transmitting such data to the surface through the drilling fluid. Usually the data is encoded and transmitted in the form of either positive or negative pressure pulses through the drilling fluid.
Noise signals produced by the drilling equipment and drilling process tend to obscure some of the data pulses in the prior art encoding arrangements, and when part of the data pulses are lost it is difficult to determine the
particular parameters that are being measured due to the normal variation in the pulse transmission sequence.
In addition, the prior art encoding arrangements require a substantial amount of time to restart logging the well after a shutdown.
Summary of the Invention
The aforesaid difficulties are overcome in the present invention by the use of a pulse code wherein the time intervals between successive pulses in a pulse train are representative of the magnitude of the data parameters and provide measures of the data parameters, and by including redundant pulses at predetermined locations in the series of encoded data pulses so as to enhance the ability to recognize or distinguish data pulses over noise signals. The pattern of the redundant pulses with respect to the data pulses is such that they have a low probability of being generated by random noise. In addition, synchronization pulses are employed at the beginning of each predefined unit of data information to enable the identification of the particular parameters being telemetered to the surface even though one or more of the pulse code signals that provide a measure of a parameter is obscured by noise. The sequence of the production of the pulse code signals is continuously monitored to enable the telemetering system to be activated promptly after a shutdown at the place in the train of data where it would be if the shutdown had not occurred.
The encoding, synchronization and sequencing can be provided by programming a microprocessor or by hardware. Brief Description of the Drawings
Fig. 1 illustrates one form of the pulse code employing redundant pulses;
Fig. 2-4 illustrate alternate pulse codes employing redundant pulses;
Fig. 5 illustrates three types of identification patterns that may be incorporated into the pulse codes; Fig. 6 shows how the pulse code signals may be produced by circuit hardware and employed to produce negative pressure pulses in drilling fluid;
Figs. 7 and 8 illustrate how the analog parameters may be converted to binary signals under the control of a microprocessor so as to produce the pulse codes;
Fig. 9 illustrates how a synchronized restart may be incorporated into the encoding scheme so that the system may be activated promptly after a shutdown at the place in the train of data where it would be if the shutdown had not occurred; and
Fig. 10 illustrates how the pressure pulse signals may be processed at the surface to provide a read-out of the parameters that are measured down hole.
Description of the Preferred Embodiments
A pulse may be defined as a predefined sequence of changes of state (e.g., pressure, voltage) within a fixed period of time. In practice, a pulse may be a drop in pressure followed by a return [increase] to normal pressure, with normal pressure being the pressure within the circulating system for the drilling fluid without the pulse. Negative pressure pulses are preferred, but the encoding scheme is equally applicable to- positive pressure pulses.
In the illustrations herein the duration of a pulse is considered to be a drop in pressure for a fixed period of time (e.g. 1 second or 0.5 second) followed by one second of normal pressure. The measurement of the various parameters in the well, such as gamma ray, formation resistivity, magnetometer, temperature etc., is in analog form. The time intervals between successive data pulses in a pulse train provides the analog measurement of the respective parameters.
A "frame" is defined to be the period in time required to transmit one complete set of data. In order to maintain synchronization within the frame, the data is ordered into "sub-frames". Each sub-frame is one "synchronization interval" long, and the start position is marked by a synchronization pulse.
Table 1 illustrates a scheme which employs 15 subframes. Two "DATA WORDS" are transmitted during each sub-frame except for sub-frame 15 where one data word is transmitted along with a test pattern and "FRAME
IDENTIFICATION" pulses. A data word is defined to be the equivalent of an 8-bit binary number (i.e. an integer in the range 0 to 255). The frame identification pulses (or "frame synchronization" pulses) enable
identification of the first sub-frame, and hence, enable the pulse detector/decoder at the surface to identify the sequence of data transmission.
m
Table 2 illustrates a scheme which employs 11 subframes and three data words in each sub-frame.
Test Pattern
1 Space available for test pattern Frame Ident Pattern
When the last sub-frame is completed, transmission resumes at sub-frame 1 with no delay, with the sync pulse for sub-frame 1 being one synchronization interval after the sync pulse for the last sub-frame (i.e. subframe 15 in Table 1).
After synchronization has been attained (the sync pulses are recognized as the only pulses invariant over one sync interval and the sub-frame numbers can be decoded after the frame identification pulses are recognized), the surface detector/decoder can assume (interpolate) the position of the following sync and identification pulses and only the data pulses need to be detected in order to correctly decode all data. Synchronization is maintained during periods where no data pulses are transmitted, and hence it is possible to restart decoding data immediately after a connection without any resynchronization delays.
In practice, the surface detector/decoder continuously attempts to search for sync and identification pulses to accommodate any small drift in the timing clocks of the downhole and surface equipment.
A sub-frame has been defined as an interval in time of duration one sync interval started by a sync pulse. In order to transmit two data words per sync interval, two additional pulses are required. The time from the end of the sync pulse to the first (data) pulse is proportional to the data word (#1) being transmitted.
Time 1 = Data 1 * dT
Where dT = The time for one unit of transmitted data
Data 1 = Number of transmission units (Data value in range 0-255)
In a similar fashion, the time from the end of the first data pulse to the second data pulse is proportional to the second data word (#2).
The information necessary to discriminate between data pulses and noise pulses is supplied by generating a pattern of pulses which have a low probability of being generated by random noise. This requires additional pulses to create the patterns.
Fig. 1 illustrates a pulse scheme which is suitable for transmission of the data in Table 1. Each sub-frame has two data words, and the analog measures of the data parameters comprises the time between the sync pulse and D1 and the time between D1 and D2.
A "redundant pulse" R is provided midway between adjacent pairs of data pulses. It is employed to discriminate between time data pulses and noise pulses. Thus, any two data pulses can be considered to be data pulses (D1 and D2) only if there exists one additional pulse (R) midway in time between the data pulses. The timing of the scheme of Fig. 1 may be as follows:
The duration of a pulse is two seconds. (A onesecond drop in pressure followed by one second of normal pressure.)
One Unit of Time (dT) = 3/32 seconds
Full-Scale Data Word = 255 * 3/32 = 23.9 seconds
Maximum Data Transmission Time = 2 full-scale data words + 4 pulses = 55.8 seconds
Sync Interval = 60 seconds
(The sync interval could have been selected as 55.8 seconds. Sixty seconds was chosen as a convenient interval for testing.)
Although the encoding scheme deals with the equivalent of 8-bit (binary) numbers, this does not limit the system to the transmission of two "pieces of information" per subframe. When the (analog) number is decoded on-surface, it is a simple matter, using a digital computer, to recreate the 8 individual (binary) bits of information that were transmitted by the downhole Tool. Thus we are, in essence, transmitting 16 independent pieces of information each sub-frame (2 8-bit words). This concept is used in the transmission of the pressure information in sub-frames 8/9 and 13/14 of Table 1. The downhole sensors are measured using a
12-bit ADC. Although the additional accuracy obtainable using a 12-bit number (1/4096 compared to 1/256 for an 8-bit number) is not necessary for all sensors, it is necessary to resolve bσttomhole pressures (several thousand psi) to a few psi. The measured 12-bit number was transmitted as two 8-bit numbers with a 4-bit overlap as shown below:
All transmitted mud pulse data is represented (downhole) as eight bit binary numbers.
"Pressure 1" is the most significant 8 bits of the raw 12-bit data and "Pressure 2" is the least significant 8 bits of the raw 12-bit data. Since the data words are transmitted using an analog scheme, the probability of correctly decoding the individual data bits is greatest for the most significant bits. (If there is an error in decoding due to the inability to resolve the data pulses to the required interval [approximately 0.1 second], then a small error will be introduced the number 211 may be decoded as 212, for example.)
Fig. 2 illustrates a pulse scheme which is suitable for transmission of the data in Table 2.
The duration of one pulse is reduced to a halfsecond drop in pressure followed by one second at normal pressure. The time for one unit of data (dT) was reduced to 1/16 second. Instead of reducing the sync interval, a third (8-bit) data word is transmitted in the interval following the second data word. One additional redundant pulse was required between the second and third data pulses to ensure identification of the third data pulse.
The timing is as follows:
One pulse = 1.5 seconds
(0.5 se.c drop + 1 sec normal)
One Unit of Time (dT) = 1/16 seconds
One Full-Scale Data Word = 255 * 1/16 = 15.9 seconds
Maximum Data = 3 full-scale data words + 6 pulses
Transmission Time = 56.8 seconds
Sync Interval = 60 seconds
Fig. 3 illustrates a pulse scheme which is similar to that of Fig. 2, with the redundant pulses R1 midway in time between the adjacent data pulses D1 and D2, but with redundant pulses R2 not midway in time between the adjacent data pulses D2 and D3. Rather, the pulses R2 can be spaced any desired time ratio between the adjacent data pulses. Such an encoding scheme is asymetrical in time and is advantageous when multiple "groups of three" (2 data + 1 redundant) pulses appear within one sub-frame. If desired, both of the redundant pulses R1 and R2 may be asymmetrical in time with respect to the adjacent data pulses.
Although the encoding scheme of Fig. 2 has been selected to fit three full-scale data words per subframe, the data is normally not full-scale and there is therefore "unused" time at the end of most sub-frames during which additional data can be transmitted. The encoding scheme can be set up to transmit additional data if time is available. This will change the data rate from the current fixed value of three (8-bit) words per minute to an average data rate which will not be less than the current rate.
Although the encoding scheme of Fig. 2 requires two pulses (e.g. R2 and D3) for the addition of one data word, it is possible to use a redundant pulse after every second data pulse or between alternate pairs of data pulses and maintain a check on all data.
Fig. 4 illustrates such an encoding scheme which increases the total number of words transmitted within a sub-frame by the use of a redundant pulse between alternate pairs of data pulses. The maximum data rate is limited by the pulse width.
Consider the following example:
Pulse Width = 1.5 seconds Sync Interval = 60 seconds
A maximum of 40 pulses could be transmitted. At three pulses per pair of data words, this could be interpreted as 13 pairs of (zero valued) data words, i.e., 26 data words per minute. Another example considers average data values.
For 8-bit data words, the full-scale data value is 255, the average is therefore 127.5. At 1/16 seconds per data unit this corresponds to 8 seconds per data word.
Total Time = Sync Pulse Time + n*(8 sec + 1.5 pulses data word) 60 seconds = 1.5 seconds + n*(9.5 seconds) therefore, n = 6.2 where n is the number of data words
Although a downhole Tool is not expected to produce random data, most sensors (gamma ray and formation resistivity) are scaled such that common sensor readings are approximately mid range to accommodate unusually high measurements as well as unusually low measurements. Hence, data will tend to supply average valued data in "typical" formations.
As illustrated in Fig. 5, the frame structure may be extended to accommodate different data types. Three different frames may be transmitted. Conventional Frames, Directional Frames and Test Pattern Frames. Each frame has a predetermined number of sub-frames. The frame ident patterns are transmitted at the end of the first sub-frame of each frame.
With the pulse encoding scheme of Fig. 2, whenever
a frame identification pattern is transmitted, only two data words are included in the sub-frame to ensure that there is no overlap between the frame ident pattern and the third data pulse. Part, of the frame ident pattern is transmitted in the period between the full-scale data time of 56.8 seconds and the end of the sub-frame. This helps with the identification of the frame pattern since data pulses are never transmitted in this period.
The programming schemes of Figs. 1-5 may be produced by programming a suitable microprocessor, such as the RCA 1802, or by circuit hardware.
Fig. 6 illustrates a way of producing the encoding schemes with electric circuit hardware. The illustration is directed to the pulse scheme of Fig. 2, and it will be apparent that the circuit may be modified to produce any of the pulse schemes that have been discussed above. The measurement of only three data parameters for one subframe is illustrated for simplicity. It will be apparent that additional data parameters may be measured in the system for the selected number of sub-frames.
The data to be transmitted to the surface is measured in analog form, such as voltage, by the sensors 20, 22, and 24. The voltages that are produced by sensors 22 and 24 are divided by dividers 26, 28, 30 and 32 for use in producing the redundant pulses R1 and R2.
The voltages so produced are scanned by a stepping switch 34 which is actuated by a coil 36. A terminal 38 of the switch is grounded and it represents time zero in each sub-frame. A terminal 40 of the switch is connected to a battery 42 which provides the synchronizing pulses.
The rotor of the stepping switch 34 is connected to
a resistor-condenser network 44, 46 which is connected to a trigger circuit 48. The time constant of the resistorcondenser network 44, 46 causes the trigger to produce pulses of 0.5 second duration at times that are representative of the voltages produced by the respective sensors. Thus, the time spacing between the data pulses that are produced at the output of the trigger 48 is an analog representation of the magnitude of the data as measured by the sensors 20, 22 and 24. If the redundant pulses R1 and R2 are to be equally spaced in time between the adjacent data pulses, the dividers 26, 28, 30 and 32 divide the voltages that are produced by the sensors 22 and 24 by two.
The rotor of the stepping switch 34 is on terminal 38 at time zero. Upon actuation, the rotor moves to terminal 40 which carries a voltage which immediately actuates the trigger 48 to produce a sync pulse. Upon further actuation, the rotor scans terminal 50 and the trigger 48 produces data pulse D1. Thereafter it engages terminal 52 and the trigger 48 produces redundant pulse R1. Next it engages terminal 54 to produce data pulse D2. Redundant pulse R2 and data pulse D2 are produced when the rotor scans terminals 56 and 58. The coil 36 of the stepping switch is first energized by a pulse produced by the oscillator 60 and pulse generator 62 which produce one pulse each sixty seconds which are applied through an amplifier 64 to the coil 36. Thereafter during one sync interval the coil 36 is energized in steps by the pulses that are produced by the trigger 48.
A counter 66 is connected to the oscillator 60 and the pulse generator 62. It serves to activate data frame identification pattern generator 68, directional frame identification pattern generator 70, and test
frame identification pattern generator 72 at the times that those frames are to be inserted into the pulse scheme of Table 2.
The data pulses and redundant pulses and the frame identification patterns are applied through an amplifier 73 to a valve 74 to cause it to open and produce negative pressure pulses in the drilling fluid in response to each of the pulses.
Various types of valves 74 may be employed. A suitable valve 74 is disclosed in application Serial No. 06/190,636 which was filed on September 25, 1980 by Mumby, et al. A suitable control circuit for actuating such a valve is disclosed in application Serial No. 06/169,763 filed on December 7, 1981 by Wisniewski, et al.
A valve for producing positive pulses is disclosed by application Serial No. 355,921 filed on March 8, 1982 by Mumby. Figs. 7 and 8 show how the analog pulses may be produced under the control of a microprocessor, such as the RCA 1802.
The order of transmission of the different frame types is variable and is set up within the microprocessor which operates the downhole Tool. The sequence is best shown by a flow diagram:
Fig. 7 is a simplified block diagram showing the method of setting up pulse timing in response to the encoding scheme of Fig. 2. Three data words are transmitted in one synchronization interval. The synchronization interval is 60 seconds.
When the Tool restarts it measures data for 59 seconds. In the following second the three data words (8-bit numbers = integers in the range 0-255) are calculated and the pulse table is set up for the next minute.
The pulse table is a shift register 76 (960 bits long) which is clocked out at a rate of 16 bits per second. It takes exactly one synchronization interval (60 seconds) to clock out all data. The data from the shift register 76 controls the pulsing valve 74. While a "one" is present at the output from the shift register the pulsing valve 74 will remain open and a pulse will be transmitted.
During the first minute of Tool operation after a restart there is no data to transmit. However, after the first minute, data is transmitted (clocked out of the shift register) at the same time that new data is being measured.
The sequence to SET UP PULSE TABLE involves setting a string of "ones" into the Pulse Table Shift Register 76 to transmit a pulse, and "zeroes" to mark the time between pulses, as shown in Fig. 8. Since the bits are clocked out of the shift register at the rate of 16 per second, a sequence of 8 "ones" is required to generate a one-half second pulse.
Since there are no redundant pulses between the sync pulse and the first data pulse the number of zeroes required for Datal is equal to the value of the data (0-255). The remaining two data words are "split in half" by the redundant pulses. In the case of Data2, the number of "zeroes" corresponding the first half, (Data2)/2 rounded down to the nearest integer, is set up prior to the first redundant pulse. The second half, (Data2+1)/2 rounded down to the nearest integer, is set up after the redundant pulse, before the second data pulse.
The extra "+1" is required in the second "half" since 2 does not divide an odd number exactly. Consider the two examples:
Transmitted Data = 122,
(Data)/2 - 61.0, (Data+1)/2 = 61.5 rounded to 61 Decoded data = 61+61 = 122.
Transmitted Data = 123
(Data)/2 = 61.5 rounded to .61.0,
(Data+1)/2 = 62
Decoded data = 61+62 = 123.
A similar procedure is used to set up Data 3.
Fig. 9 shows the changes to the scheme that are required to ensure that data starts up in synchronization with the data' transmitted before the restart.
Two pieces of hardware are required to enable the synchronized restart. The first is a battery backed up clock. This enables the Tool to "wait" until a new synchronization interval starts (once per minute, every
time "seconds" reads zero) before restarting the measurement/transmit sequence. The second is a battery backed up memory register. Every time new pulse data is set into the pulse table shift register the time and sequence number (sub-frame number) are stored in battery backed up memory registers. If the Tool is shut down and then restarted this data is saved and can be inspected, The Tool can therefore restart at the point in its predefined sequence where it would have been if it had not shut down.
The predefined sequence (or Frame) defines which data to measure and transmit - different sensors may be measured each minute (each synchronization interval). The surface (decoding) equipment always assumes that the downhole Tool transmits its data in the order of the predefined sequence and therefore does not need to resynchronize with the downhole Tool every time the downhole Tool restarts (every connection).
Fig. 10 illustrates one arrangement for processing the encoded data at the surface.
The drilling rig includes the usual rotary table 90, kelly 92, swivel 94, traveling block 95, mud pumps 96, mud pit 98, and a drill string made up of drill pipe sections 100 secured to the lower end of the kelly 92 and to the upper end of a drill collar 102 and terminating in the drill bit 104. The down hole pulse encoding apparatus and the valve 74 for producing negative pressure pulses may be located in a drill collar 106 located above the drill bit 104. A pressure transducer 108 is coupled to the conduit for the drilling fluid and it senses the negative pressure pulses that are produced down hole.
The mud pumps 96 produce noise signals that have certain characteristics. A strobe generator 110 produces
strobe signals for each cycle of each mud pump.
The signals from the pressure transducer 108 and the strobe generator 110 are applied to an input module 112 where the pressure signals are averaged in pairs and the average is stored 50 times per second in a buffer until required by the filter module 114.
The filter module 114 serves to remove or reduce the noise signals produced by the mud pumps 96. Various types of such filters are known in the art. However, the filter is preferably of the type shown in copending application Serial No.
The output of the filter 114 is applied to a detector 116 which employs a matched filter to enhance the detectability of the encoded pulses.
The pulse signature used in the matched filter is a first order approximation to a rectangular pulse which has been high-pass filtered at a frequency corresponding to 1/(4*pulse width) hz. The use of a high-pass f ilter allows a s imple leve l de tector to be used for pulse identification.
"Ideal" mud pulse:
Actual matched filter pulse signature:
Output from matched fi l ter;
The sharp peak coresponds
to the best match between actual pul se and fil ter si gnature.
A high speed FFT convolution technique is used to implement the matched filter convolution. In operation, the convolution is performed approximately once every 20 seconds whenever data is made available by the filter module 114. The output of the matched filter is stored in a "Detection Buffer" which can hold data for more than one complete subframe. (Since the current sub-frame is 60 seconds long, the buffer is set up to hold data for a 64-second interval.) A simple level detection scheme is performed on the (overlapping) 64-second intervals. (The detection level is a user-controlled parameter.) Pulse position (time) is assigned at the pulse minimum; pulse height and width are also determined. The decoded pulses arestored in a "Pulse Table" for use by the decoder module 118. If pulse width does not fit within certain predefined limits, then the pulse is considered to be "noise" and discarded.
Sub-frame sync pulses are found by a search of invariant pulses of one-minute periods over the last three minutes. When these pulses are found, the detection buffer is shifted in time to ensure that the start of the sub-frame will be located at the start of the buffer. The time of the sync pulse is recorded for use by the decoder module 118.
Since three minutes are required for the identification of sync pulses, the first time a downhole Tool starts up downhole, a search for frame ident pulses is enabled within the detector module 116 before the sub-frame sync pulses are. identified. This enables the apparatus to synchronize on the first sub-frame that is transmitted from downhole.