Abstract:
A technique to operate a wireless (IEEE 802.15) and powerline (Broadband PLC) mesh network uses bridges to bridge the different network types. Each bridge has a an IEEE 802.15 MAC/PHY and a Broadband PLC MAC/PHY.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to and incorporates by reference U.S. Patent Application No. 62/095,756 filed Dec. 22, 2014. 
     
    
     FIELD OF THE INVENTION 
       [0002]    At least one embodiment of the present invention pertains to power line communication, and more particularly, to bridging wireless and powerline networks. 
       BACKGROUND 
       [0003]    Currently, Intelligent Building Lighting Systems (IBLS) or Home Area Networks (HANs) support either HPGP or IEEE802.15.4. Issues with using only HPGP Powerline Communication (PLC) network include a maximum of 255 nodes and HPGP does not work well when there are multiple phases or phase changes in the powerlines. Issues with using only IEEE802.15.4 include RF issues such as Indoor Multipath fading or signal loss due to multiple walls; interference with existing systems such as WiFi; latency increases as number of devices increase in the network due to increase in number of hops; and packet size is limited to 128 bytes of which 25 bytes is the MAC header. Other issues affecting conventional devices include resource constraints such as memory or CPU processing and battery operated or without battery devices. 
         [0004]    Accordingly, a new system and method that combines features of the different networks may be needed. 
       SUMMARY 
       [0005]    This summary is provided to introduce in a simplified form certain concepts that are further described in the Detailed Description below and the drawings. This summary is not intended to identify essential features of the claimed subject matter or to limit the scope of the claimed subject matter. 
         [0006]    In one embodiment, a heterogeneous network comprises at least one wireless (e.g., 802.15) subnetwork and at least one powerline communication (e.g., Broadband Powerline Communication) subnetwork, each of the subnetworks comprising at least one device, the subnetworks bridged by a bridge device. A method in the network comprises: determining, by the bridge device, neighboring nodes after a root node boots; assigning, by the bridge device, a neighboring node closest to the root node as a parent node; receiving, from each device in a subnetwork of the bridge device, a registration request; forwarding, by the bridge device, the registration request, to the root node; and receiving assignments of a network address for each subnetwork device, the network address having a size of two bytes and comprising a network identifier and device identifier. 
         [0007]    In an embodiment, the bridge device includes one wireless (e.g., IEEE 802.15) MAC/PHY and one PLC (e.g., Broadband Powerline Communication) MAC/PHY with a processor to execute instructions stored in memory based on the above method. 
         [0008]    Other aspects of the technique will be apparent from the accompanying figures and detailed description. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    One or more embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements. 
           [0010]      FIG. 1  is a block diagram illustrating a heterogeneous network. 
           [0011]      FIG. 2A  is a block diagram illustrating a bridge device. 
           [0012]      FIG. 2B  is a block diagram illustrating a memory of the bridge device. 
           [0013]      FIG. 3  is a block diagram illustrating a heterogeneous network. 
           [0014]      FIG. 4  is block diagram illustrating a network topology of the network of  FIG. 3 . 
           [0015]      FIG. 5  is a block diagram illustrating bridge node interfaces. 
           [0016]      FIG. 6  is a diagram illustrating a network header appended to packets. 
           [0017]      FIG. 7  is a flowchart illustrating a method of transmitting data over a heterogeneous network. 
           [0018]      FIG. 8  is a flowchart illustrating a method of processing a packet at a bridge device. 
           [0019]      FIG. 9  is a flowchart illustrating a method of processing a received packet at a gateway device. 
           [0020]      FIG. 10  is a flowchart illustrating a method of transmitting a packet at a gateway device. 
           [0021]      FIG. 11  is a flowchart illustrating a method of assigning an address at a gateway device. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]    References in this description to “an embodiment”, “one embodiment”, or the like, mean that the particular feature, function, structure or characteristic being described is included in at least one embodiment of the present invention. Occurrences of such phrases in this specification do not necessarily all refer to the same embodiment. On the other hand, such references are not necessarily mutually exclusive either. 
         [0023]      FIG. 1  is a block diagram illustrating a heterogeneous network  100 . The network  100  comprises a mix of IEEE 802.15.4 and Broadband PLC networks with a gateway and bridges between network types. An embodiment includes a scheme so that both of these networks can be used simultaneously such that overall system becomes robust, and extendable. Both of these will complement each other, hence user will get better connectivity and can extend network. 
         [0024]    The network  100  can bridge multiple Broadband PLC networks using IEEE802.15.4 networks or vice-versa. In each of the network, there are multiple devices. For e.g., Broadband-PLC network can have multiple PLC devices. Similarly, IEEE802.15.4 network can have multiple such devices. Each of the devices in either of the network can have light, sensor, tablets, mobile phones, computers, etc. and/or other appliances connected to it. 
         [0025]    Bridge devices (B 11 , B 12 , B 21 , B 22 , B 31 ) are the devices which are capable of having both Broadband PLC capability and IEEE802.15.4 capability. Additionally, these devices have capability to store information about other Bridges in the network. In an embodiment, there can be a cap on maximum number of bridges at 255 because of memory constraint of the bridge device. 
         [0026]      FIG. 2A  is a block diagram illustrating a bridge device  200 . Bridge device has two MAC/PHYs  230  and  240 , a processor  220 , and memory  210 . The processor executes bridging software and the memory  210  stores this software. 
         [0027]    Note that it is assumed that bridge devices are also having memory constraints and processing constraints. Hence, in an embodiment, the number of bridges may be limited to 255. However, additional bridges can be used in other embodiments. 
         [0028]    In an embodiment, for this kind of heterogeneous network, the device  200  limits packet size to 100 bytes; supports more than 255 devices in the network; extends range; meets memory constraints and enables data flows from Master to slave and vice-versa. 
         [0029]      FIG. 2B  is a block diagram illustrating the memory  220  of the bridge device  200 . The memory includes an ID assignment logic  211 , bridge table(s)  212 , a header generator logic  213  and forwarder logic  214 . The ID assignment logic  211  assigns IDs/addresses to devices in a bridge&#39;s network. For example, Bridge B 21  will assign addresses to devices in the Broadband PLC Network  2  in  FIG. 1 . Address assignment will be discussed further below. The assigned address are stored in one or more bridge tables  212 . The header generator  213  appends headers to received packets, as will be discussed further below. The forwarder  214  forward packets up or down the network. 
         [0030]      FIG. 3  is a block diagram illustrating a heterogeneous network  300 . In this network  3  Broadband PLCnetworks are bridged using 2 IEEE802.15.4 networks. Each network comprises two types of devices: a Bridge device (e.g., the device  200 ) having forwarding capability and both Broadband PLC interface and IEEE802.15.4 interfaces; and non-Bridge devices that do not have forwarding capability, are reachable from the external network from the nearest best bridge device, and can be either Broadband PLC device or IEEE802.15.4 device which belongs to respective networks. 
         [0031]      FIG. 4  is block diagram illustrating a network topology  400  of the network  300  of  FIG. 3 . G is the gateway device and is the root of this topology. All other bridge devices are called nodes in this topology. This network topology  400  shows that how bridge devices are connected to the network and are reachable from the root node G. Note, in an embodiment, only bridge nodes have forwarding capability. Both nodes and the gateway can be implemented using the bridge device  200 . 
         [0032]    Formation of the topology  400  is as follows: 
         [0033]    Root node G boots up and is ready. 
         [0034]    B 11  boots up and tries to find its neighboring nodes. 
         [0035]    B 11  gets response from the neighboring nodes and it selects node which is closest to the root node. 
         [0036]    Selection of the best neighbor can be done based on metric. Best neighbor is the one which is reachable from the root node and has good link with this node. Best neighbor node is called parent node with respect to the device. 
         [0037]    B 11  selects root node G. 
         [0038]    G becomes parent of B 11 . B 11  becomes child of G. 
         [0039]    B 21  boots up and tries to find its neighboring nodes. 
         [0040]    B 31  and G responds, B 21  selects root node G. 
         [0041]    B 22  boots up and tries to find its neighboring nodes 
         [0042]    B 21  responds. B 22  selects B 21  as its best neighbor 
         [0043]    B 21  becomes the parent of B 22  device 
         [0044]    Parent is selected such that it is attached to the network and is reachable from G. Parent device can make sure that it is reachable from the root. 
         [0045]    After parent selection is done, each device registers itself with the gateway. Device informs gateway who is his parent device. Packets are forwarded to the parent, which forwards them to the root and vice-versa 
         [0046]    Gateway software (i.e., ID assignment logic  211 ) allocates unique network ID to each of the device in the network during registration of the device with the gateway. 
         [0047]    For Broadband PLC network, each Broadband PLC device has a unique network ID (7 bytes) (NID). For IEEE802.15.4 wireless network, each network has unique PAN ID (2 bytes) as mentioned in the IEEE802.15.4-2006 specification. Hence, both of the networks can have their unique network IDs. 
         [0048]    During registration process, each device sends its network ID to the Gateway. Gateway verifies network ID and issues unique Network address to the device. In an alternate approach, rather than device sending NID to the Gateway, it is possible for the Gateway to assign NIDs for each device during registration process. Network addresses are of two bytes of which first byte can uniquely identify network (PLC or Wireless) and second byte can uniquely identify device with in the network/sub-network of the heterogeneous network. Hence, Gateway assigns unique network address to each of the device based on device&#39;s own network ID (NID or PAN ID). It is possible that network address can be of more than 2 bytes, but it will increase memory requirements. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Byte 1 
                 Byte 0 
               
               
                   
                   
               
             
             
               
                   
                 Network Identifier byte 
                 Device ID 
               
               
                   
                   
               
             
          
         
       
     
         [0049]    Gateway SW gets Broadband PLC Network ID or IEEE802.15.4 Network ID and device ID from the device during registration process. Device ID of the Broadband PLC device can be a Terminal Equipment identifier (TED. This is a Broadband PLC MAC short address which uniquely identifies any device in the Broadband PLC network. It is a 1 byte address so maximum devices number of devices supported in single Broadband PLC network is limited to 255. 
         [0050]    As per spec, Device ID of the IEEE802.15.4 is 2 bytes ID. Hence, the maximum number of devices supported is 64K. 
         [0051]    For the network identifier byte (NIB), Bit 0  to Bit  6  are used for Broadband PLC network identification. Bit 7  is used for IEEE802.15.4 network identification. NIB for Broadband PLC device has Bit 7  set to zero and for IEEE802.15.4 device it is set to 1. Hence, maximum numbers of Broadband PLC networks which can be used are 127, in an embodiment. There is no such restriction for IEEE802.15.4 networks. In other embodiments, there may be no maximum. 
         [0052]    For each of the Broadband PLC devices, the gateway software determines network address as follows: 
         [0053]    Network identifier byte (NIB) is assigned based on the network ID of the Broadband PLC device to which it belongs to. 
         [0054]    Each Broadband PLC network is assigned a unique NIB, which is assigned to the device. 
         [0055]    Device ID (Byte  0 ) of the Network Address is same as the Broadband PLC TEI. Broadband PLC TEI is sent by the device during registration process. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Byte 1 
                 Byte 0 
               
               
                   
                   
               
             
             
               
                   
                 Network Identifier byte 
                 HPGP TEI 
               
               
                   
                 (Bit7 = 0) 
               
               
                   
                   
               
             
          
         
       
     
         [0056]    This way each of the Broadband PLC devices gets a unique Network Address. 
         [0057]    For each of the IEEE802.15.4 devices, the gateway software determines network address as follows: 
         [0058]    NIB is assigned based on the unique PAN ID of the network or new device being registered. 
         [0059]    Device ID is assigned based on the available ID for the new device. 
         [0060]    E.g first device will get 0 device id, next will get 1, etc. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Byte 1 
                 Byte 0 
               
               
                   
                   
               
             
             
               
                   
                 Network Identifier byte 
                 Available Device id 
               
               
                   
                 (Bit7 = 1) 
               
               
                   
                   
               
             
          
         
       
     
         [0061]    This way each of the IEEE802.15.4 devices gets a unique Network Address. 
         [0062]    Note the Bridge device has both Broadband PLC and IEEE802.15.4 interfaces. Therefore, the Bridge device is assigned a Network Address based on Broadband PLC assigning mechanism as mentioned above. 
         [0063]      FIG. 5  is a block diagram illustrating bridge node interfaces. Each of the bridge devices will have both PLC and Wireless interfaces (PLC+Wireless). Bridge will be connected to the Broadband PLC devices and/or IEEE802.15.4 devices. 
         [0064]    Broadband PLC only devices are directly connected to the Bridge. One of the bridge devices becomes CCO (Central Coordinator) for the Broadband PLC devices. Broadband PLC short address called TEI (Terminal Equipment Identifier) is a single byte address assigned by CCO (Central Coordinator) to each of the STA (Station) during MAC layer association. Broadband PLC network is a star network. 254 maximum Broadband PLC devices can be connected to the bridge device (CCO). TEI is sent to the gateway by the device during registration process. 
         [0065]    IEEE802.15.4 only devices are directly connected to the Bridge. 
         [0066]    IEEE802.15.4 interface of the bridge device temporarily assigns random id as a short address of the interface. This temporary network address is used for the communication until it registers with the gateway and gets unique network address from it. Unique network address replaces temporary address. 
         [0067]    Gateway assigns unique network address to the bridge device based on Broadband PLC addressing as described above. This network address is used for IEEE802.15.4 and Broadband PLC interfaces (only TEI part). IEEE 802.15.4 replaces temporary address. 
         [0068]    Bridge software gets its network address from the gateway as discussed above. Bridge device will replace temporary short address of the IEEE802.15.4 interface with the new Network Address received from the Gateway. Previous temporary short address is overwritten with the new address which is received from the gateway. This way each of the IEEE802.15.4 devices in the network has a unique Network Address. 
         [0069]    In  FIGS. 5 , P 1 , P 2 , P 3  and P 4  Broadband PLC devices belong to the Broadband PLC network and are interfaced with Broadband PLC interface of the Bridge B 1 . 
         [0070]    Z 2  and Z 3  IEEE802.15.4 devices belong to the IEEE802.15.4 network and are reachable using IEEE802.15.4 interface of the bridge device. 
         [0071]    Advantages of having Network Address format as shown above may include: 
         [0072]    Bridge device software can determine TEI from the network address of the received packet and can forward packet to the Broadband PLC device directly using extracted TEI. This allows bridge not to store devices (IEEE MAC Addresses) which are in its local networks such as other Broadband PLC devices (non-bridge devices). 
         [0073]    Bridge device software can also set network address of the IEEE802.15.4 interface same as the Network Address received from the Gateway. This allows having unique network address of each of the IEEE802.15.4 interface. 
         [0074]    Bridge device SW software can determine whether destination device (child) is over PLC or IEEE802.15.4 network using Network Address NIB field. This also allows bridge not to store devices which are in its local networks such as other Broadband PLC devices (non-bridge devices) or IEEE802.15.4 devices. 
         [0075]    In  FIG. 5 , B 1  stores network address only of B 2 . It does not store address of any other device because it can always determine it from the network address. 
         [0076]    The root node, in the Gateway, maintains a routing table, which comprises address of all of the devices in the network. When any device in the network boots up it registers itself with the root node, hence, root node becomes aware of the device network address and its associated parent network address. Root stores child devices parent id, device id, next hop id and link on which next hop device is reachable. 
         [0077]    Non-root nodes, e.g., child nodes (bridge devices) each maintains a routing table that comprises network addresses of other devices in its subtree. This comprises all parent IDs, device IDs, next hop IDs and corresponding links of the next hop devices. Table size may be constrained by the total number of bridge devices in the network. Hence, memory may be constrained for this device. For example, in  FIG. 4 , B 11  will store device id of B 12 ; B 21  will store device id of B 41 , B 22  and B 21 . 
         [0078]      FIG. 6  is a diagram illustrating a network header  600  appended to packets. Any device in the network will append the network header  600  to each packet it transmits. 
         [0079]    Frame Control includes command ID, Direction, To Root and reserved field. Command ID determines frame type. User can differentiate frames using this id.T 
         [0080]    The direction field helps to determine whether packet should be forwarded or not. If direction is DOWN then packet should be forwarded to the device which is farther from the root node and node which is forwarding. If direction is UP, then packet should be forwarded to the device which is closer to the root node i.e., parent device. 
         [0081]    The To Root field indicates if the packet is destined to the root. 
         [0082]    Child ID indicates the Network address of the child device. Parent ID indicates the Network address of the parent of the given device. Metric helps in determining the distance of the node from the root and is a measure of device link with the parent. This field along with direction field is used to determine whether packet should be forwarded or not. 
         [0083]    In the topology of  FIG. 4 , data flows in two directions—from root to the child (DOWN) or from child to the root (UP). Any node which wants to send data to the root can send their data to its parent device. Since parent is already reachable from root, device directly sends data to the parent. Parent node will further send data to his parent node, until data reaches to the root node. For example, B 41  will send data to B 22 , B 22  will forward to B 21  and B 21  will forward it to root B 22  is the parent of B 41 , B 21  is parent of B 22 , B 11  is the parent of B 21 , and G is the parent of B 11 . When packet is sent from B 41  to B 22 , packet header will be as follows 
         [0000]    
       
         
               
               
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Frame 
                 B41 ID 
                 B22 ID 
                 B41 Metric 
               
               
                   
                 Control 
               
               
                   
                 (Dir = UP) 
               
               
                   
                   
               
             
          
         
       
     
         [0084]    When packet is sent from B 21  to B 11  which sends it to root, packet header remains same. 
         [0085]    Root shall maintain knowledge or table of all of the devices in the network. Any device which comes up in the network shall register with root. 
         [0086]    When root has to send data to the child, it will get following information from its table: Parent (network address) of the child device; and next hop device which is on the best path to reach the parent device. 
         [0087]    When any bridge node other than root node receives packet, it will look up its table to find the parent or get next hop to reach to the parent and sends packet to the next hop address. Same is repeated until packet reaches to the parent device. Parent device forwards packet to its child based on the child&#39;s network address. 
         [0088]    In  FIG. 4 , when root has to send packet to the B 41 , following network header is attached to the packet 
         [0000]    
       
         
               
               
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Frame 
                 B41 ID 
                 B22 ID 
                 Root 
               
               
                   
                 Control 
                   
                   
                 Metric 
               
               
                   
                 (Dir = 
               
               
                   
                 DOWN) 
               
               
                   
                   
               
             
          
         
       
     
         [0089]    From the network table, next hop is determined as B 21 . This packet is sent to B 21 . B 21  determines next hop as B 22  from its table. B 22  matches with Parent ID. B 22  determines whether B 41 &#39;s network address is over PLC or IEEE802.15.4 using network address (NIB, section 5.1.2). 
         [0090]    If the address belongs to the Broadband PLC device, Broadband PLC device&#39;s TEI is obtained from the network address and packet is forwarded to the destination Broadband PLC device. 
         [0091]    If the address belongs to the IEEE802.15.4 device, IEEE802.15.4 device&#39;s address is same as Network address of the child ID i.e., B 41 . 
         [0092]      FIG. 7  is a flowchart illustrating a method  700  of transmitting data over a heterogeneous network. In an embodiment, the logic in the memory  210  can execute the method  700 . The method  700  is employed in a network having heterogenous networks, i.e., IEEE 802.15.4 and powerline, e.g., Broadband PLC. First, addresses are assigned ( 710 ) to the devices in the networks. Then, table(s) are generated ( 720 ) as described above. Then a packet is received ( 730 ). If the packet is from the bridge&#39;s network, then it generates ( 740 ) and appends ( 750 ) as described above. The packet is then forwarded ( 760 ) per the header. If the packet already has a header, then the packet is forwarded ( 760 ) based on header information. 
         [0093]    Route Maintenance—Every device in the whole network sends periodic keep alive frames to the gateway. These periodic frames carry devices network address, it&#39;s parent address, device type (bridge device/non bridge device) etc. Since this packet goes through the best path to reach the Gateway, this information (parent id and device network address) is used by the bridge devices and gateway to update or maintain route table. Route table in the bridge devices store route information for the all bridge devices for which it receives periodic keep alive frame. 
         [0094]      FIG. 8  is a flowchart illustrating a method  800  of processing a packet at a bridge device. When a bridge receives ( 810 ) packet, it checks Child ID in the packet header. If child ID matches ( 820 ) with the bridge device network address then packet is processed ( 830 ). 
         [0095]    If not, Parent ID is matched ( 840 ) the network address, if matched, packet is forwarded to either PLC ( 880 ) or IEEE802.15.4 network ( 890 ). Bit  7  of the second byte of the child ID is used ( 870 ) to identify over which network packet is to be forwarded. 
         [0096]    If Parent ID does not match ( 840 ), next hop network address and link is extracted ( 850 ) from the routing table and packet is forwarded ( 860 ) to the given network address over the given link 
         [0097]      FIG. 9  is a flowchart illustrating a method  900  of processing a received packet at a gateway device. A packet is received ( 910 ). For the received packet, check ( 920 ) to root flag, if true process ( 930 ) the packet. 
         [0098]      FIG. 10  is a flowchart illustrating a method  1000  of transmitting a packet at a gateway device. For the transmitted packet, get ( 1020 ) the next hop network address from the routing table and transmit ( 1030 ) the packet. 
         [0099]      FIG. 11  is a flowchart illustrating a method  1100  of assigning an address at a gateway device. The gateway assigns ( 1100 ) an Address based on the interface type. If ( 1120 ) the target (Child) is a bridge device, allocate ( 1130 ,  1140 ) network address as Bit  7  of second byte as 0, Bit  6  to Bit  0  of the second byte—generate unique network id, Bit 7  to Bit  0  as a TEI of the device. TEI is received from the device. 
         [0100]    If ( 1150 ) the target is IEEE802.15.4 only device, assign ( 1160 ) network address as Bit 7  of the second byte as 1, Bit 6  to 0 as unique id (randomly generated), Bit  0  to Bit 7  of the first byte as 0. 
         [0101]    The techniques introduced above can be implemented by programmable circuitry programmed/configured by software and/or firmware, or entirely by special-purpose circuitry, or by a combination of such forms. Such special-purpose circuitry (if any) can be in the form of, for example, one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), etc. 
         [0102]    Software or firmware to implement the techniques introduced here may be stored on a machine-readable storage medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors. A “machine-readable medium”, as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, any device with one or more processors, etc.). For example, a machine-accessible medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc. 
         [0103]    The term “logic”, as used herein, means: a) special-purpose hardwired circuitry, such as one or more application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), or other similar device(s); b) programmable circuitry programmed with software and/or firmware, such as one or more programmed general-purpose microprocessors, digital signal processors (DSPs) and/or microcontrollers, or other similar device(s); or c) a combination of the forms mentioned in a) and b). 
         [0104]    Note that any and all of the embodiments described above can be combined with each other, except to the extent that it may be stated otherwise above or to the extent that any such embodiments might be mutually exclusive in function and/or structure. 
         [0105]    Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense.