Non interfering group based wireless network protocols

A wireless network (100) and method (200) for assigning a set of channels to a set of wireless devices (102-126) in the network where there are less channels than devices such that wireless devices are grouped in channel groups such that the wireless devices assigned to each channel group are positioned so as not to interfere with each other. In assigning an nth wireless device to a kth channel group, the nth and preferably one member of the kth channel group at a time are instructed to transmit simultaneously in order to ascertain if the nth wireless device interferes with or is interfered with by any member of the kth channel group.

FIELD OF THE INVENTION

The present invention relates in to wireless networks.

BACKGROUND OF THE INVENTION

Advances in electronics manufacturing technology have enabled the manufacture of inexpensive wireless devices in large quantities. Presently there is an interest in greatly expanding the use of wireless devices and networks of wireless devices beyond traditional communication uses.

A variety of new applications for networks including many low cost devices are contemplated. Such networks are generally expected to be what is termed Ad Hoc. In the context of wireless networks, Ad Hoc implies that when a number of devices are powered up, and at least some of the devices are in range of each other, the devices will interoperate to form a network. Ad Hoc networks can be formed without detailed planing by a network engineer. The placement of devices in an Ad Hoc network can be relatively random from the point of view of radio link considerations. The devices are placed as needed according to the use of the network. It may so happen that many devices are placed close together creating a potential for interference.

One category of application for networks that are to include many low cost devices is “Sensor Networks”. Sensor networks are typically envisioned to include many wireless devices coupled to sensors, and one or a few wireless devices coupled to data sinks. The data traffic in sensor networks is primarily from the sensors to the data sinks. There may be some small amount of control signal traffic from the data sink to the sensors. Thus, in sensor networks the foremost issues relate to sending messages from the sensors to the data sink(s).

The bandwidth available for use by any wireless network is limited by regulatory constraints. As the number of wireless devices in a given locale increases, the limits of bandwidth become problematic insofar as a finite bandwidth must be shared by all the devices in the network. In traditional cellular networks, bandwidth reuse is achieved by dividing the area in which the cellular network is deployed into a number of cells, the size of which is on the order of the range of mobile wireless devices, and assigning specific sub-bands to specific cells in such a manner that adjacent cells use different sub bands. However, such a system requires strategic placement of a number of cell sites in order to achieve frequency reuse, and is therefore not ideal for use in Ad Hoc networks. A number of methods have been used to share available bandwidth in wireless communication systems. These include Frequency Division Multi-Access (FDMA), Code Division Multi-Access (CDMA), and Time Division Multi-Access (TDMA). One protocol for sharing bandwidth that is based on TDMA is known as polling Media Access Control (MAC). In polling MAC protocols, under the direction of a network controller wireless device, each other wireless device in the network is allocated a particular time slot in which to transmit messages. In such systems, the network controller sends a poll signal to each wireless device at a prescribed time to trigger the particular device to transmit any messages that need to be transmitted. Unfortunately, in networks using a traditional polling MAC, the bandwidth that is effectively available to each device is inversely related to the number of devices in the network.

It is generally desirable to increase the effective bandwidth available to devices in wireless networks. In particular, it is desirable to increase the bandwidth available in Ad Hoc sensor networks.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The terms a or an, as used herein, are defined as one or more than one. The term plurality, as used herein, is defined as two or more than two. The term another, as used herein, is defined as at least a second or more. The terms including and/or having, as used herein, are defined as comprising (i.e., open language). The term coupled, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically.

FIG. 1is an example of graph of a hierarchical tree topology routing network100of wireless devices according to the preferred embodiment of the invention. The network100comprises a plurality of wireless devices102-122, including a root position wireless device102. The root position wireless device102has functionality that will be described below with reference toFIGS. 2-3that includes assigning channels to other wireless devices104-122of the network100, and preferably orchestrating the use of different channels by the other wireless devices104-122. In discussing the hierarchical topology network100, terms borrowed from graph theory including ‘child’, ‘parent’ and ‘edge’ are useful. The heavy lines, or in the nomenclature of graph theory, edges shown interconnecting pairs of wireless devices102-122inFIG. 1represent wireless communication links. The wireless communication links can be unidirectional or bi-directional. Other wireless communication links can also potentially exist because a given wireless device may be in range of wireless devices other than those to which it is connected by an edge shown inFIG. 1. However, in routing messages according to a routing protocol that relies on the exemplary hierarchical tree topology shown inFIG. 1, the edges shown inFIG. 1are used. The hierarchical tree topology shown inFIG. 1is preferably used for routing messages upstream, which is to say from wireless devices104-122toward the root position wireless device.

