Abstract:
A communication system which includes a modem and a plurality of controllers has each controller connected to the modem by an interface apparatus, each controller and the modem complying with a predetermined protocol. The interface apparatus comprises a first component, a bus, which provides a medium to transfer signals between the controllers and the modem. A second component provides an arbitration path between said controllers. A first interface unit, which interfaces the modem to the bus, implements a modem-associated multi-state state machine and responds to signals on the bus maintaining the predetermined protocol between the modem and the first interface unit. A plurality of second interface units interface a corresponding controller to the bus. Each second interface unit implements a controller-associated multi-state state machine which responds to signals on the second component and further responds to signals from the corresponding controller, each second interface unit maintaining the predetermined protocol between the second interface unit and the corresponding controller.

Description:
RELATED PATENT APPLICATION 
     The present patent application is related to U.S. patent application, Ser. No. 07/363,843, entitled &#34;APPARATUS FOR PROVIDING MULTIPLE CONTROLLER INTERFACES TO A STANDARD DIGITAL MODEM AND INCLUDING MULTIPLEXED CONTENTION RESOLUTION,&#34; by T. Phinney and to U.S. patent application, Ser. No. 07/363,842, entitled &#34;APPARATUS FOR PROVIDING MULTIPLE CONTROLLER INTERFACES TO A STANDARD DIGITAL MODEM AND INCLUDING INTEGRAL CONFLICT RESOLUTION,&#34; by T. Phinney, both applications filed on even date herewith, and assigned to Honeywell Inc., the assignee of the present invention. 
     BACKGROUND OF THE INVENTION 
     This invention relates to a digital interface apparatus, and more particularly, to an apparatus for providing multiple controller interfaces to a standard digital modem, and includes a separate contention resolution. 
     In present communication systems utilizing a bus approach, which in particular conforms to IEEE standard 802.4-1989 section 10 (which is now also ISO DIS 8802/4 section 10-(1988)), each controller interfaces with a modem. In particular, controllers of the aforementioned communication systems could not share modems. Each controller interfaced with its corresponding modem. 
     Therefore, because of the relatively high cost of the modem, there is a need to reduce the number of modems employed in a communication system using the IEEE 802.4 standard. There is provided by the present invention an apparatus which permits multiple (token bus) controllers of the aforementioned communication systems to share a single modem. Further since the modem itself has an analog connection to a medium, there is created certain loads on the medium in terms of energy loading on the bus so that for a given system there is a limited number of ports for connecting the analog modem. By being able to share one analog modem across many digital controllers, there is effectively a multiplier placed in the system of how many devices can be connected. Without having to put repeaters in the analog line, a system is thereby created in which each analog port interfaces many digital controllers by sharing the modem. 
     A further feature of the present invention reduces the need to have fiber optic or coax cables to connect each device on the bus to every other device on the bus. In the present invention, because these signals are in the form of digital signals, printed wiring backplane or conventional multi-conductor ribbon cable and their associated connectors can be used for devices or modules within close proximity rather than having to utilize specialized fiber optic or coax connectors, and fiber optic or coax cables, respectively. Furthermore, the modem serves to isolate the devices or modules so that they can communicate with each other despite the presence of disabling faults elsewhere in the communications system. Also, for equipment within close proximity, the modems can be eliminated entirely (with a very minor modification), thereby reducing the cost, and still permitting the equipment to have the same interface as if the equipment were communicating remotely. 
     SUMMARY OF THE INVENTION 
     Therefore, in a communication system utilizing the IEEE 802.4 standard, there is provided by the present invention, an apparatus for providing an interface between multiple controllers and a single modem. The communication system which utilizes the present invention has a modem which provides a link to remote modems, each modem being connected by a common medium. The communication system further has a plurality of controllers, each controller connected to the modem via an interface apparatus. The modem and the controllers comply with a predetermined protocol. The interface apparatus of the present invention comprises a bus which provides a local medium to transfer signals between the controllers and the modem. A second component, which in the preferred embodiment is a second bus provides an arbitration path between said controllers. A first interface unit, which interfaces the modem to the bus, implements simple retiming logic to maintain the predetermined protocol between the modem and the first interface unit. A plurality of second interface units interface a corresponding controller to the bus. Each second interface unit implements a controller-associated multi-state state machine which responds to signals on the bus and further responds to signals from the corresponding controller, each second interface unit maintaining the predetermined protocol between the second interface unit and the corresponding controller. 
     Accordingly, it is an object of the present invention to provide an apparatus which permits multiple controllers to share a single modem. 
     It is another object of the present invention to provide an apparatus which permits an increase in the number of devices that can be put on a given system without affecting the analog loading of a medium, and therefore the medium structure. 
     These and other objects of the present invention will become more apparent when taken in conjunction with the following description and attached drawings, wherein like characters indicate like parts, and which drawings form a part of the present application. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1, shows a block diagram of a partial communication system of the prior art; 
     FIG. 2, shows a block diagram of a partial communications system including the apparatus of the present invention permitting multiple controllers to share a single modem; 
     FIG. 3 shows a functional diagram of the networks coupled to the apparatus of the preferred embodiment of the present invention; 
     FIG. 4 shows a block diagram of a part of the interface apparatus which eliminates the modem; 
     FIG. 5 shows a state diagram of a state machine having six states of the interface apparatus of the preferred embodiment of the present invention; and 
     FIG. 6 shows a block diagram of an alternative embodiment of the present invention which includes a plurality of modems. 
    
    
     DETAILED DESCRIPTION 
     Referring to FIG. 1, there is shown a block diagram of a prior art, partial 802.4 communication system that has a single modem 10 and a single controller 11, one to one, and that there are signals that go from the controller 11 to the modem 10, and separate signals that go from the modem 10 to the controller 11. 
     Referring to FIG. 2, there is shown a block diagram of a partial communication system, including a single modem 10, a plurality of controllers 11, CONTROLLER A, CONTROLLER B, CONTROLLER C, . . . Modem 10 is a standard 802.4 compatible modem connected to a medium 12, and controllers 11 are 802.4 compatible token bus controllers 11 being standard components available in the marketplace. 
     An apparatus, interface 20, includes interface A (IFA) 22 and interface B (IFB) 24, which provides the interface for two (multi-wire wide) buses 26, 28, the first bus 26 being sourced by any or all of the controllers 11, and the other (second bus 28) being sourced by the modem 10. The apparatus, interface 20, also includes a separate component 29 (sometimes referred to herein as subsystem 29), shown here as a bidirectional bus 29, for resolving contention among the several controllers. The contention resolution component 29 will not be discussed further since no further details are necessary for an understanding of the present invention. Therefore, there are two networks 26, 28 which replace the two sets of point-to-point lines of the prior art modem-controller pairing of the 802.4 system of FIG. 1. Network 26 and 28 are both unidirectional. Instead of one-to-one modem controller pairing, there is provided by the apparatus an N-to-1 network 26, and a 1-to-N network 28, having N-controllers and one modem. 
     The logic of IFB 24 goes on the controller side of the networks (i.e., pair of networks) 26, 28, and the logic of IFA 22 goes on the modem side of this pair of networks 26, 28, such that the controller 11 will only see valid signals (i.e., signals that are valid according to the 802.4 standard), and such that the modem 10 will only see signals that are valid according to the 802.4 standard. Any controller 11 and any modem 10 that meets this standard (i.e., the 802.4 standard, and in particular the interface specification of section 10 (1989)) will operate correctly in the &#34;sharing&#34; configuration of the system of FIG. 2 with the interface 20. 
     The IEEE Standard 802.4 contains constraints on the interface between the controller 11 and the modem 10. Some of these constraints are electrical constraints, which include setup and hold times, voltage levels, . . . Other constraints are logical or functional such as a set of legitimate symbol signalling sequences. 
     Referring to FIG. 3 there is shown a functional diagram of the networks and the coupling with interface 20. The interface has essentially a transmit side and a receive side, each of which has four parallel data lines that provides a multi-bit wide symbol, one of sixteen symbols on the interface in each direction. There are four data lines plus two clock lines from the modem 10, and there are four data lines going to the modem 10, and thus going to and from interface IFA 22, from and to the networks 26, 28, respectively. Referring to FIG. 3, the symbols shown in FIG. 3 between IFB 24 and the controller 11 are the symbols used in the standard. The symbols shown in FIG. 3 coupled to interface IFB 24 from the networks 26, 28 are related names/symbols because the signals on the networks 26, 28 (sometimes referred to herein as bus 26, 28) are slightly different than those of the standard. (The signals on the bus 26, 28 are modified by the logic IFA 22 and IFB 24 such that the modem 10 and the controller 11 only see the standard signals and signalling sequences). Also shown is digital logic A 23 of IFA 22 and digital logic B 25 of IFB 24, which will be described in further detail hereinunder; however, as mentioned above, the contention resolution component will not be discussed further herein. 
     The symbols referred to above are defined in table 1, which are basically derived from the 802.4 standard symbols, standing for silence, data, bad signal, preamble, . . . For example, for a preamble symbol the state of the transmit lines is, TXSYM3 is a (logic) one, TXSYM2 is a zero, TXSYM1 is a logic one, and TXSYM0 is a &#34;don&#39;t care&#34; (x=don&#39;t care). This symbol is defined in the 802.4 standard (pad --  idle) and having the letter code P. 
     
                       TABLE 1______________________________________         Transmit (T)                   SYM         or        Bit StateSymbol  Signal      Receive (R) 3   2   1    0______________________________________S       silence     T/R         1   1   1    XD       data (0)    T/R         1   0   0    0D       data (1)    T/R         1   0   0    1B       bad.sub.-- signal               R only      1   0   1    XP       preamble    T only      1   0   1    XN       non.sub.-- data               T/R         1   1   0    XM       modem control               T/R         0   X   X    X______________________________________ 
    
     Regular expression (1) describes the constraints which the IEEE standard places on transmissions from the controller 11 to (and through) the modem 10 to the medium 12. The sequence requirements are the sequences on the 4-bit parallel TXSYM lines (bits 3-0) between IFA 22 and modem 10, and between controller 11 and IFB 24. When the controller 11 communicates directly to the modem (for modem control), only modem-control signals are transmitted following the constraints described by expression (2). ##EQU1## 
     Essentially, expression (1) indicates that the transmissions from the controller 11 to the modem 10 have one or more S symbols followed by the expression in the brackets one or more times, followed by zero or more P symbols, followed by an S symbol. The expression in the brackets, referred to in the IEEE standard as a &#34;frame&#34;, consists first of bytes of preamble (a bit of preamble is a P so a byte of preamble is 8 Ps), thus multiples of 8P symbols. The bracket 
     
         [(NND).sup.2 D.sup.2 ] 
    
     includes non-data, non-data, data, non-data, non-data, data, data, data, and is referred to as a frame delimiter. Then data bytes follow (i.e., multiple of 8 data symbols), and to end or abort the frame, another one or two frame delimiters, respectively. 
     The interface A, IFA, 22 including digital logic A 23, and interface B, IFB, 24 including digital logic B 25, insure that the sequence requirement, if met by the individual controllers 11, will be met by the interface 20, which allows multiple controllers to share a modem. A preamble, frame delimiter (or more simply delimiter), data, and delimiter is a frame. A transmission consists of one or more frames back to back, optionally terminated by some amount of preamble (employed here as a postamble). The controllers can be sending data in normal transmission sequences, can be silent expecting to hear data, or can be sending modem control signals. When a controller is in a modem control mode sending modem control signals, the controller expects to receive modem control response signals. When the modem detects an internal fault, the modem transmits a response signal indicating a fault condition. The fault response signal goes to all of the attached controllers, whereas modem control response signals only go to the controller in the modem control mode which is stimulating the modem control response signals, because there are two different functions overlaid on the bus, one being normal communications and the other being modem control. The interface 20 meets the requirements of the bus protocol and modem-controller interface protocol of the standard. 
     Referring to FIG. 4 there is shown a block diagram of the interface A, IFA, 22&#39; which eliminates the modem 10 (i.e., modem eliminator), and thereby substitutes for 
     the modem. The IFA 22, includes digital logic Al 23&#39;, which will be discussed further hereinunder, and an oscillator (OSC) 27. Thus, the controllers 11, CONTA, CONTB, CONTC, . . . can still communicate with one another even though a modem is not present. Similarly, when a modem is present, but the communications system external to the modem and equipment interconnected by the apparatus is malfunctioning, that modem can be commanded to operate in a loopback mode identical to that of the previously described &#34;modem eliminator&#34; 22&#39; 
     The digital logic A 23, and the digital logic A1 23&#39; are implemented using programmable logic devices (PLDs). The digital logic B 25, is also implemented in PLDs. The digital logic A 23, digital logic A1 23&#39; and digital logic B 25, denoted as Modem Interface Equations, Modem Eliminator Equations, and TBC Interface Equations, respectively, is given in three forms. (TBC denotes token bus controller 11.) The first form, Appendix A, is in terms of parallel symbols, S and T, silence, transmit line, receive line, . . . (Reference the Interface Definitions, Appendix B.) The second form is in Symbol-Parallel Logic form, Appendix C, and the third form is in Boolean logic equations which translates directly to the combinatorial logic, Appendix D. For the modem interface R i  is Rx&#39;Sym i  (where 0&lt;i&lt;3), Rx&#39;Sym being the names from the standard, primed (&#39;) to reflect the modem&#39;s signals. On the transmit side Tx&#39;Sym i  is just T i . Thus, the digital logic A 23 gates everything through but latches the signal. 
     Referring to FIG. 4 there is shown the preferred embodiment of the present invention of a communication system of a modem-sharing bus with non-multiplexed bus contention. Namely, the system of FIG. 4 uses separate lines (shown here as an X bus) to perform the arbitration function, and the number of states of the state machine (i.e., digital logic B 25) is six states. (It will be recognized by those skilled in the art that other single-cycle arbitration methods may be employed, e.g., a serial &#34;daisy-chained&#34; priority arbiter.) FIG. 5 shows a state diagram of a state machine having the six states which describes the operation of the digital logic B 25 of the modem sharing bus with a separate contention resolution component. Table 2 tabulates the states which includes the flow from one state to another with the corresponding exit condition. (In the Tables and Figures, Tx designates the TxSym outputs of the TBC.) 
     
                                           TABLE 2__________________________________________________________________________     busses drivenstate name state id     while in state              next state                   exit condition__________________________________________________________________________              000  resetS-idle 000 T undriven              000  (Tx = S)     X undriven              100  (Tx ≠ S) * (X ≠ S1)              001  (Tx 16  S) * (X = S1)S-arbitrate 001 T undriven              010  Rq0 * (TB = S)     X: = arbitration              110  Rq0 * (TB ≠ S)              100  /Rq0S-copy 010 T: = TB  010  (TB ≠ S)     X: = node ID              000  (TB = S)B-wait 100 T undriven              000  (Tx = S)     X undriven              100  (Tx ≠ S) * (X ≠ S1) + (Tx = M)              101  (Tx = {P, N, D}) * (X = S1)B-arbitrate 101 T undriven              110  Rq0     X: = arbitration              100  /Rq0B-pad 110 T: = P   110  (TB ={P, N, D})     X: =  node ID              000  (TB = S)              100  (TB = M)__________________________________________________________________________ 
    
     Basically, when a station (i.e., controller) tries to transmit, the logic of interface 20, more specifically, IFB 24, senses the state of the contention resolution component (X bus 29). If the X bus 29 is idle indicating that there are not transmissions from any of the controllers 11, the logic of IFB 24 tries to claim both the X bus and the T bus by going through two cycle. The first cycle is an arbitration cycle. Interface logic 24 goes through successive states of idle (the bus is idle), to arbitrating the X bus 29, to copying symbols from the controller 11 to the T bus 26. If the interface logic IFB 24 determines the X bus is busy (another controller is communicating on the T bus), the logic goes into a wait state, thus the logic IFB is defined by six states as indicated in Table 2 and in FIG. 5. A description of the six states is as follows: 
     (a) S-idle--If the TBC starts to transmit and the X bus is inactive, then the T bus will be requested and arbitrated (via the X bus), and on winning, the TBC&#39;s symbols will be sent to the modem and the X bus will remain driven. If the TBC starts to transmit and the X bus is already active, then the interface will wait for the TBC to send an S or for an opportunity to arbitrate and send P symbols to reflect the TBC&#39;s activity. 
     (b) S-arbitrate--The T bus is arbitrated via the X bus. On winning, the X bus will remain driven and the TBC&#39;s symbols will be sent to the modem. On losing, the interface will stop driving the X bus and will wait for the TBC to send an S or for an opportunity to arbitrate and send P symbols to reflect the TBC&#39;s activity 
     (c) S-copy--The TBC&#39;s symbols up through the first S are sent to the modem. 
     (d) B-wait--If the TBC is transmitting P, N, or D symbols and the X bus goes inactive, the T bus will be requested and arbitrated (via the X bus); on winning, P symbols will be sent to the modem to reflect the TBC&#39;s activity and the X bus will remain driven. 
     (e) B-arbitrate--The T bus is arbitrated via the X bus. On winning, the X bus will remain driven and P symbols will be sent to the modem. On losing, the interface will stop driving the X bus and will wait for the TBC to send an S or for an opportunity to arbitrate and send P symbols to reflect the TBC&#39;s activity. 
     (f) B-pad--P symbols are sent to the modem, while the TBC sends P, N, or D symbols, to reflect the TBC&#39;s activity. 
     Combinatorial logic determines the symbol reported to the TBC on its RxSym lines. A holding register (not shown), clocked out of phase with the TBC, provides stable outputs to meet the setup and hold time requirements of the TBC. Two registers (TA and TB, not shown) connected in tandem, clocked in phase with the TBC and out of phase with the modem, maximize the time that stable outputs are presented to the combinatorial logic which arbitrates and drives the X and T busses. At the modem, a holding register, (not shown) is clocked out of phase with the modem clock to provide stable outputs meeting the modem&#39;s setup and hold time requirements. Arbitration within interface 20 occurs using the separate contention resolution component 29, and can be any standard parallel bus or serial daisy-claim arbitration scheme well known in the art, and will not be discussed further herein. 
     The operation of the preferred embodiment of the communication system of the modem-sharing bus with separate contention resolution component will now be described. The system is a multi-drop extension of the recommended modem-controller interface of IEEE 802.4-1989 Section 10, also known as 802.4G, and IEEE being the Institute of Electrical ad Electronics Engineers, Inc. In multi-drop form, that interface is composed of an R bus for the clock and data symbols received from the modem, a T bus for the data symbols transmitted to the modem, and an X bus (or other arbitration means) for resolving contention among the multiple controllers for the T bus and connected modem. 
     Since the R bus is driven from a single point and conveys clocks as well as data symbols, and since the chosen bus drivers and receivers are inverters, the R bus is an active-low bus. Since the T bus has multiple sources, and goes to a high state when undriven, and since the modem must be presented with the symbol S (silence) in such cases, the T bus is defined as an active-high bus. Since the X bus has multiple sources, and goes to a high state when undriven, and since the contention algorithm must infer inactivity in such cases, the X bus is defined as an active-low bus. To provide the necessary setup and hold times for the TBC and modem, the modem-supplied transmit and receive clocks (Tx&#39;Clk and Rx&#39;Clk in FIG. 3) are inverted before presentation to the TBC (as TxClk and RxClk). 
     The bus control logic tracks the T bus and X bus. Contention for the T bus occurs on the X bus when the X bus is inactive (all ones) and one or more TBCs are sourcing P, N or D symbols. If the X bus was inactive when the TBC that won the contention began sourcing the P, N or D symbols, then that TBC is directly connected to the T bus. Otherwise P symbols are sent on the T bus until the winning TBC goes silent. 
     Contention for the T bus also occurs when the X bus is inactive and one or more TBCs begin sourcing M symbols. The winning TBC is directly connected to the T bus. The output from a losing TBC, or from a TBC which had begun an M-symbol sequence while the X bus was active, is ignored until that TBC goes silent. The X and T busses are undriven when the TBC is sending S symbols; the undriven buses go to the all ones (=1111) state. A driven X bus does not assume the all ones (inactive) state. 
     Received M symbols are reported to the TBC when R=PLE (=0111) or when the TBC is sourcing M symbols on it TxSym lines. When the TBC is sourcing M symbols and it is not enabled on the T bus, then the bus control logic reports NAK (=010x) M-symbols on the RxSym lines. At other times when the bus control logic receives M symbols on the R bus, it reports B symbols on the RxSym lines. In all other cases, the bus control logic reports the received non-M symbols on the RxSym lines. 
     When the X bus state is inactive (all ones), the bus control logic may try to claim the T bus. This is accomplished by using the X bus for a FastBus-like parallel arbitration cycle (well-known in the art as IEEE standard 960), which resolves before the next TxClk. If it wins the arbitration, then the bus control logic supplies data directly to the T bus as specified above. In all cases the modem receives the T bus symbol unaltered. (The Fast Bus-like parallel arbitration is more fully described in U.S. Pat. No. 3,983,540.) 
     A modem eliminator returns ACK (=001x) when presented with parallel station management commands, NAK (010x) when presented with serial station management commands, converts P symbols to D symbols, and loops back all other symbols unaltered. When the modem is in a loopback mode, the controller expects to see each transmitted symbol fully echoed, except that P symbols are converted to D symbols by the modem, and M symbols are echoed as either ACK (=001x) or NAK (=010x) M-symbols. The IEEE 802.4 standard specifies that the maximum permitted delay in this echoing processes of the controller-to-modem and modem-to-controller connection is 6.4 microseconds. 
     Also, although reference has been made to a modem, it will be understood by those skilled in the art that a single port on a repeater in which the port has an interface similar to that of the modem compatible with the IEEE Standard 802.4 may be substituted. 
     Referring to Table 3, there is defined an alternative embodiment of IFB 24, which has a 3-state X-state machine and a 3-state F-state machine. The arbitration can take N-clock periods where the F-state machine includes an N+1 deep FIFO (or pipeline). 
     
                                           TABLE 3A__________________________________________________________________________IFB&#39;S FIFO-ASSESSMENT STATE MACHINE state              next                       action takenstate name id exit condition  state                       on transition__________________________________________________________________________    reset           00 iF: = maxF-empty 00 (Tx = S)        00 iF: = max    (Tx ≠ S)  01 iF: = iF-1; iL: = maxF-active 01 (Tx = S) * (iL = 0)                    00 iF: = max    (Tx ≠ S) * (iF ≠ 0)                    01 iF: = iF-1; iL: = max    (Tx = S) * (iF ≠ 0)                    01 iF: = iF-1; iL: = iL-1    (Tx ≠ S) * (iF = 0)                    10 iL: = max    (Tx = S) * (iF = 0) * (iL ≠ 0)                    10 iL: = iL-1F-overrun 10 (Tx = S) * (iL = 0)                    00 iF: = max    (Tx = S) * (iL ≠ 0)                    10 iL: = iL-1    (Tx ≠ S)  10 iL: = max__________________________________________________________________________ 
    
     
                                           TABLE 3B__________________________________________________________________________IFB MASTER STATE MACHINE(Multi-Step Arbitration, Single Clock Cycle per Step) state    busses driven             next            action takenstate name id while in state             state                exit condition                             on transition__________________________________________________________________________             00 resetT-idle 00 T undriven             00 (X-active) + F-empty    X undriven             01 (X-inactive) * /F-empty                             c: = maxT-arbitrate 01 T undriven             00 /won + F-empty    X: = arbitrate(c)             01 (c ≠ 0) * won * /F-empty                             c: = c-1             10 (c = 0) * won * F-active                             T.sub.-- source is TxFIFO.sub.[max]             10 (c = 0) * won * F-overrun                             T.sub.-- source is PT-source 10 T: = T.sub.-- source             00 F-empty    X: = node ID             10 /F-empty__________________________________________________________________________ 
    
     A description of the states of Tables 3A and 3B is as follows: 
     F-empty--The TxFIFO which holds symbols transmitted by the controller is logically empty--it contains only S (silence) symbols. 
     F-active--The TxFIFO contains one or more non-silence (S) symbols and has not yet overflowed. 
     F-overrun--The TxFIFO contains one or more non-silence (S) symbols and has overflowed. 
     T-idle--if the TBC starts to transmit and the X bus is inactive, then the T bus will be arbitrated (via the X bus), and on winning, the TBC&#39;s symbols will be sent to the modem and the X bus will remain driven. If the TBC starts to transmit and the X bus is already active, then the interface will wait for the TBC to cease transmission or for the X bus to go inactive. 
     T-arbitrate--The T bus is arbitrated via the X bus. On losing an arbitration cycle, the interface will stop driving the X bus and will return to the T-idle state. On winning an arbitration cycle, the interface will participate in the next round of arbitration. On winning the last arbitration cycle, the X bus will remain driven and either the TBC&#39;s symbols, or P symbols indicating TBC activity, will be sent to the modem. 
     Upon winning the multi-cycle arbitration, the decision is made either to source the TxFIFO output to the T bus (the usual case), or to source P symbols to the T bus (reflecting TBC activity after the initial part of the TBC&#39;s transmission was lost due to conflicting prior T-bus activity). 
     T-source--Either the TBC&#39;s symbols, or P symbols reflecting the continuation of the TBC&#39;s already-commenced transmission (the first part of which has been lost due to TxFIFO overflow), are sent to the modem until the TBC transmits a long enough sequence of S symbols to permit the TxFIFO to empty. During this period the X bus remains driven to inhibit re-arbitration of the T bus by other bus-connected devices. 
     Table 4 shows, a state table for an IFB 24 for a single or multi-step arbitration having multiple clock cycles per step. A description of the states of the IFB 24 of Table 5 is a follows: 
     T-idle--If the TBC starts to transmit and the X bus is inactive, then the X bus will be arbitrated, and on winning, the TBC&#39;s symbols will be sent to the modem on the T bus and the X bus will remain driven. If the TBC starts to transmit and the X bus is already active, then the interface will wait for the TBC to cease transmission or for the X bus to go inactive. 
     T-arbitrate--The T bus is arbitrated via the X bus. On losing an arbitration cycle, the interface will stop driving the X bus and will sequence to the wait state. On winning an arbitration cycle, the interface will participate in the next round of arbitration. On winning the last arbitration cycle, if the TxFIFO is non-empty, then the X bus will remain driven and either the TBC&#39;s symbols, or P symbols indicating TBC activity will be sent to the modem via the T bus if the TxFIFO is empty, then the interface will simply return to the idle state. 
     Upon winning the multi-cycle arbitration, the decision is made either to source the TxFIFO output to the T bus (the usual case), or to source P symbols to the T bus (reflecting TBC activity after the initial part of the TBC&#39;s transmission was lost due to conflicting prior T-bus activity). 
     T-source--Either the TBC&#39;s symbols, or P symbols reflecting the continuation of the TBC&#39;s already-commenced transmission (the first part of which has been lost due to TxFIFO overflow), are sent to the modem until the TBC transmits a long enough sequence of S symbols to permit the TxFIFO to empty. 
     T-sync--At power-up or reset, the interface synchronizes with the X bus by waiting for a period of continuous inactivity on the X bus equal in length to a full contention cycle. After such a period of inactivity has been observed (which the IEEE 802.4 protocol guarantees will eventually occur), the interface sequences to the idle state. 
     T-wait--This state is used to sequence through the remainder of an arbitration cycle either after the interface loses a phase of the arbitration cycle, or after the interface observes X bus activity indicating that companion interfaces have begun an arbitration cycle. 
     T-busy--This state is used to await the release of the X and T busses by another interface which has won the last arbitration cycle and is currently in the message transmission phase, using the T bus to communicate with the modem. 
     
                                           TABLE 4__________________________________________________________________________IFB MASTER STATE MACHINE(Single- or Multi-step Arbitration, Multiple Clock Cycles per Step) state    busses driven             next             action takenstate name id while in state             state                exit condition                              on transition__________________________________________________________________________             100                reset         C: = maxT-idle 000    T undriven             000                (X-inactive) * F-empty    X undriven             001                (X-inactive) * /F-empty                              c: = c-1             101                (X-active)    c: = c-1T-arbitrate 001    T undriven             101                (c ≠ 0) * (/won + F-empty)                              c: = c-1    X: = arbitrate(c)             110                (c = 0) * (/won + F-empty)             001                (c ≠ 0) * won * /F-empty                              c: = c-1             010                (c = 0) * won * F-mixed                              T.sub.-- source is TxFIFO.sub.[max]             010                (c = 0) * won * F-overrun                              T.sub.-- source is PT-source 010    T: = T.sub.-- source             000                F-empty    X: = node ID             010                /F-emptyT-sync 100    T undriven             100                (X-active)    c: = max    X undriven             100                (X-inactive) * (c ≠ 0)                              c: = c-1             000                (X-inactive) * (c = 0)T-wait 101    T undriven             101                (c ≠ 0) c: = c-1    X undriven             110                (c = 0)T-busy 110    T undriven             000                (X-inactive) * F-empty    X undriven             001                (X-inactive) * /F-empty                              c: = max             110                (X-active)__________________________________________________________________________ 
    
     From the state tables of the alternative embodiments, the Boolean logic equations, the interface definitions, and the symbol parallel logic forms can be readily generated by those skilled in the art and will not be described further. 
     Referring to FIG. 6, there is shown an alternative embodiment of the present invention, a plurality of modems 10 (including a corresponding IFA 22), each having a single independent receiver, is each connected to a corresponding receive bus 28. Each receive bus is connected to a second plurality of controllers 11 via a corresponding IFB 24&#39;. Each IFB 24&#39; includes receiver selection logic (RSL) 31, such that received symbols are presented to the IFB 24&#39; from only one modem at a time. Generally, modems meeting the standard include a locally originated transmit clock. In the embodiment of FIG. 8, a single TClk line 33 is shown. The exact implementation of TClk generation is not relevant to the present invention and will not be discussed further; however, it is to be noted that some method of providing all of the modems 10 with a single common TClk must be employed, a variety of methods being generally well known in the art. 
     While there has been shown what is considered the preferred embodiment of the present invention, it will be manifest that many changes and modifications can be made therein without departing from the essential spirit and scope of the invention, specifically including bus arbitration methods utilizing other parallel or serial arbitration techniques. It is intended, therefore, in the annexed claims to cover all such changes and modifications which fall within the true scope of the invention. 
     
         __________________________________________________________________________APPENDIX ASeperate Arbitration - Functional Form of the InterfacesIn the following, the subscript i (symbol bit weight) has the range 0≦ i ≦ 3;the subscript k (node ID bit weight) has the range 0 ≦ k &lt; kMax.Clocks for registered state data are shown in the right-hand__________________________________________________________________________margin.Modem Interface EquationsRClk  :=   Rx&#39;Clk                          --bus clock = modem clockR.sub.i :=   Rx&#39;Sym.sub.i                    --bus symbol = modem symbolTClk  :=   Tx&#39;Clk                          --bus clock = modem clockTx&#39;Sym.sub.i :=   T.sub.i                                          ↓TClkModem Eliminator EquationsRClk  = TClk := local oscillator--T-bus symbol recorded for loopback on R-bus; IFA loopback output toIFBR.sub.i :=   T.sub.3 * (T ≠ P) * T.sub.i + T.sub.3 * (T = P) *                                                    ↓TClk + /T.sub.3 * (T.sub.2 + T.sub.1) * Ack0.sub.i + /T.sub.3 * /T.sub.2   * /T.sub.1 * Nak0.sub.iTBC Interface EquationsRxClk :=   /RClk                           --inverted clock for TBC--IFB t-bus state synchronized for R-bus useJ.sub.1 :=   I.sub.1 A                       --synchronizer!! ↑RClkJ.sub.2 :=   I.sub.2                         --syncronizer!!  ↑RClk--IFB output to TBCRxSym.sub.i :=   [J1 * /J2 + /J1 * R2 + (R = PLE)] * R.sub.i      ≠RClk + J.sub.1 * J.sub.2 * (R ≠ PLE) *Nak0.sub.i + /J.sub.1 * (R &lt;   PLE) * B.sub.iTxClk :=   /TClk                           --inverted clock for TBC--two-stage shift register holding slightly-recorded symbols for possibleT-bus transmissionTA.sub.i :=   TxSym.sub.i                                      ↑TxClkTB.sub.i :=   TA.sub.i                                         ↑TxClk--IFB stateI.sub.0 :=   (I.sub.1-0 = 0) * (Tx ≠ S) * [/I.sub.2 + Tx.sub.3 ] * (X =   inactive)                                        ↑TxClkI.sub.1 :=   I.sub.0 * Rq.sub.0 + I.sub.1 * (TB ≠ S) * [/I.sub.2 +   TB.sub.3 ]                                       ↑TxClkI.sub.1 A :=   I.sub.0 *  Rq.sub.0 * /TB.sub.3 + I.sub.1 * /I.sub.2 *                                                    ↑TxClk   --== glitch-free I.sub.1 * /TB.sub.3I.sub.2 :=   (I = 0) * (Tx ≠ S) * (X ≠ inactive) + I.sub.0 *   /Rq.sub.0 + I.sub.0 * (TB ≠ S)             ↑TxClk + I.sub.2 * /[(I.sub.1-0 = 0) * (Tx = S) + I.sub.1 * (TB = S)]--IFB output to T-busT.sub.i out :=   /I.sub.2 * I.sub.1 * TB.sub.1 + I.sub.2 * I.sub.1 * P.sub.i--IFB output to X-busRq.sub.kMax = I.sub.0X.sub.k out :=   (I.sub.0 * Rq.sub.k+1 + I.sub.1) * ID.sub.kRq.sub.k :=   Rq.sub.k+1 * (ID.sub.k + /X.sub.k)__________________________________________________________________________ 
    
     
         __________________________________________________________________________APPENDIX BInterfaceDefinitions3210__________________________________________________________________________S   = 111x   --silence                   Tx &amp; RxN   = 110x   --non data                  Tx &amp; RxD d = 100d   --data d (where d = 0 or 1) Tx &amp; RxP   = 101x   --pad.sub.-- idle (preamble)                               Tx onlyB   = 101x   --bad.sub.-- signal         Rx onlyM   = 0xxx   --modem-control signal      Tx &amp; RxR   = 0111   --station mgmt reset        Tx onlyL   = 0101   --station mgmt disable loopback                               Tx onlyE   = 0011   --station mgmt enable transmitter                               Tx onlym d = 001d   --serial station mgmt data d                               Tx onlyIdle    = 0001   --station mgmt &#34;mark&#34; (line die)                               Rx onlyAck d    = 001d   --station mgmt positive acknowledge, data d                               Rx onlyNak d    = 010d   --station mgmt negative acknowledge, data d                               Rx onlyPLE = 0111   --modem-detected (physical layer) error                               Rx onlyRxClk   --rising-edge active, setup = 40% of period, hold = 10 nsTxClk   --rising-edge active, setup = 35% of period, hold = 5__________________________________________________________________________   ns 
    
     
         __________________________________________________________________________APPENDIX CSeperate Arbitration - Symbol-Parallel Logical Form of the InterfacesIn the following, the subscript i (symbol bit weight) has the range 0≦ i ≦ 3;the subscript k (node ID bit weight) has the range 0 ≦ k &lt; kMax.Clocks for registered state data are shown in the right-hand__________________________________________________________________________margin.Modem Interface EquationsRClk  :=   Rx&#39;Clk                          --bus clock = modem clockR.sub.i :=   Rx&#39;Sym.sub.i                    --bus symbol = modem symbolTClk  :=   Tx&#39;Clk                          --bus clock = modem clockTx&#39;Sym.sub.i :=   T.sub.i                                          ↓TClkModem Eliminator EquationsRClk  = TClk := local oscillator--T-bus symbol, recorded for loopback on R-bus; IFA loopback output toIFBR.sub.i :=   T.sub.3   (T ≠ 101x)   T.sub.i   T.sub.3   (T = 101x)   100x.sub.i                                       ↓TClk   /T.sub.3   (T.sub. 2   T.sub.1)   0010.sub.i   /T.sub.3   /T.sub.2   /T.sub.1   0100.sub.iTBC Interface EquationsRxClk :=   RClk                            --inverted clock for TBC--IFB T-bus state synchronized for R-bus useJ.sub.1 :=   I.sub.1 A                       --synchronizer!! ↑RClkJ.sub.2 :=   I.sub.2                         --synchronizer!! ↑RClk--IFB output to TBCRxSym.sub.i :=   [J.sub.1   /J.sub.2   /J.sub.1   R.sub.3   (R = 0111)]   R.sub.i                                                    ↑RClk   J.sub.1   J.sub.2   (R ≠ 0111)   0100.sub.i   /J.sub.1   (R   &lt; 0111)   101x.sub.iTxClk :=   /TClk                           --inverted clock for TBC--two-stage shift register holding slightly-recorded symbols for possibleT-bus transmissionTA.sub.i :=   TxSym.sub.i                                      ↑TxClkTB.sub.i :=   TA.sub.i                                         ↑TxClk--IFB stateI.sub.0 :=   (I.sub.1-0 = 0)   (Tx ≠ 111x)   (/I.sub.2   Tx.sub.3)   (X   = 11 . . . 11)                                   ↑TxClkI.sub.1 :=   I.sub.0   Rq.sub.0   I.sub.1   (TB ≠ 111x)   (/I.sub.2   TB.sub.3)                                        ↑TxClkI.sub.1 A :=   I.sub.0   Rq.sub.0   /TB.sub.3  --== glitch-free I.sub.1                                   /TB.sub.3        ↑TxClkI.sub.2 :=   (I = 0)   (Tx ≠ 111x)  0 (X ≠ 11 . . .                                                    ↑TxClk   I.sub.0   /Rq.sub.0   I.sub.0   (TB ≠ 111x)   I.sub.2   /[(I.sub.1-0 = 0)   (Tx = 111x)   I.sub.1   (TB =   111x)]--IFB output to T-busT.sub.i out :=   /I.sub.2   I.sub.1   TB.sub.i   I.sub.2   I.sub.1   101x.sub.i--IFB output to X-busRq.sub.kMax = I.sub.0X.sub.k out :=   (I.sub.0   Rq.sub.k+1   I.sub.1)   ID.sub.kRq.sub.k :=   Rq.sub.k+1   (ID.sub.k   /X.sub.k)__________________________________________________________________________ 
    
     
                                           APPENDIX D__________________________________________________________________________Separate Arbitration - Logical Equation Form of the Interfaces__________________________________________________________________________Modem Interface EquationsInputs: Tx&#39;Clk, Rx&#39;Clk, Rx&#39;Sym.sub.3, Rx&#39;Sym.sub.2, Rx&#39;Sym.sub.1,Rx&#39;Sym.sub.0 ; /T.sub.3, /T.sub.2, /T.sub.1, /T.sub.0Outputs: TClk, RClk, R.sub.3, R.sub.2, R.sub.1, R.sub.0 ; Tx&#39;Sym.sub.3,Tx&#39;Sym.sub.2, Tx&#39;Sym.sub.1, Tx&#39;Sym.sub.0RClk: = Rx&#39;Clk               bus clock = modem clockR.sub.3 : = Rx&#39;Sym.sub.3R.sub.2 : = Rx&#39;Sym.sub.2R.sub.1 : = Rx&#39;Sym.sub.1R.sub.0 : = Rx&#39;Sym.sub.0TClk: = Tx&#39;Clk               bus clock = modem clockTx&#39;Sym.sub.3 : = T.sub.3                  ↓TxClkTx&#39;Sym.sub.2 : = T.sub.2                  ↓TxClkTx&#39;Sym.sub.1 : = T.sub.1                  ↓TxClkTx&#39;Sym.sub.0 : = T.sub.0                  ↓TxClkModem Eliminator EquationsInputs: local clock, /T.sub.3, /T.sub.2, /T.sub.1, /T.sub. 0Outputs: TClk, RClk, R.sub.3, R.sub.2, R.sub.1, R.sub.0RClk = TClk: = local oscillator T-bus symbol, recoded for loopback on R-bus; IFA loopback output to IFBR.sub.3 : = T.sub.3                       ↓TxClkR.sub.2 : = T.sub.3 ·T.sub.2 + /T.sub.3 ·/T.sub.2·/T.sub.1                        ↓TxClkR.sub.1 : = /T.sub.3 ·T.sub.2 + T.sub.1                                     ↓TxClkR.sub.0 : = T.sub.3 ·T.sub.0     ↓TxClkTBC Interface EquationsInputs: RClk, R.sub.3, R.sub.2, R.sub.1, R.sub.0, I.sub.1 A, I.sub.2Outputs: RxClk, RxSym.sub.3, RxSym.sub.2, RxSym.sub.1, RxSym.sub.0RxClk: = /RClk               inverted clock for TBC IFB T-bus state synchronized for R-bus useJ.sub.1 : = I.sub.1 A        synchronizer!!                                     ↑RClkJ.sub.2 : = I.sub.2          synchronizer!!                                     ↑RClk IFB output to TBCRxSym.sub.3 : = J.sub.1 ·/J.sub.2 ·R.sub.3  + /J.sub.1·R.sub.3 +                       ↑RClk/J.sub.1 ·R.sub.3 ·/R.sub.2 + /J.sub.1 ·/R.sub.3 ·/R.sub.1 + /J.sub.1 ·/R.sub.3 ·/R.sub.0RxSym.sub.2 : = J.sub.1 ·/J.sub.2 ·R.sub.2 + /J.sub.1·R.sub.3 ·R.sub.2 + ·/R.sub.3 ·R.sub.2 ·R.sub.1 ·R.sub.0 +    ↑RClkJ.sub.1 ·I.sub.2 ·R.sub.3 + J.sub.1 ·I.sub.2·/R.sub.2 + J.sub.1 ·I.sub.2 ·/R.sub.1 +J.sub.1 ·I.sub.2 ·/R.sub.0RxSym.sub.1 : = J.sub.1 ·/J.sub.2 ·R.sub.1 + /J.sub.1·R.sub.3 ·R.sub.1 + ·/R.sub.3 ·R.sub.2 ·R.sub.1 ·R.sub.0 +    ↑RClk/J.sub.1 ·/R.sub.3 ·/R.sub.2 + /J.sub.1 ·/R.sub.3 ·/R.sub.1 + /J.sub. 1 ·/R.sub.3 ·/R.sub.0RxSym.sub.0 : = J.sub.1 ·/J.sub.2 ·R.sub.0 + /J.sub.1·R.sub.3 ·R.sub.0 + ·/R.sub.3 ·R.sub.2 ·R.sub.1 ·R.sub.0      ↑RClkInputs: TClk, TxSym.sub.3, TxSym.sub.2, TxSym.sub.1, TxSym.sub.0,/X.sub.kMax-1, . . . /X.sub.0Outputs: TxClk, /T.sub.3 out, /T.sub.2 out, /T.sub.1 out, /T.sub.0 out,/X.sub.kMax-1 out, . . . /X.sub.0 out, I.sub.1 A, I.sub.2TxClk: = /TClk               inverted clock for TBC two-stage shift register holding slightly-recoded symbols for possibleT-bus transmissionTA.sub.3 : = TxSym.sub.3                  ↑TxClkTA.sub.2 : = TxSym.sub.2                  ↑TxClkTA.sub.1 : = TxSym.sub.1                  ↑TxClkTA.sub.0 : = TxSym.sub.0                  ↑TxClkTB.sub.3 : = TA.sub.3                     ↑TxClkTB.sub.2 : = TA.sub.2                     ↑TxClkTB.sub.1 : = TA.sub.1                     ↑TxClkTB.sub.0 : = TA.sub.0                     ↑TxClk IFB state ##STR1##                                 ↑TxClkI.sub.1 : = I.sub.0 ·Rq.sub.0 + I.sub.1 ·(/TB.sub.3 +/TB.sub.2 + /TB.sub.1)·(/I.sub.2 + TB.sub.3)                                     ↑TxClkI.sub.1 A: = I.sub.0 ·Rq.sub.0 ·/TB.sub.3 + I.sub.1·/I.sub.2 ·/TB.sub.3                        glitch-free I.sub.1 ·/TB.sub.3                                     ↑TxClk ##STR2##                                 ↑TxClkI.sub.0 ·/Rq.sub.0 + I.sub.0 ·(/TB.sub.3 +  /TB.sub.2 +/TB.sub.1) +I.sub.2 ·/(/I.sub.1 ·/I.sub.0 ·Tx.sub.3·Tx.sub.2 ·Tx.sub.1 + I.sub.1 ·TB.sub.3·TB.sub.2 ·TB.sub.1) IFB output to T-busT.sub.3 out: = /I.sub.2 ·I.sub.1 ·TB.sub.3 + I.sub.2·I.sub.1T.sub.2 out: = /I.sub.2 ·I.sub.1 ·TB.sub.2T.sub.1 out: = /I.sub.2 ·I.sub.1 ·TB.sub.1 + I.sub.2·I.sub.1T.sub.0 out: = /I.sub.2 ·I.sub.1 ·TB.sub.0 IFB output to X-busRq.sub.kMax : = I.sub.0X.sub.k out: = I.sub.0 ·Rq.sub.k+1 ·ID.sub.k + I.sub.1·ID.sub.k           for 0 ≦ k &lt; kMaxRq.sub.k : = Rq.sub.k+1 ·ID.sub.k + Rq.sub.k+1 ·/X.sub.k                        for 0 ≦ k &lt; kMax__________________________________________________________________________