Data Loop Communication Priority Establishing Apparatus

Fuller , et al. April 17, 1

Patent Grant 3728681

U.S. patent number 3,728,681 [Application Number 05/215,808] was granted by the patent office on 1973-04-17 for data loop communication priority establishing apparatus. This patent grant is currently assigned to Collins Radio Company. Invention is credited to Ray C. Fuller, Gary D. Phillips, Richard B. Simone.


United States Patent 3,728,681
Fuller ,   et al. April 17, 1973

DATA LOOP COMMUNICATION PRIORITY ESTABLISHING APPARATUS

Abstract

The method of configuring communication units, all of which are connected in series on a loop such that some units may take priority and communicate out of the logical sequential order. This is accomplished using a master unit and first and second sets of slave units. The slave units respond to poll requests. These polls may come either from the master or the previously responding slave unit. The master unit always sends a prepoll before a poll. The first set of slave units will respond to a prepoll or a poll and thus can take priority in transmitting messages. The second set of slaves will respond only to a poll, internally set a flag, and then transmit a poll to further slave units upon receipt of the next prepoll.


Inventors: Fuller; Ray C. (Cedar Rapids, IA), Phillips; Gary D. (Marion, IA), Simone; Richard B. (Marion, IA)
Assignee: Collins Radio Company (Dallas, TX)
Family ID: 22804484
Appl. No.: 05/215,808
Filed: January 6, 1972

Current U.S. Class: 370/449
Current CPC Class: H04L 12/4637 (20130101); H04L 5/02 (20130101)
Current International Class: H04L 5/02 (20060101); H04L 12/46 (20060101); H04q 005/00 ()
Field of Search: ;340/147LP,163R,147R

References Cited [Referenced By]

U.S. Patent Documents
3435416 March 1969 Kretsch
Primary Examiner: Pitts; Harold I.

Claims



We claim:

1. The method of providing orderly data communication on a series connected data loop having a master station and a plurality of slave stations which slave stations may only send data messages upon receiving a poll signal comprising, the steps of:

giving priority to data messages originating from said master station immediately after any pending data transaction;

sending a prepoll signal around said loop from said master station after each data transaction; and

changing the prepoll signal to a poll signal in the last station to respond to a poll signal so that the poll signal will be forwarded to the next succeeding station on the loop.

2. The method of claim 1 comprising the additional step of changing any prepoll signals received at said master station to poll signals.

3. The method of providing orderly data communication on a series connected data loop having a master station and a plurality of slave stations wherein said slave stations comprise priority and non-priority units and further wherein said non-priority slave station units may only send data messages upon receiving a poll signal and wherein said priority slave station units may send data upon receiving either a prepoll signal or a poll signal comprising, the steps of:

giving priority to data messages originating from said master station immediately after any pending data transaction;

sending a prepoll signal around said loop from said master station after each data transaction; and

changing the next received prepoll signal to a poll signal in any station responding to a poll signal in attempting to transmit a data message so that the non-priority stations are allowed to send data messages only in their serial connected order on the loop.

4. Slave station apparatus for connection in a data transmission loop over which prepoll, poll and call and data messages are sent, said loop including a master control station, said slave station comprising, in combination:

first means for detecting and distinguishing between received prepoll signals, poll signals, messages for the slave station, and messages for other stations;

second means for acknowledging receipt of messages for the slave station;

third means for sending messages upon receipt of a poll signal; and

fourth means for sending a poll signal only in response to the prepoll signal immediately following a poll to which the slave station reacted by sending a message.

5. Apparatus as claimed in claim 4 wherein said slave station permits unchanged passage therethrough of messages destined for other stations and wherein said third means includes means for also sending a message upon receipt of a prepoll signal.

6. Message transmission apparatus comprising, in combination:

master means for transmitting and receiving messages, for transmitting prepoll signals after reception of each message when no messages are present for transmission, and for transmitting poll signals after reception of prepoll signals;

a plurality of slave means, each for receiving messages, for transmitting messages only in response to received poll signals, and for changing the next received prepoll signal to a poll signal after transmission of a message in response to a received poll signal; and

means for serially connecting said master means and said plurality of slave means in a closed loop.

7. Apparatus as claimed in claim 6 wherein:

at least one of said plurality of slave means additionally responds to prepoll signals by transmitting messages on the closed loop and thereby has priority over other slave means.
Description



The present invention is generally related to electronics and more specifically related to communication switching system.

A co-pending application in the name of L. D. Hungerford et al. Ser. No. 208,548, entitled "Direct Switch System," filed Dec. 16, 1971, having the designation 4,064 and assigned to the same assignee as the present invention describes a communication system wherein a plurality of units connected serially on a loop respond to a poll signal originated at a control unit prior to sending messages. As will be realized, the devices closest to the control unit are most likely to receive the poll signal and thus may, in heavy traffic, prevent devices much further around the loop from ever receiving a poll so that they may transmit communications.

The communication problem of later units may be solved by requiring each unit to forward the poll to the next unit after completion of a single transmission. This is basically the way the problem is solved on the intermediate exchange loop of the above-referenced Collins application. However, the local exchange loop is designed such that a master or control unit is allowed to regain control of the loop between each message or communication for the purpose of interjecting messages into the loop for reception by units on the loop. This is necessary to prevent tie-up or clogging of the main or high speed loop.

This is solved, according to the present invention, by having the slave units on the local exchange loop respond only to a poll signal. The control unit will initially send a prepoll which, if unanswered, will result in the sending of a poll signal. The first unit to respond with a communication will set an internal flag so that the reception of the next prepoll signal by the control unit will result in an output of a poll signal from that slave unit. Thus, the poll will be forwarded to the next unit on the loop desiring to communicate. The control unit may at any time delay sending further prepoll signals and instead supply messages to units on the loop. When no further messages are forthcoming from the control unit, it can then send further prepolls which will be changed to polls by the last unit to transmit a message and this poll will continue around the loop to the originating control or master unit.

One or more of the slave units may be given priority whereby they will respond to either a prepoll or a poll in the transmission of messages. It will be realized, however, that too many of these priority units will cause the same clogging conditions in the local exchange loop as occasionally happened previously and which the present invention was designed to eliminate or substantially reduce.

It is therefore an object of the present invention to provide a priority and non-priority situation in polled loop connected units.

Other objects and advantages of the invention will be apparent from a reading of the specification and claims in conjunction with the drawings wherein:

FIG. 1 is a block diagram of an overall direct switching communication system as more completely described in the above referenced co-pending application and which may advantageously embody the present invention;

FIG. 2 is a block schematic diagram of a receive module portion of a SCU or other unit connected to the local exchange loop of FIG. 1;

FIGS. 3A-3E illustrate the flow diagram applicable to the apparatus of FIG. 2;

FIG. 4 is a block diagram of the transmit module portion of a SCU or other device connected to the local exchange loop of FIG. 1; and

FIGS. 5A-5E are flow diagrams applicable to the transmit module of FIG. 4.

DIRECT SWITCHING APPARATUS OF FIG. 1

A more detailed description and understanding of FIG. 1 may be obtained from the above-referenced patent application. However, in general the apparatus of FIG. 1 provides communication between any units on a specific loop such as the local exchange loop 86 and communication between SCU's 100 and 108. This is accomplished by having the master control unit 78 transmit a poll which is received by one of the SCU's which wishes to transmit a message. This unit then transmits the message in response to the received poll. The transmitted message contains an address which is decoded by the appropriate receiving SCU who changes an acknowledge portion as appropriate before forwarding the message back to the original sender. If communications are desired between SCU's on different loops such as between loops 86 and 114, the SCU such as 100 will transmit a message in response to a receive poll and this message is stored in a buffer in MGU 78. MGU 78 changes the acknowledge section of the message to indicate to SCU 100 that a successful reception has occurred. MGU 78 then awaits a turn on intermediate exchange loop 68 so that it may transmit the recently received message to MGC 64. After MGC 64 receives and acknowledges its message, it calls an appropriate station such as 120 on local exchange loop 114 and provides station 120 with the message. After station 120 acknowledges receipt of the message, it returns a reply message to SCU 100, buffer by buffer, back through intermediate exchange loop IXL to local exchange loop 86. Then, SCU 100 transmits the next portion of the message.

As explained above and as will be apparent, the polls sent out by MGU will be received first by the closest SCU's such as 100 as illustrated. If SCU 100 has a large quantity of messages to transmit, it is conceivable that a poll will never reach SCU 108 and it could not provide communications. Thus, as explained in the succeeding flow diagrams, MGU 78 supplies a prepoll on line 86 which comprises a logic "1" followed by a predetermined number of 0's. This prepoll is not recognized by SCU 100 unless an internal flag is set due to it being the last SCU unit to send a message. In this instance the prepoll is changed to a poll which comprises two logic 1 bits. The following SCU's such as 108 may now receive this poll signal sent by 100 and respond thereto. This poll signal will continue around the loop until received by a SCU having a message to transmit or by MGU 78. Any following unit having a message to transmit will likewise later change the next prepoll from the control unit to a poll and forward this poll around the loop for use by any later units. When the poll is finally forwarded to MGU 78, it realizes that all SCU's on the loop have had the opportunity to transmit a message and it thus sends a new poll so that the sequential transmission by all SCU's containing messages can continue.

RECEIVE CONTROL MODULE

FIG. 2

FIG. 2 illustrates the receive control module found in the LRT sections of the various units of FIG. 1. As will be noted in the referenced patent application, there are two receive control modules in the master group control block and one in each of several other blocks.

As indicated on the left-hand side of FIG. 2, there are leads coming from and going to the RGT interface as well as leads coming from and going to the buffer sections of the appropriate devices and leads going to and coming from the transmit control section. Within the FIG. a J-K flip-flop 350 is illustrated as well as a sequence control unit 352, and operator register 354, an address register 356 and a response register 358. Cables are utilized to connect the last three referenced registers to operator decode 360, address compare 362, and response decode 364, respectively. In addition a parity check circuit 366 is illustrated along with an operator counter 368, a bit counter 370, and a bit count decode 372. It should be realized that other polynomial check codes may be used other than parity and that further references to parity are by way of example only. A receive data (RXDAT) supplies input data from the RGT to a J input of the J-K flip-flop 350 and through an inverting circuit to the K input of J-K flip-flop 350. A loop clock input supplies data through an inverter to the C or clock input of flip-flop 350 as well as to blocks 352-358 and 366-370. The bit sync and initialization sequence inputs are supplied to the sequence control block 352 and a transmit enable is supplied from control block 352 to the RGT. The leads to and from the buffer portion of the particular unit in which the receive control module is utilized are, respectively, BUFS (bufferfull set), RDTDEL (receive data delimit), and CD (control/data) each of which is obtained from sequence control 352. Another line to the buffer unit is a data lead which is obtained from the output of J-K flip-flop 350. The J-K flip-flop 350 provides the one-half bit delay, which was previously mentioned, by having the loop clock 180.degree. out of phase with the received data. A further J-K flip-flop in FIG. 4 provides a further half bit delay in the same manner in the transmit control module to produce the one full bit delay for each module connected to a loop. The data lead from f/f 350 is also supplied to blocks 352-358 and 366 and is output to the transmit control block. Two leads labeled RBSCD and RBSCC (receive busy select call data and receive busy select call control, respectively) supply signals from the buffer portion to the sequence control unit 352.

From the transmit control block a single input is received labeled XMTAC (transmit active). This transmit active lead is supplied to the sequence control unit which returns five signals to the transmit control block of FIG. 4 via leads POLDEL, SENPPOL, DATA, RESDEL, and AKCON. These last referenced leads refer to poll delimit, send prepol, data, response delimit, and acknowledge/connect, respectively. A further lead from the sequence control is the LPBSY (loop busy) lead when the receive control module is being used in certain units.

The operator register 354 receives an additional input OPSC (opcode register shift control). The address register 356 also has an additional input ADRSC (address shift control). The operator decode has six outputs supplied to the sequence control 352. The first two are call control and call data (CLCTRL and CLDATA, respectively). The next is a signal which indicates that it is neither a call control or a call data (CLCTRL.sup.. CLDATA). Two further inputs from the operator decode supply a signal for connect control or connect data (CNCTRL and CNDATA, respectively). Finally, a signal is supplied indicating that the input decoded is neither a connect control or a connect (CNCTRL.sup.. CNDATA).

The address compare 362 supplies a single input labeled ADRCOMP to the sequence control 352. The response decode 364 supplies three inputs to sequence control 352 of acknowledge/connect (AKCON), negative acknowledgement/busy (NAKBSY), and neither of the above (AKCON.sup.. NAKBSY). The parity check circuit 366 was previously indicated as receiving the loop clock and the data signal, and it also receives a reset input and a parity shift delimit (PARSCD) from the sequence control block. In addition a parity check output (PARCHK) is supplied from 366 to the sequence control 352. The operator counter 368 receives two control signals OPZO and OPCNE (operator zero and operator count enable, respectively). The sequence control unit 352 also supplies the operator the bit counter 370 with an input CNINC (bit counter clock line). The operator counter 368 returns an input to sequence control labeled OPCNT7 (operator count 7).

The bit counter 370 also receives an input CNZO which is the bit counter reset line. This input accomplishes the same result as the OPZO input to counter 368. The bit counter 370 supplies a multiple lead output to the bit counter decode 372 which provides outputs, upon the decoding of counts of 21, 22, 44, 53, 62, 93, 103, 256, 1,046, 1,077, and 1,085, back to the sequence control 352.

In view of the extensive use in mnemonics in FIGS. 2 and 3, a mnemonic list is provided below as a simple reference to the mnemonics used in these two figures.

RECEIVE MODULE MNEMONIC LIST

Ack (acknowledge) Positive response field in a connect message.

Adrcke (address Clock Enable) Enables called address transfer from receive module to transmit module.

Adrcomp (address Compare) Checks for comparison between received address and receive module address.

Adrsc (address Register Shift Control) Enables the loading of the 24-bit address register.

Akcon (acknowledge/Connect) Indicates positive response to reception of a message from receive to transmit module.

Bsync (bit Sync) Logic "1" indicates demodulator is in sync; logic "0" indicates demodulator is out of sync.

Bufs (buffer Full Set) Decode signal which establishes that the buffer requested is full to the buffer control from the receive module.

Busy (busy) Response field in a SELECT call message which indicates to the receive module that the called party is busy.

Cd (control/Data) Line from receive module which indicates the type of CONNECT block received. Logic "1" implies data; logic "0" implies control.

Clctrl (call Control) SELECT call control field which indicates a control message will follow. (Operator code plus start bit -- 11101100)

Cldata (call Data) SELECT call data field which indicates a data message will follow. (Operator code plus start bit -- 11100011)

Cnctrl (connect Control) CONNECT message supervisory opcode. (Operator code plus start bit -- 11110000)

Cndata (connect Data) CONNECT message data opcode. (Operator code plus start bit -- 11111111)

Cn0021 a bit counter decode of count 21.

Cn0022 a bit counter decode of count 22.

Cn0044 a bit counter decode of count 44.

Cn0052 a bit counter decode of count 52.

Cn0062 a bit counter decode of count 62.

Cn0093 a bit counter decode of count 93.

Cn0103 a bit counter decode of count 103.

Cn0128 a bit counter decode of count 128.

Cn1046 a bit counter decode of count 1046.

Cn1077 a bit counter decode of count 1077.

Cn1085 a bit counter decode of count 1085.

Cninc bit counter clock line.

Cnzo bit counter reset line.

Conn (connect) Positive response field in a SELECT call message.

Cnt (counter) Modulo 2048 counter to count message bits.

Intsq (initialization Sequence) Normally a logic "0." Generates a one shot logic "1" after 1537 zeros have been counted on the line.

Lpclk (loop Clock) Clock line from Regenerative Tap (RGT).

Listp (local-Intermediate Loop Strap) Logic "1" enables MGC poll generator for local loop polling.

Lpbsy (loop Busy) Indicates receive module may be in the process of receiving a call.

Nak (negative Acknowledgement) Negative response field in a CONNECT message.

Nakbsy indicates negative response to reception of any message.

Opcne (opcode Counter Enable) Enables the modulo 8 counter 368 to increment.

Opcnt (opcode Counter) Modulo 8 counter 368.

Opcnt7 decoded count 7 of operator counter.

Opsc (opcode Register Shift Control) Enables the loading of an 8-bit opcode register.

Parchk (parity Check) Signals good message parity.

Parscd (parity Shift Delimit) Delimits parity check field.

Pla (poll Active) Enables poll delimit to be sent to the transmit module when a poll is detected.

Poc (power On Clear) Establishes all initial conditions for receive module during system connection.

Poll (poll) Signal for activating non-priority loop devices (Operator code -- 1000000)

Poldel (poll Delimit) Signal to delimit loop poll condition to the transmit module.

Prepoll (prepoll) Start bit signal for activating priority (Red) units and for alerting non-priority (White) units that they may be activated on the next message if they are in the next position on the loop after the last white unit to transmit. (Operator code plus start bit -- 10000000)

