CA1180075A - Local area contention network data communication system - Google Patents
Local area contention network data communication systemInfo
- Publication number
- CA1180075A CA1180075A CA000389188A CA389188A CA1180075A CA 1180075 A CA1180075 A CA 1180075A CA 000389188 A CA000389188 A CA 000389188A CA 389188 A CA389188 A CA 389188A CA 1180075 A CA1180075 A CA 1180075A
- Authority
- CA
- Canada
- Prior art keywords
- channel
- packet
- station
- period
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000004891 communication Methods 0.000 title claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims abstract description 42
- 230000000694 effects Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 abstract description 2
- 108091006146 Channels Proteins 0.000 description 69
- 239000000872 buffer Substances 0.000 description 6
- 230000007704 transition Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000518994 Conta Species 0.000 description 1
- 102000004310 Ion Channels Human genes 0.000 description 1
- 241000289690 Xenarthra Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Landscapes
- Small-Scale Networks (AREA)
Abstract
A LOCAL AREA CONTENTION NETWORK
DATA COMMUNICATION SYSTEM
ABSTRACT OF THE DISCLOSURE
This disclosure relates to a station for a data trans-mission network which is adapted to operate in a cyclic mode for contending for access to the network channel along with other stations of the network. The three states of the cycle are the idle state, the packet-being-transmitted state and the acknowl-edgement period state. Each station will not begin transmission until it determines that the channel is in an idle state. Once the station has determined that the channel is idle, it will then delay for a period of time that is randomly chosen and, if the channel is still idle, will then begin transmission. In this way, contention conflicts between stations is minimized without unduly restricting communication between stations. Following transmission, the channel will again be quiescent a short period of time before the acknowledgement signal is transmitted from the receiver. Each packet of data to be transmitted is of a fixed length so as to provide for synchronization between various stations contending for access to the channel.
DATA COMMUNICATION SYSTEM
ABSTRACT OF THE DISCLOSURE
This disclosure relates to a station for a data trans-mission network which is adapted to operate in a cyclic mode for contending for access to the network channel along with other stations of the network. The three states of the cycle are the idle state, the packet-being-transmitted state and the acknowl-edgement period state. Each station will not begin transmission until it determines that the channel is in an idle state. Once the station has determined that the channel is idle, it will then delay for a period of time that is randomly chosen and, if the channel is still idle, will then begin transmission. In this way, contention conflicts between stations is minimized without unduly restricting communication between stations. Following transmission, the channel will again be quiescent a short period of time before the acknowledgement signal is transmitted from the receiver. Each packet of data to be transmitted is of a fixed length so as to provide for synchronization between various stations contending for access to the channel.
Description
1~8~075 BACKGROUND OF THE INVENTIt:)N
Fi el d of I nvent i on This inven~ion relates to a networ~ of data stations and more particularly to such a network wherein çontrol o the transmiss;on between stations is shared by the respective stations.
Description of the Prior Art Prior art terminal networks usually have been controlled by master computer which receives transmissiQn requests from the respective terminals and grants access to a transmission channel by ~he individual terminals when the channel is avail-able and according to some priority arrangement. Such master computers add to the cost of the ~erminal network and are not required for some networks where the terminals need communicate lS only between themselves or with a common storage file. Thus, it is desirable to have a terminal networ~ where the transmission .
control is embedded in or shared by the stations makin up that network.
Prior art networks not having a master controller, have employed "contention" schemes whereby each node of the network contends for the transmission medium whenever it is ready to transmit. One o the earliest contention networks was the "Aloha"*~yste~ built by the University of Hawaii. In this sys tem, each node transmitted whenever it had a packet ready for 2S transmission. Whenever a portion of one node's eransmission overlapped with another node's transmission, that overlap destroyed bo~h packets. If the sending node did not receive an acknowledgment within another packet from the destination node . af ter an arbitrary time period, it would assume that a collision had occurred and retransmie. In order to avoid oontinuously . , ~, ~ ~800 ~
repeated collisions, some method of introducing a random retransmission delay had to be introduced.
An attempt at reducing the effects of collision in contention-type netwoxks i5 disclosed in the Metcalfe et al.
Patent No. 4,063,220 which is directed toward a communication network in which each node is capable of detecting when col-lision occurs on the channel during that node's transmission, and interrupts its transmission when such a collision occu~s.
A random number generator is employed to select an interval of time to delay before the next attempt at transmission.
However~ the collision detection mechanism adds to the complexity of the respective nodes with an increase in the cost of the system. For certain types of transmission media, collision detection is very difficult, if not impossible to implement.
According to the present invention there is provided a station in a data communication network having a plurality of such stations coupled to a communication channel, said station comprising: storage means to receive an information packet for transmission on said channel; sensing means coupled to said channel to detect when said channel is inactive; clock means coupled to said sensing means to determine a random period of time after said sensing means de~ects nv ac~ivity on said channel; and transmit-ting means coupled to said channel, said clock means and said storage means to transmit said packet on sa.id channel after said random period of time and when there is no activity on said channel.
According to at least one described embodiment, there is provided an improved data communication network which does not require a master controller to synchronize data I ~B~7~
data transmissions on a common bus or channel.
An asynchronous data communication network is described wherein eac~ node contends for access to a channel medium in a manner such as ~o minimize conflicts between the respective nodes without requir~ng transmitting stations to be capable of detecting collisions. There is also described a contention network data communication system wherein the respective nodes contend or access to the channel in a cyclio fashion with synchronization between the states of each node and wherein an ac~nowledgement signal is received (or not received) by the transmitting station, within a predetermined period of time after transmission.
A feature then of a described embodiment of the present invention resides in a station for a data trans-mission network whLch station is adapted to contend for access to the network channel. Once the station has deter-mined that the channel is idle, it will then delay for a period of time that is randomly chosen and, if the c~annel is still idle, will then begin transmission. Furthermore, an acknowledgement signal is provided within a predetermined duratlon o time a~ter each 'ransmission.
An embodiment of the present invention will now be descrlbed, by way of example, with reference to the accompany-ing dxawings ln which:-Figures lA and lB are representations of different network$;
Figure 2 is a diagram of an information packet;
Figures 3A and 3B are f}ow charts illustrating, respectively, the channel state machine and the transmission method;
. . , ~ ~8~0~15 Figures 4A, 4B and 4C.ara.schema.tic diagrams illus-trating the terminal interface; and Figure 5 is a representation of signals in Manchester Code as employed in the described embodiment.s of the present invention.
GENERAL DESCRIPTION
The described embodiment is directed toward an interface which is used to connect stations into a local area communication network. The network.uses a shared communication channel and distributed control. There i5 no central arbitrator of channel utilization. The shared communication medium can be a twisted pair, a coaxial cable, fiber optics, and so forth, as illustra.ted in Figure lA, or the network may employ radio communication such as illustrated in Fibure lB. In the case of radio communication each node has its own transmitter, receiver and antenna~
The data structure employed is illustrated in Figure
Fi el d of I nvent i on This inven~ion relates to a networ~ of data stations and more particularly to such a network wherein çontrol o the transmiss;on between stations is shared by the respective stations.
Description of the Prior Art Prior art terminal networks usually have been controlled by master computer which receives transmissiQn requests from the respective terminals and grants access to a transmission channel by ~he individual terminals when the channel is avail-able and according to some priority arrangement. Such master computers add to the cost of the ~erminal network and are not required for some networks where the terminals need communicate lS only between themselves or with a common storage file. Thus, it is desirable to have a terminal networ~ where the transmission .
control is embedded in or shared by the stations makin up that network.
Prior art networks not having a master controller, have employed "contention" schemes whereby each node of the network contends for the transmission medium whenever it is ready to transmit. One o the earliest contention networks was the "Aloha"*~yste~ built by the University of Hawaii. In this sys tem, each node transmitted whenever it had a packet ready for 2S transmission. Whenever a portion of one node's eransmission overlapped with another node's transmission, that overlap destroyed bo~h packets. If the sending node did not receive an acknowledgment within another packet from the destination node . af ter an arbitrary time period, it would assume that a collision had occurred and retransmie. In order to avoid oontinuously . , ~, ~ ~800 ~
repeated collisions, some method of introducing a random retransmission delay had to be introduced.
An attempt at reducing the effects of collision in contention-type netwoxks i5 disclosed in the Metcalfe et al.
Patent No. 4,063,220 which is directed toward a communication network in which each node is capable of detecting when col-lision occurs on the channel during that node's transmission, and interrupts its transmission when such a collision occu~s.
A random number generator is employed to select an interval of time to delay before the next attempt at transmission.
However~ the collision detection mechanism adds to the complexity of the respective nodes with an increase in the cost of the system. For certain types of transmission media, collision detection is very difficult, if not impossible to implement.
According to the present invention there is provided a station in a data communication network having a plurality of such stations coupled to a communication channel, said station comprising: storage means to receive an information packet for transmission on said channel; sensing means coupled to said channel to detect when said channel is inactive; clock means coupled to said sensing means to determine a random period of time after said sensing means de~ects nv ac~ivity on said channel; and transmit-ting means coupled to said channel, said clock means and said storage means to transmit said packet on sa.id channel after said random period of time and when there is no activity on said channel.
According to at least one described embodiment, there is provided an improved data communication network which does not require a master controller to synchronize data I ~B~7~
data transmissions on a common bus or channel.
An asynchronous data communication network is described wherein eac~ node contends for access to a channel medium in a manner such as ~o minimize conflicts between the respective nodes without requir~ng transmitting stations to be capable of detecting collisions. There is also described a contention network data communication system wherein the respective nodes contend or access to the channel in a cyclio fashion with synchronization between the states of each node and wherein an ac~nowledgement signal is received (or not received) by the transmitting station, within a predetermined period of time after transmission.
A feature then of a described embodiment of the present invention resides in a station for a data trans-mission network whLch station is adapted to contend for access to the network channel. Once the station has deter-mined that the channel is idle, it will then delay for a period of time that is randomly chosen and, if the c~annel is still idle, will then begin transmission. Furthermore, an acknowledgement signal is provided within a predetermined duratlon o time a~ter each 'ransmission.
An embodiment of the present invention will now be descrlbed, by way of example, with reference to the accompany-ing dxawings ln which:-Figures lA and lB are representations of different network$;
Figure 2 is a diagram of an information packet;
Figures 3A and 3B are f}ow charts illustrating, respectively, the channel state machine and the transmission method;
. . , ~ ~8~0~15 Figures 4A, 4B and 4C.ara.schema.tic diagrams illus-trating the terminal interface; and Figure 5 is a representation of signals in Manchester Code as employed in the described embodiment.s of the present invention.
GENERAL DESCRIPTION
The described embodiment is directed toward an interface which is used to connect stations into a local area communication network. The network.uses a shared communication channel and distributed control. There i5 no central arbitrator of channel utilization. The shared communication medium can be a twisted pair, a coaxial cable, fiber optics, and so forth, as illustra.ted in Figure lA, or the network may employ radio communication such as illustrated in Fibure lB. In the case of radio communication each node has its own transmitter, receiver and antenna~
The data structure employed is illustrated in Figure
2 and is a fixed-sized packet which contains a fixed number of data bits along with the information necessary for interface synchronization,message routing and error detection. As illustrated in Figure 2, the first field o the packet is the SYNC code which i5 a fvur bit field that indicate~ that inormation fo.llows and serves to ~ynchronlze the receiving node for recep~ion of the 1nformation packet which follqws.
The second field is the Des~ination Address code which is 16 bits long and designates the.stations , ~0~5 ~or which the message is destined. The Data Field consists of 132 8-bit bytes. The last field is the cyclic redundancy check (CRC) code which contains a 16-bit error detection code. A new CRC code is generated by the node during packet reception and checked against the transmitted CRC code. Other means o~ error detection are also employed.
As was indicated above, the described embodiment is directed toward a cont:ention network. That is to say, each station of the network transmits packets independently of the other nodes,possibly interfering or colliding with other transmissions. If-the trans-mitted packet is received correctly by the destinatio~
station, then the receiver responds with an acknowledge-ment signal- If the acknowledgement signal is not received by the transmitting station during the acknow-legement period immediately following the packet transmission, then the transmitter assumes that the transmissLon was unsuccessful.
The channel state machine ~or each node in the present ,invention is illustrated in Figure 3A.
~s indlcated therein, the network channel cycles sequentially through'three states: idle, packet-b,elng-transmitted, and acknowledgement period.
Each station continually monitors the channel and keeps track of its state. Because there is a propagation delay for the signal, the exact times of transitions between ~he states vary from point to point along the network, but they are all synchronized within a fixed time interval.
The specific cycle of the channel state machine will now be described with relation to Figure 3A. Upon reset or power up, the channel state machine enters the SYNC WAIT
state after the channel has been quiescent for at least one packet transmission period. Upon detection of any data on the channel (e.g., the SYNC code of the packet), the channel state machine enters the PACKET state which lasts a fi~ed amount of time. Af~er the PACKET state, ~he channel state machine enters the ACK IDLE state followed by the ACK WAIT state, each of fixed duration. After the ACK WAIT state, the channel state machine returns to the SYNC WAIT state.
As described in Figure 3A, the states of the channel state machine correspond to the network channel states as follows: The channel state machine is in the SYNC WAIT state whenever the channel is in the idle state, the PACKET state whenever the channel is in packet-being-transmitted state, and ACK IDLE or ACK WAIT state whenever the channel is in the acknowledgment period state. The channel should be quiescent during the ACK IDLE state of the channel state machine; if it is not (i.e., if any channel activity is detected during the ACK IDLE state), it is considered an error in the present trans-misslon, even if an ACK signal appears on the channel during the subsequent ACK WAIT state.
When a packet to be transmitted is loaded into the interface of a particular node~ that interface operates in a manner that will now be described in relation to Figure 3B.
)0~ 5 Step 1. Upon arrival of a packet to be trans-mitted, ~he interface checks to see if the channel is idle. If the channel is either in the packet-being-transmitted state or the acknowledgment state, then the transmitter waits until the channel becomes idle.
Step 2. An integer-s is chosen randomly in the interval [O,S] with each of the S+l possible choices being equally probable. The transmitter then delays for s microseconds. If the channel is still idle at the end of the delay, then the packet is transmitted. If ~t that time the channel is not idle, then the transmitter goes back to Step 1.
Step 3. The transmitter waits for the acknowledg-men~ period to complete. It then sets the interface status register according to whether or not an acknow-ledgment signal was received during the acknowledgment period. The setting of the status register causes an interrupt request of the resident computer.
The choice of S is somewhat arbitrary depending upon the transmission speed and packet length. In the present invention, a value of about 108 divided by the channel baud rate should perform well over a wide range of packet loads.
An important parameter is the propagation delay time t from cne end of the network to the other, which is used in deter-mining the duration of the acknowledgment period. For a fi~e thousand foot cable medium, the propagation delay time t is approximately 8 microseconds. When the transmitter and receiver are at opposite ends of the network, the last bit transmitted requires t microseconds to arrive at the receiver.
The receiver then delays for a period of 2t before transmitting the acknowledgment signal. The ackno~ledgment signal takes ~ 75 another ~ microseconds to arrive at the transmitter node.
After transmitting the acknowledgment signal, the receiver sets the interface status register to indicate that a packet has been r~ceived. The setting of the status register causes S an interrupt reques~ of the resident computer.
With a networ~ of stations as described above, the PACKET state of the channel state machine for each station will al~ays be of fixed duration, namely t~e packet transmisslon time~ The receiver w~ll wait for a time 2t before replying with the.acknowledgment signal and then another time 2t for the idle state to begin. If the receiver detects any activi~y on the channel during-the firs~ waiting period, at the end of the packet-being-transmitted state,-it will no~ send the acknowledg-ment signal~ If the ~ransmitter deeects any chann21 activity during the first waiting period following the transmission of a packet, it will ignore any acknowledgment signa' on the channel during the following ACK WAIT state.
Wi~h the conditions described above, it can be demon-strated tha~ the channel state machine of each te~ninal in the ne~wor~ will be synchronized within a time t of all other sta~ion channel state machines, and that a transmitting sta~ion will receive a valid ACK signal only if the intended receiver has correctly received the pac~et.
DErAILED DESCRIPTION
25 . A resident computer in each station is coupled to the channel by the interface. Received packets and packets to be transmitted are transferred between the inter~ace and resident computer across a single-byte input/output port P, as described below. An interrupt reques~
.
~~8~
signal and tw~ reset signals complete the interface to the resident computer. Operations that can be performed on the interface are Reset, Read Status, Load Packet, and Unload Packet.
The interface between the resident computer and the channel is illustrated in Figures 4A, 4B and 4C. The inter~ace communicates with the resident eomputer through a set of signals consisting of read RD, write WR~ circuit select CS, interrupt request INT, and an 8-bit data bus. The transmitter loads packets from the resident computer and ~ransmits them over the channel according to the transmission algorithm described above~
The receiver receives packets from the channel and unloads them to the resident computer. The tasks of CRC generation and checking, line monitoring and data encoding are done by the interface and not by the resident computer. Since the receiver and transmitter are independent, they can both be active at the same time, as when the transmitter is sending a packet while the receiver is unloading a different packet to the resident computer.
In Figure 4A, data is transferred between the resident computer and interface by way of port P which comprises buffer 20 and bus control 21. Data bus buffer 20 is a bi-directional buffer for the 8 data signals which comprise the input/output port P. The data transfer depends upon the states of the read RD, write WR, and circuit select CS signals to the bus control 21.
Status register 22 conta~ns bits to indicate the state of the interface and the channel in the following manner:
Bit Statu6 0 Transmission complete, ACK received (reset when status byte is read) , --10--Bi~ Sta~us 1 Transmission complete, no ACK receiv d (reset when status byte is read) 2 Correct packet received (reset when status byte is read)
The second field is the Des~ination Address code which is 16 bits long and designates the.stations , ~0~5 ~or which the message is destined. The Data Field consists of 132 8-bit bytes. The last field is the cyclic redundancy check (CRC) code which contains a 16-bit error detection code. A new CRC code is generated by the node during packet reception and checked against the transmitted CRC code. Other means o~ error detection are also employed.
As was indicated above, the described embodiment is directed toward a cont:ention network. That is to say, each station of the network transmits packets independently of the other nodes,possibly interfering or colliding with other transmissions. If-the trans-mitted packet is received correctly by the destinatio~
station, then the receiver responds with an acknowledge-ment signal- If the acknowledgement signal is not received by the transmitting station during the acknow-legement period immediately following the packet transmission, then the transmitter assumes that the transmissLon was unsuccessful.
The channel state machine ~or each node in the present ,invention is illustrated in Figure 3A.
~s indlcated therein, the network channel cycles sequentially through'three states: idle, packet-b,elng-transmitted, and acknowledgement period.
Each station continually monitors the channel and keeps track of its state. Because there is a propagation delay for the signal, the exact times of transitions between ~he states vary from point to point along the network, but they are all synchronized within a fixed time interval.
The specific cycle of the channel state machine will now be described with relation to Figure 3A. Upon reset or power up, the channel state machine enters the SYNC WAIT
state after the channel has been quiescent for at least one packet transmission period. Upon detection of any data on the channel (e.g., the SYNC code of the packet), the channel state machine enters the PACKET state which lasts a fi~ed amount of time. Af~er the PACKET state, ~he channel state machine enters the ACK IDLE state followed by the ACK WAIT state, each of fixed duration. After the ACK WAIT state, the channel state machine returns to the SYNC WAIT state.
As described in Figure 3A, the states of the channel state machine correspond to the network channel states as follows: The channel state machine is in the SYNC WAIT state whenever the channel is in the idle state, the PACKET state whenever the channel is in packet-being-transmitted state, and ACK IDLE or ACK WAIT state whenever the channel is in the acknowledgment period state. The channel should be quiescent during the ACK IDLE state of the channel state machine; if it is not (i.e., if any channel activity is detected during the ACK IDLE state), it is considered an error in the present trans-misslon, even if an ACK signal appears on the channel during the subsequent ACK WAIT state.
When a packet to be transmitted is loaded into the interface of a particular node~ that interface operates in a manner that will now be described in relation to Figure 3B.
)0~ 5 Step 1. Upon arrival of a packet to be trans-mitted, ~he interface checks to see if the channel is idle. If the channel is either in the packet-being-transmitted state or the acknowledgment state, then the transmitter waits until the channel becomes idle.
Step 2. An integer-s is chosen randomly in the interval [O,S] with each of the S+l possible choices being equally probable. The transmitter then delays for s microseconds. If the channel is still idle at the end of the delay, then the packet is transmitted. If ~t that time the channel is not idle, then the transmitter goes back to Step 1.
Step 3. The transmitter waits for the acknowledg-men~ period to complete. It then sets the interface status register according to whether or not an acknow-ledgment signal was received during the acknowledgment period. The setting of the status register causes an interrupt request of the resident computer.
The choice of S is somewhat arbitrary depending upon the transmission speed and packet length. In the present invention, a value of about 108 divided by the channel baud rate should perform well over a wide range of packet loads.
An important parameter is the propagation delay time t from cne end of the network to the other, which is used in deter-mining the duration of the acknowledgment period. For a fi~e thousand foot cable medium, the propagation delay time t is approximately 8 microseconds. When the transmitter and receiver are at opposite ends of the network, the last bit transmitted requires t microseconds to arrive at the receiver.
The receiver then delays for a period of 2t before transmitting the acknowledgment signal. The ackno~ledgment signal takes ~ 75 another ~ microseconds to arrive at the transmitter node.
After transmitting the acknowledgment signal, the receiver sets the interface status register to indicate that a packet has been r~ceived. The setting of the status register causes S an interrupt reques~ of the resident computer.
With a networ~ of stations as described above, the PACKET state of the channel state machine for each station will al~ays be of fixed duration, namely t~e packet transmisslon time~ The receiver w~ll wait for a time 2t before replying with the.acknowledgment signal and then another time 2t for the idle state to begin. If the receiver detects any activi~y on the channel during-the firs~ waiting period, at the end of the packet-being-transmitted state,-it will no~ send the acknowledg-ment signal~ If the ~ransmitter deeects any chann21 activity during the first waiting period following the transmission of a packet, it will ignore any acknowledgment signa' on the channel during the following ACK WAIT state.
Wi~h the conditions described above, it can be demon-strated tha~ the channel state machine of each te~ninal in the ne~wor~ will be synchronized within a time t of all other sta~ion channel state machines, and that a transmitting sta~ion will receive a valid ACK signal only if the intended receiver has correctly received the pac~et.
DErAILED DESCRIPTION
25 . A resident computer in each station is coupled to the channel by the interface. Received packets and packets to be transmitted are transferred between the inter~ace and resident computer across a single-byte input/output port P, as described below. An interrupt reques~
.
~~8~
signal and tw~ reset signals complete the interface to the resident computer. Operations that can be performed on the interface are Reset, Read Status, Load Packet, and Unload Packet.
The interface between the resident computer and the channel is illustrated in Figures 4A, 4B and 4C. The inter~ace communicates with the resident eomputer through a set of signals consisting of read RD, write WR~ circuit select CS, interrupt request INT, and an 8-bit data bus. The transmitter loads packets from the resident computer and ~ransmits them over the channel according to the transmission algorithm described above~
The receiver receives packets from the channel and unloads them to the resident computer. The tasks of CRC generation and checking, line monitoring and data encoding are done by the interface and not by the resident computer. Since the receiver and transmitter are independent, they can both be active at the same time, as when the transmitter is sending a packet while the receiver is unloading a different packet to the resident computer.
In Figure 4A, data is transferred between the resident computer and interface by way of port P which comprises buffer 20 and bus control 21. Data bus buffer 20 is a bi-directional buffer for the 8 data signals which comprise the input/output port P. The data transfer depends upon the states of the read RD, write WR, and circuit select CS signals to the bus control 21.
Status register 22 conta~ns bits to indicate the state of the interface and the channel in the following manner:
Bit Statu6 0 Transmission complete, ACK received (reset when status byte is read) , --10--Bi~ Sta~us 1 Transmission complete, no ACK receiv d (reset when status byte is read) 2 Correct packet received (reset when status byte is read)
3 Not used
4 Not used Channel activity indicator (1 when channel is busy; 0 when channel is idle) 6 An ACK signal was detected on the channel, indicating a good packet transmission (reset when s~atus byte is read) 7 Bad data on channel. A bad packet, a collision, or noise was detected on the channel. (reset when status byte is read) Bus control 21 responds to the RD and CS signals with a read operation and the WR and CS signals with a write operation. Bus control 21 maintains a simple state machine to determine the source tor destination) of the read or write operations. Possible sources of read data are status register 22 and receiver store 38. Destinations for written data are address register 37 and transmitter store 23.
In Figure 4B, transmitter store 23 holds a packet of data to be transmitted. It is a FIF0 store of 134 bytes (132 Eor data and 2 for the destination address)~ Data to be trans-mitted leaves the transmitter store 23 by ~ay oE parallel to serial buffer 24. Data transmission is controlled by trans-mitter control 27 which initiates a packet transmissi~n employ-ing the transmission algorithm described above and in accordance with the value from S count unit 30. S count unit 30 is comprised of a counter driven by a random clock (neither of which is shown). Transmitter control 27 also synchronizes the other parts of the transmltter to ensure packet trans-mission.
CRC generator 25 builds the CRC code of the packet being transmitted as data in ~ransmitter store 23 is being transmitted. When transmitter store 23 becomes empty, the resultant CRC is transmitted. As was indicated above, the first field of the packet is a four bit SYNC code which is generated by SYNC generator 28.
The packet being transmitted passes through encoder 26 which encodes each bit in a Manchester code before transmission~
The four sources of data to be transmitted (as indicated above) are the SYNC code 28, the transmitter store 23 (for destination address and data), the CRC generator 25, and the acknowledgment code 40. The output select decides which of these, if any, is to be sent.
As was indicated above, the three possible channel states (idle, packet-being-transmitted, and acknowledgment period) are maintained in channel state 32 of Figure 4C for use by both the transmitter and receiver. A timer is required for each change of state. A timer is also used by the transmitter in the delay portion of the transmission algorlthm as described above. Input decoder 33 is a Manchester decoder which receives data from the channel. It thus converts the Manchester encoded data into unencoded data. The SYNC code can also be recogni2ed at this point and separated from the data. CRG check 35 is the opposite of CRC generator 25 and serves to verify the correct-ness of the incoming data.
Receiver store 38 buffers a packet received from the channel to be read by the resident computer. The data enters o-~ ~
the receiver store 38 by way of serial to parallel buffer 39.
Receiver control 36 synchronizes the parts of the receiver in an order to insure correct packe~ reception.
On Reset, the interface is loaded from the resident computer with its address. Thereafter 9 when a packet is detected on the channel, and receiver store 38 is empty, address compare logic 37 checks to see if the packet is intended for the resident computer by comparing the incoming address against the stored address.
Manchester encoding is employed to send data with an embedded clock and no DC bias. It is characterized by always having a transition during the middle of a bit interval as illustrated in Figure 5. A logic zero is a positive going transition while a logic one is a negative going transition~
INTERFACE OPERATION
As was indicated above, the operations that can be performed on the terminal interface are Reset, Read ~tatus, Load Packet and Unload Packet. These operations will now be described.
Reset. The Reset operation is the operation of initializing the interface. The interface is set to the initial state by asserting either of the two reset signals, one of which is used for the power-up reset and the other of which is used for programatic reset. Resetting the interface clears the status register and sets it to zero. When the interface is reset, the resident computer must output the node's unique ad~ress as two bytes to port P. Th~Ls address is used by the rece~ver to compare with destination address fields of packets being transmitted by other nodes. The I ~ ~00 ~5 The interface cann~t receive or transmit packets until it loads this address from the resident computer.
Read Status. The interface maintains status register 22 of Figure 4A which can be read from port P any-time except during the unload packet operation. The resident computer should respond to an interrupt by reading the status register from port P. Depending on which of the bits are se~, the resident computer may decide to initiate a load packet or unload packet operation. Reading the status register causes the first three bits of the status register to be reset and con-sequently resets the interrupt request signal to the resident computerO If the interrupt was requested because of the completed transmission, the interrup~ signal may be reasserted immediately as ~he result of a received packet. If the inter-rupt was requested due to a received packet, the interrupt signal will not be reasserted until after the entire packet is unloaded from the interface.
Load Packet. The load packet operation causes the interface to be loaded with a packet to be transmitted on the channel. A packet cannot be loaded when another packet is in the process of being transmitted. The resident computer loads the packet by simply sending two destination address bytes to port P followed by 132 data bytes. As soon as the interface has loade~ the 134 bytes from the resident computer, it begins transmitting the packet on the channel according to the al~orithm descrlbed above. After transmission of the packet, when the channel returns to the idle state, the interface requests an interrupt by setting the appropriate bit of the status register.
Unload Packet. The resident computer performs an unload operation with 134 successive read operations of port P, transferring the two-byte destination address (the resident computer's address) followed by 132 bytes of data from the interface to the resident computer. It shou]d be no~ed that if two packets are sent to the same destination, and the secon~ packet arrives before the first packet has been completely unloaded from the interface, the second packet is not acknowledged and must be retransmitted. Similarly, if a packet is received incorrectly, it must also be retrans-mitted. In either case, the destination's resident computer will not be informed of the lost or bad packet and the sender will not receive an acknowledgment signal.
EPILOGUE
A data communication network has been disclosed which does not require a master controller to control the trans-mission between nodes in the network. Each node initiates transmission a random time after the channel is determined to be idle. Should two or more nodes initiate transmission at the same time, transmission will continue, however each node will again seek to initiate transmission after a random period of time. The delay between attempts to initiate transmission varies from node to node according to the random times generated from node to node. In this way, contention conflicts between nodes is minimi~ed without unduly restricting communication between nodes.
While but one embodiment of the present invention has been disclosed, it will be apparent to one skilled in the art that variations and modifications may be made therein without departing from the spirit and scope of the invention as claimed.
In Figure 4B, transmitter store 23 holds a packet of data to be transmitted. It is a FIF0 store of 134 bytes (132 Eor data and 2 for the destination address)~ Data to be trans-mitted leaves the transmitter store 23 by ~ay oE parallel to serial buffer 24. Data transmission is controlled by trans-mitter control 27 which initiates a packet transmissi~n employ-ing the transmission algorithm described above and in accordance with the value from S count unit 30. S count unit 30 is comprised of a counter driven by a random clock (neither of which is shown). Transmitter control 27 also synchronizes the other parts of the transmltter to ensure packet trans-mission.
CRC generator 25 builds the CRC code of the packet being transmitted as data in ~ransmitter store 23 is being transmitted. When transmitter store 23 becomes empty, the resultant CRC is transmitted. As was indicated above, the first field of the packet is a four bit SYNC code which is generated by SYNC generator 28.
The packet being transmitted passes through encoder 26 which encodes each bit in a Manchester code before transmission~
The four sources of data to be transmitted (as indicated above) are the SYNC code 28, the transmitter store 23 (for destination address and data), the CRC generator 25, and the acknowledgment code 40. The output select decides which of these, if any, is to be sent.
As was indicated above, the three possible channel states (idle, packet-being-transmitted, and acknowledgment period) are maintained in channel state 32 of Figure 4C for use by both the transmitter and receiver. A timer is required for each change of state. A timer is also used by the transmitter in the delay portion of the transmission algorlthm as described above. Input decoder 33 is a Manchester decoder which receives data from the channel. It thus converts the Manchester encoded data into unencoded data. The SYNC code can also be recogni2ed at this point and separated from the data. CRG check 35 is the opposite of CRC generator 25 and serves to verify the correct-ness of the incoming data.
Receiver store 38 buffers a packet received from the channel to be read by the resident computer. The data enters o-~ ~
the receiver store 38 by way of serial to parallel buffer 39.
Receiver control 36 synchronizes the parts of the receiver in an order to insure correct packe~ reception.
On Reset, the interface is loaded from the resident computer with its address. Thereafter 9 when a packet is detected on the channel, and receiver store 38 is empty, address compare logic 37 checks to see if the packet is intended for the resident computer by comparing the incoming address against the stored address.
Manchester encoding is employed to send data with an embedded clock and no DC bias. It is characterized by always having a transition during the middle of a bit interval as illustrated in Figure 5. A logic zero is a positive going transition while a logic one is a negative going transition~
INTERFACE OPERATION
As was indicated above, the operations that can be performed on the terminal interface are Reset, Read ~tatus, Load Packet and Unload Packet. These operations will now be described.
Reset. The Reset operation is the operation of initializing the interface. The interface is set to the initial state by asserting either of the two reset signals, one of which is used for the power-up reset and the other of which is used for programatic reset. Resetting the interface clears the status register and sets it to zero. When the interface is reset, the resident computer must output the node's unique ad~ress as two bytes to port P. Th~Ls address is used by the rece~ver to compare with destination address fields of packets being transmitted by other nodes. The I ~ ~00 ~5 The interface cann~t receive or transmit packets until it loads this address from the resident computer.
Read Status. The interface maintains status register 22 of Figure 4A which can be read from port P any-time except during the unload packet operation. The resident computer should respond to an interrupt by reading the status register from port P. Depending on which of the bits are se~, the resident computer may decide to initiate a load packet or unload packet operation. Reading the status register causes the first three bits of the status register to be reset and con-sequently resets the interrupt request signal to the resident computerO If the interrupt was requested because of the completed transmission, the interrup~ signal may be reasserted immediately as ~he result of a received packet. If the inter-rupt was requested due to a received packet, the interrupt signal will not be reasserted until after the entire packet is unloaded from the interface.
Load Packet. The load packet operation causes the interface to be loaded with a packet to be transmitted on the channel. A packet cannot be loaded when another packet is in the process of being transmitted. The resident computer loads the packet by simply sending two destination address bytes to port P followed by 132 data bytes. As soon as the interface has loade~ the 134 bytes from the resident computer, it begins transmitting the packet on the channel according to the al~orithm descrlbed above. After transmission of the packet, when the channel returns to the idle state, the interface requests an interrupt by setting the appropriate bit of the status register.
Unload Packet. The resident computer performs an unload operation with 134 successive read operations of port P, transferring the two-byte destination address (the resident computer's address) followed by 132 bytes of data from the interface to the resident computer. It shou]d be no~ed that if two packets are sent to the same destination, and the secon~ packet arrives before the first packet has been completely unloaded from the interface, the second packet is not acknowledged and must be retransmitted. Similarly, if a packet is received incorrectly, it must also be retrans-mitted. In either case, the destination's resident computer will not be informed of the lost or bad packet and the sender will not receive an acknowledgment signal.
EPILOGUE
A data communication network has been disclosed which does not require a master controller to control the trans-mission between nodes in the network. Each node initiates transmission a random time after the channel is determined to be idle. Should two or more nodes initiate transmission at the same time, transmission will continue, however each node will again seek to initiate transmission after a random period of time. The delay between attempts to initiate transmission varies from node to node according to the random times generated from node to node. In this way, contention conflicts between nodes is minimi~ed without unduly restricting communication between nodes.
While but one embodiment of the present invention has been disclosed, it will be apparent to one skilled in the art that variations and modifications may be made therein without departing from the spirit and scope of the invention as claimed.
Claims (12)
1. A station in a data communication network having a plurality of such stations coupled to a communication channel, said station comprising:
storage means to receive an information packet for transmission on said channel;
sensing means coupled to said channel to detect when said channel is inactive;
clock means coupled to said sensing means to determine a random period of time after said sensing means detects no activity on said channel; and transmitting means coupled to said channel, said clock means and said storage means to transmit said packet on said channel after said random period of time and when there is no activity on said channel.
storage means to receive an information packet for transmission on said channel;
sensing means coupled to said channel to detect when said channel is inactive;
clock means coupled to said sensing means to determine a random period of time after said sensing means detects no activity on said channel; and transmitting means coupled to said channel, said clock means and said storage means to transmit said packet on said channel after said random period of time and when there is no activity on said channel.
2. The station according to claim 1 further including:
receiving means coupled to said channel and to said storage means to receive an acknowledgement signal on said channel within a fixed time interval after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
receiving means coupled to said channel and to said storage means to receive an acknowledgement signal on said channel within a fixed time interval after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
3. A station according to claim 1 wherein:
said clock means includes counter means driven by a random clock.
said clock means includes counter means driven by a random clock.
4. A station according to claim 1 wherein:
said transmitting means transmits said packet during a fixed period of time duration.
said transmitting means transmits said packet during a fixed period of time duration.
5. A station according to claim 1 further including:
channel state means coupled to said storage means, sensing means and transmitting means to maintain said station in a sequence of states which include, in order, the channel idle state, packet-being-transmitted state, and acknowledge-ment period state.
channel state means coupled to said storage means, sensing means and transmitting means to maintain said station in a sequence of states which include, in order, the channel idle state, packet-being-transmitted state, and acknowledge-ment period state.
6. A station according to claim 5 wherein said acknowledgement period state includes a quiescent period preceding any acknowledgement.
7. A station in a data communication network having a plurality of such stations coupled to a communication channel, said station comprising:
sensing means coupled to said channel to detect when said channel is inactive, clock means coupled to said sensing means to determine a random period of time after sensing means detects no activity on said channel; and transmitting means coupled to said channel and said clock means to transmit an information packet on said channel after said random period of time and when there is no activity on said channel.
sensing means coupled to said channel to detect when said channel is inactive, clock means coupled to said sensing means to determine a random period of time after sensing means detects no activity on said channel; and transmitting means coupled to said channel and said clock means to transmit an information packet on said channel after said random period of time and when there is no activity on said channel.
8. The station according to claim 7 further including:
receiving means coupled to said channel to receive an acknowledgement signal on said channel a fixed period of time after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
receiving means coupled to said channel to receive an acknowledgement signal on said channel a fixed period of time after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
9. A station according to claim 7 wherein:
said clock means includes counter means driven by a random clock.
said clock means includes counter means driven by a random clock.
10. In a station in a data communication network having a plurality of such stations coupled to a communication channel, said station including detection means coupled to said channel, clock means for determining a random period of time and transmitting means coupled to said clock means and detection means, the method comprising:
detecting when said channel is inactive;
determining a random period of time after the detection of no activity on said channel; and transmitting an information packet on said channel after said random period of time and when there is no activity on said channel.
detecting when said channel is inactive;
determining a random period of time after the detection of no activity on said channel; and transmitting an information packet on said channel after said random period of time and when there is no activity on said channel.
11. The method according to claim 10 further including:
receiving an acknowledgement signal on said channel a fixed period of time after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
receiving an acknowledgement signal on said channel a fixed period of time after said packet has been transmitted so as to indicate that said packet need not be retransmitted.
12. The method according to claim 10 further including:
transmitting said information packet during a fixed period of time duration.
transmitting said information packet during a fixed period of time duration.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000389188A CA1180075A (en) | 1981-11-02 | 1981-11-02 | Local area contention network data communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000389188A CA1180075A (en) | 1981-11-02 | 1981-11-02 | Local area contention network data communication system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1180075A true CA1180075A (en) | 1984-12-27 |
Family
ID=4121315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000389188A Expired CA1180075A (en) | 1981-11-02 | 1981-11-02 | Local area contention network data communication system |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1180075A (en) |
-
1981
- 1981-11-02 CA CA000389188A patent/CA1180075A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4332027A (en) | Local area contention network data communication system | |
US4337465A (en) | Line driver circuit for a local area contention network | |
US4441162A (en) | Local network interface with control processor & DMA controller for coupling data processing stations to common serial communications medium | |
US4590467A (en) | Local area network interface controller | |
US4642630A (en) | Method and apparatus for bus contention resolution | |
EP0147644B1 (en) | Token ring with secondary transmit opportunities | |
US4608700A (en) | Serial multi-drop data link | |
CA1205883A (en) | Digital communication system | |
JP2545508B2 (en) | Method of operating data processing device for vehicle and data processing device | |
CA1229879A (en) | Data link extension for data communication networks | |
AU547428B2 (en) | Scheme for reducing transmission delay following collision oftransmissions in communication networks | |
US5572546A (en) | Data communications system with multilink protocol | |
US5631905A (en) | Communications network control method | |
EP0129581B1 (en) | Method and apparatus for graceful preemption on a digital communications link | |
US4513370A (en) | Data transfer control system and method for a plurality of linked stations | |
US4593281A (en) | Local area network interframe delay controller | |
US4413258A (en) | Interconnection for local area contention networks | |
US5856921A (en) | Apparatus and method for intermodular communications using system bus controllers | |
EP0064818A1 (en) | Data collision avoidance method | |
EP0090031B1 (en) | Apparatus for establishing priority between processing units | |
CA1180075A (en) | Local area contention network data communication system | |
US6178177B1 (en) | Data-processing network having non-deterministic access, but having deterministic access time | |
JPS59178831A (en) | Data transmission system | |
JP2643089B2 (en) | Error detection and recovery system in parallel / serial bus | |
JPS62290239A (en) | Method for detecting synchronization/asynchronization area in looped communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |