Patent Publication Number: US-6909725-B1

Title: Implementation of HPNA 2.0 network states in hardware

Description:
FIELD OF THE INVENTION 
   The present invention relates to computer network, and more particularly to the handling of network states in a home phone line network. 
   BACKGROUND OF THE INVENTION 
   Home networks are becoming more common and desirable for connecting computers within a home. One type of home network is the home phone line network which uses telephone lines typically installed in residence homes for communication between computers in the home. 
     FIG. 1  illustrates a home phone line network. The Home Phone Line Networking Alliance (HPNA) has published a specification to standardize the behavior of home phone line networks. The current HPNA specification is version 2.0 (“HPNA 2.0”). The network comprises a control chip  100 . The chip  100  further comprises a Media Independent Interface (MII)  106 , a Media Access Control (MAC)  108 , and a Physical Layer (PHY)  110 . The chip  100  implements HPNA 2.0. The chip  100  receives a signal containing data packets through the telephone wires via a phone jack  102 . There is an analog front end (AFE)  104  which processes the signal between the chip  100  and the telephone wires. The chip  100  then processes the packets received in the signal from the AFE  104 , and outputs a signal to the Host MAC  112 . 
   Under HPNA 2.0, stations in the network supports a 10 megabits-per-second (mbps) data rate and/or a 1 mbps data rate, depending on the network state of the station. Such stations are referred to as “10M8 stations”. Stations implemented under a previous version of the HPNA specification (“HPNA 1.x”) supported only the 1 mbps data rate. Such stations are referred to as “1M8 stations”. 
   There are three possible network states for 10M8 stations: V1M2 mode, 1M8 mode, and 10M8 mode. 10M8 stations in the 1M8 mode transmit only 1M8 format frames, with a private communication (PCOM) field set to 1 or 2. The PCOM is a field in the frame. Its information is used by the PHY  110  in node-to-node communications. The PCOM field is set as follows: 
   PCOM=0 refers to a 1M8 station; 
   PCOM=1 refers to a 10M8 station functioning in V1M2 mode or 1M8 mode if V1_DETECTED is not asserted; and 
   PCOM=2 indicates a 10M8 station functioning in V1M2 mode or 1M8 mode if V1_DETECTED is asserted. 
   The signal, V1_DETECTED, is described further below. 
   10M8 stations in the 10M8 mode transmit only 10M8 format frames. 10M8 stations in the V1M2 mode transmit either 1M8 format frames to 1M8 stations with a PCOM set to 1 or 2, or 10M8 compatible format frames to 10M8 stations. The 10M8 compatible frame contains a gap within the data frames. This “gap frame” provides interoperability between the format frames under HPNA 2.0 and HPNA 1.x. 
   The following equations set forth the three modes possible for a 10M8 station:
 
V1M2_MODE=(not ConfigV1) and ((not ConfigV2) or ConfigV1M2) and (ConfigV1M2 or V1_DETECTED or V1_SIGNALED)
 
1M8_MODE:=ConfigV1
 