Rbscc (receive Busy Select Call Control) Busy to a SELECT call control message.

Rbscd (receive Busy Select Call Data) Busy to a SELECT call data message.

Rdtdel (receive Data Delimit) Signal which delimits the control parameters or data portion of a CONNECT message.

Resdel (response Delimit) Signal which delimits response field to the transmit module.

Rxdat (receive Data) Data line from RGT.

Senppol (send Prepoll) Requests the transmit module to send a prepoll signal or start bit.

Te (tap Enable) Synchronously routes data from regenerative tap unit (RGT) to receive module after POC.

Xmtac (transmit Active) Signal which delimits the condition which implies that the transmit module has sent a SELECT call message.

The purpose of the receive module is to take the incoming message and check its operator, address and response portions to determine the type of message being received along with checking its parity to make sure there are no mistakes in the message before transferring the message into the data buffer and/or indicating to the transmit control section of the LRT to send a return response of ACK, NAK, etc. The message used in one embodiment of the invention comprised first a start bit of one digit, an operand or operator code of seven digits, a called address vector of 24 bits, a data portion of either 40 or 1,024 bits depending upon the operator portion, a check field of 24 bits, and a response field of 8 bits. The 40-bit data field is utilized for control messages while the 1,024-bit data field is used for data messages. The operator register 354 is enabled from the OPSC input and the output is decoded via decode block 360 which provides an input to sequence control 352. The address register 356 is enabled by the output ADRSC for comparing the received address with the address supplied from the address strap input to address compare circuit 362 to determine whether or not the address is the same as the present station. The address strap is used so that the address of a station can be changed to any given call code.

The response register 358 continuously receives input data and the output is merely ignored until the proper time. This proper time is obtained by checking the operator to determine whether a call word is a data or control message and then using the bit count decode 372 and the operator counter 368 to determine the proper time to start checking the response decode and the ending of this check 8 bits later. Since the time at which parity check occurs depends upon the type of word, this circuit is also dependent upon the response obtained from operator decode 360. Thus, an input labeled parity shift delimit is utilized to enable the parity check circuit only during the proper time.

Returning to the address compare section it will be realized that if the station incorporating the receive control module is awaiting a call, the address should compare. However, if the station has just transmitted a call and is awaiting a return of that call to determine the response, the address will not compare.

The response register and its decode 364 are utilized to determine whether the call which is returned contains a busy or connect signal or an acknowledge or not acknowledge response. There will on occasion be a faulty return word wherein the response section is such that none of these responses is decoded. This bit of information is also provided to the sequence control unit. As will be ascertained from a study of the discussion in connection with FIG. 3, the sequence control utilizes this information also.

RECEIVE CONTROL MODULE FLOW DIAGRAM

FIG. 3

Since the block diagram of FIG. 2 can be implemented utilizing a plurality of logic circuits and registers and since these circuits can be implemented in such a variety of ways, it is believed that a flow diagram of the operation of FIG. 2 will provide more information to one skilled in the art. In this manner the apparatus can be easily programmed into a computer in practicing the invention. However, since the flow diagram is quite detailed, the physical circuit design will also be apparent from an understanding of the flow chart.

The flow charts of FIG. 3 are divided into five pages labeled 3A to 3E. Normally, a receive module is a passive unit although it is responsible for initiating a prepoll if it was the last device to react to a poll in its order of placement on the loop. A local-intermediate loop strap is utilized in a MGC to force a return to state 2 (RST2) whenever the device reaches a state indicated as AG as shown in FIGS. 3B, 3D, and 3E. This strapping operation is performed upon installation of the device and is included to illustrate a universal embodiment even though not required as part of the explanation of the SCU unit operation which has the inventive subject matter of this application.

Referring now to FIG. 3B, a POC or power on clear signal is supplied to state 44 after actuation of the device. The device will then set the tap enable to zero and pass to state 45.

In the present flow diagram and the remaining flow diagrams, it should be noted that the blocks for each state have upper and lower portions. The upper portion defines an immediate action upon state entry. The lower portion of the block defines a clocked action on exit from the state. The symbol ":" denotes an action which occurs upon entering a state, or immediately thereafter, and exists only during the existence of that state. Thus, such an action cannot, by definition, occur during the bottom portion of a flow chart block. The symbol ".fwdarw." denotes a setting, which is often a flag or flip-flop setting, external to the flow diagram actions. This ".fwdarw." symbol is a "permanent" setting, which remains until set otherwise and can occur either upon entering (top part) a state or upon leaving (bottom part) a state. Thus, the receive module remains in state 44 as long as power on clear (POC) is present. The first clock occurring after POC is removed causes a change from state 44 to state 45. While the receive module remains in state 44, tap enable (TE) is set at logic "1." Upon completion of POC during state 44, the device is ready to enter state 45 upon receipt of the next clock at which time TE is set to logic "0."

As will be noted, state 45 receives three other inputs besides the one from state 44. The device remains in state 45 until the initialization sequence (logic "1") is obtained from the RGT. Prior to this time the device remains in an idle or recirculating condition since the output of the initializAtion sequence quadrangle continually indicates that the inItialization sequence line is zero. On the simultaneous occurrence of a "1" and a clock signal to the sequence control, the device proceeds to state 1. As the device passes through state 1 the poll active signal is set to one to enable a poll delimit signal to be sent to the transmit module when a poll is detected. The opcode counter 368 is set to zero and the loop busy output is set to zero. The device then passes to state 2 and idles there until a start bit is received indicating the possible commencement of data.

The character which looks like a backward C in both the upper and lower portions of the state 2 block should be interpreted in this specification to mean "means the same as, or implies." Thus, upon each passage of the idling status through the data decision block the error check circuits are reset. Upon the occurrence of the start bit or first data bit the loop busy lead is set to a one, and the opcode register shift control and opcode counter enable are momentarily set to one.

In state 46 the second bit is examined at which time the count is set to zero. If the second bit is a zero it will proceed as a prepoll indication to state 47. If the second bit is a logic 1, the device will know this is not a prepoll and is either a poll or a call. Thus, it will proceed to state 3. During the existence of state 46 the poll delimit line will be set to a one if the poll active flag is a one and the opcode register shift control and the opcode counter enable are momentarily set to a one.

Assuming the second bit is a logic zero, the device in state 47 will return the opcode counter 368 to zero and the loop busy output to zero. Further, the poll active sIgnal is set to one if not previously set there.

If the second bit is a logic '1 thereby indicating that the received message is not a prepoll, the device in state 3 will examine the third bIt. If the third bit is a logic 1, the apparatus will realize that the received message is not a poll and will proceed to state 5. However, if the third bit is a zero, a poll is indicated and the device will go to state 4. In state 3, the opcode register shift control and opcode counter enable are again temporarily set to one. Further, if poll active is still a one from state 1 or is a one for some other reason, the poll delimit is set to a one.

Assuming the condition of the third data bit is a zero, the apparatus enters state 4 where the op count, and loop busy are again set to a zero while the poll active is set to "1" if zero or if already a "1" causes the poll delimit to be set to a one. The device then returns to state 2 and again waits for a start bit. However, if the third bit is a one, the device knows that this is not a poll and proceeds to state 5. It remains circulating in state 5 until the operator counter 368 provides a count of 7. On each clock bit through state 5 the OPSC and OPCNE are set to a one temporarily. When the counter 368 reaches a count of 7, the device proceeds to state 6. This count of 7 is 7 plus the bit which allowed the apparatus to pass through the states 2 and 46. Thus, as the device reaches state 6, there are actually 8 bits or clock pulses since the first data bit was received.

It should be noted at this point that the operator counter must have already triggered the enabling mechanism to a count of 7 before it can detect such a count. Thus, it returns to state 7 after the count indication is 7 and upon leaving for state 6 it adds one more pulse thereby resetting the modulo 8 counter 368 to a logic 0 for later counts such as the count of 7 following state 29 in FIG. 3D and other portions in the flow diagram.

In state 6 the decoded output from operator decode 360 is checked by the decision boxes. If the operator decode provides anything other than a connect-control, a connect-data, or a call-control and call-data, the device will proceed to state 45. The passage through state 6 will activate the address register shift control lead to a temporary one even though the opcode indicates improper operation.