According to the preferred embodiment of the invention, in addition to the wireless communication links represented by edges shown inFIG. 1, the root position wireless device102is able to transmit directly to any of the other wireless devices104-122in the network. In order for the root position wireless device to be able to transmit directly to the other wireless devices, the root position wireless devices preferably is capable of higher power transmission.

One application to which hierarchical tree topology networks are particularly suitable is sensor networks. In sensor networks that use a hierarchical tree topology network, such as shown inFIG. 1the root position wireless device102ideally serves as a data sink, and the other wireless devices104-122are coupled to sensors (e.g., temperature sensors, smoke detectors). Information gathered by sensors is routed to the root position wireless device102from the other wireless devices104-122using the wireless communication links represented by edges shown inFIG. 1. In a sensor network, network traffic is predominantly directed to the root position wireless device102(as opposed to emanating from the root position wireless device).

The wireless devices102-124can be segregated into levels. A zeroth level includes only the root position wireless device102. Each of the other wireless devices104-122is assigned to a level corresponding to the number of edges along a shortest path from the particular wireless device to the root position wireless device102. Thus, the root position wireless device102has three ‘children’ including a second wireless device104, a third wireless device106, and a fourth wireless device108which are said to be in a first level of the network100because there is one edge between each of the three wireless devices104,106,108and the root position wireless device102. The root position wireless device102is said to be the ‘parent’ of the three wireless devices104,106,108in the first level. Each of the three children104,106,108of the root wireless device102has three children of its own. The second wireless device104has three children including a fifth wireless devices110, a sixth wireless device112, and a seventh wireless device114. The third wireless device106has three children including an eighth wireless device116, a ninth wireless device118, and a tenth wireless device120. Similarly, the fourth wireless device108has three children including an eleventh wireless device122, a twelfth wireless device124, and a thirteenth wireless device126. The fifth through thirteenth wireless devices are considered to be in a second level of the network because the shortest path between each of the fifth-through twelfth wireless devices and the root position wireless device102includes a sequence of two edges. In the network100shown inFIG. 1there are three levels (the zeroth, first and second), and each wireless device that has children has three children. However, the number of children per device, and number of levels is merely exemplary. There can be more levels, and the number of children that devices have can vary.

In a sensor network application of the hierarchical tree topology network100, in routing sensor data upstream to the root position wireless device102, each of the other wireless devices104-122in the network need only send messages to its parent, not to its children. Thus, in a sensor network application of the hierarchical tree topology network100wireless communication links from children to parents are more important that wireless communication links from parents to children.

FIG. 2is a flow chart of a method200of operating a root position wireless device e.g.,102in order to assign channels to other wireless devices in the network shown inFIG. 1. Alternatively, the method200is performed by another wireless device. Although reference is made toFIG. 1in the description ofFIG. 2, the method presented inFIG. 2is applicable to other networks. Prior to conducting the method shown inFIG. 1, a hierarchical tree topology will already have been established, and the information as to the topology will have been stored in the root position wireless device e.g.,102. One way to establish a hierarchical topology is to program each device, except for a device that is to become a root position wireless device to seek out a single parent upon powering up and only after finding a parent, to accept one or more children. The device that is to become the root position wireless device is programmed to accept one or more children upon powering up. In establishing parent child relationships, the wireless devices, e.g.,102-126can use a rudimentary MAC such as ALOHA with double exponential back off.

Referring toFIG. 2, in step202, a first set of channel groups that is equal in number to the number of wireless devices that are children of the root position wireless device102are initialized. Each channel group is assigned a particular channel. The channels assigned to the channel groups do not interfere with each other. The channels are preferably time slots in a routing protocol that uses time division multi-access. Alternatively, the channels are frequency bands, spreading codes for use in a Direct Sequence Spread Spectrum (DSSS) Code Division Multi-Access (CDMA) signaling, or frequency hop sequences for use in Frequency Hopping Spread Spectrum (FHSS) signaling, or in a hybrid system have attributes of two or more of the foregoing types of channels. In step204each of the wireless devices that are children of the root position wireless device102are assigned to one of the first set of channel groups. Thus, each of the children of the root position wireless device102is a first member of a channel group.

