This application claims the benefit of Korean Patent Application No. 10-2008-0067810, filed on Jul. 11, 2008, Korean Patent Application No. 10-2008-0094706, filed on Sep. 26, 2008, and Korean Patent Application No. 10-2009-0062564, filed on Jul. 9, 2009, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein in their entirety by reference.
1. Field of the Invention
The present invention relates to a multihop sensor network media access control (MAC) technology that operates in real-time and is highly reliable, and more particularly, to a method of clock synchronization for a multihop sensor network.
2. Description of the Related Art
IEEE 802.15.4 Media Access Control (MAC) is a sensor network MAC technology for realizing real-time and highly reliable services. According to IEEE 802.15.4, a network is formed in a tree structure having a PAN coordinator (PNC) at its peak, and assigns an independent active duration to each node according to a scheduling method supported by a user and supports communication during the active duration. Here, in a beacon mode, performance may deteriorate as beacon frames collide with each other, and a mesh network structure is not supported since only a tree network is supported. Also in a non-beacon mode, an MAC superframe structure that has high reliability and a short delay time cannot be formed, and thus time division multiple access (TDMA) & fiber hub (FH) MAC cannot be supported.
The present invention provides a method of synchronizing time of a node forming a multihop sensor network, wherein receiving nodes accurately synchronize time by adding a delay transmission time value to a beacon frame so as to reduce a beacon frame collision in a beacon mode, and a beaconing problem in a conventional beacon mode is solved by using a time synchronization frame and time synchronization acknowledgement frame containing time information and superframe structure information, in a non-beacon mode.
According to an aspect of the present invention, there is provided a method of synchronizing time of a node forming a multihop sensor network, the method including: generating a timestamp after delaying transmitting of a beacon frame; and adding a delayed time value and a timestamp value to the beacon frame.
According to another aspect of the present invention, there is provided a method of synchronizing time of a node in a multihop sensor network, the method including: synchronizing time based on a timestamp value of a first time synchronization frame received from a neighboring node; generating a second time synchronization frame having an increased hop distance value; and broadcasting the second time synchronization frame to the multihop sensor network.
The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
Hereinafter, the present invention will be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. In the drawings, like reference numerals denote like elements. While describing the present invention, detailed descriptions about related well-known functions or configurations that may diminish the clarity of the points of the present invention will be omitted.
Also, when a part “includes” an element, the part may further include another element, unless otherwise defined.
Multihop time synchronization in a sensor network is an algorithm for adjusting time of all nodes in the sensor network to a local time of a node having a standard time. Examples of a method of synchronizing time in a multihop sensor network include a beaconing method and a non-beaconing method. The present invention suggests an algorithm for preventing receiving nodes from updating time information to a wrong time value by including delayed time information in a beacon frame, when the beacon frame is not transmitted within a determined time. Also, the present invention provides a method of adjusting synchronization of the entire network, by using a periodical time synchronization frame instead of a beacon frame.
The present invention suggests two types of synchronizing methods using time synchronization frames received from a neighboring node for a certain period of time. According to a first method, a node having the lowest timestamp value from among received time synchronization frames is determined as a reference node, and time synchronization is performed based on the timestamp value of the reference node. According to a second method, time synchronization is performed by using an average value of timestamp values of received time synchronization frames.
Also, the present invention suggests a method of compensating a clock without receiving a periodical time synchronization frame. Each node stores a timestamp value of a consecutive time synchronization frame that is periodically received. When a node does not receive a time synchronization frame due to a network trouble, the node compensates its clock by using consecutive timestamp values that are previously received.
Terms used in the present invention are defined as follows.
Since a beacon frame may not be transmitted due to packet collision, each node adds a delayed time value generated by performing backoff and clear channel assessment (CCA) on a beacon frame before transmitting the beacon frame. Receiving nodes, which received the beacon frame, update time synchronization information by using the delayed time value.
Table 1 shows an example of a time synchronization specification field in a beacon frame, in a beacon mode.
A deferred beacon flag subfield shows whether CCA is required before transmitting a beacon frame. When the deferred beacon flag subfield is set to 1, a device performs CCA before transmitting a beacon frame, and when the deferred beacon flag subfield is set to 0, a device does not perform CCA before transmitting a beacon frame. A deferred beacon time subfield shows a number of times backoff is performed for CCA. When the deferred beacon flag subfield is set to 0, the deferred beacon time subfield is ignored. A beacon timestamp subfield shows a beacon transmission time for time synchronization during a symbol period.
A transmitting node generates a timestamp value after performing the CCA and backoff, estimates an interface delay value between an MAC layer and a physical (PHY) layer, and a modulation delay value in the PHY value, and adds the interface delay value and modulation delay value to the timestamp value. The delayed time value generated by performing CCA and backoff is represented through the deferred beacon flag and deferred beacon time subfields.
Processes of performing time synchronization when a new node enters a network will now be described.
The new node finds a neighboring node through a scanning process. The new node associates with one of neighboring nodes in order to enter the network. The neighboring node associating with the new node becomes a parent node of the new node. A PNC of the network recognizes the new node, and determines a time for transmitting a beacon of the PNC. A timestamp value of the beacon is set to a time immediately before the transmitting of a beacon frame. The new node that received the beacon frame synchronizes time with the PNC. When a node collides with another node, the node tries re-transmission after backoff. Here, the timestamp value of the beacon is no longer valid. Accordingly, the PNC includes information about the requirement of CCA in a deferred beacon flag, and thus, the new node determines that the PNC used CCA for beacon transmission. The PNC may add the number of times backoff is performed for successful beacon transmission in the beacon. When the PNC transmitted the beacon after performing backoff 3 times, a deferred beacon time value may be set to 3. Accordingly, the node that received the beacon accurately determines a point of time when the beacon is transmitted.
A transmitting node generates a timestamp value including a time value after CCA and backoff, an estimated interface delay value between an MAC layer and a PHY layer, and an estimated modulation delay value in the PHY layer, and inserts the timestamp value into a time synchronization frame. Here, the transmitting node also inserts a time value indicating the time taken to perform to perform CCA and backoff in the MAC layer into the time synchronization frame. The time synchronization frame may further include surperframe structure information of a network and other management information.
A receiving node obtains the timestamp value including the time value indicating the time taken to perform CCA and backoff in the MAC layer, the estimated interface delay value, and the estimated modulation delay value from the received time synchronization frame, and synchronizes time with the transmitting node.
All nodes excluding an end device may transmit the time synchronization frame of
A destination address field must always include a broadcast address. A command frame identifier field indicates that the time synchronization frame is a time synchronization request command. A broadcast acknowledgement (Ack) address field includes a value for transmitting Ack information to a neighboring node that transmitted a previous time synchronization frame. A hop distance count field includes a hop count value calculated by each node whenever a time synchronization frame is transmitted. Data flooding or a backward time error may be prevented by using the hop count value. A timestamp field includes a timestamp value as a time value for time information.
The time response frame of
A destination address field includes an address of a node that transmitted a time synchronization frame and enables the time response frame to be unicasted. A command sub-type field indicates that the time response frame is a time synchronization response.
The time synchronization processes start from a PNC (a node A). A time synchronization frame is broadcasted to lower nodes (
The time synchronization frame of
The time synchronization request frame of
Examples of PIB?? (full name??) and a primitive, when the time synchronization frame is applied are respectively shown in Tables 2 and 3.
A PNC (node A) starts synchronization by broadcasting a time synchronization frame. A hop distance value of the time synchronization frame increases by 1 as the time synchronization frame moves to a lower node. The time synchronization frame may include additional information, such as superframe structure information.
Coordinators and an end device (node B through node J) receive a time synchronization frame of a device having the lowest depth, or a time synchronization frame including the latest timestamp value for time synchronization. The coordinators and the end device increase a hop count value, and broadcasts a time synchronization response frame indicating that the time synchronization frame is received, by using a broadcast acknowledgement address. Data flooding or a backward time error may be prevented by using the hop count value.
In
In
Each node stores consecutive timestamp values of time synchronization frames that are periodically received as a list. When a node fails to receive a time synchronization frame at an expected point of time, the node compensates a time value based on the list of consecutive timestamp values. Alternatively, the node compensates the time value based on an average value of error compensated values of the consecutive timestamp values.
An error compensation value (Te) may be calculated as follows. Here, n denotes a number of pre-stored sample values, and Tk denotes a current time.
An MAC layer of a PNC (node A) receives MLME-START-SYNC.request primitive from an upper layer, and generates and broadcasts a time synchronization frame. The MAC layer of the PNC transmits MLME-START-SYNC.confirm primitive to the upper layer. Upon receiving the time synchronization frame from the PNC, coordinators (node B and node C) perform time synchronization. The coordinators re-broadcast the time synchronization frame to lower coordinators (node D and node E) after increasing a hop distance value by 1. The nodes D and E perform time synchronization by receiving the time synchronization frame from the node C, and drop the time synchronization frame received from the node B. Also, an upper node drops a time synchronization frame from a lower node.
In operation S101, a transmitting node that is to transmit a beacon performs CCA and backoff in order to prevent a collision from occurring.
In operation S103, the transmitting node generates a timestamp after CCA and backoff. Here, the transmitting node estimates a delay value. The delay value includes an interface delay value between an MAC layer and a PHY layer, and a modulation delay value in the PHY layer, besides a delayed time value generated by performing CCA and backoff. The interface delay value and the modulation delay value are included in the timestamp value.
The transmitting node adds the delayed time value and the timestamp value in a beacon frame, and then transmits the beacon frame in operation S105.
In operation S111, a PNC generates and broadcasts a time synchronization frame.
In operation S113, lower nodes that received the time synchronization frame from the PNC synchronizes time with the PNC, based on a timestamp value included in the time synchronization frame.
Then, in operation S115, a node that performed synchronization generates and broadcasts a time synchronization frame by increasing a hop distance value by 1. Operations S111 through S115 are repeated until an end device. Here, a time synchronization frame broadcasted by each node may include broadcast acknowledgement information in order to notify an upper node that the time synchronization frame is received.
Like the upper node, the end device may transmit the time synchronization frame by adding broadcast acknowledgement information to the time synchronization frame. Alternatively, the end device may notify the upper node that the time synchronization frame is received by unicasting a separate acknowledgement response frame.
When at least one time synchronization frame is received from a plurality of upper nodes, a receiving node may perform time synchronization by selecting a time synchronization frame of a node having the lowest hop distance value. However, when some of the time synchronization frames have the same hop distance value, the receiving node may perform time synchronization based on the lowest timestamp value, or compensate a clock based on an average value of the timestamp values.
A node may ignore a time synchronization frame when the time synchronization frame is received from a lower node or a node having the same hop distance value.
Each node periodically receives a time synchronization frame at a predetermined time. If the time synchronization frame is not received at the predetermined time, a node may compensate its clock by compensating a time value based on an average value of error compensated values of consecutive timestamp values received previously.
By using the present invention, an IEEE 802.15.4 MAC-based multihop sensor network can support a mesh topology. Also, an MAC structure having high reliability and low delay time is provided since time in an entire network is synchronized by using a command frame instead of a beacon frame. Also, by adding broadcast acknowledgement information in the command frame, the number of times data is transmitted for time synchronization is reduced, thereby decreasing a load on the entire network. Accordingly, the lifetime of the network increases.
The invention can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, etc. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers of ordinary skill in the art to which the present invention pertains.
The terms used herein are for descriptive purposes only and are not intended to limit the meaning or scope of the invention.
While this invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The preferred embodiments should be considered in a descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10-2008-0067810 | Jul 2008 | KR | national |
10-2008-0094706 | Sep 2008 | KR | national |
10-2009-0062564 | Jul 2009 | KR | national |