If the output from the operator decode 360 indicates a connect-control, the device will proceed to state 7. The bit counter 370 was started counting at the same time that operator counter 368. The device will stay in state 7 until bit counter 370 reaches a count of 104. At this time the decode 372 provides an output which enables the device to change from state 7 to the decision block LISTP in FIG. 3D. If the unit is in a MGU, the device will proceed to state 43; and as it passes therethrough, will send a prepoll and return to state 1. However, in most installations the device will be strapped to a zero and the device will return to state 2 directly and await the reception of another data or start bit.

If the operator decode provided an indication of connect-data in the decision block of state 6, the device would proceed to state 8 where the device would remain in an idling or recycling state until the decode counter 372 reached a count of 1,086. The count of 1,086 is the length of a complete data message including the header, parity check, and response sections. Upon a count of 1,086 the device again proceeds to the decision block in FIG. 3D where it sends a prepoll or returns directly to state 2.

The reason for the MGU initiating a prepoll on the local exchange loop is to give it priority on sending messages. When the operator decode indicates that there is a CONNECT message on the loop, the MGU merely waits until the message has passed and sends a new prepoll so that further devices on the loop can respond with calls. If the MGU has a message from the intermediate exchange loop which it wishes to place on the local exchange loop, it merely withholds the prepoll bit and instead sends the message out to the appropriate device on the local exchange loop.

Later in the flow diagram the receive control module will react differently to a CONNECT message.

It will now be assumed, after returning to state 2, that a further message is decoded which is either a call-control or a call-data message. In this event the flow sequence leaves state 6 through the decision control block and proceeds to state 9 in FIG. 3B. The apparatus reaches state 9 at the time of the first bit of the called address portion of the data word. Thus, the address register shift control lead is set to a one and the bit counter is incremented for 22 bits until the bit count decode 372 supplies an output indicating that count 22 is reached. Upon receipt of this signal, the device moves to state 17. The address register is no longer activated since it is only activated long enough to admit 24 data bits into the address register. The 24 bits are obtained by one bit being entered from state 6 and 22 bits being entered from state 9 before the apparatus makes its final loop through state 9 and finds that the 22nd count occurred as it left the decision block with a "no" indication on the previous recycle. In other words, the count is incremented after the decision is made whether or not the count equals the desired amount. Thus, 23 counts are obtained from state 9 and one count is obtained from state 6 to make a total of the 24 counts for the called address vector.

It should be noted at this point that while both the operator counter 368 and the bit counter 370 were set to zero in state 46, the operator counter is already incremented by the setting to one of the OPCNE lead in the upper portion of the various state blocks. The bit counter is already incremented by the CNT = CNT + 1 in the lower portion of the blocks. Thus, the count of 22 during state 9 had not been previously affected by the count indicated in state 5.

From the decision block indicating a count of 22 has been reached, the device now enters state 17 where it awaits an output from address compare 362. If the address compares, the device proceeds to state 26 on FIG. 3D. As it leaves state 17 the parity shift control delimit is temporarily set to one and since the address did compare the loop busy is set to a zero. If the address did not compare then, of course, the loop busy would be left alone. In state 26 the device idles or recycles for a number of bits while advancing the count register until on the 46th counted bit the device proceeds to state 27. As may be noted from FIG. 26 of the referenced application, a SELECT mode call may contain a parity check section for the 24 bits after the called address vector. Thus, an output is obtained from parity check circuit 366 and the sequence control determines whether the parity checked or did not check. If parity did not check the device proceeds directly to state 29. As may be ascertained from the lower portion of state 27 the occurrence of a parity not checking will reset the loop busy line to a logic "0." In state 29 the opcode counter enable circuit is temporarily set to one on each circle of the recycling device until a count of 7 is reached and then upon the next cycle the device proceeds to FIG. 3B and enters the strap decision block prior to state 42. If the device is anything other than a MGU, the apparatus will return to state 2 and again await an incoming data bit. However, if it is a MGU, the device will proceed to state 42 and wait for a count of 256. The error check circuits are reset on each cycle. If prior to count of 256 a data bit is detected, the device will proceed to state 3 of FIG. 2A. However, if no data bit is detected prior to count 256, upon reaching count 256 the device will proceed to state 43 on FIG. 3D where a prepoll will be sent and the device will return to state 2 to await the return of the prepoll, a poll, or a further data message.

Returning to state 27 it may be assumed that, instead of not obtaining a parity check, a parity check is obtained. If either RBSCC or RBSCD is a logic "1" along with an indication of parity check, the device will proceed to state 28. The raising of either of these lines indicates that the station is busy to any calls whether control or data.

In state 28 the response delimit is raised to a "1" as well as raising the operational counter enable to a "1." The device then proceeds to state 29 and continues as previously described to state 42 to send a prepoll if it's a MGU or returns to await further data bits if the device is not a MGU.

If the parity checks and neither of the receive busy SELECT call lines are raised to a "1," the device proceeds to state 30. It cycles through state 30 for seven counts until on the 8th count it passes to state 31. As before the 8th count returns the operator counter to a logic zero condition so that it may be operational for future counts. During each cycle the response delimit, the opcode counter enable, and the acknowledge/connect lines are placed in a logic "1" state.

The device then proceeds to state 31 where it awaits the receipt of additional logic bits. The raising of the acknowledge connect line in state 30 to a logic "1" supplied a signal to the transmit control block enabling it to supply the proper response in the final 8 bits of the SELECT mode call word to be returned to the calling device. The receive control block is now awaiting a CONNECT message from the calling device. When the device receives its first data bit the opcode counter enable and the opcode register shift control leads are placed at a logic "1" temporarily while the count is shifted to a "0." In state 32 the device recycles for seven counts during each of which the opcode register shift control and opcode counter enable leads are temporarily placed in a logic "1" condition. On the next clock after the 7th count the device proceeds to state 33 of FIG. 3D. As the device passes through state 33 the address clock enable is set to "1." Since 8 bits have passed since the first data bit was received, the operator decode 360 provides an output signal. If the output is a connect-control and the control-data line is a logic "0" or the output is a connect-data and the control-data line is a logic "1," the device will proceed to state 34. If neither of these conditions exist, the device will proceed to state 45 and await another initialization sequence. This procedure is taken because the arrival of the wrong CONNECT words at this time would indicate that either the calling or the called device is inoperative.

However, assuming that the control data lines in the operator section of the CONNECT word correspond, the device will proceed to state 34. It will stay in state 34 for 22 counts until on the 23rd count the device proceeds to state 35. As will be ascertained, during each of the recycles in state 34, the address clock enable is set to a "1" while the count is incremented. Upon reaching state 35 the 24 address bits will have been entered into the register 356 of FIG. 2 and decoded in comparator 362. The device stays in state 35 and continuously increments the counter until the count reaches 62 or 1,046. During each of these cycles the received data delimit signal is placed in a logic "1." If the control-data line is a logic "1," the apparatus counts to 1,046 to allow the passage of the full data message. However, if the control data line is a logic "0," this indicates a control word and only a count of 62 is required. Upon the attainment of the required count, the device proceeds to state 36 where, upon passing to state 37, the parity shift control delimit is set to a "1" temporarily while the loop busy and count leads are placed in a logic "0." The device stays in state 37 for 22 counts while incrementing the counter until on the 23rd count the device proceeds to state 38. The 23 counts necessary to go through state 37 plus the one count for state 36 allows a parity check after the passage of the message. Thus, a parity check is made in state 38. If parity does not check, the device proceeds to state 40 where a count of 7 is completed during which time the response delimit and opcode counter enable are each set to a one. On the 8th count the device proceeds to state 41 on FIG. 3E. If the parity does check, the device proceeds from state 38 to state 39 whereby the acknowledge connect line is raised to a "1" in addition to the response delimit and the opcode counter enable being set to "1." Again, this state idles for a count of 7 and the device proceeds to the strap prior to state 41.

As will be ascertained, if the parity did not check, no acknowledgement would be sent to the calling party. However, since the parity did check, an acknowledgement was sent so that a further message portion could be transmitted. If the device is anything other than a MGU on the local loop side, the device proceeds to state 2 and awaits a data input signal. If, however, the device is a MGU, the device proceeds to state 41 where the opcode counter enable is set to a "1" and the apparatus waits 7 more counts before proceeding to state 43 where a prepoll is sent and it now returns to state 2.

Previously, the apparatus was followed through to state 17, in FIG. 3B, where it was assumed that the address compared. However, if the address does not compare, the device proceeds to state 10. It stays in state 10 for 53 counts. If after the 53rd count the transmit active signal is a logic "0," the device proceeds to a strap decision block above state 42 on the same sheet. Again, depending upon whether the device is a MGU or not, the device may or may not supply a prepoll output before returning to state 2.