Block206is the top of a first (outer) program loop that considers successive levels of the network100. The levels of the network100are considered sequentially starting with the children of the root position wireless device102. The levels are pointed to by a loop index l of the first loop. Not counting the zeroth level the total number of levels in the network is denoted by capital L, which in the case of network100is equal to two.

Block208is the top of a second program loop, within the first program loop, that considers successive nth wireless devices within each lth level that have not yet been assigned to a channel group. Each wireless device is assigned to a channel group by the method200.

Block210is the top of a third program loop, within the second program loop, that considers successive already established channel groups (channel groups having at least one member), for each nth wireless device that has yet to be assigned to a channel group. A loop index k of the third program loop references each already established channel group. In general, after performing the method200, a total number (denoted capital K) of channel groups that is less than a total number (denoted capital N) of wireless devices in the network will have been assigned for use in the network e.g.,100.

Block212is the top of a fourth program loop, within the third program loop, that considers each ith wireless device already in a kth channel group corresponding to the current iteration of the third program loop. A loop index i of the fourth program loop points to successive wireless devices in the kth channel group.

In step214, a message is sent by the root position wireless device102to the nth wireless device (corresponding to the current iteration of the second program loop) and to the ith wireless device (corresponding to the current iteration of the fourth program loop) instructing the ith wireless device and the nth wireless device to simultaneously send a response message to the root position wireless device102through their respective paths. In the case that the network100uses channel types aside from time slots, the nth, and ith wireless devices are instructed to use the same channel (e.g., frequency band, spreading code, or frequency hoping sequence). The messages including instructions that are sent in step214are preferably sent directly, (i.e., not routed through the network) using the high power transmit capability of the root position wireless device102, on a separate control channel (e.g., frequency). Alternatively, the messages including instructions are routed through the network102. By having the ith and nth wireless devices transmit simultaneously on the same channel it can be ascertained if the ith and nth devices are positioned so as to interfere with each other. If the nth and ith wireless devices are spaced apart, or there are wireless signal obstacles (e.g., metal objects, office furniture) between the ith, and nth devices, it may be possible for the ith and nth devices to use the same channel simultaneously without interfering with each other. However, in order for the nth wireless device to use the channel used by the ith wireless device, the nth device must not interfere with or be interfered with by signals from any of the wireless device in the channel group that includes the ith wireless device. Stated differently, it is not sufficient that a nth wireless device being considered for assignment to a kth channel group does not interfere with or is not interfered with by one or a subset of the members of the kth channel group, the wireless device should not interfere with any of the wireless devices in the kth channel group. The method200serves to group wireless devices into channel groups in a manner consistent with the foregoing criteria.

Optionally, in responding to the messages sent in block214the nth and ith wireless devices transmit messages using less channel coding than would ordinarily be used to transmit data, or use no channel coding at all. Reducing or eliminating the use of channel coding in testing for interference, makes the test for interference more conservative.

Block216is a decision block the outcome of which depends on whether both responses requested in step214were correctly received. Note that when a first device and a second device communicate simultaneously, it may so happen, according to the topology of the network e.g.100, that signals from the first device interfere with communication by the second device, but signals from second device do not interfere with communication by the first device. For example in the network100shown inFIG. 1, consider the second104, third106, seventh114and eighth116wireless devices. The seventh wireless device114sends messages destined for the root position wireless device102through the second wireless device104, and similarly, the eighth wireless device116sends messages destined for the root position wireless device102through the third wireless device106. Note that the distance between the seventh node114and the third node106is greater than the distance between the eighth node116and the second node104. The disparate distances lead to the potential, depending on: the transmit power of the seventh114, and eighth116wireless devices; the placement of any signal obstacles; and the interference rejection ratio of the wireless devices of the second104, and third106devices, that transmissions by the eighth device116will interfere with reception at the second device104of signals transmitted by the seventh device114, but that transmissions by the seventh device114will not interfere with reception of signals transmitted by the eighth device at the third device106.