10M8_MODE:=not (V1M2_MODE or 1M8_MODE)
 
   ConfigV1M2 is a signal which forces a station into the V1M2 mode. ConfigV1 is a signal which forces a station into the 1M8 mode. ConfigV2 is a signal which forces a station into the 10M8 mode. 
   V1_DETECTED is a signal which is asserted when a 10M8 station, while in 10M8 Mode and with Link Integrity Status=DOWN, detects a 1M8 format frame with a PCOM=1. V1_DETECED is also asserted when a 10M8 station detects a 1M8 format frame with a PCOM=0. The Link Integrity Status indicates whether or not the station is connected with another station. If the station is disconnected, then the Link Integrity Status=DOWN. If the station is connected, then the Link Integrity Status=UP. 
   V1_SIGNALED is a signal which is asserted when a 10M8 station detects or transmits a 1M8 format frame with a PCOM=2. 
   Conventionally, the three network states under HPNA 2.0 are implemented in software. However, the response time may be slow. 
   Accordingly, there exists a need for an implementation of the HPNA 2.0 network states in hardware. The present invention addresses such a need. 
   SUMMARY OF THE INVENTION 
   A network state machine which implements the three network states of HPNA 2.0 in hardware has been disclosed. The network state machine implements the three network states using two network states. When a station is in the V1M2 mode, instead of transmitting this frame in the 10M8 format frame with the gap frame, the frame is transmitted in the 1M8 format frame without any gaps in the frame. By implementing this in hardware, the network state machine has a faster response time. 

   
     BRIEF DESCRIPTION OF THE FIGURES 
       FIG. 1  illustrates a home phone line network. 
       FIG. 2  illustrates a preferred embodiment of the Media Access Control in accordance with the present invention. 
       FIG. 3  is a flow diagram illustrating an implementation in hardware of the 10M8 mode by the network state machine in accordance with the present invention. 
       FIG. 4  is a flow diagram illustrating an implementation in hardware of the 1M8 mode by the network state machine in accordance with the present invention. 
   

   DETAILED DESCRIPTION 
   The present invention provides an implementation of the HPNA 2.0 network states in hardware. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein. 
   To more particularly describe the features of the present invention, please refer to  FIGS. 2 through 4  in conjunction with the discussion below. 
     FIG. 2  illustrates a preferred embodiment of the MAC  108  in accordance with the present invention. The MAC  108  comprises a Receive Data Path  202 , a Transmit Data Path  204 , a Distributed Fair Priority Queuing (DFPQ)  206 , a Binary Exponential Backoff (BEB)  208 , a Link Integrity  210 , a Network State  212 , a Rate Request Control Frame (RRCF)  214 , a plurality of registers and Management Information Base (MIB) counters  216 . 
   The Receive Data Path  202  receives data packets from the PHY  110  and sends data packets to the MII  106 . In the preferred embodiment, after each data packet sent by the Receive Data Path  202 , another packet, referred to herein as a “frame status frame”, is sent immediately following. The frame status frame contains certain status information required by subsequent processes. 
   The Transmit Data Path  204 , which receives data packets from the MII  106  and transmits them to the PHY  110 . 
   The DFPQ  206  and the BEB  208  provide collision resolution. The DFPQ  206  provides collision resolution for the 10 mpbs data rate, while the BEB  208  provides collision resolution for the 1 mpbs data rate. In the preferred embodiment, the PHY  110  will provide a collision detect signal. Either the DFPQ  206  or the BEB  208  will then attempt to resolve the collision. 
   The Link Integrity  210  monitors the physical network conditions. In the preferred embodiment, the Link Integrity  210  updates a link status bit in a link register. The Link Integrity  210  also sends link packets in accordance with HPNA 2.0. 
   The RRCF block  214  sends a RRCF whenever the MAC  108  transitions between data rates. The RRCF is used to perform the rate negotiation function, i.e., to determine what is the data rate to communicate between different stations in a home phone line network. 
   The registers and MIB counters  216  provides programmability to the MAC  108  and handles error event counting. 
   The Network State  212  in accordance with the present invention monitors he current mode of the MAC  108 , i.e., whether the MAC  108  is operating in the 1M8 mode, the V1M2 mode, or the 10M8 mode. 
   To support the three network states under HPNA 2.0 using two network states, the three network state equations for V1M2_MODE, 1M8MODE, and 10M8_MODE, set forth in the Background, are collapsed into two equations. To accomplished this, when a 10M8 station is in the V1M2 mode, instead of transmitting this frame in the 10M8 compatible format, the frame is transmitted in the 1M8 format frame without any gaps in the frame. Thus, the following equations apply:
 
V1M2_MODE=1M8_MODE
 
ConfigV1M2=ConfigV1
 
   Using the above equations, the three network state equations set forth in HPNA 2.0 becomes the following:
 
1M8_MODE:=(ConfigV1 or ConfigV1M2) or (not ConfigV2) and (V1_SIGNALED or V1_DETECTED)
 
10M8_MODE:=not 1M8_MODE
 
   The definitions for ConfigV1, ConfigV1M2, ConfigV2, V1_SIGNALED, and V1_DETECTED remain unchanged. 
   In this manner, the three network states of HPNA 2.0 is supported using two network states. 
     FIG. 3  is a flow diagram illustrating an implementation in hardware of the 10M8 mode by the network state machine in accordance with the present invention. A 10M8 station is currently in the 10M8 mode when the M10M8_S signal is asserted, via step  302 . Next, if the MTX_LINK signal is not asserted and the RX_DET — 1 signal is asserted, via step  304 , then the SET_V1_DETECTED_P1 signal is asserted, via step  314 . The MTX_LINK signal is asserted when the Link Integrity status is “UP” and not asserted when the status is “DOWN”. The RX_DET — 1 signal is asserted when the 10M8 station receive detects a 1M8 frame with a PCOM=1. The assertion of the SET_V1_DETECTED_P1 asserts the V1_DETECTED signal with a PCOM value of “1”. 
   If the MTX_LINK signal is asserted or the RX_DET — 1 signal is not asserted, then the Network State  212  determines if the RX_DET — 0 signal is asserted, via step  306 . The RX_DET — 0 signal is asserted when the 10M8 station receive detects a 1M8 frame with a PCOM=0. If RX_DET — 0 signal is asserted, then the SET_V1_DETECTED_P0 signal is asserted, via step  316 . The assertion of the SET_V1_DETECTED_P0 signal asserts the V1_DETECTED signal with a PCOM=0. 
   If the RX_DET — 0 signal is not asserted, then the Network State  212  determines if either the RX_DET — 2 signal or the TX_DET — 2 signal is asserted, via step  308 . The RX_DET — 2 signal is asserted when the 10M8 station receive detects a 1M8 frame with a PCOM=2. The TX_DET — 2 signal is asserted when the 10M8 station transmit detects a 1M8 frame with a PCOM=2. If either of these signals is asserted, then the SET_V1_SIGNALED signal is asserted, via step  318 . The asserted SET_V1_SIGNALED signal asserts the V1_SIGNALED signal. 
   If neither the RX_DET — 2 nor the TX_DET — 2 signal is asserted, then the Network State  212  determines if the FORCE_V1P0 signal is asserted, or the CONFIG_V1 signal is asserted, or if there is a combination of the CONFIG_V2 signal not being asserted and the V1_DET_SIG signal being asserted, via step  310 . The FORCE_V1P0 signal is asserted when the 10M8 station is to be forced into the 1M8 mode with a PCOM=0. The CONFIG_V1 signal is asserted when the 10M8 station is to be forced into the 1M8 mode with a PCOM=1. The CONFIG_V2 signal is asserted when the 10M8 station is to be forced into the 10M8 mode. The V1_DET SIG signal is asserted when either the V1_DETECTED or the V1_SIGNALED signals are asserted. Step  310  implements the following equation for the 1M8 mode, described above:
 
