WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
High speed data transfer over twisted pair cabling    
United States Patent5598406   
Link to this pagehttp://www.wikipatents.com/5598406.html
Inventor(s)Albrecht; Alan (Granite Bay, CA); Goody; Steven H. (Roseville, CA); Spratt; Michael P. (Bath, GB2); Curcio, Jr.; Joseph A. (Folsom, CA); Dove; Daniel J. (Applegate, CA)
AbstractA method for transmitting data packets, grouped as data octets, over a LAN having a central hub linked to each of a plurality of network nodes via a physical medium consisting of four pairs of unshielded twisted pair (UTP) cable. The transmission method sequentially divides the data into data quintets. The quintets are then arranged into blocks of data quintets and sequentially distributed into four individual serial code streams. The four serial code streams are sequentially scrambled to produce four streams of randomized quintets. The randomized data streams are sequentially block encoded into 6-bit symbol data which are then transmitted using NRZ modulation across the network by transmitting each data stream over one of said pairs of cable.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5598406
High speed data transfer over twisted pair cabling - US Patent 5598406 Drawing
High speed data transfer over twisted pair cabling
Inventor     Albrecht; Alan (Granite Bay, CA); Goody; Steven H. (Roseville, CA); Spratt; Michael P. (Bath, GB2); Curcio, Jr.; Joseph A. (Folsom, CA); Dove; Daniel J. (Applegate, CA)
Owner/Assignee     Hewlett-Packard Company (Palo Alto, CA)
Patent assignment
All assignments
Publication Date     January 28, 1997
Application Number     08/371,721
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 12, 1995
US Classification     370/296 370/401 370/410 370/447 370/450
Int'l Classification     H04L 005/16
Examiner     Chin; Wellington
Assistant Examiner     Vu; Huy D.
Attorney/Law Firm    
Address
Parent Case     CROSS REFERENCE TO RELATED APPLICATION This application is a divisional of application Ser. No. 08/246,536, filed May 20, 1994, now U.S. Pat. No. 5,438,571, which is a continuation-in-part of patent application Ser. No. 07/972,694, filed Nov. 6, 1992, now U.S. Pat. No. 5,550,836.
Priority Data    
USPTO Field of Search     370/94.3 370/95.1 370/95.2 370/95.3 370/85.9 370/85.2 370/85.1 370/85.11 370/85.3 370/24 370/29 370/32 370/110.1 370/31 455/54.1 455/54.2 340/825.06 340/825.07 340/825.08 375/257 375/260 375/288
Patent Tags     high speed data transfer over twisted pair cabling
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5440560
Rypinski

Aug,1995

[0 after 0 votes]
5432775
Crayford

Jul,1995

[0 after 0 votes]
5311114
Sambamurthy
370/296
May,1994

[0 after 0 votes]
5305320
Andrews
370/229
Apr,1994

[0 after 0 votes]
5239545
Buchholz
370/348
Aug,1993

[0 after 0 votes]
5119402
Ginzburg
375/288
Jun,1992

[0 after 0 votes]
5079766
Richard

Jan,1992

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a local network system in which a hub is connected to each of a plurality of network nodes, a method for sending consecutive data packets to a first network node while allowing exchange of control signals between the hub and the first network node, the method comprising the steps of:

(a) transmitting a first incoming control signal from the hub to the first network node to indicate to the first network node that a first data packet is about to be sent from the hub to the first network node;

(b) transmitting the first data packet from the hub to the first network node, wherein transmission of the first data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the first data packet the first network node is unable to transmit any information to the hub;

(c) transmitting an idle control signal from the hub to each of the network nodes, wherein transmission of the idle control signal is performed using duplex transmission between the hub and the first network node so that during the transmission of the idle control signal the first network node is able to transmit information, including a send request, to the hub; including the substep of:

(c.1) receiving at the hub any send request from the first network node and storing and scheduling the send request with any other received network node requests;

(d) transmitting a second incoming control signal from the hub to the first network node to indicate to the first network node that a second data packet is about to be sent from the hub to the first network node; and,

(e) transmitting the second data packet from the hub to the first network node, wherein transmission of the second data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the second data packet the first network node is unable to transmit any information to the hub.

