Time division multiplexing method and apparatus for asynchronous data stream
A Serial Communications Controller (SCC) is configured to provide TDM multiplexing of signals regardless of whether such signals are synchronous or asynchronous signals. When an asynchronous signal is detected, the data rate of the asynchronous signal is automatically measured. The two data streams are buffered, e.g., by FIFOs. Data is clocked-out from the FIFOs into periods of a TDM signal which has a period at least twice that of the faster of the two input signals. In one embodiment alternate periods of the TDM signal are used for the first and second input signals. Bits from the slower of the two input signals are repeated a sufficient number of times, in the TDM signal, that ratio of the rate at which new data bits from the second signal are placed into the TDM signal, to the rate of output of bits from the first stream onto the TDM signal equals (on average) the ratio of the data rates of the first and second input streams. When the ratio of the data rates of the input streams is non-integral, the number of times the bits from the second or slower data stream are repeated, is dithered to keep accumulated skew of data rates in the TDM signal less than a predetermined threshold, such as the duration of a TDM period.
Latest Cisco Technology, Inc. Patents:
The present invention relates to time division multiplexing of two or more data streams and, in particular, to methods and apparatus which can achieve time division multiplexing in which one data stream may be asynchronous and/or of an unknown baud rate, and another may be a synchronous data stream.
BACKGROUND INFORMATONIn many types of communication systems, it is advantageous to multiplex two or more digital data streams, e.g., such that the various data streams can be transmitted without having to provide separate ports, communication lines, transmitters, receivers and the like for each data stream.
A common type of multiplexing for use with digital data streams is known as time division multiplexing. In general, in time division multiplexing (TDM) each of two or more signals are allocated or associated with a set of recurring time periods or time slots. The time slots are configured such that the time slots associated with one signal do not overlap the time slots associated with another signal. As ad simple example, if each of data streams A and B consist of ten words, the data streams could be multiplexed by assigning alternate 1-millisecond time slots to the two signals. Thus, the first word of data stream A would be transmitted during the first 1-millisecond time slot, the first word of data stream B would be transmitted during the second 1-millisecond time slot, the second word of data stream A would be transmitted during the third 1-millisecond time slot, the second word of data stream B would be transmitted during the fourth 1-millisecond time slot, the third word of data stream A would be transmitted during the fifth 1-millisecond time slot and so forth. Of course, such a scheme requires that the receiving unit must be able to determine which time slot is assigned to which signal (so that the receiving unit can distinguish between data bits which form part of data stream A and those data bits which form part of data stream B). For this reason, time division multiplexing is typically performed with synchronous data communication systems i.e., systems in which both the sending and receiving units can reference the data (i.e. the “synchronous data”) with respect to a common (or at least synchronized) clock signal.
Synchronous communication systems can be contrasted with asynchronous systems in which there is no need for a common or synchronized clock between the sender and receiver. In a typical asynchronous system, each item or packet being transferred is accompanied by a separate control signal to indicate its presence to the destination unit which will respond with an acknowledgment signal. Thus, each device can generate control signals at its own rate.
Many devices which provide time division multiplexing are configured to provide such multiplexing only for synchronous signals or data streams. Accordingly, it would be useful to provide a system which can provide time division multiplexing among data streams that can include one or more asynchronous data streams.
It would be particularly useful to provide device which can provide time division multiplexing regardless of the synchronous/asynchronous nature of the signals which are received. For example, it would be useful to provide a device which can achieve time division multiplexing of, e.g., two synchronous signals, a synchronous signal and an asynchronous signal or two asynchronous signals.
In some devices which receive, transmit or otherwise handle asynchronous signals (among other signals) different asynchronous data streams may have different baud (bits per unit time) rates or other different characteristics. In some devices (for example, network communication devices such as network routers and the like), the baud rate or other characteristics of the asynchronous data streams may not be known in advance. Even when it is possible to know baud rates or other characteristics in advance, some data communications devices require manual input for identifying the baud rate or other characteristics (such as requiring a human to set one or more switches, input information via a keyboard or other input device or the like). The requirement for human input or action is expensive, relatively slow and may be error-prone. Accordingly, it would be useful to provide a device which can achieve time division multiplexing of signals which can include one or more asynchronous, as well as synchronous, data streams without requiring that the baud rate or other characteristics of the data stream be known in advance and without requiring human input or manipulation to accommodate different baud rates or other characteristics of the asynchronous data stream.
SUMMARY OF THE INVENTIONThe present invention includes providing for time division multiplexing of two or more signals regardless of whether the signals are synchronous or asynchronous. In one embodiment, the asynchronous nature of one or more of the data streams is detected and the baud rate for all such asynchronous data streams is automatically determined. Preferably the system can accommodate signals which have widely differing data rates, and/or data rates which are non-integral multiples of one another. In one embodiment, the number of TDM periods which correspond to each successive bit of the slower signal is changed or dithered to maintain skew between the input and output data rates within limits.
In one configuration, a Serial Communications Controller (SCC) is configured to provide TDM multiplexing of signals regardless of whether such signals are synchronous or asynchronous signals. When an asynchronous signal is detected, the data rate of the asynchronous signal is automatically measured. The two data streams are buffered, e.g., by FIFOs. Data is clocked-out from the FIFOs into periods of a TDM signal which has a period at least twice that of the faster of the two input signals. In one embodiment alternate periods of the TDM signal are used for the first and second input signals. Bits from the slower of the two input signals are repeated a sufficient number of times, in the TDM signal, that the ratio of the rate at which new data bits from the second signal are placed into the TDM signal, to the rate of output of bits from the first stream onto the TDM signal equals (on average) the ratio of the data rates of the first and second input streams. When the ratio of the data rates of the input streams is non-integral, the number of times the bits from the second or slower data stream are repeated, is dithered to keep accumulated skew of data rates in the TDM signal less than a predetermined threshold, such as the duration of a TDM period.
The CPM 132, in the depicted configuration, includes a microcontroller 156 coupled to random access memory (RAM) 158, a parallel port 162, various timers and controllers 164 and to a direct memory access unit 166, in a manner well understood to those of skill in the art. Microcontroller 156 contains a bus or similar communication link 172 for communicating with the SCC's 136, 138 and USB 128. As will be understood by those of skill in the art, in various configurations of microprocessors 134 and/or CPM's 132, the CPM may contain additional communication devices such as one or more serial management controllers (SMC), serial peripheral interfaces (SPI), inter-integrated circuits (IIC) and the like.
In the embodiment of
To assist in description of the present invention,
Although many types of asynchronous communication are possible, the simplified example of
As illustrated in
Before discussing the accommodation of one or more asynchronous data streams, certain features of TDM of two synchronous signals will be discussed. In order to perform time division multiplexing, e.g. on two synchronous data streams, it is typically necessary to account for any differences in the data rates of the two synchronous data streams (which are typically integral multiples of one another, if not identical) and/or to account for any offset of the timing of bits in one data stream with respect to the timing of bits in another data stream (“offset”).
While offsets and differences in data rates would also be typically present between synchronous and asynchronous signals (or between two asynchronous signals), accommodating asynchronous signals in a TDM scheme presents the further difficulty of the lack of a discrete clock signal in asynchronous systems. Furthermore, because of the need to perform special procedures to accommodate asynchronous signals, there is a further need to identify the presence of and the nature of (such as the baud rate of) an asynchronous signal. Accordingly, in one embodiment, the present invention involves detecting the presence of an asynchronous interface, recovering (or synthesizing) the clock of this serial data stream, synchronizing it to a common clock and then applying TDM techniques, preferably so as to accommodate non-integral data rate ratios.
The embodiment of
In the example of
In order to provide a synchronous time division multiplexed to the SCC port 516, data is clocked out from the FIFOs 518a 518b at rates, and with the timing, in accordance with a synchronous clock signal (i.e. the clock which is synchronized between the SCC of FIG. 5 and the destination of the data output from the SCC port 516). In particular, a clock synthesizer 532 provides the sync clock 622 (synchronized 624 with the destination). The sync clock 622 controls the read-out or clock-out from the input FIFOs 518a 518b. As shown in
As depicted in
While
As described further below, the asynchronous signal can be recovered (demultiplexed) from the time-division-multiplexed signal 812 by selecting, from the signal 812, the bit value of a B time period which occurs near the middle of each asynchronous time period 818a, 818b. For example, since, in the illustrated example, there are approximately 56 time-division-multiplexed periods 854a,b in each asynchronous period 818a, 818b, the scheme of
As noted above, in the present example, where the synchronous signal has a data rate of 1.544 megahertz and the asynchronous signal has a data rate of 56 kilohertz, there is one asynchronous bit for every 27.54143 synchronous bits. Thus, even when, as illustrated in
As depicted in Table 2, associating the first asynchronous period 818awith a first group of 27 bits and the second asynchronous bit period 818bwith a second group of twenty-eight bits provides a first pair of groups which achieves a skew 846 of only 0.04143. As shown in Table 2, the scheme of alternating or dithering between groups of 27 and 28 TDM periods, associated with successive asynchronous bits, accumulates an additional 0.4143 skew for each 27/28 pair of groups. As shown in the last column of Table II, the accumulated skew will continue to grow until, after the thirteenth pair of 27/28 groups, accumulated skew exceeds 50% of a synchronous period 835. Preferably, whenever the accumulated skew exceeds 50% of a synchronous period 835, an additional 28-period group is provided (shown, in Table II as Group No. 27) which, as shown, reduces the accumulated skew to 0.03859. Thereafter (groups 28-51) dithering between groups of 27 and 28 continue until, by the end of Group No. 51, the accumulated skew has again exceeded 50% of a synchronous period 835 and an additional 28-period group (shown as Group No. 52) is inserted, to reduce the accumulated skew to 0.03575.
In general, as depicted in
Although it is possible to use input and output FIFOs 518a, 518b, 522a, 522b to provide time division multiplexing of asynchronous with synchronous data (as described more fully below), as will be apparent from
In general, with reference to
As described above, in order to implement features of the present invention for accommodating asynchronous data streams, it is first necessary to recognize that a data stream is asynchronous. A data stream which is input into the serial ports of the device of
As depicted in
As shown on
In light of the above description on a number of advantages of the present invention can be seen. The present invention can accommodate asynchronous signals in a system which uses time division multiplexing for communicating between a source and a destination. The system can provide for such communication regardless of the manner in which asynchronous and synchronous signals are combined (all synchronous signals, all asynchronous signals, or a combination thereof). The present invention can accommodate multiplexing signals which have greatly different data rates, such as differing by a factor of ten, twenty or more. The present invention can achieve time-division-multiplexing of signals even when it is not known, in advance, what the synchronous/asynchronous nature of the signals will be. The present invention can achieve time-division-multiplexing of signals even when it is not known, in advance, what the data rates of the component signals will be. The present invention can achieve time-division-multiplexing of signals, including, asynchronous signals, even when the signals may have input or output timing which are offset with respect to each other. The present invention can achieve time-division-multiplexing of signals even when the data rates of the component signals are non-integral multiples of one another.
Preferably time division multiplexing according to embodiments of the present invention can be implemented with little or no need for modifying or adding hardware (compared to previous SCC devices), i.e., in some embodiments can be implemented substantially by modifying or providing software for use with existing devices. The present invention makes it possible to use hardware devices such as routers, switches, personal computers, work stations and the like, to handle asynchronous data streams without the need for using or adding devices which are specific to asynchronous data streams, thus reducing the total number of components needed and/or the complexity or cost of the device.
A number of variations and modifications of the present invention can be used. It is possible to use some features of the invention without using others. For example, although some of the embodiments described above provide for devices capable of TDM communication in two directions (e.g., by providing devices which act as a multiplexer or demultiplexer) it is possible to implement embodiments of the present invention to provide for TDM communication in only one direction (such as providing a source device with a multiplexer and a destination device with a demultiplexer). Although examples described above have included illustrations with two data streams (A,B), the present invention can be implemented in a fashion to multiplex three or more signals as will be understood by those of skill in the art after understanding the present disclosure. For example, a synchronous signal could be time division multiplexed with two asynchronous signals, e.g. by (with reference to
The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, subcombinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g. for improving performance, achieving ease and/or reducing cost of implementation.
The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. Although the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g. as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.
Claims
1. A method for communicating data from a source to a destination over a communications link, the method comprising:
- receiving and storing a synchronous data stream into a first data buffer, wherein the synchronous data stream has a first average data bit rate;
- receiving and storing an asynchronous data stream into a second data buffer, wherein the asynchronous data stream has a second average data bit rate;
- transmitting, over the communications link during a plurality of time periods comprising a first subplurality of time periods and a second subplurality of time periods, an output data stream that includes a first set of one or more data bits that are transmitted onto the communications link from the first buffer during the first subplurality of time periods and a second set of one or more data bits that are transmitted onto the communications link from the second data buffer during the second subplurality of time periods; and
- wherein if the second average data bit rate is less than the first average data bit rate, then during the second subplurality of time periods, the values of all of the data bits in the second set of one or more data bits are the same and represent the value of the asynchronous data stream.
2. The method as recited in claim 1, wherein the output data stream has a data rate that is twice the integral part of a ratio of the first average data bit rate to the second average data bit rate.
3. The method as recited in claim 1, wherein a number of time periods in the first subplurality of time periods equals a number of time periods in the second subplurality of time periods.
4. The method as recited in claim 1, wherein the first subplurality of time periods includes every other time period in the plurality of time periods.
5. The method as recited in claim 4, wherein the first subplurality of time periods includes the even time periods in the plurality of time periods and the second subplurality of time periods includes the odd time periods in the plurality of time periods.
6. The method as recited in claim 1, further comprising selecting the number of time periods in both the plurality of time periods and the second subplurality of time periods to compensate for an accumulated skew attributable to a ratio of the first average data bit rate to the second average data bit rate being a non-integral ratio.
7. The method as recited in claim 1, further comprising:
- selecting the number of time periods in the plurality of time periods to be the sum of one and twice the integral value of a ratio of the first average data bit rate to the second average data bit rate; and
- selecting the number of time periods in the second subplurality of time periods to be the sum of one and the integral value of the ratio of the first average data bit rate to the second average data bit rate.
8. A machine-readable medium for communicating data from a source to a destination over a communications link, the machine-readable medium carrying sequences of instructions which, when executed by one or more processors, cause:
- receiving and storing a synchronous data stream into a first data buffer, wherein the synchronous data stream has a first average data bit rate;
- receiving and storing an asynchronous data stream into a second data buffer, wherein the asynchronous data stream has a second average data bit rate;
- transmitting, over the communications link during a plurality of time periods comprising a first subplurality of time periods and a second subplurality of time periods, an output data stream that includes a first set of one or more data bits that are transmitted onto the communications link from the first buffer during the first subplurality of time periods and a second set of one or more data bits that are transmitted onto the communications link from the second data buffer during the second subplurality of time periods; and
- wherein if the second average data bit rate is less than the first average data bit rate, then during the second subplurality of time periods, the values of all of the data bits in the second set of one or more data bits are the same and represent the value of the asynchronous data stream.
9. The machine-readable medium as recited in claim 8, wherein the output data stream has a data rate that is twice the integral part of a ratio of the first average data bit rate to the second average data bit rate.
10. The machine-readable medium as recited in claim 8, wherein a number of time periods in the first subplurality of time periods equals a number of time periods in the second subplurality of time periods.
11. The machine-readable medium as recited in claim 8, wherein the first subplurality of time periods includes every other time period in the plurality of time periods.
12. The machine-readable medium as recited in claim 11, wherein the first subplurality of time periods includes the even time periods in the plurality of time periods and the second subplurality of time periods includes the odd time periods in the plurality of time periods.
13. The machine-readable medium as recited in claim 8, further comprising additional instructions which, when processed by the one or more processors, causes selecting the number of time periods in both the plurality of time periods and the second subplurality of time periods to compensate for an accumulated skew attributable to a ratio of the first average data bit rate to the second average data bit rate being a non-integral ratio.
14. The machine-readable medium as recited in claim 8, further comprising additional instructions which, when processed by the one or more processors, causes:
- selecting the number of time periods in the plurality of time periods to be the sum of one and twice the integral value of a ratio of the first average data bit rate to the second average data bit rate; and
- selecting the number of time periods in the second subplurality of time periods to be the sum of one and the integral value of the ratio of the first average data bit rate to the second average data bit rate.
15. An apparatus for communicating data from a source to a destination over a communications link, the apparatus comprising:
- means for receiving and storing a synchronous data stream into a first data buffer, wherein the synchronous data stream has a first average data bit rate;
- means for receiving and storing an asynchronous data stream into a second data buffer, wherein the asynchronous data stream has a second average data bit rate;
- means for transmitting, over the communications link during a plurality of time periods comprising a first subplurality of time periods and a second subplurality of time periods, an output data stream that includes a first set of one or more data bits that are transmitted onto the communications link from the first buffer during the first subplurality of time periods and a second set of one or more data bits that are transmitted onto the communications link from the second data buffer during the second subplurality of time periods; and
- wherein if the second average data bit rate is less than the first average data bit rate, then during the second subplurality of time periods, the values of all of the data bits in the second set of one or more data bits are the same and represent the value of the asynchronous data stream.
16. The apparatus as recited in claim 15, wherein the output data stream has a data rate that is twice the integral part of a ratio of the first average data bit rate to the second average data bit rate.
17. The apparatus as recited in claim 15, wherein a number of time periods in the first subplurality of time periods equals a number of time periods in the second subplurality of time periods.
18. The apparatus as recited in claim 15, wherein the first subplurality of time periods includes every other time period in the plurality of time periods.
19. The apparatus as recited in claim 18, wherein the first subplurality of time periods includes the even time periods in the plurality of time periods and the second subplurality of time periods includes the odd time periods in the plurality of time periods.
20. The apparatus as recited in claim 15, further comprising means for selecting the number of time periods in both the plurality of time periods and the second subplurality of time periods to compensate for an accumulated skew attributable to a ratio of the first average data bit rate to the second average data bit rate being a non-integral ratio.
21. The apparatus as recited in claim 15, further comprising means for:
- selecting the number of time periods in the plurality of time periods to be the sum of one and twice the integral value of a ratio of the first average data bit rate to the second average data bit rate; and
- selecting the number of time periods in the second subplurality of time periods to be the sum of one and the integral value of the ratio of the first average data bit rate to the second average data bit rate.
22. An apparatus for communicating data from a source to a destination over a communications link, the apparatus comprising a memory storing instructions which, when executed by one or more processors, cause:
- receiving and storing a synchronous data stream into a first data buffer, wherein the synchronous data stream has a first average data bit rate;
- receiving and storing an asynchronous data stream into a second data buffer, wherein the asynchronous data stream has a second average data bit rate;
- transmitting, over the communications link during a plurality of time periods comprising a first subplurality of time periods and a second subplurality of time periods, an output data stream that includes a first set of one or more data bits that are transmitted onto the communications link from the first buffer during the first subplurality of time periods and a second set of one or more data bits that are transmitted onto the communications link from the second data buffer during the second subplurality of time periods; and
- wherein if the second average data bit rate is less than the first average data bit rate, then during the second subplurality of time periods, the values of all of the data bits in the second set of one or more data bits are the same and represent the value of the asynchronous data stream.
23. The apparatus as recited in claim 22, wherein the output data stream has a data rate that is twice the integral part of a ratio of the first average data bit rate to the second average data bit rate.
24. The apparatus as recited in claim 22, wherein a number of time periods in the first subplurality of time periods equals a number of time periods in the second subplurality of time periods.
25. The apparatus as recited in claim 22, wherein the first subplurality of time periods includes every other time period in the plurality of time periods.
26. The apparatus as recited in claim 25, wherein the first subplurality of time periods includes the even time periods in the plurality of time periods and the second subplurality of time periods includes the odd time periods in the plurality of time periods.
27. The apparatus as recited in claim 22, wherein the memory includes additional instructions which, when processed by the one or more processors, causes selecting the number of time periods in both the plurality of time periods and the second subplurality of time periods to compensate for an accumulated skew attributable to a ratio of the first average data bit rate to the second average data bit rate being a non-integral ratio.
28. The apparatus as recited in claim 22, wherein the memory includes additional instructions which, when processed by the one or more processors, causes:
- selecting the number of time periods in the plurality of time periods to be the sum of one and twice the integral value of a ratio of the first average data bit rate to the second average data bit rate; and
- selecting the number of time periods in the second subplurality of time periods to be the sum of one and the integral value of the ratio of the first average data bit rate to the second average data bit rate.
3988545 | October 26, 1976 | Kuemmerle et al. |
3989892 | November 2, 1976 | Yoshida et al. |
4035580 | July 12, 1977 | Dieter et al. |
4353128 | October 5, 1982 | Cummiskey |
4761781 | August 2, 1988 | Calvignac et al. |
4881223 | November 14, 1989 | Debuysscher |
4884264 | November 28, 1989 | Servel et al. |
4905225 | February 27, 1990 | Francois et al. |
5027351 | June 25, 1991 | De Prycker et al. |
5109378 | April 28, 1992 | Proctor et al. |
5173901 | December 22, 1992 | DeSomer |
5199028 | March 30, 1993 | Arnold |
5212686 | May 18, 1993 | Joy et al. |
5237565 | August 17, 1993 | Henrion et al. |
5327428 | July 5, 1994 | Van As et al. |
5970069 | October 19, 1999 | Kumar et al. |
6157657 | December 5, 2000 | Humphrey et al. |
6421393 | July 16, 2002 | Thornton |
- Motorola; NetComm Press Releases; Motorola System Solution Slashes Development Time for Small-office Routers; pp. 1-2; http://www.mot.com/SPS/RISC/netcomm/docs/pr/hipster_pr.html.
- Motorola; Wired; SOHO Reference Designs; pp. 1-3; http://mot-sps.com/solutions/wired/soho/soho-apps.html#hipster.
- Motorola; NetComm Press Releases; Motorola Expands Communications Controller Family with First Power PC Architecture; pp. 1-7; http//www.mot.com/SPS/RISC/netcomm/docs/pr/090495_mpo860.html.
- Motorola; NetComm Press Releases; Multichannel Controller Added to QUICC Family; pp. 1-2; http//www.mot.com/SPS/RISC/netcomm/docs/pr/022795_MH360.html.
Type: Grant
Filed: Feb 4, 1999
Date of Patent: Apr 5, 2005
Assignee: Cisco Technology, Inc. (San Jose, CA)
Inventors: Steven Chow (San Carlos, CA), Jicheng Ye (Cupertino, CA), Wen Huang (Cupertino, CA)
Primary Examiner: Steven Nguyen
Attorney: Hickman Palermo Truong & Becker LLP
Application Number: 09/244,361