DIGITAL LOOP SYNCHRONIZATION CIRCUIT

Abstract: Digital loop circuit for controlling synchronization around a closed loop communication system. The control circuit (20) is designed to automatically adjust the delay of the loop to maintain a constant frame bit length without regard to the number of stations connected into the loop. As stations are added or subtracted from the loop, the system operates to subtract or add delay as necessary. A first in and first out (FIFO) register having a bit capacity equal to the frame size is inserted serially in the loop and a separate clock is used to control the input and the output of the first in and first out register (FIFO). If a unique frame bit is not received in the anticipated position then the clock output skips one count per frame thereby adding delay to the loop. The loop control circuit operates for situations where the framing bit is on a separate channel and also when the framing bit is on the actual data channel.

Description: DIGITAL LOOP SYNCHRONIZATION CIRCUIT Background of the Invention This invention relates to a synchronization circuit for use in a digital communication system, the system having a plurality of serially interconnected stations, the stations arranged for intercommunication via a digital data channel, the channel divided into frames with each frame having a fixed number ri positions, each frame having at least one frame bit. Discussion of the Problem In essence, the problem is to design a digital loop communication system having the capability of easily adding and subtracting stations from the loop while at the same time maintaining synchronization around the loop regardless of the number of stations in the loop at any given time. Since each station is assigned to a parti* * - cular bit position in the digital stream it is critical that at the completion of one complete frame a given bit position be presented to the proper station. This is termed loop synchronization and it is clear that as stations are added or subtracted, time delays must be added or subtracted from the loop if synchronization is to be maintained. One method of accomplishing such time padding is to use a multi-delay shift register and tap the various outputs depending upon the length of the loop desired. While such a system could work, it has the drawback of requiring external manipulation of the shift register with manually operated switches or with central processing control. In either event, maintaining synchronism becomes an expensive proposition. Another method of synchronization uses a dual shifts-register technique. One bank of registers is used to hold data and another bank of registers contains "marker bits" which control the speed of clocking of the data register. Control circuitry manipulates these marker bits until the system is synchronized. This technique operates automatically (without external intervention), however, it requires a relatively large amount of hardware and is fairly slow to detect and correct outτ-of-sync conditions. Summary of the Invention The problem is solved in accordance with this invention in which the synchronization circuit comprises, a first in and first out register (FIFO) having bit length ri, the first in and first out register (FIFO) arranged for insertion in the digital channel between any two of the stations so that the bits of each of the frame pass from an input to an output of the first in and first out register (FIFO) , a first clock for controlling bits into the first in and first out register (FIFO) , a second clock for controlling bits out of the first in and first out register (FIFO), means for monitoring the frame bit of the frame, comparing circuitry for comparing the monitored frame bit with an expected frame bit, inhibiting apparatus responsive to a mismatch between the monitored frame bit and the expected frame bit for inhibiting- the output of the first in and first out register (FIFO) , and means responsive to a subsequent match between the monitored frame bit and the expected frame bit for disenabling the inhibiting means. This and other problems are solved utilizing our invention where a digital loop control circuit automatically adjusts the delay of the digital closed loop. As stations are added or subtracted from the loop, the proposed system operates to subtract or add delay as necessary. A FIFO register, having a bit capacity equal to the frame size, is inserted serially in the loop and a separate clock is used to control the input and the output of the FIFO register. Each frame is arranged with a frame bit in an expected position. If the frame bit is not received in the anticipated position the output FIFO clock skips one count per frame until the frame bit is received thereby adding delay to the loop. If the FIFO fills up, it is reset and the process continues until the correct synchronizing delay is achieved. The loop control circuit operates for situa-*- tions where the frame bit is on a separate channel and also when the frame bit is on the actual data channel. Brief Description of the Drawing These and other objects, features and problems are solved in one embodiment of our invention in the drawing, in which FIG. 1 is a block diagram of the entire system; FIG. 2 is a block diagram of the loop control module; FIGS. 3 through 6 are schematic diagrams; FIG. 7 illustrates the frame structure of the continuous data bus; FIG. 8 illustrates the frame structure of the bursty data bus; FIG. 9 is a timing diagram. General Description The loop control module of our invention is designed for use in a digital loop system. In general, however, it is desired to communicate digital data bits around a closed loop between any number of stations. Stations may be added or removed from the loop from time to time and the loop must compensate for such additions or subtractions. Since the time it takes a particular data bit to traverse the entire loop is dependent upon the number of stations (length) of the loop our invention is directed to the problem of main¬ taining synchronism of the data bits around a closed digital loop without need for external control. Detailed Description The following will describe in detail the operation of loop control module (LCM) 20. LCM 20 performs four basic functions: generation of clock and frame signals; auto-r-zeroing on the continuous data bus; garbage collection (removal of undeliverable data) on the bursty data bus; and maintaining the proper loop delay so that the system remains synchronized. Referring to FIG. 2, the clock and frame generation are performed by clock circuit 30. As indicated in FIG. 3, these functions are performed in a standard way using TTL (Transistor-Transistor Logic) integrated circuits. The timing of the signals generated by the clock circuit is shown in FIG. 9. The function of these signals is as follows: FRAME: marks the beginning of each frame on both the continuous and bursty data buses. Occurs once every 192 CLOCK'S. CLOCK: the basic bit clock used throughout the system. CLKX2,CLKX4: higher speed versions of CLOCK. FR+1: A signal which appears early in each frame - used to set a flip-flop. STVTS: marks the start of each time slot on the continuous data bus hereinafter called continuous time slot. Occurs every CLOCKS. DBTEST: marks the end of each time slot on the bursty data bus hereinafter called bursty time slot. Occurs every 32 CLOCKS. ENDVTS: marks the end of each time slot on the continuous data bus. Occurs every 16 CLOCKS. BITTM0: occurs during the first clock period of each continuous data time slot. ZTEST: occurs at the end of each time slot on the continuous bus and is used to check if the contents of the time slot has- a zero value. The use of each of these signals will be explained in the discussions which follow. Continuous Data Bus Circuitry The continuous data bus consists of a repetitive o 5. sequence of 12 time slots, each consisting of 16 clocks. In this implementation, the time slots are used to contain linear PCM voice samples. Thus, a single continuous data bus can permit. up to 12 simultaneous voice conversations. Unlike an analog bus, the digital voice bus described above has no loss (or attenuation) , hence the effects of random bit errors will persist until the system is turned off. Also, the bus tends to contain random bit patterns when it is initially turned on, and these will also persist. In order to damp out the effects of bit errors, it is necessary to make the bus slightly lossy (similar to a leaky capacitor in an analog bus) . This is done by the voice circuit 60 in FIG. 2. A schematic of this circuit is given in FIG. 6. When the continuous data bus is used for high-speed data other than linear PCM voice samples, this circuit is omitted. The circuit of FIG. 6 implements the following algorithm: if the contents of a particular continuous time slot are negative, its value is increased by 1; if the contents of the continuous time slot are positive, its value is decreased by 1; if the value of the continuous time slot is zero, it remains unchanged. Thus, the value of each continuous time time-slot is continuously forced towards zero, and the effect of bit errors is damped out. Since the voice samples are in the form of linear PCM, the addition and subtraction are easily performed. Using 2's complement arithmetic, subtracting 1 is accomplished by adding a sequence of 16 l's to the continuous time slot. With reference to FIG. 6, serial adder 607 performs the actual addition and subtraction. Registers 601 and 602 hold the voice sample to be processed. At the start of the continuous time slot (STVTS) , flip-flop 606 latches up the value of bit 15 of the continuous time slot. This bit indicates whether the value of the continuous time slot is positive or negative. If the value of the continuous time slot is positive, the Q output of flip-flop 606 will be high, and a sequence of 16 ones (-1 in 2's complement notation) will be added to the continuous time slot as it is shifted by. if, however, the continuous time slot was negative, then the output of gate 611 will go high only while BITTMO is asserted (i.e., during the first clock period of the continuous time slot) and a single 1 is added to the least significant bit position of the continuous time slot. If the value of the continuous time slot is identically zero, then the output of gate 612 will be low at the time of the first rising edge of ZTEST. This will cause ZERO signal to be latched at zero and prevent anything from being added to the continuous time slot. Thus, the circuit of FIG. 6 implements the algorithm described above. In systems which have more than one continuous data bus, the circuit of FIG. 6 is simply replicated for each additional bus. Bursty Data Bus Circuitry As shown in FIG. 8, the bursty data bus consists of six bursty time slots each consisting of 32 clocks. While the message-rswitched time-slots and the call processing field have different functions in the system as far as the LCM is concerned all six of the bursty data bus time slots are identical. The function of the bursty data bus circuit (element 50 in FIG. 2) is - two-r-fold: 1) to remove traffic from the bursty data bus (i.e., zero out the bursty time slot) after it has been delivered; and 2) to locate and remove any undeliverable traffic. The Bursty Data Bus Circuit (50) utilizes three bits of each time slot to carry out these functions: the BUSY/IDLE (B/I), Traffic Control (TC) and Acknowledgement (ACK) bits. The relative positions of these bits in a time slot is shown in FIG. 8. When a O- programmable data interchanger (PDI) transmits in a time slot, it sets the B/I bit to indicate that the time slot is in use. When the destination PDI receives the time slot, it sets the ACK bit. When the LCM detects a bursty time slot with both the B/I and ACK bits set, the bursty time-r-slot is cleared so that it can be used again. If the Bursty Data Bus Circuit detects a time slot with B/I set, but neither ACK nor TC set, it sets the TC bit to indicate that the bursty time slot has passed by the Bursty Data Bus Circuit once. If a bursty time slot is detected with the B/I and TC bits set, and ACK is not set, this indicates that the bursty time slot has made at least one full trip around the loop without being received and acknowledged. Therefore, it is considered to be undeliverable and the bursty time slot is cleared out. The Bursty Data Bus Circuit 50, shown in FIG. 5 performs the above-described functions. Data from the data bus is shifted through flip-rflops 501 and 502, registers 503-506, and flip-flops 507 and 508. At the time that DBTEST is asserted (shown in FIG. 9) , a complete data time slot is contained between flip-=-flops 501 and 508. The ACK and TC bits are replicated in flip-flops 509 and 510, respectively, to prevent race conditions. The B/I bit (BUSY) is available at flip-flop 507. The combination of gates 511 through 515 perform the comparisons described above when they are strobed by DBTEST. When a properly acknowledged time slot is detected, BYTEC is asserted, causing the time slot to be cleared (CLRTS) and also incrementing byte counter 518. The byte counter is useful for measuring the traffic handled by the system. When an undeliverable time slot is detected, GARBC.is asserted, which causes the time slot to be cleared and increments undeliverable data counter 517. The undeliverable data counter is useful for maintaining the system in proper operating condition. A non*-zero reading on the undeliverable data counter usually indicates a malfunction somewhere in the system. When a bursty time slot with BUSY asserted, but neither TC nor ACK asserted, is encountered, SETTC is asserted, causing the TC bit to be set. In this manner, the Bursty Data Bus Circuit prevents the data bus from filling up with undeliverable data and keeps statistics relating to the systems performance. Loop Synchronization Control Circuit As discussed previously, the number of bits delay around the loop must equal the number of bits per frame (N) if the system is synchronized. In a loop system with N bits per frame, there will not always be exactly N stations connected to the loop. In this particular implementation, the LCM has a minimum delay of 32 bits, each PDI has a delay of 1 bit, and the frame length is 192 bits. If there are m PDI's in the loop, then the LCM must provide a delay d_ of: d_ = 192-32-m. For example, if there are 61 PDI's in the loop, the LCM must provide a delay of 99 bits. Since the loop synchronization control circuit is implemented with a FIFO, the operational characteristics of a FIFO will now be briefly described. A FIFO (First In -_- First Out serial memory) is a shift register with separate clocks for the input and output. Bits of data clocked into the FIFO bubble through to the unoccupied storage location nearest the output. When the FIFO output is clocked, the oldest data bit exits the FIFO and all the other data bits move one slot closer to the output. As illustrated in FIGS. 1 and 2, our particular implementation uses separate buses for the transmission of continuous data, bursty data, clock, and framing information. The frame bus contains only the frame pulse, which occurs every 192 clock periods (FIG. 9). The circuit of FIG. 4 uses a FIFO (410 and 411) as j .:. C.TP an adaptively variable delay which can be used to adjust the loop length. The basic principle of operation of the circuit is that, if the system is in sync, the previous frame pulse should emerge from the FIFO at the same time as the new frame pulse is generated. FIFO's 410 and 411 are arranged in a standard configuration such that the two 96t-word FIFO's become a single 192**-word FIFO. The circuit illustrated in FIG. 4 operates in the following manner. Flip-.flop 405, in conjunction with gate 406 tests the frame bit emerging from the FIFO against the new frame bit being generated. If the system is in sync, the Q output of flip-flop 405 remains high and gate 407 remains enabled. If the system is out of sync, the Q output of flip-flop 405 will go low, disabling gate 407 and interrupting the FIFO's output clock. One clock period later, FR+1 is used to set flip-flop 405 and re-enable the FIFO output clock. Thus, one clock has been withheld from the FIFO output, causing the effective loop delay to be lengthened by 1 bit. There are two cases to consider: too few bits in the FIFO, and too many bits in the FIFO. If there are too few bits of delay in the FIFO (i.e., the loop is too short), then the loop length is increased by one bit per frame until synchronization is achieved. For example, if a station is removed from the loop, the system requires one frame to regain sync. If there are too many bits of delay in the FIFO (i.e., the loop is too long), the loop length continues to increase by one bit per frame until the FIFO is full. The FIFO full condition is detected by flip-flop 412, which clears the FIFO. The circuit now continues adding one bit of delay per frame, starting with an empty FIFO, until sync is achieved. This case can occur when a station is added to the loop. If there are N bits per frame, it takes N^l frame times for the system to regain sync if a single station is added. For N = 192, and 125 microseconds per frame, this is about 24 msec for the worst case. The above synchronization procedures are automatically executed when the system is powered up and every time sync is lost. Thus, the FIFO circuit adap- tively seeks out the correct loop length and automatically maintains it. A straightforward modification of this synchronization technique enables its use in a system where the frame bit is inserted as a toggle bit in the data stream. In this case, the output of an exclusive-OR gate would be connected to the D input of flip-flop 405 in FIG. 4. The inputs to this gate are the FIFO output (00 of FIFO 411) and the FRAME signal. This checks that the new frame bit is the opposite of the previous one. Operation of the circuit is the same as before, although on the average it takes twice as long to gain sync. Another extension of this technique is to detect an out-of-sync condition in one frame and add all the required bits of delay in the succeeding frame (rather than adding only one bit of delay per frame) . This has the advantage of faster operation at the expense of a small amount of additional hardware. A minor modification allows this technique to be used in systems which have a multiτ-frame delay around the loop. This may be advantageous since it allows more stations to be connected to the loop. If it is desired to maintain a delay of m frames (each frame having N bits) , then a FIFO of capacity mN must be used in conjunction with a frame counter which allows the frame comparison (gate 406) to occur only every m t " frame and inhibits it in the intervening frames. The above discussion has been confined to closed loops but it is understood that our arrangement may be used on a continuous channel for framing control, or used in situations where there is desired to be a fixed time delay between main stations on a channel without regard to the number of stations interposed between the main stations.

Claims: Claims 1. A synchronization circuit for use in a digital communication system, the system having a plurality of serially interconnected stations, the stations arranged for intercommunication via a digital data channel, the channel divided into frames with each frame having a fixed number n positions, each frame having at least one frame bit CHARACTERIZED IN THAT said synchronization circuit comprising a first in and first out register (FIFO) having bit length n_, the first in and first out register (FIFO) arranged for insertion in the digital channel between any two of the stations so that the bits of each of the frame pass from an input to an output of the first in and first out register (FIFO); a first clock for controlling bits into the first in and first out register (FIFO); a second clock for controlling bits out of the first in and first out register (FIFO); means for monitoring the frame bit of the frame, comparing circuitry for comparing the monitored frame bit with an expected frame bit, inhibiting apparatus responsive to a mismatch between the monitored frame bit and the expected frame bit for inhibiting the output of the first in and first out register (FIFO); and means responsive to a subsequent match between the monitored frame bit and the expected frame bit for disenabling the inhibiting means. 2. The invention set forth in claim 1 CHARACTERIZED IN THAT the system is divided into separate parallel channels, each of the channels passing through the common synchronization circuit, and wherein the frame bit is on one channel and data bits are on a separate channel. 3. The invention set forth in claim 1 CHARACTERIZED IN THAT the comparing means includes a bit clock counter enerating the expected frame bit. 4. The invention set forth in claim 1 CHARACTERIZED IN THAT the system is a closed loop system.

Inventors: BAXTER L, CUMMISKEY P
Applicants: WESTERN ELECTRIC CO, WESTERN ELECTRIC CO INC
Application year: 1980
Main classification: H04J3
IPC codes: H03J3, H04J3, H04L7, H04L12, H04Q11