2. A method as in claim 1 wherein in step (d) transmission of the second incoming control signal is performed using duplex transmission between the hub and the first network node so that during the transmission of the second incoming control signal the first network node is able to transmit information, including a send request, to the hub.

3. A method as in claim 2 wherein upon the hub receiving any send request from the first network node, the hub stores and schedules the send request along with any other received network node requests.

4. A method as in claim 1 wherein;

the first network node is connected to the hub using a plurality of twisted wire pairs; and,

in step (c) a first set of the plurality of twisted wire pairs is used to send control signals from the first network node to the hub and a second set of the plurality of twisted wire pairs is used to send control signals from the hub to the first network node.

5. In a local network system in which a hub is connected to each of a plurality of network nodes, a method for sending consecutive data packets to a first network node while allowing exchange of control signals between the hub and the first network node, the method comprising the steps of:

(a) transmitting a first incoming control signal from the hub to the first network node to indicate to the first network node that a first data packet is about to be sent from the hub to the first network node;

(b) transmitting the first data packet from the hub to the first network node, wherein transmission of the first data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the first data packet the first network node is unable to transmit any information to the hub;

(c) transmitting a second incoming control signal from the hub to each of the network nodes, wherein transmission of the second incoming control signal is performed using duplex transmission between the hub and the first network node so that during the transmission of the second incoming control signal the first network node is able to transmit information, including a send request, to the hub; including the substep of:

(c.1) receiving at the hub any send request from the first network node and storing and scheduling the send request with any other received network node requests; and,

(d) transmitting the second data packet from the hub to the first network node, wherein transmission of the second data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the second data packet the first network node is unable to transmit any information to the hub.

6. A method as in claim 5 wherein:

the first network node is connected to the hub using a plurality of twisted wire pairs; and,

in step (c) a first set of the plurality of twisted wire pairs is used to send control signals from the first network node to the hub and a second set of the plurality of twisted wire pairs is used to send control signals from the hub to the first network node.

7. In a local network system in which a hub is connected to each of a plurality of network nodes, a method for sending consecutive data packets to a first network node while allowing exchange of control signals between the hub and the first network node, the method comprising the steps of:

(a) transmitting the first data packet from the hub to the first network node, wherein transmission of the first data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the first data packet the first network node is unable to transmit any information to the hub;

(b) transmitting an idle control signal from the hub to each of the network nodes, wherein transmission of the idle control signal is performed using duplex transmission between the hub and the first network node so that during the transmission of the idle control signal the first network node is able to transmit information, including a send request, to the hub; including the substep of:

(b.1) receiving at the hub any send request from the first network node and storing and scheduling the send request with any other received network node requests; and,

(c) transmitting a second data packet from the hub to the first network node, wherein transmission of the second data packet is performed using half-duplex transmission over all data channels between the hub and the first network node so that during the transmission of the second data packet the first network node is unable to transmit any information to the hub.
 Description Submit all comments and votes
 


BACKGROUND

