Abstract:
A technique for regulating the transmission of messages initiated simultaneously by a plurality of nodes of a network, in which clock intervals are established for the network, a sequence of digital values is included in each message and is transmitted to the medium at the rate of one digital value per clock interval, the sequences included in messages that are initiated at the same time by more than one node are transmitted in the same sequence of clock intervals, the presence on the medium of a selected digital value during any clock interval in which a node is transmitting a different digital value within the sequence of a message is detected, and the transmission of the message is interrupted by the node upon such detection, without corrupting another node&#39;s transmission.

Description:
BACKGROUND OF THE INVENTION 
     This invention is a continuation-in-part of U.S. patent Application Ser. No. 753,183, filed July 9, 1985 now abandon. 
    
    
     This invention relates to synchronous digital communications networks in which a number of transceiver nodes communicate with each other over a medium. 
     Various techniques have been developed for monitoring traffic on such a network and regulating the transmission of messages from the various nodes in such a way as to avoid collisions in the medium. 
     SUMMARY OF THE INVENTION 
     A general feature of the invention is a technique for regulating the transmission of messages initiated simultaneously by a plurality of nodes of a network, in which clock intervals are established for the network, a sequence of digital values is included in each message and is transmitted to the medium at the rate of one digital value per clock interval, the sequences included in messages that are initiated at the same time by more than one node are transmitted in the same sequence of clock intervals, the presence on the medium of a selected digital value during any clock interval in which a node is transmitting a different digital value within the sequence of a message is detected, and the transmission of the message is interrupted by the node upon such detection. 
     Preferred embodiments include the following features. The different digital value is coded as an energy-free clock interval and the selected digital value as an energy-containing clock interval, and each node listens for energy on the medium during each clock interval in which it is transmitting no energy during transmission of a sequence. The messages comprise digital (e.g., binary) values transmitted at the rate of one per clock interval. The sequence is unique (i.e., is a source address of) the node initiating the transmission of the message. The binary values are converted into a format where one binary level is represented by a pulse, during a clock interval, that has a transition of a carrier signal from low to high and then from high to low during some part of the clock interval, and the other binary level is represented by the carrier signal level remaining low during an entire clock interval. The pulse is transmitted as a burst of RF energy, and the transmitter is disabled during clock intervals when the carrier signal level remains low. The clock intervals are derived in each node from messages received from the network, except when the node is attempting to transmit. 
     Preferred embodiments also include the following features. The sequence of values included in each message are indicative of a predetermined relative priority of the message. At least a portion of the sequence is unique to the node and represents a predetermined relative priority of messages sent by the node. The messages fall into a plurality of categories having different priorities, and the sequence includes two portions, one of which is unique to the node, the second of which is not unique to the node and indicates the priority category of the message. The second portion includes one segment indicative of the priority category of the message, and a second segment indicative of subpriorities of the messages within at least one of the priority categories. The subpriorities are dynamically allocated. 
     Simultaneously commenced transmissions from more than one node are detected and all but one of the transmissions are aborted without loss of information. Synchronization of all nodes on the network is maintained so long as transmissions occur with sufficient frequency. Prioritization permits efficient use of network bandwidth. 
     Other advantages and features of the invention will become apparent from the following description of the preferred embodiment, and from the claims. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     We first briefly describe the drawings. 
     DRAWINGS 
     FIG. 1 is a diagram of a communications network. 
     FIG. 2 is a block diagram of one node of the network. 
     FIGS. 3 and 4 are timing diagrams relating to the operation of each node. 
     FIG. 5 is a chart of the bits of a message packet. 
     FIGS. 6, 7 are examples of preambles of conflicting message packets. 
    
    
     STRUCTURE 
     Referring to FIG. 1, network 10 consists of a number of transceiver nodes 12, communicating with each other through the radio frequency medium via antennas 14. 
     Each node 12 has (FIG. 2) a conventional data terminal 16 which transmits messages and instructions via control computer 17 to conventional universal synchronous receiver/transmitter 18 (&#34;USRT&#34;, Motorola 6854 ADLC) via system bus 20. USRT 18 transmits the messages (as packets) to antenna 14 through pulse generator 22 (which converts the signal format from non-return-to-zero (&#34;NRZI&#34;) transitions 24 to 2 μsec pulses 26, as described in more detail below) and RF section 30. Signals received by the antenna pass through RF section 30 and transition generator 40 (for format change from pulses 42 to NRZI transitions 44) to USRT 18. 
     Pulses 42 also set inhibit latch 50, which, when set, keeps one input of AND gate 56 low; AND gate 56 then in turn keeps the clear-to-send (&#34;CTS&#34;) input of USRT 18 low, inhibiting transmission from the USRT. The request-to-send (&#34;RTS&#34;) output of USRT 18 is connected to the other input of AND gate 56 and, when latch 50 is reset (by the data terminal ready (&#34;DTR&#34;) output of USRT 18 through inverter 58), can be asserted to raise CTS. 
     Clock 70 provides bit intervals defining clock pulses to USRT 18 and includes a phase lock loop for synchronizing the clock to received pulses 42. To that end, pulses 42 feed one input of AND gate 72, the other input of which is connected to RTS through inverter 74; the output of AND gate 72 thus provides a synchronizing pulse train to the phase lock loop except when RTS is high. 
     Outgoing message pulses are also sent to the receive input (&#34;RCV&#34;) of USRT 18 (which remains active while the USRT 18 transmits the first portion of each message) through diode 80 and transition generator 40. Diode 80 prevents received pulses 42 from entering the output of pulse generator 22. Diode 82 prevents transmitted pulses 26 from entering the output of RF section 30. 
     FIG. 3 shows the relationship between the NRZI and pulse formats. Successive bit intervals (equivalent to clock intervals) 100 are represented on the horizontal TIME axis. In the NRZI format the signal level undergoes a transition from high to low (e.g., at 102) or low to high (e.g., at 104), in any bit interval in which the binary value 0 occurs, and otherwise remains at the same level as in the preceding bit interval. In the pulse format, each NRZI transition, i.e., each binary value zero, is converted (by pulse generator 22) into a 2 μsec wide pulse 26. The absence of a transition in a bit interval, i.e., a binary value one, is represented by the signal level remaining low for a bit interval. Similarly, transition generator 43 converts received pulses 42 (FIG. 2) into NRZI transitions. Pulses 26 and 42 occur at the beginning of their respective bit intervals 100, which are each 10 μsec wide, so that 8 μsec are available for echoes to die out. 
     Antenna 14 and RF section 30 convert pulses into 2 μsec bursts of RF energy, and vice versa; the absence of a pulse 26, 42 corresponds to no RF energy during a bit interval. In any bit interval in which RF section 30 is not transmitting RF energy its receive portion is enabled to receive any incoming RF pulse that might be on the network; when RF section 30 is transmitting a pulse, its receiver is disabled. 
     Node 12 is arranged to include in each message packet to be transmitted a preamble that includes a unique 8-bit source address byte, so that each message on the network will have a preamble address unique to the node from which it originated. Two examples of such source addresses are shown in FIG. 4. The source address byte can have any value from 00000001 to 01111111. 
     Referring to FIG. 5, within the preamble 106, the source address byte 108 is preceded by an eight-bit priority and channel byte 110, which is in turn preceded by a standard eight-bit flag byte 112 (01111110) that indicates the beginning of the message packet. The source address byte 108 is followed by data 114. 
     Within priority and channel byte 110, the two least significant bits serve as priority bits 116 and the six most significant bits serve as channel bits 118. Note, however, that the least significant bits are actually transmitted first. 
     The priority bits 116 define the priority of the message according to its content as follows 
     
         ______________________________________Bit 1  Bit 0    Definition______________________________________0      0        Short Virtual Circuit Data Packet0      1        Long Virtual Circuit Data Packet1      0        All Virtual Circuit Control Packets1      1        All Datagram Data and Control Packets______________________________________ 
    
     The priority assignments are not unique to a given node. Higher priority is assigned to messages that are to be carried on so-called virtual circuits that require fast response time, for example, where editor software at a host location must immediately echo back characters entered on a terminal at a user location. Short virtual circuit data packets get the highest priority. Messages (and related control information) to be carried over so-called datagram channels have the lowest priority. 
     Referring again to FIG. 5, the channel bits 118 define addresses of datagram channels, and can have any value from 000001 to 111111. The address of a datagram channel is assigned at the time a node is connected into the network; the channels are dynamically assigned by software based on channel availability. Note that a datagram channel address is not necessarily unique to a node. 
     When the priority bits are other than 11, i.e., the message is not a datagram, all of the datagram channel bits are set to 0. 
     Operation 
     When data terminal 16 wants to transmit a message it instructs USRT 18 to assert RTS. The assertion of RTS disables the synchronizing mechanism of clock 70 and, if inhibit latch 50 has not been set by the reception of a pulse since the last assertion of DTR (that is, if there is no conflicting transmission already in progress), causes CTS to be asserted. (DTR is asserted momentarily upon the completed reception of a message or after a received pulse is determined to be noise.) In order to reset the inhibit latch. USRT 18 then indicates to data terminal 16 that CTS has been asserted, and data terminal 16 passes the message to USRT 18, which transmits the message, including that node&#39;s unique source address and the priority and channel byte 110 to antenna 14. The message, as it leaves the pulse generator, also travels through diode 80 and transition generator 40 to the receive input of USRT 18 where it is recorded in anticipation of a possible message collision. Antenna 14 emits bursts of RF energy corresponding to pulses in the outgoing message. 
     Assuming that the node just described has the source address shown at the top of FIG. 4, then in transmitting that source address, bursts of energy are emitted during the first two bit intervals. The receiver portion of RF section 30 in that node is disabled during these two bit intervals to prevent the node from receiving its own transmissions. During the third and fourth bit intervals no energy is transmitted and the receiver portion of RF section 30 is enabled, and so on. 
     If a second node, having the source address shown at the bottom of FIG. 4 (and having a priority and channel byte 110 that is identical to the priority and channel byte of the first node), begins transmitting a message packet simultaneously with the transmission by the first node, the collision is detected as follows. 
     The pulses transmitted by the second node for (a) those bit intervals of the priority and channel byte that are 0s, and (b) the first two bit intervals of the source address, are not received by the first node because the receiver portion of its RF section 30 is disabled. 
     During the third bit interval of the source address, neither node transmits a pulse so that although the receiver portion of the first node&#39;s RF section is enabled, it detects no energy. 
     During the fourth bit interval of the source address, only the second node transmits a pulse. The first node&#39;s receiver portion, now enabled, detects the burst of RF energy from the second node and emits a pulse 42 which simultaneously sets inhibit latch 50 and is converted to a transition by transition generator 40. 
     Setting inhibit latch 50 forces CTS low, and USRT 18 in the first node immediately ceases to transmit (while transmission from the second node proceeds). The transition generated by transition generator 40 is also received at the RCV input of USRT 18. Because the first three outgoing pulses from the first node were recorded and because the first three bits of the two source addresses are identical, the USRT now holds all of the first four bits of the source address of the incoming message; thus no information has been lost. USRT 18 continues to receive the incoming message, gathering it in 8-bit bytes and transmitting them to data terminal 16. During reception USRT 18 asserts neither RTS nor DTR. When the message has been completely received, data terminal 16 instructs USRT 18 to momentarily assert DTR, resetting inhibit latch 50. USRT 18 remains in the receiver state. Data terminal 16 then reattempts transmission of the aborted message. 
     Thus, simultaneously commenced transmissions are detected and one of the transmissions is aborted without loss of information. 
     An incoming message received while a node is idle is handled the same as one received during an outgoing transmission. 
     In the case when the priority and channel bytes of two conflicting messages are identical, the source address serves to establish a priority for service as between the conflicting messages. The source address that has the earliest 0 bit in the sequence which is not matched by a 0 bit in the other message&#39;s source address is the winner. 
     In a similar fashion, when the priority and channel bytes of conflicting messages are not identical, they define priorities for service. 
     For example, referring to FIG. 6, if nodes A, B, C, all begin simultaneous transmission of message packets that include identical priority bits (11) and include the indicated channel bits and source address byte, the priority for service is defined by the channel bits, and node B wins (because it has the earliest 0 bit (120) not matched by a 0 bit in either of the other message packets). 
     In another example, referring to FIG. 7, where nodes D and E send short virtual circuit packets and node F a long virtual circuit packet, the node F message will be eliminated as lower priority once bit 122 is reached. As between the node D and E messages, the source address will control priority. Node D will win at bit 124. 
     The priority established by the priority bits improves the efficiency of the use of bandwidth. 
     When reception of a message is complete, the clock of the receiving node is in phase with the clock of the transmitting node and the receiving USRT is in byte phase with the transmitting USRT. All other nodes in the network are also in clock phase and byte phase because they have all received the same message (but of course have discarded it if not addressed to them). Because all clocks are precision crystals, synchronization of all nodes will continue for a decay period lasting a few bytes. As long as transmissions occur regularly synchronism of all nodes is maintained. The time required to detect simultaneous conflicting transmissions is sufficiently brief so that the drift that occurs at the non-winning nodes is within clock tolerances. 
     To prevent received pulses that represent only noise from effectively blocking transmission by node 12, when the USRT asserts RTS, it waits to be interrupted either by CTS being asserted or, upon the running of a predetermined time period, by a timeout. If the CTS is asserted, transmission proceeds. If the timeout occurs, then USRT momentarily asserts DTR to reset the inhibit latch and waits further until either a message is received (indicating that another node is transmitting) or a second timeout occurs. The second timeout indicates that the inhibit latch had been set by the receipt of a noise pulse instead of a message pulse. Transmit is retried. 
     Other embodiments are within the following claims.