1M8_MODE:=(ConfigV1 or ConfigV1M2) or (not ConfigV2 and (V1_SIGNALED or V1_DETECTED)
 
   If step  310  is determined to be “false”, then the 10M8 station continues to function in the 10M8 mode. If step  310  is determined to be “true”, then the 10M8 station is forced into the 1M8 mode. In doing so, the SEND_RRCF and the RST_RRCF signals are asserted, via step  312 . The asserted SEND_RRCF signal causes a RRCF to be sent. After the RRCF is sent, counters in the RRCF  214  is reset by asserting the RST_RRCF signal. 
   If either the V1_DETECTED or the V1_SIGNALED signals are asserted, via step  314 - 318 , then the Network State  212  if the FORCE_V1P0 or the CONFIG_V1 signal is asserted or if the CONFIG_V2 signal is not asserted, via step  320 . Step  320  implements the same equation for the 1M8 mode as step  310 , however, since it is already known that either the V1_DETECTED or the V1_SIGNALED signals have been asserted, that determination is not required at step  320 . If step  320  is determined to be “false”, then the 10M8 station continues to function in the 10M8 mode. If step  320  is determined to be “true”, then the 10M8 station is forced into the 1M8 mode. In doing so, the SEND_RRCF and the RST_RRCF signals are asserted, via step  322 . 
     FIG. 4  is a flow diagram illustrating an implementation in hardware of the 1M8 mode by the network state machine in accordance with the present invention. The 10M8 station is currently in the 1M8 mode when the M1M8_S signal is asserted, via step  402 . Next, the counters in the RRCF  214  are enabled by asserting the EN_RRCF signal, via step  404 . Next, if the RX_DET — 0 signal is asserted, via step  406 , then the SET_V1_DETECTED_P0 signal is asserted, via step  416 . 
   If the RX_DET — 0 signal is not asserted, then the Network State  212  determines if either the RX_DET — 2 signal or the TX_DET — 2 signal is asserted, via step  408 . If either of these signals is asserted, then the SET_V1_SIGNALED signal is asserted, via step  418 . 
   If neither the RX_DET — 2 nor the TX_DET — 2 signal is asserted, then the Network State  212  determines if the FORCE_V1P0 signal is asserted, or the CONFIG_V1 signal is asserted, or if there is a combination of the CONFIG_V2 signal not being asserted and the V1_DET_SIG signal being asserted, via step  410 . As with step  310  in  FIG. 3 , step  410  implements the following equation for the 1M8 mode, described above:
 
1M8_MODE:=(ConfigV1 or ConfigV1M2) or (not ConfigV2 and (V1_SIGNALED or V1_DETECTED)
 
   If step  410  is determined to be “false”, then the 10M8 station resets the counters in the RRCF  214  by asserting the RST_RRCF signal, via step  428 , and changes to the 10M8 mode. If step  410  is determined to be “true”, then the Network State  212  determines if the RRCF timer has overflowed by determining if the RRCF_TMO signal is asserted, via step  412 . The RRCF_TMO signal is asserted when the life-span of the last RRCF has expired. If the RCF_TMO signal is asserted, then the SEND_RRCF and the RST_RRCF signals are asserted to send the RRCF again, via step  414 . The 10M8 station then continues in the 1M8 mode. 
   If either the V1_DETECTED or the V1_SIGNALED signals are asserted, via step  416 - 418 , then the Network State  212  determines if the FORCE_V1P0 or the CONFIG_V1 signal is asserted or if the CONFIG_V2 signal is not asserted, via step  420 . As with step  320  of  FIG. 3 , step  420  implements the same equation for the 1M8 mode as step  410 , however, since it is already known that either the V1_DETECTED or the V1_SIGNALED signals have been asserted, that determination is not required at step  420 . If step  420  is determined to be “false”, then the 10M8 station resets the counters in the RRCF  214  by asserting the RST_RRCF signal, via step  426 , and changes to the 10M8 mode. If step  420  is determined to be “true”, then the 10M8 station continues in the 1M8 mode. The SEND_RRCF and the RST_RRCF signals are asserted, via step  424 , if the RRCF_TMO signal is asserted, via step  422 . 
   A network state machine which implements the three network states of HPNA 2.0 in hardware has been disclosed. The network state machine implements the three network states using two network states. When a station is in the V1M2 mode, instead of transmitting this frame in the 10M8 format frame with the gap frame, the frame is transmitted in the 1M8 format frame without any gaps in the frame. By implementing this in hardware, the network state machine has a faster response time. 
   Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.