The present invention pertains to computer networks, and more particularly, to a method of transferring data at 100 Mb/s transfer rates over local area networks (LAN's) using unshielded twisted pair (UTP) wire media.

In the world of computers, pc and workstation users are requiring greater network bandwidths/higher speeds to carry more and more data over existing networks. The need for higher speed networks will grow even faster as desktop computers are equipped with the higher speed bus architectures that are being developed. Over the past ten years, desktop pc processing power has increased over a hundredfold. Over that same period, however, the data transmission speed of Ethernet LAN's has remained constant at 10 Mb/s. Network speeds are now a common bottleneck in a variety of key business application areas including database management, imaging, computer-aided design and network printing. On a typical 10 Mb/s Ethernet or Token-Ring network, it can take as long as 20 seconds to retrieve a single page of data depending upon network traffic. If 100 Mb/s networks were available, transfers would not be network limited and would take only one or two seconds for that same page of data.

Generally, for high speed data transfer in excess of 25 Mb/s over a LAN, data has been transferred using fiber optic media, coaxial cable, shielded wire or other specialized cable. For example, the fiber distributed data interface (FDDI) protocol is a common network protocol which operates using a fiber optic medium. FDDI has been available the longest of any high speed (100 Mb/s) network architecture, but it is still the costliest. Very few business users of computers have installed fiber optic cabling. In the United States it is estimated that approximately 80% of existing LAN users have "category 3" (voice grade) unshielded twisted pair wiring to interconnect desktop users. Such cables are usually configured in 25-pair bundles to accommodate future organizational growth.

The use of fiber optic media or shielded twisted pair (STP) wire for local area networking present various problems of their own. Most existing office buildings have an installed base of UTP wiring--not fiber optic cable or STP wire. Therefore, to utilize a fiber optic or STP network, assuming existing cable ducts have the space available, it would be necessary to specially install high quality cabling. This can be cost prohibitive. Yet if a LAN could be designed to operate at speeds of 100 Mb/s and work over Category 3 to Category 5 (data grade) UTP wire, users could easily switch to the higher speed network interface equipment using the existing cabling installation.

There has been some work done to increase the rate over which data can be transferred over installed twisted pair cabling. See for example U.S. Pat. No. 5,119,402 issued to Simon A. Ginzburg et al. for a Method and Apparatus for Transmission of Local Area Network Signals over Unshielded Twisted Pairs. However, in the prior art there has been no work which has sufficiently increased the speed of data transmission so that transmission over a four pair voice grade UTP wire network can rival the speed of data transmissions over fiber optic cabling. Some of the reasons for this are obvious. Unlike fiber optic cable or STP wire, UTP wire has greater radio-frequency (rf) emissions since it is unshielded. And, because the twist of the wire pairs does not provide perfect balance, there are also crosstalk and noise interference problems. And as speeds increase above 10 Mb/s these problems are exacerbated along with-high frequency rolloff causing signal distortion that increases with the length of the wire runs. Yet, given these problems there are various proposals for new network topologies to send data over UTP wire at transmission rates of 100 Mb/s; the present invention represents the heart of one of those proposals. And, although the present invention could easily be adapted to operate over higher quality cable, such as STP, it has its greatest utility (in terms of economy) for existing UTP wired facilities.

SUMMARY OF THE INVENTION

In accordance with the teachings of the present invention, a method is provided for transmitting data packets, grouped as data octets, over a LAN having a central hub linked to each of a plurality of network nodes via a physical medium consisting of four pairs of unshielded twisted pair (UTP) cable. The transmission method initially divides the data octets sequentially into 5-bit data quintets. The quintets are then sequentially distributed into four individual serial code streams. The four serial code streams are sequentially scrambled to produce four streams of randomized 5-bit quintets. The randomized data streams are sequentially block encoded into 6-bit symbol data which are then transmitted across the network by transmitting each data stream over one of said pairs of cable.

In the preferred embodiment, before the 6-bit symbol data is transmitted across the network, the data on two of the cable pairs is staggered (in time) by at least two data bits for various reasons including to increase the noise immunity of the transmission across the channel.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention as well as further features thereof, reference is made to the accompanying drawings wherein:

FIG. 1 shows a simplified block diagram of the interconnection of various networks.

FIG. 2 shows a simplified block diagram of a network in accordance with a preferred embodiment of the present invention.

FIG. 3 shows a simplified block diagram of a network device of the network shown in FIG. 2.

FIG. 3A is a block diagram which shows logical flow of information within the network device shown in FIG. 3.

FIG. 4 shows a simplified block diagram of the hub of the network shown in FIG. 2.

FIG. 5 shows a simplified block diagram of a transceiver within the hub shown in FIG. 4.

FIG. 6 shows a simplified block diagram of a repeater within the Mb shown in FIG. 4 in accordance with the preferred embodiment of the present invention.

FIG. 7 is a state diagram for a repeater state machine within the repeater shown in FIG. 6.

FIG. 8 is a state diagram for a training state machine within the repeater shown in FIG. 6.

FIG. 9 is a state diagram for a client state machine within the network device shown in FIG. 3A.

FIG. 10 is a state diagram for a client training state machine within the network device shown in FIG. 3A.

FIG. 11 is an example of a filter design which may be used the hub shown in FIG. 4 and the network device shown in FIG. 3.

FIG. 12 shows logic blocks within a network interface which prepare data to be forwarded to a hub in accordance with the preferred embodiment of the present invention.

FIG. 13 shows a diagram which explains data flow within the logic blocks shown in FIG. 12.

FIG. 14 is a timing diagram showing the timing of signals through a group of four twisted pair wires in accordance with a preferred embodiment of the present invention.

FIG. 15 is a block diagram of a circuit which facilitates collision detection in a network in accordance with a preferred embodiment of the present invention.

FIGS. 16 and 17 show potential frequency spectrums for signals sent across a twisted pair shown in FIG. 15.

FIG. 18 shows a block diagram of a circuit which provides common-mode collision signaling in a network.

FIG. 19 shows a block diagram of a circuit which provides in-band collision signaling in a network.

FIG. 20 is a block diagram which shows how the implementation circuit in FIG. 15 or the circuit shown in FIG. 18 may be used in a network where a network device sends data to a network device over four twisted wire pairs.

FIG. 21 shows a hub connected to network nodes through four twisted wire pairs.

FIG. 22 shows an example of signal timing within a network.

FIG. 23 shows an example of signal timing within a network.

FIG. 24 shows a hub connected to network nodes in a system where there is a collision window before each packet transmission.

DETAILED DESCRIPTION

FIG. 1 shows a simplified block diagram of a typical network structure. A LAN 11, a LAN 12 and a LAN 13 are connected, for example, through a bridge/router (not shown in FIG. 1) to network 10. Network 10 operates, for example, using the fiber distributed data interface (FDDI) protocol. LAN 11 and LAN 13, may operate, in accordance with any number of protocols. For example, if connected through a router, these LANs could operate in accordance with the IEEE 802.3 protocol, with the Token Ring protocol, with ISDN protocol or with a WAN protocol.

Various network devices, also referred to as end nodes, may be connected to the LANs. For example, a network device 14 and a network device 15 are shown connected to LAN 11. Network devices 16, 17 and 18 are shown connected to LAN 12. Network devices 19, 20 and 21 are shown connected to LAN 13. Network devices 14 through 21 may be, for example, a work station, a personal computer, a network server, or some other device.

FIG. 2 shows a block diagram of LAN 12 which includes a hub 30. Hub 30 is an intelligent central controller that manages data from the various network devices connected to the hub. Hub 30 is connected to network device 16 through four twisted-pairs of copper cable 31. Hub 30 is also connected to each network device 17 and 18 through four twisted pairs or copper cable 32 and 33 respectively.

FIG. 3 shows a simplified block diagram of a network interface 41, which is used by each of network devices 16, 17 and 18 to interface with hub 30. A backplane interface 42 provides an interface between computer system RAM and the network device. A random access memory (RAM) 43 is used to temporarily store data packets received from or to be transferred out on the network. A media access controller (MAC) 44 is used to control the flow of data within network interface 41. A transceiver 45 is used to send and receive through the network. A transformer and filter 46 is used to adjust voltage and provide noise filtering for signals transferred between transceiver 45 and a connector 47. A connector 47 is connected to the bundle of four UTP wires from hub 30.

FIG. 3A is a block diagram which shows logical flow of information within network interface (client) 41. A client-training-state machine 501 is used in initializing the connection between network device 41 and hub 30. (Although the function is explained below in greater detail, "training" is the initialization process that verifies the operation of the link and optimizes the circuitry for data transmission and reception.) A client-state machine 502 controls data transactions between network device 41 and hub 30. A DMA controller 503 controls DMA transfers between RAM 43 and a data buffer 504. Twisted pair transmit logic 505 forwards data to transceiver 45 via path 513. Twisted pair receive logic 506 receives data from transceiver 45 via path 514.

Control signals flow from DMA controller 503 to RAM 43 through an information channel 507. Control signals also flow from DMA controller 503 to data buffer 504 through another information channel 510. Data signals flow between data buffer 504 and RAM 43 through another information channel 508. DMA controller 503'signals client-state machine 502 through information channel 509 when there is a packet to transmit. Data buffer 504 sends data to twisted pair transmit logic 505 through information channel 511. Data buffer 504 receives data signals from twisted pair receive logic 506 through information channel 512. Transceiver 45 receives data from twisted pair transmit logic 505 through information channel 513. Transceiver 45 also sends data to twisted pair receive logic 506 through information channel 514. Twisted pair receive logic 506 signals client-state machine 502 through an information channel 515 at the start of a packet and at the end of a packet (RXDONE). Client-state machine 502 signals twisted pair receive logic 506 through an information channel 516 when a packet is to be received. Twisted pair transmit logic 505 signals client-state machine 502 through an information channel 517 when a transmit is complete. Client-state machine 502 signals twisted-pair-transmit logic 505 through an information channel 518 when a packet is to be transmitted.

FIG. 4 shows a block diagram of hub 30 which manages the network access. A backbone physical interface 51 provides a physical interface of hub 30 to network 10. A backbone media access controller (MAC) 52 controls data flow between hub 30 and network 10. A bridge buffer RAM 53 provides temporary storage for data (packets) flowing between hub 30 and network 10. A repeater 57 directs data flow on LAN 12. A content addressable memory (CAM) 54 is addressable with a network address and outputs an associated port. A broadcast SRAM 56 is used for temporary storage of multi-port messages which are to be broadcast across LAN 12.

A network management subsystem 58 provides network management. Network management subsystem 58 includes a processor 60, an EPROM 62, a RAM 61 and a memory access controller (MAC) 59. EPROM 62 stores program information used by processor 60. RAM 61 stores programs used by processor 60. MAC 59 provides a means for processor 60 to communicate with other nodes on the network.

A transceiver 63 is used to send and receive data to and from a network device (node) connected to a connector 67. A transceiver 64 is used to send and receive data to and from a network device connected to a connector 68. A transceiver 65 is used to send and receive data to and from a network device connected to a connector 69. A transceiver 66 is used to send and receive data to and from a network device connected to a connector 70. While only transceivers 63 through 66 and connectors 67 through 70 are shown, many more transceivers and connectors can be added. For example, in the preferred embodiment of the present invention, the hub has 24 ports. A transformer/filter 73 connects transceiver 63 to connector 67. A transformer/filter 74 connects transceiver 64 to connector 68. A transformer/filter 75 connects transceiver 65 to connector 69. A transformer/filter 76 connects transceiver 66 to connector 70.

FIG. 5 shows a block diagram of transceiver 63. Transceiver 63 is connected to connector 67 through four UTP wire pairs. The first pair includes a connector line 81 and 82 (FIG. 5B). The second wire pair includes a connector line 83 and 84. The third wire pair includes a connector line 85 and 86. The fourth wire pair includes a connector line 87 and 88. When transceiver 63 receives the four streams of data over the four pairs (81-88), the data is received by equalizer circuits 91-94 whose function is to compensate for the insertion loss variations of the path with frequency (i.e., rolloff). Each of equalization circuits 91 through 94 ideally provides a clean and amplified signal. In addition, equalization circuit 91 also provides a carrier detector signal on a carrier detector line 180.

A phase locked loop (PLL) clock and data recovery circuit 101 receives a clean and amplified signal on line 181 and 182. PLL clock and data recovery provides a data signal on a line 171, a clock signal on a line 175 and a clock valid signal on a line 279. A PLL clock and data recovery circuit 102 receives a clean and amplified signal on line 183 and 184. PLL clock and data recovery provides a data signal on a line 172, a clock signal on a line 176 and a clock valid signal on a line 280. A PLL clock and data recovery circuit 103 receives a clean and amplified signal on line 185 and 186. PLL clock and data recovery provides a data signal on a line 173, a clock signal on a line 177 and a clock valid signal on a line 281. A PLL clock and data recovery circuit 104 receives a clean and amplified signal on line 187 and 188. PLL clock and data recovery provides a data signal on a line 174, a clock signal on a line 178 and a clock valid signal on a line 282.

Referring to FIG. 5A, elasticity buffers 111, 112, 113 and 114 synchronize the data signals from PLL clock and data recovery circuits 101-104 to a single clock. Elasticity buffer 111 receives the data signal and clock signal from PLL clock and data recovery circuit 101 and produces a synchronized data signal on line 191. Elasticity buffer 112 receives the data signal and clock signal from PLL clock and data recovery circuit 102 and produces a synchronized data signal on line 192. Elasticity buffer 113 receives the data signal and clock signal from PLL clock and data recovery circuit 103 and produces a synchronized data signal on line 193. Elasticity buffer 114 receives the data signal and clock signal from PLL clock and data recovery circuit 104 and produces a synchronized data signal on line 194.

A logic OR gate 170 receives the clock signal on line 175, the clock valid signal on line 279, the clock valid signal on line 280, the clock valid signal on line 281 and the clock valid signal on line 282. OR gate 170 produces a clock signal (Clk 0) on line 190. The Clk 0 signal passes through OR gate 170 when the four clock valid signals are asserted low. Driver buffer 106 forwards data to repeater 57 on a line 126, a line 127, a line 128 and a line 129. Driver 106 also provides a clock signal on a line 129. Receive line state logic 105 is used to receive and forward transfer set-up requests over the first and the second twisted wire pairs. Receive line state logic 105 receives the carrier detector signal on carrier detector line 180, the data signal on line 171, the data signal on line 172 and the clock signal on line 175. Receive line state logic 105 produces a priority (PRI) request signal on line 121, a receive line state signal (RLS0) on line 122, a receive line state signal (RLS1) on line 123, and a receive line state signal (RLS2) on line 124 for forwarding to repeater 57. Repeater enables receive line state logic 105 by placing a receive line state enable signal on a line 125. A receiver enable signal (RXEN) is generated by repeater 57 to select receive line state logic 105 or driver buffer 106 to forward information to repeater 57.

Referring to FIG. 4, when transceiver 63 transmits data to repeater 57, it places a first data signal (TDATA0) on transmit data line 137 (in FIG. 5A), a second data signal (TDATA1) on transmit data line 138, a third data signal (TDATA2) on transmit data line 139 and a fourth data signal (TDATA3) on transmit data line 140. When transceiver 63 transmits control signals to repeater 57, it places a first transmit line signal (TLS0) on line 132, a second transmit line signal (TLS1) on a line 133, a third transmit line signal (TLS2) on a line 134, and a transmit line clock (TLSCK) on a line 135. TLSCK is used to store the TLS values. Transmit line state logic 115 generates tones and drives the TLS values to be forwarded to a multiplexer/transmitter 116.

Multiplexer/transmitter 116 (FIG. 5A), in response to a transmit enable signal (TXEN) on a line 136, selects either data signals on lines 137, 138, 139 and 140 to be forwarded to the four twisted wire pairs 81 through 88, or the tones and driver enables from transmit line state logic to be forwarded to the third and fourth twisted wire pairs 85 through 88. A transmitter clock (TXCLK) is provided to transmit line state logic 115 and multiplexer transmitter 116 on a line 141.

FIG. 6 is a block diagram showing data flow within repeater 57. Repeater 57 essentially functions to channel transferred data. Twisted pair receive logic 212 receives data and control signals from the transceivers, e.g., transceivers 63, 64, 65 and 66. For example, twisted pair receive logic 212 is connected to lines 121 through 131 of transceiver 63. Broadcast RAM readback logic 211 receives data from broadcast SRAM 56. Backbone receive logic receives data from bridge buffer RAM 53.

Twisted pair transmit logic 220 sends data and control signals to the transceivers, e.g., transceivers 63, 64, 65 and 66. For example, twisted pair transmit logic 220 is connected to lines 132 through 141 of transceiver 63. Broadcast write logic 219 sends data to broadcast SRAM 56. Backbone transmit logic sends data to bridge buffer RAM 53.

The data received by twisted pair receive logic 212, broadcast RAM read-back logic 211 and backbone receive logic 210 is channeled through a first-in-first-out (FIFO) buffer 215 to either backbone transmit logic 218, broadcast write logic 219 or twisted pair transmit logic 220. FIFO buffer 215 also provides arbitration information to a receiver port arbiter 214.

Receiver port arbiter 214 selects from which port to receive a data transmission. In general, a simple arbitration scheme is used. For example, a round robin arbitration scheme may be used in which the last port from which a data transmission is received is given lowest priority. A transmit arbiter 217 determines to which port of backbone transmit logic 218, broadcast logic write logic 219 or twisted pair transit logic 220 data is to be transmitted. Transmit arbiter 217 determines where to send a message by forwarding a network address of the message to CAM 54. CAM 54 returns a port number to transmit arbiter 217. Repeater 57 also includes a repeater state machine 216 and a training state machine 213.

FIG. 7 shows a state diagram for repeater state machine 216. After start-up of the repeater and training of all ports (as explained below) has taken place, repeater state machine 216 is in idle state 231. Upon receiving a request for transfer from receiver port arbiter 214, repeater state machine enters an acknowledge port state 232. When repeater state machine 216 is in the acknowledge port state, repeater 57 sends an acknowledge signal to the port which was selected by receiver port arbiter 214. If repeater 57 times out before it begins to receive a data packet from the selected port, repeater state machine 216 enters a set retrain port state 239. In set retrain port state 239, repeater state machine 216 signals training state machine 213, to retrain the port. Repeater state machine 216 then returns to idle state 231.

From acknowledge port state 232, upon repeater 57 beginning to receive a network data packet, repeater state machine 216 enters a determine destination state 233. While repeater state machine 216 is in determine destination state 233, transmit arbiter 217 determines where to send a message by forwarding the network address in the network data packet to CAM 54. CAM 54 returns a port number to transmit arbiter 217.

If transmit arbiter 217 determines the destination is to a port within local network 12, repeater state machine 216 enters a transmit to port state 235. In transmit to port state 235, data as it is received from the port selected by receive port arbiter 214 is forwarded immediately to the port selected by transmit arbiter 217. Upon repeater 57 receiving the complete network data packet and completion of the forwarding of the data, repeater state machine 216 returns to idle state 231. If the complete data packet is not received within a specified time, repeater state machine 216 enters set retrain port state 239.

In determine destination state 233, if transmit arbiter 217 determines the destination is to multiple ports within local network 12, repeater state machine 216 enters a buffer to local RAM state 237. In buffer to local RAM state 237, data as it is received from the port selected by receive port arbiter 214 is forwarded to broadcast SRAM 56. Ira complete data packet is not received within a specified time, repeater state machine 216 enters set retrain port state 239. Upon repeater 57 receiving the complete network data packet and completion of the forwarding of the data to broadcast SRAM 56, repeater state machine 216 enters a transmit to all ports state 238. In transmit to all ports state 238, repeater 57 reads the broadcast message in broadcast SRAM 56 and forwards the message to each of the ports specified. Upon completion of the data transmissions, repeater state machine 216 returns to idle state 231.

In determine destination state 233, if transmit arbiter 217 determines the destination is to the backbone of local network 12, repeater state machine 216 enters a buffer to bridge state 234. In buffer to bridge state 234, data as it is received from the port selected by receive port arbiter 214 is forwarded to bridge buffer RAM 53. If a complete data packet is not received within a specified time, repeater state machine 216 enters set retrain port state 239. Upon repeater 57 receiving the complete network data packet and completion of the forwarding of the data to buffer RAM 53, repeater state machine 216 returns to idle state 231. If buffer RAM 53 runs out of available memory locations before completion of the transfer of the network data packet, repeater state machine 216 enters a set busy signal state 236. In set busy signal state 236, repeater 57 sends a busy signal to the transmitting data port and throws away the network data packet. Upon completion of the transfer of the network data packet to repeater 57, repeater state machine 216 returns to idle state 231.

FIG. 8 is a state diagram for the training state machine 213 shown in FIG. 6. After a reset or whenever it is necessary to train a port, training state machine 213 proceeds through the training states. Before training a port, training state machine 213 is in an idle state 241. When the training state machine 213 receives a training idle up signal from a port which requests training, the training state machine 213 enters a drive-T-idle (training idle)-down state 242. In drive-T-idle-down state 242, repeater 57 sends a training idle down signal to the port requesting training.

Upon receiving a request-to-transmit signal from the port to be trained, training state machine 213 enters a request-to-repeater state machine state 243. In request-to-repeater-state-machine state 243, training state machine 213 waits for repeater state machine 216 to acknowledge the port to be trained. Upon repeater state machine 216 providing the acknowledgment, training state machine 213 enters an acknowledge client state 244. In acknowledge-client state 244, training state machine 213 waits for the port to start sending a training packet.

Upon the port starting to send a packet, training state machine 213 enters a receive training packet state 245. In receive-training-packet state 245, training state machine 213 waits for completion of the sending of the training packet. When the training packet has been received, training state machine 213 enters a training completion state 246. In the training completion state 246, a check is done to see whether receive training is complete. For example, in the preferred embodiment, training is complete if 25 consecutive training packets have been received without errors. If there are errors in reception, the equalization and clock frequencies are adjusted in the transceiver for the port. If receive training is not complete, training state machine 213 returns to drive T-idle-down-state 242.

When receive training is complete, training state machine 213 enters a request-to-repeater-arbiter state 247. In request-to-repeater-arbiter state 247, training state machine 213 requests transmit arbiter 217 to initiate the transmission of a training packet to the port being trained. Upon receiving an acknowledgment from repeater state machine 216, training state machine 213 enters a transmit-training-packet state 248. Upon completion of the transmission of the transmit-training-packet state, training state machine 213 enters a training complete state 249. If transmit training is not complete, training state machine 213 returns to request-to-repeater-arbiter state 247.

When transmit training is complete, training state machine 213 enters line idle state 250. Training state machine 213 remains in line idle state 250 during normal operation of the port. When the port requests retraining, training state machine 213 returns to drive-training-idle-down state 242.

FIG. 9 shows a state diagram for client-state machine 502 (FIG. 3A). Client-state machine 502 is initially in an idle state 251. When hub 30 signals that a packet will be incoming to the client, client-state machine 502 enters a wait-for-packet state 252. In wait-for-packet state 252, if the client sees the receive line state transition to a state other than incoming, such as idle, client-state machine 502 returns to idle state 251. Upon the client beginning to receive a packet, client-state machine 502 enters a receive-packet state 253.

In the receive-packet state 253, client-state machine 502 waits for the end of the packet to be received. When the end of the packet is received and client-state machine 502 is not waiting on a busy signal, client-state machine 502 returns to idle state 251. When the end of the packet is received and client-state machine 502 is waiting on a busy signal, client-state machine 502 enters a wait to re-transmit state 258.

From idle state 251, when the client desires to transmit a data packet, the client-state machine 502 enters a send request state 254. In the send request state 254, the client sends a request-to-transmit signal to hub 30. The client then waits for an acknowledgment signal from hub 30 (indicating that the link is clear to send). While waiting for an acknowledgment, if hub 30 signals the client that a packet will be incoming to the client, the client-state machine 502 enters the wait-for-packet state 252 to inhibit messsage transmission from the client. In the send-request state 254, when the client receives an acknowledgment from hub 30, client-state machine 502 enters a transmit packet state 256. In the transmit packet state 256, the client sends a data packet to hub 30. Upon the end-of-packet being sent, client-state machine 502 enters a wait-for-idle/busy state 257. In wait-for-idle/busy state 257, if the client receives an idle signal from hub 30, transmission of the packet was successful and client-state machine 502 returns to idle state 251. If the client receives a busy signal from hub 30, client-state machine 502 enters wait to re-transmit state 258.

In the wait-to-transmit state 258, client-state machine 502 waits for hub 30 to stop sending a busy signal. If hub 30 signals that a packet will be incoming to the client, client-state machine 502 enters wait-for-packet state 252. When in wait-to-transmit state 258, if client-state machine 502 detects the busy signal from hub 30 being de-asserted, client-state machine 502 returns to send-request state 254. When in wait-to-transmit state 258, if client-state machine 502 times out waiting for hub 30 to de-assert the busy signal, the client-state machine 502 enters a discard-packet state 259. When in the discard-packet state 259, the client discards the network packet and returns to the idle state 251.

There are situations where a client might be the end-node destination address for a very long string of incoming packets and given the above description it might appear that a send request would not be allowed. In response to an incoming packet signal, the client must switch to the wait-for-packet state 252 t