Correct reception of both responses that were solicited in step214is an indication that the ith device does not interfere with the nth device, and vice versa. Information ascertained in executing blocks214and216that is information as to whether two devices interfere when using the same channel is preferably stored in a matrix termed an interference matrix. Such an interference matrix preferably includes information for plurality wireless devices in a network. Each row corresponds to a particular wireless device. Each column also corresponds to a particular wireless device. The elements of the interference matrix are binary valued. Each element of the interference matrix indicates whether or not a device specified by the column (or row) index of the element is interfered with by a device specified by the row (or column) index of the element. As indicated by parenthesis in the preceding sentence, the role of the columns and rows as corresponding to interfering or interfered with devices is alternatively reversed. Such an interference matrix, evaluated by having combinations of wireless devices in a network transmit simultaneously and determining if the transmitted messages are received, is useful in a variety of types of networks other than that shown inFIG. 1. Matrices are implemented in different programming languages, and by individual programmers in different ways. For example a matrix can be implemented as two-dimensional array, or as a list of lists.

Referring again toFIG. 2, if it is determined in block216that both responses solicited in step214were received then the possibility of assigning the nth wireless device to the kth channel group remains intact, but other member of the kth channel group, if any, remain to be checked for interference with the nth device. If both responses solicited in step214are received, then the method200continues with decision block218in which it is determined if there are more wireless devices in the channel group corresponding to the current iteration of the third program loop. If so, then in step220the loop counter i of the forth program loop which points to successive members of the kth channel group is incremented, and thereafter the method200loops back to block212. If it is determined in block218that there are no more devices in the kth channel group, then it is concluded that the nth wireless is not interfered with, and does not interfere with wireless devices assigned to the kth channel group, and the method200continues with step222in which the nth wireless device is assigned to the kth channel group.

Thereafter, the method200continues with decision block224in which it is determined if there are more devices that have yet to be assigned to a channel group in the lth level (corresponding to the current iteration of the outer program loop). If it is determined that there are more devices that have yet to be assigned, then in step226the loop counter n of the second program loop, that points to successive unassigned wireless devices in the lth level is incremented, and thereafter the method200loops back to the top of the second program loop208. If on the other hand it is determined in step224that there are no more unassigned wireless devices in the lth device, then the method200continues with decision block228in which it is determined if there are more levels in the network e.g.,100. If it is determined in decision block228that there are no more levels in the network, e.g.,100, the method200halts. If, on the other hand, it is determined in decision block228that there are more levels in the network e.g.,100, then in step230the loop counter l of the outer loop (which points to successive levels of the network, e.g.,100) is incremented and thereafter the method200loops back to the top of the outer program loop206.

If on reaching decision block216it is determined that at least one of two responses requested in step214were not received correctly, then it is concluded that there is interference between the ith, and the nth wireless devices, and the method200continues with decision block232in which it is determined if there are more already established channel groups remaining that have yet to be checked as far as interference with the nth wireless device. If it is determined in decision block232that there are more channel groups remaining then in step234the loop counter k of the third program loop is incremented, and thereafter the method200loops back to the top of the third program loop210to consider another already established channel group. In considering successive channel groups for assignment of the nth device it is preferable to skip the channel group of the parent of the nth device. If, on the other hand, it is determined in decision block232that there are no more already established channel groups, the method continues with step236in which a new channel group is initialized. Thereafter in step238the nth wireless device is assigned to the new channel group.

Notwithstanding the fact that creation of new channel groups is, of course, limited by available bandwidth, by employing the method200with devices that have a transmit range that is relatively small compared to the overall spatial extent of the network (e.g.,100) in which the devices participate, devices that use the same channel are separated from each other (by distance or sometimes by wireless signal obstacles), so that a large number of devices in a network are able to use a smaller number of channels without interfering with each other. The method200automatically groups into channel groups, devices that are separated from each other and can use the same channel without interfering with each other.

Although not shown inFIG. 2, initialization of a new channel group in step236is contingent on a maximum limit channels not having been reached. Alternatively, new channel groups are obtained by reducing the effective bandwidth (e.g., time slot period length), allocated for existing channel groups and using the bandwidth saved for a new channel group.

After step238, the method200loops back to decision block224.

