A Made IT projecthttp://www.made-it.com info@made-it.com |
Our experience is that synchronous applications are still a difficult matter to most people. All those strange things like clocking signals which can be internal, external and received/recovered, tend to make people nervous. We hope that this document will make it easier
First of all the standard DTE/DCE rules apply, no matter what kind of synchronous interface you have, but anotherthing pops up, which is the clocking. A general rule is that DCE devices provide the clock (internal clocking) and that the DTE device synchronizes on the provided clock (external clocking). So a straight cable between those devices is sufficient.
The three different options in clocking are internal, external, and received/recovered/loop clocking. The actual difference is in the transmited clock signal, because the received clock signal is always derived from the incoming data.
The outgoing clock (transmitted clock) will always be generated by an internal oscillator, the only difference between the three options is what is used as the phase reference.
When internal clocking is used the Tx clock is phase locked to the internal oscillator.
For the received/recovered/loop clocking (all those terms are used and all mean the same) the phase of the Tx clock is locked to the clock derived from the incoming data.
And when external clocking is used the phase of the Tx clock is phase locked to the one that is provided through the Rx clock.
To give you a better idea of the different ways clocking can be used in different applications here are some things to remember:
Modems and Modem Eliminators
Some easy devices are invented to solve basic problems. Let's say we have two devices that expect a clock signal (DTE) which we want to connect together. That seems a problem because they keep on waiting for a clock source. So give them a clock source. When they are standing far from eachother you could use synchronous modems or line drivers and when they are standing close to eachother you could also use synchronous modems or line drivers, but better would probably be to use modem eliminators.
Tail-Circuits
Okay, that was not too difficult, so let's now imagine we have two devices that provide a clock and we want to connect those two together. Now we have a problem, because it would be very unrealistic that both clocks would be synchronized, we know for almost 100% certain that they will not. But there is a solution, the tail circuit buffer. This device needs some explenation. What it will do is pretend it is a DTE with external clocking on both sides and buffer the incoming data and the retransmit it synchonised with the other clock source.
But what if you built a string of devices all connected together and you want it to work. Who is gonna provide the clock and how do you keep everything synchronised? See the picture below and try to figure out how this would be solved:
First of all, the PC is asynchronous, the composite side of the multiplexer is synchronous and all the modems are synchronous. We expect the muxes to be DTE with external clocking and the modems to be DCE with internal clocking.
From left to right you could connect the PC with an asynchronous cable to the mux and connect the mux with a straight cable to the modem, since this is a DTE-DCE connection. The trick lies in the fact that you need a Tail-Circuit Buffer between the two modems, because here you are connecting two DCEs with both internal clocking. After that the same rules for the first modem-mux and mux-PC cabling applies.
BUT, let's say that you don't want to spend money on Tail-Circuit Buffers or modem eliminators, but want to use cables and you are having multiplexers and modems that can be set for internal, external and received clocking. How are we gonna handle this one?
There are two solutions to this problem, which we will describe below.
We just connect the PC to the mux like we did before. We set the left most modem for internal clocking and the mux on external clocking, now those are happy. Since the second left modem is on the remote side of the application we can just set that one for internal clocking like we would do in a DTE-DCE--DCE-DTE configuration. Now the problem starts, because we have another modem and do not want to use a Tail-Circuit Buffer so we need a cross-cable (tail-circuit cable) to connect the devices and set the modem for external clocking.
Normally two modems connected through a (PTT) line make agreements with eachother based on their respective clocks, but our last modem does not supply the clock it, receives it and the data is send out according to that timing signal. So it can not negotiate with the right most modem about timing. The only possible way to connect to this modem will be to set that one to received/recovered clocking.
This received/recovered clocking is a trick where the modem accepts the clock from the incoming data (data coming from the left) and presents that received clock at his output side. This results in a setting for the mux composite channel to be external. The whole picture:
Another solution is the one with only ONE clock source. This one is the most used one. What happens is that one modem generates the clock for the entire data line. The benefit is that every device has the same clock, the disadvantage is that the clock tends to drift. A solution could be to use tail circuit buffers between two DCE devices. The solution without Tail Circuit Buffers would look like this: