The present invention relates to an improvement in generating a binary pulse stream. The generated pulse stream may also represent a data stream. In particular the present invention relates to an increase of the freedom of choice of timing parameters describing each individual pulse of such pulse streams.
A binary pulse stream can be understood as a sequence of individual pulses. Each individual pulse is defined by the duration of its LOW state and the duration of its HIGH state, and the duration of the HIGH state is defined by the time between a leading edge and a trailing edge of a corresponding individual pulse. The sum of the duration of the LOW state and of the duration of the HIGH state will also be referenced as the period of the pulse. The reciprocal value of an oscillator frequency will be referenced as cycle time of the oscillator.
Generators for generating a binary pulse stream are known from prior art. Those generators generally include three individual oscillators to influence the timing parameters of an outgoing pulse. To change timing parameters of an individual pulse one or more of these oscillators have to be tuned, and during such a tuning process it will take some time for an oscillator to settle to a new frequency, especially settling may take more than one cycle time of the actual frequency of the corresponding oscillator.
It is a well known practice to use a counter following an individual oscillator if the tuning range of the individual oscillator is not sufficient to get large periods, delays or widths of the outgoing pulse. Beside the mentioned settling time needed, the prior art oscillators suffer from a low Q-factor (quality factor or figure of merit) of the oscillator needed to stimulate oscillation resulting in a relatively high jitter of their output signals which will be forwarded to an outgoing pulse. In addition, those oscillators show a temperature dependency of their output frequency leading to a reduced accuracy of a pulse generated using such oscillators.
Thus a quick change of timing parameters and/or changes over a wide range of all timing parameters of an individual pulse are not feasible using those prior art techniques. In addition, the prior art oscillators followed by counters will force the timing parameters, e.g. period, duration of LOW state, and duration of HIGH state to be multiples of the cycle time of the individual oscillators and will not allow for a free choice of timing parameters consisting of multiple and fractional parts of the cycle times of the individual oscillators.
It is an object of the invention to provide an improved method and a corresponding system for generating a binary pulse stream, in particular to provide a method for changing quickly the timing parameters of each individual pulse, namely the duration of the LOW state and/or the duration of the HIGH state. It is a further object of the invention to provide a method allowing for a high resolution in the choice of timing parameters of individual pulses. It is still a further object of the invention to provide a digital solution based on stable clock source avoiding analog circuits with their inherent finite settling times, temperature dependencies and other disadvantages.
The objects are achieved as defined by the independent claims. Preferred embodiments are defined by the dependent claims.
As mentioned above the duration of the HIGH state of each individual pulse is defined by the time between the leading edge and the trailing edge of the respective individual pulse. Accordingly, the duration of the LOW state of each individual pulse is defined by the time between the trailing edge and the leading edge of the respective individual pulse. Thus a pulse stream of consecutive pulses may be defined by a sequence of pairs of values representing the durations of LOW and HIGH state of each individual pulse. The duration of the LOW state may also be regarded as a delay until the state changes from LOW to HIGH, and the duration of the HIGH state may also be regarded as a delay until the state changes from HIGH to LOW. Thus from a more general perspective, the binary pulse stream to be generated can be defined as a sequence of delays.
Although also constant pulse rates may be generated, the inventive method is not limited to constant pulse rates and based upon the sequential description of the pulse stream described above allows for an arbitrary choice of the timing parameters for each individual pulse.
The pulse stream generated by the inventive method may be used for general measurement equipment but may also represent a data stream which may comprise either “return to zero” or “non return to zero” encoded data. A short description of the invention is presented here, whereas more detailed description of particular units showing a more detailed view will be presented within the description of the drawings.
In an embodiment of the invention said sequence of pairs of values representing LOW and HIGH state duration have to be provided as an input signal. The timing parameters given by this sequence may be either read from memory, or read from a direct input via a suitable interface which may either be connected to an external memory or to an input device, e.g. a keyboard or a touch screen.
In a preferred embodiment, the binary pulse stream to be generated is based on a stable clock source and the format of the input data is different for two different operation modes of the inventive method. In both operation modes an edge forming unit as well as a delay modulation unit is controlled by digital control words. Said edge forming unit is controlled by a first digital control word, which is referenced as first control word in the following description. A first part of said first control word determines the type of edge, i.e. leading or trailing edge. A second part of said first control word represents a part of the duration of the respective state that can be expressed as integral multiples of the cycle time of said stable clock. The delay modulation unit is controlled by a second digital control word, which is referenced as second control word in the following description. The delay modulation unit delays an edge formed by said edge forming unit according to said second control word. The first control word and the second control word have a predetermined format.
The input for the first control word at the edge forming unit may be switched between two sources related to the two modes of operation mentioned above using a first switch. The input for the second control word at the delay modulation unit may be switched between two sources related to the two modes of operation using a second switch.
In said first mode of the method of the invention a direct data input of the inventive system is used. Said direct data are preprocessed and thus provided in a format which allows using the direct data as input data for the edge forming unit and the delay modulation unit. In particular the direct date represents the first and second control words, e.g. the direct data comprises—or is even simply composed of—the first and second control word. In a preferred embodiment, a plurality of direct data lines are provided in parallel at a relatively low data rate to an input of a high-speed multiplexer which outputs the direct data consecutively at a higher data rate.
In a second mode of operation control data representing the sequence of pairs of values of LOW and HIGH state duration of the intended pulse stream are used. The control data may be time values and/or may be read out from memory. The control data need to be converted into first and second control words for the edge forming unit and the delay modulation unit.
This conversion is accomplished comprising two steps. First a management unit is used to split up the control data into a preliminary integral multiple part and a preliminary fractional part of the value of the respective state duration expressed in terms of cycle ti me of a derivative clock. The cycle time of this derivative clock is preferably larger than the cycle time of the stable clock, in particular the cycle time of the is derivative clock is an integral multiple of the cycle time of said stable clock.
Second, the preliminary integral multiple part is fed into a counter element of a counter and adder unit and sa id preliminary fractional part is fed into an adder element of said counter and adder unit. The counter and adder unit accomplishes a further preparation of the preliminary integral multiple part and of the preliminary fractional part. At the output of the counter and adder unit a toggle signal and a data word is provided, said data word comprising the second control word for controlling the delay modulation unit and components of the first control word for controlling the edge forming unit. The toggle signal and the components of the first control word are associated to form the first control word, e.g. by a pulse formatter. Instead of the preliminary first control word, or in combination, data read out from a memory may be supplied to the pulse formatter to be associated with the toggle signal.
The edge forming unit comprises an encoder encoding said first control word in an edge control word, said edge control word comprising maximally two blocks of bits, each bit of said maximally two blocks being either “0” or “1”. Subsequently, the edge control word is transformed, e.g. by a multiplexer having a number of parallel inputs according to the number of bits contained in said maximally two blocks, into a series of bits in the sequence of the bits in the maximally two blocks of bits, thus forming the edge. In case of forming a leading edge, the series of bits comprises one or more “1” to which one or more “0” may precede. In case of forming a trailing edge, the series of bits comprises one or more “0” to which one or more “1” may precede.
In a preferred embodiment the frequency of said clock is adjustable to avoid unwanted spurious signals from the delay modulation unit and/or to provide a desired output frequency.
The present invention also relates to a software program of product for executing the method for generating a binary pulse stream when running on a data processing system such as a computer. Preferably the program of product is stored on a data carrier.
Furthermore the present invention relates to a system generating a binary pulse stream according to the present invention.
Other objects and many of the attendant advantages of the present invention will be readily appreciated and become better understood by reference to the following description, taken in conjunction with the accompanying drawings, in the several figures of which like reference numerals identify like elements, and in which:
a to
The inventive system comprises a memory unit 30 providing control data 31 representing the sequence of pairs of values of LOW and HIGH state duration of the binary pulse stream 37 to be generated. The control data 31 are fed to a management unit 32 which provides a preliminary integral multiple part 33a and a preliminary fractional part 33b of the value of the respective state duration expressed in terms of cycle time of a derivative clock which is described in more detail below. Additionally the management unit 32 may provide a trigger signal 33c and a strobe signal 33d. The preliminary integral multiple part 33a and the preliminary fractional part 33b are fed to a counter and adder unit 34 providing a toggle signal 35a and a data word 35b, said data word 35b comprising a second control word for controlling the delay modulation unit 42 and components of a first control word for controlling the edge forming unit 40. The toggle signal 35a and the data word 35b are fed to a a pulse generation block 36 comprising the edge forming unit 40 and the delay modulation unit 42. At the output of the pulse generation block 36 the binary pulse stream 37 to be generated is available.
The output signal 53 of the first digital-to-analog converter 52 and the output signal 55 of the second digital-to-analog converter 54 are fed into a switch 56 allowing to select one of the two output signals 53, 55 to be fed to the output of the switch 56. The output signal 57 of the switch 56 is fed into a second input of the comparator 58. At the output of the comparator 58 the input signal 43 is delayed according to the second control word 39b, and thus the binary pulse stream 37 to be generated is available.
In the first mode of operation direct data 97 are fed to a multiplexer 98. Said direct data 97 are preprocessed and thus provided in a format which allows using the direct data 97 as input data for the edge forming unit 40 and the delay modulation unit 42. In particular the direct data 97 represent the first and second control words 39a, 39b, e.g. the direct data 97 comprises—or is even simply composed of—the first and second control word 39a, 39b. In the shown embodiment, a plurality of direct data lines are provided in parallel at a relatively low data rate to an input of a high-speed multiplexer 98 which outputs the direct data consecutively at a higher data rate. Furthermore the mulitplexer 98 provides a clock signal CLK for synchronization purposes.
In the second mode of operation control data 31 are used describing the binary pulse stream 37 to be generated, said control data 31 can be read from a memory unit 30 as shown in
Driven by a start signal and the stable clock 76 a demultiplexer 88 provides its output signal 89 to a trigger start logic 90 which is used to prepare a control signal for the barrel shifter 94 within the edge forming unit 40. The edge forming unit 40 comprises at its input a decoder 92 and the output 93 of the decoder 92 is fed to the barrel shifter 94. The output 95 of the barrel shifter 94 is provided to the multiplexer 96. The output 41 of the multiplexer 96 drives the delay modulation unit 42 which can be realized either as shown in
The counter and adder unit 34 comprises a counter 78, a digital comparator 84, a toggle element 82, and an adder 80. At the input of the counter and adder unit 34 the preliminary integral multiple part 33a and the preliminary fractional part 33b, representing respectively the duration of a LOW state or the duration of a HIGH state of an individual pulse, are provided such that the duration is split up into an integral multiple part of the cycle time TD. The cycle time TD is an integral multiple of the cycle TCLOCK of the stable clock 76. For the embodiment shown in
The preliminary integral multiple part 33a is loaded into register D within the counter 78. The preliminary fractional part 33b is added to the register A of adder 80. The adder 80 may output on line 81a carry bit which is fed to the counter 78 and to the toggle element 82. The output signal 83 of the toggle element 82 is provided to pulse formatter 38 and also as a LOAD signal to adder 80 and counter 78. The digital comparator 84 checks the content of register D of counter 78. If the content equals zero, the digital comparator 84 will provide a HIGH level to an input of the toggle element 82. In all other cases the digital comparator 84 provides a LOW signal to an input of the toggle element 82. The output 83 of the toggle element 82 will only be HIGH if the carry output of adder 80 is LOW and the output of the digital comparator 84 is HIGH. In all other cases the output 83 of the toggle element 82 will be LOW The pulse formatter 38 may receive external data from a multiplexer 86 to which external data are fed, e.g. received from a memory, and which provides a clock signal for synchronization purposes. The content of the register A of adder 80 is read out and components, i.e. a part of the more significant bits, is split up to be provided to the pulse formatter 38, whereas the lower significant bits are provided to the second switch 74.
For the individual pulse regarded here, the LOW state duration is 1.8×TD and the HIGH state duration is 1.3×TD. It is assumed that for times less than zero the content of register D and the content of register A are zero and the carry bit is LOW and the output signal is HIGH, as shown in the left most column of the table in
t1: At t1 register D of counter and adder unit 34 are loaded with 0 because the integral multiple part of the LOW state duration of the pulse to be generated is 1 which is the minimum duration of the LOW state, and 0.8 is added to register A, the carry bit and the output state are LOW. The output changes from HIGH to LOW. In case a value in parenthesis follows a value given for a register content in the table, the value in parenthesis is based to TCLOCK. Values given without parenthesis for register D and register A within the table are based to TD.
t1 to t2: During the time from t1 to t2 values of register D, register A, carry bit and the output state remain constant. As Register D is zero and the Carry bit is zero, LOAD is one and at t2 the new Values for D and A will be written.
t2: At t2 the counter 78 is loaded with 0 because this integral multiple part of the high state duration of the pulse to be generated is 1 which is the minimum duration of the HIGH state, and the fractional part of the duration of the HIGH state is 0.3 and it is added to register A resulting in a sum of 1.1 and thus leads to a carry bit set to HIGH and the content of register A being 0.1. The fractional delay of 0.8 is transferred to the delay modulation block.
t2 to t3: The LOW state of the output signal is prolonged by 6×TCLOCK corresponding to the integer multiple part of the content of prior register A based on TCLOCK as seen by the value in parenthesis.
t3: At t3 the prolongation of the LOW state of the output described in the item above ends, but a further prolongation of the LOW state of the output is accomplished by the lower bits of the prior content of the register A which are sent to the second switch 74 and the output of the second switch 74 being sent to the delay modulation unit 42.
t3 to t4: During t3 to t4 the output state keeps being LOW according to the operation of the delay modulation units 60 of
t4: At t4 register D keeps being 0 (or less than 0, which is treated like being 0), the register A keeps being 0.1 TD. No changes of the registers occur because register changes may only occur at leading edges of the derivative clock. The output changes from LOW to HIGH because delay of the delay modulation unit 42 now ends.
t5: Because the carry bit being HIGH, the counter 78 is stopped at t5 for one cycle time TD of the derivative clock and thus the content of the register D remains constant. The output state is HIGH. Both Registers A and D remain unchanged. The carry bit is reset to zero.
t5 to t6: The register contents, the carry bit and the output state keep constant from t5 to t6.
t6: At t6 the register D is loaded with the integral part of the next LOW state, and the fractional part of the duration of the next LOW is added to register A resulting in new content of register A, which may leads to a carry bit set to HIGH. The prior content of register A being 0.1, which expressed on a base of TCLOCK is 0.8. Thus the integral multiple part of the content of register A with reference to TCLOCK is zero, and all more significant bits which are sent to the pulse formatter 38 in
t6 to t7: During t6 to t7 the state of the output of the delay modulation unit 42 of
t7: At t7 the delay of the delay modulation unit 42 passed and the delay modulation unit 42 releases a trailing edge.
As being obvious particularly from
The system does not allow for state durations smaller than 1 TD and the HIGH state of the individual pulse here is starting at t=TD. For t<TD the LOW state of a previous individual pulse lasts. The time scale of both curves is established with a unit of TD.
The lower curve shows the individual pulse starting with a leading edge at t=TD, followed by a HIGH state lasting for 2.8 TD and a LOW state lasting for 1.3 TD. The generating of this pulse will be described using the
a to 9e show a detailed view of the counter and adder 34 with digital states and values of this circuit during generating the pulse according to
The additional elements will be described with reference to
To get a more in-depth understanding of the behavior of the counter and adder circuit
t0<t<=t1 in
t1<t<=t2 in
t2<t<=t3 in
t3<t<=t4 in
t4<t<=t5 in
t0, t1, t2 . . . , t5 are the points in time at which leading edges of the derivative clock, having a cycle time of TD and shown in
The time ranges shown above for the individual
Note that the system may only generate pulses with duration of HIGH states being at least TD and with duration of LOW states being at least TD.
In case a negative number “−1” is shown within said round parenthesis indicating a value in
a, t0<t<t1: LOAD=1 and CARRY=0 force the multiplexers 83a, 83b and 85a into the shown switch position. This will allow new values for preliminary multiple part 33a to be red into REG D and preliminary fractional part 33b to be added by adder 87b with the next leading edge of the derivated clock at t1. Content of REG D=0 and content of REG A=0.
a; t=t1: Leading edge of the derivated clock occurs. REG D is loaded with value 1, adder 87b adds 0 provided by the output of REG A to the value 0.8 representing the preliminary fractional part 33b. At the output of REG A now the value 0.8 is present. With REG D now changing from 0 to 1 the digital comparator 84 will output 0, the output of toggle element 82 will toggle, thus LOAD will become 0 and multiplexers 83a and 83b will switch into the position indicated by arrows. CARRY remains 0. The output of adder 87a will change from 0 to −1.
Limiting the description to the points in time when the individual pulse to be generated transits from one state to the other, now the HIGH-to-LOW transition at time t=3.8 TD will be described. The duration of the HIGH state to be generated is 2.8 TD. REG D is loaded with 1 only and not with 2 because the minimum duration 1 TD is inherent.
c; t=t3: The CARRY is set to HIGH at this time. The adder 87b is adding the 0.8 present from the output 91b of REG A to the value 0.3 present from the input of the preliminary fractional part 33b. The result of 1.1 leads to said CARRY being set for one clock cycle and the remaining rest 0.1 being forwarded to the REG A. For the next LOW state a duration of 1.3 is intended, but because of the inherent duration TD of each state, only the value 0.3 is read in and 0 is present for the preliminary multiple part at 33a.
d; t3<t<t4: with the CARRY set to HIGH, the decrementing of the counter is stopped and thus the output of REG D remains constant. The HIGH state of the output pulse is kept because the value of 0.8 TD, being equal to 6.4 TCLOCK, has been sent from REG A in part, namely the part of 0.4 TCLOCK, to the pulse formatter 38, and in part, namely the part of 6.0 TCLOCK, to the delay modulation unit 42.
At t=3.8 TD, the delay expires and the output pulse changes from HIGH to LOW. At t=t4=4 TD, the CARRY is set to LOW. The adder 87b is adding the 0.1 present from the output 91 b of REG A to the value 0 present from the upper input of multiplexer 83b.
e; t4<t<t5: with the output signal keeps constant due to the inherent minimum duration TD. For t>t5, the LOW state of the output signal is prolonged for 0.1 TD by the delay modulation unit 42, before a transition from LOW to HIGH occurs.
| Number | Date | Country | Kind |
|---|---|---|---|
| PCT/EP04/52698 | Oct 2004 | EP | regional |