A hierarchical tree topology network of wireless devices having channels assigned to the wireless devices according to the method shown inFIG. 2, is especially suitable for use in conjunction with a routing protocol in which messages originating from devices other than a root position wireless device (e.g.,102) are routed toward the root position wireless device. According to such a protocol, if a messages addressed to a wireless device that is along a path in the hierarchical tree topology between an originating device and the root position wireless device, then the message need not reach the root position wireless device, only needs to go as far as the wireless device to which it is addressed. On the other hand if the destination is not along the aforementioned path the message is sent to the root position wireless device, and the root position wireless device having sufficient transmit power to reach other devices in the network directly, transmits the message to the destination directly. For the latter purpose, the root position wireless device preferably uses a channel that is distinct from channels used by other wireless devices (e.g.,104-126) in the network. Alternatively all messages are routed through the root position wireless device104. Such routing protocols arc particularly appropriate because channels are assigned by the method shown inFIG. 2so that wireless devices do not interfere, when transmitting messages through their respective parents to the root position wireless device102.

FIG. 3is a flow chart of a method of operating the root position wireless device shown inFIG. 1in order to coordinate communications in the network. Block302is the top of a loop that considers successive times slots in successive frame periods. In step304, for each timeslot a message is sent to wireless devices of the kth channel group authorizing the wireless devices in the kth channel group to transmit any messages that each wireless device in the kth channel group might have to transmit. The method shown inFIG. 3represents a group polling MAC method. The success of the group polling MAC method shown inFIG. 3depends on the wireless devices in the network (e.g.,100) having been assigned by the method shown inFIG. 2to channel groups in which they do not interfere with other members. In the case that each channel is a time slot of TDMA multi-access protocol, each channel group can be termed a polling group.

According to an alternative embodiment the wireless devices104-126have internal clocks that are synchronized and are able to determine when it is their turn to transmit without having to receive a poling signal. In such an alternative, the wireless devices are optionally maintained in synchronism by synchronization signals that are sent from time to time by the root position wireless device102.

FIG. 4is a hardware block diagram of the root position wireless device102that is included in the network shown inFIG. 1according to the preferred embodiment of the invention. Optionally the wireless devices (e.g., root position wireless device102) that in carrying out certain routing protocols perform more functions (e.g., control functions) are connected to external power sources, and/or have higher processing power. The root position wireless device102comprises a transceiver402a processor404, a program memory406, a work space memory408, and an external network interface coupled together through a signal bus410. The control processor404controls the overall operation of the wireless device102, and is used to execute programs embodying the methods shown inFIGS. 2-3. The control processor404also serves to generate packets for transmission, and process received packets. The program memory406is used to store the programs executed by the control processor404. The program memory406is a type of computer readable medium. Programs embodying the method shown inFIGS. 1-2are alternatively stored in other types of program memories. The works space memory408is used as a workspace by the control processor404in executing the programs stored in the program memory606. The transceiver402is coupled to an antenna412. The external network interface is used to couple the root position wireless device102to an external network such as a local area network (LAN) or other external network. The other wireless devices104-126preferably have the same basic internal structure, but do not need the external network interface414.

Although a particular flow chart is presented in FIGS.2,3, it is to be understood that the structure of programs embodying the teachings of the present invention will vary depending on the programming language used, and programming style.

The computer readable medium used in connection with the present invention as a memory for storing programs can comprise volatile memory such as RAM, or a medium that contains data in a transient state, such as a communication channel, network circuits, or a wireless communication link, or preferably nonvolatile memory including but not limited to, flash memory, Read Only Memory (ROM), EPROM, EEPROM, disk drive. The computer readable medium used as a work space for signal processing operations, can comprise Random Access Memory (RAM).

The present invention, as would be known to one of ordinary skill in the art could be produced in hardware or software, or in a combination of hardware and software. The system, or method, according to the inventive principles as disclosed in connection with the preferred embodiment, may be produced in a single computer system having separate elements or means for performing the individual functions or steps described or claimed or one or more elements or means combining the performance of any of the functions or steps disclosed or claimed.

While the preferred and other embodiments of the invention have been illustrated and described, it will be clear that the invention is not so limited. Numerous modifications, changes, variations, substitutions, and equivalents will occur to those of ordinary skill in the art without departing from the spirit and scope of the present invention as defined by the following claims.