If, upon a count of 53, the transmit active signal is a logic "1," thereby indicating that the reason the address did not compare was that a call had just been sent out and it was now being received, the device proceeds to state 11. The response field is examined by decode network 364 and if a busy signal is supplied the device will proceed to state 12 where the response delimit is set to a one temporarily and the poll active is set to a zero. The device then proceeds to state 2 to await a new data bit. If the decode indicates that the response is not busy and if further there is no connect signal, the device will proceed through state 13 to state 2. Again, the response delimit is set to a one.

If the response decode indicates that a connect was received, the device proceeds to state 14 and as it passes therethrough sets the response delimit to a "1" and the acknowledge-connect lead to a logic "1." The device then proceeds to state 15 where it awaits the reception of further data. When further data is received, the opcode register shift control is set to a "1" as well as the opcode counter enable lead. The device proceeds to state 16 where it waits the 7 counts necessary to have the operator section of the work decoded. Each cycle around stage 16 the opcode counter enable and the opcode register shift control is temporarily set to a one. After the 7th passage the device proceeds to state 18 where the operator decode signals from 360 are examined. If the output is connect-data, the device proceeds to state 19 where a total count of 1,078 is obtained before proceeding to state 20. If the operator is decoded as a connect-control signal then the device proceeds to state 23 where it waits 94 counts before proceeding to state 20. In either case, by the indicated counts upon reaching state 20 the response field is in the response register. As indicated previously, the data continuously runs through the response register 358 and may be examined at any time via the response decode block 364 by the sequence control block 352. The response decode is now examined and if it indicates that there is a negative acknowledgement, the device proceeds to state 21 where the response delimit is set to a "1" temporarily and the poll active is set to a zero before proceeding to state 2 and awaiting a new data bit. However, if the response is an acknowledge, the response delimit is temporarily set to a "1" and the acknowledge connect is set to a "1" so that the transmit control unit knows that a positive response has been obtained. The device again returns to state 2 to await new data bits. If neither an acknowledge nor a negative acknowledgement is received, the device proceeds to state 25. As the apparatus passes through state 25 the response delimit is set to a "1" and the device proceeds to state 45 to await an initialization sequence thereby indicating that the present circuit apparatus is apparently inoperative.

After reaching state 18, if the operator decode block 360 indicates that the operator is neither a CONNECT data or CONNECT control, the apparatus proceeds to state 24 and counts 1,078 before passing to state 25 and thereafter to state 45 to await an initialization sequence. Again, receipt of either a signal indicating that it is not a CONNECT block in state 18 or an improper acknowledgement in state 20 indicates that the circuitry is inoperative and requires a return to the initialization sequence to ascertain if the circuitry can be made operative on a new attempt.

To summarize, the receive module awaits the start of a message; if it is a poll or a prepoll, it ignores it other than to inform the transmitter module and awaits an actual message. If the message decoded is anything other than a call, at initial conditions, the device returns to waiting for further messages after an appropriate time interval. When a call is received and the address does not compare, and the device further knows that it is its own call previously sent, it is examined to see if the response field indicates a connect. The next reception of data should again be a word transmitted by the transmit control portion of the associated device, the device awaits the CONNECT data or CONNECT control word which it examines to make sure that it is acknowledged before returning to its initial waiting state. If the address does compare, the device checks parity, the control/data lines and whether or not the station wishes to stay in a busy condition before proceeding to receive the CONNECT word. When the CONNECT word, either data or control, is received, its parity is checked and an acknowledgement is supplied before returning to the initial state.

TRANSMIT CONTROL MODULE

FIG. 4

The transmit control module normally remains in an idle condition and allows the passage therethrough of loop data as received from the receive control module. As previously indicated, the transmit control module delays the data by a half bit time period. This is accomplished in a J-K flip-flop 380 constructed very similar to that found in the receive control module of FIG. 2. The incoming data to the transmit control module is received on lead 382 to a sequence control No. 1, block 384. This data leaves control block 384 on a lead 386 to the J-K flip-flop 380 and leaves from the true output of the J-K flip-flop. A further input lead 388 to a sequence control unit No. 2 designated as 390 provides an indication that a buffer has been filled with data to be transmitted. Upon completing a sequence of logic steps, the control block 390 supplies an input on a lead 392 to the control block 384 that data is available to be transmitted by the transmit control module. A block counter and bit count decode block 394 is illustrated with clock, reset, and count enable inputs and with a plurality of outputs providing an output decode of count 0, 30, 32, 53, 72, 95, 100, 1,056, 1,079, and 1,084. All of these decoded outputs are supplied back to the control sequence block 384. A further output of the sequence control block 384 is BUFRS supplied to a response buffer 358 in FIG. 2. There is a response counter and generator 398 which receives an input of response count enable from block 384 and an acknowledge/connect input from the receive module of FIG. 2. The counter 398 supplies outputs of response and response count 7 to control block 384. A limit counter 400 receives inputs of limit count 1 enable and reset limit count 1 while providing an output of limit count 1. A further limit counter 2 is designated as 402 and it receives inputs of limit count 2 enable and reset limit count 2 while again providing an output indicative of limit count 2. A parity generator block generally designated as 404 receives as inputs a clock, a parity generator input, a parity generator register reset, and a parity clock enable. The parity generator holds 23 bits and provides an output to the sequence control block 384 of parity data. An opcode generator block 406 receives an input of transmit control/data (TXCD) from the control block for the data buffer or from the station interface buffer and receives further inputs of parallel load 1 or parallel load 2. The output of the opcode generator 406 is supplied in parallel to an opcode register 408 of 6 bits. The parallel load inputs to generator 406 enables the loading in parallel to register 408 of SELECT or CONNECT opcodes. An address register 410 is illustrated having several serial inputs such as a third party input, an address data input, and a gated clock input. The register 410 contains three 8-bit areas of subscriber, exchange, and area code data bit messages. Each 8-bit area or field contains a 6-bit address and a 2-bit prefix. The area code prefix is -01, the exchange prefix is -10, and the subscriber prefix is -00. Where the device being addressed is a processor rather than a subscriber, the address is -11. Although not pertinent at the present time, the system may be designed to have a party line with a plurality of stations connected to a single SCU; and if so, an extension number would be included as an 8-bit address in the first CONNECT message sent to the called station as shown in the referenced application. The three portions of block 410 and a similar register 414 are drawn in different sizes for convenience although in actuality each contains an 8-bit register section.

The sequence control block 384 also supplies an input of register clock enable to 410 along with register in (REGIN). A final serial input to block 410 is a normal clock input. Further register 414 which is utilized as a third party address register, receives the same serial inputs as did register 410 and additionally receives a parallel input from intercept station address block 412. Each of the registers 410 and 414 provide an output through an OR gate 416 to the opcode register 408. The intercept address block 412 receives a serial input from control block 384 labeled intercept station address enable (ISADEN). When this lead is raised to a logic "1," the intercept station address is parallel loaded into the address register 414.

Most of the inputs to control block 384 have already been listed; but there are several more such as the MGU strap input (MGUSTP) which may be set upon production of the device. Further straps are the local/intermediate strap (LISTP) and (Red) priority strap. If the transmit control module is to be placed on the local loop side of a MGU, the LISTP is set to be a "1"; and it is set to be a "0" if it is on the intermediate loop side of the MGU. The Red strap is set to a logic "1" to provide a priority SCU unit. A further input is poll in (POLIN) for indicating to the control block not to send a poll. The control block 384 supplies an output labeled alarm (if used in a SCU) to the station interface that the set limit number of busy or NAK responses were received and indicated by limit counters 400 and 402, respectively. Another output is a transmit delimit (XMTDEL) which output is supplied to the station interface or to the data buffer control for obtaining the data to be transmitted via line 382. A buffer reset (BUFSR) output is also utilized to reset the buffer full lead 388 to its logic "0" condition. A final output of block 384 is transmit active (XMTAC) which is supplied to the receive module of FIG. 2 to indicate that a message is being transmitted and that the device is thus busy.

A further input to block 384 is data which is the input from the receive control module of FIG. 2 delayed by one-half bit in time. This data, during normal idle conditions of the transmit control module, is merely transmitted through block 384 to the data-out line 386. Another input is poll delimit (POLDEL) received from the receive module and indicating that a poll has been received from the loop. Response delimit and acknowledge-connect are two further input leads to block 384. The response delimit informs control block 384 when it should look at or send a response as indicated by the acknowledge connect line. A final input is the transmit control/data line which was previously indicated as being supplied to opcode generator 406. It should be noted that, although not previously mentioned, several of the other blocks such as 380, 390, and 394 receive clock inputs.

As indicated, messages are sent in the referenced system application from node to node or station to station along a closed loop path. In order to determine whether or not the next station is busy, a SELECT mode call is sent; and if the response section of this word is changed to a connect, the data or control word is then supplied in a CONNECT mode word. The device being called may already be connected to a given party. However, from the format used in the present embodiment of the invention, the party receiving the SELECT mode word does not know whether the SELECT call word is coming from the party to which he is connected or from a third party. Thus, he must reply with a connect so that he can either receive the data or control word. If the word is from a third party, it will be a branch call control message of a CONNECT word block. Thus, it will contain the address of the calling party. The called device will decode the branch call portion of the word and determine that it must now send a SELECT call and CONNECT mode control message back to the third party indicating that, although it accepted the SELECT word, in actuality it is busy to third party messages. Thus, the return message has the calling party's address in the called address vector portion thereof, and the reply word is the busy control message word as shown in FIG. 26 of the referenced application.

Applying this information to FIG. 4 it will be noted that the data normally is supplied directly through control block 1 (384). When the device is not connected to anyone, it responds to a call with a connect and then when it receives the control branch message the calling party's address is placed in the register 414. This information is retained so that the device can return a disconnect or supply CLCK messages back to its connected station. At the time that the calling address is stored in register 414, the response section is changed to a connect so that the calling buffer will determine upon examining the response section that the two parties may be connected. The called party then sends out a SELECT call and CONNECT CLCK to the calling party indicating a "connection."

If the device now receives a third party SELECT call, the device, not knowing that the calling party is a third party, will change the response section to a connect and await the CONNECT mode word. If by some inadvertence this CONNECT mode word were a data message, the device would, of course, accept the message as coming from the connected party rather than a third party. However, the apparatus is designed such that this will not occur. Rather, any message from a third party which was not connected to the present device would have as its CONNECT mode word the branch call control message. The address information from the branch call control message is supplied to block 414, where it will be available for sending a reply of a busy control message to the party in the next available instance.

When the transmit control module supplies output data, this information is supplied through the parity generator 404 so that the parity count can be checked and a parity code can be generated. At the appropriate time, the parity information is supplied to the message and transmitted as part of the overall message. This section of the message is referred to as a "check."

The transmit control device will receive, on occasion, a negative acknowledgement or a busy signal from a party which is being called. Each consecutive occurrence of negative acknowledgement or busy is recorded in the limit counters 400 and 402. If more than the set number of busy signals are consecutively received, the alarm lead is raised if the transmit control block is in a SCU. If the transmit control module is in a MGU, the MGU will merely issue a poll. If the transmit control module is on the local loop side nothing further will be done with the message and the calling party on another local loop will, after a predetermined amount of time, attempt to send the message again. If the transmit control section is on the intermediate loop side of the MGU, the intercept station address will be loaded into address register 414 and the message will be sent to an intercept station (not shown specifically).

The response counter 398 is utilized to count the number of bits in the response section of the received SELECT or CONNECT mode words and to generate a new response if indicated to do so.

TRANSMIT CONTROL MODULE FLOW DIAGRAM

FIG. 5

A flow diagram is presented in FIG. 5 of the block diagram of the transmit control module of FIG. 4. As may be ascertained from the following step-by-step description of the flow path of FIG. 5, the transmit control module awaits the receipt of a start bit at the data-in line and a ready-to-call indication. If the start bit is anything other than a poll or a prepoll when the device is strapped as a RED priority unit, or if there is no ready-to-call indication, the device returns to its idle state. Two exceptions to returning to the idle state immediately are if it has been asked to send a poll or if it has been asked to send a response. If it has been asked to send a poll and it is ready to call, it will send the call rather than the poll. This, of course, only happens to the transmit control module which is on the local loop side of a MGU. The call will be sent and the device will return to its idle state awaiting a return of the message to the receive control module for examination of the response return.

Returning to the situation of the device being polled and being ready to call, the transmit control module will send out the operator code and the address from the registers 408 and 410 of FIG. 4. The address register 410 was previously filled with an address by a previous CONNECT call. The parity bits are now transmitted and then zeros are transmitted while the device awaits receipt of the SELECT mode call from the next node. When the message is returned with the appropriate indication in the response section, the transmit control module either notes that it is busy and increments the busy limit counter and then, depending upon whether the transmit control module is part of a MGU, sends a poll or awaits further instructions. By awaiting further instructions it is meant that the device will await the next poll (or prepoll if RED) while still containing the ready to call indication so that upon the next poll a further SELECT call can be transmitted. If the response is a connect signal, the busy counter is set to "0" and the CONNECT mode block is assembled by sending the data from the address and opcode registers 408 and 414 onto the output line preparatory to sending the data or control bits and then sending the parity bits. If the device is a MGU, a poll will be sent thereafter. However, for other units, a response will be awaited from the called station to see if it is negative or positive acknowledgement. If it is a negative acknowledgement the appropriate limit counter 402 is incremented. If the number of negative acknowledgements exceeds the prescribed maximum the message is sent to the intercept station if on the intermediate exchange loop and the message is dumped if on the local exchange loop. If the allowable number of negative acknowledgements has not been exceeded, the device returns to its initial state. If the response is a positive acknowledgement, the buffer full line is reset as well as the negative acknowledgement counter and it now returns to the initial state.

Keeping the above information in mind and further noting that there are two sequence control blocks 384 and 390, the flow diagrams will be described. Since the flow diagram for 390 is very short it will first be described from FIG. 5D. Upon receipt of the power-on-clear signal, control 390 awaits the receipt of a buffer full indication from the station interface module or from the buffer control unit of the MGU. When this indication is received, the apparatus proceeds from state 21 to state 23 wherein either a SELECT control call or SELECT data call opcode is parallel loaded into the opcode register 408 by setting PALDE 1 to a logic "1" condition. The device then proceeds to state 23 and places a logic "1" on the ready call lead 392 to sequence control block 384. The device then remains in this state and recirculates until the buffer full lead is changed from a logic "1" to a logic "0" by the buffer reset (BUFRS) output lead of control block 384. Upon the buffer full lead being returned to zero, block 390 returns from state 23 to state 21.

Block 384 awaits the power-on-clear signal from other circuitry in the device and when it is received goes to state 1. It stays in state 1 as long as the input conditions correspond to conditions TT. TT is expanded upon at the bottom of FIG. 5A as being the conditions of no response delimit signal and no poll delimit or no ready call signal or last signal and no send poll or no ready call signal or a poll in and no poll delimit or no last signal. As will be noted by the upper portion of the state 1 block, the TT detection keeps the data-out line directly connected to the data-in line and there is merely a direct connection through block 384 of data received from the receive module. On each circulation through state 1, the parity generator register is reset. It should be remembered as mentioned in conjunction with FIGS. 3 that the setting of any logic in the bottom portion of a state causes that indication to stay until it is changed by another state. The top portions are temporary changes and only occur upon each passage through the state. Thus, on the first passage the count in counter 394 is set to zero. However, the device will immediately start counting when it leaves state one and encounters CNTEN in later states.

When a response delimit signal is received by the device it will proceed to state 5. The response delimit output causes the connection of the output of the response generator 398 to be connected to the data output line and for the response counter in 398 to be incremented by one. The device stays in state 5 until the counter equals seven and then returns to state 1. Basically the response delimit is to add a response to a received message for the station signifying that the device acknowledges the received message whether it is a SELECT or CONNECT message.

While the response delimit also occurs if a word is received back which has previously been transmitted, this sequence of events occurs later in the flow chart.

If the transmit control module receives both a ready call signal and a send prepoll signal while simultaneously having a logic "0" on the POLIN lead, the device will go to state 2. It should be noted at this point that the device will proceed from state 1 to state 2 only when the transmit control module is on the local loop side of a MGU. Further, it should be noted that this will occur only when an input bit is not being or has not been received. In other words, the transmit control normally has received 1 logic bit at the same time that the receive control module receives a bit and thus the device will not leave state 1 to proceed to states 4 or 24 until the occurrence of the second logic bit. The receive control module cannot provide the appropriate logic level changes on the poll delimit lines until the second logic bit. Therefore, the device will enter state 4 or 24 after the second logic bit and in preparation for working with the third logic bit. However, states 2 and 5 will be entered after the first logic bit so that the second logic bit will be operated upon in states 2 and 5. For this reason state 2 is required in the SENPPOL and RDYCAL and POLIN path in order to provide the second logic "1" bit before rejoining the POLDEL and RDYCAL and LAST branch in state 3.

