FIELD OF THE INVENTION
The embodiments herein generally relate to large network formation and its working, more particularly, the data propagation in efficient manner in all configurable directions with minimum delay in large distributed systems.
CROSS REFERENCE TO RELATED APPLICATIONS
This specification is the complete specification of the provisional application No. 1171/CHE/2009 filed on 22nd May, 2009 which it claims to be its priority date.
BACKGROUND TO THE INVENTION
Maintaining large networks is a challenging issue; activities such as synchronization, data transfer between the nodes, failure detection and recovery with minimum delay are challenging tasks. In large networks data has to travel through plurality of hops. At each hop delay will be added, since we know that the data can be transmitted only in active period, which comes periodically in every superframe for a small period of time compared to superframe duration. The types of applications the low rate wireless personal area network (LR-WPAN) supports and for the network durability, it is observed that typically the active period shall be in the range of less than 1%. As per existing standards, the network time domain (superframe) is designed in such a way that data propagation is normally faster in one direction. Data propagation in reverse direction takes plurality of times longer period than in the direction data propagation is supported. Existing design support single hop data transfer in every superframe duration in reverse direction. Definitely this is a big limitation of existing design. Scenarios such as border area surveillance, where the intruder detection event happens occasionally but whenever happen, it shall be notified to the control room with minimum delay. In such scenario, if the system will be configured with high beacon periodicity i.e. small superframe duration, so that the data gets transferred with minimum delay, then lots of energy will be wasted in synchronization process, and if the beacon periodicity is reduced then data transfer will take very long time which may not be acceptable. In this invention we have developed an algorithm which allows the network elements to transfer the data between the layers in any direction, with minimum and deterministic delay and in power efficient manner. As part of this invention the algorithm has been also extended to design event based network system.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation. In the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 illustrates an exemplary wireless sensor network (WSN).
FIG. 2 illustrates an exemplary single receive attempt scenario.
FIG. 3 illustrates an exemplary plurality of reception attempt scenario.
FIG. 4 illustrates an exemplary message indication sequence format.
FIG. 5 illustrates an exemplary time domain of transmitting and receiving nodes in different scenarios with respect to absolute time.
FIG. 6 illustrates exemplary data propagation time domain of a network having even number of layers, in forward and reverse directions, where network is divided into two clusters and has an interface layer.
FIG. 7 illustrates exemplary data propagation time domain of a network having odd number of layers, in forward and reverse directions, where network is divided into two clusters and has an interface layer.
FIG. 8 illustrates exemplary data propagation in forward and reverse directions and also illustrates configurable parameters.
FIG. 9 illustrates exemplary synchronization information propagation time domain.
FIG. 10 illustrates exemplary time domain at PC in case forward direction data flow, highlighting the scenario that PC doesn't have previous layer to listen.
DESCRIPTION OF THE EMBODIMENTS
Various embodiments of the present invention provide a method for the devices to propagate data between any nodes in the fastest and efficient way. As an example the present invention has been illustrated in the context of a wireless sensor network (WSN). However, it will be apparent to those ordinarily skilled in the art the applicability of the invention to many other distributed systems.
FIG. 1 illustrates exemplary wireless ad-hoc communication network (WCN) architecture 100, in accordance with various embodiments of the present invention. The WCN 100 includes a full function device personal area network controller (PC) 102, plurality of full function device network coordinators (NC) 108, 114 at different depth from the PC and plurality of reduced function device leaf nodes (LNs) 104, 106, 110, 112, 116 and 118 at different depth from the PC. For embodiments herein, the PC 102 exchanges data with the NC 108 and LNs 104, 106 and 110 within its radio sphere of influence. The nodes directly associated with the PC are termed as 1st level nodes or 1st hop nodes. For the higher level of association, full function device NCs allow the nodes to associate with it. As illustrated in FIG. 1, NC 108 has allowed LN 112 and NC 114 to get associated with it. In this manner the network formation happens. Further, the PC, NCs and LNs may be equipped with transducers, sensors and transceivers for obtaining data from a source and exchanging data with other LNs, NC and PC in the network. On obtaining the data, the corresponding node can transmit the necessary data to other LN, NC or PC. The PC, NC and LN also include a power source for driving the various electronic circuitries used in it. The power source can be main power or a battery, normally in remote area installation the power source is battery.
FIG. 2 illustrates the time domain of contiguous layers of NCs, when the NCs are configured to attempt to listen for any relevant data only once after every preconfigured time. 200 illustrates the n, (n+1) and (n+2)th layer node's time domain. As illustrated in FIG. 2, ∂t0, 270, is the time after last synchronization at which the nth layer node attempts to listen for any relevant information. To illustrate the extreme clock drift cases, 202 or 212 is the exemplary attempt made by nth layer node to listen to (n−1)th layer NC in the case of fast or slow clock drift respectively. 204 and 214 is the possible drift, ranging between −d to +d. Depending upon the transmitter's clock drift the NC at nth layer listens to the data at 206 or 216. The maximum possible message is configurable. 206 and 216 time period is equal to the time period of maximum possible message length, Inter frame spacing, turn-around time, data propagation delay and acknowledgement reception delay. In this document, the 206 or 216 duration is termed as Tmsg+TTA it is a configurable value, depending upon the requirement it is configured. Immediately after Tmsg+TTA duration, the node starts its transmission for the next layer. As illustrated in FIG. 2 the node first transmits the synchronization header (SyncHeader) 208 and 218, which is sequence of message indication frames (MIF) as illustrated in FIG. 4. Depending upon the clock drift of the next layer receiver node, it attempts to listen to the data at 232 or 242. As an example in the worst case where the drift is maximum possible, the node attempts to listen to the data at 232 or 242. Receiving the message indication frame (MIF) at 232 or 242, the node calculates exactly when the transmitting node will transmit its data frame i.e. 210 or 220. The receiving node switches ON its receiver exactly at that time 236 or 246 and receives the data. After receiving the data, the receiver node checks if the data has to be forwarded to next layer, in the case if the data has to be forwarded to the next layer it starts the same procedure as mentioned earlier.
The transmitter node ensures that even in worst possible case of relative drift between the transmitter node and receiver node, the receiver node listens to MIF or Synchronization Header of data frame. As mentioned earlier, the synchronization header of data frame follows MIF sequence and is consisting of 4 octets of preamble data (PD) and 1 octet of start frame delimiter (SFD) as per existing standards. To ensure that, in the case where the nodes are configured to attempt only once to check if any relevant data is getting transmitted or not, the transmitting node transmits the MIF sequence i.e. SyncHeader for 4 times the maximum possible drift at that particular instance, as shown in FIG. 2.
FIG. 5 illustrates the time domain of transmitting and receiving nodes in different scenarios with respect to absolute time particularly when the SyncHeader duration is less than 2 times the maximum possible drift. Scenario 550 illustrates the time domain when transmitting node is fast and receiving node is slow with respect to absolute time where as, 560 illustrates the scenario where transmitting node is slow and receiving node is fast with respect to absolute time. FIG. 5 also indicates the relationship between SyncHeader duration and number of attempts the receiving node makes to listen to data packet. As illustrated in scenario 550, the receiving node attempts to listen at 2 times the maximum possible drift minus half of SyncHeader period in advance with respect to local time i.e. t0−(2*d−½), where t0 is the middle of the SyncHeader period as per its local clock, d is the maximum possible drift at that particular instance, 1 is the SyncHeader period. Using this method in scenario 550, the receiving node will able to listen to synchronization header of data frame in first attempt 506, but in scenario 560 SyncHeader starts at t0+(2*d−½) with respect to its local clock. If the receiving node attempts to listen to relevant data ‘A’ times, the node has to scan the duration from t0−(2*d−½) to t0+(2*d−½) in A attempts. Since the first attempt is already made at t0−(2*d−½):
- where,
- d=A*t;
- LMIF is the duration of MIF sequence i.e. SyncHeader;
- Δ is the maximum drift supported by the network;
- t is the time at any particular instance; and
- A is the number of attempts the receiving node makes to listen to relevant data;
FIG. 3 is similar to FIG. 2 except that in this case the receiver node attempts to listen for the relevant data couple of times. The size of SyncHeader i.e. the sequence of MIF 310, 322, 340, 352 has been accordingly reduced to 2 times the drift as per equation 1. As illustrated in FIG. 3, depending upon the clock drift, the receiver node attempts to listen plurality of times 302, 306 or at 314, 318. After decoding the MIF at one of the receive attempt, receiving node synchronizes with transmitting node and calculates the time when the data frame i.e. 308 or 320 will be transmitted. Similar to the above case, after receiving the data frame and with the proper delay of Tmsg+TTA duration the node changes to transmit mode and starts transmitting the MIF sequence 310, 322 for the next layer. Similar to the transmitting node procedure, the next layer node starts its reception procedure at 332, 336 or at 344, 348 and continue in same way as the previous layer.
FIG. 4 illustrates an exemplary message indication frame sequence 400, introduced as part of this invention. 420 illustrates an exemplary message indication frame (MIF), which contains a preamble data (PD) 402 of 4 octet, a start frame delimiter (SFD) of 1 octet 404 and a 2 octet block 406, which contains message indication identifier (MII) and blocks before data packet (BBD). Based on hardware capability the length of preamble data is calculated, as an example, AT86RF230 needs 80 microsecond to get synchronized and by default it adds 4 octets of preamble to any data before transmitting, that's why here as an example we have taken 4 octets of preamble data. Depending upon the network synchronization periodicity and maximum possible drift, the bit length of MII and BBD is configured and shared with all the network elements. According to the size of MII, the network decides MII content. Depending upon the requirement, MII content is configurable at network basis or at each layer of the network basis or at per node basis. BBD contains the count of MIF to be transmitted before the data frame.
FIG. 6 and FIG. 7 illustrates how the data frame is propagating between the layers. As part of this invention, the network can be divided into plurality of clusters of layers. As we know that a large network will have plurality of layers of coordinators. These contiguous layers can be grouped together to form a cluster. Depending upon the size of the network and requirement, the cluster size is configured. FIG. 6 and FIG. 7 illustrates that the network is divided in two clusters 602, 604 and 702, 704. 606 and 706 is interface layer, which connects two clusters. By dividing the network into clusters, the data propagation can be made faster because as illustrated in FIG. 6 and FIG. 7 the forward and reverse data propagation can happen at the same time at different layers.
As part of this invention we have formulated the time at which NCs at different layer activate theirs transceiver in reception and transmission mode to support different directional data flow. By default transceiver activates in reception mode at its scheduled time, but activates in transmission mode only if the node has data packet to propagate. Using our patents on synchronization, it is possible to configure the synchronization periodicity to a very large value, in the range of minutes to improve the power efficiency of network. As discussed earlier, in defense there are use-cases where data exchange between the nodes happens rarely, but whenever it has to exchange, it needs to happen in minimum delay. To cater such requirement most power efficiently, in this invention we have designed a periodic receive concept where the node activates its receiver for configurable minimum period (Tmin—Rx) of time in which it detects whether any relevant data is getting transmitted or not. If the node doesn't find any signal it goes to sleep mode again till the next periodic listen period. As illustrated in FIG. 2 and FIG. 3 the nodes become active in reception mode at previous layer node's transmission time as per its local clock. The active period is a configurable period at any layer and is sufficiently large enough to accommodate data processing, acknowledgement, propagation delay, and turn-around time. This makes sure that data is propagated between any two layers with minimum delay. Normally data propagation is faster in one direction; the direction in which the active phase of the nodes follows. In the reverse direction, the data propagation happens only with the next layer in every active phase time period which can take unacceptable amount of time in case of large networks. As part of this invention we have proposed to schedule the active phase of layers in such a way that periodically in sequence it favors one of the configured directions for data propagation.
In this section, we will derive the formula to calculate the transmission and reception time at which any layer attempts to transmit or receive to support different directional data flow. Assuming T0 is the time at which PC starts the data propagation in forward direction, then:
PCTx—s=T0; PC Transmission (Tx) start time
PC
MIF
=T
0
*s, PC MIF sequence duration
PCTx—e=T0*(1+s)+Tmsg; PC Tx end time
where,
s=(4*Δ)/A; as per equation 1
Δ is the maximum drift supported by the network;
Putting z=1+s;
PCTx—e=T0*z+Tmsg;
T
1
—
Tx
—
s
=T
0
*z+T
msg
+T
TA; Layer 1 node Tx start time
T
1
—
Tx
—
MIF
=T
1
—
Tx
—
s
*z; Layer 1 node MIF sequence duration
T
1
—
Tx
—
e
=T
0
*z
2+(Tmsg+TTA)*z+Tmsg; Layer 1 Tx end time
T
2
—
Tx
—
s
=T
0
*z
2+(Tmsg+TTA)*(1+z); Layer 2 node Tx start time
T
2
—
Tx
—
MIF
=T
2
—
Tx
—
s
*s; Layer 2 node MIF sequence duration
T
2
—
Tx
—
e
=T
0
*z
3+(Tmsg+TTA)*(z+z2)+Tmsg; Layer 2 Tx end time
T
2
—
Tx
—
e
—TA
=T
0
*z
3+(Tmsg+TTA)*(z+z2)+Tmsg+TTA; Layer 2 Tx end time including turn-around time
Similarly, for nth layer node:
T
n
—
Tx
—
s
=T
0
*z
n+(Tmsg+TTA)*(zn−1)/(z−1); Layer n node Tx start time
T
n
—
Tx
—
MIF
=T
n
—
Tx
—
s
*s; Layer n node MIF sequence duration
T
n
—
Tx
—
e
=T
0
*z
n+1+(Tmsg+TTA)*(z+z2 . . . +zn)+Tmsg; Layer n Tx end time
T
n
—
Tx
—
e
—
TA
=T
0
z
n+1+(Tmsg+TTA)*(z+z2 . . . +zn)+Tmsg+TTA; Layer n Tx end time including turn-around time
T
n
—
Tx
—
e
—
TA
=T
0
z
n+1+(Tmsg+TTA)*(zn+1−1)/(z−1);
i.e.
Since the transmission time of nth layer and reception time of (n+1)th layer is same, the data propagation delay for n layers is equal to T(n−1)—Tx—e—TA−T0:
Having calculated the data propagation delay and transmission time as per its local clock based on its depth from the PC, now depending upon the network requirement the value of T0 is calculated and configured. FIG. 8 illustrates the time domain of an 1 layer network when the network is configured to support only forward and reverse directional data propagation. Section below describes the generic formula using which any directional data propagation is also possible. Different terminologies used for the network time domain is also illustrated. There can be plurality of ways in which network can be configured such that 1) Constant values TGap (850) and T′Gap (880), which will make variable size data cycle period 860. 2) Constant data cycle period 860, in this case depending upon the requirement minimum gap is configured and based on that all other values are calculated. As an illustration in this document, second scenario is described where data cycle period (DCP) is configured constant. It shall not be taken as limitation; the proposed algorithm can be used to configure to support any type of network configuration. FIG. 8, illustrates 1 layer network; the network configuration is such that the active phase first follows from the PC towards the higher layer nodes and then after reaching the cluster boundary or last layer of the network the active phase of the nodes starts following in reverse direction. TGap (850 or 880) is the configurable time lag while changing the data flow direction.
In FIG. 8, Tgen 802, 818, 834 indicates the data generation time, Tx 804, 808, 812, 816, 836 indicates the data transmission time from each layer in forward direction i.e. from PC to higher layers, Rx 806, 810, 814 indicates the data reception time at each layer from the previous layers in the forward direction, Tx 820, 824, 828 indicates the data transmission time from each layer in the reverse direction i.e. from the higher layer towards the PC, Rx 822, 826, 830 indicates the data reception time in reverse direction. TForward 840 indicates the total data propagation time along the forward direction, TReverse 870 indicates the total data propagation time along the reverse direction, TGap 850, 880 indicates the minimum time gap to be maintained at the time of change of data propagation direction. Data Cycle Period 860 indicates the total time needed for the data propagation along the forward and reverse direction, TTA 832 indicates the turn around time which is the time needed for change of transceiver mode from reception to transmission mode or vice-versa for the next transaction.
Formula derivation for network configuration where the data cycle period (DCP) is constant is described below.
As we know from our previous patents that periodicity of synchronization process can be configured based on the network requirement. Here we are assuming that the synchronization periodicity is Tsync. In the worst case i.e. just before next synchronization process (drift will be maximum), and assuming TminGap is the minimum time delay at the time of change of data flow direction, the delay TmaxDel in data propagation in 1 layer network using equation 4 is:
where
- A=number of attempts receiving node makes to listen to data
Corresponding to TmaxDel, the maximum number of complete DCP (NDCP) is:
where, Tgen is the maximum time required to generate any data packet. For the network having constant DCP, the DCP is calculated as follows:
Putting the proper value for T0 in equation 2 for xth data cycle, the transmission time is calculated by:
Similarly for reverse direction Tx time is calculated by:
where, maxDepth is the cluster size or maximum depth of the network.
As mentioned earlier the node attempts to listen to previous layer data transmission at t0−(2*d−½) particularly when the SyncHeader duration is less than 2 times the maximum possible drift i.e. number of attempts (A) is greater than 2 according to equation 1. Therefore the reception (Rx) time of any node at nth layer in xth DCP in forward direction for mth attempt is:
In case of single attempt i.e. A=1, the receiving node attempts at t0 and in case of two attempts i.e. A=2, the receiving node attempts at t0−(d−½). Hence the generic formula for any value of A is:
Similarly, for reverse directional data flow:
As mentioned earlier, our proposed algorithm can support multidirectional data propagation. Similar to 840 and 870 illustrated in FIG. 8, which illustrates the TForward and TReverse when the network is configured to support only forward and reverse directional data flow; the data cycle period 860 is divided into plurality of time zones, which is equal to number of directions the network is configured to support the data flow. Also the order of data flow can be configured based on the application requirement i.e. the time domain of data cycle period can be configured in any order such as TForward then TReverse and then TPeer or, TPeer then TForward and then TReverse. Assuming that the network is configured to support k directions i.e. NwkDir=k, and the directions are defined as Dir—0, Dir—1, . . . Dir_(k−1), also each is assigned an enumerated value from 0 to k−1, then the above formulas can be written as follows in generic manner:
Transmission time of nth layer node in jth direction i.e. Dir_j, in xth DCP is:
except for reverse directional data flow. For reverse directional data flow the transmission time is:
assuming Dir_i is for reverse direction.
SynchHeader length at any particular instance is 4 times the maximum possible drift at that particular instance divided by number of reception attempts, for any directional data flow as per equation 1, i.e.
where, T is the transmission time since last synchronization.
Similarly, the reception time for nth layer node in jth direction i.e. Dir_j in xth DCP for mth attempt is calculated using formula below:
- except for reverse directional data flow. For reverse directional data flow the reception time is:
assuming Dir_i is for reverse direction.
where,
- x=1, 2, 3, . . . , NDCP−1;
- n=0, 1, 2, . . . 1 (maximum possible depth);
- m=1, 2, . . . A (maximum number of attempts);
- Δ=maximum drift supported; and
- NwkDir=number of directions the network is configured to support data propagation.
For the network operating on single frequency, the neighboring coordinator nodes divides its region into different time zones. Each zone has time offset sufficient enough to complete the whole data exchange without overlapping on other's time zone, even in worst possible drift case.
As shown in FIG. 10 the proposed data propagation method is also used to propagate the synchronization information. As illustrated in this figure, at each layer there is a delay in synchronization information transmission after the reception from the previous layer to accommodate the SyncHeader i.e. MIF sequence, so that the next layer listens to the synchronization information without fail. Delay at each layer will add the drift in synchronization information. According to the equation 4, the data propagation delay at the synchronization time (Tsync) is:
where l=max depth
As illustrated, the value of Delaysync depends on the value of z, Tmsg, TTA, l, and Tsync where z depends on Δ and A (i.e. maximum number of attempts). According to the above equation for some reasonable values of z, Tmsg, TTA, l, and Tsync, the value of Delaysync can go in range of seconds, which implies that the drift in synchronization information can be greater than 40 micro seconds, since as per IEEE 802.15.4-2006 standard the protocol supports clock drift up to 40 ppm. Drift in range of 40 micro seconds and higher may not be acceptable for some applications. To overcome this issue, we have proposed a method as illustrated in FIG. 9. As per this method, at Tsync the PC first propagates an synchronization alert frame (940) to its network stating that the synchronization information frame will follow. The delay in transmission of synchronization information frame is designed such that, at the highest level network elements the synchronization information frame reaches after synchronization alert frame after configurable amount of time TsyncGap 950. As per equation 4, the synchronization alert frame will propagate through the network in TsyncAlert 940 time:
where l=max depth
As illustrated, 902 is synchronization alert frame transmitted by PC and 914 is synchronization information frame transmitted by the PC after ∂T time 960. Hence the propagation delay of synchronization information frame is:
- A=maximum number of attempts to listen to relevant data Hence
Using this method the TsyncInfo comes down to milliseconds range, which implies that the drift in synchronization information comes down to 2-4 microseconds range.