Background of the Invention
The present invention relates to digital data communications systems and specifically to a rate converting technique that permits a digital multiplexer to support any data rate that is less than half of its design rate.
The need for the present invention may arise in a limitless number of ways. For instance, a transmission facility or data port that is designed to carry traffic at a particular data rate may require an exchange with a system operating at another data rate. This task has been alleviated to some extent by the prior art techniques disclosed in the following patents:
U.S. Pat. No. 4,258,433 issued to Hershtal et al on 24 March 1981 and U.S. Pat. No. 2,979,565 issued to Zarcone on 11 April 1961.
The Hershtal patent discloses a digital data communication network having differing data transmission rate capabilities for interconnecting terminal devices when either the terminal devices operate at different data rates, or they are to be interconnected over data links in the network which normally operate at different data rates.
The Zarcone patent discloses a multiplexing synchronizer at the receiving end of a multiplex transmission line which employs the codes transmitted thereover to keep the receiving apparatus in condition to receive the codes both in proper order and in proper timing with each code.
While the prior art devices do allow the successful exchange of data between digital data devices operating at separate data rates, the prior art systems are constrained by data rates that are multiples of each other to avoid errors.
In view of the foregoing discussion, it is apparent that there currently exists the need for a rate converting technique that provides an interface capability between systems possessing data rates that are non-multiple of each other. The present invention is directed toward satisfying that need.
Summary of the Invention
The present invention provides a rate converting technique that permits a digital multiplexer or transmission system to support any data rate less than half of its design rate. The applique rate converter develops a composite data stream consisting of alternate data bits and data boundary bits. The data boundary bits change state at each new data bit (corresponding to a change in the data clock.) The composite bit stream is then increased to the output data rate by means of a circuit called the `synchronizer`. At the demultiplex side of the applique, the data is separated from the composite stream by a decoding process and, if necessary, the data stream is rate smoothed. The major sections of the applique rate converter are the `synchronizer` at the multiplex side and the data separator and rate smoothing circuits at the demultiplex side.
It is a principal object of this invention to provide an improved method and apparatus for interfacing digital data devices operating at different data rates.
It is another object of the invention to permit a digital multiplexer or transmission system to support a digital data system operating at any data rate less than one half of that of the multiplexer or transmission system.
These together with other objects features and advantages of the invention will become more readily apparent from the following detailed description when taken in conjunction with the accompanying drawings wherein like elements are given like reference numerals throughout.
Description of the Drawings
FIG. 1 is a block diagram illustrating the use of one embodiment of the invention;
FIG. 2 is an illustration of the composite data signal;
FIG. 3 is an illustration of the synchronizer;
FIG. 4 is an illustration of the waveforms of the synchronizer;
FIG. 5 is an illustration of the data separator; and
FIG. 6 is an illustration of the rate smoothing circuit.
Detailed Description of the Preferred Embodiment
The present invention includes a rate converting technique and apparatus that permits a digital multiplexer to support any digital data system having any data rate that is less than one half of the input port rate of the multiplexer.
The applique rate converter develops a composite data stream consisting of alternate data bits and data boundary bits. The data boundary bits change state at each new data bit (corresponding to a change in the data clock.) The composite bit stream is then increased to the output data rate by means of a circuit called the `synchronizer`. At the demultiplex side of the applique, the data is separated from the composite stream by a decoding process and, if necessary, the data stream is rate smoothed. The major sections of the applique rate converter are the `synchronizer` at the multiplex side and the data separator and rate smoothing circuits at the demultiplex side. FIG. 1 is a block diagram illustrating the use of one embodiment of the invention and the associated clock and data signals required for operation. The data is shown being transmitted from left to right for the purposes of illustration.
The synchronizer 101 receives the data stream and data clock signal (C.sub.D) from a digital data source and the system clock signal (C.sub.S) from the multiplexer 102.
The synchronizer 101 develops a composite data stream consisting of alternate data bits (D.sub.j) and data boundary (B.sub.j) bits. The data boundary bits change state at each new data bit (corresponding to a change in the data clock). FIG. 2 is an illustration of the composite data stream generated by the invention. It is the technique of alternating the data bits (D.sub.j) with the boundary bits (B.sub.j) that permits the digital multiplexer to support any digital data system having any data rate that is less than one half the rate of the multiplexer.
Returning to FIG. 1, the clock frequency, C.sub.Sf, of the existing multiplexer port or transmission system must be at least twice as fast as the data source clock frequency, C.sub.Df. This assures that there are enough time slots to accommodate both data and data boundary bits. There will be, in general, redundant data and data boundary bits in the composite bit stream. The boundary for each bit is defined by the C.sub.S edge. FIG. 2 shows that D.sub.3 and B.sub.3 are repeated. If the multiplexer port clock frequency C.sub.S was much greater than that of the data clock frequency, C.sub.Df then repeats would be more frequent and, in fact, long strings of repeated symbols would occur. Since the data clock and the system clock are asynchronous, there is no prior way of knowing when repeated symbols will occur. The synchronizer 101 sends the composite data and boundary bit stream at the output data rate of C.sub.Sf to the multiplexer 102 where it is transmitted to the demultiplexer 103. At the demultiplexer side of the applique, the data is separated from the composite stream by the data separator 104 and, if necessary, the data stream is rate smoothed.
Statistically, the data bits have fewer changes in state than the interleaved data boundary bits. (The data boundary bits are guaranteed to change state for each data clock but the data bits may or may not change state). The applique uses this information to separate the data from the data boundary symbols. It also uses the data boundary symbols to regenerate the data clock at the demultiplexer.
The advantages of the present invention over the prior art is that the high speed data rate C.sub.Sf of the multiplexer port need not be a multiple or synchronous with the data rate, C.sub.Df, of the digital data source due to the design of the synchronizer 101.
There are potential pitfalls in generating the composite data stream due to the fact that C.sub.D and C.sub.S are asynchronous.
Since the input data rate is less than the system clock rate, a First-In-First-Out (FIFO) buffer cannot be used without pulse stuffing. The average input and output data rate of the FIFO must be equal to prevent data underflow or overflow.
The purpose of the synchronizer 101 is to eliminate the hazards of strobing the data during a data edge when it is changing. FIG. 3 is an illustration of the synchronizer and FIG. 4 depicts its waveforms. The schronizer 101 produces the composite data output (Zn). An example of one embodiment of the synchronizer is made with five D-type registers 401-405 and three select chips 410-412.
The incoming data is strobed into two data registers 401 and 402 or alternate clock times (C.sub.D). Incoming data is stored in each of the two D-type registers 401 and 402 such that each data bit (Q.sub.1 and Q.sub.2) is stored for two clock cycles, then the two stored data inputs A and B are sent to the data select chip 410.
The data clock signal C.sub.D is received by clock register 404 which divides the clock frequency C.sub.Df by two producing Q.sub.o and Q.sub.o which are sent to provide the timing for data registers 401 and 402.
The system clock signal C.sub.S is received by clock register 405 which produces the strobing signal Q.sub.3 (the frequency of Q.sub.3 is one half that of C.sub.Sf) which is sent to data register 403 and the interlace select chip 412.
Data register 403 is a D-type register producing the select control signal Q.sub.4 by strobing Q.sub.o using Q.sub.3 as the clock. The select control signal Q.sub.4 is sent to the data select chip 410 and the boundary select chip 411. Notice that there can be an ambiguity in Q.sub.4 itself, i.e., assume Q.sub.O is changing at the time it is being clocked into the D register by Q.sub.3 (see FIG. 4). This ambiguity, however, does not produce a problem at the data select chip 410, for regardless of which input is selected, the data cannot change for a data clock period and the data clock period, T.sub.D is, by definition, longer than 2T.sub.S where T.sub.S is the system clock period. If, on the other hand, the data is changing in one of the D-edge registers at the time of a positive going edge of Q.sub.3 which controls the select line, the data select chip 410 will always select the input that is not changing. Data will of necessity be clocked out twice at times (D.sub.0, D.sub.7 or D.sub.8) but only data changes will be accompanied by changes in the boundary bits as shown in the Z waveforms.
The data select chip 410 produces the data bits (X) which will be used in the composite data stream output (Z.sub.n). The boundary bits are selected by the boundary select chip 411 from inputs A and B tied to a logic `0` and `1` respectively.
The interlace select chip 412 produces the composite data stream output (Z.sub.n) by alternating the data bits (X) produced by the data select chip 410, with the data boundary bits B.sub.j produced by the boundary select chip 411. Two possible composite data streams are shown as Z.sub.1, and Z.sub.2 in FIG. 4. Each of these data streams would be decoded correctly by the data separator.
FIG. 5 is an illustration of the data separator 104 which receives the composite data stream output and clock signal C.sub.S from the demultiplexer 103 and generates an output of the data signal and data clock signal at the desired initial data rates. The data separator contains a shift register 41, two exclusive or (XOR) gates 42 and 43, D-edge registers 45-49, an inverter 55 two NAND gates 53, 54, a comparator circuit 60 and two select chips 56 and 57.
The shift register 41 receives the composite data stream output and system clock signal C.sub.S from the demultiplexer (103 of FIG. 1). The shift register separates the composite data stream into four signals: two boundary bits (B.sub.j and B.sub.j+1) and two data bits (D.sub.j and D.sub.j+1). For the purpose of illustration, the output signals of the shift register were designated "boundary bits" and "data bits", but the shift register actually is capable of just breaking up the composite data stream into separate bits and does not successfully identify the data bits. This determination is actually made by the data select chip 56 which receives the control logic signal from the comparator circuit 60 to select the data bits from the output signals of data registers 48 and 49. The shift register illustrates a "snap shot" of the composite data stream at one clock interval. The outputs of register one and three drive the XOR gate 42 with the resultant signal sent to data register 46 where it is strobed by the signal Q.sub.1. Register outputs two and four drive the XOR gate 43 with the resultant signal sent to data register 45 where it is strobed by the signal Q.sub.1. Register outputs two and four drive the XOR gate 43 with the resultant signal sent to data register 45 where it is strobed by the signal Q.sub.1.
The system clock signal C.sub.S is received from the demultiplexer and inverted by an inverter 55. The inverted C.sub.S is sent to the divide by 2 counter 47 to generate Q.sub.1 and Q.sub.1. Signal Q.sub.1 is sent to data registers 45 and 46 and Q.sub.1 is sent to data register 48 and 49 and also to NAND gates 53 and 54.
The strobed output signals (Q.sub.2 and Q.sub.3) of registers 45 and 46 are then integrated by two exponential integrators and the two integrated outputs are sent to the comparator circuit 60. At the comparator circuit, the highest integrated output is assumed to correspond to the boundary bits. This decision is manifested by treating the output signal of the comparator circuit 60 as a control logic signal which is sent to control the two select chips 56 and 57.
The output of the first select chip (or data select chip) 56 is the data output. This data output signal is produced as follows: The data select chip 56 receives three inputs, one of which is the control logic signal from the comparator circuit 60 which allows the first select chip to select the data for output from the other two inputs.
The second input into the data select chip is the strobed data bit (Q.sub.7) signal. This signal is produced when the data bit D.sub.j+1 from the shift register 41 is input into data register 49 where it is strobed by the signal Q.sub.1 from the divide by 2 circuit 47.
The third input into the data select chip is the strobed boundary bit signal Q.sub.8. This signal is produced when the boundary bit B.sub.j+1 from the shift register 41 is input into data register 48 where it is strobed by the signal Q.sub.1 from the divide by 2 circuit 47.
The control logic signal from the comparator circuit 60 is also used by the clock select chip 57 to successfully select the data clock signal from two inputs. The first input into the clock select chip is the output of NAND gate 53.
The second input into the clock select chip 57 is the output of NAND gate 54.
FIG. 6 is an illustration of the rate smoothing circuit which smooths the output data stream and clock signal from the data separator 104. The data is rate smoothed using a FIFO 501, integrator 502 voltage controlled oscillator (VCO) 503 and divider circuit 504. The use of a non crystal controlled VCO and divider circuits permits a very large dynamic frequency range.
The above rate converting technique and apparatus permits a digital multiplexer to support any digital data system having any data rate that is less than one half of the rate of the multiplexer.
While the invention has been described in a single embodiment, it is understood that the words which have been used are words of description rather than words of limitation and that changes within the purview of the appended claims may be made without departing from the scope and spirit of the invention in its broader aspects.