Thus, when the SENPPOL and RDYCAL lines are set to a logic 1 and the POLIN path line is set to a logic 0, the device will leave state 1 while setting the data output to a logic 1 and enter state 2. As further shown in the lower portion of state 1, the count is set equal to zero and if response delimit is equal to zero the response counter is also reset to zero. The second data output bit is also placed in a logic "1" in state 2, and the device passes to state 3. In state 3 the count enable is set to a "1" temporarily as well as connecting the output of opcode generator 408 to the data output lead and also connecting the output of 408 to the REGIN for returning or recirculating the address back to register 414. In addition the parity check enable is set to a logic "1" along with the register clock enable for shifting the address and opcode out of the appropriate registers. A final setting in the top part of state 3 is connecting the parity generator to the output so that parity generation can proceed. As will be noted, the transmit active line is set equal to one in the lower part of state 3 and the device idles in state 3 until a count of 30 is obtained. When a count of 30 is reached, the device proceeds to state 7. State 2 only occurs in the transmit control module in the local loop side of a MGU. In all other units the device proceeds to state 4 upon simultaneous reception of a poll delimit and a ready call and LAST. If the device in which the transmit control module is a priority or RED unit, the output line is set equal to one. However, if it is not a priority unit the output line is connected to the input line. Thus, if the signal being received is a prepoll and the device is not a priority unit, the second bit will remain a logic 0. If the unit is a priority unit and it has a message ready to send, it will change the second bit to a logic 1 so that a call may be consummated. If the word coming in is a call, the non-priority unit will merely pass this logic bit while the RED priority unit will write over the logic 1 with a second logic 1.

In state 4 the various settings of the top portion of state 3 are initiated if the decision block of state 4 determines that there is either a second poll delimit or a priority unit without a poll delimit. If the device is a non-priority unit and there is no poll delimit there is a return to state 1. This causes the output line to be connected to the input. Thus, a received prepoll to a non-priority unit remains as a prepoll and is passed to following devices. A priority unit upon the determination of no second poll delimit will proceed to state 3 so that a call may be made. The transfer to state 3 connects the output to the opcode generator as as indicated in state 4.

If the decision block of state 4 determines there is a second poll delimit, the device proceeds to state 6. The device will exit from state 6 on the occurrence of the 4th data bit. If it exits to state 1 due to the poll delimit line being down, it will be realized that this is a call and that the output line should remain connected to the input. However, if there is still a poll delimit the device will realize that a poll has been received since the receive module produces three poll delimits in response to a poll. In exiting to state 3 from state 6 the LASTS line will be set to a 1 if the device is a RED priority unit. The setting of the LAST flag is provided so that in the event of an abortion from state 8 to state 9 due to a busy reply, the poll will still be forwarded upon the receipt of the next prepoll. If a non-priority unit exits to state 9, it will set LAST at this time and lose its turn. As will be ascertained from the description infra, the LAST indication is set after normal completion of a message only by non-priority units. The setting is not used when the priority unit is activated by a prepoll since the RED unit has utilized the system out of turn and the use of the LAST flag to change the next prepoll to a poll would prevent normal system operation.

Either a priority unit or a non-priority (RED) may be included on the path from state 6 to state 3. The device idles in state 3 until a count of 30 is decoded at which time the device proceeds to state 7. At the time that the transmit control unit reaches state 7, the 6 bits of the opcode plus the 24 bits of the address have been transmitted. In state 7 the data output lead 386 is connected to the parity data output lead of parity generator 404. The count enable is set to "1" and the parity check enable is set to "1" while the parity generator input is set to a "0." This condition remains for 23 more counts until the count reaches 53. On the 24th count the complete parity check word has been transmitted and the device proceeds to state 8. In state 8 the data output lead is placed at zero while the parity generator register is reset and the opcode register is parallel loaded from the opcode generator 406 by the setting of PALDE 2 to a logic "1." The opcode is loaded with either a CONNECT control or CONNECT data opcode. The device remains in state 8 until the response delimit line is raised to a logic "1" indicating that the receive control module has received the message back, and it is now time for the device to determine whether the response from the call sent out is a connect or busy. If the acknowledgement connect line is a zero from the receive control module, the device proceeds to state 9 where the limit counter 400 is incremented by one indicating that another attempt has resulted in a busy. The transmit active line is returned to zero so that the device can receive further calls. If the LCNTI lead is a one, thereby indicating that the limit of busy signals has been exceeded, the device will proceed to the MGU strap decision block prior to state 18 in FIG. 5E. If it is not a MGU it proceeds to state 20 where the buffer reset is placed in a logic "1" condition, the LAST flag is set to a logic "1" and the alarm is set equal to one and the two limit counters are set to zero. The device then awaits the time necessary for the second sequence control unit 390 to return its output of ready call to a zero condition. When this occurs the device returns to state 1. If the device is a MGU when it leaves the decision block above state 18, it proceeds to state 18 where the data output lead is set to a logic "1." It then enters the decision block LISTP where a one is strapped if the transmit control unit is on the local loop side of the MGU, and a zero is strapped if it is on the intermediate loop side of the MGU. Assuming it is on the local loop side, the alarm is not raised since it is in a MGU and the device eventually returns to state 1. However, if it is on the intermediate loop side (indicated by a logic "0") the device proceeds to state 19 where the intercept station address is parallel loaded from 412 to unit 414 and the two limit counters are set to zero so that the device is now ready to send the message to the intercept station where all non-delivered messages on the intermediate exchange loop are delivered.

Returning now to the decision block below state 9 where it may be assumed that the limit of busy signals has not occurred and the device proceeds to the MGUSTP decision block. IF it is not a MGU the device returns to state 1 and attempts to send the message on the next appropriate prepoll or poll. If it is a MGU, it proceeds to state 10 where a one is placed on the output lead for the purpose of sending a prepoll before returning to state 1.

Returning even further back to the decision block AKCON prior to state 9, it may be assumed that a positive acknowledgement was received from the select word previously sent. In this instance the device will proceed to state 11. In state 11 the new opcode is placed in register 408 and transmission and parity check is commenced. Leaving state 8 had placed the count at zero so the upper portion of state 11 indicates that the count zero and count one conditions places a one on the output lead and the output of the lead from register 408 is not connected for the first two counts. However, the count enable is set to a one for each of the 32 circulations. The register clock enable is set for the counts 2-32. The output lead is connected to the input of the parity generator during each of the 32 recycling operations and after a count of one, the parity check enable is set to a logic "1" so that the parity generator will receive the output message.

As will be noted, upon reaching a count of 32 the transmit delimit lead is placed in a logic "1" condition immediately before proceeding to state 12.

The device remains in state 12 until the count reaches 1,056 or 72 depending, respectively, upon whether the message to be transmitted is a data or a control word. This information is obtained by checking the transmit connect data line to see if it is a logic "1" meaning that the CONNECT block is data or a logic "0" meaning that it is a control word. On each circulation through state 12, the output line is connected to the parity generator as well as to the transmit data line 382 which is connected to the buffer control unit or the station interface buffer. Additionally, the parity check enable and the count enable leads are set to a logic "1" so that counter 394 can count the data bits out and the parity generator 404 can generate parity.

Upon reaching the proper state as determined by line TXCD and the count in bit count decode block 394, the device proceeds to state 13. Upon leaving state 12 the transmit delimit is placed in a zero condition.

In state 13 the parity bits are transmitted by connecting the output of parity generator 404 to the data output lead and placing the parity generator lead to a zero while continuing the count enable and parity clock enable leads at one. By placing the parity generator lead at a zero, the parity generator is automatically cleared by receiving zeros at the input. When the count reaches 95 or 1,079, depending upon the lead TXCD, the device proceeds to the MGUSTP decision block immediately below state 13. If the device is not a MGU, it proceeds directly to state 15 where it awaits return of a transmitted CONNECT block to determine the response. If it is a MGU it proceeds to state 14 where zeros are transmitted until a count of 100 or 1,084 is reached at which time a prepoll is sent out by placing data out to a one. As will be noted, each circulation thereof the count enable is set to a one. Upon reaching either of the prescribed counts, the device will proceed to state 15 where it awaits the return of the transmitted CONNECT block to determine the response.

The reason for sending out the prepoll from the MGU in state 14 is to allow the next device in the loop on the intermediate loop side to receive a poll and transmit a word or on the local loop side to allow the next appropriate device on the local loop to receive a prepoll and begin the process of transmitting a word.

The device stays in state 15 until the response delimit is set to a one. During this time the data out is placed at a zero and the parity reset enable is placed at a one. Further, the counter is set to a zero. When the response delimit is raised to a one, the device proceeds to the decision block AKCON. If the response is negative acknowledgement, the limit counter 402 is incremented and the transmit active is set to zero in state 17. The device then checks to see if the predetermined limit has been reached. If it has been reached it proceeds to the MGUSTP strap in FIG. 5E prior to state 19; and if it is not a MGU, proceeds to state 20 where it proceeds as previously indicated. If it is a MGU it proceeds to state 19 and continues as previously indicated by sending the message to the intercept station. If the predetermined limit has been reached by counter 402, the unit proceeds to state 1. If, however, the acknowledgement is positive, the limit counter 402 is set to zero in state 16. Transmit active is also set to a zero and the buffer reset along with LASTS are placed in a logic "1" condition. As soon as the sequence control block 390 changes ready call to a zero, the device returns to state 1 so that it may respond to other start bits for transmitting data.

From the above flow diagram description it should be apparent that the transmit control module supplies prepoll and polling bits, response sections of messages acknowledging receipt of a word from a calling buffer or node and supplies SELECT and CONNECT messages in responding to a "connected" device. Additionally, it supplies busy responses to third party calls after determining the calling party's address.

MNEMONIC LIST FOR TRANSMIT MODULE OF FIGS. 4 AND 5

Addata address data -- Data received from the receive control module containing third party addresses or received from station interface buffer for address of party being called.

Alarm alarm -- Informs station interface that more than the predetermined limit number of busy or NAK responses were received; this is an output signal.

Bufful buffer full -- Informs transmit control module to place a SELECT call MESSAGE on the loop. This is an input from buffer control or station interface.

Bufrs buffer reset -- Instructs the buffer control or station interface to reset BUFFUL to logic "0."

Cnten count enable -- Line used to enable block counter 394.

Cnt(no.) Count decoded output -- The count number is a specific lead from the bit decode unit 394 indicating that a specific numerical count has been reached. This is an output from 394 to sequence control 384.

Datout data out -- An output from control unit 384 to flip-flop 389 containing the data to be provided back to the loop.

Datin data in -- Input data from the receive module to sequence control 384.

Gtdclk gated clock -- Clock signals from the receive control module for shifting an address into the address register 410. (NOTE: The clock from the receive module may be slightly different from the clock used to send data to the loop and thus two different clocks are used in the transmit module.)

Isaden intercept station address enable -- The line used to parallel load the intercept station address from register 412 to register 410.

Last flag set by last non-priority unit to successfully send a data message.

Lastr line leading to LAST flip-flop for resetting the flag to a logic 0 condition.

Lasts line leading to LAST flip-flop for setting the flag to a logic 1 condition.

Lcnt limit count 1 or 2 -- The lines from limit counters 400 and 402 to the sequence control 384 for indicating that a predetermined set limit for busy signals or negative acknowledgement (NAK), respectively, have been reached.

Lc1en limit count 1 enable -- Enabling lead from control unit 384 to the busy counter 400.

Lc2en limit count 2 enable -- Enabling lead from 384 to negative acknowledgement counter 402.

Listp local-intermediate strap -- This is an input supplied to control block 384 whose value is dependent upon the use for the transmit control module. The input is a logic "1" if the control module is used for the local loop side of a MGU and is a logic "0" if used for the intermediate loop side of a MGU.

Mgustp master group unit strap -- This is an input to control unit 384 which remains constant for a particular transmit control module and is placed at a logic "1" if the control module is used in a MGU and is placed at a logic "0" if it is used in any other device.

Polin poll in -- This is an input from the LDI indicating that a poll has just been received.

Parrse parity generator register reset -- Lead from 384 to parity generator 404 to reset the generator to zero.

Parcke parity clock enable -- Input from 384 to 404 containing the clock utilized by the parity generator for shifting data inputs.

Pargen parity generator -- This line provides data input to the parity generator. When operative this lead is connected to the DATOUT line 386.

Palde1 parallel load enable 1 -- Lead for directing opcode generator 406 to parallel load a SELECT control call or a SELECT data call opcode into the register 408.

Palde2 parallel load enable 2 -- Line to generator 406 for parallel loading a CONNECT control or CONNECT data opcode into register 408. The determination whether the above two inputs will provide control or data opcodes depends on input TXCD also supplied to generator 406.

Red a strapped line on the unit which sets a line to a logic 1 for obtaining priority (a non-priority unit would have a logic 0 on this line and would be defined as RED).

Rdycal ready call -- Input from control 390 to control 384 indicating that the data buffer is full and that the control unit 390 has provided the proper opcode to register 408.

Regdat register data -- Output line from register 408 to control unit 384 for supplying thereto the opcode and address.

Regcke register clock enable -- Output from control 384 to the address registers 410 and 412 for enabling these registers to accept an address from the receive module, the buffer control, or the station interface.

Regin register in -- Input from control module 384 for circulating the opcode and address register from the output REGDAT of this portion of the transmit control circuitry and back to the input to maintain the proper address therein.

Resdel response delimit -- Informs block 384 when to look at or send a response as indicated by the AKCON line.

Relct reset limit counter 1 or 2 -- An input for resetting the respective limit counter after the transmit control makes a successful call or takes the procedural steps of setting an alarm or sending information to an intercept register when the predetermined limit count is reached.

Resp response -- Response register line from 398 containing the proper response data for insertion into the response section of a select or control word.

Resnte response counter enable -- Line from control block 384 to response counter 398 to enable this block for commencing the count.

Senpol send poll -- Input from the receive control module to the sequence control 384 for informing the transmit control module to send the poll on the loop.

Txdat transmit data -- Output from flip-flop 380 for transmission to the loop connected to this particular control module. pg,42

Txdata transmit data -- Data received from the buffer control or the station interface buffer by the control unit 384. In most instances this data is passed through control unit 384 but on occasions of transmit this data (on lead 382) is open-ended.

Txcd transmit control/data -- This line is a logic "1" if the CONNECT block is data and is a logic "0" if the CONNECT block is control. This line also controls whether the select block is a call or a poll.

Thdpty third party -- This line is obtained from the receive control module and indicates if the call is to be placed to a third party. Basically, this line activates receipt of an address by register 414 and deactivates register 410 from receipt of an address on the ADDATA line.

Xmtdel transmit delimit -- A delimit line from control block 384 to the station interface or buffer control for obtaining the data on line 382.

In summary of the information presented supra, it will be observed that the present inventive concept is designed for use with a communication system wherein a master unit is connected to a closed loop communication line containing a plurality of slave units, the design of the system being such that it is necessary that the control unit be able to regain control of message transmission to units on the loop in short order, it being further desirable that the slave units be required to transmit only in response to poll signals from the master unit and transmit messages in consecutive order according to the serial connection of the slave units in the loop.

The above is accomplished by having the master unit send out a prepoll signal initially and when this is returned as a prepoll, the master unit sends out a poll. The slave units will only respond to a poll signal in the transmission of messages. Thus, upon receipt of a poll, a slave having a message to transmit will so transmit its message. The slave units are designed such that an internal flag is set upon transmission of a message. This flag will cause it to change the next prepoll received to a poll so that at this time only slave units situated further down the loop may receive the poll signal and send a message. The master unit will note the end of a message and if it has no messages to transmit will send a new prepoll. Thus, the last slave to transmit will change this to a poll and it will be forwarded to further slaves which have messages to transmit. Any further slave so responding will again set its integral flag so that the process may be continued after transmission of a message.

If the master, upon noting the end of a transmission in the loop, has a message to send, it will send the message (or messages) and at the end of such time will then send new prepoll signals.

The inventive concept also includes the possibility that it may be desirable that some slaves have priority over other slaves. This may be accomplished by allowing some of the slaves to respond to either a prepoll or a poll in the transmission of messages. If the priority slave responds to a prepoll, the internal flag is not set since it has not reacted in consecutive order. However, if it has transmitted in response to a poll, the internal flag must be set so that the poll can be allowed to proceed around the loop according to system design. In order that the design concept be complied with, it is desirable that priority slave units have a means for preventing reaction to a prepoll in the form of transmitting a message immediately after transmitting a message initiated by a poll. Rather, its reaction in this instance must be merely to change the prepoll to a poll so that further units on the loop will be allowed to transmit messages. However, later prepolls may be responded to normally by the priority slave units.

While a specific embodiment of the present invention has been disclosed, it is to be realized by those skilled in the art that various other implementations may be originated to accomplish the design concept of a master unit and consecutively operated slave units and the additional idea of allowing some of the slave units to have priority. Thus, we wish to be limited only by the scope of the appended claims.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed