PHASE DECODER FOR DATA COMMUNICATION SYSTEMS

Abstract: A data communication system includes a communica­ tion link (14) having a plurality of transceivers (16, 18) connected to it, each including a transmitter (44) for transmit­ ting phase-encoded data on the link and a receiver (46) for receiving phase-encoded data from the link and from its own transmitter. Each receiver includes a digital phase decoder (52) for decoding the data received and generating a decode signal representative of the character of the received data. The decode signal is at a predetermined value whenever data put on the link (14) by another transceiver (16, 18) collides with data to be put on the link by its transmitter. Circuitry is included for interrupting the accessing of the link whenever the predetermined decode signal is generated.

Description: Phase decoders for data communication systems This invention relates to digital phase decorders for use with data communication systems, particularly of the type comprising a communication link, having a plurality of transceivers connected to it, with each transceiver including means for transmitting encoded data onto the link and for receiving encoded data put on the link by an associated transceiver. US - B-3 335 224 (Meslener et al) describes a system for detecting the occurrence of errors in the transmission of phase-encoded data. The particular form of encoding described in this specification is digital diphase, and the error detection (or decoding) technique involves storing both the received signal and a delayed replica thereof, and sampling the two signals in such a way as to generate an error-detected signal. A more-relevant piece of prior art is GB-A-2 007 944 (Precision Mecanique Labinal), which discloses a decoder for phase-encoded data using a local clock driven at a frequency considerably higher than the encoding clock so as to ascertain in which half of a bit period occurs a transition corresponding to receipt of a bit of predetermined value. The present invention aims at providing a completely-digital decoder for phase-encoded data which uses a local clock to classify the transitions between the binary states into valid transitions, representing data etc., and invalid transitions representing spurious signals, and which generates a decode signal distinguishing between valid and invalid transitions. Accordingly the present invention provides a phase-encoded data decoder which is as claimed in the appended claims. In order that the invention may be more readily understood, reference will now be made to the accompanying drawings, in which: Figure 1 is a schematic block diagram of a data communication system incorporating a phase decoder of the present invention; Figure 2 is a more detailed block diagram of one of the workstations depicted in Figure 1; Figure 3 is a schematic block diagram of the phase decoder shown in Figure 2; Figure 4 is an exemplary waveform of the phase - encoded serial data received by the phase decoder of Figure 3; Figures 5 and 6 are a diagram and table, respectively, showing the relationship between the outputs of the counter and ROM of Figure 3; Figure 7 is a schematic block diagram of the receiver control circuit depicted in Figure 2; Figure 8 is a table showing the relationship of the inputs to the outputs of the receiver control circuit of Figure 7; ; Figure 9 is a schematic diagram, partly in block form, of the phase encoder depicted in Figure 2; Figure 10 is a schematic block diagram of the transmitter control circuit depicted in Figure 2; and Figure 11 is a table showing the relationship of the inputs to the outputs of the transmitter control circuit of Figure 10. Referring to Figure 1, a data communication system is shown comprising a plurality of workstations 10 and 12 (only two shown for simplicity). Each workstation 10 and 12 is connected to a transceiver 16 and 18, respectively, for transmitting phase - encoded digital data onto and receiving such data from a communication link 14, such as a coaxial cable. In this respect each transceiver 16 and 18 is connected to the cable 14 by means of a tap 20 and 22, respectively, and coupling lines 24 and 26, respectively. Representation of the communicating link 14 as a coaxial cable is merely by way of example, as the invention is equally well suited for transmission and reception over any communication link. The nature of the transceivers 16 and 18 would, of course, have to be tailored to the specific type of link employed. Whatever the link the intention is to be able to communicate encoded digital data among a plurality of workstations, such as stations 10 and 12, which may be either in the same room, same building, different buildings, and even different cities, depending upon the nature of the communicating link and associated transceivers 16 and 18 employed. In fact, there may be a whole host of different links interconnected by "repeaters" (not shown), whose primary function would be to accept phase encoded digital data communicated on one link and transfer those data onto another link which may be of the same or different type. Thus, it is not essential that workstations 10 and 12 be connected to the same communicating link, or even the same type of communicating link, so long as appropriate repeaters are employed. One type of repeater that may be employed in the system of Figure 1 is disclosed in U.S. Patent NO.4,099,024. Referring now more specifically to the workstations 10 and 12 as depicted in Figure 1, the transceivers 16 and 18 each receive incoming encoded digital data from the medium 14 along lines 24 and 26, respectively. These incoming data are applied as a PDINPUT signal to respective interface circuits 28 and 30. Each interface circuit 28 and 30 includes means to be described below for decoding the incoming serial data and converting them into parallel format for application over a respective I/O bus 32 and 34 to a respective using device 36 and 38. The using devices 36 and 38 may be the same or different type devices, each capable of using the received data. For example, the using devices may be data processors, word processors or personal computers. Each interface circuit 28 and 30 further includes means also to be described below for generating a two-bit PDEVENT signal indicative of the character of the incoming data as well as a single - bit PDCARRIER signal which, when true, indicates that the communicating link 14 is in use. A true PDCARRIER signal is interpreted by the transmit control circuitry in the respective interface circuit to prevent the initiation of a transmission by the associated transceiver 16 and 18. The specific manner by which the interface circuit prevents the initiation of a transmission will be described below. Referring now to the manner by which each workstation 10 and 12 transmits encoded digitial data onto the communicating link 14, each using device 36 and 38 initiates an intended transmission by forwarding non encoded digital data in bit-parallel format over the respective I/O bus 32 and 34 to the respective interface circuit 28 and 30. Each interface circuit 28 and 30 includes means to be described below for converting the parallel data into serial data and then phase-encoding such data for application as a PEOUTPUT signal to the respective transceiver 16 and 18. Each using device 36 and 38 also generates a pair of LOAD signals which are applied to the respective interface 28 and 30 to control the loading of data between such interface and the respective I/O busses 32 and 34, as will be discussed below. Referring to Figure 2, a typical workstation will be described with reference to workstation 10 depicted in Figure 1. As shown, the transceiver 16 includes a driver or transmitter 44 and a receiver 46. The inlet of the receiver 46 is connected to the input-output line 24 and to the outlet of the transmitter 44. In this manner, the receiver 46 receives not only incoming encoded digital data from the communicating link 14, but also the encoded digital data transmitted by the transmitter 44 onto the medium 14. It is thus possible, as will be described below, for the workstation 10 to detect a collision on the link 14 between the signal being transmitted by the transmitter 44 and another signal received by the receiver 46 from another workstation's transceiver. The encoded digital data capable of being transmitted and received by the workstations 10 and 12 are preferably "Bi-Phase - L" encoded which satisfies certain basic rules as depicted in Figure 4 and 5. As shown in Figure 4, there is a data transition 48 once per bit cell a.nd.jts direction (low-to-high equals one) is the value of the bit. Midway between these data transitions 48, there may be a "setup" transition 50 to get into position for the next data transition. More specifically, if it is desired to transmit the code "10011", it would be necessary to have set-up transitions in the second and fourth bit cells, as shown in Figure 4. Thus, whenever it is necessary to generate two successive bits of the same state, it is necessary to generate a set-up transition mid-way between the two data transitions. In phase encoding, a bit cell may be though of as extending from one data transition to another, with possible set-up transitions in the middle. Alternatively, it may be thought of as centered on the data transition, with the set-up transitions occurring at the bit cell boundaries. Both conventions may be used. More specificially, when think about phase decoding, data transitions may be considered as occurring at the bit cell boundaries, but when thinking about phase encoding, they may be considered as occurring in the center of bit cells. All data are transmitted in "packets". Each packet begins with a one - bit which is called the "start bit". Packets end when no transitions are detected for more than 1.5 bit times and no incoming data are received from the communicating medium 14. Transmitters "jam" the communicating medium 14 with a continuous high level signal (no transitions) for several bit times after detecting a collision. Collisions are of four types, i.e., (1) too many transitions, in which two transitions occur within 0.25 bit times (2) too few transitions, in which a transition occurs between 1.25 and 1.5 bit times after the last one, (3) end-of-packet (EOP), in which no transitions occur for more than 1.5 bit times and no incoming data are received from the communicating medium 14, and (4) jam, which is the same as EOP, except that the communicating medium 14 will be at a continuous high level for several bit times, as indicated above. Of course, a type (3) collision (EOP) is normal at the end of a good packet, and a type (4) collision (jam) is normal at the end of a packet that contains a type (1) or (2) collision. They are all violations of the encoding rules. Continuing now with a description of Figure 2, the outlet of the receiver 46 is connected to the data inlet of a phase decoder 52 for supplying phase-encoded digital data (PDINPUT) received from the medium 14 to the phase decoder 52. The phase decoder also receives a clock signal (8XCLK) from a clock circuit 54. The clock signal 8XCLK preferably has a frequency eight times that of the basic bit rate of the phase-encoded data as defined by a 1XCLK clock signal generated by the clock circuit 54. A third clock signal 2XCLK is also generated by the clock circuit 54. Both clock signals 1XCLK and 2XCLK are supplied to the transmitter portion of the interface circuit 28 for reasons to be described below. In the preferred embodiment the basic bit rate or frequency of the 1XCLK signal is 2.94 Megahertz (340 ns period), the frequency of the 2XCLK signal is 5.88 Megahertz (170ns period), and the frequency of the 8XCLK signal is 23.53 Megahertz (42.5 ns period). The primary purpose of the phase decoder 52 is to identify the character of the received data i.e. to decode the data. The manner in which it does this will be described below. At this time, however, it should be noted that the phase decoder 52 generates a PDCARRIER signal whenever the communicating medium 14 is in use by the subject transceiver 16 or by the transceiver of another workstation communicating on the medium 14. The phase decoder 52 also generates a two-bit PDEVENT signal identifying the character of the incoming data. In the preferred embodiment the PDEVENT signal signifies the following characterizations of the incoming data: PDEVENT Meaning 00 No Event 01 Collision 10 Data Zero (0) 11 Data One (1) The PDCARRIER and PDEVENT signals are supplied from the phase decoder 52 to respective inlets of a receiver control circuit 55. The receiver control circuit 55 also receives as inputs the 8XCLK signal from the clock circuit 54 and an SRFULL signal from a shift register 58. The SRFULL signal will be true whenever the next bit shifted into shift register 58 will make it full. Whenever the PDEVENT signal indicates a collision, i.e., "01", the receiver control circuit 55 generates a true COLLISION signal which is applied to an inlet of a transmitter control circuit 57 for a purpose to be described below. Further, whenever the PDEVENT signal indicates a data zero or data one, i.e., "10" or "11", an RXDATA signal is respectively made low or high, such signal being applied to the data inlet of the shift register 58. The receiver control circuit 55 also generates a two-bit RXSRCTRL signal to control the operation of the shift register 58, as will also be described below. The shift register 58 is preferably 16-bits in length and is thus capable of converting the incoming serial data stream (RXDATA) into 16-bit words, which are supplied in bit-parallel format along a bus 60 to an input buffer register 62. The input buffer register 62 loads the parallel data from the shift register 58 onto a main I/O bus 32 for application to the using device 36. This load operation is controlled by the state of a LOAD control signal from the using device 36 along a line 40. Still referring to Figure 2, the manner in which digital data is phaseencoded for transmission onto the medium 14 will be described. First nonencoded digital data to be transmitted are forwarded by the using device 36 in bit-parallel format (16-bit words) over the I/O bus 32 to an output buffer register 66. When instructed by a LOAD control signal from the using device 36 along a line 42, the-bufferregister 66 loads a 16-bit word from the I/O bus 32 onto a bus 68 for application to a shift register 70. The shift register 70 has the 8XCLK signal connected to its clock inlet and is, therefore, clocked at the 23.53 Megahertz bit rate. A two-bit TXSRCTRL control signal from the transmitter control circuit 57 is applied to the control inlet of the shift register 70 for controlling the operation thereof in a manner to be described below. The shift register 70 generates an SREMPTY signal which is true when the shift register 70 has shifted 15 times so that the bit at its serial output is the last valued bit. The SREMPTY signal is applied to the transmitter control 57 for notifying the latter of that condition. The data outlet of the shift register 70 is connected to the data inlet of the phase encoder 56 for supplying a nonencoded serial TXDATA signal thereto. The phase encoder 56 is clocked by all three clock signals (1XCLK, 2XCLK and 8XCLK) in a manner by which the TXDATA signal supplied thereto from the shift register 70 is encoded in accordance with the "Bi Phase-L" encoding principles discussed above in connection with Figures 4 and 5. The phase encoder 56 also receives a TXGO signal from the transmitter control circuit 57 which, when false, effectively prevents the initiation of a transmission or interrupts an ongoing transmission. The phase encoder 56 further receives a STARTBIT (SB) signal from the transmitter control circuit 57 which will be true at the start of a packet and false after receipt of the first GOTBIT signal. Each time the phase encoder 56 receives a bit of TXDATA from the shift register 70, it informs the transmitter control circuit 57 of this condition by generating a true GOTBIT (GB) signal for one 8XCLK period, which is supplied to an inlet of the transmitter control circuit 57. The transmitter control circuit 57 will generate a false TXGO signal for application to the phase encoder 56 whenever the PDCARRIER signal applied to the circuit 57 from the phase decoder 52 goes true prior to the initiation of a transmission by the interace 28 and transmitter 44. Such a true PDCARRIER signal indicates the receipt by the receiver 46 of a signal from another workstation. Additionally, the TXGO signal will go false whenever the COLLISION signal applied to an inlet of the transmitter control circuit 57 from the receiver control goes true, signifying that a signal from another workstation was received during the time the interface 28 and transmitter 44 were transmitting a signal onto the medium 14. Looking at it another way, in order to begin transmitting i.e., to generate a true TXGO signal, all of the following conditions must hold: (1) The using device 36 must have given its permission to transmit by generating a true TRANSMIT ENABLE signal (2) the communicating medium must not be in use, i.e., the PDCARRIER signal generated by the phase decoder 52 must be false, and (3) there must be data available to transmit, i.e., at a minimum the shift register 70 must contain a word. Further in order to continue a transmission, i.e., to continue TXGO at a true value, none of the following conditions must hold: (1) the using device 36 revokes permission to transmit by setting TRANSMIT ENABLE to false, (2) a collision is detected, and (3) internal consistency checks in the transmitter portion of the interface 28 indicate a hardware failure. Whenever the transmitter control circuit 57 issues a false TXGO signal, it also issues a true TRANSMIT DISABLED signal, which is applied from an outlet of the circuit 57 to the using device 36 to notify the latter of that condition. The using device 36 will then change the state of the TRANSMIT ENABLE signal from true to false that it applies to an inlet of the transmitter control circuit 57. Whenever the TRANSMIT ENABLE signal is false, the transmitter control circuit 57 is constrained to issue a false TXGO signal to the phase encoder 56 with the results discussed above. Thus, if the using device 36 simply wanted to abort an ongoing transmission even though no collision occurred, it could issue a false TRANSMIT ENABLE signal. It will be appreciated that the changing of states of the TRANSMIT ENABLE signal from true to false, due to a disablement of transmission (future or ongoing) by the transmitter control circuit 57 and notification thereof to the using device by the issuing of a true TRANSMIT DISABLED signal, occurs later in time than the initial disablement. However, it provides a reliable back-up disablement. Additionally, and as pointed out earlier, the TRANSMIT ENABLE signal can be changed back to a true state after a random time delay generated internally by the using device 36, even though, for example, the PDEVENT signal may have changed form a collision state (01) to a data state (10). The use of a random time delay feature reduces the likelihood of repeated future collisions. An exemplary random time delay circuit for a using device is disclosed in the aforementioned U.S. Patent No.4,063,220. Reference is now made to Figure 3 where the phase decoder 52 will be described in more detail. As shown, the phase decoder 52 includes three input flip-flops 72, 74 and 76 connected in series, with the inlet of flip-flop 72 connected to the outlet of receiver 46 (Figure 2) for receiving PDINPUT data therefrom, the inlet of flip-flop 74 connected to the outlet of flip-flop 72, and the inlet of flip-flop 76 connected to the outlet of flip-flop 74. All three flip-flops are clocked simultaneously by the 8XCLK signal applied at their clock inlets. The flip-flop 72 essentially serves as a synchronizer to synchronize the PDINPUT data to the rate of the 8XCLK signal. The flipflop 74 is essentially a dual function device, in that it serves a synchronizing function like flip-flop 72 and also develops a PDNEW signal that is applied to a read-only memor (ROM) 78 for comparison with a PDOLD signal developed at the outlet of the flip-flop 76 and also applied to the ROM 78. It should be noted that the PDNEW and PDOLD signals represent successive samples of PDINPUT data. When they differ, PDINPUT has changed within the last sample interval. The new value of PDINPUT is PDNEW and the old value is PDOLD. The phase decoder 52 also includes a digital counter 80 which is capable of counting to 16 and can be reset by a CNTCTRL command signal generated at an outlet of the ROM 78. The counter 80 is clocked by the 8XCLK signal from the clock circuit 54 (Figure 2) as applied to its clock inlet. Inasmuch as the counter 80 is a 16-bit counter, it has four outputs, i.e., PDCNTO, PDCNT1, PDCNT2 and PDCNT3, which are applied to respective inlets of the ROM 78 along with the PDNEW signal from the flipflop 74 and the PDOLD signal from the flip-flop 76. The ROM 78 also receives as an input the PDCARRIER signal fedback from the outlet of a flip-flop 82 which is connected to an outlet of the ROM 78. The ROM 78 is capable of providing four different output signals at respective outlets thereof, i.e., PDCARRIER, PDEVENTO, PDEVENT1 and CNTCTRL. As indicated above, the CNTCTRL signal is applied to the reset inlet of the counter 80 for resetting same. The PDCARRIER signal is applied to the inlet of aflip-flop 82 which is latched at the occurrence of the next BXCLK pulse applied at its clock inlet thereby to present the PDCARRIER signal at the outlet of flip-flop 82. Likewise, the PDEVENTO and PDEVENT1 pulse signals are applied to the inlets of a respective pair of flip-flops 84 and 86 and are manifest at the outlets of such flip-flops when clocked by the next occurring 8XCLK signal pulse. The operation of the digital phase decoder 52 will now be described with reference to Figures 3-6. Let us assume that no signal has yet been applied to the phase decoder 52 and thus the outputs of flip-flops 72, 74, 76, 82, 84 and 86 are all binary zero. Now then, assume the phase-encoded signal PDINPUT depicted in Figure 4 is applied to the inlet of flip-flop 72. Since this signal is free of collisions or illegal transitions, it must indicate either that only the transmitter 44 is transmitting onto the medium 14, since the transmitted signal will be received by the receiver 46, or that only another workstation is communicating on the medium 14, such signal also being received by the receiver 46. At the first occurring BXCLK pulse, the low-to-high (binary 1) transition of the PDINPUT signal of Figure 4 is latched onto the outlet of flip-flop 72. At the second 8XCLK pulse, the flip-flop 74 will latch the binary 1 signal at its outlet. At this moment PDNEW will charge from binary 0 to binary 1, whereas PDOLD will remain binary 0. This condition signifies the start of a packet, as indicated in Figure 6. In response, the ROM 78 is programmed to raise the CNTCTRL output thereby resetting the counter 80. Additionally, the PDCARRIER Output of the ROM 78 is raised, so that the PDCARRIER signal at the outlet of flip-flop 82 will go true at the next 8XCLK pulse, i.e., the flip-flop 82 will be latched at the next 8XCLK pulse. In addition to raising the PDCARRIER and CNTCTRL outputs, the PDEVENT0 and PDEVENT1 output lines are both raised, signifying a binary 1 bit of data received. At the next 8XCLK pulse, the outputs of flip-flop 84 and 86 will reflect this condition. The PDEVENTO and PDEVENT1 output lines will remain high for only one 8XCLK period and will then revert to the "00" state, i.e., "NO EVENT". With continued reference to the PDINPUT signal of Figure 4, the counter 80 will continue to count up to count 7 (Figure 5), at which time the PDNEW signal will go low with the PDOLD signal still high, since the next data transition will occur at the boundary of the next bit cell. The ROM 78 is programmed to interpret this condition as a data transition and to maintain the PDCARRIER output line raised (binary 1). Additionally, it will again reset the counter 80 by raising the RESET output. Further, it will change the state of the PDEVENT0 line from binary 0 to binary 1, as shown in Figure 6. Thus, the PDEVENT signal (10) will signify that the data transition was a binary 0. It will be appreciated that the ROM 78, among other functions, is performing an exclusive -OR function relative to the PDNEW and PDOLD inputs. That is how it detects the occurrence of a transition. By then looking at the value of the count from counter 80, it can ascertain whether the transition was a valid data or set-up transition, or an invalid transition ("collision"). The ROM program is set out in table form in Figure 6. As a result of dispersion in the communicating medium 14 and a- symmetric rise and fall times in the logic circuitry of the workstation 10, transitions may "jitter", i.e., not occur at precisely the expected time. The phase decoder 52 tolerates +12.5% jitter, as well as a +25% difference in speed between a transmitter and this receiver, as shown in Figure 5. As a result of this relationship, any transition that occurs the first two 8XCLK periods following a data transition 48 is an invalid transition or collision; any transition that occurs the third through fifth 8XCLK periods following a data transition 48 is a set-up transition 50; any transition that occurs the sixth through tenth 8XCLK periods following a data transition is a data transition 48; and any transition that occurs the eleventh through sixteenth 8XCLK period is an invalid transition and is deemed a collision. These rules are depicted in Figures 5 and 6. In response to an invalid transition, such as one occurring at a count of 1 by counter 80 (too many), the ROM 78 will generate a PDEVENT = 01 condition signifying a collision. The collision may be actual, i.e., a signal from another workstation was received during the time the transmitter 44 was transmitting, or only noise. Nevertheless, both are treated as collisions with the same results. The PDEVENT = 01 signal is supplied to the receiver control circuit 55 (Figure 2). which then generates a true COLLISION signal for disabling the phase encoder 56 in the manner described above. Upon such disablement, by issuing a false TXGO signal to the phase encoder 56, the transmit control circuit 57 also issues a true TRANSMIT DISABLED signal to the using device 36. The using device 36 will then turn off the TRANSMIT ENABLE signal, -so that a retransmission can begin only when the PDEVENT = 01 condition changes and the using device 36 turns back on the TRANSMIT ENABLE Line after a random time delay to reduce the probability of repeated collisions. Further, when the transmitter 44 is not transmitting and the receiver 46 nonetheless receives a signal from another workstation, the PDCARRIER signal will disable the phase encoder 56 from initiating a transmission, as explained above. Referring to Figure 7, the receiver control circuit 55 depicted in Figure 2 will be described. As shown, the circuit 55 includes a ROM 90 having eight input lines as follows: (1)-(3) STATE - A three-bit signal developed at respective outlets of the ROM 90, latched in respective output flip-flops 92, 94 and 96, and fedback to respective inlets of the ROM 90 The variousstates and their significance will be described below. (4) COLLISION - This signal is developed at an output of the ROM 90, latched in a flip-flop 98, and fedback to a respective inlet of the ROM 90. The COLLISION signal will be true when the PDEVENT signal indicates a collision ("01"). It is fedback to an inlet of the ROM 90 to inform the latter if a collision occurred anytime during the transmission of a packet. (5) PDCARRIER - This signal is supplied from the outlet of the phase decoder 52. (6)-(7) PDEVENT - This two-bit signal is supplied from respective outlets of the phase decoder 52. (8) SRFULL - This signal is supplied from the shift register 58 to inform the ROM 90 when the next bit shifted into shift register 58 will make it full. In addition to the four output lines from ROM 90 just discussed the ROM 90 also generates the RXSRCTRL signal and the RXDATA signal at respective outlets. These signals are latched in flip-flops 100 and 102, respectively, for application to the shift register 58, as explained above. All six flip-flops 92-102 are latched by the 8XCLK signal applied to their respective clock inlets. Since the RXSRCTRL signal is a two-bit signal, there are really two separate flip-flops 100 and respective output lines. Only one is shown for simplicity. A presently preferred program for ROM 90 is set forth in table form in Figure 8, where each of the various "states" are identified and will now be described as follows: (1) IDLE - In this state, the beginning of a packet is being awaited. (2) MAYBE - In this state, the first part of a packet is being processed. No data have yet been loaded into the input buffer register 62 (Figure 2). (3) FULL - In this state, the end of a word of PDINPUT data is being processed. (4) IMIP - In this state, the middle of a word of PDINPUT data is being processed. It should be noted that the symbol "-"in Figure 8, as well as in Figure 11 to be discussed below, means "don't care", i.e., the signal is ignored for the particular row. Additionally, the symbol "+" in Figure 8 appears only in the COLLISION signal columns and means that if the COLLISION signal input was true, then the COLLISION signal output is true, and that if the COLLISION signal input was false, then the COLLISION signal output is false. Turning now to the transmitter portions of the interface 28, a phase encoder 56 will be described with reference to Figure 9. As shown, the phase encoder 56 includes an AND-gate 110 having one inlet connected to the data outlet of the shift register 70 (Figure 2) for receiving the STARTBIT or TXDATA signal therefrom, as wire-ORed at point 103, and another inlet connected to the clock circuit 54 (Figure 2) for receiving the 1XCLK therefrom. The,outlet of the AND-gate 110 is wire-ORed at point 105 with the outlet of an inverter 104 and is also wire-ORed at point 107 with the outlet of an inverted-input AND-gate 106. As so wire-ORed, the output of the AND-gate 110 is applied to the data (D) inlet of a D flip-flop 108. The Q outlet of the flip-flop 108 is connected to one inlet of gate 106 and a second inlet of gate 106 is connected to the 1XCLK line from the clock circuit 54. The clock (C) inlet of the flip-flop 108 is connected to the clock circuit 54 for receiving the 2XCLK therefrom. The PEOUTPUT signal of the phase encoder 56 is developed at the Q outlet of the flip-flop. The inlet of the inverter 104 is connected to the Q outlet of another D flip-flop 112, the data inlet of which is connected to the transmitter control circuit 57 (Figure 2) for receiving the TXGO signal therefrom. The clock inlet of the flip-flop 112 is connected to the 1XCLK line from the clock circuit 54. The Q outlet of the flip-flop 112 is also applied to one inlet of a NAND-gate 130, a second inlet of which is also connected to the 1XCLK line from the clock circuit 54. The outlet of the gate 130 is applied to the data inlet of yet another D-C flip-flop 132, the clock inlet of which is connected to the clock circuit 54 for receiving the 2XCLK signal therefrom. The Q outlet of the flip-flop 132 is connected to the J inlet of a J-K flip-flop 134. The clock inlet of the flip-flop 134 is connected to the 8XCLK line from the clock circuit 54 and the GOTBIT signal generated by the phase encoder 56 is developed at the Q outlet of the flip-flop 134. The GOTBIT signal, in addition to being applied to the transmitter control circuit 57 is also fedback to the set inlet of the flip-flop 132. The Q output of the flip-flop 134 is fedback to the K' inlet thereof. In describing the operation of the phase encoder 56, the basic rule for phase encoding should be recalled, i.e., to transmit the complement of the bit value during the first half of a bit cell, and then to send the true value of the bit during the second half. Now then, let us first consider what happens in the middle of an infinite string of bits. During the last quarter of the preceding bit cell and the the first quarter of / current bit cell, the 1XCLK signal is true, enabling gate 110, which passes TXDATA to the D inlet of flip-flop 108, which clocks it on the rising edge of the 2XCLK signal. Since PEOUTPUT is the Q-bar output of the flip-flop, it will have the complement of the data value of the bit during the first half of the bit cell. During the middle two quarters of the current bit cell, the 1XCLK signal is false, enabling gate 106, which passes the complement of PEOUTPUT to the D inlet of flip-flop 108, which looks at it on the rising edge of the 2XCLK signal, at the midpoint of the bit cell. This complements the current value of the flip-flop which is already the complement of the bit value so the true value of the bit is sent during the second half. Now we have to worry about starting and stopping a transmission without generating any partial bits (sometimes referred to in the art as "runts" or glitches"). It should be noted that forcing a high onto point 107 will override whatever gates 106 and 110 are doing and force flip-flop 108 always to clock in a high, and thus PEOUTPUT will always be low (i.e., off). Note also that flip-flop 108 is clocked twice per bit cell. To shut down the phase encoder 56, we must force a high at point 107 after the clock in the middle of the bit cell, and before the clock at the end of the bit cell (which is also the clock at the beginning of the next bit cell which we don't want to transmit in). To start it up, we must remove the forced high during the same time window. If we change it during the first half of a bit cell, we will generate a half bit "runt". To avoid "glitches", we must not change the D input of flip-flop 112 near the time when a rising edge occurs at its clock inlet. Looking around for a signal with these properties, we find that the lXCLK signal is just what we need. It has a rising edge (for a clock that's usually when the action takes place) 3/4 of the way through a bit cell, i.e., 1/4 of a bit cell after flip-flop 108 has complemented its output for the second half, and 1/4 of a bit cell before it will clock in the (complemented) value of the next bit. That rising edge is in the required window, and far away from the rising edges of the 2XCLK signal. Thus, flip-flop 112 samples TXGO on the rising edge of the 1XCLK signal. Its output forces a high at point 107 to stop the phase encoder 56, or a low to start it, and this signal changes only at times when a whole bit cell will be encoded. Inverter 104 isolates what is going on at point 107 from what is going on at the input to gate 130. Now we must generate the GOTBIT signal. This signal must go true for one cycle of the 8XCLK signal after flip-flop 108 loads a data bit. It tells ROM 114 (Figure 10) in the transmitter control circuit 57 that the current bit has been taken and flip-flop 108 won't be looking at TXDATA for a while. This signal must get to ROM 114 in time for it to shift the next bit into position (or parallel load if the last bit emptied the shift register 70) before flip-flop 108 looks again. This will be 340 ns, or one bit time after it looked at the last bit. The rising edge of the 2XCLK signal while the 1XCLK signal is high is the instant when TXDATA is sampled, if the phase encoder is enabled. The output of gate 130 goes low when the 1XCLK signal is high and the phase encoder is enabled; and this is clocked into flipflop 132 by the rising edge of the 2XCLK signal. Thus, the Q output of flipflop 132 goes low at the beginning of each bit cell in which the phase encoder is active, and at the same instant the phase encoder flip-flop 108 samples the next data bit. This level is fed into flip-flop 134, and one 8XCLK period later it sets flip-flop 134, which instantly resets flip-flop 132 (which is now ready to repeat its mission long before it will be called on). The next tick of 8XCLK will reset flip-flop 134 because of the feedback from its Q' outlet to its K inlet. Thus, the GOTBIT signal goes high for one cycle of the 8XCLK signal, one 8XCLK period after flip-flop 108 samples TXDATA. This leaves 3/4 of a bit time (255 ns) for the ROM 114 (Figure 10) and the shift register 70 to get ready. Referring to Figure 10, the transmitter control circuit 57 depicted in Figure 2 will be described. As shown, the circuit 57 includes the ROM 114 having eight input lines as follows: (1)-(3) STATE - A three-bit signal developed at respective outlets of the ROM 114, latched in respective output flip-flops 116, 118 and 120, and fedback to respective inlets of the ROM 114. The various states and their significance will be described below. (4) SREMPTY - This signal is developed at the outlet of the shift register 70 and is true when the register has shifted 15 times so that the bit at its serial output is the last valid bit. (5) COLLISION - This signal is developed at the outlet of the receiver control circuit 55 and is true when the PDEVENT signal is "01", signifying a collision. (6) PDCARRIER - This signal is developed at the outlet of the phase decoder 52 and is true when the communication medium 14 is in use. (7) GOTBIT (GB) - This signal is developed at the outlet of the phase encoder 56 for reasons just described. (8) TRANSMIT ENABLE - This signal is developed by the using device 36 and is false when a transmission is to be disabled or delayed, as explained above. In addition to the three STATE Output lines from the ROM 114, the ROM 114 also develops the TXGO, STARTBIT (SB) and TXSRCTRL signals referred to earlier. These signals are latched in respective output flip-flops 122, 124 and 126 and then forwarded to the phase encoder 56 (TXGO and SB) and the shift register 70 (TXSRCTRL). All six flip-flops 116-126 are latched by the 8XCLK signal applied to their respective clock inlets. Actually, and as with the case of the RXSRCTRL signal, the TXSRCTRL signal is a twobit signal, and thus there are really two flip-flops 126 and associated output lines. Again, only one is shown for simplicity. A presently preferred program for ROM 114 is set forth in table form in Figure II, where each of the various "states" is identified and will now be described as follows: (1) IDLE - In this state, the transmitter is shut down. (2) MARK - In this state, the STARTBIT output line is raised to "wire-OR" a binary one with the TXDATA signal input to the flip-flop 108 (Figure 9). (3) DATA - In this state, data loaded into the shift register 70 from the using device 36 via the output buffer register 66 are forwarded to the phase encoder 56.

Claims: CLAIMS 1. A digital phase decoder (52) for phase-encoded data transmitted as a train of bitcells, each of constant duration, and including means (72) for synchronising the received data with a local clock (54) which goes through several cycles during the passage of each bitcell; characterised by means (74, 76) coupled to the synchroniser (72) for developing a pair of output signals indicative of a transition of the received data from one binary state to the other; means (78, 82, 84, 86) coupled to the developing means for generating a decode signal representative of one of several different transitions, and means (80) for counting the number of clock intervals from the beginning of the respective bitcell to the transition, of which the relative timing indicates if the transition is valid, e.g. is datum bearing, or invalid, representing a collision or other fault condition. 2. A decoder as claimed in claim 1, in which another type of valid transition is a set-up transition to precondition the decoder to respond correctly to the second or later of two or more successive like bits. 3. A phase-decoder as claimed in claim 1 or 2, in which the frequency of the bitcells is one-eighth the frequency of the local clock signal. 4. A phase-decoder as claimed in any preceding claim, in which the decode signal generator is adapted to reset the counting means after the respective decode signal has been produced. 5. A phase-decoder as claimed in any preceding claim, in which the decode signal generator produces an end-of-packet signal when the transitional state of the synchroniser output signals both remain in a designated binary state for a predetermined period without change.

Inventors: BOGGS, DAVID R., METCALFE, ROBERT M.
Applicants: XEROX CORPORATION
Application year: 1981
Main classification: H04L25
IPC codes: H04L12, H04L25